小白学习Python的第八天

一. 字符串

  1. in 和 not in
    字符串1 in 字符串2 - 判断字符串1是否是字符串2的字串(判断字符串2中是否包含字符串1)
print('a' in 'abc')   # True
print('ab' in 'abc')   # True
print('ac' in 'abc')   # False

2.相关函数
len、str
1)求长度

str1 = '曾今有一段真挚的爱情...'
print(len(str1))   # 13

str2 = '\tabc\n123'
print(len(str2))   # 8

str3 = r'\tabc\n123'
print(len(str3))   # 10

str4 = 'abc  123'
print(len(str4))   # 8

str5 = '    abc132'
print(len(str5))   # 10

2)str(数据) - 将数据转换成字符串

# a.哪些能转:所有的数据都可以转换成字符串
# b.怎么转:在数据打印值外面加引号
num = 100
print(str(100))   # '100'
print(str(True))   # 'True'
print(str([1, 2, 3]))   # '[1, 2, 3]'

# c.字符串转数字
str6 = '782'
print(int(str6))   # 782

# 去掉引号后本身就是整数的字符串才能转换成整型
# str7 = '12.5'
# print(int(str7))   # ValueError: invalid literal for int() with base 10: '12.5'

str8 = '12.5'
print(float(str8))   # 12.5
print(float(str6))   # 782.0

str9 = '3e4'
print(float(str9))   # 30000.0

二. 格式字符串

name = input('请输入姓名:')
age = int(input('请输入年龄:'))
money = float(input('请输入月收入:'))
# message = xxx今年xx岁,月薪xxx元
message = name+'今年'+str(age)+'岁','月薪'+str(money)+'元'
print(message)

当一个字符串中有一个或者多个部分是变化的时候,我们可以用字符串加法运算、字符格式字符串和f字符串来实现这个功能
1.格式字符串

"""
格式字符串:在字符串中用格式占位符代替字符串变化的部分,然后在后面用数据来给格式占位符赋值

语法:
带有格式占位符的字符串 %(数据1, 数据2, 数据3, ...)

说明:
1)% - 固定写法
2)() - 固定写法,在数据只有一个的时候可以省略
3)数据 - 数据的个数必须和前面字符串中占位的个数保持一致;类型也要和占位符一一对应
4)格式占位符 - 格式占位符有哪些,对应的数据的类型是什么都是固定的
%s - 字符串(可以是其他数据)
%d - 整数
%f - 浮点数;%.NF - 浮点数保留N位小数
%c - 字符(字符编码值)

"""
message = '%s今年%d岁,月薪%.2f元' % (name, age, money)
print(message)

2.f-string

"""
1)format方法
包含{}的字符串.format(数据1, 数据2, 数据3, ...) - 字符串串中的{}就相当于格式字符串中的占位符
"""

1)基本用法

# a.{}
message = '{}今年{}岁,月薪{}元'.format(name, age, money)
print('format1:', message)

# b.{下标} - 下标指的是获取format中第几个数据,从0开始
# '年龄:xx,今年xx岁'
message = '{1}年龄:{0}, 今年{0}岁'.format(age, name)
print('format2', message)

# c.{key} - key指的是等号前的变量
message = '{name}的年龄:{age}, 今年{age}岁'.format(age=age, name=name)
print('format3', message)

2)格式约束:{:约束条件}、{下标:约束条件}、{key:约束条件}

"""
约束条件:
.Nf - 保留N位小数(四舍五入)
符号<Nd - 约束数据宽度为N,不够的在后面用指定字符填充
符号>Nd - 约束数据宽度为N,不够的在前面用指定字符填充
, - 将数字三位一组用逗号隔开(一般用于大数据的表示)
%  - 将小数转换成百分比数据,保留6位小数
.N% - 将小数转换成百分比数据,保留N位小数

"""
print('约束1: {:.2f}'.format(3.1415926))   # 3.14
print('约束1: {0:.3f}'.format(3.1415926))   # 3.142

