python随手小练6

2023-10-22 07:04
文章标签 python 随手 小练

本文主要是介绍python随手小练6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、汉诺塔

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

def hanoi(n, A, B, C):  # 定义汉诺塔函数,参数n是圆盘数,A、B、C是3根柱if n == 1:  # 判断圆盘数,如果等于1,递归条件print(A, '-->', C, ' ', n)  # 直接将A柱上的圆盘移动到C柱上else:  # 否则,进行递归移动hanoi(n - 1, A, C, B)  # 递归将A柱最上方的n-1个盘子落在B柱print(A, '-->', C, ' ', n)  # 输出将A柱上的圆盘移动到C柱上,也就是将A柱的最小面盘子落在C柱hanoi(n - 1, B, A, C)  # 递归将B柱上的n-1个盘子,落在C柱n = int(input("请输入层数:"))
hanoi(n, 'A', 'B', 'C')结果:
请输入层数:3
A --> C   1
A --> B   2
C --> B   1
A --> C   3
B --> A   1
B --> C   2
A --> C   1

2、输入三边的长度,求三角行的面积和周长

import math  # 导入Python的math模块,以便后面可以使用数学函数(sqrt平方根)# 输入三边长度
a = float(input("请输入第一边的长度:"))
b = float(input("请输入第二边的长度:"))
c = float(input("请输入第三边的长度:"))# 验证是否构成三角形
if a + b > c and a + c > b and b + c > a:# 计算周长C = a + b + c# 使用海伦公式计算面积s = (a + b + c) / 2area = math.sqrt(s * (s - a) * (s - b) * (s - c))print(f"这是一个三角形")print(f"三角形的周长为:{C}")print(f"三角形的面积为:{area}")
else:print(f"这不是一个三角形")结果:
请输入第一边的长度:1
请输入第二边的长度:2
请输入第三边的长度:3
这不是一个三角形请输入第一边的长度:3
请输入第二边的长度:4
请输入第三边的长度:5
这是一个三角形
三角形的周长为:12.0
三角形的面积为:6.0

3、鸡兔同笼,从上边看35个头,从下边看94只脚,请问鸡有几只,兔子有几只

def chicken_rabbit(heads,legs):# 循环遍历所有可能的鸡数量for chickens in range(heads + 1):rabbits = heads - chickenstotal_legs = 2 * chickens + 4 * rabbitsif total_legs == legs:return chickens,rabbitsreturn 0,0     #遍历完无满足返回值,返回0,无解heads = 35
legs = 94
# heads = int(input("请输入头的数量:"))
# legs = int(input("请输入腿的数量:"))
chickens,rabbits = chicken_rabbit(heads,legs)if chickens != 0:print(f"鸡有{chickens}只,兔子有{rabbits}只")
else:print("无解")结果:
鸡有23只,兔子有12只

4、编写一个函数,接收一个整数作为参数,判断该整数是否为素数(质数),并返回True或False。

def is_prime(n):for i in range(2, n):if (n % i) == 0:  #如果有除1和它本身以外有其他因数return 0return 1        #必须与循环并列,循环结束无返回就返回1# 素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
# 合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数
# 调用
number = int(input("请输入一个整数:"))
if is_prime(number):print(f"{number}是质数")
else:print(f"{number}是合数")结果:
请输入一个整数:35
35是质数
请输入一个整数:5
5是质数
请输入一个整数:6
6是合数

5、一对兔子,每对兔子从出生的第三个月开始,每个月都会生一对小兔子,而每对兔子都会在出生后的第三个月达到性成熟,之后每月都会再生一对小兔子。

问题的关键是:如果我们从一对刚满月或刚出生的兔子开始,经过多少个月后,会有多少对兔子?

说法一:第一个月兔子满月
def rabbit_number(months):# 初始化第一个月、第二个月和第三个月大的兔子对数month_1, month_2, month_3 = 1, 0, 0for i in range(1, months+1):# 计算下一个月的兔子对数temp = month_2month_2 = month_1month_1 = month_3   #以3月大兔子数量来产生1月大兔子数量month_3 = temp + month_3  #注意:原3月大的兔子需加上,用来判断1月大兔子的数量# 或者tem2, tem1, tem3 = tem1, tem3, tem2 + tem3# rabbit = (month_1 + month_2 + month_3)return month_1 + month_2 + month_3# 输入经过多少个月
months = int(input("请输入经过多少个月:"))
rabbit_number(months)
print(f"经过{months}个月后,有{rabbit_number(months)}对兔子")结果:
请输入经过多少个月:8
经过8个月后,有13对兔子

说法一:第一个月兔子满月(即结束时统计刚踏入2月大)如下图解释

#说法二:第一个月兔子刚出生
def rabbit_number(months):# 初始化第一个月、第二个月和第三个月大的兔子对数month_1, month_2, month_3 = 1, 0, 0for i in range(1, months):# 计算下一个月的兔子对数temp = month_2month_2 = month_1month_1 = month_3   #以3月大兔子数量来产生1月大兔子数量month_3 = temp + month_3  #注意:原3月大的兔子需加上,用来判断1月大兔子的数量# 或者tem2, tem1, tem3 = tem1, tem3, tem2 + tem3# rabbit = (month_1 + month_2 + month_3)return month_1 + month_2 + month_3# 输入经过多少个月
months = int(input("请输入经过多少个月:"))
rabbit_number(months)
print(f"经过{months}个月后,有{rabbit_number(months)}对兔子")结果:
请输入经过多少个月:8
经过8个月后,有9对兔子

总结:简单来说就是月份的认知,将for循环的次数+1或-1即可

这篇关于python随手小练6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259869

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数