一.格式字符串
1.格式字符串
- 意义:
格式化字符串的意思是使用Format函数将指定的字符串转换为想要的输出格式。 - 语法:
带有格式占位符的字符串 % (数据1,数据2,数据3…) - 说明:
- 1.格式占位符 - 字符串中不同类型数据的占位 符号,固定的。
%s - 字符串的格式占位符(任何类型的数据都可以赋值)
%d - 整数的格式占位符
%f - 浮点数的个数占位符
%.Nf -浮点数的占位符,并且控制小数点后有N位小数。
%c - 字符的个数占位符(可以给字符,也可以给字符的编码值) - 2.%() - 固定写法
- 3.数据 - 最后给字符串中不确定内容赋值的数据;数据的个数和类型要和前面占位符的个数以及类型保持一致。
2.format字符串
- 用法:
1).字符串{ } .format(数据1,数据2,数据3,…)
message = '大家好,我是{},今年{}岁,
我是一只{}'.format('小白', 3, '银狐')
print(message)
2).{下标}.format
message = '大家好,我是{0},我的
名字是{0},今年{1}岁'.format('毓婷', 18)
print(message)
3).用法3: {key}.format
message = '大家好,我是{name},
我的名字是{name},今年{age}岁'.format(
name='毓婷',
age=18,
sex='女')
print(message)
- 加约束
- {:约束}/{下标:约束}/{key:约束}
1)约束小数位数 - {:.Nf}
message1 = 'a-{:.1f}, b-{:.2f}'.format(10, 20)
print(message1)
print('a-{0:.1f},b-{1:.2f},a-{0:.3f}'.format(10, 20))
2)控制显示正负号 :{:+}
print('a:{:+} b:{:+}'.format(10, -20))
- 控制数字的宽度:{:x>N} / {:x<N} - N表示数据最终的位数,x是填充符号,
print('a:{:>5}, b:{:<5}!'.format(10, 20)) # a: 10, b:20 !
print('a:{:0>5}, b:{:1<5}!'.format(10, 20)) # a:00010, b:20111!
print('a:{:x>5}, b:{:y<5}!'.format(10, 20)) # a:xxx10, b:20yyy!
4)大数字用逗号隔开 :{:,}
print('a:{:,}, b:{:,}'.format(100, 1000000)) # a:100, b:1,000,000
- 显示百分比 : {:.N%} - N控制百分制数小数点的位数
print('a:{:.2%}, b:{:.1%}'.format(0.12, 0.789)) # a:12.00%, b:78.9%
4.f-string的用法
- 用法:f ‘{数据}’
name = '小花'
age= 18
message = f'姓名:{name},年龄:{age}'
print(message)
二:字符串常用方法
1 .center\rjust\ljust (居中,放在右边,放在左边)
print('abc'.center(7, 'x')) # xxabcxx
print('abc'.ljust(7, 'x')) # abcxxxx
print('abc'.zfill(7)) # 0000abc
2 .count(统计字符串出现的次数)
message = 'how are you? i am file.
and you?'
print(message.count('a')) # 统计字符
串message中字符’a‘出现的次数
print(message.count('a', 0, 10)) # 在
下标0到9的范围内统计’a'的次数
print(message.count('you'))
3 .index/find - (查找子串的位置第一次出现的下标值)
message = 'how are you? i am
file. and you?'
# print(message.index('you+')) # 没有
的时候回报错
print(message.find('you'))
print(message.find('you+')) # 没有的
时候不会报错,返回-1.
4.join
- 字符串 . join(序列) - 将序列中的元素用指定字符串拼接成一个新的字符串(序列中的元素必须都是字符串)
list1 = ['anme', 'age', 'sex']
print(''.join(list1)) # 无缝拼接,
加一个‘’空字符串 anmeagesex
print(' '.join(list1)) # 用一个
空格拼接 anme age sex
print('abc'.join(list1)) # 用‘abc'
连接 anmeabcageabcsex
print('='.join({'a': 10, 'b': 20}))
# a=b,字典连接的是键的值。
5 .lstrip/rstrip/strip - 删除空白.左边,右边,左右同时。
message = '\n\t abc \t 123'
print('=======')
print('原字符串', message, '-------')
new1 = message.lstrip()
print(new1, '------', sep='')
print('=======')
new2 = message.rstrip()
print(new2, '----', sep='')
print('=======')
new3 = message.strip()
print(new3, '------', sep='')
message = 'aaaa你好吗aaaaaaaa'
print(message.strip('a'))
6.maketrans和translate
- table = str.maketrans(‘ab’, ‘12’)
创建映射表:a-1,b-2,c-好
new_ste1 = ‘abc’.translate(table)
按照指定的映射表将原字符串中的字符进行替换
7.replace
- 字符串1 . replace(字符串2,字符串3) - 将字符串1中字符串2全部替换成字符串3
message = 'how are you? i am
file. and you?'
new_ste2 = message.replace('you', 'me')
print(new_ste2)
new_ste2 = message.replace('you', 'me', 1)
# 1 是替换次数
8.split
- 字符串1.split(字符串2) - 将字符串2作为切割点对字符串1进行分隔
message = 'how are you? i am file.
and you?' # 应该是列表
print(message.split(' '))
# 应该是列表 ['how', 'are', 'you?',
'i', 'am', 'file.', 'and', 'you?']
函数
一。函数的作用
二。函数的定义
1.什么是函数
- 1)函数的概念
函数就是实现某一特定功能的代码的封装。 - 2)函数的分类(可以吧函数理解为机器,不同函数功能不同)
- 系统函数:系统已经定好的函数,程序员根据需求直接使用。;例如:print、input、type等(别人
造好的机器)。 - 自定义函数:程序员自己定义的函数。(自己造的机器)
2定义函数
- 语法:
def 函数名(形参列表):
函数说明文档
函数体
-
说明:
-
- def - 关键字,固定写法。
-
- 函数名 - 程序员自己命名(和变量一样);
要求:标识符;不能是关键字
规范:所有字母都小写,多个单词之间用下划线;
见名知义(看到函数名大概知道函数的功能);
不能使用系统自带的函数名、模块名和类名;
- 函数名 - 程序员自己命名(和变量一样);
-
3.形参列表 - 以: 变量名1,变量名2,变量名3,…的形式存在(可以一个变量都没有)
— 形参的作用:将函数外部的数据传递到函数的内部,(连接机器外部和内部的管道
需不要额外提供数据 )
— 定义函数的时候需不需要形参需要几个形参看实现函数的功能需不需要额外的数据,需要几个。(看不给其他参数能不能完成) -
4.函数说明文档 –
就是用""""""表示的说明性的文字(相当于机器的说明书) -
- 函数体 - 和def保持一个缩进的一条或者多条语句;就是实现函数功能的一条或者多条语句
-
(重要!!!)注意:定义函数的时候不会执行函数体!!!调用函数的时候才会执行函数体。
3.初学者定义函数的步骤
- 第一步:确定函数的功能,(定一个小目标)
- 第二部:根据函数的功能确定函数的名字
- 第三部:确定函数的参数(形参,老司机可以不用,根据函数缺什么后面补什么就是),
- 第四部:实现函数的功能
- 第五步:写函数的说明文档
4.调用函数(使用机器)
- 语法:
函数名(实参列表) - 说明:
- 函数名 - 已经定义好的函数的函数名,造好的机器。
- 实参列表 - (形参,是连接的通道,实参就是实际放进去的东西)以 数据1,数据2,数据3,…的形式存在(也可以没有,)真正传递到函数中使用的数据。