基礎篇-腳本題(3)

問題: python

[root@base tmp]# cat ent.txt app

1 ide

2 spa

3 utf-8

4 字符串

5 it

6 class

7 import

8 awk

9

10

要求輸出結果:1+2+3+4+5+6+7+8+9+10+=55

最好使用tr命令打印出

分析題後,想到最簡單的解法就是循環拼接打印結果:

#!/bin/sh

NumArray=($(cat /tmp/ent.txt | awk '{print $1}'))

result="1"

all=1

for((i=1;i<${#NumArray[*]};i++))

do

result="$result+${NumArray[$i]}"

all=$((${NumArray[$i]}+$all))

done

echo $result=$all

看過老男孩老師的答案,才叫拜服,非常簡單:

cat ent.txt | tr "\n" "+" | sed 's/\+$/\n/' 直接用tr將"\n"替換爲"+",而後sed替換最後一個"+"

cat ent.txt |tr "\n" "+"|sed 's/\+$/\n/'|bc 一個|bc就能夠將字符串表達式,轉換成算術表達式

python實現:

# coding: utf-8
import sys
from itertools import groupby

def demo(ListFile):
reList = []
files =
file(ListFile,'r')
lines = files.readlines()
str_list =
"1"
result=0
for item in lines:
rLIst = item.replace(
"\n","")
reList.append(rLIst)
if int(rLIst) > 1:
str_list =
str(str_list)+"+"+str(rLIst)
result = result +
int(rLIst)

return "%s=%d" %(str_list,result)
if __name__ == "__main__":
print demo("/tmp/ent.txt")

相關文章
相關標籤/搜索