Python3 编程实例(26 - 30)

简介: Python3 编程实例(26 - 30)

实例 26

题目

利用递归方法求 5!。


分析

递归公式:f ( n ) = f ( n − 1 ) ∗ n f(n) = f(n - 1) * nf(n)=f(n−1)∗n;


代码


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2021/4/10 10:07
# @Author  : cunyu
# @Email   : 747731461@qq.com
# @Site    : https://cunyu1943.site
# 公众号    : 村雨遥
# @File    : 26.py
# @Software: PyCharm
# @Desc    : 练习实例26
def fact(num):
    if num == 0:
        return 1
    else:
        return fact(num - 1) * num
if __name__ == '__main__':
    print(fact(5))

image.png

实例 27

题目

利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。

分析

注意边界条件(即字符串长度为 0 时);

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2021/4/10 10:09
# @Author  : cunyu
# @Email   : 747731461@qq.com
# @Site    : https://cunyu1943.site
# 公众号    : 村雨遥
# @File    : 27.py
# @Software: PyCharm
# @Desc    : 练习实例27
def reverseString(str, length):
    if (length == 0):
        return
    print(str[length - 1], end='')
    reverseString(str, length - 1)
if __name__ == '__main__':
    str = input("输入字符串\n")
    reverseString(str, len(str))

image.png实例 28

题目

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?


分析

利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。


代码


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2021/4/10 10:16
# @Author  : cunyu
# @Email   : 747731461@qq.com
# @Site    : https://cunyu1943.site
# 公众号    : 村雨遥
# @File    : 28.py
# @Software: PyCharm
# @Desc    : 练习实例28
def age(num):
    if num == 1:
        return 10
    else:
        return 2 + age(num - 1)
if __name__ == '__main__':
    print("第五个人的年龄:" + str(age(5)))

image.png

实例 29

题目

给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

分析

重点在于如何将这个正整数分解,然后再逆序打印即可;

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2021/4/10 10:19
# @Author  : cunyu
# @Email   : 747731461@qq.com
# @Site    : https://cunyu1943.site
# 公众号    : 村雨遥
# @File    : 29.py
# @Software: PyCharm
# @Desc    : 练习实例29
if __name__ == '__main__':
    num = int(input("输入一多于 5 位的正整数\n"))
    one = num % 10
    ten = num % 100 // 10
    hundred = num % 1000 // 100
    thousand = num % 10000 // 1000
    million = num // 10000
    if million != 0:
        print("5 位数:", one, ten, hundred, thousand, million)
    elif thousand != 0:
        print("4 位数:", one, ten, hundred, thousand)
    elif hundred != 0:
        print("3 位数:", one, ten, hundred)
    elif ten != 0:
        print("2 位数:", one, ten)
    elif one != 0:
        print("1 位数:", one)

image.png

实例 30

题目

一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相同。

分析

和上一个例子一样,重点在于分解该整数,然后再判断个位和万位,十位和千位是否相同;

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @version : 1.0
# @Time    : 2021/4/10 10:30
# @Author  : cunyu
# @Email   : 747731461@qq.com
# @Site    : https://cunyu1943.site
# 公众号    : 村雨遥
# @File    : 30.py
# @Software: PyCharm
# @Desc    : 练习实例30
if __name__ == '__main__':
    num = int(input("输入一个 5 位的正整数\n"))
    one = num % 10
    ten = num % 100 // 10
    hundred = num % 1000 // 100
    thousand = num % 10000 // 1000
    million = num // 10000
    if one == million and ten == thousand:
        print("%d 是一个回文数" % num)
    else:
        print("%d 不是一个回文数" % num)

image.png

