目录

6-1 使用函数求特殊a串数列和

6-2 使用函数求素数和

6-3 使用函数统计指定数字的个数

6-4 使用函数输出指定范围内Fibonacci数的个数

6-5 使用函数求余弦函数的近似值

6-6 缩写词

7-1 输入列表,求列表元素和(eval输入应用)

7-2 一帮一

7-3 验证“哥德巴赫猜想”

7-4 列表或元组的数字元素求和

7-5 列表数字元素加权和(1)

7-6 列表元素个数的加权和(2)

7-7 求指定层的元素个数

7-8 输出全排列

此解法为"动态规划",没算法底子可能比较难看懂


6-1 使用函数求特殊a串数列和

def fn(a, n):result = akey = afor index in range(1, n):key = key * 10 + aresult += keyreturn result

6-2 使用函数求素数和

import mathdef prime(num):if num < 2:return Falseif num < 4:return Truefor index in range(2, int(math.sqrt(num)) + 1):if num % index == 0:return Falsereturn Truedef PrimeSum(m, n):result = 0for index in range(m, n + 1):if prime(index):result += indexreturn result

6-3 使用函数统计指定数字的个数

def CountDigit(number, digit):result = 0num = int(abs(number))while num > 0:if num % 10 == digit:result += 1num = int(num/10)return result

6-4 使用函数输出指定范围内Fibonacci数的个数 

dict1 = {0: 1, 1: 1}  # 记录每一次的斐波那契数
dict2 = [1]           # 记录出现过的斐波那契数
a = b = key = 1
while b < 100001:key += 1a, b = b, a + bdict1[key] = bdict2.append(b)def fib(n):return dict1[n]def PrintFN(m, n):result = []for index in range(m, n + 1):if index in dict2:result.append(index)return result

6-5 使用函数求余弦函数的近似值

def Jie(num):if num == 1:return 1return num * Jie(num - 1)def funcos(eps, x):  # 返回cos(x)的值result = 1flag = 2key = pow(x, flag) / 2while abs(key) >= eps:result += key if flag % 4 == 0 else -keyflag += 2key = pow(x, flag) / Jie(flag)return result

6-6 缩写词

def acronym(str1):list1 = str1.split()result = ""for index in range(len(list1)):ch = list1[index][0]if 'a' <= ch <= 'z':ch = chr(ord(ch) - 32)result += chreturn result

7-1 输入列表,求列表元素和(eval输入应用)

box = eval(input())
print(sum(box))

7-2 一帮一

n = int(input())
box = []
for index in range(n):sex, name = input().split()box.append([sex, name])while len(box) > 0:for index in range(len(box) - 1, 0, -1):if box[index][0] != box[0][0]:print("%s %s" % (box[0][1], box[index][1]))box.pop(index)box.pop(0)break

7-3 验证“哥德巴赫猜想”

from math import sqrtdef SU(num):if num < 2:return Falseif num < 4:return Truefor index in range(3, int(sqrt(num) + 3), 2):if num % index == 0:return Falsereturn TrueN = int(input())
key = 2for z in range(3, N, 2):if SU(z) and SU(N - z):key = zbreakprint("%d = %d + %d" % (N, key, N - key))

7-4 列表或元组的数字元素求和

def SUM(str1):if type(str1) == int:return str1if type(str1) != str:return sum(SUM(x) for x in str1)return 0box = eval(input())
print(SUM(box))

7-5 列表数字元素加权和(1)

def SUM(str1, deep):if type(str1) == int:# print("%d %d" % (str1, deep))return str1 * deepif type(str1) != str:return sum(SUM(x, deep+1) for x in str1)return 0box = eval(input())
print(SUM(box, 0))

7-6 列表元素个数的加权和(2)

def SUM(str1, deep):if type(str1) == int:# print("%d %d" % (str1, deep))return deepif type(str1) != str:return sum(SUM(x, deep+1) for x in str1)return 0box = eval(input())
print(SUM(box, 0))

7-7 求指定层的元素个数

result = [0 for index in range(101)] # 记录各层出现元素的次数(数组)def SUM(str1, deep):if type(str1) == int:# print("%d %d" % (str1, deep))result[deep] += 1elif type(str1) != str:for index in str1:SUM(index, deep + 1)box = eval(input())
SUM(box, 0)
command = int(input())
print(result[command])

7-8 输出全排列

