上篇总结了Python字典的使用,这篇总结一下Python的用户输入和while循环。本篇已经是Python从入门到实践系列的第六篇了,迄今为止,我们的程序仍然没有人机交互,本篇将通过获取用户输入并使用while控制程序的运行时间,达到人机交互的目的。
目录
input()让程序暂停运行,等待用户输入一些文本,我们获取到用户输入的文本后,可以做一些操作。
input()可以带一个参数,通常我们指定对用户的提示。例如,我们让用户输入他的名字,我们获取后输出他的名字:
- message = input("Please input your name:")
- print("Your name is :" + message)

通过input接受到的输入为字符串,如果我们想要获取用户输入的年龄并且根据年龄告诉他是成年人还是小孩,该怎么做?可以通过int()把输入的信息转为数字。
- message = input("Please input your name:")
- print("Hello, " + message)
- age = input("How old are you?")
- if int(age) < 13:
- print("You are a child.")
- elif int(age) < 18:
- print("Your are a teenager.")
- else:
- print("Your are an adult")

上面我们已经通过input实现了和用户的人机交互,并且结合if条件判断语句实现了对用户输入信息的简单使用。接下来,我们将学习while循环。while循环不断地运行,直到指定的条件不满足为止。
我们可以使用while循环做很多事情,你可以使用while循环来数数,例如,下面的while循环从1数到10:
- num = 0
- while num < 10:
- num += 1
- print(num)
或者:
- num = 1
- while num <= 10:
- print(num)
- num += 1
以上两种方式都能达到从1-10数数的目的。前者是先+1再输出,后者是先输出再+1。
可使用while循环让程序在用户愿意时不断地运行,例如,我们给用户两个选择,要么输入信息,要么输入退出值(quit):
- message = "You can input message and I will repeat it back to you.Enter 'quit' to end."
- result = ""
- while result != "quit":
- result = input(message)
- if result != "quit":
- print(result)

我们可以定义一个变量,用于判断整个程序是否需要继续进行。
- message = "You can input message and I will repeat it back to you.Enter 'quit' to end."
- flag = True
- while flag:
- result = input(message)
-
- if result == "quit":
- flag = False
- else:
- print(result)

要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用 break语句。
- message = "You can input message and I will repeat it back to you.Enter 'quit' to end."
- flag = True
- while flag:
- result = input(message)
-
- if result == "quit":
- break
- else:
- print(result)

要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它 不像break语句那样不再执行余下的代码并退出整个循环。例如,输出1-10中的奇数:
- num = 0
- while num < 10:
- num += 1
- if num % 2 == 0:
- continue
- else:
- print(num)

在这里如果使用break替换continue,将会在第一次满足偶数时退出循环结束程序,只会输出一次1
每一个while都必须指定退出的条件,否则程序会陷入无限循环或死循环。
如下代码演示了如何把所有元素从一个列表移动到另一个列表:
- languages = ["python", "java", "c++"]
- languages1 = []
- while languages:
- print(languages)
- language = languages.pop()
- languages1.append(language)
- print(languages1)

我们在本系列的第二篇Python从入门到实践(三)列表_heart荼毒的博客-CSDN博客提到过,使用remove删除指定值的元素时,一次只会删除一个元素,并不会把列表中所有特定值元素全部删除。那么,如果列表中有多个重复的元素,如何删除?
- languages = ["python", "java", "python", "c++", "python"]
- print(languages)
- while "python" in languages:
- languages.remove("python")
- print(languages)

本篇总结了input和while循环的使用,包括break和continue以及while循环在列表里的简单使用。下一篇将总结Python中函数的使用。函数让你能够将程序分成多个很小的部分,其中每部分都负责完成一项具体任务。