一. 选择与循环
1. for循环
colors = ['red','black','white']
for color in colors: #其中color是循环的临时变量,可以任意定义,另外注意for循环最后的冒号,很容易忘掉
print(color)
#输出:
red
black
white
这里提及一点,应该都注意到了for循环与下面的print语句之间的缩进关系,事实上,Python中利用缩进来表示嵌套关系,这样会使代码更加的简洁优美且易读;
2. 列表解析
在说列表解析之前,先说一下range()函数:
range()函数可以轻松生成一系列的数字,它有三个参数,这里以range(start,end,step)为例,其中start为起始值,end和切片中第二个数的用法一样,遵循左闭右开,step是步长;
例子:
for x in range(1,10,2):
print(x)
#输出:
1
3
5
7
9
#从1开始,每次+2输出,遇到10停止,如果不指定控制条件,则默认为1
print(list(range(1,5))) #list()函数将生成的数值转换为列表
#输出:[1,2,3,4]
列表解析可以讲上述for循环缩减为一行,并且自动得到列表
#例子:
numbers = [value for value in range(1,10,2)]
print(numbers)
#输出:[1, 3, 5, 7, 9]
numbers = [value**2 for value in range(1,6)]
print(numbers)
#输出:[1, 4, 9, 16, 25]
#应该可以看出列表解析怎么用了吧,列表解析自动返回一个列表,并且将for循环缩减至一行,是很简洁的写法
3. 条件测试
这些符号在大部分编程语言中都是通用的:== != > >= < <=
多条件检查:
and等同于&&
a = 18
print(a>15 and a<20) #都满足返回True,一个不满足返回False
#输出:True
or等同于||
a = 16
print(a>20 or a==16) #一个满足就返回True,都不满足时返回False
#输出:True
not等同于 !
a = False
if not a:
print(a)
#输出:
False
用 in 检查特定值是否包含在列表内
colors = ['red','black','white']
print('red' in colors)
#输出:True
用 not in 检查特定值是否不包含在列表内
colors = ['red','black','white']
print('black' not in colors)
#输出:False
4. 选择结构
Python中的选择语句有if语句、if-else语句、if-elif-else语句,你可以把它们分别等价于C语言中的if语句、if-else语句、if-else if语句,唯一注意的是每一个语句的后面都要加冒号,以及Python中的条件判断语句不需要括号;
例子:
if a > 15:
print(a);
if a > 15:
print(a)
else:
print(b)
if a > 15:
print(a)
elif a < 12:
print(b)
else:
print(c)
判断列表是否为空
colors = []
if color: #直接把列表名用作判断体
colors.append('red')
5. while循环
这里先提一点:Python中的变量不和C中的一样在循环或者选择结构里面定义的话就只能在该结构的小范围内用,事实上,Python中的 if/elif/else、for/while 等不涉及变量作用域的更改,意思就是这里面的变量你都可以看成全局变量,但并不是说Python中的所有变量都是如此,比如函数,函数def就是能够改变变量作用域的;
message = "" #定义空字符串
while message != edit: #字符串也可用作判断条件
message = input()
print("haha")
Python中终止循环可以用 break、continue,它们与C语言中的用法一样,此处不再解释
二. 字典
1. 字典的基本操作
在Python中,字典是一系列的键-值对:
students_1 = {'score':97,'name':'lihua'} #定义了一个字典student_1,其中存储了名字和分数两个数据
如果要访问字典:
print(students_1['name']) #用键访问值,注意这个单引号别忘了,你只能用键访问值,用值访问键是不被允许的
print(students_1) #访问字典
#输出:
lihua
{'score': 97, 'name': 'lihua'}
#如果要添加键值对:
students_1['sno'] = 1001
students_1['sage'] = 18
print(students_1)
#输出:
{'score': 97, 'name': 'lihua', 'sno': 1001, 'sage': 18}
你也可以修改字典中的值,这里不再举例
删除键值对
用del永久删除字典中的已知键值对
students_1 = {'score':97,'name':'lihua'}
del students_1['score']#有关score的键值对被永久删除
#当一个字典中的键值对较多时,你也可以这样定义他们:
students_1 = {
'name':'lihua',
'score':97,
'sno':1001,
'sage':18,
'sdept':'math',
}
2. 遍历字典
用方法items()实现对字典的完全遍历:
students_1 = {
'name':'lihua',
'score':97,
'sno':1001,
'sage':18,
'sdept':'math',
}
for key,value in students_1.items():
print(key)
print(value)
#遍历结果不再给出
用方法keys()实现只对字典键的遍历:
for key in students_1.keys():
print(key)
在遍历字典时,如果没有指明方法,会默认遍历所有的键,即下面这种:
for key in students_1:
print(key)
用方法values()遍历字典中的所有值:
for value in students_1.values():
print(value)
如果存在重复值,而又想剔除它们,可以用set集合:
for value in set(students_1.values()): #此时返回一个没有重复值的列表
print(value)
注意:以上所述的三种方法,它们返回的都是列表,因此对列表可以使用的操作在这里也可使用;
3. 字典列表
通过上面的例子你可能发现了,students_1只是一个学生的数据,怎么存储多个学生的呢,这时就要用字典列表,字典列表是嵌套着字典的列表;
students_1 = {'name':'lihua','score':97}
students_2 = {'name':'zhangsan','score':95}
students_3 = {'name':'xiaoming','score':94}
students = [students_1,students_2,students_3] #创建一个包含三个学生数据的字典列表
for student in students:
print(student)
4. 在字典中存储列表
嵌套着列表的字典:
定义一个字典,它表示一本杂志,包括价格、内容、页数,其中内容又以列表的形式表示
magazine = {
'price':27,
'contents':['math','history','music'],
'pages':150,
}
如何输出它呢?如果直接整体输出,那么各种符号也会被跟着输出,但我们并不需要这些东西
于是这里可以用一个嵌套循环来解决:
for key,value in magazine.items():
if(key != 'contents'): #这里的判断体能用不等来解决问题就别用等于,大多情况下判断等于比判断不等要慢得多
print(key)
print('\t' + str(value))
else:
print(key)
for v in value:
print('\t' + v)
#输出:
price
27
contents
math
history
music
pages
150
5. 在字典中存储字典
嵌套着字典的字典将是复杂的,因为字典里的键都不一样,这就会导致对字典的处理格外复杂,这里只举一个例子:
定义一个字典 商场,商场里有玩具和蔬菜,玩具和蔬菜又分别包括种类、最低价和最高价
market = {
'toys':{
'kinds':9,
'minprice':7,
'maxprice':198,
}
'vegetables':{
'kinds':16,
'minprice':1.6,
'maxprice':18.8,
}
}
这里嵌套的字典的键都是一样的,这种的还算简单,如果嵌套的字典的键也不一样的话,就会非常复杂;