基础语法学习Day8
格式字符串
1.格式字符串
语法:
带有格式占位符的字符串%(数据1,数据2,数据3,…)
说明:
1.格式占位符 – 字符串中不同类型数据的占位符号,固定的。
%s – 字符串的格式占位符(任何类的数据都可以赋值)
%d – 整数的格式占位符
%f – 浮点数的格式占位符
%c – 字符的格式占位符
2.%() – 固定写法
3.数据 – 最后给字符串中不确定内容赋值的数据;数据的个数和类型要和前面占位符的个数以及类型保持一致
2.format
用法1:带{}的字符串.format(数据1,数据2,数据3,…)
用法2:{下标}
用法3:{key}
加约束:{:约束}/{下标:约束}/{key:约束}
# (1)约束小数位数 -- {:.Nf}
print("a--{0:.1f},b--{1:.2f},c--{0:.3f}".format(10, 20)) # a--10.0,b--20.00,c--10.000
# (2)控制显示正负号 {:+}
print("a:{:+} b:{:+}".format(10, -20)) # a:+10 b:-20
# (3)控制数字的宽度:{:x>N}/{:x<N} -- N表示数据最终的位数,x是填充数字,>表示填充在原数字的左边,<填充在右边,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:-2011!
print("a:{:x>5} b:{:y<5}!".format(10, -20)) # a:xxx10 b:-20yy!
# (4)大数字用逗号隔开{:,}
print("a:{:,} b:{:,}".format(10, 10000000000)) # a:10 b:10,000,000,000
# (5)显示百分比:{:.N%} -- N控制百分制数小数点的位数
print("a:{:.2%} b:{:.1%}".format(0.44, 0.147)) # a:44.00% b:14.7%
3.f-string的用法
name = "cc"
age = 22
message = f"a:{name},b:{age}" # a:cc,b:22
print(message)
print(f"a:{100:.2f}") # a:100.00
字符串常用方法
1.center/rjust/ljust
print("abc".center(7, "x")) # xxabcxx
print("abc".rjust(7, "+")) # ++++abc
print("abc".ljust(7, "*")) # abc****
# zfill == rjust填充字符固定0
print("abc".zfill(7)) # 0000abc
# 输入学生编号,自动产生对应的学号: python2003001....
n = int(input("n="))
str2 = "python2003"
for i in range(1, n + 1):
str3 = str(i)
str4 = str2 + str3.zfill(3)
print(str4)
2.count 统计字符或者字符串出现的次数
message = "cbcdfccccahjyraccccce" # 5
print(message.count("c", 1, 10))
3.index/find
message = "abcdfghjyre"
print(message.index("c")) # 2 不存在时会报错
print(message.find("c")) # 2 不存在时不会报错 返回-1
4.join
字符串.join(序列) – 将序列中的元素用指定字符串拼接成一个新的字符串(序列中的元素必须都是字符串)
list1 = ["name", "age", "sex"]
print("".join(list1)) # nameagesex
print(" ".join(list1)) # name age sex
print("abc".join(list1)) # nameabcageabcsex
print("+".join("abc")) # a+b+c
print("=".join({"a": 10, "b": 20})) # a=b
5.lstrip/rstrip/strip – 删除空白
message = "\n\t abc \t 444 "
print(message, "7777", sep="")
new1 = message.lstrip()
print(new1, "7777", sep="")
new2 = message.rstrip()
print(new2, "7777", sep="")
new3 = message.strip()
print(new3, "7777", sep="")
6.maketrans和translate
table = str.maketrans("abc", "123") # 创建映射表:a-1,b-2,c-3
new_str1 = "abc".translate(table) # 按照指定的映射表将原字符串中的字符进行替换
print(new_str1) # 123
7.replace
字符串1.replace(字符串2,字符串3,count(次数限制)) – 将字符串1中的字符串2全部替换成字符串3
message = "abcdfghjbcyre"
new_str1 = message.replace("bc", "444")
print(new_str1) # a444dfghj444yre
new_str2 = message.replace("bc", "444", 1)
print(new_str2) # a444dfghjbcyre
8.split
字符串1.split(字符串2) – 将字符串2作为切割点对字符串1进行分割
message = "how are you? I am fine, and you?"
print(message.split(" ")) # ['how', 'are', 'you?', 'I', 'am', 'fine,', 'and', 'you?']
函数的作用
1.同样的功能需要多次的时候需要把实现这个功能的代码写多遍
2.如果功能发生改变,需要修改多个位置的代码
函数的定义
1.什么是函数
(1)函数的概念
函数就是实现某一特定功能的代码的封装
(2)函数的分类
系统函数:系统已经定义好的函数,程序根据需求直接使用。例如:print,input,type…
自定义函数:程序员自己定义的函数
2.函数的定义
语法:
def 函数名(形参列表):
函数说明文档
函数体
说明:
1.def – 关键;固定写法
2.函数名 – 程序员自己命名
要求:标识符;不能是关键字
规范:所有字母都小写,多个单词之间用下划线;
见名知义(看到函数名大概知道函数的功能)
不能使用系统自带的函数名,模块名和类名
3.形参列表 – 以 变量名1,变量名2,变量名3,…的形式存在(可以一个变量都没有)
形参的作用是将函数外部的数据传递到函数的内部
定义函数的时候需不需要形参,需要几个形参看实现函数的功能需要不需要额外的数据,需要几个。
4.函数说明文档 – 用”“”“”“表示的说明性文字
5.函数体 – 和def保持一个缩进的一条或者多条语句;就是实现函数功能的一条或者多条语句
注意:定义函数的时候不会执行函数体
3.初学者定义函数的步骤
第一步:确定函数的功能
第二步:根据函数的功能确定函数名字
第三步:确定函数的参数(看实现函数的功能需要不需要额外的数据,需要几个)
第四步:实现函数的功能
第五步:写函数的说明文档
4.调用函数(使用机器)
语法:
函数名(实参列表)
说明:
函数名 – 已经定义好的函数的函数名
实参列表 – 以数据1,数据2,数据3,…的形式存在(也可以没有);
真正传递到函数中使用的数据