【Python】基础练习题

这篇具有很好参考价值的文章主要介绍了【Python】基础练习题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

程序控制结构练习题

1)从random库中选取相应的函数,用蒙特卡罗方法(统计实验方法)求解pi。

import random

def estimate_pi(num_experiments):
    num_points_in_circle = 0
    num_total_points = 0

    for _ in range(num_experiments):
        x = random.uniform(-1, 1)
        y = random.uniform(-1, 1)
        distance = x**2 + y**2

        if distance <= 1:
            num_points_in_circle += 1

        num_total_points += 1

    pi_estimate = 4 * num_points_in_circle / num_total_points
    return pi_estimate

# 设置实验次数
num_experiments = 1000000

# 估算圆周率
pi_estimate = estimate_pi(num_experiments)
print("蒙特卡罗估算的圆周率: ", pi_estimate)

2)一个笼中共有鸡和兔15只,它们的脚一共有40只,问有多少只鸡?有多少只兔?

def solve_chicken_and_rabbit(total_count, total_legs):
    # 循环遍历可能的鸡的数量,从0到总数
    for chicken_count in range(total_count + 1):
        rabbit_count = total_count - chicken_count
        # 判断当前的鸡兔数量是否符合脚的总数
        if (2 * chicken_count + 4 * rabbit_count) == total_legs:
            return chicken_count, rabbit_count

    # 如果没有找到符合条件的结果,则返回 None
    return None


# 输入总数和脚的总数
total_count = 15
total_legs = 40

# 解决问题并打印结果
solution = solve_chicken_and_rabbit(total_count, total_legs)
if solution:
    chicken_count, rabbit_count = solution
    print("鸡的数量:", chicken_count)
    print("兔子的数量:", rabbit_count)
else:
    print("无解")

3) “猴子吃桃”问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想吃时, 见只剩一个桃子了。编写程序求第一天猴子共摘了多少个桃子?(1534)

def calculate_total_peaches(days):
    peaches = 1
    for _ in range(days):
        peaches = (peaches + 1) * 2
    return peaches

# 输入天数
days = 9

# 求解第一天的桃子数量
total_peaches = calculate_total_peaches(days)
print("第一天猴子共摘了", total_peaches, "个桃子")

4)羊车门问题。有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。靖问:参赛者更换选择后能否增加猜中汽车的机会?请用random库对这个随机事件进行实验,分别输出参赛者改变选择和坚持选择获胜的机率。(进行1000次随机实验,结果以百分制概率输出。近似33.3%,66.6%)

import random

def simulate_car_goat_game():
    # 初始化三扇门,其中一扇有汽车,其余有山羊
    doors = ['car', 'goat', 'goat']
    # 参赛者随机选择一扇门
    player_choice = random.choice([0, 1, 2])
    # 主持人在未选中的门中选择一扇有山羊的门
    host_choice = random.choice([i for i in range(3) if i != player_choice and doors[i] == 'goat'])
    # 参赛者更换选择,选择另一扇未被选择过的门
    player_choice = random.choice([i for i in range(3) if i != player_choice and i != host_choice])
    # 判断最终参赛者的选择结果
    if doors[player_choice] == 'car':
        return 'switch_win' # 参赛者更换选择获胜
    else:
        return 'stick_win' # 参赛者坚持选择获胜

def calculate_win_probabilities(num_simulations):
    switch_wins = 0
    stick_wins = 0

    for _ in range(num_simulations):
        result = simulate_car_goat_game()
        if result == 'switch_win':
            switch_wins += 1
        elif result == 'stick_win':
            stick_wins += 1

    switch_win_prob = (switch_wins / num_simulations) * 100
    stick_win_prob = (stick_wins / num_simulations) * 100

    print("参赛者更换选择获胜的机率:{:.1f}%".format(switch_win_prob))
    print("参赛者坚持选择获胜的机率:{:.1f}%".format(stick_win_prob))

# 进行1000次随机实验
num_simulations = 1000
calculate_win_probabilities(num_simulations)

5)只能由1和它本身整除的整数被称为素数;若一个素数从左向右读与从右向左读是是相同的数,则该素数为回文素数。编程求解2~1000内的所有回文素数文章来源地址https://www.toymoban.com/news/detail-731266.html

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

