作者:无心之无心 | 来源:互联网 | 2023-09-17 11:57
文章目录1.前言2.bytes和str的区别3.常见字符串常量以及表达式4.转义序列raw字符串–抑制转义5.多行字符串表示6.规划1.前言字符串是标编程语言中表示文本的数据类型&
文章目录 1. 前言 2. bytes和str的区别 3. 常见字符串常量以及表达式 4. 转义序列 5.多行字符串表示 6.规划
1. 前言 字符串是标编程语言中表示文本的数据类型,存储上类似于字符数组,每一个字符元素都可以进行 提取用来操作。从存储的角度来说,字符串表示的是对应长度的ASCII字符的集合,对于任何语言来说都是一样的。C原因中使用char []类型表示字符串,C++和Java使用string表示字符串,与之对应的存在诸多字符串操作函数。现在的python3使用unicode文本类型l(1个字符2个字节来 表示)的str来表示,二进制字节序列使用bytes来表示。
2. bytes和str的区别 3. 常见字符串常量以及表达式 内容参考
操作 解释 s = ‘’ 空字符串 s = “spam’s” 双引号和单引号相同 S = ‘s\np\ta\x00m’ 转义序列 s = “”"…""" 三重引号字符串块 s = r’\temp\spam’ Raw字符串 S = b’spam’ Python 3.0 中的字节字符串 s = u’spam’ 仅在Python 2.6 中使用的Unicode字符串 s1 + s2 合并 s * 3 重复 s[i] 索引 s[i:j] 分片 len(s) 求长度 “a %s parrot” % kind 字符串格式化表达式 " a {0} parrot".format(kind) Python 2.6 和Python 3.0 中的字符串格式化方法 s.find(‘pa’) 字符串方法调用: 搜索 s.rstrip() 移除空格 s.replace(‘pa’, ‘xx’) 替换 s.split(’,’) 用展位符分割 s.isdigit() 内容测试 s.lower() 短信息转换 s.endswith(‘spam’) 结束测试 ‘spam’.join(strlist) 插入分隔符 S.encode(‘latin-1’) Unicode编码等 for x in S: print(x) 迭代 ‘spam’ in S 成员关系 [c * 2 for c in S] 迭代 map(ord, S) 迭代
4. 转义序列 写在前面:python中 单双引号表示的字符串是一样的,但是个人建议使用“ ”,因为可以和其他语言,比如c,c++等形成统一的规范,有助于形成自己统一的编码风格。
问:什么是转义字符?为什么需要转义字符? 答: 对于提问1:转义字符(Escape Character)
是指在ASCII码和Unicode等字符集中的无法被键盘录入的字符
、被当作特殊用途而需要转换回它原来的意义的字符
。 对于提问2&#xff1a;通俗一点儿来说就是&#xff1a;键盘上的按键不能表示某个字符集中的字符&#xff0c;需要借用某个字符的转义来表示这个字符(如果使用ASCII码表示本质上来讲肯定是可以的&#xff0c;但是记忆不方便&#xff0c;也不方便理解 &#xff0c;所以就用常用字符的转义来表示了)&#xff1b;某个字符会被语言解释器用作特殊识别&#xff0c;但需要转义来使用它本来的含义&#xff0c;如 “\”, “<”等。 转义字符 意义 ASCII码值&#xff08;十进制&#xff09; \a 响铃(BEL) 007 \b 退格(BS) &#xff0c;将当前位置移到前一列 008 \f 换页(FF)&#xff0c;将当前位置移到下页开头 012 \n 换行(LF) &#xff0c;将当前位置移到下一行开头 010 \r 回车(CR) &#xff0c;将当前位置移到本行开头 013 \t 水平制表(HT) &#xff08;跳到下一个TAB位置&#xff09; 009 \v 垂直制表(VT) 011 \ 代表一个反斜线字符’’’ 092 ’ 代表一个单引号&#xff08;撇号&#xff09;字符 039 " 代表一个双引号字符 034 ? 代表一个问号 063 \0 空字符(NUL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 十六进制所代表的任意字符 十六进制
特别说明&#xff1a;
\ddd &#xff1a; \后面3个0-7数字表示8进制&#xff0c;可以表示所有ASCII编码及其拓展编码&#xff0c;因为2位数字表示不完
\xaa : \x后面两个0-f表示16进制&#xff0c;同样可以表示所有ASCII编码&#xff0c;只能转义2字符
wangzhonglai&#64;shell: ~ $ python3 Python 3.8 .10 ( default, Mar 15 2022 , 12 : 22 : 08 ) [ GCC 9.4 .0 ] on linux Type "help" , "copyright" , "credits" or "license" for more information. >> > s&#61; "he\x6c\x6co" >> > s&#39;hello&#39; >> > s&#61; "he\x6c6co" >> > s&#39;hel6co&#39;
raw字符串–抑制转义 有时需要需要字符串原始的含义&#xff0c;如“\t”,”\n”等&#xff0c;方法1为重复使用两个反斜杠“\\”&#xff0c;但是如果字符串里面太多这种反斜杠的话&#xff0c;这种操作就不明智了&#xff1b;使用raw字符串可以解决这一问题。
>> > pfd &#61; open ( "\home\wangzhonglai\new\a.txt" , "r" ) Traceback ( most recent call last) : File "" , line 1 , in < module> FileNotFoundError: [ Errno 2 ] No such file or directory: &#39;\\home\\wangzhonglai\new\x07.txt&#39;
pfd &#61; open(r"\home\wangzhonglai\new\a.txt","r")
注意&#xff1a;linux下默认使用 / 表示路径&#xff0c;和windows下不同&#xff0c;故linux下可以很好的避免这种路径问题。
r&#61;raw&#xff0c;用r’&#39;的方式表示的字符串叫做raw字符串&#xff0c;用于抑制转义。但是对于这种路径习惯 上使用raw字符串。
5.多行字符串表示 三重引号
对于多行文本数据来说&#xff0c;使用三重引号 这种块字符串很方便 >> > str1&#61; """hello... zhonglai,... nice to meet you!... """ >> > str1&#39;hello\nzhonglai,\nnice to meet you!\n&#39; >> > print ( str1) hellozhonglai, nice to meet you!
6.规划 下一章&#xff1a;python内置对象之字符串之基本操作