Loading...

文章背景图

🐍 Python 魔法入门:程序与你的对话——“输入与输出”大揭秘

2026-05-07
7
-
- 分钟
|

大家好,我是 MuSen,一个爱分享、带你轻松玩转编程的引路人。

在前面的课程中,我们学了变量、数据类型、字符串和列表。但到目前为止,我们的程序好像都是个“闷葫芦”——我们在代码里写死什么,它就默默地运行什么。

这怎么行呢?一个真正的好程序,必须得学会“倾听用户的声音”并且“做出漂亮的回应”。今天,我们就来学习 Python 中沟通的桥梁:输入(Input)与输出(Output)

准备好让你的程序开口说话了吗?我们发车!🚀

3.1 输入 (Input):让程序“听”你说话 👂

如果你想让程序暂停下来,等用户在键盘上敲点东西,然后再继续往下执行,那你就需要请出 input() 函数了。

它的语法非常简单: 变量名 = input("给用户的提示信息:")

# 此时程序会停下来,屏幕上显示提示,静静等待你的输入...
name = input("请输入您的姓名:")

# 当你敲完名字按下【回车键】,程序才会继续执行
print("欢迎你," + name)

💣 MuSen 的究极避坑警告:被伪装的数字! 这是无数初学者(甚至部分老手)最容易栽跟头的地方,面试也极其爱考!

记住这句铁律:input() 接收到的所有东西,统统都是字符串 (str)!

假设你写了这行代码:age = input("请输入年龄:")。 哪怕用户在键盘上老老实实地输入了数字 18,Python 也会在底层悄悄把它变成字符串 "18"。 如果你拿到这个 age 之后直接去搞数学计算,比如 age + 1,程序当场就会原地爆炸报错!💥

✅ 正确解法(强制类型转换): 如果你需要用户输入数字,一定要在外面套一层强制转换!

# 把它脱掉字符串的外衣,变成真正的整数!
age = int(input("请输入年龄:")) 
print(f"明年你就 {age + 1} 岁啦!")

3.2 输出 (Print):程序向你喊话 🗣️

普通的 print() 我们已经用过很多次了,但它其实还隐藏着几招非常好用的独门秘籍。

1)一次输出多个值

如果你想打印好几个变量,完全不需要麻烦地用加号去拼接(拼接还容易报错)。直接用逗号隔开,Python 在打印时会自动帮你加上空格!

name = "MuSen"
age = 18
print("大佬", name, "今年", age, "岁") 
# 输出:大佬 MuSen 今年 18 岁

2)控制结尾符号:end 参数

默认情况下,每次调用 print() 打印完,Python 都会好心地在末尾悄悄加上一个换行符 \n。这就是为什么你写两个 print 它们会分两行显示。 如果你不想让它换行怎么办?修改 end 参数!

print("Hello", end="")    # 用空字符串作为结尾,不换行!
print("World")            # 最终输出会连在一起:HelloWorld

print("使用回车换行结尾", end="\n") # 这是 print 的默认行为

3.3 花式排版 (Formatting):把输出打扮得漂漂亮亮 🎨

有时候我们需要给句子“填空”,比如“我叫___,今年___岁”。Python 提供了三种世代的格式化工具,我们一次性拿下!

🥇 第一代:% 占位符(老派风格)

这是从 C 语言借过来的老古董,虽然老,但在很多老代码里依然能看到。 你要先用 %加字母 占坑,然后在字符串外面再按顺序填坑。

  • %d:专门占位十进制整数

  • %f:专门占位浮点数(小数)。比如 %.2f 就代表保留两位小数。

  • %s:专门占位字符串

int1 = 10
float1 = 3.14159
str1 = "int1 = %d, float1 = %.2f" % (int1, float1)
print(str1)  # 输出: int1 = 10, float1 = 3.14

🥈 第二代:.format() 方法(功能强大)

相比 %.format() 聪明多了,它不需要你死记硬背数据类型,直接扔一对大括号 {} 进去当坑位。

# 方式1:默认顺序,一人一个坑
str2 = "我叫{}, 今年{}岁".format("MuSen", 18)

# 方式2:指定位置(可以通过编号打乱顺序)
str2 = "冠军是{1}, 亚军是{0}".format("张三", "李四") # 李四是冠军!

# 方式3:设置专属名字(不用数位置了)
str2 = "{name}爱吃{food}".format(name="MuSen", food="排骨")

超硬核:数字的变态排版 .format() 还支持对数字进行非常精细的排版,比如财务报表上经常见到的格式:

money = 31415.9
# {:*^20,.2f} 这段火星文是什么意思?听我给你拆解:
# * 代表:空白处用星号填充(不写默认是用空格填)
# ^ 代表:内容居中对齐(<是居左,>是居右)
# 20 代表:总共要占满 20 个字符的宽度
# , 代表:加入千位分隔符
# .2f 代表:小数点后保留 2 位
print("{:*^20,.2f}".format(money)) 
# 输出效果: *****31,415.90******

🏆 第三代:f-string(现在的绝对王者!)

这是 Python 3.6+ 推出的终极杀器!它是目前写起来最优雅、运行速度最快的方式!你一定会爱上它。 你只需要在字符串开头的引号前面加上一个字母 f,然后直接把变量名塞进 {} 里就行了:

int1 = 10
float1 = 3.14159
print(f"int1 = {int1}, float1 = {float1}")

😎 MuSen 传授:Python 3.8 的调试绝招 (=) 在开发调试的时候,你想打印变量名和它的值,可以在 f-string 的括号里加个 =,超级省事:

print(f"{int1=}, {float1=}") 
# 极简!直接输出: int1=10, float1=3.14159

灵魂拷问:如果我偏想打印大括号 {} 本身咋办? 在使用 .format() 或者 f-string 时,大括号被当成了填空符号。如果你只想把它当普通的字符打印出来,记住一个词:负负得正! 连写两层大括号 {{}},它就会被转义成普通的大括号了。

print(f"{{大括号转义}}") # 输出结果: {大括号转义}

写在最后

今天我们一起打通了程序的任督二脉——输入与输出。 学会了 input(),你的程序就不再是个死板的脚本,而是可以和用户进行交流的机器人; 学会了 f-string 和各种高级格式化,你的程序吐出来的数据就能像精心排版过的报表一样漂亮。

请一定要去电脑上把 input() 的那个“全转成字符串”的坑自己踩一遍,只有报错过,你才会刻骨铭心!

我是 MuSen,我们会点儿技术,有点儿意思。准备好进入下一关了吗?咱们下期见!👋

评论交流

文章目录