《Python程序设计》 第六章 函数+编程题解
目录
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程序设计》 第六章 函数+编程题解相关推荐
- Python程序设计 第六章 函数(续
复习 1. 10进制 ⇒\Rightarrow⇒ 2进制 除2取余,从低位到高位存储到字符串中,从高位到低位 def d2b(n):if n>1:d2b(n//2)print(n%2,end=' ...
- Python程序设计第六章测验总结
第六章 文件 6.1 文件操作与英汉字典 1.打开一个已有文件,然后在文件末尾添加信息,正确的打开方式是__ A.'r' B.'w' C.'a' D.'w+' 解:C 2.如果文件不存在,下面的哪一种 ...
- 《零基础学python》---第六章 函数
创建一个函数 创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具.使用def关键字实现,具体的语法格式如下: def functionname([parameterlist]):['''co ...
- 程序设计基础(CC++) 戴波、张东祥 第六章 函数 编程作业
1函数实现学生管理系统(100分) 题目内容: 使用函数编写学生管理系统 其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,0表示女). 生日(19850101(年月日)). ...
- python第六章函数课后答案_浙大PTA-Python题库 函数题(6-1~6-6)题解
其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...
- Python 精要参考(第二版) 第六章 函数与函数编程
1. 第六章 函数与函数编程 为便于代码维护,绝大多数子程序都被分解并重新组织为函数以使代码模块化. 在 Python中定义一个函数很简单,Python从其它函数编程语言中借鉴了很多有用的思路用来简化 ...
- 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 类的创建 ...
- linux 【完结篇】第六章 shell编程及自动化运维--三剑客
linux 第六章 shell编程及自动化运维–三剑客 一.正则表达式 1.前言 名词解释: 正则表达式是一种字符模式,用于在查找过程中匹配指定的字符.在大多数程序里,正则表达式都被置于2个正斜杠之间 ...
- Python程序设计 第4章:复合数据类型
Python 是全球范围内最受欢迎的编程语言,学好Python将对个人职业生涯产生很大的助力,因此推出Python程序设计系列文章: Python程序设计 第1章:初识Python Python程序设 ...
最新文章
- Express.js 中的 Sessions 如何工作?(译)
- java实现生产者消费者问题(转)
- 安装maven之后,cmd提示mvn不是内部命令的解决办法
- DataTable的Ajax使用
- 与其他Javascript类库冲突解决方案
- SAP Spartacus Media Component
- 支持分布式数据库同步操作的一个设计点:主键问题
- SQL Server 中 JSON_MODIFY 的使用
- win7纯净版镜像系统安装教程
- 在web开发中,如何保证对象只被创建一次之单例应用系列?
- NServiceBus主机
- thinkphp 连接sql server
- Bailian3709 2进制转化为3进制【进制】
- python有趣的代码-趣味至上主义:这5个有趣的Python库带你花式编码
- 我与电脑1-初识电脑
- MyBatis中解决字段名与实体类属性名不相同的冲突
- ISO8601时间格式转换为Date
- 如何准备校招技术面试
- 关于视频流媒体服务器的学习记录
- android设置应用字体大小,在Android应用程序改变的TextView的字体大小从原始设置更改字体大小(Font size...