练习1

让用户一直输入数字,如果输入的不是数字就报错,如果输入pc就退出并算出数字之和

#!/usr/bin/evn python
total = 0
while True:
    input = raw_input('input something: ')
    if input.isdigit():
        total += int(input)
    elif input == 'pc':
        break
    else:
        print "error"
print total

练习2

让用户一直输入数字,如果输入的不是数字就报错,如果什么都没有输入就退出。并算出输入数字的平均值

#!/usr/bin/evn python
total = 0
input_list = []
while True:
    input = raw_input('input something: ')
    if input.isdigit():
        input_list.append(int(input))
    elif len(input) == 0:
        break
    else:
        print "error"
print reduce(lambda x,y:x+y,input_list,0)/len(input_list)

解释:

len
 
返回序列的长度
 
>>> len([1,2,3])
 
3
 
 内建函数
 
append(x) 追加到链尾
 
reduce 
 
reduce(function,sequence,[init]) 
 
返回一个单值为,计算步骤为 :
 
第1个结果=function(sequence[0],sequence[1])
第2个结果=function(第1个结果,sequence[2])
返回最后一个计算得值
如 reduce(lambda x,y:x+y,range(3),99) 的计算为
99+0=99 => 99+1=100 => 100+2=102
返回102
 
注:实际使用中用内建函数sum来完成这个累加更合适,如这里等价sum(range(3),99)

练习3

遍历一个序列 ['C','js','python','js','css','js','html','node'],统计这个序列中,js出现的次数

#!/usr/bin/env python
list = ['c','python','js','css','html','node','js']
a={}
for i in list:
    print i
    if list.count(i)>1:
       a[i]=list.count(i)
print (a)