记录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 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