统计字符数—a n 数字的连加

案例一

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

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

结果:

Paste_Image.png

案例二

求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里面的值累计相加

结果:

统计字符数—a n 数字的连加_第1张图片
Paste_Image.png

你可能感兴趣的:(统计字符数—a n 数字的连加)