Python学习笔记(2)

循环:

>>> for x in range(1,10):
    print x

1
2
3
4
5
6
7
8
9
>>> 

程序输出了数字1~9,而不是1~10。这里需要解释一下,因为range这个命令是排除结尾最后的一个数字的,所以,它在输出结果时不会包括范围内的最后一个数,但是它包含第一个数。

这次我们将代码改进一下,显示结果如下:

>>> list(range(1,10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 

留意一下标点符号,代码中的圆括号中所包含的数字被称为参数。range命令内就含有两个参数,从1开始,到10结束,以逗号“,”隔开。

命令for in由两部分组成。在单词for之后必须跟一个变量名,而这个变量会在每次循环之后被赋予一个新值。所以,第一次的时候,它的值就是1,第二次的时候是2,以此类推。

而在单词in之后,Python会计算出一整套循环,并且列出来,这样就形成了最终显示的1~9列表。

生成随机数(模拟色子):

>>> import random
>>> random.randint(1,6)
2

你可以试着把第二行多输入几遍,这样就会发现,得到的结果并非都是一样的数字,而是1~6的随机数。

生成十个随机数:

>>> import random
>>> for x in range(1,11):
    random_number=random.randint(1,6)
    print(random_number)

4
1
3
2
4
5
3
1
6
4
>>> 

if
本节将给这个“色子”程序加点“料”。比如两个色子一起丢,然后得到两个色子丢出次数的总和,将这个值输出。

>>> import random
>>> for x in range(1,11):
    throw_1=random.randint(1,6)
    throw_2=random.randint(1,6)
    total=throw_1+throw_2
    print(total)
    if total==7:
        print('Seven Thrown!')
    if total==11:
        print('Eleven Thrown!')
    if throw_1==throw_2:
        print('Double Thrown!')

2
Double Thrown!
5
7
Seven Thrown!
8
4
5
6
5
7
Seven Thrown!
8
>>> 

逻辑计算:

>>> True+True
2
>>> True+False
1
>>> 

else:
在之前的例子里,经常会看到在丢出色子后,可能显示的不止一条信息,只要if条件为真,都有可能输出一些额外的信息。有时,你或许想要有一些稍微不同的逻辑模式:如果if条件为真,你将这样,如果为假,你就那样。在Python里,需要用else来实现:

>>> a=7
>>> if a>7:
    print('a is big')
else:
    print('a is small')

a is small
>>> 

在这个程序里,虽然有两种显示结果,但是在同一时间,只可能显示一条。

另一种变化是elif,就是else if的缩写。因此,可以把之前的例子扩展一下,让它变成3条逻辑线。

>>> a=7
>>> if a>7:
    print('a is big')
else:
    print('a is small')

a is small
>>> a=7
>>> if a>9:
    print('a is very big')
elif a>7:
    print('a is fairly big')
else:
    print('a is small')

a is small
>>> 

while:

本节将介绍while循环,它与之前的for循环稍稍有些不同。先说相同之处,这样有利于理解和掌握while循环。相同之处在于,后面都跟着一个条件,在这种情况下,之前所设立的条件一直在循环内。换句话说,只要执行条件为真,循环内的代码就会不断重复执行。这意味着需要考虑周全,并且确定什么时候条件才会不成立,否则,这个代码就成为了一个永无止境的程序,直到计算机死机。

修改前面的程序:

>>> import random
>>> throw_1=random.randint(1,6)
>>> throw_2=random.randint(1,6)
>>> while not(throw_1==6 and throw_2==6):
    total=throw_1+throw_2
    print(total)
    throw_1=random.randint(1,6)
    throw_2=random.randint(1,6)
print('Double Six thrown!')

虽然这段代码能够正常运行,但是看起来太“臃肿”。主要是因为写了两遍这段代码:

    throw_1=random.randint(1,6)
    throw_2=random.randint(1,6)

这里得告诉大家一条程序界内的“军规”——DRY(Don’t Repeat Yourself,拒绝重复)。当然,这句话肯定不是为这段代码而准备的,但是,作为一个合格的程序员,必须牢记这段话,因为以后将面对比这复杂百倍的程序。所以必须努力避免重复使用同一段代码。如果违反了这条规则,所写出的程序维护起来会相当痛苦。

你可以使用一个break来缩短代码,使之前的代码看起来“干练”一些。当Python遇到break时,变会跳出循环。

>>> import random
>>> while True:
    throw_1=randon.randint(1,6)
    throw_2=random.randint(1,6)
    total=throw_1+throw_2
    print(total)
    if throw_1==6 and throw_2==6:
        break
print('Double Six thrown!')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值