一、 格式字符串
输出:XXX今年XX岁
方案一:字符串拼接
name = '张飞'
age = 5
message = name + '今年' + str(age) + '岁。'
print(message)
message = f'{name}今年{age}岁'
print(message)
xx 性别:x,年龄:xx,今天考了xx分
name = '阿斯顿'
sex = '男'
age = 18
score = 60
方案二:格式字符串
1. 格式字符串
语法:
带有格式占位符的字符串%(数据1,数据2,数据3,…)
说明:
1.格式占位符 - 字符串不同类型数据的占位符号,固定的
%s - 字符串的格式占位符(任何类型的数据都可以赋值)
%d - 整数的格式占位符
%f - 浮点数的格式占位符
%.Nf - 浮点数的格式占位符,并且控制小数点有N位小数
%c - 字符的格式占位符(可以是字符,也可以是字符对应的编码值)
2.%() - 固定写法
3.数据 - 最后给字符串中不确定内容赋值的数据;数据的个数和类型要和前面占位符的个数以及类型保持一致
message = '%s 性别:%s,年龄:%d,今天考了%d分'%(name,sex,age,score)
print(message)
message = f' {name}性别:{sex},年龄:{age},今天考了{score}分'
print(message)
message2 = '金额:%.2f' % (20.1666156516)
print(message2)
练习:狗的自我介绍:
dog1 = {'name':'大黄','age':2,'bread':'土狗'}
message = '大家好,我是%s,今年%d岁,我是一只%s。'%(dog1['name'],dog1['age'],dog1['bread'])
print(message)
方案三:format字符串 (f-string)
2. format
用法一:带{}的字符串。format(数据1,数据2,数据3,…)
message = '大家好,我是{},今年{}岁,我是一只{}。'.format(dog1['name'],dog1['age'],dog1['bread'])
print(message)
用法二:{下标}
message = '大家好,我是{0},我的名字是{0},今年{1}岁'.format('撒旦','18')
print(message)
用法三:{key}
message = '大家好,我是{name},我的名字是{name},今年{age}岁'.format(name = '萨达',age = 52)
print(message)
加约束 {:约束}/{下标:约束}/{key:约束}
1)约束小数位数 - {:.Nf}
message1 = 'a={:.2f}, b={:.3f}'.format(20,10)
print(message1)
print('a={0:.2f}, b={1:.3f}, c={0:.3f}'.format(20,10))
print(f'a={20:.2f}, b={1:.3f}, c={20:.3f}')
# '我的名字是xxx,月薪:xxx.xx元'
print('我的名字是{name},月薪:{money:.2f}元'.format(name = '阿达',money = 12.23135))
2)控制显示正负号 {:+}
print('a:{:+} b:{:+}'.format(10,-10))
3)控制数字的宽带:{:x>N}/{:x<N} - N表示数字的最终的位数,X是填充数字,>表示填充在数字的左边,<表示填充在数字的右边
print('a:{:>5},b:{:.<5}!'.format(10,20))
print('a:{:0>5},b:{:*<5}!'.format(10,20))
4)大数字用逗号隔开:{:,}
print('a:{:,},b={:,}'.format(10000000000000000000000,20000000000000000))
5)显示百分比:{:%}
print('a:{:.0%},b={:.2%}'.format(0.12,1))
f-string的用法
name = '小花'
age = 18
message = f'姓名:{name},年龄:{age}'
print(message)
二、 字符串常用方法
1.center/rjust/ljust
print('abc'.center(7,'*'))
print('abc'.rjust(7,'*'))
print('abc'.ljust(7,'*'))
# zfill() == rjust() zfill填充字符位0
print('123'.zfill(7))
练习;
num = input('请输入学生编号:')
print(f'python2003{num.zfill(3)}')
2.count
message = 'how are you? i am file. and you?'
print(message.count('a')) #统计字符串message中字符'a'出现的次数
print(message.count('you'))
print(message.count('a',0,10)) #统计字符串message中0到9之间字符'a'出现的次数
3.index/find - 查找字符串的位置
message = 'how are you? i am file. and you?'
print(message.index('you'))
print(message.find('you'))
# print(message.find('you+')) #报错
print(message.find('you+')) #返回
4.join
字符串.join(序列) - 将序列中的元素用指定字符串拼接成一个新的字符串(序列中的元素必须是字符串)
list1 = ['name','sex','age']
print(' '.join(list1))
print('+'.join('abc'))
print('*'.join({'a':4,'b':1}))
5.lstrip/restrip/strip - 删除空白
message = '\n \t abc 132\n 23\n'
print('============================')
print(message.lstrip())
print('============================')
print(message.rstrip(),'----------',sep='')
print('============================')
print(message.strip(),'----------',sep='')
message = 'aaaaaaaaaaa收到啦aaaaaa'
print(message.lstrip('a'))
print(message.rstrip('a'))
print(message.strip('a'))
6.maketrans和translate
table = str.maketrans('ab','12') # 创建映射表:a - 1 ,b - 2
new_str = 'abcaaaaaaaa'.translate(table) # 按照指定的映射表将原字符串中的字符进行替换
print(new_str)
7.replace
字符串1.replace(字符串2,字符串3)- 将字符串1中的字符串2全部替换成字符串3
message = 'how are you? i am file. and you?'
print(message.replace('you','****')) #全部
print(message.replace('you','***',1)) #1次
8.split
字符串1.split(字符串2) - 将字符串2作为切割点对字符串1进行分隔
message = 'how are you? i am file. and you?'
print(message.split(' ')) #返回值为列表
print(message.split('are'))
三、 函数的定义
1.什么是函数
1)函数的概念(函数就是机器)
函数就是实现某一特定功能的代码的封装
2)函数的分类
系统函数:系统已经定义好的函数,程序员根据需求直接使用。例如:print、input、type等(别人造好的机器)
自定义函数:程序员自己定义函数。(自己造机器)
2.定义函数(造机器)
语法:
def 函数名(形参列表):
函数说明文档
函数体
说明:
1.def - 关键字;固定写法
2.函数名 - 程序员自己命名;
要求:标识符;不能是关键字
规范:所有字母都小写,多个单词之间用下划线
见名知义(大概知道函数的功能)
不能使用系统自带的函数命、模块名和类名
3.形参列表 - 以:变量名1,变量名2,…的形式存在(可以一个变量都没有)
形参的作用是将函数外部的数据传递到函数的内部
定义函数的时候需不需要形参,需要几个形参看实现函数的功能需不需要额外的数据,需要几个
4.函数说明文档 - 就是用""""""表示的说明性的文字(相当于机器的说明书)
5.函数体 - 和def保持一个缩进的一条或者多条语句;就是实现函数功能的一条或者多条语句
(重要!!!!!!!!)注意:定义函数的时候不会执行函数体!!!调用函数的时候才会执行函数体
3.初学者定义函数的步骤
第一步:确定函数的功能
第二步:根据函数功能确定函数名字
第三步:确定函数的参数
第四步:实现函数的功能
第五步:写函数的说明文档
练习:定义一个函数求两个数的和
def sum1(num1, num2):
"""
求两个数的和(函数功能的说明)
:param num1: 需要求和的第一个数
:param num2: 需要求和的第二个数
:return: None(返回值说明)
"""
print(num1 + num2)
练习2:定义一个函数求一个数的阶乘
def factorial(sum):
"""
求一个数的阶乘
:param sum: 需要求阶乘的数
:return: None
"""
count = 1
for x in range(1,sum+1):
count *= x
print(count)
4.调用函数(使用机器)
语法:
函数名(实参列表)
说明:
函数名 - 已经定义好的函数名
实参列表 - 以 数据1,数据2…的形式存在(也可以没有)
正在传递到函数中使用的数据
sum1(2,3)
factorial(5)