[英]Not understanding what is wrong with my code?
我編寫了這段代碼,只從文本文件中提取數字,然后計算提取的這些值的總和。 但我得到的答案是 0,實際上應該是 285701。 即使工作了很長時間,我也不明白我做錯了什么,我對剛開始學習的編程不是很有經驗。請幫忙!
import re fname = open("http://py4e-data.dr-chuck.net/regex_sum_1501185.txt") sum = 0 value = list() for line in fname: line = re.findall("[0-9]+", line) value = value + line for x in value: sum = sum + int(x) print(sum)
您無法使用open()
打開網頁網址,您需要使用urllib.request.urlopen()
:
import urllib.request
import re
fname = urllib.request.urlopen("http://py4e-data.dr-chuck.net/regex_sum_1501185.txt")
data = fname.read().decode()
data = data.split('\n')
sum = 0
value = list()
for line in data:
nums = re.findall("[0-9]+", line)
value = value + nums
for x in value:
sum = sum + int(x)
print(sum)
輸出:
285701
您需要小心使用變量名稱命名變量sum
導致您將無法使用內置函數sum()
如果您的代碼看起來像這樣會更好:
import urllib.request
import re
fname = urllib.request.urlopen("http://py4e-data.dr-chuck.net/regex_sum_1501185.txt")
data = fname.read(50000).decode()
data = data.split('\n')
value = list()
for line in data:
line = re.findall("[0-9]+", line)
value = value + [int(i) for i in line]
print(sum(value))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.