自学python——第二天:)
Python自学网站:Python 教程 — Python 3.13.2 文档
首先,我们先复习上节课的重点内容:
交互模式下,上次输出的表达式会赋给变量_。把Python 当作计算器时,用该变量实现下一步计算更简单,例如:
tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
最好把该变量当作只读类型。不要为它显式赋值,否则会创建一个同名独立局部变量,该变量会用它的魔法行为屏蔽内置变量。
除了int 和 float,Python 还支持其他数字类型,例如 Decimal 或 Fraction。Python 还内置支持 复数,后缀 j 或 J 用于表示虚数(例如 3+5j )。
此类代码需要好好掌握,每天都要将上节课的内容观看和复习。
其中,会用绿色标出一些未知单词和一些语句(如,if语句等),红色我会标出一些重点内容,接下来是今天学习的笔记:
接下来是我对本单元每段代码的解读和理解:
今天我们学习的是 “3.12文本”
3.12.文本
除了数字 Python 还可以操作文本(由 str 类型表示,称为“字符串”)。 这包括字符 "!", 单词 "rabbit", 名称 "Paris", 句子 "Got your back." 等等. "Yay! :)"。 它们可以用成对的单引号 ('...') 或双引号 ("...") 来标示,结果完全相同 [2]。
'spam eggs' # single quotes
'spam eggs'
>>> "Paris rabbit got your back :)! Yay!" # double quotes
'Paris rabbit got your back :)! Yay!'
>>> '1975' # digits and numerals enclosed in quotes are also strings
'1975'
要标示引号本身,我们需要对它进行“转义”,即在前面加一个 \。 或者,我们也可以使用不同类型的引号:
'doesn\'t' # 使用 \' 来转义单引号...
"doesn't"
>>> "doesn't" # ...或者改用双引号
"doesn't"
>>> '"Yes," they said.'
'"Yes," they said.'
>>> "\"Yes,\" they said."
'"Yes," they said.'
>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'
这个难以理解,可以多看两次,慢慢理解。
在 Python shell 中,字符串定义和输出字符串看起来可能不同。 print() 函数会略去标示用的引号,并打印经过转义的特殊字符,产生更为易读的输出:
s = 'First line.\nSecond line.' # \n 表示换行符
>>> s # 不用 print(),特殊字符将包括在字符串中
'First line.\nSecond line.'
>>> print(s) # 用 print(),特殊字符会被转写,因此 \n 将产生一个新行
First line.
Second line.
理解:print( )函数会略去标出用的引号,并打印经过转义的特殊字符,产生更为易读的输出,不懂的话可以多去看看代码旁边的标识。
如果不希望前置\
的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r
即可:
print('C:\some\name') # 这里 \n 表示换行符!
C:\some
ame
>>> print(r'C:\some\name') # 请注意引号前的 r
C:\some\name
翻译:第一行代码 Print(‘ c :\some \n ame 系统错误的将 \name 认为 \n ame,所以第二行代码会错误生成如上图所示。
原始字符串还有一个微妙的限制:一个原始字符串不能以奇数个 \
字符结束;请参阅 此 FAQ 条目 了解更多信息及绕过的办法。
绕过方法如下:
以奇数个反斜杠结尾的原始字符串将会转义用于标记字符串的引号:
r'C:\this\will\not\work\'
File "<stdin>", line 1
r'C:\this\will\not\work\'
^
SyntaxError: unterminated string literal (detected at line 1)
最后一句代码翻译为:语法错误,未终止的字符串字面量
有几种绕过此问题的办法。 其中之一是使用常规字符串以及双反斜杠:
C:\\this\\will\\work\\'
'C:\\this\\will\\work\\'
另一种办法是将一个包含被转义反斜杠的常规字符串拼接到原始字符串上:
r'C:\this\will\work' '\\'
'C:\\this\\will\\work\\'
观察上述代码,系统会自动地改正代码
请注意虽然在确定原始字符串的结束位置时反斜杠会对引号进行“转义“,但在解析原始字符串的值时并不会发生转义。 也就是说,反斜杠会被保留在原始字符串的值中:
r'backslash\'preserved'
"backslash\\'preserved"
字符串字面值可以跨越多行。 一种做法是使用三重引号: """..."""
或 '''...'''
。 行结束符会自动包括在字符串中,但可以通过在行尾添加 \
来避免此行为。 在下面的例子中,开头的换行符将不会被包括:
print("""\
... Usage: thingy [OPTIONS]
... -h Display this usage message
... -H hostname Hostname to connect to
... """)
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to
>>>
在第一行中,用过引用多行代码字符,来进行作业。
字符串可以用 +
合并(粘到一起),也可以用 *
重复:
# 3 乘以 'un',再加 'ium'
>>> 3 * 'un' + 'ium'
'unununium'
第二行代码可以解释为:3 * 'un'= ununun + ium
相邻的两个或多个 字符串字面值 (引号标注的字符)会自动合并:
'Py' 'thon'
'Python'
拼接分隔开的长字符串时,这个功能特别实用:
text = ('Put several strings within parentheses '
... 'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.
今天我们展示的内容有限,期待我们的下一次相遇,坚持总是痛苦的,而坚持下来的结果不会让你失望,加油。