首页 > 编程语言 >pta python实验3-6

pta python实验3-6

时间:2023-05-14 12:11:07浏览次数:44  
标签:绩点 输出 10 python pta 实验 scores print 输入

python实验4 循环结构

 

 1 import math
 2 
 3 def estimate_pi(n):
 4     total = 0
 5     ret = 0
 6     for i in range(n+1):
 7         if i % 2 == 0:
 8             sign = 1
 9         else:
10             sign = -1
11         term = sign/((2 * i + 1)*math.pow(3,i))
12         total += term
13     ret = math.sqrt(12) * total
14     return ret
15 
16 n = int(input())
17 p = estimate_pi(n)
18 print(f'pi = {p}')

7-2 百分制成绩转换五分制(循环)

编写一个学生成绩转换程序,用户输入百分制的学生成绩:

90~100时,输出为“A”,

80~89时,输出为“B”,

70~79时,输出为“C”,

60~69时,输出为“D”,

0~59时,输出为“E”。

输入数据超过100时,输出“data error!”。

用户可反复输入成绩进行转换,输入负数时,输出“end”并结束程序。

输入格式:

每次输入一个整数,代表百分制成绩;反复输入,输入负数结束程序

输出格式:

根据每一次的输入值分别输出A、B、C、D、E中的一个字母或"data error!"或"end"。输出end时程序结束。

 1 while True:
 2     score = int(input())
 3     if score < 0:
 4         print('end')
 5         break
 6     elif score > 100:
 7         print('data error!')
 8     elif score >= 90:
 9         print('A')
10     elif score >= 80:
11         print('B')
12     elif score >= 70:
13         print('C')
14     elif score >= 60:
15         print('D')
16     else:
17         print('E')

7-3 字符串加密

用户在一行中输入一个包括大小写字母和数字的字符串,编程将其中的大写字母用该字母后的第5个字母替代,小写字母用该字母后的第3个字符替代,其他字符原样输出,实现字符串加密。如:A--F,b--e,Z---E,w--z

输入格式:

输入一个至少包含一个字母的字符串

输出格式:

加密后的字符串

def encrypt_string(s):
    result = ''
    for c in s:
        if c.isupper():
            result += chr((ord(c) - ord('A') + 5) % 26 + ord('A'))
        elif c.islower():
            result += chr((ord(c) - ord('a') + 3) % 26 + ord('a'))
        else:
            result += c
    return result
c = input()
n = encrypt_string(c)
print(n)

7-4 整钱换零钱

将一张面额50元的钱币换成1元、5元、10元、20元的零钱,要求每种面额的零钱都要有,输出共几种方案,以及每一种方案。

输入格式:

输出格式:

输出每一种方案,以及共几种方案。

输入样例:

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

输出样例:

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

可换得1元5张,5元1张,10元2张,20元1张。
可换得1元5张,5元3张,10元1张,20元1张。
可换得1元10张,5元2张,10元1张,20元1张。
可换得1元15张,5元1张,10元1张,20元1张。
共4种方案。

