python入门学习:6.用户输入和while循环

关键点:输入、while循环

6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表

6.1 函数input()工作原理

  函数input()让程序暂停运行,等待用户输入一些文本。函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。

1message = input("Tell me something, and I will repeat it back to you:")
2print(message)   #返回输入的值

6.1.1 使用int()获取数值输入
  使用函数input()时,python将用户输入解读为字符串。

1age = input("How old are you? ")
 2print(age)                        #输入age = '21'
 3if age > 18 :                     #字符串不能和整型比较
 4    print("you are old")
 5else:
 6    print("you are too young")
 7
 8How old are you? 23
 923
10Traceback (most recent call last):
11  File "chapter6.py", line 6, in <module>
12    if age > 18 :
13TypeError: unorderable types: str() > int()

  通过int()函数将获取的字符串转换为整型

1age = input("How old are you? ")
 2age = int(age)
 3print(age)                        
 4if age > 18 :                    
 5    print("you are old")
 6else:
 7    print("you are too young")
 8How old are you? 23
 923
10you are old

6.1.2 求模运算符
  求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数:

14 % 3
21     #余数为1
35 % 3
42     #余数为2
56 % 3
60     #余数为0

6.2 while循环简介

6.2.1 使用while循环
  for循环针对集合中的每个元素的一个代码块,而while循环不断地运行,直到指定的条件满足为止。

1current_number = 1
2while current_number <=5:
3    print(current_number)
4    current_number +=1

6.2.2 让用户选择何时退出
  可使用while循环让程序在用户愿意时不断的运行,通过用户输入控制退出

1prompt = "\nTell me something,and I will repeat it back to you:"
2prompt +="\nEnter 'quit' to end the program.\n"
3message = ""
4while message != 'quit':
5    message = input(prompt)
6    if message != 'quit':
7        print(message)

6.2.3 使用标志
  有时候,在要求许多条件都满足才继续运行程序,可以定义一个变量,用于判断程序是否处于活动状态,这个变量被称为标志,充当的程序的交通信号灯。

1active = True
2while active:
3    message = input(prompt)
4    if message == 'quit'
5        active = False
6    else:
7        print(message)

6.2.4 使用break退出循环
  使用关键字break可以立即结束当前循环

1prompt = "\nPlease enter the name of a city you have visited:"
2prompt+= "\n(Enter 'quit' when you are finished.) "
3while True:
4    city = input(prompt)
5    if city == 'quit'
6        break;
7    else:
8        print("I'd love to go to " + city.title() +"!")

6.2.5 在循环中使用continue
  使用continue结束本次循环,返回当循环开始。

1current_number = 0;
2while current_number < 10:
3    current_number +=1
4    if current_number %2 == 0:
5        continue
6    print(current_number)

6.3 使用while循环处理字典和列表

  for循环是一种遍历列表的有效方式,但是在for循环中不应该修改列表,否则将导致python难以跟踪其元素。要在遍历时同时修改列表,可使用while循环。
6.3.1 在列表之间移动元素
  假设有一个列表,其中包含新注册但还未验证的网站用户;验证用户后,如何将它们转移到另一个已验证的用户列表中呢?

1unconfirmed_users = ['alice','brain','candace']
 2confirmed_users = []
 3while unconfirmed_users:
 4    current_user = unconfirmed_users.pop()
 5    print("Verfying user: "+ current_user.title())
 6    confirmed_users.append(current_user)
 7#显示所有已经验证用户
 8print("\nThe following users have been confirmed:")
 9for confirmed_user in confirmed_users:
10    print(confirmed_user.title())

6.3.2 删除包含特定值的所有列表元素
  删除一个列表中多个重复元素可使用while循环

1pet = ['dog','cat','dog','goldfish','cat','rabbit','cat']
2print(pets)
3while 'cat' in pets:
4    pets.remove('cat')
5print(pets)