Pyhon基础数据结构(函数)【蓝桥杯】
看不到代码请重新刷新此页面
函数
函数的定义和使用----定义函数
函数:组织好的,可重复使用的,用来实现单一,或相关关联的代码段。

def Max(a,b):
# 函数体
# 如果a大于b
if a > b:
# 返回a
return a
else:
# 返回b
return b例题

def jiecheng(x):
# 函数体
ans = 1
for i in range(1, x+1):
ans *= i
return ans
ans = 0
for i in range(1,11):
ans += jiecheng(i)
print(ans)
解释
定义阶乘函数
jiecheng(x):
def jiecheng(x):
# 函数体
ans = 1
for i in range(1, x+1):
ans *= i
return ans这个函数接受一个参数
x。初始化变量
ans为1,因为阶乘的计算是从1开始的乘积。使用
for循环从1遍历到x(包含x),在每次迭代中将ans乘以当前的循环变量i。循环结束后,
ans将包含x的阶乘值。函数返回
ans。
计算从
1到10的阶乘之和:
ans = 0
for i in range(1,11):
ans += jiecheng(i) 初始化变量
ans为0,用于累加阶乘的和。使用
for循环从1遍历到10(包含10)。在每次循环中,调用
jiecheng(i)计算当前数i的阶乘,并将结果加到ans上。
打印结果:
print(ans)打印变量
ans的值,即从1到10的所有整数的阶乘之和。
计算过程:
jiecheng(1) = 1jiecheng(2) = 2jiecheng(3) = 6jiecheng(4) = 24jiecheng(5) = 120jiecheng(6) = 720jiecheng(7) = 5040jiecheng(8) = 40320jiecheng(9) = 362880jiecheng(10) = 3628800
将这些值相加得到:
1 + 2 + 6 + 24 + 120 + 720 + 5040 + 40320 + 362880 + 3628800 = 4037913因此,最终打印的结果是 4037913。
函数的定义和使用----返回值
使用return返回函数计算结果
可以有多个return语句,但是真正执行时最多运行1次,碰到return语句,函数结束
没有return语句,函数返回值为None
return可以返回多个变量
z
def Max(a,b):
if a > b:
return a
else:
return b
#程序不会执行到这里
print("a =",a)
print("b =",b)
x = Max(3,5)
print(x)
输出:5
传参机制----形参与实参
形式参数:定义函数时的输入参数
实际参数:调用函数时传递的参数
剧本中的角色相当于形参,演员相当于实参
def f(x):
x*=2
print("这是形式参数:x = {}".format(x))
x = 100
print("这是实际参数:x = {}".format(x))
f(x)
print("这是实际参数x = {}".format(x))输出:
这是实际参数:x = 100
这是形式参数:x = 200
这是实际参数x = 100传参机制----值传递
值传递:函数中的形式参数变化,不会导致实际参数的变化,这是由于传递的是数值,单方向,参数为不可变类型,字符串,数字,元组
def Swap(x,y):
x,y = y,x
print("这是swap函数")
print("x =",x,"y =",y)
print("id(x)=",id(x),"id(y)=",id(y))
x,y = 3,5
print("这是主函数")
print("x =",x,"y =",y)
print("id(x)=",id(x),"id(y)=",id(y))
Swap(x,y)
print("这是主函数")
print("x =",x,"y =",y)
print("id(x)=",id(x),"id(y)=",id(y))
输出
这是主函数
x = 3 y = 5
id(x)= 140728476236280 id(y)= 140728476236344
这是swap函数
x = 5 y = 3
id(x)= 140728476236344 id(y)= 140728476236280
这是主函数
x = 3 y = 5传参机制----引用传递
引用传递:函数中形式参数变化,会导致实际参数一起变化,这是由于传递是变量。参数为可变类型,列表、字典
def F(x):
x.append(4)
print("这是f函数")
print("x =",x)
print("id(x)=",id(x))
x = [1,2,3]
print("这是主函数")
print("x =",x)
print("id(x)=",id(x))
F(x)
print("这是主函数")
print("x =",x)
print("id(x)=",id(x))
输出
这是主函数
x = [1, 2, 3]
id(x)= 1907313006848
这是f函数
x = [1, 2, 3, 4]
id(x)= 1907313006848
这是主函数
x = [1, 2, 3, 4]
id(x)= 1907313006848
最大公约数:使用欧几里得算法来高效地计算最大公约数。
def gcd(a,b):
while b:
a,b = b,a%b
return a最小公倍数:
def lcm(a, b):
return a * b // gcd(a, b)质数
import math
def is_prime(x):
if x <= 1:
return False
if x <= 3:
return True
if x % 2 == 0 or x % 3 == 0:
return False
i = 5
while i * i <= x:
if x % i == 0 or x % (i + 2) == 0:
return False
i += 6
return True求面积
首先检查输入的边长是否合法(即任意两边之和大于第三边)。如果合法,则使用海伦公式计算面积。

import math
def Area(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
return None
s = (a + b + c) / 2
return math.sqrt(s * (s - a) * (s - b) * (s - c))math




collectcions
- 感谢你赐予我前进的力量

