Python验证学号与礼品发放函数实现及阶乘计算

5星 · 超过95%的资源 需积分: 10 6 下载量 82 浏览量 更新于2024-08-04 8 收藏 31KB DOCX 举报
在Python等级考试的题目中,我们遇到了三个不同的函数实现任务。首先,针对学号验证问题,我们需要编写一个名为`check(s)`的函数,该函数用于检查输入的字符串`s`是否符合合法学号的条件。合法学号需满足以下要求: 1. 以字母'H'开头。 2. 其余8个字符全部为数字。 3. 学号总长度为9。 测试程序提供了一个简单的框架,要求考生填写函数定义部分: ```python def check(s): # 考生填写:检查字符串s是否符合学号规则 return s[0] == "H" and len(s) == 9 and s[1:].isdigit() input_str = input() # 用户输入的字符串 result = "Yes" if check(input_str) else "No" print(result) ``` 第二个函数是关于公司发放小礼品的逻辑。函数`f(n)`需要计算给定员工人数`n`中哪些序号符合条件(11的倍数或包含数字9),并返回这些序号组成的列表。示例代码如下: ```python def f(n): # 考生填写:找出满足条件的员工序号 ls = [] for i in range(1, n + 1): if i % 11 == 0 or '9' in str(i): ls.append(i) return ls # 输入员工人数 a = int(input()) gifts = f(a) # 输出小礼品数量和符合条件的序号 print("礼物份数:", len(gifts)) print("应发放礼物的序号:", ' '.join(map(str, gifts))) ``` 最后的任务是计算五个整数的阶乘之和,我们需要定义函数`f(n)`来计算阶乘,然后调用这个函数处理输入的五个整数。函数定义如下: ```python def f(n): # 考生填写:计算阶乘 def factorial(num): if num == 0 or num == 1: return 1 else: return num * factorial(num - 1) # 计算阶乘之和 total_factorial = sum(factorial(i) for i in range(1, 6)) # 假设输入是五个连续的整数 return total_factorial # 输入五个整数 nums = [int(num) for num in input().split()] result_sum = f(nums[0]) # 由于题目未明确是否输入五个整数,这里假设是第一个数 print("阶乘之和:", result_sum) ``` 这三个函数分别展示了Python中的字符串操作、条件判断、循环遍历以及递归计算等基本概念,同时也是对函数式编程思维的检验。在实际编程中,这些能力对于解决更复杂的问题至关重要。