python
2017-02-13 83 views 0 likes 
0
number = raw_input("Please enter the fixture number: ") 
    myfile = open('file.txt') 
    for line in myfile: 
     item = line.split(',') 
     if item[0] == number: 
      title = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format('Fixture number', 'date', 'nickname1', 'nickname2', 'Fixture Played', 'Winning Nickname') 
      print(title) 
      result = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format(item[0],item[1],item[3],item[4],item[5],item[6]) 
      print(result) 
     elif item[0] != number: 
      print("not exist") 

您好我是新使用python,所以最近我遇到一個問題我爲什麼我的代碼打印不止一次?

elif item[0] != number: 

正在打印「不存在」的線的量我的文件 我怎麼得到它只能打印一旦出現錯誤?

+0

如果您不介意'item [0]!= number'之後的for循環退出,您可以在打印函數 – JGut

+0

@JGut之後添加'break',在第一次不匹配後退出循環。這可能是意圖掃描整個文件的匹配 –

回答

1

item[0] == numberTrue時設置一個標誌。檢查這個標誌循環終止後,並打印"not exist"如果設置了標誌:

myfile = open('file.txt') 
found = False 
for line in myfile: 
    item = line.split(',') 
    if item[0] == number: 
     found = True 
     title = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format('Fixture number', 'date', 'nickname1', 'nickname2', 'Fixture Played', 'Winning Nickname') 
     print(title) 
     result = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format(item[0],item[1],item[3],item[4],item[5],item[6]) 
     print(result) 

if not found: 
    print("not exist") 

另一種方法是使用else選項與for循環,但是,要求要打印僅在第一次那item[0] == numberTrue(因爲你需要break跳出循環以防止else子句觸發)。

0

您可以將一個else條款的for loop這樣的:

number = raw_input("Please enter the fixture number: ") 
myfile = open('file.txt') 
for line in myfile: 
    item = line.split(',') 
    if item[0] == number: 
     title = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format('Fixture number', 'date', 'nickname1', 'nickname2', 'Fixture Played', 'Winning Nickname') 
     print(title) 
     result = '{0:20} {1:20} {2:20} {3:20} {4:20} {5:20}'.format(item[0],item[1],item[3],item[4],item[5],item[6]) 
     print(result) 
     break 
else: 
    print("not exist") 

通知的break。 for循環將在第一場比賽後退出(通過break)。如果for循環正常終止(即不匹配),則else塊將運行

+0

什麼將是一個很好的替代.rstrip() –

相關問題