python内置函数学习之字符串

1.字符串

字符串类型str
字符串是由单引号’‘,双引号" ",三单双引号’‘’ ‘’',“”" “”",引起来的字符组合。//后面两个可以换行!
任何类型可以被转换为字符串类型。
在字符串中使用单引号或双引号的方式,单引号被双引号包括,双引号被单引号包括…。

2.字符串定义

# 方式一 单引号
str1 = 'new' #字符串内容为中文,乱码如何处理?

# 方式二 双引号
str2 = "gogogo"

# 方式三 三单引号
str3 = '''  GOGOGO 
			COME!!!'''
	
# 方式四 三双引号
str4 = """          
			GOGOGO 
			COME!!!
"""

print(str1)
print(str2)
print(str3)
print(str4)

3.打印引号

打印引号在外层使用不同的引号来包裹需要打印的引号。

str1 = "I'm, ok'"
str2 = 'A"B"C'
str3 = """ "asd" 'asd' """
str4 = """ ''' x ''' """

print(str1)
print(str2)
print(str3)
print(str4)

"""
I'm, ok'
A"B"C
 "asd" 'asd' 
 ''' x ''' 
"""

4.类型转换

使用str(),将内容括起来。任意类型的数据北欧可以被转为字符串。

print(str(123))                      # 整型
print(str(123.4))                 	 # 浮点数
print(str('abc'))                	 # 字符型
print(str([1, 2, 3]))            	 # 列表
print(str(('hello',)))           	 # 元组
print(str({'a': 123, 'b': 456}))  	 # 字典

"""
123
123.4
abc
[1, 2, 3]
('hello',)
{'a': 123, 'b': 456}
"""

5.索引取值

字符串中每个字符占一个索引,可以从左往右正向取值,从右往左反向取值。
格式:字符串[起始值:上限值:步长]
起始值:起始位置。
上限值:上限的位置,只能获取到它的前一位数,不包含它。
步长:默认为正1,可以为负数。
省略索引:
省略第一个索引:相当于使用索引0。
省略第二个索引:相当于使用列表的长度,意味着切片直至列表的末尾。
说明索引图

str1 = 'hello word '
print(str1[0])  # 取单个值。
print(str1[0:11])  # 取全部值。
print(str1[0:30])  # 超出也只能取全部的值。
print(str1[0:])  # 省略第二个索引相当于使用列表的长度,意味着切片直至列表的末尾。
print(str1[:11])  # 省略第一个索引相当于使用索引0。
print(str1[-11:-1])  # 利用索引 负索引-1,的值不会显示,有一个空格不要忘记。
print(str1[0:-1])  # 第一位到倒数第二位,有一个空格不要忘记。
print(str1[-30:-1])  # 超出也只能从0取-1之间的值 等通于 [0:-1]。
print(str1[-1:-12:-1])  # 利用索引 倒退写法,步长是倒退-1。
print(str1[::-1])  # 倒取全部

6.遍历

for循环可以依次获取字符串中的单个字符。

str1 = 'hello word '
# 遍历每个字符
for i in str1:
    print(i)                 

7.长度统计

len() 统计字符串的个数。

str1 = 'hello word '
print(len(str1))  # 11

8.字符串复制与拼接

8.1字符串的复制

  • "* "乘号 复制字符串。 ‘a’ * 3 = ‘aaa’

8.2加号拼接

  • “+” 加号 连接字符串。 ‘a’ + ‘b’ = ‘ab’

8.3join拼接

.join()方法
格式:
‘连接符’.join(可迭代对象)
适用于列表中的字符串想加。直接连接字符串比较麻烦还需要转为列表,在拼接。
拼接的列表中存在不是字符串的元素会报错。

str1 = 'abc'
str2 = 'def'

list1 = [str1, str2]
print(''.join(list1))  # abcdef

# 列表字符串的拼接
list2 = ['a', 'b', 'c']
print(''.join(list2))  # abc
print('-'.join(list2))  # 设置拼接符 a-b-c

"""
list3 = ['a', 1, 'b', 2, 'c']
print(''.join(list3))
"""

8.4字符截取拼接

str4 = 'Hello word'
print(str1[0:1] + 'a')  # 截取字符相加

9.成员运算

str1 = 'hello word'
print('h' in str1)  # True
print('a' not in str1)  # True

10.格式化输出

.format()方法, Python官方推荐的使用的格式化输入(%s还是很多程序员使用,依据情况使用就好了)

