by 《Python编程从入门到实践》
三、关于if语句、用户输入和while循环
(17)if语句、用户输入
if语句的重点在于条件表达式和if-elif-else结构。
cars = ['audi','bmw','subaru','toyota']
#Python在比较时会区分大小写,用.lower()和.upper()转换大小写
car = input("请输入车的品牌:")
if car.lower() in cars:
print("This is a car!" + car.lower())
#如果要检查特定值不包含在列表中,用not in
#例如 if car not in cars:
运行结果
请输入车的品牌:AUDI
This is a car!audi
age = input("请输入你的年龄:")
age = int(age)
#也可以写成 age=int(input())
if age < 18 and age >= 0:
print("未成年人!")
elif age >=18 and age <= 35:
print("年轻人啊!")
elif age > 35 and age <= 60:
print("青年人!")
elif age >100 or age < 0:
print("输错了吧!")
else:
print("老年人!")
(18)while循环——使用标志
while循环用法,配合条件判断完成
#从1数到5
num = 1
while num <= 5:
print(num)
num += 1
在要求很多条件都满足才能继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志,充当了程序的交通信号灯。你可以让程序在标志位True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。
prompt = "\nEnter the city you have visited: "
prompt += "\n(Enter 'quit' when you are finished.)"
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print("You have visited " + message)
运行结果
Enter the city you have visited:
(Enter ‘quit’ when you are finished.)New York
You have visited New York
Enter the city you have visited:
(Enter ‘quit’ when you are finished.)quit
(19)break以及continue
break语句用来立即退出循环。包括退出遍历列表或字典的for循环。
#这个程序只会从1打印到4,因为当num=5时,会立即结束循环。
num = 1
while num < 10:
if num == 5:
break
print(num)
num += 1
continue跳过当前循环,返回到循环开头,并根据条件测试结果决定是否继续执行循环。
#运行程序,会输出1、3、5、7、9四个数字,因为偶数都被跳过输出语句了。
num = 0
while num < 10:
num += 1
if num % 2 ==0:
continue
print(num)
#另外,假设num初始值为1,如果把num+=1放到continue之后,那么循环将一直执行下去。
#程序会卡在num=2处而无法继续向下运行。自行体会。
(20)使用while循环来处理列表和字典
在列表之间移动元素
#创建一个待验证用户列表
#再创建一个用于存储已验证用户的空列表
unconfirmed_users = ['alice','bob','candace']
confirmed_users = []
#验证每个用户,将经过验证的都移动到已验证用户列表中
while unconfirmed_users:
user = unconfirmed_users.pop()
confirmed_users.append(user)
print(unconfirmed_users)
print(confirmed_users)
#unconfirmed_users将成为空列表;所有元素都在confirmed_users中。
#pop会从列表最后一个元素开始弹出,所以confirmed_users的存储顺序与unconfirmed_users是相反的。
删除包含特定值的所有列表元素
pets = ['dog','cat','goldfish','cat','dog','rabbit','cat','horse','cat']
while 'cat' in pets:
pets.remove('cat')
print(pets)
使用用户输入来填充字典
responses = {}
active = True
while active:
name = input('what\'s your name? ')
age = int(input('Your age? '))
responses[name] = age
repeat = input('Another one?(yes/no) ')
if repeat.lower() == 'no':
active = False
print(responses)