1.字符串相关方法

1.计算次数

1.count

字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数

字符串1.count(字符串2, 开始下标, 结束下标) - 在字符串1中指定范围内统计字符串2出现的次数

str1 = 'how are you? i an fine, Thank you!And you ?'
str2 = str1.count('a')
print(str2)
num = str1.count('you', 0, 11)
print(num)

2.统计内容

1.replace

字符串1.replace(字符串2, 字符串3) - 将字符串1中的字符串2全部替换成字符串3

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

2.expandtabs

字符串.expandtabs() - 将字符串中制表符替换成8个空格(只针对下标是0的制表符有效)

字符串.expandtabs(N) - 将字符串中的制表符替换成N个空格(只针对下标是0的制表符有效)

str1 = 'how are you? i an fine, Thank you!And you ?'
print(str1.replace('you', 'me', 1))
str2 = '\tbc123'
print(str2.expandtabs())

3.字符串切割

字符串1.aplit(字符串2) - 将字符串1按照字符串2为切割点进行切割

字符串1.aplit(字符串2, N) - 将字符串1按照字符串2为切割点进行切割,切N次

字符串1.raplit(字符串2, N) - 将字符串1按照字符串2为切割点进行切割,切N次,但是从右面开始切

str1 = '   how are you? i an fine, Thank you!And you ?'
print(str1.split('a', 2))
print(str1.rsplit('a', 2))
print(str1.title())

4.删除字符串中指定字符

字符串1.strip() - 同时删除字符最左边和最右边的空白

字符串1.lstrip() - 删除字符串中最左边的空白

字符串1.rstrip() - 删除字符串中最右边的空白

字符串1.strip(字符串2) - 同时删除字符串最左边和最右边的字符串2
字符串1.lstrip(字符串2) - 删除字符串中最左边的字符串2
字符串1.rstrip(字符串2) - 删除字符串中最右边的所有字符串2

str1 = '    how are you? i an fine, Thank you!And you ?'
print(str1.strip())

5.字符串查找

字符串1.find(字符串2) - 获取字符串2在字符串1中第一次出现的位置(用正的下标表示)

str1 = '    how are you? i an fine, Thank you!And you ?'
print(str1.find('you'))

6.拼接

字符串.join(容器) - 将容器中的元素用指定字符串拼接在一起

list1 = ['余婷', '肖秀荣', '徐涛']
new_str = 'and'.join(list1)
print(new_str)
nums = [10, 20, 30]
new_str3 = 'sdfs'.join(str(x) for x in nums)
print(new_str3)

2.格式字符串

1.格式占位符

包含格式占位符的字符串 % (数据1, 数据2, …)
数据个数和占位符个数一致
格式占位符: %d - 整数
%f - 小数
%x - 字符串

2.format

在字符串中通过{}来占位表示字符串中变化的部分
1)数据的个数和{}的个数保持一致
2)下标形式的format: {下标}
3)key形式的format:(key)
key形式的format的变形 :
4)f’{变量名}’
5)数字格式化
:.Nf - 显示小数的小数点位数(N)
:x>Nd - 把数字长度变成N,填充数字占N位,不够的在左边用X填充
:x>Nd - 把数字长度变成N,填充数字占N位,不够的在右边用X填充
:, - 用,将数据进行分割(通用于银行数据显示)
:.N% - 以百分比的形式显示数据,数据保留N为小数

message = '{}今年{}岁!'.format(name, age)
print(message)
# '你好,我是XXX. XXX你好!'
message = '你好我是{0},{0}你好!'.format(name)
print(message)
str3 = '{name}今年{age}'.format(name='张三', age=109, score=78)
print(str3)
a = 10
b = 20
message = f'a = {a + 10}, b = {b}'
print(message)
print('数字{:.4f}'.format(3.4124234))
print('数字:{:0>5d}'.format(34))

3.函数的基础

1.什么是函数

函数就是对实现某一特定功能的代码段的封装
2.分类(根据谁定义的分类)
1)系统函数:系统已经定义了程序员可以直接使用的函数 :print input type ord chr bin len index 等
2)自定义函数:程序员自己定义使用的函数

2.函数的定义

语法:
def 函数名(形参列表):
函数说明文档
函数体
说明:
def - Python定义函数的关键字;固定写法
函数名 - 程序员自己命名
要求:标识符不是关键字
规范:所有字母都小写,多个单词之间用下划线隔开;不能用系统提供的函数名、类名;见名知义
() - 固定写法
形参列表 - 格式:变量名1,变量名2,变量名3,…(变量可以是任何没有定义过的变量)
作用:形参的作用是将函数外面的数量传递到函数的里面
函数说明文档 - 和def保持一个缩进的三个双引号引起来的注释(说明书)
函数体 - 和def保持一个缩进的一条或者多条语句;实现函数功能的一条或者多条语句
注意:函数在定义的时候不会执行函数体

3.初学者定义函数的步骤

第一步:确定函数的功能
第二步:根据函数功能确定函数名
第三步:确定函数参数(看实现函数的功能需不需要额外的数据,需要几个)
第四步:实现函数功能
第五步:确定函数返回值
第六步:写函数的说明文档

4. 调用函数

语法:
函数名(实参列表)
实参列表 格式: 数据1,数据2,…
作用:给形参赋值
真正传递到函数中去使用的数据

4.函数的参数

1. 位置参数和关键字参数

1)位置参数
实参直接写,让实参和形参从位置上一一对应
2)关键字参数
以形参名1=值1, 形参名2=值2,…
要保证每个参数都有值
位置参数和关键字参数可以混合使用但是要位置参数在前关键字参数在后

def func1(a, b, c):
    print(f'a:{a}, b:{b}, c:{c}')
func1(10, 20, 40)

2.参数默认值

定义函数的时候可以以 形参名=值 的形式给参数赋默认值。调用函数的时候有默认值的参数可以不用传参,没有默认值的形参必须在有默认值的形参前面

3.不定长参数

定义函数的时候参数个数不确定
1)在形参前加*,本质就是一个元组,对应的实参会作为这个元组的元素
只能用位置参数传参
2)在形参前加**
带两个*的形参本质就是一个字典,对应的实参会作为这个字典的值
只能用关键字参数传参