此解法为"动态规划",没算法底子可能比较难看懂

appear = [0 for cdl in range(520)]
N = int(input())result = []def printNum(num, deep):if appear[num] == 1:returnelse:result.append(num)appear[num] = 1for index in range(1, N + 1):printNum(index, deep + 1)if deep == N:for index in result:print(index, end='')print()appear[num] = 0result.pop(deep-1)for z in range(1, N + 1):printNum(z, 1)

《Python程序设计》 第六章 函数+编程题解相关推荐

  1. Python程序设计 第六章 函数(续

    复习 1. 10进制 ⇒\Rightarrow⇒ 2进制 除2取余,从低位到高位存储到字符串中,从高位到低位 def d2b(n):if n>1:d2b(n//2)print(n%2,end=' ...

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

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

  3. 《零基础学python》---第六章 函数

    创建一个函数 创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具.使用def关键字实现,具体的语法格式如下: def functionname([parameterlist]):['''co ...

  4. 程序设计基础(CC++) 戴波、张东祥 第六章 函数 编程作业

    1函数实现学生管理系统(100分) 题目内容: 使用函数编写学生管理系统 其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,0表示女). 生日(19850101(年月日)). ...

  5. python第六章函数课后答案_浙大PTA-Python题库 函数题(6-1~6-6)题解

    其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...

  6. Python 精要参考(第二版) 第六章 函数与函数编程

    1. 第六章 函数与函数编程 为便于代码维护,绝大多数子程序都被分解并重新组织为函数以使代码模块化. 在 Python中定义一个函数很简单,Python从其它函数编程语言中借鉴了很多有用的思路用来简化 ...

  7. Python程序设计 第7章:Python面向对象编程

    Python程序设计 第7章:Python面向对象编程 7.1 面向对象编程概述 7.1.1 OOP的产生 7.1.2 OOP核心思想 7.1.3 OOP特征 7.2 类和对象 7.2.1 类的创建 ...

  8. linux 【完结篇】第六章 shell编程及自动化运维--三剑客

    linux 第六章 shell编程及自动化运维–三剑客 一.正则表达式 1.前言 名词解释: 正则表达式是一种字符模式,用于在查找过程中匹配指定的字符.在大多数程序里,正则表达式都被置于2个正斜杠之间 ...

  9. Python程序设计 第4章:复合数据类型

    Python 是全球范围内最受欢迎的编程语言,学好Python将对个人职业生涯产生很大的助力,因此推出Python程序设计系列文章: Python程序设计 第1章:初识Python Python程序设 ...

最新文章

  1. Express.js 中的 Sessions 如何工作?(译)
  2. java实现生产者消费者问题(转)
  3. 安装maven之后,cmd提示mvn不是内部命令的解决办法
  4. DataTable的Ajax使用
  5. 与其他Javascript类库冲突解决方案
  6. SAP Spartacus Media Component
  7. 支持分布式数据库同步操作的一个设计点:主键问题
  8. SQL Server 中 JSON_MODIFY 的使用
  9. win7纯净版镜像系统安装教程
  10. 在web开发中,如何保证对象只被创建一次之单例应用系列?
  11. NServiceBus主机
  12. thinkphp 连接sql server
  13. Bailian3709 2进制转化为3进制【进制】
  14. python有趣的代码-趣味至上主义:这5个有趣的Python库带你花式编码
  15. 我与电脑1-初识电脑
  16. MyBatis中解决字段名与实体类属性名不相同的冲突
  17. ISO8601时间格式转换为Date
  18. 如何准备校招技术面试
  19. 关于视频流媒体服务器的学习记录
  20. android设置应用字体大小,在Android应用程序改变的TextView的字体大小从原始设置更改字体大小(Font size...

热门文章

  1. scala Object关键字声明的类直接调用方法、伴生对象
  2. [状压dp] 最短Hamilton路径(模板题+状压dp)
  3. 51Nod 1674——区间的价值 V2
  4. [心情] 随口说,随心想
  5. Linux:Nginx总结
  6. 求4x4 矩阵的逆矩阵
  7. 数据化运营必备的10款工具
  8. 怎样用css设置横向的滚动条,如何用CSS设置滚动条颜色?
  9. Linux文件系统类型介绍
  10. 基于 vue2 + vuex2 构建一个具有 40 多个页面的大型单页面应用 饿了么