目录
6.1、input()方法原理
程序运行到input()方法时,会暂停,等待用户输入文本。获取到用户输入后,程序会将其存储到一个变量中。
message = input('请输入文本:')
print(message)
输出结果:
请输入文本:我喜欢编程
我喜欢编程
注意: Sublime Text不能运行提示用户输入的程序。你可以使用Sublime Text来编写提示用户输入的程序,但必须从终端运行它们
6.1.2、用函数int()来获取数值输入
message = int(input('请输入数字:'))
print(message)
代码解析:
在示例中,当输入数字时,Python将这个数字解读为字符串,但随后int()将这个字符串转换成了数值类型。
score = input('请输入成绩:')
score = int(score)
if score >= 90:
print('恭喜你晋级啦')
else:
print('很遗憾!')
通过这个例子可以看出,我们用int()方法成功将字符串转换成数值类型
6.1.3、取模运算符
取模运算符(%)是个很有用的工具,将两数相除并返回余数。
print(4 % 3) # 1
print(5 % 3) # 2
print(6 % 3) # 0
取模运算不会指出一个数是另一个数的多少倍,而是指出余数是多少。
6.2、while循环介绍
while循环和for循环不同之处在于,while循环不断运行,直到满足指定条件后才停止。
6.2.1、while循环
num = 1
while num <= 5:
print('Python->'+str(num))
num+=1
输出结果:
Python->1
Python->2
Python->3
Python->4
Python->5
6.2.2、while循环何时退出
我们可以使while循环不断的运行,我们在其中定义一个退出值,只要用户输入的不是这个值,程序就接着运行。
information = 'Hello Word!!'
message = ''
while message != 'exit':
message = input('请输入:'+information)
if message != 'exit':
print(message)
运行结果:
information = '输入文本'
information += '\nEnter ’exit‘ to end:'
bol = True
while bol:
message = input(information)
if message == 'exit':
bol = False
else:
print(message)
运行结果:
6.2.3、while循环使用break退出循环
如果要立刻退出while循环,不再运行循环中剩下的代码,可以用break语句。break语句用于控制程序流程,可以使他来控制哪些代码行将执行,哪些代码行不执行,这样可以让程序按照我们的要求来执行。
information = '请输出你喜欢的城市名字,'
information += '输 ’exit‘ 退出:'
while True:
message = input(information)
if message == 'exit':
break
else:
print('我喜欢 '+message)
运行结果:
代码解析:
程序开头while True将不断运行,直到遇到break语句,则会跳出整个循环。
6.2.4、while循环使用continue语句
continue语句与break语句不同之处在于,continue只跳出本次循环,而break语句则是直接跳出循环,执行后面的代码。
num = 0
while num < 10:
num+=1
if num%2 ==0:
continue
print(num)
输出结果:
1
3
5
7
9
代码解析:
首先将num设置为0,由于num小于10,则会进入循环,以步长1的方式往上数,到if语句判断num取模2之后是否为0 ,如果为0,则跳出本次循环,num加1之后回到开头,再次执行while循环,如果当前数字不能被2整除,就循环余下代码块。
6.3、while循环和列表、字典结合
我们如果要处理一些用户信息:获取用户的输入,再将输入的打印出来或者作出应答,循环再次运行时,我们获取另一个输入值并作出响应,则需要while循环中嵌套列表和字典。
for循环是一种遍历列表的方法,但是for循环中不适合做对列表修改的操作。要在遍历列表的同时对其进行修改,可用while循环来实现。
6.3.1、在列表中移动元素
假定有一个列表,其中包含新注册但是未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入到另一个已验证用户列表中。
#首先,创建一个待验证的用户列表
# 和一个用于存储已经验证用户的空列表
un_users = ['tony','tom','json','mds']
con_users = []
# 验证每个用户 直到没有可验证用户未知
# 将每个验证完的列表都移到已验证用户列表中
while un_users:
cu_user = un_users.pop()
print('没有验证的用户: '+cu_user.title())
con_users.append(cu_user)
# 显示所有已验证的用户
print('完成验证用户有:')
for c_user in con_users:
print(c_user.title())
运行结果:
代码解析:
首先创建了两个列表,un_users 是没有经过验证的用户,con_users 是已经验证过的用户,是一个空列表。while循环不断运行,直到un_users列表变为空。在这循环中,函数pop()每次从列表末尾删除一个未验证的用户,之后将末尾用户存储到变量中并再添加到con_users列表中。
6.3.2、
将用户输入大批信息,循环添加到字典中。每次循环执行时都提示输入被采访者的名字和回答。将数据收集到字典中。
persons = {}
# 设置一个状态,表示是否要继续循环
state = True
while state:
# 提示用户输入采访者名字和回答
user_name = input('请输入名字:\n')
person = input('请输入你喜欢的城市:\n')
# 将输入信息存储到字典中
persons[user_name] = person
# 判断是否还有被采访的用户
per = input('还有被采访者吗?(yes:继续;no:录入完毕)')
if per == 'no':
state = False
# 输入结束,显示输入结果
print('\n-------------Results------------------')
for user_name,person in persons.items():
print(user_name+' 喜欢 '+ person)
运行结果:
6.3.3、删除列表中特定值的元素
在前面文章中,用方法remove()来删除列表中的特定值,之所以可行,是因为要删除的值在列表中只出现了一次,如果要删除出现多次的特定值,则要用while来嵌套使用。
information = ['北京','上海','内蒙古','病毒']
print(information)
while '病毒' in information:
information.remove('病毒')
print(information)
运行结果: