Python编程:从入门到时间 第五、六章学习笔记

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())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值