动手试一试
1.编写一系列条件测试,将每个测试以及你对其结果的预测和实际结果都打印出来
car = 'subaru'
print("Is car =='subaru'?I predict True")
print(car == 'subaru')
print("\n Is car =='audi'?I predict False.")
print(car == 'audi')
结果:
Is car =='subaru'?I predict True
True
Is car =='audi'?I predict False.
False
2.更多的条件测试:包括
1)检查两个字符串相等和不相等
2)使用函数lower()的测试
3)检查两个数字相等、不等、大于、小于、大于等于和小于等于
4)使用关键字and和or的测试
5)测试特定的值是否包含在列表中
6)测试特定的值是否未包含在列表中
list = ['a','B','c','d','e','F','g']
for value in list:
if value == 'c':
print('c is in the list!')
if value == 'F':
print(value.lower())
age1 = 12
age2 = 18
age3 = 24
if(age1 == age2):
print('The age is same.')
if(age3 >= age2):
print('OK!')
if(age2 != 20):
print('You are right.'+ str(age2) +'不是20.')
if((age1 > 18 and age2 >18)or(age2>18 and age3 >18)or(age1 >18 or age3>18)):
print('There are two adults at least.')
if(age1 >18 or age2 >18 or age3>18):
print('There is a person can go to play at least.')
test = 'F'
print(test in list )
print(test not in list )
结果:
D:\anaconda\python.exe D:/JJpython/xuexi/NO3.py
c is in the list!
f
OK!
You are right.18不是20.
There are two adults at least.
There is a person can go to play at least.
True
False
3.外星人颜色1:假设在游戏中刚刚射杀了一个外星人,请创建一个名为alien_color的变量,将其设置为’green’,‘yellow’,‘red’
1)编写一条if语句,检查外星人是否是绿色的;如果是,打印一条消息,指出玩家获得了5个点;
2)编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版本中未通过
alien_color = 'green'
if alien_color == 'green':
print('You got 5 points!')
alien_color = 'yellow'
if alien_color == 'green':
print('You got 5 points!')
结果:
You got 5 points!
4.外星人颜色2:像练习3那样设置外星人的颜色,并编写一个if-else 结构。
1)如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5个点。
2)如果外星人不是绿色的,就打印一条消息,指出玩家获得了10个点。
3)编写这个程序的两个版本,在一个版本中执行if 代码块,而在另一个版本中执行else 代码块。
版本1(执行if)
alien_color = 'green'
if alien_color == 'green':
print('You got 5 points!')
else:
print('You got 10 points!')
结果:
You got 5 points!
版本2(执行else)
alien_color = 'yellow'
if alien_color == 'green':
print('You got 5 points!')
else:
print('You got 10 points!')
结果:
You got 10 points!
5.外星人的颜色3:
1)将练习4中的if-else 结构改为if-elif-else 结构。
2)如果外星人是绿色的,就打印一条消息,指出玩家获得了5个点。
3)如果外星人是黄色的,就打印一条消息,指出玩家获得了10个点。
4)如果外星人是红色的,就打印一条消息,指出玩家获得了15个点。
5)编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。
#版本1 黄色
alien_color = 'yellow'
if alien_color == 'green':
print('You got 5 points!')
elif alien_color == 'yellow':
print('You got 10 points!')
else:
print('You got 15 points!')
#版本2 绿色
alien_color = 'green'
#版本3 红色
alien_color = 'red'
结果:
#版本1
You got 10 points!
#版本2
You got 5 points!
#版本3
You got 15 points!
6.人生的不同阶段 :设置变量age 的值,再编写一个if-elif-else 结构,根据age的值判断处于人生的哪个阶段。
1)如果一个人的年龄小于2岁,就打印一条消息,指出他是婴儿。
2)如果一个人的年龄为2(含)~4岁,就打印一条消息,指出他正蹒跚学步。
3)如果一个人的年龄为4(含)~13岁,就打印一条消息,指出他是儿童。
4)如果一个人的年龄为13(含)~20岁,就打印一条消息,指出他是青少年。
5)如果一个人的年龄为20(含)~65岁,就打印一条消息,指出他是成年人。
6)如果一个人的年龄超过65(含)岁,就打印一条消息,指出他是老年人。
age = int(input())
if age <2:
print('He is a baby.')
elif age>= 2 and age <4 :
print('He is starting to walk.')
elif age >=4 and age <13:
print('He is a child.')
elif age >=13 and age <20:
print('He is an adult.')
elif age >=20 and age<65:
print('He is a men.')
elif age >= 65:
print('He is a older.')
else:
print('ERROR.')
注意:
age = input()时,代码运行会报错:TypeError: ‘<’ not supported between instances of ‘str’ and ‘int’,这是由于input是返回str字符型,所以应该将其转化为int数字型。故age = int(input())。
结果:
24
He is a men.
7.喜欢的水果 :创建一个列表,其中包含你喜欢的水果,再编写一系列独立的if 语句,检查列表中是否包含特定的水果。
1)将该列表命名为favorite_fruits ,并在其中包含三种水果。
favorite_fruits = ['watermelon','bananas','apple','strawberry']
2)编写5条if 语句,每条都检查某种水果是否包含在列表中,如果包含在列表中,就打印一条消息,如“You really like bananas!”
if "bananas" in favorite_fruits:
print("You really like bananas.")
if "apples" in favorite_fruits:
print("You really like apples.")
if "oranges" in favorite_fruits:
print("You really like oranges.")
if "pineapples" in favorite_fruits:
print("You really like pineapples.")
if "watermelon" in favorite_fruits:
print("You really like watermelon.")
结果:
You really like bananas.
You really like watermelon.
8.以特殊方式跟管理员打招呼 :创建一个至少包含5个用户名的列表,且其中一个用户名为’admin’。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。
1)如果用户名为’admin’ ,就打印一条特殊的问候消息,如“Hello admin, would you like to see a status report?”。
2)否则,打印一条普通的问候消息,如“Hello Eric, thank you forlogging in again”。
contoller_name = ['admin','Eric','Jason','Jeck','Amy']
contoller = 'admin'
if contoller in contoller_name:
print('Hello admin, would you like to see a status report?')
else:
print('Hello '+contoller+' thank you forlogging in again')
结果:
#用户名为admin
Hello admin, would you like to see a status report?
#用户名为abc
Hello abc thank you forlogging in again
9.处理没有用户的情形 :在为完成练习8编写的程序中,添加一条if 语句,检查用户名列表是否为空。
1)如果为空,就打印消息“We need to find some users!”。
controller_name = ['admin','Eric','Jason','Jeck','Amy']
controller = 'abc'
if controller in controller_name:
print('Hello admin, would you like to see a status report?')
else:
print('Hello '+controller+' thank you forlogging in again')
if controller:
print("We have " + str(len(controller_name)) + " users." )
else :
print("We need to find some users!")
2)删除列表中的所有用户名,确定将打印正确的消息。
for num in range(1,6):
controller_name.pop()
print(controller_name,'We have '+str(len(controller_name))+' controller.')
结果:
[] We have 0 controller.
10.检查用户名 :按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
1)创建一个至少包含5个用户名的列表,并将其命名为current_users 。
2)再创建一个包含5个用户名的列表,将其命名为new_users ,并确保其中有一两个用户名也包含在列表current_users 中。
3)遍历列表new_users ,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。确保比较时不区分大消息;换句话说,如果用户名’John’ 已被使用,应拒绝用户名’JOHN’。
current_users = ['a','B','C','d','E']
new_users = ['b','f','g','D','w']
current_users = [user.lower() for user in current_users]
#print(current_users) ['a', 'b', 'c', 'd', 'e']
new_users = [user.lower() for user in new_users]
#print(new_users) ['b', 'f', 'g', 'd', 'w']
for people in new_users:
if people in current_users:
print(people +' The name has exited,Please rename again.')
结果:
b The name has exited,Please rename again.
d The name has exited,Please rename again.
11.序数 :序数表示位置,如1st和2nd。大多数序数都以th结尾,只有1、2和3例外。
1)在一个列表中存储数字1~9。
2)遍历这个列表。
3)在循环中使用一个if-elif-else 结构,以打印每个数字对应的序数。输出内容应为1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每个序数都独占一行。
numbers = [1,2,3,4,5,6,7,8,9]
for num in numbers:
if num == 1:
print(str(num) + 'st')
elif num ==2:
print(str(num) + 'nd')
elif num ==3:
print(str(num) +'rd')
else:
print(str(num) +'th')
结果:
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
小结:
在本章,学习了如何编写结果要么为True要么为False的条件测试;如何编写简单的if语句,if-else语句和if-elif-else结构,在程序中,使用了这些结构来测试特定的条件以确定这些条件是否满足,高效的for循环对特定的列表进行处理等。