Python如何获取用户输入

4,053 阅读6分钟

本文首发于公众号「猿天罡」,转载请注明出处,谢谢!

有时候,我们编写的程序需要从用户那儿“拿到”一些数据才能继续执行下去,比如,判断某人是否到了法定投票年龄,需要用户自己输入名字和年龄才行。

Python要“拿到”用户输入的数据比起Java来可简单多了,只需要学会input()方法即可。

下面我们一起来学习一下input()函数的基本用法,迈出编写交互式程序的第一步!

1.函数input()的工作原理

input()方法会先向控制台输出提示语(如果你设置了的话,后面会讲),然后暂停程序,等待用户输入一些文本数据。获取到用户输入的数据后,Python将其存储在一个变量中,以便之后使用。

举个例子,下面的程序让用户输入年龄(暂时不判断是否可以投票),再将用户年龄打印出来:

age = input("小盆友,今年多大啦?请在下方输入你的年龄:\n")
print("我今年 " + age + " 岁")

函数input()接受一个参数,即要向用户显示的提示或说明,让用户知道该如何做。

在上面的示例中,我们传给input()函数的参数是小盆友,今年多大啦?请在下方输入你的年龄:\n。程序会把这个参数输出到控制台,用户可以看到这个参数(提示)。

然后用户根据提示输入自己的年龄,输入完成后,当用户按下回车键,程序会继续执行,并将用户输入存储在变量age中,最后被我们打印输出。

说明一下,不同IDE的控制台可能有细微的区别,我用的是PyCharm,用户输入的内容是彩色的。如果你用的是别的IDE没有彩色可别大惊小怪哦。

别看上面程序短小,其实暗含很多信息:

  1. 如果需要给用户提示信息,就把提示信息(通常是字符串)传给input()方法。当然,你也可以什么也不传,程序照样正常执行,就是用户体验不太好;

  2. 不论用户输入的是什么,Python都会将其转化成str类型。

关于第二点,我们来具体看看:

age = input("小盆友,今年多大啦?请在下方输入你的年龄:\n")
print(type(age))

我们把变量age的数据类型输出看看:

可以看到输入的"18"确实是str类型,这也就解释了为什么上面的代码中age可以不做转化直接与字符串进行拼接了。

2.投票程序

知道了input()函数的基本用法之后,其实我们已经能够实现投票程序了。不过在此之前还需要恶补一个小知识点。

我们知道input()函数获取到的用户输入理论上都是str类型(字符串)。

但是投票程序需要用数字去比较大小,要知道"18"18是不一样的,前者是字符串,后者是数字,只有数字18才可以直接进行大于、小于或等于之类的比较。

问题:怎么把str类型转化成整数类型呢?

答:用函数int(),参数是要转化的字符串。

age = input("小盆友,今年多大啦?请在下方输入你的年龄:\n")
print(type(age))
# 把str类型转化成int类型
n = int(age)
print(type(n))

我们把str类型的变量age转化成了int类型并将其赋值给变量n,所以type(n)输出的应该是int类型。

从图中可以看到,真的转化成功了。

**总结:**str类型转int类型,使用int()函数,被转化的字符串必须形式上是整数但类型是str。

现在万事俱备,一起来实现投票程序吧:

name = input("请输入你的姓名:")
age = input("请输入你的年龄:")
age = int(age)
if age >= 18:
    print(name + ",你已达到法定投票年龄!")
else:
    print(name + ",很遗憾,你暂时无法参与投票!")

首先定义了两个变量nameage来接收用户输入的姓名和年龄。需要注意的是,这两个变量此时都是str类型。

然后需要把用户输入的年龄与法定投票年龄(18)进行比较,所以要求用户输入的年龄得是整数类型,所以使用了函数int()。关于函数的概念之后文章会讲到,如果你没有相关概念,就将其理解成一个黑箱,不必深究,只需要知道函数int()经过某些处理,可以把str类型转化成int类型就行了。

最后与18进行比较,大于等于18的可以投票,否则无法投票。

大于等于18岁的运行结果:

小于18岁的运行结果:

3.判断奇偶数

写这个呢,一方面是想巩固练习一下input()函数,另一方面是想讲讲前面几篇文章里没有提到却相当重要的一个运算符--%求模运算符。

小伙伴们可能对加(+)、减(-)、乘(*)、除(/)、乘方(**)很熟悉。遗忘的同学可以点击看我这篇文章

求模运算符就是计算两个数相除的余数

用求模运算符来计算图示算式:

23 % 5

计算结果肯定是3。

言归正传,怎么判断某个数是奇数还是偶数呢?

我们知道,能被2整除的数是偶数,不能被2整除的数是奇数。整除的意思说白了就是余数为0,这恰好是求模运算符%擅长的领域。

假设存在某个整数X,如果:

X % 2 == 0 # X和2求模余数是0

则说明X是偶数,否则X一定是奇数。

基本思路理解之后,动手编程咯:

number = input("请输入一个整数,程序将自动判断奇偶:")
number = int(number)

if number % 2 == 0:
    print("\n数字" + str(number) + " 是偶数")
else:
    print("\n数字" + str(number) + " 是奇数")

首先定义变量number去接收用户输入的整数,心里要知道number接收到的是str类型,它无法直接和2执行求模运算。

然后将str类型变量number转化成int类型,这时number就可以和2执行求模运算了。

最后判断求模结果,即number与2相除的余数是不是0,等于0的话就是偶数,否则就是奇数。

运行结果:

求模运算符在编程中使用的还是蛮多的,和加减乘除等运算一样重要,如果你之前没有使用过的话,请务必牢记。

4.结语

本文重点讲述了input()函数的基本用法,顺便说明了str类型怎么转成int类型以及求模运算符的使用。

如果这篇文章对你有所帮助,欢迎点赞、转发加收藏啦~

或者你有任何疑问,可以扫码关注下方公众号,随时与我联系,关于Python相关的文章也会首发在此公众平台。

最后,感谢你的阅读,我们下期再见。