说起来,学编程这码事,第一步,真的,第一步是啥?很多人会说语法啊、变量啊。没错,那些是基础,但对我来说,第一次敲下几行代码,看着屏幕上蹦出自己想要的东西,那种感觉才叫“入门”!没错,我说的就是 python怎么输出。这玩意儿,就是跟计算机“说话”,让它把肚子里的东西——或者你塞给它的东西——给展示出来。在 Python 里,干这活儿的“大佬”,九成九的时候,就是那个看家本领:print() 函数。
你可能觉得,“输出不就一句 print(...)
嘛,有啥可讲的?” 嘿,少年/少女,你可小瞧它了!这个 print
,看着简单,里面的门道可不少,而且它是你调试代码、展示结果、跟程序互动最直接的“窗口”啊。别看那些花里胡哨的图形界面或者网页,底层数据想露个脸,多半还是得靠 print 在控制台悄悄地吼一嗓子。
来,咱们一层一层剥开它。最最基础的,你想让它说句话,比如那句经典的“Hello, World!”,怎么办?简单到爆炸:
python
print("Hello, World!")
就这么一行。运行一下,屏幕上是不是就孤零零地出现了那几个字?看到了吧,双引号引起来的,那叫字符串,print
函数接到这个字符串,二话不说,直接往标准输出(通常就是你的终端屏幕)一扔。用单引号也行:
python
print('你好,世界!')
一样的效果。有时候字符串里本身有单引号或双引号,用另一种引号括起来就方便了,比如 print("他说:'你好!'")
。要是字符串里单引号双引号都有,或者想换行怎么办?祭出三引号(三个单引号或三个双引号)!
python
print("""
这
是
一个
多行
字符串!
""")
看,原样输出,连你敲的换行都保留了。这在输出长文本、比如程序的使用说明或者一大段日志的时候,特别好用。
好了,字符串是文字,那数字呢?比如你想输出计算结果?
python
a = 10
b = 20
c = a + b
print(c)
print(123.45)
这里 print(c)
会输出 30
,print(123.45)
会输出 123.45
。看出来没?数字(整数、浮点数)也可以直接扔给 print
。它很聪明,知道怎么把数字变成咱们能看懂的字符形式。
那变量呢?上面已经用过了 print(c)
,它会输出变量 c
当前存储的值。不仅是数字,任何类型的变量,字符串、列表、字典、元组……几乎任何 Python 对象,你都可以试着 print 它。print
会调用对象的内部方法(__str__()
或 __repr__()
)把它变成一个字符串,然后再输出。
python
my_list = [1, 'hello', 3.14]
my_dict = {'name': '张三', 'age': 18}
print(my_list)
print(my_dict)
运行一下,你会看到列表和字典的标准字符串表示形式被输出了。这是 print 的强大之处,它能把各种“奇形怪状”的数据,“打印”成人类可读的格式。
重点来了,有时候咱们想输出多个东西,比如“我的名字是 张三,年龄是 18”。总不能分开写好几行 print 吧?那样太零散了,而且中间会有多余的换行。print
函数接受多个参数,用逗号隔开就行:
python
name = "张三"
age = 18
print("我的名字是", name, "年龄是", age)
运行结果:我的名字是 张三 年龄是 18
。注意到没?每个参数之间,print 默认会帮你加一个空格。这是 print
函数的一个非常贴心的设计。这些通过逗号分隔的参数,print
会依次处理,中间自动加个空格。
讲到这里,就不得不提 print
函数的两个非常重要的参数:sep
和 end
。这两个参数就像是给 输出 加盟料、定规矩的。
先说 sep
(separator),分隔符。刚才说了,默认是空格,但你可以指定任何字符串作为分隔符。
python
print(2023, 12, 25, sep='-') # 输出: 2023-12-25
print("a", "b", "c", sep='...') # 输出: a...b...c
print("多个", "参数", "之间", sep='_') # 输出: 多个_参数_之间
是不是有点意思了?你可以用它来格式化日期、合并一些字段等等。那个默认的空格,就是因为 sep
默认等于 ' '
。你想让它们之间没间隔?把 sep
设为空字符串 ''
就行。
python
print("连", "起来", "!", sep='') # 输出: 连起来!
再来看 end
(end string),结束符。默认情况下,print
函数在输出完所有内容后,会自动在末尾加上一个换行符 \n
。这就是为什么每次调用 print
,新的输出都会出现在新的一行。
“`python
print(“第一行”)
print(“第二行”)
默认会在 “第一行” 后面加 \n, 在 “第二行” 后面加 \n
“`
输出就是两行。但有时候,你可能不想换行,或者想在末尾加点别的东西,比如一个逗号、一个点、或者干脆什么都不加。这时候 end
参数就派上用场了。
python
print("我喜欢", end=' ') # 输出 "我喜欢 ",注意末尾是空格,没有换行
print("Python!") # 接上面的输出,所以结果是 "我喜欢 Python!" 然后这里换行
print("不换行?", end='')
print("试试!", end='...\n') # 输出 "不换行?试试!..." 然后换行
print("新的一行来了。")
通过控制 end
,你可以让多个 print
输出在同一行,或者自定义每一行的结尾标记。这个小技巧在需要动态构建输出行的时候特别有用,比如打印进度条、或者在一行里陆续显示结果。
讲完 sep
和 end
,你对 python怎么输出 多参数、以及如何控制输出的“间隔”和“结尾”应该有点感觉了。但实际开发中,我们经常需要更精细地控制输出的格式。比如输出一个浮点数,只想保留两位小数;或者在一个固定的宽度里右对齐一个数字。这时候,就轮到 格式化输出 登场了。
格式化输出方法有很多,但最现代、最推荐、也是我个人最喜欢用的,是 f-string(Formatted String Literals)。这个是 Python 3.6 以后才有的“神器”,用起来简直不要太爽。
f-string 的语法是在字符串前面加一个 f
或 F
,然后在字符串里用花括号 {}
把你想插入的变量或者表达式括起来。
“`python
name = “李四”
age = 25
print(f”我的名字是 {name},年龄是 {age}。”)
输出: 我的名字是 李四,年龄是 25。
“`
是不是比用逗号分隔方便多了?变量名直接放在 {}
里,所见即所得。而且,{}
里不仅可以是变量名,还可以是任意的 Python 表达式:
python
x = 10
y = 5
print(f"{x} 加 {y} 等于 {x + y}") # 输出: 10 加 5 等于 15
print(f"我的名字大写是 {name.upper()}") # 输出: 我的名字大写是 李四
更强大的地方在于,f-string
支持在 {}
里面进行格式化控制。比如控制浮点数精度:
python
pi = 3.1415926
print(f"圆周率约等于 {pi:.2f}") # 输出: 圆周率约等于 3.14 (.2f 表示保留两位小数的浮点数)
price = 123.456
print(f"价格是 ${price:.2f}") # 输出: 价格是 $123.46 (会自动四舍五入)
或者控制宽度和对齐:
python
num = 42
print(f"左对齐:{num:<10}") # 输出: 左对齐:42 (总共10个字符宽度,左对齐)
print(f"右对齐:{num:>10}") # 输出: 右对齐: 42 (总共10个字符宽度,右对齐)
print(f"居中: {num:^10}") # 输出: 居中: 42 (总共10个字符宽度,居中)
print(f"前面补零:{num:0>10}") # 输出: 前面补零:0000000042 (总共10个字符宽度,右对齐,前面用0填充)
这些格式化“小把戏”能让你的 输出 看起来整洁、专业得多。想象一下打印一个表格或者报告,没有这些格式化工具简直没法看。f-string 的格式化语法非常灵活和强大,值得你花点时间去查阅官方文档或者相关教程,把它玩透。
除了 f-string,Python 还有 .format()
方法,这是 f-string 出现之前主流的格式化方式:
python
print("我的名字是 {},年龄是 {}。".format(name, age)) # 顺序对应 {}
print("我的名字是 {0},年龄是 {1}。".format(name, age)) # 通过索引指定参数
print("我的名字是 {n},年龄是 {a}。".format(n=name, a=age)) # 通过关键字指定参数
.format()
方法也很强大,它支持的格式化选项跟 f-string 里面的 :
后面的部分是基本一样的。但在我看来,f-string 直接把变量写在 {}
里更直观,代码读起来也更自然,所以我现在几乎只用 f-string 了。但在一些老代码里,你可能会经常遇到 .format()
。
还有一种更老的格式化方法,用的是类似于 C 语言的 %
操作符:
python
print("我的名字是 %s,年龄是 %d。" % (name, age)) # %s 字符串,%d 整数
这种方法现在基本不推荐使用了,因为语法不够清晰,而且处理复杂情况比较麻烦,容易出错。了解一下就行,遇到老代码看得懂就好。
所以,说到 python怎么输出 内容,最核心、最灵活、最常用的利器就是 print() 函数。从最简单的输出一个字符串,到输出多个不同类型的数据,再到利用 sep
和 end
控制间隔和结尾,以及用 f-string 进行强大的格式化。掌握了这些,你就可以随心所欲地让你的 Python 程序把你想展示的信息,“漂亮地”呈现在你眼前了。
别忘了,print 不仅是展示结果的工具,更是你和程序交流、了解程序内部状态的绝佳手段。当你的程序跑出问题,不知道某个变量当前是什么值?在关键位置加一句 print(f"变量 x 现在是 {x}")
,运行一下,问题可能就迎刃而解了。这是一个非常基础、但极其有效的调试技巧,虽然“土”,但真的好用!
总而言之,别小看这个 print
,它是你踏入 Python 世界的第一声“Hello, World!”,是你理解程序运行脉络的“眼睛”,也是你排查问题时的“顺风耳”。多用它,多尝试它不同的参数和格式化方式,你会发现,让 python怎么输出 这件“小事”,也能玩出不少花样来呢。去试试吧,敲几行代码,让它“说”点什么给你听!