function01

您所在的位置:网站首页 python取位 function01

function01

2023-04-15 04:54| 来源: 网络整理| 查看: 265

# Question1

编写函数 fun(x),即给定正整数 x,返回其逆序数,例如 1234 的逆序数是 4321,用 这个函数输出 1000~9999 之间所有的回文数。(回文数是指顺读和倒读都相同的数,如 5、 151、3553 等)

提示:对给定的整数,可以通过不断与 10 相除取余获得其每个数字位,追加到一个列 表中,然后将列表中的数字遍历,和值不断乘 10 加新项的方式实现逆序。

# 定义 fun 函数,接收一个正整数 x 作为输入,并返回其逆序数 def fun(x): # 将输入的正整数 x 转换为字符串,然后使用 [::-1] 对字符串进行逆序 # 最后,将逆序后的字符串转换回整数并返回 return int(str(x)[::-1]) # 定义 find_palindromes 函数,接收两个参数 start 和 end,表示搜索回文数的范围 def find_palindromes(start, end): # 创建一个空列表,用于存储找到的回文数 palindromes = [] # 使用 for 循环遍历范围内的每一个整数 for i in range(start, end + 1): # 如果当前整数 i 与其逆序数相等,说明它是一个回文数 if i == fun(i): # 将回文数添加到列表中 palindromes.append(i) # 返回找到的回文数列表 return palindromes # 指定搜索回文数的范围为 1000 到 9999 start = 1000 end = 9999 # 调用 find_palindromes 函数,传入搜索范围,获取回文数列表 palindromes = find_palindromes(start, end) # 输出找到的回文数列表 print(palindromes)

这个代码首先定义了一个名为 fun 的函数,它接收一个正整数 x 作为输入,并返回其逆序数。然后,我们定义了一个名为 find_palindromes 的函数,它接收两个参数 start 和 end,表示搜索回文数的范围。函数内部使用一个 for 循环遍历范围内的每一个整数,检查当前整数是否与其逆序数相等。如果相等,则说明它是一个回文数,将其添加到回文数列表中。最后,我们指定搜索范围为 1000 到 9999,并调用 find_palindromes 函数获取回文数列表。最后一步是输出找到的回文数列表。

# Question2

随机产生 30 个成绩(0~100 之间)放入列表 a 中,设计一个函数 MyFun,将 a 传递 给它,再为函数设定一个默认值参数 grade=5。

grade 传递 5,4,3,2,1,分别统计优、良、中、 及格和不及格的人数。不传递值时,统计优秀者人数。请分别使用不指定关键字、指定关键 字,不给默认值参数值三种方式调用函数。

import random # 生成 30 个随机成绩 (0~100 之间) 放入列表 a 中 # 使用列表推导式和 random.randint 生成 30 个 0 到 100 之间的随机整数 a = [random.randint(0, 100) for _ in range(30)] # 定义 MyFun 函数,接收一个成绩列表 scores 和一个默认值参数 grade def MyFun(scores, grade=5): # 初始化各等级人数计数器 excellent, good, average, pass_grade, fail = 0, 0, 0, 0, 0 # 使用 for 循环遍历成绩列表 for score in scores: # 根据成绩判断并统计各等级人数 if score >= 90: excellent += 1 elif score >= 80: good += 1 elif score >= 70: average += 1 elif score >= 60: pass_grade += 1 else: fail += 1 # 根据 grade 参数的值返回相应的人数 if grade == 5: return excellent elif grade == 4: return good elif grade == 3: return average elif grade == 2: return pass_grade elif grade == 1: return fail # 调用 MyFun 函数的三种方式 # 1. 不指定关键字 (grade 默认为 5) # 调用 MyFun 函数时未指定 grade 参数,因此 grade 使用默认值 5 excellent_count = MyFun(a) print("Excellent students count:", excellent_count) # 2. 指定关键字 # 调用 MyFun 函数时,明确指定 grade 参数的值为 4 good_count = MyFun(a, grade=4) print("Good students count:", good_count) # 3. 不给默认值参数值 (grade 传递 1) # 调用 MyFun 函数时,直接传递 grade 参数的值为 1,而不使用关键字 fail_count = MyFun(a, 1) print("Fail students count:", fail_count) # Question3

编一函数 s(x),求级数和:s=x−x33!+x55!−x77!+⋅⋅⋅⋅⋅⋅\LARGE{s=x-\frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + ······}s=x−3!x3​+5!x5​−7!x7​+⋅⋅⋅⋅⋅⋅ 当最后一项的绝对值小于 10-6 时结束。

import math # 定义 s 函数,接受一个正实数 x 作为输入 def s(x): total = 0 # 初始化总和为 0 sign = 1 # 初始化符号为 1(正数) i = 0 # 初始化循环变量 i epsilon = 1e-6 # 设置最后一项的绝对值小于 10^-6 时结束循环的条件 # 使用 while 循环来计算每一项的值 while True: term = (x ** (2 * i + 1)) / math.factorial(2 * i + 1) # 计算当前项的值 # 当最后一项的绝对值小于 epsilon 时,结束循环 if abs(term) 0: raise ValueError("The function should have different signs at the interval endpoints.") iter_count = 0 # 初始化迭代计数器 c = a # 初始化根的估计值 # 当区间宽度的一半大于容差(精度要求)且未达到最大迭代次数时,继续迭代 while (b - a) / 2 > tol and iter_count


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3