美文网首页
初始Python

初始Python

作者: 泥人吴 | 来源:发表于2019-06-28 23:51 被阅读0次

这个是零基础开始学Python笔记


视频+书籍:

imooc廖雪峰老师的视频 初始Python + Python进阶
书籍- Python核心编程

一、Python变量和数据类型

1.Python中数据类型

1.1整数
  • 在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080。
  • 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
1.2浮点数
  • 浮点数也就是小数,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
1.3字符串
  • 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。
  • 举个例子:
1.4布尔值
  • 逻辑值,一个布尔值只有True、False两种值,布尔值可以用and、or和not运算。
1.5空值
  • 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

2.print+定义字符串

1.需要理解的' '和" ""

#注意使用print命令
#Enter a code
print 45678+0x12fd2 
print '45678+0x12fd'
print 'Learn Python in imooc'
print 100 < 99
print 0xff == 255
  • 输出结果如下
123456
45678+0x12fd #对比两者的不同
Learn Python in imooc
False
True
  • ' '和" ""的相互套用
"I'm OK"
'Learn "Python" in imooc'
  • 如果字符串既包含'又包含"怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。要表示字符串 Bob said "I'm OK".
'Bob said \"I\'m OK\".' 
  • 常用转义符
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身
  • 逗号, 的意义
>>> print '100 + 200 =', 100 + 200
100 + 200 = 300     #运行结果

3.Python中raw字符串与多行字符串

  • r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串
'''Line 1
Line 2
Line 3'''
# 上下两者完全一样
'Line 1\nLine 2\nLine 3'
  • 作业训练
# 注意查看前后变化,以及包含'和 "的字符串
# 请把下面的字符串用r'''...'''的形式改写,并用print打印出来:
'\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.'

print r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''

4 .Python中整数和浮点数

  • 和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:
1 + 2    # ==> 整数 3
1.0 + 2.0    # ==> 浮点数 3.0

# 试着比较一下三者不同
11 / 4    # ==> 2
11 % 4    # ==> 3 ,求余
11.0 / 4    # ==> 2.75 ,与11 / 4 比较

5.Python中布尔类型

  • 在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True
print a and 'a=T' or 'a=F'
# 计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?
  • 因为Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True.
  • 解释一下代码
a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
# 通过 or 运算,可以把空字符串“变成”默认字符串,而非空字符串保持不变。

二、List和Tuple类型

List

1.Python创建list+索引
  • 由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
>>> L = ['Michael', 100, True] #那些需要加上单引号
# 一个元素也没有的list,就是空list:
>>> empty_list = []
  • 由于list是一个有序集合,通过索引来获取list中的指定元素,需要特别注意的是,索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。
>>> L = ['Adam', 'Lisa', 'Bart']
>>> print L[0]
Adam
# Python之倒序访问list
>>> print L[-1]
Bart

2.Python从list删除元素
  • pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,那么原来的List就会发生相应。
L = ['Adam', 'Lisa', 'Paul', 'Bart']
#Paul的索引是2,Bart的索引是3,如果我们要把Paul和Bart都删掉,请解#释下面的代码为什么不能正确运行:
L.pop(2)
L.pop(3)
#怎样调整代码可以把Paul和Bart都正确删除掉?
L.pop(2)
L.pop(2)
3.替换元素
  • 直接用索引进行赋值
L[-1] = 'Paul'

Tuple

1.Tuple与List
  • tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
>>> t = ('Adam', 'Lisa', 'Bart')
  • 创建tuple和创建list唯一不同之处是用( )替代了[ ]
  • 获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素。
2.创建单元素tuple
>>> t = (1)
>>> print t
1
# 比较两者不同
>>> t = (1,)
>>> print t
(1,)
  • 因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
  • 正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”
  • Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
3.Python之“可变”的tuple
>>> t = ('a', 'b', ['A', 'B'])
# List=['A', 'B']是可变的
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])

三、条件判断和循环

1.Python之if语句
>>> age = 20
>>> if age >= 18:   # if 语句后接表达式,然后用:表示代码块开始
...     print 'your age is', age     #4个空格,不要使用Tab,
...     print 'adult'
...                 #退出缩进需要多敲一行回车
your age is 20
adult
  • if + else
if age >= 18:
    print 'adult'
else:
    print 'teenager'
  • Python之 if-elif-else
  • 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
if age >= 18:
    print 'adult'
elif age >= 6:
    print 'teenager'
elif age >= 3:
    print 'kid'
else:
    print 'baby'
