python关于for循环的几个函数

1.enumerate:返回2个值,1是当前的for循环的第几轮,2是循环得到的数值

enumerate works by supplying a corresponding index to each element in the list that you pass it. Each time you go through the loop, index will be one greater, and item will be the next item in the sequence.

choices = ['pizza', 'pasta', 'salad', 'nachos']

print 'Your choices are:'
for index, item in enumerate(choices):
    print index+1, item

运行结果如下:

Your choices are:
1 pizza
2 pasta
3 salad
4 nachos
None

 

2.zip:根据最小的列表,pairs它们

It's also common to need to iterate over two lists at once. This is where the built-in zip function comes in handy.

zip will create pairs of elements when passed two lists, and will stop at the end of the shorter list.zip can handle three or more lists as well!

例子:

list_a = [3, 9, 17, 15, 19]
list_b = [2, 4, 8, 10, 30, 40, 50, 60, 70, 80, 90]

for a, b in zip(list_a, list_b):
    # Add your code here!
    if a >= b:
        print a
    else: 
        print b

第一组得到a=3 b=2 输出3,第二组得到a=9 b=4 输出9。。。以此类推。

 

3.For / else:for里面有break时,else的内容不执行。

In this case, the else statement is executed after the for, but only if the for ends normally—that is, not with a break. This code will break when it hits 'tomato', so the else block won't be executed.

fruits = ['banana', 'apple', 'orange', 'tomato', 'pear', 'grape']

print 'You have...'
for f in fruits:
    if f == 'tomato':
        print 'A tomato is not a fruit!' # (It actually is.)
        break
    print 'A', f
else:
    print 'A fine selection of fruits!'

 

ps:小练习题:

1.验证一个数是整数:

def is_int(x):
    if int(x) == x:
        return True
    else:
        return False

 

 2.将类似于1234的数值加起来:1+2+3+4 = 10

方法1:转换为字符,将数字一个个取出来

def digit_sum(n):
    s = str(n)
    sum = 0
    for s1 in s:
        sum += int(s1)
    return sum 

方法2:使用%和/得到一个个数字

def digit_sum(n):
    sum = 0
    while n > 0:
        sum += (n % 10)
        n = int(n / 10)
    return sum
        

 

3.迭代计算阶乘

def factorial(x):
    f = 1
    while x > 1:
        f = f * x
        x -= 1
    return f

 

4.判断是否是质数

def is_prime(x):
    if x == 1:
        return False
    elif x == 2:
        return True
    else:
        s = 2
        while s != x:
            if x % s == 0:
                return False
            s += 1
        else:
            return True

 

5.倒序输出一个字符串:

def reverse(text):
    s = ""
    for i in range(0,len(text)):
        a = text[len(text) -1 - i]
        s = s + a
    return s

 

 6.返回输入列表中不重复的内容:

def remove_duplicates(list):
    s = []
    for i in list:
            if i not in s:
                s.append(i)
    return s

 7.返回一个列表里的中值:

def median(list):
    list_sorted = sorted(list)
    length = len(list_sorted)
    print list_sorted
    if length % 2 == 0:
        return float(list_sorted[length/2 - 1] + list_sorted[length/2])/2
    else:
        return list_sorted[length/2]

posted @ 2013-10-21 11:25  邦邦酱好  阅读(2985)  评论(0编辑  收藏  举报