案例一
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#-*- coding: UTF-8 -*-
import string
s=raw_input('s:')
letters=0
space=0
digit=0
others=0
for i in s:
if i.isalpha():
letters+=1
elif i.isspace():
space+=1
elif i.isdigit():
digit+=1
else:
others+=1
print '%d,%d,%d,%d' % (letters,space,digit,others)
结果:
案例二
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
#-*- coding: UTF-8 -*-
Tn = 0
Sn = []
n = int(raw_input('n = :\n'))
a = int(raw_input('a = :\n'))
for count in range(n):
Tn = Tn + a
a = a * 10
Sn.append(Tn) #追加到列表
print Tn
Sn = reduce(lambda x,y : x + y,Sn)
print Sn
解释:
1.lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。lambda 函数不能包含命令,包含的表达式不能超过一个
此处的意思就是在Sn中取出2个数字相加。
2.python中的 reduce 函数有三个参数,第一个参数就是作用函数,第二个函数就是可迭代的对象,第三个是迭代初始值。 python中的reduce内建函数是一个二元操作函数,他对一个数据集合(链表,元组等)中的所有数据进行。此处的意思是对Sn里面的值累计相加
结果: