Python应用练习题(第四期)——函数的基本应用
1.汽车迷描述小明是一个汽车迷,看到什么汽车马上就可以说出汽车的生产年份、型号和品牌。定义一个函数,可以输出汽车的介绍。例如输入:
1.汽车迷
- 描述
小明是一个汽车迷,看到什么汽车马上就可以说出汽车的生产年份、型号和品牌。定义一个函数,可以输出汽车的介绍。-
例如输入:
2020 AMG_S65 奔驰 -
可以输出:
这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车
-
要求函数具有以下功能:当用户只输入生产年份、型号时,品牌按“宝马”输出。
-
输入
输入用空格分隔的年、型号和品牌(品牌可能没有) -
输出
这是一辆****年生产,型号是****的****牌汽车(**** 根据用户输入进行替换)
演示 | 输入 | 输出 |
---|---|---|
示例1 | 2020 AMG_S65 奔驰 | 这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车。 |
示例2 | 2020 AMG_S65 | 这是一辆2020年生产,型号是AMG_S65的宝马牌汽车。 |
代码参考:
def Car(year,model,brand = '宝马'):
return f'这是一辆{year}年生产,型号是{model}的{brand}牌汽车。'
ls = input().split()
print(Car(*ls))
2.各位数字之和为5的数
- 描述
输入一个1000以内的正整数 n,在同一行内输出 [0,n] 之间各位数字之和为5的数,数字之间用空格分开(行末有一个空格)。 - 输入
输入一个1000以内的正整数 n - 输出
符合条件的数
演示 | 输入 | 输出(末尾有空格) |
---|---|---|
示例1 | 100 | 5 14 23 32 41 50 |
代码参考:
# 函数法(此题使用函数法较为繁琐)
def fun(a):
d = str(a)
if sum([int(j) for j in d]) == 5:
print(d, end=' ')
a = eval(input())
for i in range(a + 1):
fun(i)
3.判断素数函数
-
描述
写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。 -
输入格式
输入一个正整数 -
输出格式
不大于该数的所有素数,各数后面用一个空格分隔。
演示 | 输入 | 输出(末尾有空格) |
---|---|---|
示例1 | 100 | 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
代码参考:
def isPrime(n): #判断素数的函数
if n < 2:
return False #0和1不是素数
for i in range(2, n):
if n % i == 0:
return False
break
else:
return True
num = int(input()) #接收用户输入并转成整数
for i in range(num):
if isPrime(i):
print(i,end=' ') #在同一行内输出结果,不换行,中间用空格分隔
4.求n平方的前n项和
-
描述
输入一个正整数 n,计算并输出数列 1×1、2×2、3×3、……n*n 前n项的和 -
输入
输入一个正整数 n -
输出
前n项和
演示 | 输入 | 输出 |
---|---|---|
示例1 | 3 | 14 |
代码参考:
def sum_of_squares(n):
print(sum([i ** 2 for i in range(1, n + 1)]))
sum_of_squares(int(input()))
5.回文素数
-
描述
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。
用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。 -
输入格式
输入一个正整数 -
输出格式
符合要求的回文素数且保证运行效率最高
演示 | 输入 | 输出(末尾有空格) |
---|---|---|
示例1 | 10 | 2 3 5 7 11 101 131 151 181 191 |
代码参考:
def palindrome(num): # 判断是否是回文
if str(num) == str(num)[::-1]:
return True
else:
return False
def isPrime(n): # 判断是否是素数
for j in range(2, n):
if n % j == 0:
return False
else:
if n != 0 and n != 1:
return True
else:
return False
flag = int(input())
i, x = 1, 0
while 1:
if palindrome(i): # 保证效率最高,先判断是否是回文(素数的计算较繁琐,若不是回文,则跳过,省去了计算量)
if isPrime(i):
print(i, end=' ')
x += 1
i += 1
if x == flag:
break
6.哥德巴赫猜想
-
描述
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入一个大于2的正整数,当输入为偶数时,在一行中按照格式“N = p + q”输出N的素数分解,其中p 、 q均为素数且p ≤ q。因为这样的分解可能不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。当输入为奇数时,输出’Data error!’ 。 -
输入格式
输入一个不小于2的正整数 -
输出格式
当输入为偶数时,按照格式“N = p + q”输出N的素数分解;当输入为奇数时,输出’Data error!’ 。
演示 | 输入 | 输出 |
---|---|---|
示例1 | 36 | 36 = 5 + 31 |
示例2 | 37 | Data error! |
代码参考:
def isPrime(n): #判断素数的函数
if n < 2:
return False #0和1不是素数
for i in range(2, n):
if n % i == 0:
return False
else:
return True
N = int(input()) #接收用户输入并转成整数
flag = False
if N % 2 == 0:
for i in range(N):
for j in range(N):
if isPrime(i) and isPrime(j) and i+j==N:
print("N = {} + {}".format(i,N-i))
flag = True
break
if flag:
break
else:
print('Data error!')
题目摘抄于‘PYTHON123’平台 Python数据分析与可视化
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)