python基础学习02

python基础语法学习

python基础学习02

python基础语法学习

**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