《Python编程入门到实践》 第五章 if语句

动手试一试
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循环对特定的列表进行处理等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值