案例一
輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
#-*- 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里面的值累計相加
結果:
Paste_Image.png