【python】pythonPTA编程题练习

文章目录

  • 7-2 计算某天距元旦的天数
  • 6-1 python函数:求m到n之和
  • 6-2 python函数:递归求Fabonacci数列
  • 7-1 企业根据利润提成发放奖金问题
  • 7-3 温度转换
  • 7-4 3,5,7的倍数判定(高教社,《Python编程基础及应用》习题6-4)
  • 7-5 计算分段函数f(x)的值
  • 7-6 统计字符串中不同种类的字符个数
  • 7-3 重复多个星号
  • 6-2Python编程技术实验-4(函数和类)
  • 6-3 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)
  • 6-4 编写生成斐波那契数列的函数并调用。(升级版v2.0)
  • 6-5 判断素数的函数
  • 6-6 定义并实现身体质量指数类(高教社,《Python编程基础及应用》习题9-3)
  • 6-7 编写Pet类
  • 6-8 编写一个Fan类
  • 7-2 计算某天距元旦的天数

    分数 10
    作者 王祥荣
    单位 宁波财经学院
    输入年、月、日,要求输出该年份的元旦到该日期总共经过了多少天。(提示:闰年是指能被400 整除的年份或者能被4 整除但不能100 整除的年份)

    输入格式:
    输入n,代表接下来要输入n行的年、月、日。

    然后输入n行年、月、日,年、月、日之间的元素以空格相分隔,第1个数据为年,第2个数据为月,第3个数据为日。

    输出格式:
    如果输入年月日正确,则输出:Totaldays=天数

    如果输入年月日有错,则输出:ErrorInput

    输入样例:

    4
    2000 13 10
    2000 3 10
    2012 3 10
    2018 5 20
    

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

    ErrorInput
    Totaldays = 70
    Totaldays = 70
    Totaldays = 140
    
    from datetime import datetime
    n = int(input())
    for i in range(n):
        s = input()
        try:
            y, m, d = s.split(' ', 2)
            y = int(y)          
            m = int(m)
            d = int(d)
            d2 = datetime(y, m, d)
        except:
            print('ErrorInput')
            continue #不能忘
        d1 = datetime(y, 1, 1)
        print('Totaldays =',(d2 - d1).days + 1)
    

    6-1 python函数:求m到n之和

    分数 10
    作者 gllypx
    单位 桂林学院
    本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。

    函数接口定义:
    函数接口:
    sum(m,n)
    m<n,m和n可以是负数

    裁判测试程序样例:

    /* 请在这里填写答案 */
    在这里给出函数被调用进行测试的例子。例如:

    m=int(input())
    n=int(input())
    print(sum(m,n))
    

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

    -1
    5
    

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

    14
    
    def sum(m,n):
        result=0
        if m<n:
            for i in range(m,n+1):
                result+=i
        else:
            return '输入有误!'
        return result
    
    m = int(input())
    n = int(input())
    print(sum(m,n))
    

    6-2 python函数:递归求Fabonacci数列

    分数 10
    作者 gllypx
    单位 桂林学院
    本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:

    f(n)=f(n−2)+f(n−1) (n≥3),其中f(1)=1,f(2)=1。

    函数接口定义:
    函数接口:
    f(n)
    函数f应返回第n个Fabonacci数。题目保证输入输出在整型范围内。建议用递归实现。

    裁判测试程序样例:
    /* 请在这里填写答案 */

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

    n=int(input())
    print(f(n))
    

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

    6
    

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

    8
    
    def f(n):
        if n==1 or n==2:
            return 1
        else:
            return f(n-2)+f(n-1)
    
    n= int(input())
    print(f(n))
    
    

    7-1 企业根据利润提成发放奖金问题

    分数 14
    作者 胡锦美
    单位 闽江学院
    企业根据利润提成发放奖金问题。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数?

    输入格式:
    输入一个利润整数。例如:输入120000。

    输出格式:
    输出一个实数。例如:11500.0。

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

    120000
    输出样例:
    

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

    11500.0
    
    a = float(input())
    if a<=100000:
        b = a*0.1
    elif 100000<a<=200000:
        b = 100000*0.1+(a-100000)*0.075
    elif 200000<a<=400000:
        b = 100000*0.1+(a-200000)*0.05+200000*0.075
    elif 400000<a<=600000:
        b = 100000*0.1+(a-400000)*0.03+100000*0.75+200000*0.05
    elif 600000<a<=1000000:
        b = 100000*(0.1+0.075+0.1+0.06)+(a-600000)*0.015
    elif a>1000000:
        b = 100000*(0.1+0.075+0.1+0.06+0.03)+(a-1000000)*0.01
    
    print(b)
    
    

    7-3 温度转换

    分数 10
    作者 马杨珲
    单位 浙江科技学院
    温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。华氏度以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。

    根据华氏和摄氏温度定义,转换公式如下:

    C = ( F – 32 ) / 1.8
    F = C * 1.8 + 32
    

    输入格式:
    输入一个实数表示温度,后面的字母表示温度体系:F或f表示华氏温度,而C或c表示摄氏温度,实数与字母间无分隔符。

    输出格式:
    输出转换后的温度(保留两位小数,且后面有温度体系说明符,大写字母表示);若输入的数据格式有误(未有效标示温度体系),输出Error

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

    36.8C
    

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

    98.24F
    

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

    10f
    

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

    -12.22C
    

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

    78.2#
    

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

    Error
    
    T = input()
    if T[-1] in ['f','F']:
        F = (float)(T[0:-1])
        C=(F-32)/1.8
        print("{:.2f}C".format(C))
    elif T[-1] in ['c','C']:
        C =(float)(T[0:-1])
        F = C*1.8+32
        print("{:.2f}F".format(F))
    else:
        print('Error')
    
    

    7-4 3,5,7的倍数判定(高教社,《Python编程基础及应用》习题6-4)

    分数 6
    作者 海洋饼干叔叔
    单位 重庆大学
    编程序实现功能:输入一个整数,判断其是否能同时被3、5、7整除。能被整除则输出“Yes”,否则, 输出“No”。

    输入格式:
    一个整数

    输出格式:
    Yes 或 No

    输入样例:

    7
    

    输出样例:

    No
    
    n=int(input())
    if n%105==0:
        print('Yes')
    else:
        print('No')
    
    

    7-5 计算分段函数f(x)的值

    分数 10
    作者 季江民
    单位 浙江大学
    计算下列分段函数f(x)的值:

    1103.jpg

    输入格式:
    输入在一行中给出实数x。

    输出格式:
    在一行中按“f(x)=result”的格式输出,其中result都保留三位小数(提示:使用.format()函数)。

    输入样例1:

    12.34
    输出样例1:
    
    f(12.34)=0.081
    

    输入样例2:

    0
    

    输出样例2:

    f(0.0)=0.000
    
    #eval(str)把字符串str当成有效的表达式来求值,并返回计算结果
    x = eval(input())
    if x==0:
        print("f({:.1f})={:.3f}".format(x,x))
    else:
        y=1/x
        print("f({:.2f})={:.3f}".format(x,y))
    
    

    7-6 统计字符串中不同种类的字符个数

    分数 10
    作者 李体新
    单位 保定学院
    本题目要求读入一个字符串,统计字符串中字母、数字、空格、其它字符的个数。

    输入格式:
    输入一行由任意字符组成的字符串。

    输出格式:
    统计字符串中字母、数字、空格、其它字符的个数。

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

    2a and Am3,MNak888!..
    

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

    letters=10,digits=5,spaces=2,others=4
    
    n = input()
    letters=digits=spaces=others=0
    for i in n:
        if i.isalpha():
            letters+=1
        elif i.isspace():
            spaces+=1
        elif i.isdigit():
            digits+=1
        else:
            others+=1
        
    print("letters={},digits={},spaces={},others={}".format(letters,digits,spaces,others))
        
    
    

    7-3 重复多个星号

    分数 10
    作者 马杨珲
    单位 浙江科技学院
    根据给定的整数n,在一行上打印n个*号。

    输入格式:
    输入一个整数n。

    输出格式:
    输出n个*号。

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

    3
    

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

    ***
    
    n = eval(input())
    for i in range(n):
        print('*',end="")
    

    6-2Python编程技术实验-4(函数和类)

    6 天
    6-2 整数数位和(高教社,《Python编程基础及应用》习题8-3)
    分数 10
    作者 海洋饼干叔叔
    单位 重庆大学
    编写一个函数,该函数接受一个正整数作为参数,返回该整数的各位数字之和。

    函数接口定义:

    def digitSum(v)
    

    v为输入整数(正整数);
    函数返回一个整数,其值为v的各位数字之和。

    裁判测试程序样例:

    a = int(input())
    print(digitSum(a))
    

    输入样例:

    291
    

    输出样例:

    12
    
    def digitSum(v):
        list1 = list(str(v))
        sum=0
        for i in range(len(list1)):
            sum+=int(list1[i])
        return sum
    

    6-3 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)

    分数 10
    作者 海洋饼干叔叔
    单位 重庆大学
    编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)

    函数接口定义:
    def caculate(t)
    号的参数t接受多个参数成员,参数成员预期为整数或浮点数类型。

    裁判测试程序样例:
    s = input().split() #接受输入字符串并按空格分拆,存入列表,列表成员为字符串类型
    t = [float(x) for x in s] #使用列表推导将列表s中的成员全部转换成浮点数,存入另一个列表t
    print(“%.4f” % caculate(*t))
    输入样例:
    3 2 1
    输出样例:
    6.0000

    def caculate(*t):
        j=1
        for i in range(len(t)):
            j *= t[i]
        return j
    

    6-4 编写生成斐波那契数列的函数并调用。(升级版v2.0)

    分数 15
    作者 郭堂瑞
    单位 湖北文理学院
    本题要求实现一个函数,可实现计算最后一项小于指定值的斐波那契数列。

    函数接口定义:
    在这里描述函数接口。例如:
    def fib(n):
    n是用户传入的参数。 函数须输出最后一项小于指定值的斐波那契数列。

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

    fib(input())
    输入样例1:
    在这里给出一组输入。例如:

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

    1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 
    

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

    1
    

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

    1 1
    

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

    -50
    

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

    输入数据错误!
    
    def fib(n):
        a=int(n)
        f1=1
        f2=1
        c=1
        if a<0:
            print("输入数据错误!",end="")
        elif a==1:
            print("1 1",end="")
        while c<a and f1<a:
            print("{}".format(f1),end=" ")
            f2=f1+f2
            f1=f2-f1
            c+=1
    
    

    6-5 判断素数的函数

    分数 10
    作者 吴敏华
    单位 首都师范大学
    输入若干整数(输入0结束),每个整数输入完毕后,马上输出该整数是否为素数。
    本题要求写一个函数def prime(m),判断整数m是否为素数,是素数返回True,否则返回False。

    函数接口定义:

    def prime(m)
    

    裁判测试程序样例:

    #请在这里填写答案 
    while True:
        n=int(input())
        if n==0:
            break
        if n<2:
            print("Invalid")
        else:
            if prime(n):
                print("Yes")
            else:
                print("No")
    

    输入样例:

    Yes
    Invalid
    No
    Invalid
    Yes
    
    def prime(m):
        i=2
        while i< m:
            if m%i ==0:
                return False
            i+=1
        else:
            return True
    
    

    6-6 定义并实现身体质量指数类(高教社,《Python编程基础及应用》习题9-3)

    分数 15
    作者 海洋饼干叔叔
    单位 重庆大学
    按图施工,设计下述BMI类,用于计算身体质量指数。该指数等于体重(kg)除以身高(米)的平方。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J3mSd9cJ-1652781607218)(vx_images/16234817238984.png)]

    相应的判定标准如下图所示。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RRaYuYGo-1652781607221)(vx_images/274214817226851.png)]

    BMI类接口定义:

    class BMI:
        ...
    

    其中,name为姓名,age为年龄,height为身高,单位为米,weight为体重,单位为kg。

    getBMI()函数返应计算所得的身体质量指数;

    getStatus()返回评价结果,其值应为超轻/标准/超重/肥胖之一。

    裁判测试程序样例:

    sName = input()  #输入姓名
    iAge = int(input()) #输入年龄
    fHeight = eval(input())  #输入身高,预期为浮点数,单位米
    fWeight = eval(input())  #输入体重,预期为浮点数,单位千克
    bmi=BMI(sName,iAge,fHeight,fWeight) #实例化BMI类
    print("Name:",bmi.name)
    print("Age:",bmi.age)
    print("BMI = %.3f" % bmi.getBMI())
    print("Result =",bmi.getStatus())
    输入样例:
    Alex
    27
    1.75
    68
    

    输出样例:

    Name: Alex
    Age: 27
    BMI = 22.204
    Result = 标准
    
    class BMI:
         def __init__(self,sName,iAge,fHeight,fWeight):
                self.name=sName
                self.age=iAge
                self.height=fHeight
                self.weight=fWeight
         def getStatus(self):
            b=fWeight/(fHeight*fHeight)
            if b<18:
                return '超轻'
            elif 25>b>=18:
                return '标准'
            elif 25<=b<27:
                return '超重'
            else:
                return '肥胖'
         def getBMI(self):
              b=fWeight/(fHeight*fHeight)
              return b
    

    6-7 编写Pet类

    分数 10
    作者 殷伟凤
    单位 浙江传媒学院
    编写一个名为Pet的类,它应具有以下属性:

    __name:表示宠物的名字
    __age:表示宠物的年龄
    Pet类应该有一个__init__方法来创建这些属性。

    它还应有以下方法:

    setName方法:为__name属性赋值
    setAge方法:为__age属性赋值
    getName方法:返回__name属性的值
    getAge方法:返回__age属性的值
    Pet类还要有__str__方法,返回相关描述。

    完成Pet类定义后,根据以下裁判测试程序进行测试。

    Pet类定义:

    class Pet:
        ......
    

    裁判测试程序样例:

    #请在这里填写Pet类的定义
    
    def main():
    
        # 获取数据
        pet_name = input()
        pet_age = int(input())
    
        # 创建一个Pet实例.
        mypet = Pet(pet_name, pet_age)
    
        # 显示输入的数据
        print('Here is the data that you entered: ')
        print('Pet name: ', mypet.getName())
        print('Age of pet: ', mypet.getAge())
        # 输出描述
        print(mypet)
    
    main()
    

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

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

    Here is the data that you entered:
    Pet name: Peter
    Age of pet: 2
    Peter is 2 age!

    class Pet:
         def __init__(self, pet_name, pet_age):
            self.name = pet_name
            self.age = pet_age
         def getName(self):
            return self.name
         def getAge(self):
            return self.age
         def setName(self, name):
            self.name = name
         def setAge(self, age):
            self.age = age
         def __str__(self):
            return str(self.name)+' is '+str(self.age)+' age!' #或者可以偷懒直接返回'Peter is 2 age!'
    

    6-8 编写一个Fan类

    分数 15
    作者 殷伟凤
    单位 浙江传媒学院
    设计一个名为Fan的类表示一个风扇。这个类包括:

    1.三个名为SlOW、MEDIUM和FAST,其值为1、2和3常量表示风扇的速度。

    2.一个名为speed的int类型私有数据域表示风扇的速度(默认值为SLOW)。

    3.一个名为on的boolean类型私有数据域表示风扇是否打开(默认值为false)。

    4.一个名为radius的double类型私有数据域表示风扇的半径(默认值为5)。

    5.一个名为color的string类型数据域表示风扇的颜色(默认值为white)。

    6.这四个数据域的访问器和修改器。

    7.一个构造方法创建一个具有特地速度、半径、颜色以及是否打开的风扇。

    请在自己的草稿本上画出UML图,养成良好的设计习惯。

    要求:创建两个Fan对象:

    第一个对象,构造默认值的风扇对象Fan1;

    第二个对象,赋值最大速度、半径为10、颜色为blue,打开它的对象Fan2。

    显示每个对象的speed、radius、color和on属性

    ###Fan类定义:

    ‘class Fan:
    …’
    裁判测试程序样例:

    SLOW = 1
    MEDIUM = 2
    FAST = 3
    

    #请在这里填写答案

    def main():
        fan1 = Fan()
        print(fan1)
        print()
        fan2 = Fan()
        fan2.setSpeed(FAST)
        fan2.setRadius(10)
        fan2.setColor("blue")
        fan2.setOn(True)
        print(fan2)
    
    
    main()
    

    输入样例:
    无输入

    
    

    输出样例:

    speed 1
    color white
    radius 5
    fan is off
    
    speed 3
    color blue
    radius 10
    fan is on
    
    class Fan:
       # speed=SLOW
        def setSpeed(self,x):
            self.speed=x
        def getSpeed(self):
            return self.speed
        #on = False
        def setOn(self,x):
            if x==True:
                self.on='on'
        def getOn(self):
            return self.on
        #radius =float(5)
        def setRadius(self,x):
            self.radius=x
        def getRadius(self):
            return self.radius
        #color = 'while'
        def setColor(self,x):
            self.color=x
        def getcolor(self):
            return self.color
        def __init__(self):
            self.speed=SLOW
            self.on='off'
            self.radius =5
            self.color = 'white'
          #  print('构造方法被执行了。')
        def __str__(self):
             return 'speed '+str(self.speed)+'\n'+ 'color '+str(self.color)+ '\n'+'radius '+str(self.radius)+'\n'+'fan is '+self.on
        
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » 【python】pythonPTA编程题练习

    发表评论