简述你对 input() 函数的理解。
说实话,我第一次用 input() 的时候,还以为它就是个“听我讲话”的工具。后来才发现,它比我想象的要多一些小脾气,也有几个容易被忽略的细节。
最基础的用法
在 Python 里,input() 会等你在终端里敲点东西,然后按下回车,它会把你输入的内容当作字符串返回。注意,不管你输入的是数字、字母,还是一串奇怪的符号,它返回的永远是字符串类型。
name = input("你叫什么名字? ")
print("你好," + name)
运行的时候,你会看到提示文字,然后等你输入。比如你敲了 小李 再回车,程序就会愉快地输出一句:
你好,小李
重点:返回值一定是字符串
这个细节很多新手容易踩坑,比如想直接输入一个数字然后做加法,结果就被坑了。
a = input("请输入一个数字:")
b = input("再来一个数字:")
print(a + b)
假设你输入 2 和 3,你会惊讶地看到输出是 23 而不是 5。因为 input() 返回的是字符串,+ 在这里成了字符串拼接。
如果你想得到数字,就要手动转换类型:
a = int(input("请输入一个数字:"))
b = int(input("再来一个数字:"))
print(a + b)
这样才会得到数学意义上的 5。
为什么它会阻塞程序?
input() 是一个阻塞函数,意思就是程序运行到这里会停下来等你输入,直到你按回车才会继续往下执行。这种特性特别适合做一些交互式的小脚本,比如命令行问答,或者临时调试的时候手动输入一个值。
但是在一些自动化脚本里,input() 可能会让程序一直卡着等人操作,这种场景就得考虑用参数传递或读取文件来替代。
默认不带提示,但建议加
虽然 input() 可以什么都不写,直接 input() 让用户输入,但这样用户会懵逼——不知道该输入什么。所以大多数情况下我们会给它加个提示字符串,就像客服说的“请您输入身份证号码”,而不是沉默等你猜。
一些小技巧
提前去掉空格用户可能会多打一个空格,用
.strip()可以去掉前后空格:name = input("请输入名字:").strip()多条件判断结合
.lower()或.upper(),可以不区分大小写判断:answer = input("你要继续吗?(y/n) ").lower()
if answer == 'y':
print("继续执行")模拟密码输入如果你不想让输入显示在屏幕上,可以用
getpass模块替代:from getpass import getpass
pwd = getpass("请输入密码:")
print("你输入了密码(不显示内容)")
总结一下
input() 就像是 Python 给你的一只“传话筒”,但它传回来的内容永远是字符串,你得自己决定要不要转换类型。它会安静地等你说完再继续执行,但如果场景不对,它可能会让你的程序傻等。
简单、小巧、容易上手,但用得多了,你会发现它能帮你做一些挺灵活的交互。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领