if语句
条件测试
条件测试:每条 if 语句的核心都是一个值为 True 或 False 的表达式,这种表达式被称为条件测试。
在Python中检查是否相等时区分大小写,如果大小写无关紧要,而只想检查变量的值,可将变量的值转换为小写,再进行比较。
car = 'Audi'
car.lower() == 'audi' #==判断是否相等
car != 'audi'#判断是否不等
检查多个条件:
- and/or
if (age >=21) and (age<=26):
print(age)
- 检查特定值是否在/不在列表中
requested_toppings = ['mushrooms','onions'.'pineapple']
'mushrooms' in requested_toppings
banned_users = ['andrew','caroline','david']
user = 'marie'
if user not in banned_users:
print(user.title() + ", you can post a response if you wish")
if语句
- if-else语句
age = 17
if age >= 18:
print("True")
else:
print("False")
- if-elif-else语句
age = 17
if age < 12:
print('1')
elif age < 18:
print('2')
else:
print('3')
- 省略else语句
age = 17
if age < 12:
print('1')
elif age < 18:
print('2')
elif age < 36:
print('3')
elif age >= 36:
print('4')
elif比使用 else 代码块更清晰些。经过这样的修改后,每个代码块都仅在通过了相应的测试时才会执行,else可能引入无效甚至恶意的数据。
- 测试多个条件
ages = [1,2,3,4ages = [1,2,3,4]
if 1 in ages:
print('True')
if 2 in ages:
print('True')
if 5 in ages:
print("True")
- 检查特殊元素
requested_toppings = ['mushrooms','green peppers','extra cheese']
for requested_topping in requested_toppings:
if requested_topping == 'green peppers':
print("Sorry,we are out of green peppers right now.")
else:
print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")
- 确定列表非空
requested_toppings = []
if requested_toppings:
print("True")
else:
print("False")
- 使用多列表
格式
在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如 == 、 >= 和 <= 等比较运算符两边各添加一个空格。
字典
字典定义
在Python中,字典是一系列键 — 值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。
字典用放在花括号{}
中的一系列键-值对表示。
alien = {'color':'green','point':5}
- 访问字典中的值
获取与键相关联的值,可依次指定字典名和放在方括号内的键。
print(alien['color'])
- 添加键-值对
字典是一种动态结构,可随时在其中添加键 — 值对。要添加键 — 值对,可依次指定字典名、用方括号括起的键和相关联的值。
alien = {'color':'green','point':5}
alien['x_position'] = 0 #添加x_position与对应的值
alien['y_position'] = 25 #添加y_position与对应的值
#排列顺序 {'color':'green','points':5,'y_position':25,'x_position':0}
键 — 值对的排列顺序与添加顺序不同。
- 创建空字典
先使用一对空的花括号定义一个字典,再分行添加各个键-值对。
alien = {}
alien['color'] = 'green'
alien['point'] = 5
- 修改字典中的值
alien = {'color':'green'}
alien['color'] = 'yellow'
- 删除键-值对
使用del
语句将相应的键 — 值对彻底删除,使用时必须指定字典名和要删除的键。
del alien['color']
- 由类似对象组成的字典
字典存储的是一个对象的多种信息,也可以使用字典来存储众多对象的同一种信息。
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
使用格式:确定需要使用多行来定义字典时,在输入左花括号后按回车键,再在下一行缩进四个空格,指定第一个键 — 值对,并在它后面加上一个逗号,在最后一个键 — 值对的下一行添加一个右花括号,并缩进四个空格,使其与字典中的键对齐。另外一种不错的做法是在最后一个键 — 值对后面也加上逗号,为以后在下一行添加键 — 值对做好准备。
print("sarah's favorite language is" +
favorite_language['sarah'].title() +
".")
将较长的 print 语句分成多行。单词 print 比大多数字典名都短,因此
让输出的第一部分紧跟在左括号后面是合理的。请选择在合适的地方拆分要打印的内容,并在第一行末尾加上一个拼接运算符( + )。按回车键进入 print 语句的后续各行,并使用 Tab 键将它们对齐并缩进一级。指定要打印的所有内容后,在 print 语句的最后一行末尾加上右括号。
遍历字典
- 遍历所有键-值对
user = {
'name':'jie',
'age':'17',
'sex':'male'
}
for key,value in user.items():
print("\nKey:" + key)
print("Value:" + value)
编写用于遍历字典的 for 循环,可声明两个变量,用于存储键 — 值对中的键和值。即便遍历字典时,键 — 值对的返回顺序也与存储顺序不同。
- 遍历字典中所有键(方法keys( ))
方法 keys() 并非只能用于遍历;它返回一个列表,其中包含字典中的所有键。
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
friends = ['jen','phil']
for name in favorite_languages.keys():
print(name.title()) #jen sarah edward phil
if name in friends:
print(favorite_languages[name].title()) #python python
- 按顺序遍历字典中所有键
在 for 循环中对返回的键进行排序,使用函数sorted( )。
for name in sorted(favorite_languages.keys())
print(name.title())
- 遍历字典中所有值(方法values())
for language in favorite_languages.values():
print(language.title())
#包含重复项
for language in set(favorite_language.values()):
print(language.title())
#剔除重复项,可使用集合(set)
嵌套
将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。
- 字典列表
# 创建一个用于存储外星人的空列表
aliens = []
# 创建30个绿色的外星人
for alien_number in range (0,30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
for alien in aliens[0:3]:
if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['points'] = 10
elif alien['color'] == 'yellow':
alien['color'] = 'red'
alien['speed'] = 'fast'
alien['points'] = 15
# 显示前五个外星人
for alien in aliens[0:5]:
print(alien)
print("...")
- 在字典中存储列表
需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
# 存储所点比萨的信息
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
}
# 概述所点的比萨
print("You ordered a " + pizza['crust'] + "-crust pizza " +
"with the following toppings:")
for topping in pizza['toppings']: #使用字典[键]
print("\t" + topping)
favorite_languages = {
'jen':['python','ruby'],
'sarah':['c'],
'edward':['ruby','go]',
'phil':['python','heskell],
}
for name,languages in favorite_languages.items(): #注意加item()
print("\n" + name.title() + "'s favorite languages are:'")
for language in languages:
print("\t" + language.title())
- 在字典中存储字典
users = {
'a':{
'first':'a1',
'last':'a2',
'location':'a3',
},
'b':{
'first':'b1',
'last':'b2',
'location':'b3',
},
}
#将键存储在username中,并依次将与键相关联的字典存储在user_info
for username,user_info in users.items():
print("\nUsername:" + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name:" + full_name.title())
print("\tLocation:" + location.title())