Python经典练习题(二)

news2024/11/25 2:25:44

文章目录

  • 🍀题目一
  • 🍀第二题
  • 🍀第三题
  • 🍀第四题
  • 🍀第五题

🍀题目一

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

本题一出或许大家回想到鸡兔同笼问题,但是这题和那个没啥关联,这题的核心思想在于斐波那契数列
下面进行代码演示

rabbits = [1, 1]

# 计算兔子总数的月数
months = 24  # 假设计算24个月的兔子总数,你可以根据需要调整月数

# 计算每个月的兔子总数
for i in range(2, months):
    new_rabbits = rabbits[i - 1] + rabbits[i - 2]  # 新生的兔子数等于前两个月的兔子总数之和
    rabbits.append(new_rabbits)

# 输出每个月的兔子总数
for i, total in enumerate(rabbits, start=1):
    print(f"第{i}个月的兔子总数为:{total}")

运行结果如下

在这里插入图片描述

这里我再进行说明一下,第一个月第二个月小兔子成长,第三个月小兔子长大了,可以下崽了,所以第三个月有两对,第四个月那个大兔子依旧可以下,所以是三对,第五个月大兔子依旧在下崽,但是它们第一批生的小兔子也可以下崽了,所+2变成了五队,接下来写在纸上,就会奇迹般的发现这好像和斐波那契数列这么像呢!


🍀第二题

判断101-200之间有多少个素数,并输出所有素数。

本题也是较为常见的经典题目,接下来我们采用两种解法

解法一:使用嵌套循环

这个方法使用两个嵌套循环来检查每个数字是否为素数。对于每个数字,它会检查从2到该数字本身之间是否有除了1和它自身以外的因子。如果没有其他因子,那么它就是素数。

# 方法一:使用嵌套循环判断素数
prime_numbers = []  # 存储素数的列表

for num in range(101, 201):  # 遍历101到200之间的所有数字
    is_prime = True  # 假设当前数字是素数

    # 判断是否为素数
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:  # 如果有除1和自身以外的因子
            is_prime = False
            break

    if is_prime:
        prime_numbers.append(num)

# 输出所有素数
print("101到200之间的素数有以下", len(prime_numbers), "个:")
print(prime_numbers)

运行结果如下

在这里插入图片描述

解法二:使用函数封装判断素数的逻辑

这个方法将判断素数的逻辑封装为一个函数,然后通过循环调用这个函数来检查每个数字是否为素数。

这个方法其实和上个大差不差

# 方法二:使用函数封装判断素数的逻辑
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True

prime_numbers = []  # 存储素数的列表

for num in range(101, 201):  # 遍历101到200之间的所有数字
    if is_prime(num):
        prime_numbers.append(num)

# 输出所有素数
print("101到200之间的素数有以下", len(prime_numbers), "个:")
print(prime_numbers)

运行结果如下
在这里插入图片描述


🍀第三题

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

本题较为简单

for num in range(100, 1000):  # 遍历所有的三位数
    # 获取百位、十位和个位上的数字
    hundreds = num // 100
    tens = (num % 100) // 10
    ones = num % 10

    # 计算立方和
    sum_of_cubes = hundreds ** 3 + tens ** 3 + ones ** 3

    # 判断是否为水仙花数
    if sum_of_cubes == num:
        print(num)

运行结果如下
在这里插入图片描述


🍀第四题

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

本题主要是通过反复整除,循环找到质因数,其中外循环必须大于1,因为任何数都可以被1除

def prime_factors(n):
    factors = []  # 存储质因数的列表
    divisor = 2  # 初始除数为2

    while n > 1:
        while n % divisor == 0:
            factors.append(divisor)  # 将当前除数加入质因数列表
            n //= divisor  # 更新n的值,除以当前除数

        divisor += 1  # 尝试下一个除数

    return factors

# 输入正整数
number = int(input("请输入一个正整数:"))

# 计算质因数
factors = prime_factors(number)

