第6周 Python函数刷题(一)

news/2024/10/24 0:30:00/

单击题目,直接跳转到页面刷题,一周后公布答案。

  1. 229:函数参数打印信息
  2. 185:判断质数(使用函数)
  3. 188:前N个自然数之和
  4. 69:特定两数之和
  5. 235:递归求一个数的阶乘
  6. 26:求第N个斐波那契数
  7. 237:递归计算一个数的幂

1. 229:函数参数打印信息

编写一个函数来打印联系人信息。
步骤 1:
创建函数 display_info()。
函数有两个参数:name(名字) 和 location(地区)。
在两行中分别打印 name 和 location。
步骤 2:
在函数外部:
输入一个字符串,并赋值给country变量。
分别用字符串’Taylor’(名字) 和 变量country 作为参数,调用display_info() 函数。

示例输入

USA

示例输出

Taylor
USA

参考源码

def display_info(name, location):print(name)print(location)# 获取用户输入
country = input()# 用 'Taylor' 和 country 作为参数调用函数
display_info('Taylor', country)

2. 185:判断质数(使用函数)

编写一个函数:判断一个数字是否是质数。
质数是指只被1或其本身除以的数字。例如,7,5,19,等等。
定义一个名为check_prime()的函数。
在该函数中,创建flag变量,其值为0,并从2到 number - 1 运行一个循环,判断 number 是否能被2 到 number - 1 之间的任何数字所除。
如果数字可以被整除,将flag变量设置为1。
在循环外,如果flag是1,打印非质数。否则,打印 质数。
在函数之外,为number变量获取一个整数输入。
调用该函数,并将number作为一个参数传递。

输入格式

一个整数

示例输入

7

示例输出

质数

参考源码

# 定义check_prime()的函数
def check_prime(n):flag = 0# 循环for i in range (2, int(n**0.5) + 1):# 判断 i是否能整除 number# 如果能整除,将flag设置为1if n % i == 0:flag = 1# 根据flag的值,判断是否是质数return flagnumber = int(input())# 调用函数
if check_prime(number):print("非质数")
else:print("质数")

3. 188:前N个自然数之和

编写一个函数:计算前N个自然数的和。
定义find_sum()的函数,以数字n作为参数。
在该函数中,计算从1到n的数字之和,并返回。
在函数外部,为变量number获得一个整数输入。
调用该函数并将number作为参数传递,打印返回值。

输入格式

一个整数

示例输入

9

示例输出

45

参考源码

# 定义`find_sum()`的函数,以`n`作为参数。
def find_sum(n):return n * (n+1) // 2number = int(input())# 调用该函数并将`number`作为参数传递,并打印返回值。
print(find_sum(number))

4. 69:特定两数之和

编写一个程序,检查列表是否存在两数字之和等于给定的数。
定义函数is_sum_present(),它接受两个参数 - 一个数字列表num_list和一个数字target_sum。
在函数内,检查列表中的每对数字。如果任意一对数字的和等于target_sum,则返回True。否则,返回False。

示例输入

2 3 7 8 11
14

示例输出

True

解释:

由于我们的目标数是14,而我们列表中的[11, 3]是两个数字,它们相加等于14,因此输出为True。

参考源码1

def is_sum_present(num_list, target_sum):# 此处编写代码n = len(num_list)for i in range(n):for j in range(i+1, n):if num_list[i] + num_list[j] == target_sum:return Truereturn False# 获取输入
num_list = list(map(int, input().split()))
target_sum = int(input())# 调用函数 
print(is_sum_present(num_list, target_sum))

参考源码2

参考源码1使用双层for循环,其时间复杂度为O(n^2)。考虑优化:先排序,然后使用双指针扫描,速度更快。排序的时间复杂度为O(nlogn),双指针扫描的时间复杂度为O(n)。

def is_sum_present(num_list, target_sum):# 此处编写代码num_list.sort()i = 0j = len(num_list) - 1while i < j:  # 双指针if num_list[i] + num_list[j] == target_sum:return Trueelif num_list[i] + num_list[j] < target_sum:i += 1else:j -= 1return False# 获取输入
num_list = list(map(int, input().split()))
target_sum = int(input())# 调用函数 
print(is_sum_present(num_list, target_sum))

5. 235:递归求一个数的阶乘

编写一个程序,使用递归求一个数的阶乘。
步骤1
定义函数calculate_factorial(),接受一个参数num。
用递归的方式求num的阶乘。
步骤2
输入一个正整数,,并存储在变量number中。。
以number为参数,调用calculate_factorial()函数并将结果存储在result变量中。
打印result。

示例输入

5

示例输出

120

参考源码

