Python中print()是函数,括号内为参数而非文本;变量、数字、表达式直接传入不加引号,加引号则输出字面量;多参数用逗号分隔,自动空格;f-string推荐用于格式化,花括号内支持任意表达式求值。

python print 用括号但不用引号是完全正常的
只要不是想输出字面字符串,print 后面直接跟变量、数字或表达式,就绝对不需要加引号。加了反而会变成字符串字面量,输出内容就不是你想要的值了。
比如:name = "Alice",写 print(name) 输出 Alice;而写 print("name") 输出的只是字面的 name 两个字母。
- 引号只用于定义字符串字面量,不是
print的语法要求 -
print()是函数,括号里填的是参数,不是“要打印的文本”本身 - Python 3 中
print必须加括号,不加会报SyntaxError: Missing parentheses in call to 'print'
print 打印多个变量或表达式时用逗号分隔
多个项之间用英文逗号隔开,print 会自动在它们之间插入一个空格,并换行结尾:
age = 25
score = 97.5
print("Age:", age, "Score:", score + 2.5)输出是:Age: 25 Score: 100.0。注意这里 score + 2.5 是表达式,直接求值后打印,不是字符串拼接。
立即学习“Python免费学习笔记(深入)”;
- 逗号分隔 ≠ 字符串拼接,不会隐式调用
str()再合并,而是分别处理每个参数 - 如果混用字符串和数字(如
print("x=" + x)),x是整数就会报TypeError: can only concatenate str (not "int") to str - 想控制分隔符,用
sep参数,例如print(a, b, c, sep="|")
f-string 是最推荐的变量嵌入方式(Python 3.6+)
比 print("Name:", name, "Age:", age) 更清晰,也比 "Name: " + name + " Age: " + str(age) 更安全简洁:
name = "Bob"
age = 30
print(f"Hello, {name}! You are {age} years old.")花括号里可以是任意表达式,比如 {age * 12}、{name.upper()},甚至函数调用。
- f-string 在运行时求值,不是模板替换,性能更好
- 如果变量未定义,会立即抛出
NameError,而不是等到拼接时报错 - 不要在 f-string 花括号里写带引号的字符串字面量(如
{'hello'}),除非真想输出字典或字符串对象本身
print 输出不换行或重定向到文件的常见需求
默认每次 print() 都以 \n 结尾,但可以用 end 参数改掉:
print("Loading", end="")
print(".", end="")
print(".", end="")
print(".") # 输出:Loading...重定向到文件也很直接:
with open("log.txt", "w") as f:
print("Error occurred", file=f)-
end默认是"\n",设为空字符串""就不换行;设为" "就空格结尾 -
file参数必须是具备.write()方法的类文件对象,不能传路径字符串 - 向终端和文件同时输出?得手动调用两次
print,或封装个日志函数——print本身不支持多目标输出
实际写代码时最容易忽略的,是把变量名误当字符串字面量加引号,或者在 f-string 里对本该求值的表达式多套了一层引号。这两类错误不会导致语法报错,但输出结果完全不对,且不容易一眼看出来。











