- if语句
- 字典
if语句
每条if语句的核心都是一个值为True 或 False 的表达式 这种表达式被称为条件测试
= : 一个等号是陈述 将值赋给变量
== :两个等号是陈述 等号两边是否相等
在Python中检查是否相等时区分大小写 若想忽略大小写 可以将变量转换成小写(.lower)
!= :检查是否不相等
使用 and 检查多个条件 :两个都为true时 结果为true
age_0 >= 21 and age_1 >=21
(age_0 >=21) and (age_1>=21)
为改善可读性 可将每个测试都分别放在一堆括号内 但并非必须这样做
使用 or 检查多个条件 :只要有一个为true 结果就为true
关键字 in 检查特定值是否包含在列表中
关键字 not in 检查特定值是否不包含在列表中
布尔表达式 : 条件测试的别称
简单的if语句
if conditional_test:
do something
if-else 语句
if conditional_test:
do something
else:
do another things
if-elif-else 结构
if conditional_test:
do something
elif conditional_test1:
do another things
else:
do other things
使用多个elif代码块
省略else代码块
else是一个包罗万象的语句 只要不满足任何 if 或 elif 中的条件测试 其中的代码就会执行 这可能会引入无效甚至恶意的数据 如果知道最终要测试的条件 应考虑使用一个 elif 代码块来代替 else 代码块
测试多个条件
如果只想执行一个代码块 就使用 if-elif-else 结构 ;
如果要运行多个代码块 就使用一系列独立的 if 语句
使用 if 语句处理列表
检查特殊元素
确定列表不是空的
if list:
do something
else:
do another thing
如果列表不为空 do something
如果列表为空 do another thing
使用多个列表
设置 if 语句的格式: 在诸如 == 、 >= 、 <= 等运算符两边各添加一个空格 这样的空格并不会影响Python对代码的解读 而只是让代码阅读起来更容易
字典
使用字典
在Python中 字典用放在花括号{} 中的一系列键-值对表示
键-值对是两个相关联的值 指定键时 Python将返回与之相关联的值
键和值之间用冒号分隔 而键值对之间用逗号分隔
例1:alien_0 = {'color': 'green', 'points': 5}
访问字典中的值
alien_0 = {'color': 'green', 'points': 5}
print(alien_0 ['color'])
>>> green
new_points = alien_0['points']
print("You just earned " + str(new_points) + " points!")
>>> You just earned 5 points!
添加键-值对
字典是一种动态结构
键-值对的排列顺序与添加顺序不同 Python不关心键-值对的添加顺序 而只关心键和值之间的关联关系
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
>>>{'color':'green', 'points': 5}
{'color':'green', 'points': 5, 'x_position': 0, 'y_position': 25}
先创建一个空列表
使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的代码时 通常都需要先定义一个空字典
可以修改字典中的值
删除键-值对
使用 del 语句将相应的键-值对彻底删除 (删除的键-值对永远消失了) 使用 del 语句时 必须指定字典名和要删除的键
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
del alien_0['points']
print(alien_0)
>>> {'color': 'green', 'points': 5}
{'color': 'green'}
由类似对象组成的字典
使用字典来存储众多对象的同一种信息
例:调查很多人 询问他们最喜欢的编程语言 (例2)
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
当语句较长时 可以选择合适的地方将内容进行拆分 并使用Tab键将它们对齐并缩进一级
print("Sarah's favorite language is "+
favorite_languages['sarah'].title() +
".")
>>> Sarah's favorite language is C.
遍历字典
遍历所有的键-值对
例3:
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0 .items():
print("\nKey: " + key)
print("Value: " + value)
>>> Key: username
Value: efermi
Key: first
Value: enrico
Key: last
Value: fermi
使用for 循环来遍历字典 可声明两个变量 用于存储键-值对中的键和值 对于这两个变量 可以使用任何名称(不限于Key or Value)
for 语句的第二部分包含字典名和方法 items() 它返回一个键-值对列表
遍历列表时 键-值对的返回顺序与存储顺序也可能不同 Python不关心键-值对的存储顺序
遍历字典中的所有键
在不需要使用字典中的值时 方法keys() 很有用
favorite_languages = {
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in favorite langrrages.keys():
print(name.title())
>>> Jen
Sarah
Edward
Phil
遍历字典时 会默认遍历所有的键 可以省略它
但是显式的使用方法keys()可以让代码更容易理解
可以结合if 语句中的语法使用 in , not in
例如:
(例2)
if 'Phil' in favorite languages.keys():
print(“yes”)
>>> yes
按顺序遍历字典中的所有键
要以特定的顺序返回元素 一种办法是在 for 循环中对返回的键进行排序
可以使用函数 sorted() 来获得按特定顺序排列的键的副本:
(例2)
for name in sorted(favorite_languages.keys()):
print(name.title() + ", think you for taking the poll.")
>>> Edward, thank you for taking the poll.
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.
遍历字典中的所有值
可以使用方法values() 它返回一个值列表 而不包含任何键
(例2)
print("The following languages have been mentioned: ")
for language in favorite_languages.values():
print(language.title())
>>> The following languages have been mentioned:
Python
C
Ruby
Python
这种做法提取字典中所有的值 而没有考虑是否充分 为剔除重复项 可以使用集合 set
集合类似于列表 但是每个元素都必须是独一无二的
print("The following languages have been mentioned: ")
for language in set(favorite_languages.values()):
print(language.title())
>>> The following languages have been mentioned:
Python
C
Ruby
嵌套
在列表中嵌套字典、在字典中嵌套列表、在字典中嵌套字典
字典列表 :在列表中存储字典
先创建字典 然后放入列表中 可以遍历列表 将每个信息都打印下来
在字典中存储列表
当需要在字典中将一个键关联到多个值时 可以在字典中嵌套一个列表
在字典中嵌套字典
注意:每位用户的字典的结构都相同 虽然Python并没有这样的要求 但这使得嵌套的字典处理起来更容易