PTA Python实验6 函数

目录

函数题

6-1 分段函数求解

6-2 编写函数判断水仙花数

6-3 判断回文

6-4 sdut-使用函数求区域内的素数之和

 编程题

7-1 闰年函数

7-2 统计函数

7-3 可变数量参数函数

函数题

6-1 分段函数求解

作者 Python备课组

单位 福州大学至诚学院

输入一个实数x,调用函数fun(x),根据x的值计算分段函数y的值,并将其返回主程序。
分段函数y如下所示:

函数接口定义:

PTA Python实验6 函数_第1张图片

在这里描述函数接口。例如: def fun(x):

参数x是一个实数,函数要返回一个实数。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
from math import*
/* 请在这里填写答案 */
x=float(input())
print("{:.2f}".format(fun(x)))

输入样例:

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

5

输出样例:

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

5.10
def fun(x):
    if x<2:
        y = 3*x+5
    elif x<3:
        y = 2*sin(x)-1
    else:
        y = sqrt(1+x**2)
    return y

6-2 编写函数判断水仙花数

作者 王祥荣

单位 宁波财经学院

给定一个三位数n,要求编写函数isflower(n)判断n是否为水仙花数,如果是,则返回True,否则返回False。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。

函数接口定义:

在这里描述函数接口。例如:
isflower (n)

裁判测试程序样例:

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

n = eval(input())
if isflower(n)==True:
    print('Yes')
else:
    print('No') 

/* 请在这里填写答案 */ n = eval(input()) if isflower(n)==True: print('Yes') else: print('No')

输入样例:

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

371

输出样例:

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

Yes
def isflower(n):
    a = n//100
    b = n//10%10
    c = n%10
    if a**3+b**3+c**3==n:
        return 1
    else:
        return 0

6-3 判断回文

作者 cx

单位 福州大学至诚学院

完成函数huiwen(s),判断字符串s是否是回文,是回文返回1,不是返回0。在主程序中输入一个字符串,调用该函数判断该字符串是否回文。(回文是顺读逆读都相同的字符串)

函数接口定义:

在这里描述函数接口。
def huiwen(s):

参数s是一个字符串,函数要返回1或者0。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。

/* 请在这里填写答案 */
s=input()
if huiwen(s)==1:print("{}是回文".format(s))
else:print("{}不是回文".format(s))

输入样例:

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

abccba

输出样例:

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

abccba是回文
def huiwen(s):
    n = len(s)
    if n%2==0:
        if s[:int(n/2)]==s[:int(n/2-1):-1]:
            return 1
    else:
        if s[:int((n-1)/2)]==s[:int((n-1)/2):-1]:
            return 1

6-4 sdut-使用函数求区域内的素数之和

作者 周雪芹

单位 山东理工大学

设计函数,求指定范围内的素数之和。

函数1:prime(p), 用户传入参数p,若它为素数时返回True,否则返回False.

函数2:PrimeSum(m,n),返回区间[m, n]内所有素数的和(其 中,1<=m

函数接口定义:

prime(p),返回True表示p是素数,返回False表示p不是素数;
PrimeSum(m,n),函数返回素数之和。

在这里解释接口参数。例如:其中 N 和 D 都是用户传入的参数。 N 的值不超过int的范围; D 是[0, 9]区间内的个位数。函数须返回 N 中 D 出现的次数。

裁判测试程序样例:


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

m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

1 10

输出样例:

17
def prime(p):
    n = 0
    for i in range(2,p):
        if p%i==0:
            n+=1
            break
    if n==0:
        return 1
    else:
        return 0
def PrimeSum(m,n):
    if m==1:
        sum = -1
    else:
        sum = 0
    for i in range(m,n+1):
        if prime(i)==True:
            sum+=i
    return sum

 编程题

7-1 闰年函数

作者 史浩

单位 浙江金融职业学院

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1月~12月分别为31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天)。
凡阳历中有闰日(2月29日)的年份为闰年。
1582年以来的置闰规则:
规则一:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
规则二:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
可以总结为:四年一闰;百年不闰,四百年再闰。
请编写一个闰年函数可以判断输入的年份(该年份必须大于1582年)是否为闰年。

输入格式:

输入四位数年份xxxx

输出格式:

xxxx年是闰年 或 xxxx年不是闰年

输入样例1:

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

2020

输出样例1:

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

2020年是闰年

输入样例2:

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

2013

输出样例2:

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

2013年不是闰年

输入样例3:

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

1900

输出样例3:

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

1900年不是闰年

输入样例4:

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

1400

输出样例4:

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

年份必须大于1582年
def year(y):
    if y<=1582:
        return 0
    elif y%400==0 or (y%4==0 and y%100!=0):
        return 2
    else:
        return 1
y=eval(input())
z = year(y)
if z==0:
    print("年份必须大于1582年")
elif z==2:
    print(f"{y}年是闰年")
else:
    print(f"{y}年不是闰年")

7-2 统计函数

作者 python课程组

单位 合肥师范学院

编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。

输入格式:

输入一个字符串。

输出格式:

输出元组:(大写字母个数,小写字母个数,数字个数,其他字符个数)

输入样例:

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

1234helll00++++----BBBBB

输出样例:

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

(5, 5, 6, 8)
def daxies(s):
    a = 0
    for i in s:
        x = ord(i)
        if 65<=x<=90:
            a+=1
    return a
def xiaoxies(s):
    b = 0
    for i in s:
        x = ord(i)
        if 97<=x<=122:
            b+=1
    return b
def shuzis(s):
    c = 0
    for i in s:
        x = ord(i)
        if 48<=x<=57:
            c+=1
    return c
def qitas(s):
    return len(s)-daxies(s)-xiaoxies(s)-shuzis(s)
s = input()
daxie = daxies(s)
xiaoxie = xiaoxies(s)
shuzi = shuzis(s)
qita = qitas(s)
a = (daxie,xiaoxie,shuzi,qita)
print(a)

7-3 可变数量参数函数

作者 python课程组

单位 合肥师范学院

编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。

输入格式:

本题默认输入参数为(1,2,3,4)。

输出格式:

编写fun_demo(可变数量参数),计算输出:1)以元组形式输出参数;2)输出参数的最大值;3)输出参数累加和。

输入样例:

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

 
  

输出样例:

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

参数为: (1, 2, 3, 4)
参数最大值为: 4
参数累加和为: 10
s = (1,2,3,4)
m = max(s)
sum = 0
for i in s:
    sum+=i
print("参数为: (1, 2, 3, 4)")
print(f"参数最大值为: {m}")
print(f"参数累加和为: {sum}")

你可能感兴趣的:(python)