马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 AhrimanSefid 于 2022-12-7 19:57 编辑
001 代码 Shut up & Codeprint("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
|