def evens(number_file: TextIO) -> List[int]:
lst = []
line = number_file.readline().strip()
while line != '':
evens = 0
line = number_file.readline().strip()
while line.isdigit():
evens = evens int(line)
line = number_file.readline().strip()
lst.append(evens)
return last
在此示例中,檔案“numbers.txt”如下所示:
開始
1
2
結尾
開始
3
結尾
開始
4
5
6
結尾
每行都是一個 int 或 'START' 或 'END' 我想創建一個函式來回傳每個部分中的偶數數量,因此當代碼在此檔案上運行時,它應該回傳串列 [1, 0, 2] . 有人可以幫我嗎?
uj5u.com熱心網友回復:
import numpy as np
def main():
line = [1,4,5,6,8,8,9,10]
evens = np.array()
for l in line:
if (l % 2) == 0:
np.append(evens, l)
return evens
if __name__ == '__main__':
main()
沒有你的txt檔案和讀取它的代碼,這是我能做的最好的。
uj5u.com熱心網友回復:
撰寫新代碼時,最好從小處著手,然后一點一點地添加功能。例如,首先撰寫無需擔心節的代碼,然后更新以使用節。
但無論如何,這里有一些應該可以作業的修改后的代碼:
def evens(number_file: TextIO) -> List[int]:
lst = []
line = number_file.readline().strip()
while line != '':
evens = 0
# ignore all text lines
while !line.isdigit():
line = number_file.readline().strip()
# process number lines
while line.isdigit():
if int(line) % 2 == 0:
evens = evens 1
line = number_file.readline().strip()
lst.append(evens)
return lst
這是一個可能更簡單的版本(forPython 中的回圈通常可以讓您的生活更輕松,例如在處理檔案的每一行時):
def evens(number_file: TextIO) -> List[int]:
lst = []
for row in number_file:
line = row.strip()
if line == 'START':
# new section, start new count
lst.append(0)
elif line.isdigit() and int(line) % 2 == 0:
# update current count (last item in lst)
lst[-1] = 1
return lst
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338002.html
標籤:Python python-2.7
下一篇:使用Python跟蹤累積值
