在输出的部分中,我们不止能够输出普通的数字和字符串,我们还能使用转义字符输出许多有意思的内容。
转义字符以\
开头,后接特定字符以表指定含义。
注:在本节及以后如无特殊说明,分成两栏的内容左边是源代码,右边是输出结果。
转义字符
换行符\n
在输出时,如果想要换行,或者为了整齐美观,可以使用\n
表示换行。(换行在循环中非常有用)
但要注意:\n
一定要在引号内!
例:
print("1\n2\n3\n4")
print("这是第一行\n这是第二行")
1
2
3
4
这是第一行
这是第二行
注意:\n
一定要在引号内!
print("1"\n"2")
SyntaxError: unexpected character after line continuation character
靠左显示\r
\r
使用较少,一般与\n
一起使用,典型的格式为\n\r
如果没有换行,\r
会自动将输出从\r
之后的内容开始显示:
print("这是第一句\r这是第二句")
这是第二句
print("这是第一句\n\r这是第二句")
这是第一句
这是第二句
可以看出\n\r
和\n
效果是一样的。
显示引号\'
或\"
在Python输出中,当我们在引号内再输入引号(和外部引号不同时)时,系统不会认为这是引号内的引号,而是和就近的引号完成闭合。
例如" '1'+'2'='12' "
,这时系统能理解
而" "第一"和"第二" "
,程序就会报错,因此想在引号里面输入显示引号,可以考虑转义字符\'
或\"
。
例:
print(" \"第一\"和\"第二\" ")
"第一"和"第二"
显示反斜杠\\
如果想在输出中输出反斜杠\
,这样写print("这是一个反斜杠\")
会报错。
正确写法:
print("这是一个反斜杠\\")
这是一个反斜杠\
反斜杠转义主要用在文件路径上。不过每次都要多打一个\
,而且过多的\
也不容易理解,因此Python有专门取消转义的字符。
\
加数字
在 Python 中,\
加数字 可以表示两种不同的转义字符形式,具体取决于数字的格式:
1. \
+ 1~3 位八进制数字(0-7)
表示一个八进制转义序列,对应 ASCII/Unicode 字符。
语法:
\ooo
(o
是八进制数字,最多 3 位)。作用:将八进制数字转换为对应的字符。
print("\101") # 八进制 101 → 十进制 65 → ASCII 字符 'A'
print("\141") # 八进制 141 → 十进制 97 → ASCII 字符 'a'
如果数字超出八进制范围(如
\8
或\9
),Python 会报错(SyntaxError
)。八进制转义在 Python 3 中较少使用,通常用十六进制或 Unicode 代替。
2. \
+ 1~3 位十进制数字(仅某些特定情况)
在 Python 的字符串格式化(已弃用) 或 正则表达式 中,\
加数字可能表示对分组捕获的引用,而非转义字符。
注意:在普通字符串中,
\1
到\7
可能被尝试解释为八进制,但\8
和\9
会直接视为字面量\8
、\9
(但会报错)。
现代 Python 更推荐使用以下方式表示字符:
Unicode 转义:
\uXXXX
(4 位十六进制)或\UXXXXXXXX
(8 位十六进制)。
取消转义
上节我们学了转义符f
,在输出双引号前面加f
可以强制转义。
如果我们强制不转义,我们可以使用r
。
例:
print(r"这是一个反斜杠\ ")
这是一个反斜杠\
但要注意,反斜杠\
右边不能紧挨着双引号"
,否则会报错:
print(r"这是一个反斜杠\")
SyntaxError: unterminated string literal (detected at line 2); perhaps you escaped the end quote?
注意f
,r
,以及不加前导符三者的区别:
a = 1
print("\a={a}")
print(f"\a={a}")
print(r"\a={a}")
={a} #显示的原因是python无法显示字符\a(ANSCII中对应的字符)
=1
\a={a}
输入
输入是人机交互中比较重要的功能。
其基本用法是:a = input("promote")
,双引号之间的内容是输入提示,可以没有,但建议写上。
注意:得到的a的值是字符串!
当程序运行到输入这一句时,会等待输入,才会执行后续的语句。
a = input("请输入a的值:")
b = input("请输入b的值:")
请输入a的值:
上述没有输入,就会一直停留在这一步。
有了输入之后,我们就能做一些简单的程序了。
例(幂次计算):
a = input("请输入a的值:")
b = input("请输入b的值:")
a = int(a)
b = int(b)
print(a**b)
请输入a的值:3
请输入b的值:4
81
上述代码中,我们使用int()
进行数据类型的转换,将字符串类型转为整形,进而可以进行后续运算。
练习
上节练习
输出下式数学表达式的结果:
\{3.14+[(2.71-1.41)*1.73)]\div 2.5 \}\mod 3
直接输入代码计算即可,但不建议一个式子全输入进去计算:
a = (2.71-1.41)*1.73
b = 3.14+a/2.5
c = b%3
print(c)
1.0396
比较\ln7.77,\ln7.777,e^{e−2}三者的大小
由于Python原生不支持计算对数和e的值,如需计算需要导入相应的库。
不过我们可以换个思路,只要比较7.77,7.777,e^{e^{e−2}}三者的大小即可。
a = 2.71828
b = a**(a-2)
c = a**b
print(c)
7.774897325491698
精度已经足够(使用a=2.718281828得到7.774944899474886)
因此
本节练习
输出你的任一文件的路径(如:D:\python\1\main.py)
用户输入a和b的值,输出a-b,a*b的值并换行显示
上一节:
下一节: