6-1 求列表中能被3整除的数

本题要求实现一个函数mult3(),带一个整数列表作为输入参数,仅仅输出列表中是3的倍数的那些数值,每个值占一行。

函数接口定义:
mult3(lst)
lst是传入的整数列表。

裁判测试程序样例:

# 请在这里填写答案  

def main():
    mylist = list(map(int,input().split(",")))
    mult3(mylist)

main()

输入样例:
3,1,6,2,3,9,7,9,5,4,5
输出样例:
输出:

3
6
3
9
9



代码示例

def mult3(lst):
    for num in lst:
        if num % 3 == 0:
            print(num)


解析:基础的函数接口调用题,只需掌握函数调用方法即可





6-2 计算一元二次方程的根

已知一元二次方程ax²+bc+c=0的三个系数,求解方程的实根。设计 equation(a,b,c)函数,三个参数分别为二次项系数a,一次项系数b和常数项系数c。计算Δ=b²−4ac。若Δ≥0,则有实根,返回两个实根,要求保留2位小数,英文逗号分隔;若Δ<0,则没有实根,返回“没有实根”。
计算方程两个根的公式为:
python实验5

函数接口定义:
def equation(a,b,c):
裁判测试程序样例:

# 请在这里写答案

a,b,c=map(float,input().split())
print(equation(a, b, c))

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

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

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

2 11 -6
输出样例2:
在这里给出相应的输出。例如:

0.50,-6.00
输入样例3:
在这里给出一组输入。例如:

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

没有实根


代码示例

def equation(a, b, c):
    delta = b ** 2 - 4 * a * c
    if delta >= 0:
        x1 = ((-b) + delta ** 0.5) / (2 * a)
        x2 = ((-b) - delta ** 0.5) / (2 * a)
        x1="{:.2f}".format(x1)
        x2="{:.2f}".format(x2)
        return x1 + ',' + x2
    else:
        return '没有实根'


解析:函数接口equation(a,b,c)主要实现判断和计算功能,其中的

x1="{:.2f}".format(x1)

以及

x2="{:.2f}".format(x2)


代码主要实现小数点后两位功能以及转化为字符串功能





6-3 手机尾号暴露你的年龄

微信朋友圈中曾疯传“手机尾号暴露你的年龄”,其算法如下:①看一下你手机号的最后一位;②把这个数字乘以2;③然后加上5;④再乘以50;⑤把得到的数加上1772;⑥用这个数减去你出生的那一年,现在得到一个新的数字,该数字的最后两位就是你现在的实际年龄(本规则仅适用于年龄在100岁以内的人,今年是2022年)。

函数接口定义:

在这里描述函数接口。例如:
def age(n,y):

该函数有两个参数:参数n为手机号最后一位;参数y为四位数的出生年份,如2002。该函数要返回按照上述规则计算出来的年龄。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:


/* 请在这里填写答案 */
num,year=eval(input())
print("2022年我{}岁".format(age(num,year)))

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

6,2002

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

2022年我20岁



代码示例

def age(n,y):
    n=(n*2+5)*50+1772-y
    n=n%100
    return n






6-4 判断整数的各位数字是否互不相同

编写一个函数 isdif(n),用来判断参数n(n为正整数)的各位数字是否互不相同,若互不相同,则返回1,否则返回0。在主程序中调用该函数,输出结果。

函数接口定义:

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

函数的参数n是一个正整数,函数要返回1或者0。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:
/* 请在这里填写答案 */
n=int(input())
if isdif(n):
    print("{}的各位数字互不相同".format(n))
else:
    print("{}的各位数字不是互不相同".format(n))

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

12345

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

13345

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

12345的各位数字互不相同

在这里给出第二组输出。例如:

13345的各位数字不是互不相同



代码示例

def isdif(n):
    num=n%10
    n=n/10
    flag1=1
    while n!=0:
        num2=n%10
        if num2==num:
            flag1=0
            break
        n=n//10
        num=num2
    return flag1






6-5 分段函数求解

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

函数接口定义:

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

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

裁判测试程序样例:

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

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

5

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

5.10



代码示例

import math
def fun(x):
    if x<2:
        y=3*x+5
    elif x<3:
        y=2*math.sin(x)-1
    else:
        y=(1+x**2)**0.5
    return y






6-6 zust-sy9-2编写函数sum(x),求x的各位数字之和

从键盘输入正整数n,调用自定义函数sum(x),计算各位数字之和并输出结果。
函数接口定义:

sum(x)
其中x 是用户传入的参数。函数返回x的各位数字之和。

裁判测试程序样例:

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

n=input()
print(sum(n))

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

35

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

8



代码示例

def sum(x):
    s = 0
    for i in str(x):
        s += int(i)
    return s






6-7 求e的x次方的近似数 - 实验12 用函数实现模块化程序设计- 《Python编程基础及应用实验教程》,高教社

e×的近似数求解可用公式(12-1)来实现,当最后一项小于10-6时停止计算,小于10-6的最后一项不参与求和。
python实验5

针对上面的近似公式,可以把问题分解为“求各项值函数”和“求和函数”。而“求各项值函数”又可以分解为“求幂函数”和“求阶乘函数”。

下述程序中已给出“求和函数”sum(x)以及相关输入输出代码,请编写并提交powers(x,n)以及fac(n)函数的定义,使得程序可以运行并输出正确结果。
函数接口定义:

def powers(x,n)  
def fac(n)

其中,powers(x,n)函数计算并返回x
n
; fac(n)函数计算并返回n! 。

裁判测试程序样例:

#在此处提供powers以及fac函数的定义

def sum(x):
    i=0
    s=0
    while (powers(x,i)/fac(i))>=1e-6:
        s=s+powers(x,i)/fac(i)
        i=i+1
    return s

x=int(input())
ex=sum(x)
print("%d powers of e = %.4f"%(x,ex))

输入样例:

10

输出样例:

10 powers of e = 22026.4658



代码示例

def powers(x,n):
    num=x**n
    return num
def fac(n):
    num2=1
    for i in range(1,n+1):
        num2=num2*i
    return num2






6-8 jmu-python-组合数据类型-1.计算坐标点欧氏距离

读取若干个点,每个点放入元组。并将所有点的点信息、点的类型、点与原点的距离打印出来。

函数接口定义:

readPoint() #从一行以,分隔的数中读取坐标,放入元组并返回
distance(point) #计算point与原点的距离并返回,要math库中的函数

裁判测试程序样例:

/* 请在这里填写答案 */
n = int(input())
for i in range(n):
    p = readPoint()
    print('Point = {}, type = {}, distance = {:.3f}'.format(p,type(p),distance(p)))

输入格式:
输入n,代表底下要输入n行点坐标。坐标全部为整数。
点坐标x,y,z以,分隔。坐标全部为整数。

注意:坐标以,分隔,相应位置可能无字符或者包含多个空格字符,读入时按照0进行处理。

输出格式:
见输出样例

输入样例:

5
1,1,1
,,
2,,1
3,1,3
5,,

输出样例:

Point = (1, 1, 1), type = <class 'tuple'>, distance = 1.732
Point = (0, 0, 0), type = <class 'tuple'>, distance = 0.000
Point = (2, 0, 1), type = <class 'tuple'>, distance = 2.236
Point = (3, 1, 3), type = <class 'tuple'>, distance = 4.359
Point = (5, 0, 0), type = <class 'tuple'>, distance = 5.000



代码示例

import math

def readPoint():
    s = input().strip().split(',')
    x = int(s[0]) if s[0] != '' else 0
    y = int(s[1]) if s[1] != '' else 0
    z = int(s[2]) if s[2] != '' else 0
    return (x,y,z)

def distance(point):
    return math.sqrt(point[0]**2 + point[1]**2 + point[2]**2)