内容正文:
ZHISHI JIEXI
知识解析
函数是模块化程序设计中的基本单元袁使用函数有以下优点院
音将大任务分割成子任务袁有助于团队合作袁协作开发遥
音将程序分解成不同模块袁降低了算法设计难度袁提高了代码的可读性遥
音函数调用不仅能提高代码的开发效率袁同时也可以确保算法的正确率遥
1. 自定义函数
在 Python中袁函数定义的一般格式为院
def 函数名渊参数集合冤:
<函数体>
咱return 返回值暂
Python参数传递采用的是野传对象引用冶方式袁也可看成传值和传引用的综合遥
淤如果函数接收的是一个可变对象渊比如字典或者列表冤的引用袁能修改对象的原始值渊相当
于通过野传引用冶来传递对象冤遥
于如果函数接收的是一个不可变对象渊比如数字尧字符或者元组冤的引用袁不能直接修改原始
对象渊若对其进行操作将会创建对象袁相当于通过野传值冶来传递对象冤遥
2. 模块
模块本身可以看成一个文件袁是组织一系列函数和变量的集合遥如果要使用模块中的函数或
变量袁需要先进行导入遥 Python中常见导入方法有院
淤import
如 import math模块袁导入后可以用变量 math进行引用遥 比如袁引用模块中 sqrt函数必须用
math.sqrt()遥
于from-import
如 from math import sqrt袁使用 math模块中的 sqrt函数实现数学的开方运算遥
此种方式本质上没有真正导入 math模块袁而是仅导入 math模块中用于开根运算的函数 sqrt袁
优点是导入函数少袁效率更高遥
盂自定义模块渊import fact冤
比如袁新建文件 fact.py袁然后在里面存放自定义函数或变量遥 这样就可以将 fact看成自定义
模块名称袁导入 fact模块后可以直接使用文件中的函数或变量遥
JINGDIAN KAOTI
经典考题
揖例题 1铱 统计区间年份咱2000,2050暂之间有多少个闰年遥
def isleap(year):
3.6 函数与模块
第三章 算法的程序实现
43
同步宝典 高中信息技术 必修 1
if year%400==0 or (year%4==0 and year%100! =0):return True
else:
淤
cnt=0
for i in range(2000,2051):
if 于 :
cnt+=1
print(cnt)
渊1冤根据闰年规则袁2024年为 渊单选袁填字母院A. 闰年/B. 平年冤遥
渊2冤请在画线处填入合适的代码遥
淤
于
揖分析铱 渊1冤2024年能被 4整除袁但同时不能被 100整除袁所以 2024年满足闰年判断的其中
一个条件袁因此是闰年遥 渊2冤在函数 isleap(year)定义部分袁该函数具有返回值遥 当参数 year为闰年
时袁函数返回值是 True袁当 year为平年时袁该函数应返回 False遥 结合代码袁本题采用的是枚举算
法袁逐个对区间年份咱2000,2050暂中所有年份进行判断袁isleap(i)值为 True 时 i为闰年袁此时变量
cnt增 1遥 故答案为渊1冤A曰渊2冤淤return False曰于isleap(i)遥
揖例题 2铱 输入一个三角形的三条边 a袁b和 c渊若边长均为整数冤袁同时判断该三角形的形
状遥 若三边长 a袁b和 c无法构成三角形袁输出野数据有误浴冶否则进行下列判断院若是锐角三角形袁输
出野锐角三角形浴 冶曰若是直角三角形袁输出野直角三角形浴 冶曰若是钝角三角形袁输出野钝角三角形浴 冶遥
小李编写了三角形判断的 Python程序代码袁具体如下院
#输入 3个整数袁代表三角形三条边 a袁b袁c
a=int(input('a:'))
b=int(input('b:'))
c=int(input('c:'))
def check(a,b,c): #check(a,b,c)功能院根据三角形三条边检测三角形的形状
if a>b: a,b=b,a
if b>c: b,c=c,b
s=""
if 淤 :
s="直角三角形"
elif a*a+b*b<c*c:
s="钝角三角形"
else:
s="锐角三角形"
44
return s
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
#若 a袁b袁c三条边可以构成三角形
print( 于 ) #调用上面函数袁检测三角形的形状
else:
print("数据有误浴 ")
渊1冤请在画线处填入合适的代码遥
淤
于
渊2冤代码分析遥 若删除自定义函数中的两条变量交换语句渊方框处冤袁程序运行时袁输入变量
a袁b袁c的数据依次是 4袁5袁3遥 则该函数检测出的三角形形状是 渊单选袁填字母院A. 直角
三角形/B. 钝角三角形/C.