第6周 Python函数刷题(一)

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

  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

参考源码

python 复制代码
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

示例输出

复制代码
质数

参考源码

python 复制代码
# 定义check_prime()的函数
def check_prime(n):
    flag = 0
    # 循环
    for i in range (2, int(n**0.5) + 1):
        # 判断 i是否能整除 number
        # 如果能整除,将flag设置为1
        if n % i == 0:
            flag = 1
    # 根据flag的值,判断是否是质数
    return flag

number = int(input())

# 调用函数
if check_prime(number):
    print("非质数")
else:
    print("质数")

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

编写一个函数:计算前N个自然数的和。

定义find_sum()的函数,以数字n作为参数。

在该函数中,计算从1到n的数字之和,并返回。

在函数外部,为变量number获得一个整数输入。

调用该函数并将number作为参数传递,打印返回值。

输入格式

一个整数

示例输入

复制代码
9

示例输出

复制代码
45

参考源码

python 复制代码
# 定义`find_sum()`的函数,以`n`作为参数。
def find_sum(n):
    return n * (n+1) // 2

number = 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

python 复制代码
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 True
    return 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 (n logn ),双指针扫描的时间复杂度为O (n)。

python 复制代码
def is_sum_present(num_list, target_sum):
    # 此处编写代码
    num_list.sort()
    i = 0
    j = len(num_list) - 1
    while i < j:  # 双指针
        if num_list[i] + num_list[j] == target_sum:
            return True
        elif num_list[i] + num_list[j] < target_sum:
            i += 1
        else:
            j -= 1
    return 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

参考源码

python 复制代码
# 定义函数
def calculate_factorial(num):

    # 创建递归的停止条件
    # 提示:想一个不需要任何计算的数
    # 例如:0的阶乘是1
    # 如果 num 是 0 返回 1
    if 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

参考源码

python 复制代码
def fibonacci_number(n):
    # 在此处编写你的代码
    if n <= 0:
        return 0
    if n == 1:
        return 1
    return 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

参考源码

python 复制代码
# 定义函数 findPower()
def findPower(base, power):

    # 基本情况
    # 任何数的0次方都是1
    if power == 0:
        return 1
    if power % 2:
        return findPower(base, power - 1) * base
    else:
        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)
相关推荐
ytttr87334 分钟前
matlab通过Q学习算法解决房间路径规划问题
学习·算法·matlab
精灵vector1 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习1 小时前
Python入门Day2
开发语言·python
Vertira2 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉2 小时前
Python之 sorted() 函数的基本语法
python
go54631584652 小时前
修改Spatial-MLLM项目,使其专注于无人机航拍视频的空间理解
人工智能·算法·机器学习·架构·音视频·无人机
项目題供诗2 小时前
黑马python(二十四)
开发语言·python
油泼辣子多加2 小时前
【Torch】nn.BatchNorm1d算法详解
算法
nlog3n2 小时前
基于 govaluate 的监控系统中,如何设计灵活可扩展的自定义表达式函数体系
算法·go
IT古董2 小时前
【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(2)神经网络整体结构
pytorch·神经网络·算法