P96~97 Python面向对象-1.1&1.2 课程内容回顾01&02
一、Day08复习
"""
day08 复习
函数
基础语法
定义函数
def 函数名称(形参):
函数体
调用函数
函数名称(实参)
基础概念
参数:调用者传递给定义者的信息.
定义者要求调用者必须提供的信息.
返回值:定义者传递给调用者的结果
参数
实际参数
位置实参:实参与形参按位置对应
序列实参:参数过多,可以将实参存储在序列中.
用星号拆分后与形参对应.
关键字实参:实参与形参按名字对应
字典实参:参数过多,可以将实参存储在字典中.
用双星号拆分后与形参对应.
形式参数
默认形参:给形参提供一个默认值,实参可以不提供.
位置形参
星号元组形参:让位置实参个数无限
命名关键字形参:要求实参必须是关键字实参
双星号元组形参:让关键字实参个数无限
"""
def fun01(a, b, c):
print(a)
print(b)
print(c)
# 位置实参
fun01(1, 2, 3)
list01 = [1, 2, 3]
# 星号:拆分序列
fun01(*list01)
dict01 = {
"a": 1, "c": 3, "b": 2}
# 双星号:拆分字典
fun01(**dict01)
def fun02(a=0, b=0, c=0):
print(a)
print(b)
print(c)
# 关键字实参
fun02(c=3)
# 将实参合并为一个元组
def fun03(*args):
print(args)
fun03(2, 3, 4, 4, 5)
# 将实参合并为一个字典
def fun03(**kwargs):
print(kwargs)
fun03(a=1, b=2)
def fun04(*, name):
print(name)
fun04(name="")
print("#", "*", 123,sep="--",end=" ")
print("#", "*", 123,"--"," ")
P98 Python面向对象-1.3 练习解析01
一、练习1:字符串相关函数练习
"""
自学(参照菜鸟教程)字符串/列表/字典常用函数(方法),实现如下功能。
字符串:" 校 训:自 强不息、厚德载物。 "
查找空格的数量
删除字符串前后空格
删除字符串所有空格
查找"载物"的位置
判断字符串是否以"校训"开头.
"""
str01 = "校训:自 强不息、厚德载物。 "
print(str01.count(" "))
str02 = str01.rstrip().lstrip()
print(str02)
str03 = str01.replace(" ","")
print(str03)
print(str01.index("载物"))
print(str01.startswith("校训"))
P99 Python面向对象-1.4 练习解析02
一、练习1:函数传参练习
# 作业:调用fun07。
# |位置||星号元组||命名关键字||双星号字典|
def fun07(a, b, *args, c, d, **kwargs):
print(a)
print(b)
print(args)
print(c)
print(d)
print(kwargs)
fun07(1, 2, 3, 4, 5, c=6, d=7, e=8, f=9)
# 位置实参无限 + 关键字实参无限
def fun01(*args, **kwargs):
print(args)
print(kwargs)
fun01(1, 2, 3, a=4, c=5)
二、练习2:函数分而治之思想(提取一个范围内的素数)
函数要分而治之,层层嵌套,相互调用,做到一个函数只做一件事
1、初始代码:一个函数实现提取指定范围内的素数
"""
4. 定义函数,计算指定范围内的素数
"""
def get_prime(begin,end):#5 30
list_result = []
# 生成范围内的整数
for number in range(begin,end):
# 判断素数
for item in range(2, number):
if number % item == 0:
break
else:
list_result.append(number)
return list_result
2、优化代码1:抽离出素数判断函数,分而治之
def is_prime(number):
"""
判断指定的数字是否为素数
:param
number: 指定的整数
:return: True
表示是素数,False表示不是素数.
"""
for item in range(2, number):
if number % item == 0:
return False
return True
def get_prime(begin, end): # 5 30
"""
获取范围内的素数
:param begin: 开始值(包含)
:param end: 结束值(不包含)
:return: 所有素数的列表
"""
list_result = []
for number in range(begin, end):
if is_prime(number):
list_re