PTA-浙大版 《Python程序设计》 第六章编程题目及答案
目录
7-1 输入列表,求列表元素和(eval输入应用)
7-2 一帮一
7-3 验证“哥德巴赫猜想”
7-4 列表或元组的数字元素求和
7-5 列表数字元素加权和(1)
7-6 列表元素个数的加权和(1)
7-7 求指定层的元素个数
7-8 输出全排列
7-1 输入列表,求列表元素和(eval输入应用)
在一行中输入列表,输出列表元素的和。
data = eval(input())
print(sum(data))
7-2 一帮一
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组
num = int(input())
boy = []
girl = []
order = []
for i in range(num):data = input().split()order.append(int(data[0]))if int(data[0]) == 0:girl.append(data[1])else:boy.append(data[1])
countb = 0
countg = 0
for i in range(num//2):if order[i] == 0:print('{} {}'.format(girl[countg],boy[-1-countg]))countg = countg + 1else:print('{} {}'.format(boy[countb],girl[-1-countb]))countb = countb + 1
7-3 验证“哥德巴赫猜想”
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
import math
def isprime(a):for i in range(2, int(math.sqrt(a)) + 1):if a % i == 0:return -1else:return 0num = int(input())
for i in range(2, num // 2 + 1):if isprime(i) == 0 and isprime(num - i) == 0:print('{} = {} + {}'.format(num,i,num-i))break
7-4 列表或元组的数字元素求和
求列表中数字和,列表中嵌套层次不限2层
def apart(arr):if type(arr) == int:return arrelse:return sum(apart(i) for i in arr if type(i) != str)
data = eval(input())
print(apart(data))
7-5 列表数字元素加权和(1)
输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素 的值为:元素值*1,第二层每个元素的值为:元素值*2,第三层每个元素的值为:元素值*3, ...,以此类推!
def apart(arr,times):times += 1if type(arr) == int:return arr * timeselse:return sum(apart(i,times) for i in arr)
data = eval(input())
print(apart(data,-1))
7-6 列表元素个数的加权和(1)
输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权个数和。第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,...,以此类推!
def apart(arr,times):times += 1if type(arr) == int:return timeselse:return sum(apart(i,times) for i in arr)times += 1
data = eval(input())
print(apart(data,-1))
7-7 求指定层的元素个数
输入一个嵌套列表,再输入层数,求该层的数字元素个数。
data = eval(input())
num = int(input())
count = 1
while(count != num):for i in data:if type(i) == list:data = icount += 1
count = 0
for i in data:if type(i) == int:count += 1
print(count)
7-8 输出全排列
输入整数n(3<=n<=7),编写程序输出1,2,...,n
整数的全排列,按字典序输出。
本题用的比较基础的方法,就是对全排列从1开始算起,每次增加一个数,在上一个排列的基础上对排列里的所有数做数值插入处理,即将新的数在上一个排列中的所有数的空袭中插值,由于输出排序,对最后的数据进行sort排序输出。
num = int(input())
def insert_index(arr,num):result = []array = list(arr)for i in range(len(array)+1):array = list(arr)array.insert(len(array)-i,num)result.append(''.join(array))return resultmylist = ['1']
for i in range(2,num+1):final = []for j in mylist:final.append(insert_index(j,str(i)))mylist = []for lenth in range(len(final)):for k in range(len(final[lenth])):mylist.append(final[lenth][k])
mylist.sort()
for i in mylist:print(i)
本章题目大量的提到了输入嵌套的情况,因此要熟练掌握eval函数的用法。具体介绍可见网页:https://blog.csdn.net/qq_29883591/article/details/53443062?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&dist_request_id=1332048.21734.16195123498347835&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control
PTA-浙大版 《Python程序设计》 第六章编程题目及答案相关推荐
- PTA浙大版python程序设计题目集--第1章-3 输出“Python语言简单易学” (10 分)
输入格式: 无 输出格式: 输出一句短语,Python语言简单易学. 如果包含汉字,用"print(s.encode("utf-8"))"输出. 如: s=&q ...
- PTA浙大版python程序设计题目集--第2章-4 特殊a串数列求和 (20 分)
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a和n. 输出格式: 在一行中按照"s = 对应 ...
- PTA浙大版python程序设计题目集--第2章-3 阶梯电价 (15 分)
为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯":月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦 ...
- PTA浙大版python程序设计题目集--第2章-2 计算分段函数[1] (10 分)
本题目要求计算下列分段函数f(x)的值: 公式 输入格式: 输入在一行中给出实数x. 输出格式: 在一行中按"f(x) = result"的格式输出,其中x与result都保留一位 ...
- PTA浙大版python程序设计题目集--第3章-5 字符转换 (15 分)
本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. 输出格式: 在一行中输出转换后的整数.题目 ...
- PTA浙大版python程序设计题目集--第1章-1 从键盘输入两个数,求它们的和并输出 (30 分)
本题目要求读入2个整数A和B,然后输出它们的和. 输入格式: 在一行中给出一个被加数 在另一行中给出一个加数 输出格式: 在一行中输出和值. 输入样例: 在这里给出一组输入.例如: 18 -48 输出 ...
- PTA浙大版python程序设计题目集--第2章-1 计算 11+12+13+...+m (30 分)
输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: 在一行中按照格式"sum = S"输 ...
- PTA浙大版python程序设计题目集--第1章-2 从键盘输入三个数到a,b,c中,按公式值输出 (30 分)
在同一行依次输入三个值a,b,c,用空格分开,输出 bb-4a*c的值 输入格式: 在一行中输入三个数. 输出格式: 在一行中输出公式值. 输入样例: 在这里给出一组输入.例如: 3 4 5 输出样例 ...
- Python程序设计第六章测验总结
第六章 文件 6.1 文件操作与英汉字典 1.打开一个已有文件,然后在文件末尾添加信息,正确的打开方式是__ A.'r' B.'w' C.'a' D.'w+' 解:C 2.如果文件不存在,下面的哪一种 ...
最新文章
- There are 0 datanode(s) running and no node(s) are excluded in this operation.
- VSCode中Flow报错解决
- 用tc(traffic control)控制网络流量
- 天合公司 TRW Inc.
- JAVA——TextArea和JTextArea添加滚动条(ScrollBars)
- 程序员最担心,在乎的几个问题!论12年的职业生涯,能给我带来什么!
- 面趣 | 这道微软面试题你会吗?
- [修正] Firemonkey Windows 控件有虚线残影问题
- Leetcode 323.无向连通图中的连通分量个数
- 链表节点的删除(链表data升序有重复)
- c语言 int转bool,C语言的布尔类型(_Bool)【转】
- 2015计算机软考试题及答案,2015年计算机软考网络工程师练习试题及答案
- android fastboot流程,FastBoot的使用步骤
- traceroute、tracert服务的工作原理
- 用友rep文件改为html形式,如何利用ufo简版工具修改用友凭证模板
- Java ArrayList集合案例(上课笔记)
- win10使用administrator登录却仍然没权限
- Gartner:上云步伐加速,中国公有云部署最佳实践
- 国密算法(SM2,SM3,SM4)辅助工具升级版(OTP+PBOC3.0)
- EF6 批量更新删除数据