簡體   English   中英

for循環中的Python減法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM