刚开始学编程的你,是不是也遇到了这个奇怪的问题:在黑乎乎的窗口里输入第一行代码 birth = input('birth: '),一按回车,光标就卡住了,根本不让你输入后面的 if 判断语句?
别慌,你没有做错什么!这只是因为你和Python“聊天”的方式有点小误会。看完这篇Tips,你就全明白了。
🤔 你遇到的问题
你在一个带 >>> 符号的窗口里,像这样输入代码:
```python
>>> birth = input('birth: ')
birth: # 然后光标就停在这里,不让你输下一行了你本来想告诉Python一个完整的计划(先问年份,再做判断),但Python把它当成了一句一句的对话。
🧐 问题出在哪?—— “对话模式” vs “读信模式”
你遇到的 >>> 窗口,叫做Python交互式解释器。你可以把它想象成和Python的“对话模式”。
对话模式 (
>>>):你说一句,Python就立刻执行一句。当你让它input()时,它的任务就是“等待用户输入”,所以它会停下来,忠实地等你给它一个年份。在它等到答案之前,它不会听你讲下一句话(也就是你的if语句)。读信模式 (
.py文件):这是我们推荐的正确方式!你把所有想让Python做的事情(你的完整代码)全部写在一封信里(一个.py文件),然后一次性交给Python。Python会打开信,从头到尾读一遍,然后完美地执行你的所有指令。
⚠️ 一个隐藏的“坑”:数字 VS 文字
在修改代码前,你还需要知道一个小秘密:
input() 函数收到的任何东西,无论是数字 1999 还是文字 hello,在Python眼里一律都是文字(字符串)。
这就好比你问别人的年龄,别人写在一张纸条上给你。你拿到的是“纸条”,而不是可以直接比较大小的“年龄”。你需要先把纸条上的文字“1999”转换成真正的数字 1999。
在Python里,我们用 int() 函数来做这个转换。
✅ 正确姿势:这样写代码才对!
忘掉 >>> 的对话模式吧!对于超过一行的代码,我们用“读信模式”来完成。
第1步:创建“信件”(.py文件)
打开任何一个文本编辑器(比如记事本、VS Code、Sublime Text等),创建一个新文件,把它保存为 check_age.py。文件名可以随便取,但后缀必须是 .py。
第2步:写下你的完整计划
把下面这段修正后的完整代码复制到 check_age.py 文件里。
Python
# 1. 提示用户输入,并用一个变量接收这个"文字"
birth_text = input('请输入你的出生年份: ')
# 2. (关键!) 把收到的"文字"转换成真正的"数字"
birth_year = int(birth_text)
# 3. 现在可以用这个"数字"来做比较和判断了
if birth_year < 2000:
print('哇,你是00前!')
else:
print('哈,你是00后!')第3步:把“信”交给Python
打开你的终端(Windows上叫
命令提示符或PowerShell,macOS上叫终端或Terminal)。使用
cd命令进入到你保存check_age.py文件的那个文件夹。输入以下命令,然后按回车:
Bash
python check_age.py现在,程序就会按照你的完整计划执行了!它会先问你年份,你输入后,它会接着进行判断并打印结果。
请输入你的出生年份: 1995 哇,你是00前!
📝 总结一下
>>>是用来临时测试单行代码的“对话模式”。写超过一行的正式代码,请保存在
.py文件里,用“读信模式”运行。input()得到的是文字,如果要做数学比较,记得用int()把它变成数字。
搞定!现在你已经掌握了运行Python脚本的正确方法,快去试试吧!