随着人工智能的不断发展,Python这门计算机语言也越来越重要,很多人都开启了Python的学习,本文就介绍了Python的函数和代码复用的一些内容。
程序中已经给出某汽车品牌不同车型的销售情况。列表s中的数据是销售量,列表t是对应的车型,其中0表示轿车,1表示SUV,2表示其他。
编写程序统计轿车和SUV的销量之和。(要求调用sum()函数,一行的代码解决)
s=[234,228,75,315,33,243,180,221,235,14,237,230,175,205,76,162,282,104,30,30,16,30,138,301,249,196,208,260,115,173,326,260,269,267,58,42,8,233,124,220,282,240,172,312,205,346,156,236,241,221,326,17,332,114,308,216,77,54,77,187]
t=[1,2,0,2,0,0,1,0,1,1,2,2,0,1,1,0,2,2,0,2,0,2,0,1,0,1,0,2,2,0,2,1,1,2,1,2,2,1,1,2,1,1,1,0,2,2,0,1,0,0,0,2,1,1,0,0,0,1,0,0]
#请在下面位置编写程序
代码如下:
s = [234,228,75,315,33,243,180,221,235,14,237,230,175,205,76,162,282,104,30,30,16,30,138,301,249,196,208,260,115,173,326,260,269,267,58,42,8,233,124,220,282,240,172,312,205,346,156,236,241,221,326,17,332,114,308,216,77,54,77,187]
t = [1,2,0,2,0,0,1,0,1,1,2,2,0,1,1,0,2,2,0,2,0,2,0,1,0,1,0,2,2,0,2,1,1,2,1,2,2,1,1,2,1,1,1,0,2,2,0,1,0,0,0,2,1,1,0,0,0,1,0,0]
total_sales = sum([s[i] for i in range(len(s)) if t[i] == 0 or t[i] == 1])
print("轿车和SUV的销量之和为:", total_sales)
结果如下:
轿车和SUV的销量之和为: 7659
编写程序实现因式分解,由用户从键盘输入小于1000的整数,对其进行因
式分解。
例如:10=25,60=2235
代码如下:
n = int(input("请输入一个小于1000的正整数:"))
factors = [] # 用于存放分解出来的因子
# 从 2 开始尝试分解
i = 2
while i <= n:
if n % i == 0: # 如果 i 是 n 的因子,则加入列表并将 n 更新为 n/i
factors.append(i)
n //= i
else: # 否则尝试下一个数
i += 1
# 将结果输出为字符串形式
result_str = str(factors[0])
for factor in factors[1:]:
result_str += "*" + str(factor)
print(result_str)
结果如下:
请输入一个小于1000的正整数:520
2*2*2*5*13
编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。
代码如下:
def max_and_sum(*args):
"""
接收任意多个整数并输出其中的最大值和所有整数之和。
"""
max_num = args[0] # 初始化最大值为第一个参数
total_sum = 0 # 初始化总和为 0
for num in args:
total_sum += num
if num > max_num:
max_num = num
print(f"最大值为:{max_num}")
print(f"所有整数之和为:{total_sum}")
# 测试代码
max_and_sum(1, 2, 3, 4, 5)
max_and_sum(10, 20, 30, 40)
max_and_sum(-1, -2, -3, -4, -5)
结果如下:
最大值为:5
所有整数之和为:15
最大值为:40
所有整数之和为:100
最大值为:-1
所有整数之和为:-15
使用函数进行编程,输入三角形的3条边,看是否能构成三角形。
代码如下:
def is_triangle(a, b, c):
"""
判断三条边长 a、b、c 是否能够构成三角形。
如果能够构成三角形,返回 True,否则返回 False。
"""
# 构成三角形的必要条件为任意两边之和大于第三边
if a + b > c and a + c > b and b + c > a:
return True
else:
return False
# 测试代码
a = float(input("请输入三角形的第一条边长:"))
b = float(input("请输入三角形的第二条边长:"))
c = float(input("请输入三角形的第三条边长:"))
if is_triangle(a, b, c):
print("可以构成三角形")
else:
print("不能构成三角形")
结果如下:
请输入三角形的第一条边长:6
请输入三角形的第二条边长:7
请输入三角形的第三条边长:8
可以构成三角形
编写函数,求数列1,1,2,3,5,8,13…….第20项。
代码如下:
def fibonacci(n):
"""
返回斐波那契数列第 n 项的值。
"""
if n <= 0:
return None
elif n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 测试代码
result = fibonacci(20)
if result is not None:
print("斐波那契数列的第 20 项为:", result)
else:
print("输入有误,请输入一个正整数。")
结果如下:
斐波那契数列的第 20 项为: 6765
编写函数,判断一个4位数是否为回文数。
代码如下:
def is_palindrome(num):
"""
判断一个四位数是否为回文数。
如果是回文数,返回 True,否则返回 False。
"""
if not isinstance(num, int) or num < 1000 or num > 9999:
return False # 输入不合法,直接返回 False
# 将数字转换成字符串,然后比较翻转后的字符串是否相同
num_str = str(num)
reversed_num_str = num_str[::-1]
if num_str == reversed_num_str:
return True
else:
return False
# 测试代码
num = int(input("请输入一个四位数:"))
if is_palindrome(num):
print(f"{num} 是回文数。")
else:
print(f"{num} 不是回文数。")
结果如下:
请输入一个四位数:4554
4554 是回文数。
编写函数,运行后用户输入4位整数作为年份,判断其是否为闰年。
代码如下:
def is_leap_year(year):
"""
判断一个年份是否为闰年。
如果是闰年,返回 True,否则返回 False。
"""
if not isinstance(year, int) or year < 1000 or year > 9999:
return False # 输入不合法,直接返回 False
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
return True
else:
return False
# 测试代码
year = int(input("请输入一个四位数的年份:"))
if is_leap_year(year):
print(f"{year} 年是闰年。")
else:
print(f"{year} 年不是闰年。")
结果如下:
请输入一个四位数的年份:2024
2024 年是闰年。
使用函数编程,求两个整数的最小公倍数。
代码如下:
def get_lcm(a, b):
"""
求两个整数 a 和 b 的最小公倍数。
"""
# 先计算它们的最大公约数,然后用 a*b/gcd(a,b) 计算最小公倍数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
return a * b // gcd(a, b)
# 测试代码
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
lcm = get_lcm(a, b)
print(f"{a} 和 {b} 的最小公倍数为:{lcm}")
结果如下:
请输入第一个整数:12
请输入第二个整数:15
12 和 15 的最小公倍数为:60
以上就是今天要讲的内容,本文仅仅简单介绍了Python函数和代码复用的使用,而Python提供了大量能使我们快速便捷地处理数据的函数和方法。
作者主页: 正函数的个人主页
文章收录专栏:Python
欢迎大家点赞 收藏 ⭐ 加关注哦!
如果你认为这篇文章对你有帮助,请给正函数点个赞吧,如果发现什么问题,欢迎评论区留言!!