自学python函数 欢迎各位大神来指导指出错误 并进行纠正 #定义函数 #def 函数名([参数列表]) 参数可以没有 也可以有多个 # [函数注释] # [语句块,函数体] # [retrun语句] #方括号[]内的的东西可有可无! # return 返回值 将return后面的值返回给外界 # return可以提前结束整个函数 执行return后 后面的将不再执行 如果有print 也不执行! # return后面可以返回有多个值,用逗号“,”隔开 用相同变量来接收 如果多个值返回一个 则输出是元组
1. 定义一个用于计算的函数,请按照以下要求完成。
要求如下:
- 函数有3个参数,operation默认值为“+”,只能接收“-”、“*”和“/”符号;num1和num2分别用于接收整数。
- 使用if-elif语句判断,如果为“+”,返回num1和num2的和;如果为“-”,返回num1和num2的差,以此类推。
- 注意,处理num2不为0的情况。
def count(num1,num2,operation="+"):#默认operation= “+” if operation =="+": return num1+num2 elif operation =="-": return num1-num2 elif operation =="*": return num1*num2 elif operation =="/": if num2==0: return "除数不能等于0" else: return num1/num2 print(count(8,2,)) print(count(8,2,"-")) print(count(8,2,"*")) print(count(8,2,"/"))
2.根据 Python 语言定义和调用函数出实现输出斐波那契数列的方法,并比较不同实现方法的性能。
① def feibonaqishulie(num):
if num<=1:
return num
else:
return feibonaqishulie(num-1)+feibonaqishulie(num-2)
print("递归方法:")
for i in range(10):
print(feibonaqishulie(i))
②
def feibonaqishulei(num):
if num<=0:
return 0
elif num==1:
return 1
else:
a,b=0,1
for i in range(2,num+1):#从2开始迭代到n
a,b=b,a+b # 返回斐波那契数列的第n项
return b
for i in range(1,11):
print(feibonaqishulei(i))
笔记:
# 初始化多个变量:你可以在一行中初始化多个变量,如 x, y, z = 0, 0, 0。 # 交换两个变量的值:你可以使用多重赋值来交换两个变量的值,无需使用额外的临时变量,如 a, b = b, a。 # 从函数返回多个值:如果一个函数需要返回多个值,你可以使用多重赋值来接收这些值,如 x, y = func()。 # 遍历序列:当遍历一个包含元组或列表的序列时,你可以使用多重赋值来同时获取每个元组或列表的元素,如 for x, y in list_of_tuples:。 # 多元赋值:是把计算后的结果赋值给变量;
3. 请按照以下要求操作。
要求如下:
- 定义全局变量count,并赋值为10;
- 定义函数test,在函数内部有变量count,赋值为100,并输出了count的值;
- 调用函数,查看count的值;
-
count=10 def test(): count=100 print(count) test()
- 在函数内部的count前面加上global;
- 再次调用函数,查看count的值。
-
count=10 def test(): global count print(count) test()
-
笔记: # 1.全局变量是在函数外定义的变量 # 2.局部变量是在函数内定义的变量 # 3.函数内可以直接访问全局变量的 # 4.函数内不可以直接修改全局变量 # 5.函数外不可以直接访问局部变量 # 解决4,5问题可以用·global 声明 # 6.同名的局部变量会覆盖全局变量
5.请按照以下要求操作。要求如下:
- 导入random模块;
- 生成0~1的随机浮点数,打印输出;
- 生成1~100的随机浮点数,打印输出;
4.生成1~100的随机整数,打印输出;
5.生成1~10的偶数,并打印输出;
import random fds=random.random()#生成0-1之间的浮点数 print(fds) fds2=random.uniform(1,100)#生成[1,100]之间的浮点数; print(fds2) zs=random.randint(1,100)#生成[1,100]之间的整数 print(zs) os=random.randrange(2,100,2)#生成[2,100]之间的偶数 print(os) js=random.randrange(1,100,2)#生成[1,100]之间的奇数 print(js) poker = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']#洗扑克牌 random.shuffle(poker) print(poker) rnd = random.choice(['剪刀', '石头', '布'])#从序列中随机取一个元素 print(rnd) fd2 = round(random.uniform(1, 100),2)#生成[1,100]之间的浮点数,2位精度 print(fd2)
4.使用匿名函数,验证三条线是否能构成直角三角形。要求如下:
- 定义一个函数,有两个接收线长度的参数a和b,返回一个匿名函数。
- 判断选择最短的两条线;
- 匿名函数用于计算这两个短边的平方和;
- 如果函数返回的结果跟第三条边的平方相等,表示是直角三角形。
-
def triangle(a, b): shortest_sides = sorted([a, b]) sum_of_squares = lambda x, y: x**2 + y**2 if sum_of_squares(*shortest_sides) == c**2: return True else: return False a = float(input("请输入第一条线的长度:")) b = float(input("请输入第二条线的长度:")) c = float(input("请输入第三条线的长度:")) if triangle(a, b): print("这三条线构成直角三角形!") else: print("这三条线不构成直角三角形。")