# 定义函数
def calculate_factorial(num):# 创建递归的停止条件# 提示:想一个不需要任何计算的数# 例如:0的阶乘是1# 如果 num 是 0 返回 1if num == 0:return 1# 创建一个递归条件,这将帮助我们在每一步中获取 num 的阶乘# 想一个最小的工作量# 这将执行直到达到基本情况return num * calculate_factorial(num-1)# 从用户那里获取输入
number = int(input())# 调用 calculate_factorial 函数并将结果存储在 result 变量中
result = calculate_factorial(number)# 打印结果
print(result)

6. 26:求第N个斐波那契数

斐波那契数列以0(第0项)和1(第1项)开始,每一项都是前两项的和。
编写一个程序来生成第n个斐波那契数。
定义函数fibonacci_number(),参数为n。
在函数中返回第n个斐波那契数。

示例输入

7

示例输出

13

参考源码

def fibonacci_number(n):# 在此处编写你的代码if n <= 0:return 0if n == 1:return 1return fibonacci_number(n-1) + fibonacci_number(n-2)# 输入n的整数
n = int(input())
# 调用函数
print(fibonacci_number(n))

7. 237:递归计算一个数的幂

编写一个程序来计算一个数的幂。
步骤1:
定义函数findPower(),参数为base(底数)和power(指数)。
计算base的power次方的值。
步骤2:
输入两个整数,分别作为底数和指数。
调用findPower()函数来计算数字的幂,并将结果存储在result变量中。
打印result。

示例输入

2
3

示例输出

8

参考源码

# 定义函数 findPower()
def findPower(base, power):# 基本情况# 任何数的0次方都是1if power == 0:return 1if power % 2:return findPower(base, power - 1) * baseelse:t = findPower(base, power // 2)return t * t# 递归调用# 我们需要做的最少的工作# 将底数乘以底数的power - 1次方# return findPower(base, power - 1) * base# 获取底数和指数的输入
base = int(input())
power = int(input())# 调用 findPower 函数
result = findPower(base, power)# 打印结果
print(result)

http://www.ppmy.cn/news/1400574.html

相关文章

wireshark创建显示过滤器实验简述

伯克利包过滤是一种在计算机网络中进行数据包过滤的技术&#xff0c;通过在内核中插入过滤器程序来实现对网络流量的控制和分析。 在数据包细节面板中创建显示过滤器&#xff0c;显示过滤器可以在wireshark捕获数据之后使用。 实验拓扑图&#xff1a; 实验基础配置&#xff1…

农村分散式生活污水分质处理及循环利用技术指南

标准已完成意见征集&#xff1a; 本文件给出了农村分散式生活污水分质处理及循环利用的总则、污水收集、污水分质处理、资源化利用、利用模式、运维管理等的指导。 本文件适用于农村分散式生活污水分质处理及循环利用的设施新建、扩建和改建工程的设计、施工与运维。 注:本文件…

springcloud基本使用(搭建eureka服务端)

创建springbootmaven项目 next next finish创建成功 删除项目下所有文件目录&#xff0c;只保留pox.xml文件 父项目中的依赖&#xff1a; springboot依赖&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s…

2024年中国医疗领域AI Models Overview

1. 神农(ShenNong-TCM) (2023-06-25) Code: ShenNong-TCM-LM基座模型: Chinese-Alpaca-Plus-7B数据: 以开源的中医药知识图谱为基础调用 ChatGPT 得到 1Iw的围绕中医药的指令数据 Model: Chinese-Alpaca-Plus-7BDataset: ShenNong_TCM Dataset, 中医药指令数据集 ShenNong_TCM…

SpringMVC注解及使用规则

文章目录 前言一、SpringMVC注解是什么&#xff1f;二、使用步骤1.注解使用2创建JSP3 SpringMVC视图1. 逻辑视图&#xff08;Logical View&#xff09;2. 物理视图&#xff08;Physical View&#xff09;区别和关系 4 SpringMVC注解总结 总结 前言 提示&#xff1a;这里可以添…

FastAPI+React全栈开发04 FastAPI概述

Chapter01 Web Development and the FARM Stack 04 Introducing FastAPI FastAPIReact全栈开发04 FastAPI概述 Now we will look at a brief introducion to the Python REST-API framework of choice - FastAPI. Additionally, we will go over a high-level overview of t…

Linux基础命令篇:操作系统服务管理(systemctl service)

Linux基础命令篇&#xff1a;操作系统服务管理&#xff08;systemctl & service&#xff09; service和systemctl是两个用于管理Linux系统服务的命令。它们分别属于SysV init和systemd系统&#xff0c;这两个系统是Linux中用于初始化和管理服务的不同框架。在许多现代Linux…

【pytest】功能特性及常用插件

pytest是一个功能强大的Python测试框架&#xff0c;它的语法简洁明了&#xff0c;易于学习和使用。同时&#xff0c;它提供了丰富的功能和插件&#xff0c;使得测试过程更加灵活和高效。 功能特性 pytest的主要功能特性包括&#xff1a; 参数化测试&#xff1a;允许使用不同…