这是我初学python在咸鱼接的一个单子,所用的代码都是最简单入门的,大佬勿喷,当个乐子看,主要是一个思维方面的问题

这应该是他们的一个作业,我当时学python才3个月作业,在咸鱼接单子,当时想着是写不出来不要钱,急单就不接,多写一点就会使自己的代码水平增长,当时抱着这个想法来着

这篇文章就是基于那天的一个咸鱼的单子,要求模拟一个果园,然后计算若干年后的产量

其实当时看到这里的时候是懵逼的,我以为要用一些什么高级的库才能完成这个事情,然后我问他,规则呢,他说,规则你自己定,我一寻思自己定,那么我就开始自己制定一些规则

既然是果园计算产量的问题,我这里应用两个库一个是random库,这个库可以给我们所谓的随机,另一个是time库,这个库用来产生进度条(对于果园来说是可有可无的一个库但是,为了加一个进度条给与用户一些体验感,就像加入一个可视化的界面)。

import random
import time

好了,现在假设我有一个果园,首先提示用户,你有一片果园

print("欢迎您回来经营果园")

我有了一片果园,果园里有什么,当然有果树,我现在给定规则,我有三种果树,苹果,梨子,李子,

果树干嘛的,用来结果的,怎么结果的,怎么用代码实现,很抽象,我当时想的是建立一个函数来制定一种果树的规则,要确保随机这个特性,话不多说,先上代码

def appletree(fa, item):if item < 3:return 0elif 3 <= item < 5:win = 50 * fareturn winelif 5 <= item < 20:win = 50 * fa * 5return winelif 20 <= item < 23:win = 50 * fareturn winelif 23 <= item < 39:return random.randint(0, 6)else:return 0

在这里我制定了苹果树的规则函数,函数的输入有俩个参数,分别是fa(丰收指数),item(年份)return则是产量,我这里默认是苹果苗苗,所以年份小于3(我乱设的)无论丰收指数多大都不会有产量,在第5到20年的时候,一棵树的产量win由公式给出同理给出年份产量的计算公式,在第39年之后数老了,产量就无了

同理给出另外两棵树的规则函数,上代码!!!

def plumtree(fa, item):if item < 5:return 0elif 5 <= item < 8:win = 50 * fareturn winelif 8 <= item < 19:win = 50 * fa * 5return winelif 19 <= item < 24:win = 50 * fareturn winelif 24 <= item < 35:return random.randint(0, 3)else:return 0def peartree(fa, item):if item < 5:return 0elif 5 <= item < 6:win = 60 * fareturn winelif 6 <= item < 25:win = 60 * fa * 5return winelif 25 <= item < 30:win = 60 * fareturn winelif 30 <= item < 50:return random.randint(0, 5)else:return 0

有了树,现在需要年份往前迭代,在年份迭代里加入应用果树函数,用random随机数给出丰收指数,丰收指数和年份带入果树的规则函数就能得到产量

完整的代码:

