设为首页 收藏本站
查看: 895|回复: 0

[经验分享] python基础--循环--模拟骰子

[复制链接]

尚未签到

发表于 2017-4-27 10:55:30 | 显示全部楼层 |阅读模式
IDE选择
python测试只需要用python shell就可以了,但是写程序还是需要一个IDE的,喜欢全面一点的可以选择pycharm,不过这个要付费,不过在天朝,你懂得,呵呵。喜欢轻便一点的可以选择神灯,Geany,跨平台,win、mac和linux都可以用,可以试试,很爽,支持很多语言,c++、c、php、python.....关于Genay的配置去找一下我的一篇文章《Geany 跨平台编辑器》
 
怎么安装python就不重复了,网上很多,从循环开始
先来用python做一个模拟骰子的小游戏,非常简单
编辑器可以用Geany或者官方IDLE,但是初学不推荐大型的IDE,好用归好用,但是个人觉得太大写个小程序不怎么方便,不过随意,推荐Geany
for循环

__author__ = 'guhao'
#模拟骰子游戏
import random  #引入库文件
for x in range(1,11):    #循环从1到11,不包括11(循环10次)
#以 : 结尾表示代码还没有结束  而且冒号以后的代码注意缩进,缩进不一致会导致代码错误
num = random.randint(1,6) #随机输出1到6任意数字
print(num)  #输出num
把上面代码copy到一个扩展名为py的文件中,执行一下

$ python3 1.py
3
2
2
4
1
5
6
1
2
1
可以多执行几次试试,好了,最基本的模拟骰子就成功了,给这个小游戏加点料,试试 if 语句
 
if语句
开始

import random
for x in range(1, 11):
throw1 = random.randint(1, 6)    #投掷一次
throw2 = random.randint(1, 6)    #投掷第二次
total = throw1+throw2 #两次投掷相加
print(total)
if total == 2:       #if语句,如果两次投掷的和total等于2
print('两次投掷结果为2')
#结束if循环
if total == 5:  
print('两次投掷结果为5')
if total == 10:
print('两次投掷结果为10')
if throw1 == throw2:
print('太厉害了,Double Thrown!')
多执行这个文件,挺有趣的
 
逻辑计算
True和False叫做逻辑值,if后面的条件只有返回True的时候才会执行,比如投掷骰子游戏,让结果只显示6-12的数值

if total >=6 and total <=12:    #投掷的和小于3或者大于8,两个都成立才会返回True,执行下面的代码
print(total)
这里用的是and ;and叫做逻辑运算符,逻辑运算符有三个 and、or和not; 比如用or来修改一下游戏

if total < 3 or total > 8:    #投掷的和小于3或者大于8,两者只要有一个成立就返回True,执行下面的代码
print(total)
下面是not

if not(total < 6 ):    #投掷的和小于6时返回不执行下面的代码,大于等于6时才返回True,执行下面的代码
print(total)
else语句
忘了else语句,else时和if同时使用的,当if语句返回False执行else语句,在shell里演示一下:

>>>a = 6
>>> if a > 6:
...   print('a is big')
... else:
...   print('a is small')
...
a is small
 
while语句
while循环和for循环有些不同,while循环后面跟一个条件,当条件为真(True)时就会一直循环下去,所以使用while循环的时候一定要考虑清楚,如果你写了一个条件永远为真的while循环,呵呵......
我们可以用while来修改一下模拟骰子游戏,让骰子一直丢,直到两次丢的骰子都为6时才停止,代码如下:

import random
throw1 = random.randint(1, 6)    #投掷一次
throw2 = random.randint(1, 6)    #投掷第二次
while not(throw1 == throw2 == 6):  #如果两次投掷的结果都不为6,执行while里面的代码
total = throw1 + throw2
print(total)
#继续投掷,直到两个都等于6时停止
throw1 = random.randint(1, 6)
throw2 = random.randint(1, 6)
print('两次投掷结果都为6')
上面一段代码可以正常运行,但是有些臃肿,因为有两段代码时重复的,当然几句代码的小程序无所谓,但是到了写一些比较大点的程序的时候这样肯定时不可取的,所以可以优化一下

import random
while True:    #当为真的时候,里面的程序会一直循环下去,用break跳出
throw1 = random.randint(1, 6)
throw2 = random.randint(1, 6)
total = throw1 + throw2
print(total)
if throw1 == throw2 == 6:
break   #跳出循环  
print('两次投掷结果都为6')
这样就简单多了......
程序界一条“军规” ———DRY(Don't Repeat Yourself,拒绝重复)
 


:如果你选择copy上面的代码,一定要记住python里面缩进不一致会导致程序出错,所以,还是自己敲吧!


 
 
  
发布于:http://www.golune.com/blog/content/83a955a87beebe7458583b72fcc39282242ef

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369899-1-1.html 上篇帖子: 理解Python的With语句 下篇帖子: python面向对象详解(上)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表