def is_palindrome(num):
    return str(num) == str(num)[::-1]

palindrome_primes = []

for num in range(2, 1001):
    if is_prime(num) and is_palindrome(num):
        palindrome_primes.append(num)

print("2~1000内的所有回文素数:")
print(palindrome_primes)

到了这里,关于【Python】基础练习题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python基础练习题--第三章 控制结构

    目录 1025:【例3.1】购买笔记本 1026:【例3.2】判断奇偶 1027:【例3.3】区间测速 1028:【例3.4】飞船速度 1029:练3.1最大优惠价 1030:练3.2判断闰年 1031:练3.3最适宜运动心率2 1032:【例3.5】计程票 1033:【例3.6】BMI健康信息 1034:练3.4  区间测速2 1035:练3.5  购买笔记本2 【题

    2024年02月07日
    浏览(44)
  • 爆肝更新 Python 100道基础入门练习题(附答案)

    前言 大家早好、午好、晚好吖 ❤ ~ 更多精彩内容、资源皆可点击文章下方名片获取此处跳转 实例001:数字组合 题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。 实例002:“个税计算”

    2024年02月07日
    浏览(34)
  • HarmonyOS云开发基础认证练习题

    HarmonyOS应用开发者基础认证练习题 HarmonyOS应用开发者高级认证练习题 HarmonyOS云开发基础认证练习题 刚看到前几天有位朋友评论问有没有HarmonyOS云开发基础认证的题,粗略看了看感觉还行,老规矩1h2min速通。不过关于云开发华子只开放了基础认证,后续如果华子开放了高级和

    2024年02月09日
    浏览(38)
  • HarmonyOS云开发基础认证---练习题二

    【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Function中,监听事件源上的指

    2024年02月05日
    浏览(35)
  • HarmonyOS云开发基础认证---练习题一

    【判断题】 0/2 应用架构的演进依次经历了微服务架构、单体架构、Serverless架构等阶段。 错误(False) 【判断题】 2/2 认证服务在绑定微信账号后就不能再绑定QQ账号了。 错误(False) 【判断题】 2/2 自己构建的账号系统可以加入到认证服务中。 正确(True) 【判断题】 2/2 云函数开发

    2024年02月07日
    浏览(33)
  • C语言循环结构一些重要的练习题(较为基础的)

    循环结构 1.求累加和问题 2.输出字母A-Z 3.输入正整数n,计算并输出n! 4.将一个正整数倒序输出 5.打印九九乘法表 6.输出三角形、菱形 7.continue语句和break语句 8.输出100-200之间不能被3整除的数 9.求Pi的值,根据 10.求斐波那契数列前k项的值 11.判断一个数是否为素数 12.输出特定

    2023年04月08日
    浏览(28)
  • 【练习题】python列表

    1. 基础题 已知一个数字列表,打印列表中所有的奇数 已知一个数字列表,打印列表中所有能被能被3整除但是不能被2整除的数 已知一个数字列表,计算所有偶数的和 已知一个数字列表,统计列表中十位数是 1 的数的个数 已知一个列表,获取列表中下标为奇数是所有元素(从

    2024年02月05日
    浏览(32)
  • python文件练习题

    【问题描述】 从一个文本文件内读入任意多个学生的分数,求出最高分,最低分和平均分存入文件result.txt内。 【输入形式】 一个文件,文件中分数之间由换行隔开,输入的文件名为grade.txt。输入的分数都是整数。 【输出形式】 计算出grade.txt中所有分数的最高分,最低分和

    2024年02月03日
    浏览(32)
  • Python练习题

    【程序 1】 题目:有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 使用 permutations函数 【程序 3】 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 【程序 4】 题目:输入某年某月某日,判

    2024年02月08日
    浏览(26)
  • 24道Python面试练习题

    答:在函数式编程中,函数是基本单位,变量只是一个名称,而不是一个存储单元。除了匿名函数外,Python还使用fliter(),map(),reduce(),apply()函数来支持函数式编程。 答:匿名函数,也就是lambda函数,通常用在函数体比较简单的函数上。匿名函数顾名思义就是函数没有名字,因

    2023年04月20日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包