记录cu上shell比赛的第5题

最近在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
[[email protected] 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 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个参数,但是参数中有字母或者符号

第四种正确模式

来看看运行的结果的截图吧:

记录cu上shell比赛的第5题

效果不错吧,前面几种都是有错误的提示,最后一次是正确的。


好了,这个题目就做到这里吧,如果有不对之处,希望各位不吝赐教。

本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/1229531如需转载请自行联系原作者


world77