目录

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程序设计》 第六章编程题目及答案相关推荐

  1. PTA浙大版python程序设计题目集--第1章-3 输出“Python语言简单易学” (10 分)

    输入格式: 无 输出格式: 输出一句短语,Python语言简单易学. 如果包含汉字,用"print(s.encode("utf-8"))"输出. 如: s=&q ...

  2. PTA浙大版python程序设计题目集--第2章-4 特殊a串数列求和 (20 分)

    给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a和n. 输出格式: 在一行中按照"s = 对应 ...

  3. PTA浙大版python程序设计题目集--第2章-3 阶梯电价 (15 分)

    为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯":月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦 ...

  4. PTA浙大版python程序设计题目集--第2章-2 计算分段函数[1] (10 分)

    本题目要求计算下列分段函数f(x)的值: 公式 输入格式: 输入在一行中给出实数x. 输出格式: 在一行中按"f(x) = result"的格式输出,其中x与result都保留一位 ...

  5. PTA浙大版python程序设计题目集--第3章-5 字符转换 (15 分)

    本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. 输出格式: 在一行中输出转换后的整数.题目 ...

  6. PTA浙大版python程序设计题目集--第1章-1 从键盘输入两个数,求它们的和并输出 (30 分)

    本题目要求读入2个整数A和B,然后输出它们的和. 输入格式: 在一行中给出一个被加数 在另一行中给出一个加数 输出格式: 在一行中输出和值. 输入样例: 在这里给出一组输入.例如: 18 -48 输出 ...

  7. PTA浙大版python程序设计题目集--第2章-1 计算 11+12+13+...+m (30 分)

    输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: 在一行中按照格式"sum = S"输 ...

  8. PTA浙大版python程序设计题目集--第1章-2 从键盘输入三个数到a,b,c中,按公式值输出 (30 分)

    在同一行依次输入三个值a,b,c,用空格分开,输出 bb-4a*c的值 输入格式: 在一行中输入三个数. 输出格式: 在一行中输出公式值. 输入样例: 在这里给出一组输入.例如: 3 4 5 输出样例 ...

  9. Python程序设计第六章测验总结

    第六章 文件 6.1 文件操作与英汉字典 1.打开一个已有文件,然后在文件末尾添加信息,正确的打开方式是__ A.'r' B.'w' C.'a' D.'w+' 解:C 2.如果文件不存在,下面的哪一种 ...

最新文章

  1. There are 0 datanode(s) running and no node(s) are excluded in this operation.
  2. VSCode中Flow报错解决
  3. 用tc(traffic control)控制网络流量
  4. 天合公司 TRW Inc.
  5. JAVA——TextArea和JTextArea添加滚动条(ScrollBars)
  6. 程序员最担心,在乎的几个问题!论12年的职业生涯,能给我带来什么!
  7. 面趣 | 这道微软面试题你会吗?
  8. [修正] Firemonkey Windows 控件有虚线残影问题
  9. Leetcode 323.无向连通图中的连通分量个数
  10. 链表节点的删除(链表data升序有重复)
  11. c语言 int转bool,C语言的布尔类型(_Bool)【转】
  12. 2015计算机软考试题及答案,2015年计算机软考网络工程师练习试题及答案
  13. android fastboot流程,FastBoot的使用步骤
  14. traceroute、tracert服务的工作原理
  15. 用友rep文件改为html形式,如何利用ufo简版工具修改用友凭证模板
  16. Java ArrayList集合案例(上课笔记)
  17. win10使用administrator登录却仍然没权限
  18. Gartner:上云步伐加速,中国公有云部署最佳实践
  19. 国密算法(SM2,SM3,SM4)辅助工具升级版(OTP+PBOC3.0)
  20. EF6 批量更新删除数据

热门文章

  1. matlab短均线滞后项,低滞后均线系统 -- Hull 均线
  2. WPS中如何分节,复杂情况下如何插入页码
  3. 解析python 命令的-u参数
  4. Linux中查看Tomcat日志输出
  5. oracle 设置忽略关键字,Oracle中Hint被忽略的几种常见情形
  6. 计算机网络系统设备安装工程,第一章-计算机网络系统设备安装工程-定额(14页)-原创力文档...
  7. element 表单各种正则校验
  8. 【nginx】nginx编译安装
  9. 模板方法模式C++实现
  10. jquery 用cookie进行换肤