# 输出结果
if len(factors) == 0:
    print(f"{number}没有质因数,它本身就是一个质数。")
else:
    print(f"{number}的质因数分解为:{' * '.join(map(str, factors))}")

运行结果如下
在这里插入图片描述

🍀第五题

编写一个判断学生成绩的Python代码

本题主要是使用选择语句,但是注意input这里,输入的成绩可以是float,毕竟有99.5这种分数,所以要强制转换成float类型

def calculate_grade(score):
    if 90 <= score <= 100:
        return 'A'
    elif 80 <= score < 90:
        return 'B'
    elif 70 <= score < 80:
        return 'C'
    elif 60 <= score < 70:
        return 'D'
    elif 0 <= score < 60:
        return 'F'
    else:
        return '无效分数'

# 输入学生分数
score = float(input("请输入学生的分数:"))

# 计算并输出等级
grade = calculate_grade(score)
print(f"学生的等级为:{grade}")

运行结果如下
在这里插入图片描述

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1033796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统笔记二】链接阶段ELF文件

链接阶段&#xff1a;符号解析 链接阶段主要包含&#xff1a; 符号解析重定位 一般情况下&#xff0c;每个 C 文件可以看成一个程序模块&#xff0c;比如下边的main.c就是一个程序模块 #include <stdio.h>extern int shared; int sum(int *a, int n); int array[2] …

【C语言】指针的进阶(四)—— 企业笔试题解析

笔试题1&#xff1a; int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】在x86环境下运行 【解析】 &a是取出整个数组的地址&#xff0c;&a就表示整个数组&#xff0c;因此…

oracle11g升级12c

目录 背景&#xff1a;oracle11.2.0.4升级至12.2.0.1版本 当前数据库版本 1&#xff09;上传12g安装包&#xff0c;解压开始安装 2&#xff09;不勾选 3&#xff09;升级数据库 4&#xff09;下一步 5&#xff09;修改路径11.2.0换成12.2.0 6&#xff09;下一步 7&…

shardingjdbc分库分表数据均衡性讨论

问题引入 最近一个业务系统中&#xff0c;因为数据量很大&#xff0c;经过技术选型&#xff0c;综合权衡选择了sharding-Jdbc&#xff0c;本文主要讨论的是分库分表的表达式 我们有一个批次总表A&#xff0c;还有一个明细表B&#xff0c;我们需要对明细表B进行水平拆分&#…

论文总结《A Closer Look at Few-shot Classification Again》

原文链接 A Closer Look at Few-shot Classification Again 摘要 这篇文章主要探讨了在少样本图像分类问题中&#xff0c;training algorithm 和 adaptation algorithm的相关性问题。给出了training algorithm和adaptation algorithm是完全不想关的&#xff0c;这意味着我们…

瑞芯微RK3568:Debian系统如何安装Docker

本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker&#xff0c;该方法适用于RK356X全系产品。 HD-RK3568-IOT评估板基于HD-RK3568-CORE 工业级核心板设计&#xff08;双网口、双CAN、5路串口&#xff09;&#xff0c;接口丰富&#xff0c;适用于工业现场应用需求&#xff…

怒刷LeetCode的第13天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;滑动窗口 方法二&#xff1a;哈希表和双指针 方法三&#xff1a;动态规划 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;深度优先搜索&#xff08;DFS&#xff09; 方法二&#xff1a;树结构 …

rv1126-rv1109-RkLunch.sh

RkLunch.sh是个脚本,来自哪里 书接上回:rv1126-rv1109-瑞芯微的 IPC 程序_旋风旋风的博客-CSDN博客 修改之后 屏蔽了两行之后,就没有开机自启rklunch了: # [ -f /oem/RkLunch.sh ] && source /oem/RkLunch.sh 就是运行source /oem/RkLunch.sh 这里就跑了RkL…

基于微信小程序的驾校报名系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境说明用户微信小程序端的主要功能有&#xff1a;驾校教练的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考源码…

