一.字符串格式化
例子:
name='小明'
age=18
# 输出:小明今年18岁了!
1. 字符串拼接
str1=name+'今年'+str(age)+'岁了!'
2. 字符串格式占位符
'''
%s - 字符串占位符,可以对应任何能转换成字符串的数据
%d - 整数占位 ----可以对应任何数字数据(如果是浮点数,拼接时之拼接整数部分)
%f - 浮点数占位符,%.Nf 保留N位小数,可以对应任何数字数据
%c - 字符占位符,可以对应任何字符或者字符编码值
'''
str1='%s今年%d岁了!'
3.f-string
a.直接提供数据:{提供数据的表达式}
b.添加参数:{提供数据的表达式:参数}
'''
a. .Nf --- 保留N位小数
b. ,----用逗号将数据三位三位分开
c. ,.Nf-----使用逗号的同时保留N位小数
d. .N%---将小数转换成百分比,百分数保留N位
e. X>N或者X<N --- X是填充字符(如果没有X,用空格填),N是长度。大于填充在前面,小于填充在后面
'''
str1=f'{name}今年{age}岁了'
num = 19000000
print(f'数量为:{num:,.2f}') # 数量为:19,000,000.00
rate = 0.78
print(f'运动鞋的占比:{rate:.0%}') # 运动鞋的占比:78%
num = 34
print(f'学号:python2106{num:0>3}') # 学号:python2106034
stu1={'name':'张三','age':18}
stu2={'name':'张十三','age':21}
str1=f'name:{stu1["name"]:+<10}age:{stu1["age"]}'
str2=f'name:{stu2["name"]:+<9}age:{stu2["age"]}'
print(str1) # name:张三++++++++age:18
print(str2) # name:张十三++++++age:21
4. r语法
python可以在字符串的前面加r或者R,来让字符串中的所有转义字符的功能消失
path='C:\Program Files\notnet\twidtag'
print(path)
path=r'C:\Program Files\notnet\twidtag'
print(path)
'''
# 1
C:\Program Files
otnet widtag
# 2
C:\Program Files\ndotnet\twidtag
'''
二.字典推导式
和列表很相似,只不过用的是{},所以直接写例子
# 将字符串中每个字符当作字典的键,值为键*2
dict1={x:x*2 for x in 'abc'}
print(dict1) # {'a': 'aa', 'b': 'bb', 'c': 'cc'}
# 交换字典的键和值
dict1=dict((dict1[x],x) for x in dict1)
print(dict1) # {'aa': 'a', 'bb': 'b', 'cc': 'c'}
# 第二种交换写法
dict1={dict1[x]:x for x in dict1}
print(dict1) # {'a': 'aa', 'b': 'bb', 'c': 'cc'}
str1='abcA'
dict1={char:ord(char) for char in str1}
print(dict1) # {'a': 97, 'b': 98, 'c': 99, 'A': 65}
三.函数
1. 函数的分类
系统函数—python自带函数,只需要在使用时调用相应的函数
自定义函数—程序员自己创建的函数
2. 定义函数
语法:
def 函数名(形参列表):
函数说明文档
函数体
函数名:
要求:是标识符,不能输关键字
规范:见名知意-看见名字大概知道函数的功能;字母多小写,多个单词用下划线隔开
形参列表:
以’变量名1,变量名2,…'的形式存在,其中每一个变量就是一个形参
形参可以有多个也可以一个都没有
形参的作用:将函数外部的数据传递到函数内部
函数说明文档----本质是多行注释
函数体----和def保持一个所进的一条或者多条语句
def sum1(num1, num2):
"""
功能说明去-描述函数的基本功能
:param num1: 参数说明区 --描述每个形参传递的数据的功能或者意义
:param num2:
:return: 返回值说明---功能的产物
"""
pass
练习:
# 练习:定义一个函数,将两个字符串合并成一个字符串,合并方式如下:
# 'abc' 和 '123' -> 'a1b2c3'
# 'abc' 和 '123456' -> 'a1b2c3456'
# 'abcde' 和 '123' -> 'a1b2c3de'
def merge(str1, str2):
result = ''
length = min(len(str1), len(str2))
for i in range(length):
result += str1[i] + str2[i]
result += str1[length:] + str2[length:]
return result
print(merge('abcde', '123')) # a1b2c3de