今天学的是字符串
传送门:https://zhuanlan.zhihu.com/p/126296504
①以三个单引号或双引号开头的字符串可以折行
②\n不是代表反斜杠和字符n,而是表示换行;而\t也不是代表反斜杠和字符t,而是表示制表符。所以如果想在字符串中表示’要写成’,同理想表示\要写成\。
③Python中的字符串可以r或R开头,这种字符串被称为原始字符串,意思是字符串中的每个字符都是它本来的含义,没有所谓的转义字符。
④字符串的比较运算:字符串的大小比较比的是每个字符对应的编码的大小,。例如A的编码是65, 而a的编码是97,所以’A’ < ‘a’的结果相当于就是65 < 97的结果,很显然是True
⑤若要查看字符串的编号,则输入以下代码:print(ord(’***’))***为你要输入的字符串
⑥字符串的比较运算比较的是字符串的内容,Python中还有一个is运算符(身份运算符),如果用is来比较两个字符串,它比较的是两个变量对应的字符串是否在内存中相同的位置(内存地址),简单的说就是两个变量是否对应内存中的同一个字符串。
例子:
s1 = ‘hello world’
s2 = ‘hello world’
s3 = s2
#比较字符串的内容
print(s1 == s2, s2 == s3) # True True
比较字符串的内存地址
print(s1 is s2, s2 is s3) # False True
以上是学习链接的例子和结果,但在实际运行之中,我发现并不是这样的:
s1 = ‘hello world’
s2 = ‘hello world’
s3 = s2
比较字符串的内容
print(s1 == s2, s2 == s3)
比较字符串的内存地址
print(s1 is s2, s2 is s3,s1 is s3)
输出结果为
True True
True True True
这就有点奇怪了,希望有缘人解惑
⑦字符串长度的获取:用内置函数len(),字符串中的空格同样计数
⑧索引:对字符串进行索引运算,运算符是[n],假设字符串的长度为N,那么n可以是从0到N-1的整数,而不是1~N
⑨切片:对字符串进行切片,运算符是[i:j:k],其中i是开始索引,索引对应的字符可以取到;j是结束索引,索引对应的字符不能取到;k是步长,默认值为1,表示从前向后获取相邻字符的连续切片,所以:k部分可以省略。k>0为正向切片,k<0为负向切片
⑩字符串大小写变换:
s1 = ‘hello, world!’
使用capitalize方法获得字符串首字母大写后的字符串
print(s1.capitalize()) # Hello, world!
使用title方法获得字符串每个单词首字母大写后的字符串
print(s1.title()) # Hello, World!
#使用upper方法获得字符串大写后的字符串
print(s1.upper()) # HELLO, WORLD!
s2 = ‘GOODBYE’
使用lower方法获得字符串小写后的字符串
print(s2.lower()) # goodbye
值得一提的是输入中文字符串没有大小写转换
11,关于字符串输出对齐的实例:
s1 = ‘hello, world’
#center方法以宽度20将字符串居中并在两侧填充*
print(s1.center(20, ‘*’)) # hello, world
#rjust方法以宽度20将字符串右对齐并在左侧填充空格
print(s1.rjust(20)) # hello, world
ljust方法以宽度20将字符串左对齐并在右侧填充~
print(s1.ljust(20, ‘~’)) # hello, world~~~~~~~~
12.修剪操作:strip可以修剪字符串两边的空格
s1=’ panking ’
print(s1.strip())