**Python range用法**
range([start ,] stop [, step])
上面方括号内的参数表示是可选的,但所有参数必须是整数。如果参数step被省略的话,它的默认值是1;如果参数start被省略的话,它的默认值将是0。但是无论如何,参数stop是不允许省略的,所以range()函数只有一个参数时,它表示range(stop);当range()函数带有两个参数时,它表示range(start,stop)。
我们知道range()返回的是一个列表,列表中的整数值为[start, start + step, start + 2 * step, start + 3 * step,...]。如果参数step为正值,那么列表中最后一个元素为小于参数stop的那个最大的整数 start + i * step ;如果参数step为负值,那么列表中最后一个元素为大于参数stop的那个最小的整数 start + i * step 。但是任何时候参数step的值都不能为零。只要将上面的列举的range()示例跟这里的一般性介绍相结合,我们就能更好的理解该内建函数的用法。
需要注意,当参数step为正值时,参数start必须小于参数step;当参数step为负值时,参数start必须大于参数step,否则range()函数将返回一个空表
习题练习1:写一个猜数字游戏,预先设定一个数字,游戏玩家输入一个数字,如果与预设的数字相等,玩家获胜,如果不等,提示玩家太大还是太小,玩家有三次猜数字的机会。
!/usr/bin/env python
# -*- coding: utf-8 -*-
result = 4
count = 3
while not count == 0:
guess = int(raw_input('Please enter Guess Number: '))
if guess == result:
print u'猜对了,游戏结束'
break
elif guess > result:
print u'数字偏大,再猜一次'
count -= 1
else:
print u'数字偏小,再猜一次'
#continue
count -= 1
else:
print u'只能猜三次游戏结束!!'
习题练习2:打印杨辉三角
~/code ⮀ cat yh1.py
#!/usr/bin/env python
def triangle(num):
triangle=[[1]]
for i in range(2,num+1):
triangle.append([1]*i)
for j in range(1,i-1):
triangle[i-1][j]=triangle[i-2][j]+triangle[i-2][j-1]
return triangle
def printtriangle(triangle,width):
column=len(triangle[-1]*width)
for sublist in triangle:
result=[]
for contents in sublist:
result.append('{0:^{1}}'.format(str(contents),width))
print ('{0:^{1}}'.format(''.join(result),column))
if __name__=='__main__':
num=int(input('num:'))
triangle=triangle(num)
width=len(str(triangle[-1][len(triangle[-1])//2]))+3
printtriangle(triangle,width)
~/code ⮀
习题练习3:打印2-100所有的素数
~/code ⮀ cat sushu1.py
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
求质数或素数
什么是质数?
质数就是只能被1和它本身整除的数,1和0不是质数也不是合数
'''
def primeNumber(n):
x = 1
for i in range(3,n+1):
result = True
for j in range(2,i-1):
if i % j == 0:
result = False
if result == True:
print i,
x += 1
primeNumber(100)
~/code ⮀ cat sushu2.py
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
sushu = []
for i in range(2,100):
m = 0
for y in range(2,i):
if i%y == 0:
m = 1
break
if m == 0:
sushu.append(i)
print '1到100之内的素数是: '
print sushu
~/code ⮀
See also