我试图使用Python和CSV文件创建一个简单的影院预订系统,其中0是免费席位,1是空座位。在那一刻,用户输入所需的座位数和所需的行数(A-J)。然后,程序应检查该行是否在单个块中具有可用空间。
当它返回值0和1以及该行可用的空闲座位数量时。然而,我正在努力确定是否有一块可用的免费座位,足以容纳所需的座位数量。有什么想法吗?
目前返回
0
0
0
0
0
1
1
1
1
1
A
Spaces available: 5
代码
import csv
Section = 0
LargeBlock = 0
Spaces = 0
LastSpace = 0
SpacesReq = int(input("How many spaces do you require? (8 Max.) "))
while SpacesReq > 8:
print("Invalid amount.")
break
SectionReq = input("What row would you like to check between A- J? (Uppercase required) ")
with open('data.csv', 'rt') as file:
open_f = csv.reader(file, delimiter=',')
for line in open_f:
for item in line:
if line[10] == SectionReq:
print(item)
if item == "0":
Spaces = Spaces + 1
print("Spaces available: ", Spaces)
答案 0 :(得分:0)
你正在寻找空块,所以在线循环是一个好主意:当遇到0时,增加块大小;如果遇到1,则块大小应重置为0.
但如果你把你的行视为字符串,你会有更简单的事情:
for line in open_f:
if line[10]==SectionReq:
SearchedBlock = '0'*SpacesReq
strLine = ''.join(str(i) for i in line)
if SearchBlock in strLine:
# empty block found
break