最近在CU上闲逛的时候,发现CU的shell比赛又开始了,http://bbs.chinaunix.net/thread-4086457-1-1.html看来下题目,发现如果用shell来解答的话,居然一个题目也搞不定啊,shell不行,用python来做第5题,还是可以搞定的吧,哈哈,下面就来看看这个题目和python的答案吧。
题目描述如下:
第五题:
给出一个多位数,算出其每位数的总和。比如 1234, 得到 10
下面看看脚本和运行情况如何:
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
27
28
29
30
31
32
33
34
35
36
|
[root@centos6 shellbisai]
# cat 5.py
#coding=utf-8
#!/usr/bin/env python
import
sys
def
describe():
print
'''
此脚本作用及使用示例:
python script.py 123
脚本把123的输入数字拆开相加:
1+2+3=6
结果就是显示6
如果运行是没有参数或者参数多于1个,或者参数中有
字母或者符号,将有提示
'''
def
check():
if
len
(sys.argv) !
=
2
:
describe()
print
"Script will exit"
sys.exit()
else
:
num
=
sys.argv[
1
]
sum
=
0
result
=
''
if
num.isdigit():
num
=
list
(num)
for
i
in
range
(
0
,
len
(num)):
sum
=
sum
+
int
(num[i])
result
=
result
+
num[
1
]
print
"Your input is "
,sys.argv[
1
]
print
"Total is "
,
sum
print
result
else
:
describe()
sys.exit()
if
__name__
=
=
"__main__"
:
check()
|
脚本的描述相信大家都可以看懂了吧,嘿嘿,并且是用中文做的描述和提示哦,其实偶英文比较菜,懒得用英文做描述啊,见谅,运行的时候要有2个参数,如果不满足,会给出提示;不能超过2个参数,第2个参数必须是数字,如果有英文或者特殊符号也不行,够详细了吧,下面来看看运行的结果吧,必须我们最关心的是结果啊,下面给的是4中运行情况,分别是:
第一种没有给出第二个参数
第二种超过了2个参数
第三种给出了2个参数,但是参数中有字母或者符号
第四种正确模式
来看看运行的结果的截图吧:
效果不错吧,前面几种都是有错误的提示,最后一次是正确的。
好了,这个题目就做到这里吧,如果有不对之处,希望各位不吝赐教。
本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/1229531如需转载请自行联系原作者
world77