輸入3個數以空格隔開,輸出這3個數的和. 這個程序要怎么寫?
#encoding:utf-8
def?sum():
????a?=?raw_input()
????l?=?a.split('?')
????sum?=?0
????for?num?in?l:
????????sum?+=?int(num)
????return?sum
print?sum()我這樣感覺實在是太麻煩了啊,有什么其他的方法嗎?
#encoding:utf-8
def?sum():
????a?=?raw_input()
????l?=?a.split('?')
????sum?=?0
????for?num?in?l:
????????sum?+=?int(num)
????return?sum
print?sum()我這樣感覺實在是太麻煩了啊,有什么其他的方法嗎?
2016-05-09
舉報
2016-05-10
恩, 用兩種方法吧:
def?sum_input_with_reduce(): ????string?=?raw_input() ????return?reduce(lambda?x,y:int(x)+int(y),?string.split()) def?sum_input_with_map(): ????string?=?raw_input() ????return?sum(map(lambda?x:int(x),?string.split())) ???? def?sum_input_with_eval(): ????string?=?raw_input() ????return?eval(string.replace("?","+")) ???? ##?解釋,第一個和第二個思路差不多,區別是,第一個?直接用reduce?算出了?列表和。 ##?第二個?先map?列表,然后再用?內置函數?sum()?求列表和 ##?至于第三個嘛,其實大多數書本都不推薦用?eval?或者?exec?這兩個內置函數,認為他們不安全,不過用在 ##?這里簡直是絕配有么有!?首先將字符串中的空格換成加號,?然后eval?下直接出結果。。。。