一、用户输入
input() 函数可以让用户进行输入,即input() 函数让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python 将其赋给一个变量。
input() 函数接受一个参数,即要向用户显示的提示,让用户知道该输入什么样的信息,比如:
message = input("你需要输入你的姓名:\n")
print("你的姓名:" + message)
使用 input() 函数时,都应指定清晰易懂的提示。
1、int()函数
在使用 input() 函数时,Python 会将用户输入解读为字符串。如果需要获取的输入为数值时,则可以使用函数 int() 将输入的字符串转换为数值。
age = input("你多大了?")
age = int(age)
print(age >= 18)
2、求模运算
number = input("请输入一个数字")
number = int(number)
if number % 2 == 0:
print(f"\nT数字 {number} 是偶数")
else:
print(f"\n数字 {number} 是奇数")
二、while 循环
i = 1
while i <= 5:
print(i)
i += 1
输出结果:
1
2
3
4
5
1、标志
在复杂的程序中,有很多不同的事件会导致程序停止运行,在要求满足很多条件才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志(flag)。在 while 语句中就只需检查一个条件:标志的当前值是否为 True。
prompt = "输入-1即可停止程序"
active = True
while active:
message = input(prompt)
if message == '-1':
active = False
else:
print(message)
2、break 与 continue
不管条件测试的结果如何,想立即退出 while 循环,不再运行循环中余下的代码,可使用 break 语句;要返回循环开头,并根据条件测试的结果决定是否继续执行循环,可使用 continue
语句,它不像 break 语句那样不再执行余下的代码并退出整个循环。
## continue
i = 0
while i < 6:
i += 1
if i % 2 == 0:
continue
print(i)
输出结果:只输出1~6的奇数
1
3
5
## break
i = 0
while i < 6:
i += 1
if i % 2 == 0:
break
print(i)
输出结果:只要有偶数就退出while
1
三、使用while处理列表和字典
1、移动元素
下面我们通过模拟用户验证过程,使用while循环操作列表,即移动列表元素
unconfirmed_users = ['aa', 'bb', 'cc']
confirmed_users = []
# 验证每个用户,直到没有未验证用户为止
# 将每个经过验证的用户都移到已验证用户列表中
while unconfirmed_users:
user = unconfirmed_users.pop()
print(f"正在验证的用户是: {user.title()}")
confirmed_users.append(user)
# 显示所有的已验证用户
print("\n以下用户已验证完成:")
for confirmed_user in confirmed_users:
print(confirmed_user.title())
正在验证的用户是: Cc
正在验证的用户是: Bb
正在验证的用户是: Aa以下用户已验证完成:
Cc
Bb
Aa
2、删除元素
之前我们是使用 remove() 函数来删除列表中的特定值,之所以可行,是因为要删除的值在列表中只出现了一次。如果要删除列表中所有为特定值的元素,则需要使用循环来实现。
假设有一个动物列表,其中包含多个值为 'dog' 的元素。要删除所有这些元素,直到列表中不再包含值 'dog',如下所示:
pets = ['dog', 'cat', 'dog', 'fish', 'cat', 'rabbit', 'dog']
print(pets)
while 'dog' in pets:
pets.remove('dog')
print(pets)
输出结果:
['dog', 'cat', 'dog', 'fish', 'cat', 'rabbit', 'dog']
['cat', 'fish', 'cat', 'rabbit']
3、input() 填充字典
responses = {}
# 设置一个标志,指出调查是否继续
flag = True
while flag:
# 提示输入被调查者的名字和回答
name = input("\n请问您的名字是? ")
response = input("哪首歌是您最喜欢的呢? ")
# 将回答存储在字典中
responses[name] = response
# 看看是否还有人要参与调查
repeat = input("还有其他人参与问卷吗(是/否)")
if repeat == '否':
flag = False
# 调查结束,显示结果
print("\n--- 输出结果 ---")
for name, response in responses.items():
print(f"{name} 最喜欢的是 {response}.")
程序首先定义了一个空字典(responses),并设置了一个标志 flag。