函数input()
函数input()让程序暂停运行,等待用户输入一些文本,待用户输入之后将其存储在一个变量当中。
举个例子:
message = input("Please tell me your names and address: ")
print(message)
函数input()接受一个参数:要把用户要做的操作显示出来,然后用户输入。这里就是要求用户输入自己的名字和地址,然后按enter键继续运行。输入存储到变量message中。特别注意,input()函数把用户的输入解读成字符串了,就算你输入的是数字。
使用int()来获取数值输入
age = input("Please tell me your ages: ")
age
'21'
在这个例子中可以发现我们的age输入的是int型,最后变成了字符串。上面我也说了input()函数把所有的输入都变成了字符串。如果你想使用整数,那么使用int()函数来转换。
age = input("Please tell me your ages: ")
age = int(age)
if age >= 18:
print("You are adult")
这样使用就不会报错,否则会报类型错误。
求模运算符
在处理数值信息的时候,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数:
4%3
1
5%3
1
6%3
0
可以用来判断奇偶,用2来当除数。
注意python2.7版本的输入函数是raw_input()
while 循环介绍
使用while循环
number = 1
while number <= 5:
print (number)
number += 1
1
2
3
4
5
让用户选择何时退出
pro = "\nTell me something,'quit' to end. "
message = ""
while message != 'quit':
message = input(pro)
if message != 'quit':
print(message)
message 首次比较用的是初始值空串,然后进入循环,再给其赋值,判断为非 ‘quit’打印,然后进行下一次循环,其实逻辑虽然对的,但是用了两次一样的判断,所以应该可以改善。
使用标志改善代码
pro = "\nTell me something,'quit' to end. "
active = True
while active:
message = input(pro)
if message == 'quit':
active = False
else:
print(message)
这样就简化了代码,只需要看标志位进行判断是否继续循环,代码逻辑相同的变少了。但是如果还想简化,继续看下面。
使用break退出循环
pro = "\nTell me something,'quit' to end. "
while True:
message = input(pro)
if message == 'quit':
break
else:
print (message)
使用break随时退出循环,不用等到下一次判断,也不用初始化一个变量,直接无限循环,逻辑清楚。比较推荐这种写法。
在循环中使用continue
number = 0
while number < 10:
number += 1
if number % 2 == 0:
continue
print (number)
1
3
5
7
9
打印奇数,注意判断是小于10,不能等于,不然会出现多执行一次的情况。因为在循环里面是先加一再进行下面的操作的,如果是先操作再加一,就可以 <= 10 .
避免无限循环
写代码的时候要避免 无限循环,最好是自己加一个测试,防止出现这种问题,这也是高级程序员所具备的技能。
使用while循环来处理列表和字典
在列表之间移动元素
u_users = ['alice','bob','tom']
c_users = []
while u_users:
t_user = u_users.pop()
c_users.append(t_user)
for c_user in c_users:
print(c_user.title())
Tom
Bob
Alice
删除包含特定值的所有列表元素
pets = ['dog','cat','cat','rabbit','goldfish','dog']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
['dog','cat','cat','rabbit','goldfish','dog']
['dog','rabbit','godlfish','dog']
循环调用remove()方法删除cat,remove只删除一次。
使用用户输入来填充字典
responses = {}
polling_active = True
while polling_active:
name = input("\nWhat is your name? ")
response = input("\nPlease tell me your address: ")
responses[name] = response
repeat = input("Continu?(yes/no): ")
if repeat == 'no':
polling_active = False
for name,response in responses:
print(name + responese)
其实也可以直接使用break,这样简单。
总结
这一节我们学习了如何使用input()函数来让用户输入信息,还涉及到字符串和数字的转换,以及while循环的工作方式,以及多种控制循环的方式,有标识符,break,continue。以及如何使用while移动列表之间的元素,还有如何删除所有的特定值,最后结合循环来使用字典和input()函数。