def change(n):
count = 0
for i in range(1, n + 1): # 1元的数量,最多50个
for j in range(1, (n - i) // 5 + 1): # 5元的数量,最多10个
for k in range(1, (n - i - j * 5) // 10 + 1): # 10元的数量,最多五个
if n - i - j * 5 - k * 10 <= 0: # 如果总额小于等于0,退出循环
break
l = (n - i - j * 5 - k * 10) // 20 # 20元的数量
if n - i - j * 5 - k * 10 - l * 20 == 0: # 如果总额等于50元
count += 1
print(f'可换得1元{i}张,5元{j}张,10元{k}张,20元{l}张。')
print(f'共{count}种方案。')
change(50)

7-5 输出指定位数的最小斐波纳契数

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求指定位数的最小斐波那契数。

输入格式:

输人一个整数n(n>1)。

输出格式:

输出斐波纳契数列中,最小的n位数。

def fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

n = int(input())
i = 1
while True:
    if len(str(fibonacci(i))) >= n:
        print(fibonacci(i))
        break
    i += 1

 

实验5  组合数据类型
7-1 输入月份数字,输出对应月份名称缩写

输入一个月份数字,输出对应月份名称缩写(英文前三个字母,首字母大写),如果输入的月份非法,输出“error”。
这个字符串可能在你的程序中会用到
"JanFebMarAprMayJunJulAugSepOctNovDec"

输入格式:

输入一个月份数字。

输出格式:

输出对应月份名称缩写(英文前三个字母,首字母大写),如果输入的月份非法,输出“error”。

 1 str = "JanFebMarAprMayJunJulAugSepOctNovDec"
 2 n = int(input())
 3 pos = (int(n) - 1)*3
 4 month = str[pos:pos+3]
 5 if int(n)<=12 and int(n)>0:
 6     print(month)
 7 else:
 8     print('error')
 9 '''
10 month = input()
11 month_dict = {
12     '1': 'Jan',
13     '2': 'Feb',
14     '3': 'Mar',
15     '4': 'Apr',
16     '5': 'May',
17     '6': 'Jun',
18     '7': 'Jul',
19     '8': 'Aug',
20     '9': 'Sep',
21     '10': 'Oct',
22     '11': 'Nov',
23     '12': 'Dec'
24 }
25 if month in month_dict:
26     print(month_dict[month])
27 else:
28     print("error")'''

7-2 比赛评分-元组

编写程序,为新生歌手赛统计评委分数,实现以下功能:在一行内输入多个评委分数,以逗号间隔,去掉一个最高分、一个最低分后,剩下评分的平均值为最后得分,保留1位小数。

输入格式及样例:

在同一行输入多个评委分数,以逗号间隔。

88,89,90,91,86

输出格式及样例:

直接输出最后得分,保留1位小数。

89.0
1 scores = input()
2 scores = scores.split(",")
3 scores = [float(score) for score in scores]
4 scores.sort()
5 scores = scores[1:-1]
6 average_score = sum(scores) / len(scores)
7 print("%.1f" % average_score )

7-3 分析活动投票情况

利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员

输入格式:

在一行中输入得票的队员的序列号,用逗号隔开。

输出格式:

一行中输出第二小队没有得票的队员序号。

 1 vote = input()
 2 vote_set = set(vote.split(','))
 3 team2_set = {'6', '7', '8', '9', '10'}
 4 team1_set = {'1','2','3','4','5'}
 5 no_vote_set = team2_set - vote_set
 6 no_vote_list = list(no_vote_set)
 7 no_vote_list.sort
 8 if len(no_vote_list) != 0:
 9     print(' '.join(str(x) for x in no_vote_list))
10 else:
11     print(0)

7-4 计算绩点

学分绩点计算办法:
1、按成绩折算课程绩点:
90分 - 100分 折合4.0 - 5.0绩点,即90分折合4.0,91分折合4.1,依次类推
80分 - 89分 折合3.0 - 3.9绩点,即80分折合3.0,81分折合3.1,依次类推
70分 - 79分 折合2.0 - 2.9绩点,即70分折合2.0,71分折合2.1,依次类推
60分 - 69分 折合1.0 - 1.9绩点,即60分折合1.0,61分折合1.1,依次类推
不足60分的绩点为0

2、计算公式:
课程学分绩点 = 课程绩点 × 课程学分
平均学分绩点 = 课程学分绩点总和 ÷ 课程学分总和

输入学生各门课程的成绩和学分,编程实现学分绩点计算,输出每门课程的绩点,学分和课程学分绩点,并输出平均学分绩点

输入格式:

每一行输入课程的成绩和学分,以#结束

输出格式:

每一行输出课程绩点,学分,课程学分绩点(保留两位小数),每一项占8个字符的宽度
最后一行输出平均学分绩点(保留两位小数)

输入样例:

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

95 2
87 3
83 2
78 3
66 4
56 2
93 1
#
 

输出样例:

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

课程绩点   学分   课程学分绩点
4.5      2        9.00    
3.7      3        11.10   
3.3      2        6.60    
2.8      3        8.40    
1.6      4        6.40    
0        2        0.00    
4.3      1        4.30    
平均学分绩点 = 2.69
 1 scores = [] 
 2 credits = []
 3 while True:
 4     s = input()
 5     if s == '#':
 6         break
 7     s = s.split()
 8     scores.append(int(s[0]))
 9     credits.append(int(s[1]))
10 
11 score_sum = 0 
12 credit_sum = 0 
13 for i in range(len(scores)):
14     if scores[i] >= 90:
15         scores[i] = (scores[i] - 90) / 10 + 4 
16     elif scores[i] >= 80:
17         scores[i] = (scores[i] - 80) / 10 + 3 
18     elif scores[i] >= 70:  
19         scores[i] = (scores[i] - 70) / 10 + 2
20     elif scores[i] >= 60:   
21         scores[i] = (scores[i] - 60) / 10 + 1
22     else:
23         scores[i] = 0
24     score_sum += scores[i] * credits[i]
25     credit_sum += credits[i]
26 avg = score_sum / credit_sum
27 print('课程绩点   学分   课程学分绩点')
28 for i in range(len(scores)):
29     if scores[i] == 0:
30         print('%-9d%-9d%-8.2f' % (scores[i], credits[i], scores[i] * credits[i]))
31     else:
32         print('%-9.1f%-9d%-8.2f' % (scores[i], credits[i], scores[i] * credits[i]))
33 print('平均学分绩点 = %.2f' % avg) 

7-5 计算每个学生的平均成绩

输入所有学生的姓名和成绩,以#结束。输出每个学生的平均成绩表。

输入格式:

每一行输入一个学生的姓名和成绩,以空格分隔。
输入完成后以#结束

输出格式:

每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。

输入样例1:

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

Maria 20
David 10
Bob 15
David 20
#
 

输出样例1:

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

姓 名     平均成绩
Maria    20.00
David    15.00
Bob      15.00

 1 dict1={}
 2 dict2={}
 3 while 1:
 4     s=input()
 5     if s=="#":
 6         break
 7     name,score=s.split()
 8     if name in dict1.keys():
 9         dict1[name]+=eval(score)
10         dict2[name]+=1
11     else:
12         dict1[name]=eval(score)
13         dict2[name]=1
14 print("姓 名     平均成绩")
15 for name in dict1.keys():
16     print("{:8}{:.2f}".format(name,dict1[name]/dict2[name]))

 

实验6 python

 

1 def fun(n):
2     if n < 2:
3         y = 3*n+5
4     elif 2 <= x <3:
5         y = 2*sin(n)-1
6     else :
7         y = (1+x**2)**0.5
8     return y

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

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

函数接口定义:

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

其中 n 是传入的参数,表示需要判断的三位数。 n 的值的范围为[100,999]。

裁判测试程序样例:

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

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

输入样例:

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

371

输出样例:

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

Yes
1 def isflower(n):
2     b=int(n%10)
3     c=int((n/10)%10)
4     d=int(n/100)
5     if(b**3+c**3+d**3==n):
6         return True
7     else:
8         return False

6-3 判断回文

完成函数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是回文
1 def huiwen(s):
2     s = s.lower()
3     s = ''.join(s.split(' '))
4     if s == s[::-1]:
5         return 1
6     else:
7         return 0

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

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

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

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

函数接口定义:

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
 1 def prime(p):
 2     if p <= 1:
 3         return False
 4     for i in range(2, p):
 5         if p % i == 0:
 6             return False
 7     return True
 8 
 9 def PrimeSum(m, n):
10     sum = 0
11     for i in range(m, n+1):
12         if prime(i):
13             sum += i
14     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 def leap_year(year):
 2     if year <= 1582:
 3         print('年份必须大于1582年')
 4         return 
 5     if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
 6         print('%d年是闰年' % year)
 7     else:
 8         print('%d年不是闰年' % year)
 9 
10 
11 if __name__ == '__main__':
12     year = int(input())
13     leap_year(year)

7-2 统计函数

 

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

输入格式:

输入一个字符串。

输出格式:

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

输入样例:

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

1234helll00++++----BBBBB

输出样例:

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

(5, 5, 6, 8)
 1 def count_char(s):
 2     upper = 0
 3     lower = 0 
 4     num = 0
 5     other = 0
 6     for c in s:
 7         if c.isupper():
 8             upper += 1
 9         elif c.islower():
10             lower += 1
11         elif c.isdigit():
12             num += 1
13         else:
14             other += 1
15     return upper, lower, num, other
16 
17 if __name__ == '__main__':  
18     s = input()
19     result = count_char(s)
20     print(result)

7-3 可变数量参数函数

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

输入格式:

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

输出格式:

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

输入样例:

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

输出样例:

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

参数为: (1, 2, 3, 4)
参数最大值为: 4
参数累加和为: 10
1 def fun_demo(*nums):
2     print('参数为:', nums)
3     print('参数最大值为:', max(nums))
4     print('参数累加和为:', sum(nums))
5 
6 fun_demo(1, 2, 3, 4)  

 

 
 
 
   

标签:绩点,输出,10,python,pta,实验,scores,print,输入
From: https://www.cnblogs.com/jszs0013/p/17399026.html

相关文章

  • 基于EKF滤波的二阶RC电池模型的Soc估计仿真,附带实验数据(MATLAB仿真)
    基于EKF滤波的二阶RC电池模型的Soc估计仿真,附带实验数据(MATLAB仿真)ID:92200669861200737......
  • Python学习之六_同时访问Oracle和Mysql的方法
    Python学习之六_同时访问Oracle和Mysql的方法背景jaydebeapi可以访问大部分数据库.但是他有一个问题是仅能够访问一种类型的数据库.如果同事连接两种数据库,那么就会出现问题会有如下的提示:TypeError:Classcom.mysql.cj.jdbc.Driverisnotfound网上有方法是修改j......
  • Python连接数据库
    使用pymysql库:使用pip进行安装:pipinstallpymysql以下是使用pymysql库连接MySQL数据库的示例代码:importpymysql#连接到MySQL数据库conn=pymysql.connect(host='localhost',user='username',#用户名和密码改为自己的password='password',db='data......
  • Python for loop with index All In One
    PythonforloopwithindexAllInOne带索引的Pythonfor循环error❌#!/usr/bin/python3Blue=17GREEN=27RED=22LEDs=list([RED,GREEN,Blue])forled,iinLEDs:print('led=',LEDs[i])#22,27,17"""Traceback(mo......
  • 括号生成--Python解法
    数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。例如n=1,输出:["()"]classSolution:defgenerateParenthesis(self,n:int)->List[str]:res=[]cur_str=''defdfs(cur_str,left,right):......
  • Python 的常见库
    Python是一种广泛使用的编程语言,有很多强大的库可以帮助开发人员实现各种任务。以下是一些常见的Python库:NumPy:一个用于数值计算的库,提供了高效的数组操作和数学函数。Pandas:一个用于数据分析和操作的库,提供了数据结构和函数,可以方便地处理和分析数据。Matplotlib:一个用于数据可视......
  • 记录路由和源站路由实验(GNS3 + wireshark)
    实验目标1.认识IP记录路由的过程。2.抓包分析严格源站路由3.抓包分析宽松源站路由实验任务1.配置三台路由器,给每个路由器端口配置IP,在路由器R3上配置一个环回口3.3.3.3,使用扩展ping让R1ping3.3.3.3,抓包分析IP记录路由过程。2.配置5台路由器,让其中有环路,配置好OSPF路由协议。......
  • 第二次博客:PTA题目集4-5总结
    第二次博客:PTA题目集4-5总结 前言:有了前三次的菜单系列的洗礼,我对这两次的点菜还是有一定的信心的。老师也说期中考试会于点菜系列有一定的联系。但是事实告诉你永远不要试图揣测蔡老师的心思。先说期中考试:题目概述:总共4题,(和点菜没有半毛钱关系)不过总体来说......
  • 简单的python画图程序
    fromtkinterimport*fromtkinterimportmessageboxfromtkinter.colorchooserimportaskcolorclassApplication(Frame):def__init__(self,master=None):super().__init__(master)self.master=masterself.pack()self.createWid......
  • 爬虫案例之网易有道翻译Python代码改写
    网易有道翻译之逆向破解[Python代码改写]网址:https://fanyi.youdao.com/index.html#/***用到的知识点:(1)requests模块和session模块,发起请求什么是session对象?该对象和requests模块用法几乎一致.对于在请求过程中产生了cookie的请求如果该请求是使用session发起的,则co......