动手学深度学习(pytorch版)第二章-2.2数据预处理Note-pandas

1. 创建 import osos.makedirs(os.path.join(.., data), exist_okTrue) data_file os.path.join(.., data, house_tiny.csv) with open(data_file, w) as f:f.write(NumRooms,Alley,Price\n) # 列名f.write(NA,Pave,127500\n) # 每行表示一个数据样本f.write(2,NA,106000\…

平板用的触控笔什么牌子好?性价比高的触控笔推荐

随着平板电脑的普及&#xff0c;越来越多用户为了方便都选择了电容笔&#xff0c;电容笔已经完全代替了我们的手指&#xff0c;并且使我们的书写速度得到了极大的提升。然而&#xff0c;因为其的独特的重力压感功能与芯片技术&#xff0c;导致了原装笔的售价一直居高不下&#…

深入探析NCV7356D1R2G 单线CAN收发器各项参数

NCV7356D1R2G深力科是一款用于单线数据链路的物理层器件&#xff0c;能够使用多种具碰撞分解的载波感测多重存取 (CSMA/CR) 协议运行&#xff0c;如博世控制器区域网络 (CAN) 2.0 版。此串行数据链路网络适用于不需要高速数据的应用&#xff0c;低速数据可在物理介质部件和微处…

用selenium和xpath定位元素并获取属性值以及str字符型转json型

页面html如图所示&#xff1a; 要使用xpath定位这个div元素&#xff0c;并且获取其属性data-config的内容值。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Optionshost127.0.0.1 port10808 …

线程安全,与多线程的应用

一、线程安全 1.什么是线程安全 2.用程序模拟线程安全问题 public class Account {private double money;//余额private String cardId;//卡号public Account() {}public Account(double money, String cardId) {this.money money;this.cardId cardId;}public void drawMone…

LeetCode 1993. 树上的操作:大模拟

【LetMeFly】1993.树上的操作&#xff1a;大模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/operations-on-tree/ 给你一棵 n 个节点的树&#xff0c;编号从 0 到 n - 1 &#xff0c;以父节点数组 parent 的形式给出&#xff0c;其中 parent[i] 是第 i 个节点的…

基于微信小程序的健康评估系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境说明用户微信端的主要功能有&#xff1a;医生微信端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考源码获取…

iOS17正式版BUG汇总:无法正常拨打电话、小组件不可用、无线充电不可用等问题

今天凌晨 iOS 17 正式版发布&#xff0c;相信不少尝鲜派已经更新体验了iOS17的新功能了&#xff0c;但还有很多用户选择观望看是否要升级&#xff0c;小编汇总了目前已更新的用户反馈的已知BUG&#xff0c;供大家查看是否要更新iOS17正式版&#xff01; 目前已知BUG&#xff1…

【LeetCode75】第六十二题 多米诺和托米诺平铺

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我一个数字n&#xff0c;表示我们有2*n大小的地板需要铺。 我们拥有两种瓷砖&#xff0c;一种的长度为2的多米诺&#xff0c;另一…

Jetpack Compose干货,如何让Compose Dialog从屏幕任意方向进入

一、前言 来个效果图&#xff0c;基于Compose Dialog&#xff0c;最终要实现的库能力如下&#xff1a; 这里使用的是这个包下面的&#xff1a; androidx.compose.ui.window.Dialog androidx.compose.material3.AlertDialog它内部调用的也是androidx.compose.ui.window.Dialog …

Centos7 安装部署 Kubernetes(k8s) 高可用集群

1&#xff1a;基础环境准备 宿主机系统集群角色服务器IP主机名称容器centos7.6master192.168.2.150ks-m1dockercentos7.6master192.168.2.151ks-n1dockercentos7.6master192.168.2.152ks-n2docker 1.1 服务器初始化及网络配置 VMware安装Centos7并初始化网络使外部可以访问*…