AhrimanSefid 发表于 2022-12-7 19:57:05

005 变量和字符串(下)

本帖最后由 AhrimanSefid 于 2022-12-7 19:57 编辑

001 代码 Shut up & Code
print("D:\three\two\one\now") ---> 这样写会让Python产生误会
print("D:\\three\\two\\one\\now") --->这样写也可以顺利打印,但如果有N个反斜杠就很麻烦了
print(r"D:\three\two\one\now") --->这样就方便多了,原始字符串!
print("                     \n\
               @            \n\
            / \\          \n\
            * *         \n\
            * *         \n\
          * * * * * *       \n\
      * * * * * * * *   \n\
      * * * * * * * * * *   \n\
            * *         \n\
            * *         \n\
          * * * * * *       \n\n\n") ---> 可以利用末尾的反斜杠声明“这事儿还没完!!”
print("I love FishC
") --> 没有反斜杠就会报错
poetry = """
面朝大海,春暖花开

从明天起,做一个幸福的人
喂马、劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人

给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开
""" ---> 使用三重引号字符串,就可以跨行输入而不用加\声明还没结束
print(peotry) --> 没报错
print(520 + 1314) ---> 输出结果:1834
print("520" + "1314") ---> 输出结果:'5201314'
print("我每天爱你三千遍!\n" * 3000)

002 原始字符串 r"" & r''
用print()函数打印一个路径效果往往是不理想的:
>>> print("D:\three\two\one\now")
D:                        hree                        wo\one
ow
原因:还记得上次那个表格吗?

符号 说明
\\ 代表一个\反斜杠(不作任何识别)
\' 代表一个单引号(不作任何识别)
\" 代表一个双引号(不做任何识别)
\a 代表响铃(BEL)
\b 退格符(BS)
\n 换行符(LF)
\t 水平制表符(TAB)
\v 垂直制表符(VT)
\r 回车符(CR)
\f 换页符(FF)
\ooo ooo 为八进制数
\xhh hh 为十六进制数

一个个对照就会发现,Python产生了一个误会:把\three和\two当成了水平制表符;把\now当成了换行符(LF)。
要解决这个问题,就可以对照一下上面的表,发现\\表示的是单个反斜杠且不做任何识别。但这样写如果有N个字符串就太麻烦了!
好在Python提供了一种原始字符串,将对里面的任何转义字符都不做识别。
要想声明一个字符串是原始字符串的话,只需要在字符串前面加上一个小写字母r就行了。
>>> print(r"D:\three\two\one\now")
D:\three\two\one\now
除此之外,反斜杠还不能放在末尾,因为·如果反斜杠放在末尾的话,就表示“这事儿还没完!!”
就好比现在要在屏幕上打印一个飞机,就可以这样写:
print("                     \n\
               @            \n\
            / \\          \n\
            * *         \n\
            * *         \n\
          * * * * * *       \n\
      * * * * * * * *   \n\
      * * * * * * * * * *   \n\
            * *         \n\
            * *         \n\
          * * * * * *       \n\n\n")

003 长字符串 Triple Quoted
上一篇笔记里写道,引号有三种,只讲了前两种,而最后一种Triple Quoted没有讲。
Triple Quoted就是三重引号字符串,用3个引把内容引起来(3和单引号或者3个双引号都行)。不过一定要注意一定一定要前后呼应,成双成对!
三重引号字符串可以跨行输入而且不用在美剧末尾加上\声明还没结束。例如:
poetry = """
面朝大海,春暖花开

从明天起,做一个幸福的人
喂马、劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人

给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开
"""
打印出来,竟然成功了!

004 字符串的加法和乘法 + & ×
先来一个问题:520和"520"一样吗?
首先,给这两个520先做一下加法,结果却截然不同:
>>> print(520 + 1314)
1834
>>> print("520" + "1314")
'5201314'
现在来总结一下:字符串就是文本,虽然也可以进行加法乘法,但是和数字加法乘法的含义是完全不同的。
字符串的相加叫做拼接,就是将字符串组合成一个新的长的字符串。
除此之外,字符串还可以做乘法,也就是把一个内容复制粘贴N次。
例如你对一个小姐姐说“我每天爱你三千遍!”,但是小姐姐叫你写下来!
这是就可以给字符串做乘法了:
print("我每天爱你三千遍!\n" * 3000)

005 思维导图 Picture
https://xxx.ilovefishc.com/forum/202209/08/032338il992s22a95fc9fr.png

Chinese-淼 发表于 2022-12-8 11:02:31

{:7_130:}#来观摩下

mork_mo 发表于 2022-12-9 14:50:09

优秀
页: [1]
查看完整版本: 005 变量和字符串(下)