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

这篇具有很好参考价值的文章主要介绍了《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 输出全排列

此解法为"动态规划",没算法底子可能比较难看懂文章来源地址https://www.toymoban.com/news/detail-467313.html


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

def fn(a, n):
    result = a
    key = a
    for index in range(1, n):
        key = key * 10 + a
        result += key
    
    return result

6-2 使用函数求素数和

import math


def prime(num):
    if num < 2:
        return False
    if num < 4:
        return True
    for index in range(2, int(math.sqrt(num)) + 1):
        if num % index == 0:
            return False

    return True


def PrimeSum(m, n):
    result = 0
    for index in range(m, n + 1):
        if prime(index):
            result += index

    return result

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

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


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

dict1 = {0: 1, 1: 1}  # 记录每一次的斐波那契数
dict2 = [1]           # 记录出现过的斐波那契数
a = b = key = 1
while b < 100001:
    key += 1
    a, b = b, a + b
    dict1[key] = b
    dict2.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 1
    return num * Jie(num - 1)


def funcos(eps, x):  # 返回cos(x)的值
    result = 1
    flag = 2
    key = pow(x, flag) / 2

    while abs(key) >= eps:
        result += key if flag % 4 == 0 else -key
        flag += 2
        key = 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 += ch

    return 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 sqrt


def SU(num):
    if num < 2:
        return False
    if num < 4:
        return True
    for index in range(3, int(sqrt(num) + 3), 2):
        if num % index == 0:
            return False
    return True


N = int(input())
key = 2

for z in range(3, N, 2):
    if SU(z) and SU(N - z):
        key = z
        break

print("%d = %d + %d" % (N, key, N - key))

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

def SUM(str1):
    if type(str1) == int:
        return str1
    if type(str1) != str:
        return sum(SUM(x) for x in str1)
    return 0


box = eval(input())
print(SUM(box))

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

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


box = eval(input())
print(SUM(box, 0))

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

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


box = 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] += 1
    elif 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:
        return
    else:
        result.append(num)
        appear[num] = 1
        for index in range(1, N + 1):
            printNum(index, deep + 1)

    if deep == N:
        for index in result:
            print(index, end='')
        print()

    appear[num] = 0
    result.pop(deep-1)


for z in range(1, N + 1):
    printNum(z, 1)

到了这里,关于《Python程序设计》 第六章 函数+编程题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python笔记:第六章函数&方法

    由系统提供,直接拿来用或是导入模块后使用 函数是结构化编程的核心 使用 def 来定义函数 为函数添加文档字符串 如果不自定义返回值,则无返回值 return 用明确的变量组来接受函数输出值,便于后期查看(序列解包),不用元组 标明函数的返回值 注意:这

    2024年02月13日
    浏览(46)
  • 第六章(7):Python中的函数—lambda表达式

    是一种匿名函数的定义方式,它可以替代函数定义的方式,使代码更加简洁和易读。Lambda表达式的语法形式为:lambda 参数列表: 表达式,其中参数列表和表达式都是可选的,但是在大多数情况下都需要用到它们。Lambda表达式通常被用在需要传递函数对象作为参数的函数中,也

    2024年02月08日
    浏览(54)
  • 《Linux操作系统编程》 第六章 Linux中的进程监控: fork函数的使用,以及父子进程间的关系,掌握exec系列函数

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(37)
  • 大一python语言程序设计,大一pta编程题python答案

    大家好,小编为大家解答大一python语言程序设计的问题。很多人还不知道大一pta编程题python答案,现在让我们一起来看看吧! 实例001:数字组合 题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析 遍历全部可能,把有重复的剃

    2024年03月22日
    浏览(84)
  • Python 程序设计入门(023)—— Python 的自定义函数

    在 Python 中,函数的应用非常广泛。比如:input()、print()、str()、range()、len() 等,这些称为 Python 的内置函数,可以直接使用。Python 支持自定义函数,即将一段有规律的、可重复使用的代码定义为函数,达到一次编写,多次使用的目的。 自定义函数使用 def 实现,语法格

    2024年02月12日
    浏览(60)
  • 打地鼠python程序设计说明,打地鼠游戏编程代码

    大家好,小编来为大家解答以下问题,python打地鼠游戏代码及图片教程,python打地鼠游戏代码及图片大全,现在让我们一起来看看吧! 导语 ​ 闲来无事: 铲屎官用废旧的纸箱,给猫主子做了一个打地鼠玩具,看,主子玩得不亦乐乎 打掉了——咦,怎么还有,怎么还有两个

    2024年03月27日
    浏览(50)
  • Python 程序设计入门(018)—— format() 函数的用法详解

    format() 函数可以对数据进行格式化处理,将值转换为由 format_spec 控制的【格式化】表示形式。format() 函数的语法格式如下: 说明: (1)value:要转换的数据。 (2)format_spec:格式化解释,取决于值参数的类型; (3)默认情况下,format_spec 是一个空字符串,通常与调用 st

    2024年02月03日
    浏览(42)
  • Qt第六章 多窗口编程

    QMessageBox继承自QDialog ,是一个Qt内置的用来展示 信息或询问用户一个问题的模态对话框。 预设了四种类型: 像那些已经写好的窗口,这些现成的东西都会有一些特性,就是他们的对象都不需要new或者说他们就不需要拿到对象,他们为了方便我们使用会用一个静态成员函数就

    2024年02月07日
    浏览(40)
  • 【小黑嵌入式系统第六课】嵌入式系统软件设计基础——C语言简述、程序涉及规范、多任务程序设计、状态机建模(FSM)、模块化设计、事件触发、时间触发

    上一课: 【小黑嵌入式系统第五课】嵌入式系统开发流程——开发工具、交叉开发环境、开发过程(生成调试测试)、发展趋势 下一课: 【小黑嵌入式系统第七课】PSoC® 5LP 开发套件(CY8CKIT-050B )——PSoC® 5LP主芯片、I/O系统、GPIO控制LED流水灯的实现 1、为什么要用C语言? 理

    2024年02月06日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包