一、格式字符串
1.格式字符串
1)语法:
带有格式占位符的字符串 % (数据1,数据2,数据3,…)
2)说明:
1.格式占位符 - 字符串中不同类型数据的占位符号,固定的。
%s - 字符串的格式占位符
%d - 整数的格式占位符
%f - 浮点数的格式占位符
%.Nf - 浮点数的占位符,并且控制小数点后有N位小数
%c - 字符的格式占位符
2.%() - 固定写法
3. 数据 - 最后给字符串中不确定内容赋值的数据;数据的个数和类型要和前面占位符的个数和类型保持一致
sex = '男'
score = 92
message = '%s 性别:%s 年龄:%d 考了%d分' % (name, sex, age, score)
print(message)
message2 = '金额:%f' % (12)
message3 = '金额:%.2f' % (12)
print(message2, message3)
message4 = '97:%c' % 'a'
message5 = '97:%c' % 97
print(message4, message5)
2.format
方法1:带{}的字符串.format(数据1,数据2,数据3,…)
message = '大家好,我是{},今年{}岁,我是一只{}'.format('小白', 3, '萨摩耶')
print(message)
方法2:{下标}
message = '大家好,我是{0},我的名字是{0},今年{1}岁'.format('小白', 18)
print(message)
方法3:{key}
message = '大家好,我是{name},我的名字是{name},今年{age}岁'.format(name='小白', age=18)
3.加约束:{:约束} {下标:约束} {key:约束}
1)约束小数位数 - {:.Nf} (N为0去掉小数)
message1 = 'a - {:.1f},b-{:.2f}'.format(10, 20)
2)控制显示正负号:
print('a - {:+.1f},b - {:+.2f}'.format(10, 20))
3)控制数字的宽度:{:x>N}/{:x<N} - N表示数据最终的位数,x是填充数字,>在左边,<在右边
print('a - {:->5},b-{:-<9}'.format(10, 20))
4)大数字用,隔开
print('a - {:,},b-{:,}'.format(10, 20000))
5)显示百分比:{:N%} - N控制百分制数小数点的位数
print('a - {:.1%},b-{:.2%}'.format(10, 20))
f-string的用法
name = 'adasd'
age = 12
message = f'姓名:{name} 年龄:{age:.1f}'
print(message)
二、字符串常用方法
1.center / rjust / ljust
print('abc'.center(7, 'x'))
print('abc'.center(7,'+'))
print('abc'.rjust(7,'x'))
zfill == rfill填充字符固定为0
print('abc'.zfill(7))
练习:输入学生编号,自动产生对应的学号 python2003001、python2003002
num = input('输入:')
class1 = 'python2003'
new_num = class1+num.zfill(3)
print(new_num)
2.count
message = 'how are you? i am fine,and you?'
print(message.count('you'))
print(message.count('a',0,10))
3.index/find
message = 'how are you? i am fine,and you?'
print(message.find('you')) # 没有的时候返回-1
print(message.index('you')) # 没有的时候报错
4.join
字符串.join(序列) - 佳能序列中的元素用指定字符串拼接成一个新的字符串(序列中的元素必须是字符串)
list1 = ['name','age','sex']
print(''.join(list1))
print(' '.join(list1))
5.lstrip/rstrip/strip - 删除空白
message = '\n\t abc \t 123 '
print(message,'---',sep='')
print('===========')
print(message.rstrip(),'---',sep='')
print('===========')
print(message.lstrip(),'---',sep='')
print('===========')
print(message.strip(),'---',sep='')
print('===========')
message = 'aaaaa你好吗aaaa'
print(message.strip('a'))
6.maketrans 和 translate
table = str.maketrans('abc','12好')
new_str = 'abc'.translate(table)
print(new_str)
7.replace
字符串1.replace(字符串2,字符串3) - 将字符串1中字符串2全部替换成字符串3
message = 'how are you? i am fine,and you?'
new_str2 = message.replace('you','me')
print(new_str2)
new_str2 = message.replace('you','me',1) # 1是替换次数,不写就全部替换
print(new_str2)
8.split
#字符串1.split(字符串2) - 将字符串2作为切割点把字符串1进行分隔
message = 'how are you? i am fine,and you?'
print(message.split(' '))
三、函数的定义
1.什么是函数
1)函数的概念(机器)
函数就是实现某一特定功能的代码的封装
2)函数的分类
系统函数:系统已经定义好的函数,程序员根据需求直接使用。(别人造好的机器)
自定义函数:程序员自己定义的函数。(自己造的机器)
2.定义函数(造机器)
语法:
def 函数名 (形参列表):
函数说明文档
函数体
说明:
def :关键字;固定写法
函数名:程序员自己命名。要求:标识符;不能是关键字。 规范:所有字符都要小写,多个单词之间用下划线隔开。见名知意(看到函数名,大概知道函数的功能)。不能使用系统自带的函数名、模块名和类名
形参列表:以变量名1,变量名2,变量名3,…的形式存在(可以一个变量都没有)
作用:将函数外的数据传递到函数内部
定义函数的时候需不需要形参,需要几个形参看实现函数功能需不需要外部数据,需要几个数据
函数说明文档 : 就是用""""""表示的说明性的文字(相当于说明书)
函数体 : 和def保持一个缩进的一条或者多条语句;就是实现函数功能的一条或者多条语句
3.定义函数的步骤
第一步:确定函数的功能
第二部:根据函数的功能确定函数的名字
第三步:确定函数的参数
第四步:实现函数的功能
第五步:写说明文档
(重要!!!)注意:定义函数的时候不会执行函数体 调用函数的时候才会运行
def sum1(num1, num2):
"""
求两个数的和(函数功能说明)
:param num1: 需要求和的第一个数(参数说明)
:param num2: 需要求和的第二个数(参数说明)
:return: NOne(返回值说明)
"""
print(num1 + num2)
4.调用函数(使用机器)
语法:
函数名(实参列表)
说明:
函数名 - 已经定义好的函数的函数名
实参列表 - 以数据1,数据2,数据3,…的形式存在(也可以没有)
真正传递到函数使用的数据