day 10

day10字符串

1、字符相关操作和函数

1.1字符串相关运算
1.1.1数学运算
  • +—— 字符串1+字符串2——将两个字符串合并成一个字符串
  • 乘法—— 字符串1**N、 N*字符串——字符串重复N次产生一个新的字符串
str1 = 'abc'
str2 = '123'
print(str1 + str2)  # abc123
1.1.2比较运算符
  • ==、!=

  • 比较大小>=、<=、>、<

  • 两个字符串比较大小比较的是第一对不相等的元素(字符)的编码值的大小

  • 应用:比较字符大小来判断字符的类型
    判断是否是数字字符:’0‘<=x<=‘9’
    判断是否是小写字母:’a‘<=x<=‘z’
    判断是否是大写字母:’A‘<=x<=‘Z’
    判断是否是中文:’\u4e00‘<=x<=’\u9fa5’

1.2相关函数
1.2.1max min (看编码值的大小)sorted
print(max('abcdeAA234'))
print(sorted('orgrnvavbc'))
1.2.2 len——比较重要
  • len(字符串)——统计字符个数
1.2.3 str
  • str(数据) ——将数据转换为字符串
    a.所有的数据都可以转换成字符串
    b.转换的时候直接在数据的打印值外面加引号
list1 = [10, 20, 30]
dict1 = {"name": 12}
print(str(list1))
print(str(dict1))
1.2.4 eval
  • eval(字符串) ——将字符串的内容转换成有效代码计算结果(去掉字符串的引号,获取结果)
result = eval('100')
print(result, type(result))  # 100 <class 'int'>
result = eval('100.0')
print(result, type(result))  # 100.0 <class 'float'>

# result = eval('[10,a,30]') # 报错
a = 10
result = eval('[10,a,30]')
print(result)

2.字符串相关方法

2.1.center 、rjust 、ljust、zfill
  • 字符串.center(宽度,填充的)
  • 字符串.rjust(宽度,填充的) --原字符串放右边
  • 字符串.ljust(宽度,填充的)
  • 字符串.zfill(宽度)——默认‘0’
  • 如果给的长度小于原字符串的长度,结果就是原字符串
str1 = 'abcd'
result1 = str1.center(7, '0')
print(result1)
result2 = str1.rjust(7, '0')
print(result2)
result3 = str1.ljust(7, '0')
print(result3)
result4 = str1.zfill(7)
print(result4)

2.2count
  • 字符串1.count(字符串2)——统计字符串1中字符串2的个数
  • 字符串1.count(字符串2,开始下标,结束下标)——统计字符串1中指定范围内字符串2出现的次数,范围:[开始下标,结束下标)
str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.count('you')
print(result)  # 3
result1 = str1.count('you', 5, -3)
print(result1)  # 2


2.3 endswith
  • 字符串1.endswith(字符串2)——判断字符串1 是否以字符串2结束
2.4 find 、rfind、index、rindex
  • 字符串1.find(字符串2)——获取字符串1中第一个字符串2出现的位置,找不到会返回-1

  • 字符串1.index(字符串2)——获取字符串1中第一个字符串2出现的位置,找不到会报错

  • 字符串1.find(字符串2,开始下标,结束下标)——指定范围内获取字符串1中第一个字符串2出现的位置,

  • 字符串1.index(字符串2,开始下标,结束下标)

  • 字符串1.rfind(字符串2)——获取字符串1中最后一个字符串2出现的位置,找不到会返回-1

  • 字符串1.rindex(字符串2)——获取字符串1中最后一个字符串2出现的位置,找不到会报错

  • 字符串1.rfind(字符串2,开始下标,结束下标)——指定范围内获取字符串1中最后一个字符串2出现的位置,

  • 字符串1.rindex(字符串2,开始下标,结束下标)

str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.find('you')
print(result)
result1 = str1.rfind('you')
print(result1)


2.5
  • 字符串1.isalnum() --判断字符串中所有的字符是否是数字、字母或中文
    字符串1.isaplpha() --判断字符串中所有的字符是否是字母或中文

  • 字符串1.isdigit() --判断字符串中所有的字符是否全是数字字符(只把0~9看成数字)

  • 字符串1.isnumeric() --判断字符串中所有的字符是否全是数字(将所有独立存在表示一个数值的符号都看成数字)

  • 字符串1.islower() --判断字符串中所有的字符是否全是小写字母
    (常用!)字符.islower() --判断指定字符是否是小写字母

  • 字符串1.isupper() --判断字符串中所有的字符是否全是大写字母
    (常用!)字符.isupper() --判断指定字符是否是大写字母

  • 字符串.isspace() --判断字符串中所有的字符是否都是空白字符

