Python技术迷

简述你对 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() 让用户输入,但这样用户会懵逼——不知道该输入什么。所以大多数情况下我们会给它加个提示字符串,就像客服说的“请您输入身份证号码”,而不是沉默等你猜。

一些小技巧

  1. 提前去掉空格用户可能会多打一个空格,用 .strip() 可以去掉前后空格:

    name = input("请输入名字:").strip()
  2. 多条件判断结合 .lower() 或 .upper(),可以不区分大小写判断:

    answer = input("你要继续吗?(y/n) ").lower()
    if answer == 'y':
        print("继续执行")
  3. 模拟密码输入如果你不想让输入显示在屏幕上,可以用 getpass 模块替代:

    from getpass import getpass
    pwd = getpass("请输入密码:")
    print("你输入了密码(不显示内容)")

总结一下

input() 就像是 Python 给你的一只“传话筒”,但它传回来的内容永远是字符串,你得自己决定要不要转换类型。它会安静地等你说完再继续执行,但如果场景不对,它可能会让你的程序傻等。

简单、小巧、容易上手,但用得多了,你会发现它能帮你做一些挺灵活的交互。

-END-

我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领