学到现在,你已经会写最简单的 Python 代码了。
比如:
print('你好,Python')
这行代码会把内容显示出来。 这叫输出。
可问题来了。
如果程序只能输出,不能接收人的信息,那它就像一个只会说话、不会听你说话的人。这样当然也能写代码,但总感觉差点意思。
真正有用的程序,往往都离不开两件事。
先接收信息 再给出结果
这就是今天要讲的输入和输出。
你可以先记住一句最简单的话。
输入,就是把信息交给程序。 输出,就是程序把结果告诉你。
把这个逻辑理解透,后面你写计算器、成绩统计、用户登录、信息录入这些程序,都会轻松很多。
一、什么是输出
输出你其实已经接触过了。
最常见的输出方式,就是 print()。
比如:
print('欢迎学习 Python')
运行后,屏幕上会显示:
欢迎学习 Python
这就是输出。
程序把一段内容显示给你看,这个过程就叫输出。
你也可以输出数字:
print(100)
输出结果:
100
还可以输出计算结果:
print(10 + 5)
输出结果:
15
所以你会发现,print() 的作用其实很直接。
把你想让程序展示的内容,显示到屏幕上。
这就是最基础的输出。
二、什么是输入
输入,就是程序从外部拿到信息。
这个信息可以是用户键盘输入的内容,也可以是以后从文件、网页、数据库里读到的数据。 但对现在的你来说,最先接触的是用户从键盘输入。
在 Python 里,最常见的输入方式是 input()。
先看最简单的例子:
input()
你运行这行代码时,程序会停在那里,等你输入内容。
你在键盘上输入一段文字,比如:
你好
然后按回车,程序才会继续往下走。
不过,只有 input() 还不够。 因为你虽然输入了内容,但程序如果不把它保存起来,后面就用不了。
所以最常见的写法是:
name = input()print(name)
你运行以后,程序会先等你输入。 比如你输入:
小明
然后按回车。 接着程序会把你输入的内容输出出来。
运行效果大概是这样:
小明小明
第一个 小明 是你自己输入的。 第二个 小明 是程序打印出来的。
这说明什么。
说明 input() 接收到了你输入的信息,并且通过变量 name 把它保存了下来。
三、输入和输出连起来,程序才开始像个程序
只会输出,程序像广播。 只会输入,程序像记事本。 输入和输出连起来,程序才真正开始互动。
比如下面这段代码:
name = input()print('你好')print(name)
你输入:
小红
运行结果大概是:
小红你好小红
这个程序已经开始有一点交流的味道了。
它先接收你的名字, 然后对你说你好, 再把你的名字显示出来。
虽然还很简单,但已经比单纯写一句 print() 更进一步了。
四、给输入加提示,程序会更友好
如果你只写:
name = input()
程序运行时,会停住等输入,但屏幕上没有任何提示。 新手可能会愣一下,不知道现在该干嘛。
所以更常见、更推荐的写法是,在 input() 里加一句提示语。
例如:
name = input('请输入你的名字:')print('你好,', name)
当程序运行时,屏幕上会先显示:
请输入你的名字:
这时用户就知道,哦,程序是在等我输入名字。
假设你输入:
小明
结果就会变成:
请输入你的名字:小明你好, 小明
这里你要重点记住:
input() 不只是接收输入 它还可以顺便显示提示信息
以后你写程序时,尽量都给用户加提示。 这样程序会清楚很多,也更像正常软件。
五、自己先做一个完整小练习
现在别只看,最好立刻动手。
新建一个文件,比如叫 input_test.py,然后输入下面代码:
name = input('请输入你的名字:')print('欢迎你,', name)
保存并运行。
如果你用终端运行,可以输入:
python input_test.py
或者 Windows 上:
py input_test.py
程序运行后,你输入自己的名字,按回车。 看一下结果是不是正确。
然后你再改一改提示语,比如改成:
name = input('请告诉我你叫什么:')print('原来你叫', name)
你只要自己亲手改一遍,就会明显感觉到输入输出的逻辑开始清楚了。
六、输入的内容,默认都是文字
这一点非常关键,也是新手最容易踩坑的地方。
先看一段代码:
age = input('请输入你的年龄:')print(age)
如果你输入:
18
程序当然能正常输出:
18
看起来好像没问题。 但实际上,这里的 18 现在还是文字,不是真正的数字。
什么意思。
也就是说,input() 接收到的内容,默认会按字符串来处理。 哪怕你输入的是 18、99、1000,在 Python 眼里,它一开始也是一段文字。
你可以自己验证一下:
age = input('请输入你的年龄:')print(age)print(type(age))
如果输入:
18
你会看到类似结果:
18<class 'str'>
这个 str 表示字符串,也就是文字。
所以你一定要记住:
input() 拿到的内容,默认都是字符串。
七、为什么这件事很重要
因为如果你以为它是数字,后面做计算时就容易出问题。
比如你写:
a = input('请输入第一个数字:')b = input('请输入第二个数字:')print(a + b)
你以为输入 10 和 20,结果应该是 30。 但实际运行时,如果你输入:
1020
输出结果很可能是:
1020
为什么会这样。
因为 a 和 b 现在都是字符串。 字符串相加,不是数学计算,而是拼接。
也就是说:
'10' + '20'
结果自然就是:
'1020'
这就是为什么输入默认是文字这件事特别重要。 你不理解这个点,后面很多计算都容易写错。
八、想让输入变成数字,要做类型转换
既然 input() 默认拿到的是文字,那如果你真的想算年龄、总价、分数,该怎么办。
很简单,把它转成数字。
最常见的方式就是 int()。
例如:
age = int(input('请输入你的年龄:'))print(age)print(type(age))
如果你输入:
18
结果就会变成真正的整数。
再看一个加法例子:
a = int(input('请输入第一个数字:'))b = int(input('请输入第二个数字:'))print(a + b)
如果输入:
1020
输出结果才会是:
30
你可以把这句代码拆开理解。
先让 input() 接收输入 再让 int() 把接收到的文字转成整数 最后把结果交给变量
虽然看起来比之前长一点,但逻辑并不复杂。
九、再做一个真正有用的小程序
下面我们写一个很像样的小练习。
场景是这样的:
让用户输入商品单价和购买数量,程序自动计算总价。
代码如下:
price = float(input('请输入商品单价:'))count = int(input('请输入购买数量:'))total = price * countprint('商品总价是:', total)
这里为什么单价用 float(),数量用 int()。
因为单价可能有小数。比如 19.9 元。 而数量一般是整数,比如买 3 个、5 个。
假设你输入:
19.93
程序输出:
商品总价是: 59.699999999999996
看到这里你可能会吓一跳。
怎么不是 59.7。
先别慌,这不是你写错了,而是浮点数计算在计算机里有时候会出现这种显示效果。现在你先知道这是正常现象就行,后面讲数字类型时我会专门解释怎么处理。
如果你想让结果更好看一点,也可以先这样写:
price = float(input('请输入商品单价:'))count = int(input('请输入购买数量:'))total = price * countprint(f'商品总价是:{total}')
十、输入输出最适合写什么入门程序
非常适合写各种信息收集和小计算。
比如下面这些,都是你现在就能试的。
用户姓名欢迎程序
name = input('请输入你的名字:')print(f'欢迎你,{name}')
年龄查询程序
age = int(input('请输入你的年龄:'))print(f'你今年{age}岁')
长方形面积计算
length = float(input('请输入长:'))width = float(input('请输入宽:'))area = length * widthprint(f'长方形面积是:{area}')
考试总分计算
chinese = int(input('请输入语文成绩:'))math = int(input('请输入数学成绩:'))english = int(input('请输入英语成绩:'))total = chinese + math + englishprint(f'总分是:{total}')
你会发现,程序突然开始有实际用途了。 这就是输入输出真正有意思的地方。
十一、新手最容易犯的几个输入错误
这一段你很可能马上就会遇到,提前看一下,能省不少时间。
第一个错误,忘了保存输入结果。
比如你写:
input('请输入你的名字:')print(name)
这就会报错。因为你只是让程序接收输入了,但没有把结果保存到 name 里。
正确写法应该是:
name = input('请输入你的名字:')print(name)
第二个错误,想计算,却忘了转数字。
比如:
a = input('请输入第一个数字:')b = input('请输入第二个数字:')print(a + b)
这会变成拼接,不是加法。
正确写法:
a = int(input('请输入第一个数字:'))b = int(input('请输入第二个数字:'))print(a + b)
第三个错误,输入的内容和转换类型不匹配。
比如你写:
age = int(input('请输入年龄:'))
结果用户输入的是:
十八
这时候程序就会报错。因为 int() 只能把像 18、20、100 这种数字形式的文字转成整数,不能把中文数字直接转过去。
第四个错误,提示写得不清楚。
比如:
a = input('请输入:')
用户可能根本不知道你到底要他输入什么。
所以提示语最好具体一点,比如:
a = input('请输入你的手机号:')
或者:
a = input('请输入商品名称:')
程序越明确,用户越不容易输错。
十二、自己动手做一个信息录入程序
下面这个练习很适合你现在做。
新建一个文件,比如 user_info.py,输入:
name = input('请输入你的姓名:')age = int(input('请输入你的年龄:'))city = input('请输入你所在的城市:')print('你输入的信息如下:')print(f'姓名:{name}')print(f'年龄:{age}')print(f'城市:{city}')
运行一遍,输入你自己的真实信息。
然后你再改一下,让它多收集一项内容,比如职业:
name = input('请输入你的姓名:')age = int(input('请输入你的年龄:'))city = input('请输入你所在的城市:')job = input('请输入你的职业:')print('你输入的信息如下:')print(f'姓名:{name}')print(f'年龄:{age}')print(f'城市:{city}')print(f'职业:{job}')
这个小练习非常好,因为它把输入和输出完整连起来了。
先输入 再保存 再输出
这就是后面大量程序的雏形。
十三、再做一个更像样的计算器小练习
下面再来一个很实用的。
让用户输入两个数字,程序输出它们的和、差、积。
num1 = float(input('请输入第一个数字:'))num2 = float(input('请输入第二个数字:'))print(f'两数之和:{num1 + num2}')print(f'两数之差:{num1 - num2}')print(f'两数之积:{num1 * num2}')
你运行以后,试着输入:
12.53
看看输出结果。
然后你再自己加一行:
print(f'两数之商:{num1 / num2}')
这样这个小程序就更完整了。
这时候你会明显感觉到,程序已经不只是展示固定内容了,而是在根据你的输入,动态给出不同结果。
十四、为什么输入输出是后面所有知识的入口
你后面会学判断语句。
比如用户输入年龄,程序判断是否成年。
你后面会学循环。
比如用户不断输入成绩,程序持续统计。
你后面会学函数。
比如把输入的数据交给函数去处理。
你后面会学文件、数据库、爬虫。
本质上也都是输入和输出,只不过输入来源不再是键盘,输出目标也不再只是屏幕。
所以别看今天讲得基础,实际上这是后面很多知识的起点。
只要你真正明白:
程序怎么拿到数据 程序怎么把结果告诉人
后面的路就会顺很多。
十五、今天你至少要亲手完成这三个练习
第一,写一个输入姓名并欢迎用户的小程序。
name = input('请输入你的名字:')print(f'欢迎你,{name}')
第二,写一个输入两个数字并求和的小程序。
a = int(input('请输入第一个数字:'))b = int(input('请输入第二个数字:'))print(f'结果是:{a + b}')
第三,写一个输入单价和数量并计算总价的小程序。
price = float(input('请输入单价:'))count = int(input('请输入数量:'))print(f'总价是:{price * count}')
这三个你只要真的亲手敲一遍,今天这篇就不是白学。
十六、写在最后
编程一开始最让人有成就感的时刻,往往不是写出多复杂的程序,而是你输入一段信息,程序真的按照你的意思给了你回应。
这种感觉很重要。
因为从这一刻开始,你写的代码不再只是单向展示。 它开始接收信息,开始处理信息,开始和人互动。
而这,才是程序真正有生命力的开始。
输入和输出看起来基础,但你千万别小看它。 后面很多更复杂的功能,本质上都只是把今天这件事做得更复杂了一点。
所以今天这篇文章,不要只是看懂。 一定要自己动手敲,亲自输入、亲自运行、亲自看到结果。
本文小结
print() 用来输出内容到屏幕。input() 用来接收用户输入。 输入的内容默认都是字符串。 如果要参与数字计算,通常要用 int() 或 float() 做类型转换。 学输入输出最好的方式不是背,而是自己写几个小程序跑起来。
下篇预告
第 8 篇,我们来讲一个很多新手刚开始最容易忽略,但后面又特别重要的内容。
注释、缩进与代码规范 一开始就把写代码的习惯养对,后面会轻松很多。