# 方式一
'''
与%s类似,format使用{}占位, {}可以接送任意类型参数,在format()中写上对应的参数。
'''
print('今天星期%s,天气%s,温度%s℃!' % ('一', '晴', 28))
print('今天星期{},天气{},温度{}℃!'.format('一', '晴', 28))

# 方式二
'''
{}中写索引,可以对参数进行多次调用。索引是来源于format()的数据。
(%s 则用多少个坑就需要多少个萝卜来填)
'''
# 方式三
print('现在时间是:{0}点{0}分{0}秒。' \
      '距离下班时间还有{1}个小时{1}分{1}秒!'.format(13, 1))
#现在时间是:13点13分13秒。距离下班时间还有1个小时1分1秒!

实验遇到错误点
在这里插入图片描述
在此遇到的问题,在续行符后面加了一个空格
SyntaxError: unexpected character after line continuation character
SyntaxError:行连续字符后出现意外字符

11.切分拼接

.split(‘字符’)
指定一个字符为分割点进行切分,指定切割的字符不会保留,不写默认指定为空字符。
指定的字符必须存在字符串中。
split()中用引号引起来,被切分的的字符串会以列表类型存放,指定什么作为分隔 ,该字符不保留。
可以指定切割的次数。

.split(‘指定字符’,maxsplit =) 从左
.rsplit(‘指定字符’,maxsplit =
) 从右

‘’.join() 将列表多个字符串元素拼接成字符串。
引号内指定一个拼接符号,引号内默认不写则不使用分隔符。

split 切分, join还原。

partition() 方法用来根据指定的分隔符将字符串进行分割。
如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

#OMP5_STATUS zxic_omp5_osu_bip8_cnt_stop_set(ZXIC_UINT32 dev_id, ZXIC_UINT32 osu_port, ZXIC_UINT32 dir_ab, ZXIC_UINT32 alm, ZXIC_UINT32 en)
reg_save_name = inforlist[i].partition('(')[0].partition(' ')[2] #zxic_omp5_osu_bip8_cnt_stop_set

str1 = 'abc and acg adf'
print(str1.split())

# 指定 | 作为分隔 ,|不保留
str1 = '1 | 2 | 3| 4 | 5'
print(str1.split('|'))#['1 ', ' 2 ', ' 3', ' 4 ', ' 5']
print(str1.split('|', maxsplit=1))#['1 ', ' 2 | 3| 4 | 5']              # 切一次
print(str1.split('|', maxsplit=2))#['1 ', ' 2 ', ' 3| 4 | 5']           # 切两次

print(str1.rsplit('|', maxsplit=1))#['1 | 2 | 3| 4 ', ' 5']              # 从右边切一次
print(str1.rsplit('|', maxsplit=2))#['1 | 2 | 3', ' 4 ', ' 5']           # 从右边切一次

list1 = ['a', '1', 'b', '2']
print(''.join(list1))#a1b2                                 # 无缝拼接
print('|'.join(list1))#a|1|b|2                              # 指定分隔符拼接

12.移除

.strip() 移除指定的首尾字符。
.lstrip() 移除首部,指定的的字符。
.rstrip() 移除尾部,指定的的字符。
不写都默认移除空字符。需要移除的字符用引号引起来,中间的无法移除。

str1 = ' hello word '
print(str1.strip())  # 默认移除首尾空字符    hello word
str2 = '###hello word@@@'  # 首尾不能有空格。 
print(str2.strip('#'))  # 指定移除'#'    hello word@@@
print(str2.strip('@'))  # 指定移除'@'    ###hello word
str3 = '###hello word###'
print(str3.lstrip('#'))  # 指定移除首部字符  hello word###
print(str3.rstrip('#'))  # 指定移除尾部字符  ###hello word

注意点:aipoo移除'aoa'
***aoa中的字符每个字符去aipoo前后匹配,如果存在则移除***
print('aipoo'.strip('aoa'))  # ip

13.字符操作

13.1字母大小写转换

将纯字母转为 大写或者小写 其他的字符原样输出。
.upper() 将字符串中的字母全转为大写
.lower() 将字符串中的字母全转为小写

str1 = 'AbCdEfG'

# 全转大写
print(str1.upper())  # ABCDEFG

# 全转小写
print(str1.lower())  # abcdefg

13.2验证码案例

将输入的字母 与 验证码 全转为大写或小写 在做比较。

code = 'sAD8'
print('验证码>>>>>:%s' % code)
in_code = input('输入验证码>>:')
if in_code.upper() == code.upper():
    print('输入正确')
else:
    print('输出错误')

"""
验证码>>>>>:sAD8
输入验证码>>:sad8
输入正确
"""

