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如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应