卢鹏博
发布于 2025-06-15 / 6 阅读
0
0

Python学习笔记(三)—— 转义字符与输入

在输出的部分中,我们不止能够输出普通的数字和字符串,我们还能使用转义字符输出许多有意思的内容。

转义字符以\开头,后接特定字符以表指定含义。

注:在本节及以后如无特殊说明,分成两栏的内容左边是源代码,右边是输出结果。

转义字符

换行符\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 字符。

  • 语法\oooo 是八进制数字,最多 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?

注意fr ,以及不加前导符三者的区别:

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

  • 比较\ln⁡7.77,\ln⁡7.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)

因此

\ln⁡7.77<e^{e−2}<\ln⁡7.777

本节练习

  • 输出你的任一文件的路径(如:D:\python\1\main.py)

  • 用户输入a和b的值,输出a-b,a*b的值并换行显示


上一节:https://blog.math-enthusiast.top/archives/1748963234633

下一节:


评论