目录
相关文章
|
19天前
|
测试技术 开发者 Python
Python 编程中的装饰器深入解析
【8月更文挑战第1天】本文将通过实例和代码演示,深入探讨 Python 中装饰器的概念、用法和高级应用。我们将从基础开始,逐步过渡到如何自定义装饰器,并展示其在日志记录、性能测试等场景下的实际用途。文章最后还将讨论装饰器的常见误区和最佳实践。
|
7天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
|
5天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
|
3天前
|
数据采集 存储 人工智能
掌握Python编程:从基础到进阶的实用指南
【8月更文挑战第17天】 本文旨在通过浅显易懂的语言和实际案例,为初学者和有一定基础的开发者提供一条清晰的Python学习路径。我们将从Python的基本语法入手,逐步深入到面向对象编程、数据科学应用及网络爬虫开发等高级主题。每个部分都配备了代码示例和实操建议,确保读者能够将理论知识转化为实际能力。无论你是编程新手,还是希望提升Python技能的开发者,这篇文章都将为你打开一扇通往高效编程世界的大门。
7 2
|
7天前
|
Python
python Process 多进程编程
python Process 多进程编程
18 1
|
12天前
|
存储 数据挖掘 程序员
揭秘Python:掌握这些基本语法和数据类型,你将拥有编程世界的钥匙!
【8月更文挑战第8天】Python是一种高级、解释型语言,以简洁的语法和强大的功能广受好评。本文从基本语法入手,强调Python独特的缩进规则,展示清晰的代码结构。接着介绍了Python的主要数据类型,包括数值、字符串、列表、元组、集合和字典,并提供了示例代码。通过这些基础知识的学习,你将为深入探索Python及其在文本处理、数据分析等领域的应用打下坚实的基础。
26 3
|
14天前
|
Python
揭秘!Python系统编程里那些让代码自由穿梭的神奇代码行
【8月更文挑战第6天】在Python编程中,一些简洁有力的代码构造让程序更加灵动高效。列表推导式能一行生成列表,如`squares = [x**2 for x in range(10)]`。`with`语句确保资源自动释放,例`with open('example.txt', 'r') as file:`。`lambda`函数便于快速定义小函数,`map(lambda x: x + 1, numbers)`即可完成列表映射。
28 4
|
14天前
|
API C语言 开发者
Python如何成为跨平台编程的超级巨星:系统调用深度探索
【8月更文挑战第6天】Python凭借简洁的语法和强大的库支持,在编程领域中脱颖而出。其跨平台特性是基于CPython等解释器的设计理念,使得Python程序能在不同操作系统上运行而无需修改代码。Python标准库提供的抽象层隐藏了系统间的差异,加之ctypes等扩展机制,使开发者能高效地编写兼容性强且性能优异的应用。例如,在Windows上利用ctypes调用GetSystemTime系统API获取当前时间,展现了Python深入系统底层的强大能力和灵活性。随着技术演进,Python将继续巩固其作为首选编程语言的地位。
19 3
|
16天前
|
安全 开发者 Python
跨越编程孤岛,构建互联大陆:深入探索Python进程间通信的奥秘,解锁高效协作新纪元!
【8月更文挑战第3天】在编程领域,Python 因其简洁强大而广受欢迎。但随着项目规模扩大,单进程难以应对复杂需求,此时多进程间的协同就显得尤为重要。各进程像孤岛般独立运行,虽提升了稳定性和并发能力,但也带来了沟通障碍。为解决这一问题,Python 提供了多种进程间通信(IPC)方式,如管道、队列和套接字等,它们能有效促进数据交换和任务协作,使各进程像大陆般紧密相连。通过这些机制,我们能轻松搭建起高效的多进程应用系统,实现更加复杂的业务逻辑。
18 2
|
17天前
|
开发者 Python
Python编程中的装饰器深度解析
【8月更文挑战第2天】装饰器在Python中是一种强大的工具,它允许我们在不修改原函数代码的情况下增加函数的功能。本文将深入探讨Python装饰器的工作原理,并通过实际的代码示例展示如何创建和应用装饰器。我们将从基础的装饰器概念出发,逐步过渡到更复杂的使用场景,包括带参数的装饰器和嵌套装饰器。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解和利用Python装饰器来提升你的代码效率和可读性。
10 1