练习1
让用户一直输入数字,如果输入的不是数字就报错,如果输入pc就退出并算出数字之和
1
2
3
4
5
6
7
8
9
10
11
|
#!/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
让用户一直输入数字,如果输入的不是数字就报错,如果什么都没有输入就退出。并算出输入数字的平均值
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/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)
|
解释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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出现的次数
1
2
3
4
5
6
7
8
|
#!/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)
|
本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1725722,如需转载请自行联系原作者