首页 > 编程语言 >python实现百钱百鸡之优化版​

python实现百钱百鸡之优化版​

时间:2023-09-05 23:01:45浏览次数:37  
标签:python 百钱 小鸡 num 价钱 input 百鸡 hen cock

前言

上一篇文章python实现百钱百鸡问题,用for循环实现了百钱百鸡的经典问题,文末简单说了下优化版的大体思路,这篇文章实现下。

功能实现

要求根据用户输入的购买钱数、公鸡、母鸡和小鸡的数量(小鸡按照3只作为一个整体来售卖,公鸡和母鸡都是按照一只来售卖),所买鸡的总数为100,给用户计算出所有可行方案,当打印出所有可行方案后,用户自行判断是否接着操作。

解答思路

1:使用input()语句获取用户输入的信息

2:获取用户信息后,利用math.ceil()计算出各种鸡能够购买的最大数量+1,这里加1是因为后面需要用到range(start,end)方法,其中start取得到,end取不到。

3:使用range()方法,在指定购买数量范围内,遍历出各种鸡可以买的数量;小鸡的数量只需要用

100-公鸡数量-母鸡数量

4:如果公鸡的价钱、母鸡的价钱和小鸡的价钱总和是用户所带的钱数,则打印出所有可行方案(小鸡的价钱是按照三只一个整体来计算价钱的,因此是小鸡的总价钱=(小鸡的总数/3)*三只小鸡的价钱

5:利用while...continue和if判断语句,实现用户自主判断是否接着进行操作。

程序实现

#写进循环,采用while循环
import math
# 函数plan()
def plan():
    while True:
#获取用户输入的价钱数据
        money = int(input('请输入您需要购买的总价钱:'))
        cock = int(input('请输入一只公鸡多少钱:'))
        hen = int(input('请输入一只母鸡多少钱:'))
        chick = int(input('请输入三只小鸡多少钱:'))
#计算出公鸡和母鸡能够购买的最大数量+1
        cock_end = math.ceil(money/cock)
        hen_end = math.ceil(money/hen)
#for循环遍历
        for cock_num in range(0,cock_end):
            for hen_num in range(0,hen_end):
                chick_num = 100-cock_num-hen_num
#判断方案的可行性
                if cock_num*cock + hen_num*hen + (chick_num/3)*chick == money:
                    print('公鸡: %d只,母鸡: %d只,小鸡: %d只' % (cock_num , hen_num, chick_num))
        ans = input('请问您还需要进行操作吗?(y/n)')
#判断是否接着进行操作
        if ans=='y':
            continue
        else:
            break
plan()

最终效果

python实现百钱百鸡之优化版​_while语句

总结

此程序中用到的知识点比较简单,主要就是for循环进行各种鸡的购买数量取值范围的遍历;while语句实现用户自主判断;math.ceil()函数向上取整的应用;range()方法在指定范围内进行遍历。


标签:python,百钱,小鸡,num,价钱,input,百鸡,hen,cock
From: https://blog.51cto.com/u_15928170/7380659

相关文章

  • 一行代码美化Python异常输出
     安装python-mpipinstallpretty_errors使用先来试试一个简单的错误。importpretty_errorsprint(1/0) 如果不使用pretty_errors报错信息如下:   bug少的时候,可能没有什么太大区别,当报错信息铺满一整页,差距就体现出来了 个性化配置如需......
  • Python开发之pip3
    简介pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。命令使用查看pip3版本pip--version下载安装包使用以下命令pipinstallsome-package-name例如我们安装numpy包pipinstallnumpy我们也可以轻易地通过以下的命令来移除软件......
  • 《python从入门到实践》第七章习题记录
    点击查看代码#7-1汽车租赁:编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“LetmeseeifIcanfindyouaSubaru”。car=input("whichcardoyoulike?>")print(f"LetmeseeifIcanfindyoua{car}")#7-2餐馆订位:编写一个程序,询问用户有多少人用......
  • 国内镜像安装Python解释器及扩展包
    一、下载Python解释器1、下载地址官网(下载速度很慢):WelcometoPython.org淘宝镜像(推荐):CNPMBinariesMirror(npmmirror.com)2、下载方法前往淘宝镜像站,选择版本,这里以Python3.10.10为例。如果是64位的系统,点击python-3.10.10-amd64.exe,等待下载完成。3、安装Python解释......
  • Python开发实例(十一)单词记忆游戏:编写一个简单的游戏,测试用户对一组随机单词的记忆能力
    在这个实例中,我们将创建一个简单的单词记忆游戏。游戏的规则是随机展示一组单词,然后要求用户在一定时间内尽可能多地记住这些单词。时间到后,再询问用户输入这些单词。最后,计算并显示用户正确记住的单词数量。下面是单词记忆游戏的Python程序:pythonCopycodeimportrandomimport......
  • python开发之微信的二次开发
    简要描述:根据消息回调收到的xml转发链接消息,适用于同内容大批量发送,可点击此处查看使用方式,第2大类4小节请求URL:http://域名地址/forwardUrl请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是......
  • python 对象数组,根据指定字段条件过滤数据,并排序升序
    在Python中,你可以使用`filter()`函数和`sorted()`函数来根据指定字段的条件过滤并排序对象数组。以下是示例代码,演示如何根据指定字段条件过滤并按升序排序对象数组:```pythonobj_arr=[{'id':1,'name':'John'},{'id':2,'name':'Jane'},{'id':......
  • python 数字数组升序排序
    在Python中,你可以使用内置的`sorted()`函数对数字数组进行升序排序。以下是示例代码,演示如何对数字数组进行升序排序:```pythonnums=[5,3,8,2,1,9,4]sorted_nums=sorted(nums)print(sorted_nums)#输出:[1,2,3,4,5,8,9]```在这个示例中,我们使用`sorted()......
  • [编程基础] Python内置模块collections使用笔记
    collections是Python标准库中的一个内置模块,它提供了一些额外的数据结构类型,用于增强Python基础类型如列表(list)、元组(tuple)和字典(dict)等。以下是对collections模块中主要数据结构类的概述:namedtuple:命名元组,创建一个带有名称的tuple,并且可以通过名称访问元素。deque:双端队列,可......
  • python pip安装源使用(记录需要放置的文件位置)
     win系统下:资源管理器地址栏(或任意文件夹地址栏)中输入%appdata%回车进入该目录。 在此文件夹下新建pip文件夹,然后在文件夹中添加pip.ini文件  文件写入:[global]trusted-host=nexus.XXXXXXX.cnindex-url=http://nexus.XXXXXXX.cn/repositor......