廖雪峰的官方网站强烈推荐
Python提供了ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符
ord( )先当与把字符转成整形,chr( ) 把编码转化成相应的字符
有些时候,字符串里面的%
是一个普通字符怎么办?这个时候就需要转义,用%%
来表示一个%
list是python内置的一种数据类型,可以i随时添加删除相应的元素
比如,列出班里所有同学的名字,就可以用一个list表示:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
classmate就是一个list,用len()就可以计算list内的元素个数
用list内的索引就可以访问list内的元素,注意索引是从下标0开始
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
File "" , line 1, in <module>
IndexError: list index out of range
当索引超出范围时会报错,-1可以直接访问最后一个元素,这里的负号就是倒数第几的意思
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
用append函数可以加入元素
用pop()函数可以删除元素:注意,pop()是删除最后一个元素,删除第几个时,pop( i ),i,是索引
list可以嵌套,内部的数据类型也可以不一样,如果要替换,直接赋值到相应的索引对应的元素
和list 最大的不同就是tuple是有序的列表,但是一旦初始化后就不能被修改,没有增加删除函数(append,pop)
获取元素的方法和list 是一样的
要定义一个只有1个元素的tuple,如果你这么定义:
>>> t = (1)
>>> t
1
定义的不是tuple,是1
这个数!这是因为括号()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
。
所以,只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义:
>>> t = (1,)
>>> t
(1,)
Python在显示只有1个元素的tuple时,也会加一个逗号,
,以免你误解成数学计算意义上的括号。
age = 20
if age >= 18:
print('your age is', age)
print('adult')
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
注意 :if else后面没有括号,后面加冒号 else if 的缩写是elif
input函数返回值是str 所以可以加int( ) 强制类型转换,但是int函数如果发现不是合法的数字就会报错
我们学C++知道,循环分为for ,while ,dowhile循环,python中的循环分为两种,一种是for。。。in循环
依次把list中的元素输出出来
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
所以for x in ...
循环就是把每个元素代入变量x
,然后执行缩进块的语句
range函数(),可以生成一个整数序列,比如range(5),是生成0,1,2,3,4五个数
for循环后面也要加冒号,
另一个就是while循环,只要条件满足就不断循环,只要条件不满足就跳出循环
可见continue
的作用是提前结束本轮循环,并直接开始下一轮循环
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
全程dictionary,就是字典,在其他语言中就是map,使用键-值查找有极快的速度
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
要避免key不存在的错误,有两种办法,一是通过in
判断key是否存在:
>>> 'Thomas' in d
False
二是通过dict提供的get()
方法,如果key不存在,可以返回None
,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
要删除一个key,使用pop(key)的方法,对应的value也会删除
创建一个set需要一个list作为输入集合
set中没有重复的数据,重复的数据直接被删除(过滤),add()函数可以添加元素
remove()删除元素
set可以看作数学上的集合,因此何以进行与,并等操作,
python内置了很多函数,可以去官方网站中查看http://docs.python.org/3/library/functions.html#abs
max
函数max()
可以接收任意多个参数,并返回最大的那个:
int()
函数可以把其他数据类型转换为整数:
如果你已经把
my_abs()
的函数定义保存为abstest.py
文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs
来导入my_abs()
函数,注意abstest
是文件名(不含.py
扩展名):
空函数,使用pass语句,pass 语句就是啥也不干,占位符
定义函数时,需要确定函数名和参数个数;
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用return
随时返回函数结果;
函数执行完毕也没有return
语句时,自动return None
。
函数可以同时返回多个值,但其实就是一个tuple。
可变参数允许传入0个或者任意个参数,这些参数自动组装成为一个tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict(字典),可以扩展函数的功能,
可以先组装一个dict然后再传参
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
调用者可以传入不受限制的关键字参数
如果要设置受限制的关键字参数,就要用*来分割, *后的参数被视为关键字参数,
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数