当前位置:   article > 正文

【PTA|Python】浙大版《Python 程序设计》题目集:函数练习_语句a,b=int(input().split()),输入10 20可以得到a和b的值分别为10和2

语句a,b=int(input().split()),输入10 20可以得到a和b的值分别为10和20。

前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

往期题目集

【PTA|Python】浙大版《Python 程序设计》题目集:第一章
【PTA|Python】浙大版《Python 程序设计》题目集:第二章
【PTA|Python】浙大版《Python 程序设计》题目集:第三章
【PTA|Python】浙大版《Python 程序设计》题目集:第四章
【PTA|Python】浙大版《Python 程序设计》题目集:第五章
【PTA|Python】浙大版《Python 程序设计》题目集:第六章

函数练习题

第6章函数-1 使用函数求特殊a串数列和 (10 分)

题目

给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和

函数接口定义:

fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和

裁判测试程序样例:

/* 请在这里填写答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)

输入样例:
在这里给出一组输入。例如:

2 3

输出样例:
在这里给出相应的输出。例如:

246

解答

def fn(a,n):
    ans=0
    num=0
    while n:
        num=num*10+a
        ans+=num
        n-=1
    return ans
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

image.png

第6章函数-2 使用函数求素数和 (20 分)

题目

使用函数求素数和

prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。

函数接口定义:

在这里描述函数接口:
prime§,返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和

裁判测试程序样例:

/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:
在这里给出一组输入。例如:

1 10

输出样例:
在这里给出相应的输出。例如:

17

解答

import math


def prime(p):
    p = int(p)
    if p == 1:
        return False
    for i in range(2, int(math.sqrt(p))+1):
        if p % i == 0:
            return False
    return True


def PrimeSum(m, n):
    ans = 0
    for i in range(m, n+1):
        if prime(i):
            ans += i
    return ans
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

image.png

第6章函数-3 使用函数统计指定数字的个数 (20 分)

题目

本题要求实现一个统计整数中指定数字的个数的简单函数。
CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:

在这里描述函数接口。例如: CountDigit(number,digit ),返回digit出现的次数

裁判测试程序样例:

/* 请在这里填写答案 */
number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print(“Number of digit 2 in “+str(number)+”:”,count)

输入样例:
在这里给出一组输入。例如:

-21252 2

输出样例:
在这里给出相应的输出。例如:

Number of digit 2 in -21252: 3

解答

def CountDigit(number, digit):
    count = 0
    number = abs(number)
    while number != 0:
        if number % 10 == digit:
            count += 1
        number = number//10
    return count
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

image.png

第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20 分)

题目

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。

所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。

函数接口定义:

在这里描述函数接口。
例如:
fib(n),返回fib(n)的值
PrintFN(m,n),用列表返回[m, n]中的所有Fibonacci数。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。
例如:
/* 请在这里填写答案 */
m,n,i=input().split()
n=int(n)
m=int(m)
i=int(i)
b=fib(i)
print(“fib({0}) = {1}”.format(i,b))
fiblist=PrintFN(m,n) print(len(fiblist))

输入样例:
在这里给出一组输入。例如:

20 100 6

输出样例:
在这里给出相应的输出。例如:

fib(6) = 13 4

解答

def fib(n):
    a = 0
    b = 1
    while n:
        a, b = b, a+b
        n -= 1
    return b


def PrintFN(m, n):
    count = []
    index = 1
    while fib(index) <= n:
        if fib(index) >= m:
            count.append(fib(index))
        index += 1
    return count
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

image.png

第6章函数-5 使用函数求余弦函数的近似值 (20 分)

题目

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):
cos(x)=0!x0−2!x2+4!x4−6!x6+…
image.png

函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。

函数接口定义:

函数接口: funcos(eps,x ),返回cos(x)的值。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。
例如:
/* 请在这里填写答案 */
eps=float(input())
x=float(input())
value=funcos(eps,x )
print(“cos({0}) = {1:.4f}”.format(x,value))

输入样例:
在这里给出一组输入。例如:

0.0001 -3.1

输出样例:
在这里给出相应的输出。例如:

cos(-3.1) = -0.9991

解答

def funcos(eps, x):
    n = 1
    a = 1
    b = 1
    flag = -1
    ans = 1
    while a/b >= eps:
        n += 1
        count = (n-1)*2
        a = math.pow(x, count)
        b = math.factorial(count)
        if a/b >= eps:
            ans = ans+flag*(a/b)
        flag *= -1
    return ans
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

image.png

第6章函数-6 缩写词 (20 分)

题目

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。

函数接口定义:

acronym(phrase); phrase是短语参数,返回短语的缩写词

裁判测试程序样例:

/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))

输入样例:

central processing unit

输出样例:

CPU

解答

def acronym(phrase):
    lst=list(phrase.split())
    ans=""
    for i in lst:
        ans+=i[0].upper()
    return ans
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

image.png

结语

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/552802
推荐阅读
相关标签
  

闽ICP备14008679号