# 比较两者的不同
# 那个代码存在错误
age = 8
if age >= 6:
    print 'teenager'
elif age >= 18:
    print 'adult'
else:
    print 'kid'

2. for循环+ while循环
  • for循环
L = [75, 92, 59, 68]
sum = 0.0
for socre in L:
    sum=sum+socre
print sum / 4
  • while循环
# 这个是正确的
sum = 0
x = 1
while x<100:
    sum=sum+x
    x=x+2
print sum
# 这个是错误的,想想为什么
sum = 0
x = 1
while x<100:
    x=x+2
    sum=sum+x
print sum
  • Python之 break退出循环
sum = 0
x = 1
while x<100:
    sum=sum+x
    x=x+2
print sum
# 上面代码可以使用break实现:
sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 2
    if x > 100:
        break
print sum
  • Python之 continue继续循环
  • 对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:
sum = 0
x = 0
while True:
    x = x + 1
    if x > 100:
        break    #注意上下缩减关系
    if x % 2 == 0:    # if条件句后面一定要有冒号:
        continue
    sum = sum + x
print sum
  • Python之 多重循环
  • 在循环内部,还可以嵌套循环:
for x in ['A', 'B', 'C']:
    for y in ['1', '2', '3']:
        print x + y
# x 每循环一次,y 就会循环 3 次,这样,我们可以打印出一个全排列

四、Python之Dict+Set类型

Dict
  • 什么是dict
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
#由于dict也是集合,len() 函数可以计算任意集合的大小:
>>> len(d)
3
  • 访问dict
>>> print d['Adam']
95
# 一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d:
    print d['Paul']
# 二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
  • dict的特点
  • 打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。
  • 更新dict
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
>>> d['Paul'] = 72
>>> print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}

2.set

  • Python中什么是set
  • set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
# 创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3
#因为set不能包含重复的元素,所以...
  • 访问set
>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
>>> 'Bart' in s    #区别大小写
True

# 可以用 if 语句判断,
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
x = '???' # 用户输入的字符串
if x in weekdays:
    print 'input ok'
else:
    print 'input error'
  • 遍历set
  • 由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
    print x[0] + ':', x[1]    #如何理解+
  • 更新set
  • 添加元素时,用set的add()方法,如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了.
  • 删除set中的元素时,用set的remove()方法,如果删除的元素不存在set中,remove()会报错.
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
    if name in s:
        s.remove(name)
    else:
        s.add(name)
print s
>>>set(['Bart'])

五、函数

  • 编写函数
  • 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
def square_of_sum(L):
    sum=0
    for x in L:
        sum=sum + x * x
    return sum
print square_of_sum([1, 2, 3, 4, 5])
  • Python之定义默认参数
  • 由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
#请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'
def greet(name='world'):    #name是必需参数,'world'为默认参数
    print 'Hello, ' + name + '.'
greet()
greet('Bart')
  • Python之定义可变参数
  • 可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:
def average(*args):
    sum = 0.0    #想想sum = 0会是怎么样?
    if len(args)==0:
        return sum
    for i in args:
        sum=sum + i
    return sum/len(args)
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)

相关文章

  • day2-初始python和基础语法

    一、初始python python简介 python历史 python优缺点 python应用领域 开发工具介绍 ...

  • 初始Python

    1.Python科普 python科普(编译器、解释器)python作者:吉多·范罗苏姆(Guido van Ro...

  • 初始Python

    这个是零基础开始学Python笔记 视频+书籍: imooc廖雪峰老师的视频 初始Python + Python进...

  • 2018-07-17 day 2

    一.python 入门 初始pythonpython的历史python的优缺点python应用编程工具:IDLE,...

  • kali linux Python开发环境初始化

    kali linux Python 黑客编程1开发环境初始化 为什么要选择Python? Python作为目前Li...

  • 初始python - 1

    变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。...

  • Python:初始函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你...

  • uwsgi初始化时找不到libpcre.so.1的确解决

    使用uwsgi初始化命令的时候 (venv) python@python-PC:/project/web_proj...

  • ANSIBLE_配置注意事项

    被托管设备需要python2.4 以上。(2.5以下的设备还需安装python-simplejson,对于初始环境...

  • Python3 字节bytes和字符串str转换

    Python3 bytes和str互转 Python 3.6.5 bytes对象初始化 写法一 写法二 bytes...

网友评论

      本文标题:初始Python

      本文链接:https://www.haomeiwen.com/subject/avwecctx.html