主要学习了字典、集合、选择结构、循环结构(while、for)、推导式
字典:是’键值对‘的无序可变序列,字典中的每个元素都是一个’键值对‘
通过{}、dict()来创建字典对象
字典元素的访问:
1.直接通过键访问
>>> a = {'name':'gaoqi','age':18,'job':'programmer'}
>>> a['name']
'gaoqi
2.通过get访问(推荐,不会报错)
>>> a.get('name')
'gaoqi'
序列解包:就是把序列对象里的多个值一次性赋给多个变量
>>> x,y,z=(20,30,10)
>>> x
20
>>> y
30
>>> z
10
>>> (a,b,c)=(9,8,10)
>>> a
9 >
>> [a,b,c]=[10,20,30]
>>> a
10
>>> b
20
注意:
往字典里面添加新建可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字典的同时进行字典的修改。
集合:本质上就是字典的键,也可以和数学上的集合理解,不能有重复对象,也不能修改。
三元条件运算符
用来对简单双分支赋值的情况,格式:
条件为真时的值 if (条件表达式) else 条件为假时的值
num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")
多分支选择结构
score = int(input("请输入分数"))
grade = ''
if score<60 :
grade = "不及格"
elif score<80 :
grade = "及格"
elif score<90 :
grade = "良好"
elif score<=100:
grade = "优秀"
print("分数是{0},等级是{1}".format(score,grade))
多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序。
循环结构:while、for
for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下:
for 变量 in 可迭代对象:
循环体语句
可迭代对象
Python 包含以下几种可迭代对象:
1. 序列。包含:字符串、列表、元组
2. 字典
3. 迭代器对象(iterator):range
4. 生成器函数(generator)
5. 文件对象
range 对象
range 对象是一个迭代器对象,用来产生指定范围的数字序列。
格式为: range(start, end [,step])
生成的数值序列从 start 开始到 end 结束(不包含 end)。若没有填写 start,则默认从 0开始。step 是可选的步长,默认为 1。如下是几种典型示例:
for i in range(10) 产生序列:0 1 2 3 4 5 6 7 8 9
for i in range(3,10) 产生序列:3 4 5 6 7 8 9
for i in range(3,10,2) 产生序列:3 5 7 9
break和continue语句:break退出当前层循环,跳到外一层循环。continue结束本次(第n)循环,进入下一次(n+1次)循环。
while和for循环的else语句:如果循环正常结束,那么执行else语句;如果循环提前结束,那么不执行else语句。
代码优化原则:
1.尽量减少循环内部不必要的计算
2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
3. 局部变量查询较快,尽量使用局部变量
列表推导式:简洁明了,运行效率高。
目的:生成列表对象。列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ]
或者:{表达式 for item in 可迭代对象 if 条件判断}
字典的推导式生成字典对象,格式如下:
{key_expression : value_expression for 表达式 in 可迭代对象}
>>> my_text = ' i love you, i love sxt, i love gaoqi'
>>> char_count = {c:my_text.count(c) for c in my_text}
>>> char_count
{' ': 9, 'i': 4, 'l': 3, 'o': 5, 'v': 3, 'e': 3, 'y': 1, 'u': 1, ',': 2, 's': 1, 'x': 1, 't': 1, 'g': 1, 'a': 1, 'q': 1}
函数:
函数的文档字符串:不是普通的字符串,可以通过调用 help(函数名.__doc__)可以打印输出函数的文档字符串。
def print_star(n):
'''根据传入的 n,打印多个星号'''
print("*"*n)
help(print_star.__doc__)