print('约束2:{:x>5}'.format(100))   # 约束2:xx100
print('约束2:{:0<5}'.format(23))   # 约束2:23000
print('约束2:{: >5}'.format(34))   # 约束2:   34

print('约束3:{:,}'.format(100000))   # 约束3:100,000

print('约束4:{:%}'.format(0.25))   # 约束4:25.000000%
print('约束4:{:.1%}'.format(0.25))   # 约束4:25.0%

3)f-string - format方法的简写

"""
语法:
f'字符串内容'
"""
message = f'{name}今年{age}岁,月薪:{money}元!'
print(message)   # s今年1岁,月薪:1.0元!

message = f'{name*2}今天{age+10},月薪:{money/1000}k'
print(message)   # xiaomingxiaoming今天42,月薪:78.94554600000001k

# 添加约束
print(f'pi:{3.1415926:.2f}')   # pi:3.14
print(f'年龄:{age: >5}')   # 年龄:    1
print(f'余额:{1000054:,}')   # 余额:1,000,054

三. 字符串相关方法

这里只是罗列了一些比较常用的方法,其余的方法大家可以在网上去查看
1.字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数

message = 'how are you? i am fine,Thank you , and you'
print('you的个数:', message.count('you'))   # 3
print('空格的个数:', message.count(' '))   # 9

2.字符串1.find(字符串2) - 获取字符串2第一次在字符串1中出现的位置(返回的是下标值),如果找不到就返回-1

print(message.find('you'))   # 8
print(message.find('a'))    # 4
print(message.find('你好'))   # -1(找不到)

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

print(message.find('you', -7))   # 39(在'nd you?'找you)
print(message.find('you', 0, 10))   # -1(在'how are yo'找'you')

3.字符串.join(字符串序列) - 将序列中所有的元素用指定的字符串拼接产生一个新的字符串

list1 = ['name', 'age', 'abc', '你好']
new_str = ''.join(list1)
print(new_str)   # nameageabc你好
print('+'.join(list1))   # name+age+abc+你好

message = 'hello'
new_str = ' '.join(message)
print(new_str)   # h e l l o

# 看一眼![str(x) for x in nums] - 列表推导式
nums = [100, 20, 30, 40]
print(''.join([str(x) for x in nums]))   # 100203040

4.字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3,产生一个新的字符串

字符串1.replace(字符串2, 字符串3, N) - 将字符串1中前N个字符串2替换成字符串3

message = 'how are you? i am fine,Thank you , and you'
new_str = message.replace('you', 'YOU')
print(new_str)   # how are YOU? i am fine,Thank YOU , and YOU

new_str = message.replace('you', 'me', 2)
print(new_str)   # how are me? i am fine,Thank me , and you

5.字符串1.split(字符串2) - 将字符串1中的字符串2作为切割点对字符串1进行切割

message = 'how are you? i am fine,Thank you , and you'
print(message.split(' '))   # ['how', 'are', 'you?', 'i', 'am', 'fine,Thank', 'you', ',', 'and', 'you']

str1 = 'abc123abc123abc'
print(str1.split('123'))   # ['abc', 'abc', 'abc']
print(str1.split('1'))   # ['abc', '23abc', '23abc']
print(str1.split('b'))   # ['a', 'c123a', 'c123a', 'c']
print(str1.split('c'))   # ['ab', '123ab', '123ab', '']

str2 = 'abc123abcc123'
print(str2.split('c'))   # ['ab', '123ab', '', '123']

字符串1.split(字符串2, N) - 将字符串1中的前N个字符串2作为切割点对字符串1进行切割

message = 'how are you? i am fine,Thank you , and you'
print(message.split(' ', 2))   # ['how', 'are', 'you? i am fine,Thank you , and you']

6.字符串.zfill(N) - 将字符串转换成一个指定长度的新字符串,原字符串在右边,左边用0填充

num = 5
print(str(num).zfill(4))   # 0005

猜你喜欢

转载自blog.csdn.net/bbbbbya/article/details/108983079