import random
import timeprint("欢迎您回来经营果园")
year = eval(input("请输入模拟果园生长年数:"))
sum1 = eval(input("请输入您期待的果园的苹果树个数:"))
sum2 = eval(input("请输入您期待的果园的梨子树个数:"))
sum3 = eval(input("请输入您期待的果园的李子树个数:"))def timejindu():s = 50print("start".center(s // 2, "="))start = time.perf_counter()for i in range(s + 1):a = '*' * ib = '.' * (s - i)c = (i / s) * 100d = time.perf_counter() - startprint("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, d), end="")time.sleep(0.1)print("\n" + "end".center(s // 2, '-'))def appletree(fa, item):if item < 3:return 0elif 3 <= item < 5:win = 50 * fareturn winelif 5 <= item < 20:win = 50 * fa * 5return winelif 20 <= item < 23:win = 50 * fareturn winelif 23 <= item < 39:return random.randint(0, 6)else:return 0def plumtree(fa, item):if item < 5:return 0elif 5 <= item < 8:win = 50 * fareturn winelif 8 <= item < 19:win = 50 * fa * 5return winelif 19 <= item < 24:win = 50 * fareturn winelif 24 <= item < 35:return random.randint(0, 3)else:return 0def peartree(fa, item):if item < 5:return 0elif 5 <= item < 6:win = 60 * fareturn winelif 6 <= item < 25:win = 60 * fa * 5return winelif 25 <= item < 30:win = 60 * fareturn winelif 30 <= item < 50:return random.randint(0, 5)else:return 0for item in range(year):print("这是您经营果园的第:", item + 1, "年")ityuear = item + 1if ityuear > 3:farand = random.uniform(0.3, 0.6)elif ityuear >= 3 < 30:farand = random.uniform(0.6, 0.8)else:farand = random.uniform(0.05, 0.5)applesum = appletree(farand, ityuear) * sum1pearsum = peartree(farand, ityuear) * sum2plumsum = plumtree(farand, ityuear) * sum3print("今年您收获了:", applesum, "斤苹果")print("今年您收获了:", pearsum, "斤梨子")print("今年您收获了:", plumsum, "斤李子")if item + 1 <= year:print("旧的一年已经离去到新的一年了")# timejindu()a = input()

在主体迭代函数中加入进度条函数,每次迭代会给出视觉的进度条,给与用户一些好的体验

其实这仅仅是一个最简单的模拟果园,其实可以再敢想一点,接手的果园不是一个新的果园,需要调整果园里的新老树比例以及年份的比例,再加入一些随机出现的随机事件,收成就可以更进一步的随机化,可以加一些可视化的界面,加一些按键操作,差不多就成为了一个小小的游戏。

其实,兴趣是最好的老师,python这个玩意确实很有意思,一些有意思的想法,python应该都能简单的初步实现

python 模拟一个果园(给定规则的随机事件,最基本的程序设计方法学)相关推荐

  1. python模拟各大网站登陆方式,以及一些爬虫程序,麻麻再也不用担心我学爬虫啦!...

    python模拟各大网站登陆方式,以及一些爬虫程序 仅供练习使用,代码注释很详细 收集了一些各大网站登陆方式, 和一些网站的爬虫程序,有的是通过selenium登录,有的是通过抓包直接模拟登录,有的是 ...

  2. python模拟各大网站登陆方式,以及一些爬虫程序, 麻麻再也不用担心我学爬虫啦!...

    python模拟各大网站登陆方式,以及一些爬虫程序 仅供练习使用,代码注释很详细 收集了一些各大网站登陆方式, 和一些网站的爬虫程序,有的是通过selenium登录,有的是通过抓包直接模拟登录,有的是 ...

  3. python模拟一个简单的取款机_Python模拟自动存取款机的查询、存取款、修改密码等操作...

    1.工作流程 2.模拟自动存取款机的操作 代码如下: import msvcrt, sys, os #定义用星号隐藏密码输入的函数 def psw_input(): li = [] while Tru ...

  4. Python模拟一个用户登录系统

    题目:模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统 直接上代码: #模拟一个用户登录系统,用户输入用户名和密码,输入正确即可进入系统 d=['yao','123456']while ...

  5. python模拟一个简单的取款机,python简单区块链模拟详解

    最近学习了一点python,那就试着做一做简单的编程练习. 首先是这个编程的指导图,如下: 对的,类似一个简单区块链的模拟. 代码如下: class DaDaBlockCoin: #index 索引, ...

  6. 用python模拟一个文本浏览器来抓取网页

    最近在研究爬虫, 主要是用urllib和urllib2以及其他的一些标准库. 当然, urllib2的缺点就是不能看到 http请求发送了那些header, 服务器返回的信息也看不到, 只能看到htm ...

  7. python代码模拟宇宙天体_如何用python模拟一个星系?

    在一开始,还是要感谢一下凌晨晓骥. 我的这个回答相当于对他的答案的一个补充.主要目标是帮助大家安装Gadget-2,并引导你们自己画出银河碰撞的视频. 那么开始了! 首先看一下我们的目标星系碰撞模拟_ ...

  8. python写一个表白程序带时间_Python 打造最强表白程序

    单身久的我们,好像觉得一个人过也没什么的.但即使非常享受单身生活,大家也要保持"可勾搭"的待机状态,因为促进荷尔蒙分沁有益身心健康.在这个人人都在秀的时候,做为程序员我们也要操作起 ...

  9. python写一个表白程序带时间_python如何写出表白程序

    用python编表白程序的方法: 1.创建GUI窗口,实现代码的调用. 2.编写点击触发函数,实现表白程序. 具体代码如下: from tkinter import * from tkinter im ...

最新文章

  1. Android SpannableString 给TextView 设置颜色,删除线等
  2. 用计算机写作ppt文库,[百度文库.ppt
  3. node经验总结(一)
  4. boost::mpl模块AUX_ASSERT_IS_SEQ的测试程序
  5. 总结了200道经典的机器学习面试题 (附参考答案)
  6. php rsa加密实例,关于PHP语言的RSA加密实例讲解
  7. ef core mysql 生成迁移失败_EFCore + MySql codeFirst 迁移 Migration出现的问题
  8. android中弹出窗口,如何在Android中创建弹出窗口(PopupWindow)
  9. 由需求而产生的一款db导出excel的工具
  10. 一些值得注意的算法题——队列、栈
  11. 苹果电脑怎么看html5,苹果Mac系统看HTML5视频教程介绍
  12. TF400511: Your team has not defined any iterations to use as sprints
  13. atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc
  14. 最新web打印控件 破解版 下载地址
  15. cad二次开发c#学习记录2——画一条线
  16. 网络信息安全:五、GRE和IPSEC
  17. 注意力机制最新综述解读
  18. select()函数详解
  19. 在MacOS下通过brew link切换golang版本
  20. 机器学习算法——马尔可夫链蒙特卡罗(MCMC)

热门文章

  1. 【022】Vue+Springboot+mysql汽车销售系统课设(含源码、数据库、运行教程、实验报告)
  2. 《羊了个羊》牌规则堆摆放生成
  3. 组员组长mysql_第10组 Beta冲刺 (1/5)(组长)
  4. 微信公众账号开发项目小结(三)
  5. 微信公共账号开发:48001 api unauthorized解决
  6. 蓝牙mesh组网实践(配网基础篇)
  7. linux bash 漏洞 利用,Linux Bash发现重大漏洞
  8. (neo)vim下的c/c++环境搭建
  9. TortoiseSVN卸载不干净,无法安装问题
  10. 刷脸支付优势显而易见,但最突出的竟然是它