单击题目,直接跳转到页面刷题,一周后公布答案。
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)