Python(三十四)字符串常见的方法

一  字符串

①  基本概念

1)字符串是一个'字符序列(sequence)'

2)默认基于'utf-8编码'

补充:python2.x 对'中文'支持-->第一行'# coding: utf-8',并且将'源文件保存'为UTF-8字符集

3)python没有'char'类型,'一个字符'也是字符串

②  python没有char类型

核心: '字符串序列'

③  构建字符串

1)引号

附加: str1 = 'He is a "boy"!'

2)引号

+++++++++++"几种"典型场景+++++++++++

str1 = "Jason say \"I like you\""

str2 = 'Jason say "I like you"'

str3 = "I'm wzj!"

物理行和逻辑行

++++++++++(1) '单引号'与"双引号"的用法比较++++++++++

1). 二者通常用于'单行字符串'的表示,也可通过使用'\n换行'后表示'多行'字符串

2). 使用'单引号'表示的字符串中可以'直接使用双引号'而'不必进行转义',使用双引号表示的字符串'同理'

备注:python的''与shell中的''意义不一样

思考:为什么python需要那么'多种字符串表示'方式? 答案就是为了体现'python的人性化'.

3)引号  字符串形式

场景:当程序有'大段的文本(需要跨行)'需要定义成字符串,'优先推荐'使用长字符串形式

具体:yum要安装多个'基础'包

优点:可以包含'任意'的内容,包括单引号和双引号("不用考虑转义")

'变相注释':定义的字符串'没有赋值'给任何变量,那么这个字符串相当于'被解释器忽略',相当于注释.

补充:不管是单引号、双引号、三引号,都支持转义字符"\n"、"\t"之类的

4)input获取用户输入

"python3.x"input内置函数:向用户生成一条'提示',获取用户输入,input函数返回一个'字符串'(type判断)

注意:由于返回的默认是字符串,所以对于需要'数字'的,需要int'强转'

+++++++++++"补充知识点"+++++++++++

python2.x的raw_input()函数'是'python3.x的input函数

Python2.x的input函数:输入必须是'符合python语法'的表达式

符合python语法: 比如'字符串就必须加双引号'、1(数字)、等、特点:'不会被自动转化'为字符串.

5)构造方法  强转为字符串

6)原始字符串

原始字符串以'r'开头,用''或""包围原始字符串

特点:'所见即所得',原始字符串"不会"把'反斜杠'当作特殊字符

++++++++++++++"应用场景"++++++++++++++

早期: windows路径  --> "C:\\wzj\\a.txt"

现在: windows路径  --> r'C:\wzj\a.txt'

报错的'原因': 原始字符串中的'反斜杠\'仍然'会对引号转义',所以'原始字符串'的结尾'不能是反斜杠'

++++++++++++++"注意事项"++++++++++++++

原始字符串中包含'引起歧义'的引号:同样需要对引号转义  -->'引号精准匹配,字符串范围'

++++++++++++++"解决策略"++++++++++++++

(1)  三引号包括

(2)  通过'空格(空白字符)'字符串拼接

r'Hello wzj' "\\"

补充:这种'空格'方式,常用来做'字符串与变量'拼接

单双引号混合使用,避免转义字符使用

④  字符串格式化  占位符

⑤  字符串拼接

方式1: 空白字符

方式2: '字符串之间'的'直接'拼装 -->'+'

细节:python'不允许不同类型'直接拼接;'数值和字符串',如果要拼接必须'先转换成字符串'

num = 10
str1 = 'Java'
# str()内置类型;repr函数以python'表达式'形式表示值-->字符串会自动加'引号'
print(str1 + str(num))

强调: 任何东西'只要print',相当于'字符串化了'

二  字符串的核心方法

keyword模块查询关键字

字符串是'不可变类型-->immutable',不可'修改'

①  可修改误区  is关键字

说明: '同一个字符串'在内存中'只有一份',类似Java的'字符串常量池'

字符串是'不可变'对象,是'无法修改'的

说明: 生成的是'新(new)'字符串,而不是对'原'字符串的修改

(1)

①  索引

特点: 通过'下标(index)'来访问字符,从'0'开始

核心: '切片',-->[a,b)

membership'成员运算符' --> 'in、not in' --> Boolean'(子串是否存在)'

in用法 

②  判断

++++++++'字符串其它判断'++++++++

1)S.startswith(prefix[,start[,end]]) #是否以prefix开头

2)S.endswith(suffix[,start[,end]]) #以suffix结尾

3)S.isalnum() #是否全是字母和数字,并至少有一个字符

4)S.isalpha() #是否全是字母,并至少有一个字符

5)S.isdigit() #是否全是数字,并至少有一个字符

6)S.isspace() #是否全是空白字符,并至少有一个字符
 
7)S.islower() #S中的字母是否全是小写

8)S.isupper() #S中的字母是否便是大写

9)S.istitle() #S是否是首字母大写的

1)is、is not -->identity  -->'是不是什么类型'  -->必须'先type'转换,'再判断'

  print(type(name) is str)

2)是不是以什么'开头、结尾'结尾-->判断

  print(wzj.startswith('wz'))

  print(wzj.endswith('zj'))

3)是否'包含'-->'in'、'not in'

③  格式化输出

++++++++++++'新式字符串格'式化++++++++++++

1)语法:str.format -->通过'调用字符串对象'的.format() 方法进行'格式化'

2)在'Python3引入'了一个新的字符串格式化的方法,并且'随后支持了Python2.7'

3)这个"新式"的字符串格式化方法'摆脱了%操作符',并且使得字符串格式化的语法'更规范'了

4)使用 format() 来做简单的'基于位置{0开始}'的字符串格式化,和使用"旧式"格式化是'一样'的

5)通过'变量名'来进行替换,且'不用担心'变量的位置,这个强大的特性可以在'不改变'format()的传入参数的情况下,允许'重新调整'显示的位置

注意:字符串格式化的两种方式-->"%"和'format和{}'

④  分割合并

split 默认空格'分割' --> 一般需要字符串具有'一定的特性'

join -->一般' '、'-'、','、'/'、':'

⑤  大小写转换

⑥  统计

⑦  运算符

print('wzj' == 'java')  -->'值是否相等'

print('zwzz' > 'zwff') -->字符相同,比较下一位-->一个一个字符'ASCII'比较过去,碰到'能决定大小'的,就'直接返回'

⑧  去空格

查找

⑩  替换

str1 = 'wzj.com is a company'

⑪  映射

⑫  复制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值