python基础--循环--模拟骰子

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

你可能感兴趣的:(转,python)