13.3判断 大/小写

判断字符串中的字母是否为全大写或全小写。( 其它字符不会影响判断 )
istitle()如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.

str2 = 'AbCdEfG'
str3 = 'ABC'
str4 = 'abc'

print(str2.isupper(), str2.isupper())  # False False
# 大 小
print(str3.isupper(), str4.islower())  # True True
print(str2.istitle(), str4.istitle())  # True false

# 其他字符会产生影响
str5 = 'a我'
print(str5.islower())  # True

13.4字符开头/结尾

判断字符串是否以指定的字符开头/结尾,区分大小写。

# 判断字符串是否以指定的字符开头

str6 = 'Hello word!'
print(str6.startswith('h'))  # False 区分大小写
print(str6.startswith('H'))  # True

print(str6.startswith('Hello'))  # True

# 判断字符串是否以指定的字符结尾

print(str6.endswith('!'))  # True

14.字符串的替换

.replace方法
格式:
.replace(old, new, count=None)
old 想要被替换的值,参数必须写
new 写入的新值,参数必须写
count 替换的个数,默认全部替换。

str1 = 'aaaa aaaa aaaa'
print(str1.replace('a', 'b'))
print(str1.replace('a', 'b', 4))

15.纯数字/纯字符判断

#函数也比较简单,通过ascii即可判断
# 15.1纯数字判断
.isdigit()判断字符串中是否为纯数字。
str1 = '123456'
str2 = 'a123'
str3 = ' 123'
print(str1.isdigit())  # True
print(str2.isdigit())  # False
print(str3.isdigit())  # False

# 15.2纯字符判断
.isalpha()判断字符串中是否为纯字母。

str1 = 'asd123'
str2 = 'asd'

print(str1.isalpha())  # False
print(str2.isalpha())  # True

# 15.3只有字母和数字
.isalnum() 判断字符串中是只有字母和数字.

print(str1.isalnum())  # True

``
# 16.首字母大写
.title() 将所有单词的首字母大写。
.capitalize() 将第一个单词首字母大写

```python
# 所有单词首字母大写
str1 = 'my name is kid my age is 18'
print(str1.title())  # My Name Is Kid My Age Is 18

# 第一个单词首字母大写
print(str1.capitalize())  # My name is kid my age is 18

17.大小写互换

str2 = 'AbCd'
print(str2.swapcase())  # aBcD

18.获取索引

.find()从左往右查找起始字符所对应的索引,找到就返回索引的值,如果查找的字符不错字则返回-1。
.index()从左往右查找起始字符所对应的索引,找到就返回索引的值,找不到就报错。

print(str1.find('m'))  # 0
print(str1.find('my'))  # 0
print(str1.find('mys'))  # -1

print(str1.index('m'))
print(str1.index('my'))
# print(str1.index('mys'))  # 报错 substring not found 未找到子字符串

19.统计字符

.count() 统计某个字符或字符组合出现的次数

print(str1.count('m'))  # 3
print(str1.count('my'))  # 2

20.文本对齐

.center( 数字, ‘字符’)
.ljust( 数字, ‘字符’)
.rjust( 数字, ‘字符’)
数字为字符宽度,符号位置参数设置填充的符号。

# 字符串居中
message = '输出'
print(message.center(16, '-'))  # -------输出-------
print(message.ljust(16, '-'))  # 输出--------------
print(message.rjust(16, '-'))  #  --------------输出

21.练习

"""
name = " kiD"
1.   移除 name 变量对应的值两边的空格,并输出处理结果
print(name.strip())
2.   判断 name 变量对应的值是否以 "ki" 开头,并输出结果
print(name.startswith('ki'))
3.   判断 name 变量对应的值是否以 "d" 结尾,并输出结果
print(name.endswith('d'))
4.   将 name 变量对应的值中的 “i” 替换为 “p”,并输出结果
print(name.replace('i', 'p'))
5.   将 name 变量对应的值根据 “i” 分割,并输出结果。
print(name.split('i'))
6.   将 name 变量对应的值变大写,并输出结果
print(name.upper())
7.   将 name 变量对应的值变小写,并输出结果
print(name.lower())
8.   请输出 name 变量对应的值的第 2 个字符?
print(name[1])
9.   请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
10.  请输出 name 变量对应的值的后 2 个字符?
print(name[2:])
11.  请输出 name 变量对应的值中 “d” 所在索引位置?
print(name.index('i'))
12.  获取子序列,去掉最后一个字符。如: kid 则获取 ki。
print(name[0:len(name)-1])
"""

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值