2.6 join
  • 字符串.join(序列)——将序列中的元素通过指定的字符串连接成一个新的字符串
  • 注意:序列中的元素必须是字符串
list1 = ['abc', 'mn', 'xy']
result1 = ''.join(list1)
print(result1)
result2 = '+'.join(list1)
print(result2)
result3 = 'and'.join('xyz')
print(result3)

nums = [10, 20, 30]
result = ''.join([str(x) for x in nums])
print(result)

练习:将nums中所有数字的第一位连接在一起

# # [10, 23, 89, 902]  -> '1289'
nums = [10, 23, 89, 902]
result = ''.join([str(x)[0] for x in nums])
print(result)

2.7 lower、upper
  • 字符串.lower() ——将字符串中的所有大写字母变成小写字母
  • 字符串.upper()——将字符串中的所有小写字母变成大写字母
2.8 strip、lstrip、rstrip
  • (常用!)字符串.strip()——删除字符串前后的空白
  • 字符串.lstrip()——删除字符串前的空白
  • 字符串.rstrip()——删除字符串后的空白
2.9maketrans、translate(常用)
  • 1)str.maketrans(字符串1,字符串2)——让字符串1中的字符与字符串2中的字符创建一个对应的关系表
    注意:字符串1的长度和字符串2的长度必须一致

  • 2) 字符串.translate(字符对应的关系表)——按照将字符串中的字符按照字符对应关系表对字符进行替换


table = str.maketrans('abc', '123')
print(table)
result = 'abcddddsaawqweqac'.translate(table)
print(result)

week = '星期5'
table = str.maketrans('1234567', '一二三四五六天')
result = week.translate(table)
print(result)  #星期五
2.10 replace(!!)
  • 字符串1.replace(字符串2,字符串3)——将字符串1中所有的字符串2都替换成字符串3
  • 字符串1.replace(字符串2,字符串3,N)——将字符串1中前N个字符串2都替换成字符串3
str1 = 'how are you? Im fine, Thank you! and you?'
str2 = str1.replace('you', 'ME')
print(str2)

str3 = str1.replace('you', '')
print(str3)

str4 = str1.replace('you', 'ME', 2)
print(str4)


2.11 split(!)
  • 字符串1.split(字符串2)——将字符串1中所有的字符串2作为切割点对字符串1进行切割
  • 字符串1.split(字符串2,N)——将字符串1中前N个字符串2作为切割点对字符串1进行切割
str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.split('you')
print(result)

3 字符串格式化

3.1 字符串拼接
message = name + '今年' + str(age) + '岁'
print(message)

3.2 格式字符串
  • 包含格式占位符的字符串%(数据1,数据2…)

  • 格式占位符:

    • %s —— 字符串占位符(C,java):python中可以给任何类型的数据占位

      %d——整数占位符,可以给任何数字占位
      %f——浮点数占位符(默认保留6位小数
      %.Nf——浮点数占位符,保留N位小数
      %c ——字符占位符

massage = '%s今年%d岁' % (name, age)
print(massage)

str1 = '%s========%d===%f====%.2f====%c' % (11, 23, 23.1, 23.1, 97)
print(str1)  # 11========23===23.100000====23.10====a

3.3 f-string
3.3.1基本用法
  • 在字符串的最前面加f,然后在字符串中通过{}来确定变化的部分
print(message)

height = 190
weight = 75
people = f'{name}身高{height},比率是{height / weight:.2f}'
print(people)

a, b = 10, 'abc'
result = f'{a * 3 > 100}=={b[-1]}'
print(result)

3.3.2加参数
  • 参数1
    • {表达式 :.Nf}——控制保留N位小数
money = 2390000.1234
print(f'月薪{money:.2f}')
  • 参数2
    • :,
money = 239990
print(f'年薪:{money * 12:,}')
# 逗号和小数一起用::, .Nf(保留小数)
print(f'年薪:{money * 12:,.2f}')
  • 字符填充
    • #:填充字符>长度 (字符填前面)
      :填充字符<长度 (字符填后面)
  • 注意,如果字符没有,就用空格填充
num = 5
study_id = f'2107{num:0>3}'
print(study_id)
str1 = 'abc'
print(f'{str1:1>4}')

print(f'{str1:a<7}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值