Python应用练习题(第四期)——函数的基本应用

1.汽车迷

  • 描述
    小明是一个汽车迷,看到什么汽车马上就可以说出汽车的生产年份、型号和品牌。定义一个函数,可以输出汽车的介绍。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
    • 例如输入:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
      2020 AMG_S65 奔驰‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

    • 可以输出:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
      这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

要求函数具有以下功能:当用户只输入生产年份、型号时,品牌按“宝马”输出。

  • 输入
    输入用空格分隔的年、型号和品牌(品牌可能没有)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输出
    这是一辆****年生产,型号是****的****牌汽车(**** 根据用户输入进行替换)

演示输入输出
示例12020 AMG_S65 奔驰这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车。
示例22020 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
  • 输出
    符合条件的数
演示输入输出(末尾有空格)
示例11005 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是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输入格式
    输入一个正整数‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输出格式
    不大于该数的所有素数,各数后面用一个空格分隔。

演示输入输出(末尾有空格)
示例11002 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项和

演示输入输出
示例1314

代码参考:

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个回文素数,数字后面用一个空格进行分隔。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输入格式
    输入一个正整数‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输出格式
    符合要求的回文素数且保证运行效率最高

演示输入输出(末尾有空格)
示例1102 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!’ 。

演示输入输出
示例13636 = 5 + 31
示例237Data 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数据分析与可视化

  • 26
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值