python饮料购买_python - 饮料机,if elif与列表法
import time
import os
o1 = "超火"
o2 = "火"
o3 = "温"
o4 = "凉"
o5 = "冰"
while 1:
i=os.system("cls")
input("请投币或刷卡")
while 1:
try:
b=int(input("请选择饮料:\n1.超火\n2.火\n3.温\n4.凉\n5.冰\n0.退出\n\n请输入数字:"))
except:
print("请正确输入")
continue
else:
if b==0:
print("钱已返回,欢迎再来")
for i in range(5,0,-1):
print(i,end="\r")
time.sleep(1)
break
elif b not in range(1,6):
print("请正确输入")
continue
else:
exec("print(\"您的%%s,欢迎再来\"%%o%i)"%b)
for i in range(5,0,-1):
print(i,end="\r")
time.sleep(1)
break
很抱歉我真么什么起名的天赋,所以就这样。
我本来还想做一个无操作几秒钟就回到初始,但需要多进程,于是就放弃了。额,可以改一下,在反馈后,再有个input()模拟取钱和取走饮料。然后倒计时!
这次才用了exec替代了if,效率嘛~
In [4]: %%timeit
...: i=random.randint(1,6)
...: if i==1:""
...: elif i==2:""
...: elif i==3:""
...: elif i==4:""
...: elif i==5:""
...: else:""
...:
...:
861 ns ± 14.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [5]: %%timeit
...: import random
...: i=random.randint(1,6)
...: if i==0:""
...: else:exec("%i"%i)
...:
...:
7.59 µs ± 40.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
这里用随机模拟,但这个差距不是一个数量级的,exec是if的10倍耗时。
if增加到60
1.64 µs ± 13 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
exec增加到60
8.75 µs ± 157 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
那现在固定if就是最后一个数。
1.49 µs ± 34.6 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
反而比上面的随机1~60还少。
于是看似结构最简单又最重复的,就是最效率的。
import time
import os
按钮=["","超火","火","温","凉","冰"]
while 1:
i=os.system("cls")
input("请投币或刷卡")
while 1:
try:
b=int(input("请选择饮料:\n1.超火\n2.火\n3.温\n4.凉\n5.冰\n0.退出\n\n请输入数字:"))
except:
print("请正确输入")
continue
else:
if b==0:
print("钱已返回,欢迎再来")
for i in range(5,0,-1):
print(i,end="\r")
time.sleep(1)
break
elif b not in range(1,6):
print("请正确输入")
continue
else:
print("您的%s,欢迎再来"%按钮[b])
for i in range(5,0,-1):
print(i,end="\r")
time.sleep(1)
break
这章完了后,下一章就是我目前看的,第一节就是列表,看完后,可以用在这里。
In [4]: %%timeit
...: from random import randint
...: a=randint(0,9)
...: p=["","","","","",""]
...: if a==0:""
...: elif a in range(1,6):p[a]
...: else:""
...:
...:
1.88 µs ± 60.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
a=0:103nsa=5:402ns
这次模拟0~9的数字键盘,当按键是单键输入时,有十个可能,但只取0 ~ 6:
In [5]: %%timeit
...: from random import randint
...: a=randint(0,9)
...: if a==0:""
...: elif a==1:""
...: elif a==2:""
...: elif a==3:""
...: elif a==4:""
...: elif a==5:""
...: else:""
...:
...:
1.54 µs ± 21.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
a=0:36.4nsa=5:141ns
列表法比if法差的不多了。
而当手动给a赋值为0时,他们的判断步骤是一样的,此时差的这65ns就是给列表赋值的时间,但实际操作时,给列表赋值在一开始就能做。
如果把数值增加到60,有效位数50的话。
if:2.23ns 列表法:2.2ns
除去列表,仅仅看
if elif … vs a in range(50)
在50量级时,后者快
10
1.61 1.77
20
1.741.82 话说这个数就是这样,再多再少都比他少
30
1.85 1.78
原文链接:https://blog.csdn.net/jhsxy2005/article/details/106902655
python饮料购买_python - 饮料机,if elif与列表法相关推荐
- python饮料购买_Python实现的一个自动售饮料程序代码分享
写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...
- python饮料购买_Python写的一个自动售饮料小程序!
写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...
- python饮料购买_Python自动售货机零食和饮料
嗨,伙计们,我已经尝试创建一个工作的python自动售货机一个多月了,它看起来没有任何进展.如果有人能帮我,那就太好了:)以下是我目前为止的计划:print ("Welcome to the ...
- python - 饮料机,if elif与列表法
import time import os o1 = "超火" o2 = "火" o3 = "温" o4 = "凉" o ...
- python饮料购买_python3 自动饮料机练习代码
# coding = utf-8 i = 1 while i < 10: j = 1 while j <= i: print('{0}X{1}={2} '.format(j,i,i*j), ...
- python京东购买_python大规模爬取京东
python大规模爬取京东 主要工具 scrapy BeautifulSoup requests 分析步骤 打开京东首页,输入裤子将会看到页面跳转到了这里,这就是我们要分析的起点 我们可以看到这个页面 ...
- python 鱼骨图_python面向对象编程,鱼骨图分析法
一.面向对象编程 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么.后干什么.再干什么.然后干什么-- 与工厂的工艺流程差不多,前后都有影响 优点:复杂的问题流程化,进而简单化, ...
- python 只取数值_Python:你会生成列表吗?-- 列表生成式
当有人问你:"你会用 Python 生成列表吗?" 我想你一定会说:"当然会啊,这有什么难的." 那人再问:"那你会列表生成式吗?" 你:& ...
- python 定义数字_Python:已定义数字列表的差异
我正在尝试创建一个打印已定义数字列表的方差的函数: grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] 到目前为止,我 ...
最新文章
- VMware workstation 7.1 安装错误提示1021解决方法
- CSP认证201609-2	火车购票[C++题解]:模拟、vector、排序
- python 拼音姓名排序_Python一秒将全部中文姓名转为拼音!
- java sql string_JAVA String转化成java.sql.date和java.sql.time方法示例
- 微信公众号Java开发-笔记02【开发接入准备、开发接入】
- SAP UI5 oFileUpload.getUploadEnabled()
- Haproxy 实现Apache的负载均衡
- tar 解压_关于Ubuntu下解压tar.xz方法记录
- php数据库缓存实现原理,PHP那些事:数据库缓存原理
- 如何对建模型数据进行预处理
- 计算机用固态硬盘无法启动不了,新固态硬盘装完系统无法进入解决教程
- 动态设置html字号,html动态字体
- 解释程序和编译程序的区别
- windows控制台命令合集
- 计算机培训word,最新计算机培训word.pptx
- 智能LED电子钟的制作
- NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
- python+selenium爬虫,使用selenium爬取热门微博数据
- 空字符串和null有什么区别
- 8051单片机基础3:C51内存模型(small, compact和large)
热门文章
- 从零开始使用深度学习训练一个新闻分类器(干货)
- configure: error: C compiler cannot create executables错误解析
- python的drop duplicates_python – Pandas drop_duplicates方法不起作用
- 诺基亚手机怎样初始化恢复出厂设置的方法
- mybatis 的 if、test 表达式中单引号与双引号的区别
- Warning: validateDOMNesting(...): <p> cannot appear as a child of <tfoot>.
- 信息系统项目咨询和实施方法
- java swing课程表设计_阶段2:手把手快速做一个Java swing mysql学生选课系统附带完整源码及视频开发教程【猿来入此自营】...
- js打印去除页眉页脚url地址
- 鲍比肯迪尼是谁绿皮书_我的奶奶和小鲍比表