python第六章函数课后答案_浙大PTA-Python题库 函数题(6-1~6-6)题解

其他各章题解链接如下

浙大PTA-Python题库 编程题第一章(1-1~1-3)题解

https://blog.csdn.net/zimuzi2019/article/details/107020657

浙大PTA-Python题库编程题 第二章(2.1~2.14)题解

https://blog.csdn.net/zimuzi2019/article/details/106984549

浙大PTA-Python题库 编程题第三章(3-1~3-22)题解

https://blog.csdn.net/zimuzi2019/article/details/107040596

浙大PTA-Python题库 编程题第四章(4-1~4-30)题解

https://blog.csdn.net/zimuzi2019/article/details/107040603

浙大PTA-Python题库 编程题第五章(5-1~5-11)题解

https://blog.csdn.net/zimuzi2019/article/details/107020929

浙大PTA-Python题库 编程题第六章(6-1~6-8)题解

https://blog.csdn.net/zimuzi2019/article/details/107020979

浙大PTA-Python题库 编程题第七章(7-1)题解

https://tuenity.blog.csdn.net/article/details/102723092

注:第七章只有一道题,因为正则表达式学校尚不要求我就还没看,所以这道题解的链接是另一个大佬的

浙大PTA-Python题库 函数题(6-1~6-6)题解

https://blog.csdn.net/zimuzi2019/article/details/107021024

题目列表

第六章函数 -1 使用函数求特殊a串数列和

给定两个均不超过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(m, n):

sum,ans=0,0

for i in range(1, n+1):

sum=sum+m

m=m*10

ans=ans+sum

return ans

第6章函数-2 使用函数求素数和

使用函数求素数和

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

在这里描述函数接口:

prime(p),返回True表示p是素数,返回False表示p不是素数

PrimeSum(m,n),函数返回素数和

裁判测试程序样例:

/* 请在这里填写答案 */

m,n=input().split()

m=int(m)

n=int(n)

print(PrimeSum(m,n))

输入样例:

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

1 10

输出样例:

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

17

题解

def isPrime(num):

if num<=1:

return False

elif num==2:

return True

else:

for i in range(2,num):

if num%i==0:

return False

return True

def PrimeSum(a,b):

sum=0

for i in range(a,b+1):

if isPrime(i):

sum+=i

return sum

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

本题要求实现一个统计整数中指定数字的个数的简单函数。

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):

return str(number).count(str(digit))

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

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0函数接口定义:

在这里描述函数接口。例如:

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):

if(n==0)or(n==1):

return 1

else:

return fib(n-1)+fib(n-2)

def PrintFN(m,n):

temp=[]

for i in range(25):

if m<=fib(i)<=n:

temp.append(fib(i))

return temp

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

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):

cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?

函数接口定义: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

题解

import math

def funcos(eps, x):

sum=0

i=0

while True:

temp=((-1)**(i/2))*(x**i)/math.factorial(i)

if abs(temp)>=eps:

sum+=temp

elif abs(temp)

break

i+=2

return sum

第6章函数-6 缩写词

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

函数接口定义:

acronym(phrase);

phrase是短语参数,返回短语的缩写词

裁判测试程序样例:

/* 请在这里填写答案 */

phrase=input()

print(acronym(phrase))

输入样例:

central processing unit

输出样例:

CPU

题解

def acronym(p):

p=p.split()

temp=[]

for i in p:

word=[j for j in i]

if word[0]>'Z':

temp.append(chr(ord(word[0])-32))

else:

temp.append(word[0])

return (''.join(temp))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值