[英]Python subtraction in for loop
我需要一些幫助,以便在for循環中進行一些簡單的計算。 我在下面的示例文件中有兩列。 第1列是date-time-hr-min-ss,第2列是一個值。 我想打印文件並計算當前值和前一個小時的值之間的差。 我嘗試了下面的代碼,但無法減去前一個小時的值。 在下面糾正我的代碼時,我可以得到一些幫助/指導嗎? 提前致謝。
文件內容:
20160823220000 1208091708
20160823230000 1209559863
20160824000000 1210706089
20160824010000 1211612458
20160824020000 1212410614
20160824030000 1213059346
我的代碼:
with open('datecount.txt') as data:
z = 0
for line in data:
x = (line.strip().split())
num = int(x[1])
z = num
print(z - z)
所需輸出:
date-time-hr-min-ss Value Delta-from-prev-Hr
==========================================================
20160823220000 1208091708 N/A
20160823230000 1209559863 1468155
20160824000000 1210706089 1146226
20160824010000 1211612458 906369
20160824020000 1212410614 798156
20160824030000 1213059346 648732
with open('datecount.txt') as data:
prev = 0
for line in data:
value = int(line.strip().split()[1])
print(value - prev)
prev = value
命名變量是一個好主意,這樣它們的名稱才有意義。 換句話說,將x, y, z
留在數學中。
好吧,如果您可以假設文件中的每個連續行都是前一小時之后的一小時,那么您甚至不必擔心與時間列混淆。 只是用這個..
with open('datecount.txt') as data:
z = 0
for line in data:
x = (line.strip().split())
num = int(x[1])
print(num - z)
z = num
您的代碼已經差不多執行了此操作,只需要在將z分配給num之前打印(num-z)。 而且你也有print(zz)而不是print(num-z)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.