2017-04-20 72 views
1

我想弄清楚如果測試我的列表,如果它曾經給出任何結果,然後給出好的運行其他列表。我是否必須再次創建一個新的'for'語句來運行我的列表? sry英文不好檢查一個循環是否返回一個值

我發現這些聲明,但我試圖弄清楚如何將它們應用到我的代碼。

但是,如何檢查我的循環是否從未運行?

最簡單的方法來檢查,如果for循環從未執行的是使用無定爲定點值:

x = None 
for x in data: 
    ... # process x 
if x is None: 
    raise ValueError("Empty data iterable: {!r:100}".format(data)) 
If None is a legitimate data value, then a custom sentinel object can be used instead: 

x = _empty = object() 
for x in data: 
    ... # process x 
if x is _empty: 
    raise ValueError("Empty data iterable: {!r:100}".format(data)) 

我用例:

message = ["potato:23", "orange:", "apple:22"] 

for i in message: 
    parts = i.split(":") 
    gauche = parts[0].strip() 
    droite = parts[1] 

    try: 
     droite = int(droite) 
     if not gauche.isalpha(): 
      print("La ligne '", i, "' n'est pas correctement formaté.") 
      break 
     except ValueError: 
      print("La ligne '", i, "' n'est pas correctement formaté.") 
      break 

# following code runs if no error was raised in the for loop 
message2 = sorted(ligne(texte)) 
for j in message2: 
    print(j) 
sys.exit() 
+1

我可以看到你正在嘗試,但問題是不明確的,我建議包括一個小例子帶有所需輸入和輸出的樣本 –

+0

是的項目列表將包含每行中包含a的行字符串:整數,並在輸入缺失或錯誤的東西時對其進行測試。在修改後的問題 –

回答

1

Question: I would like to execute this like of code if that for didnt raise any error

當你想繼續你的PROGRAMM,你不能使用raise
例如,I append全部gauche如果int(droite)沒有raise ValueErrorgauche.isalpha
把這個水果列表和print分開吧。

ligne = [] 
for i in message: 
    parts = i.split(":") 
    gauche = parts[0].strip() 
    droite = parts[1] 
    try: 
     droite = int(droite) 
     if not gauche.isalpha(): 
      #raise Exception("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 
      print("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 
     else: 
      # Append only if isalpha 
      ligne.append((gauche)) 

    except ValueError: 
     #raise Exception("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 
     print("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 


message2 = sorted(ligne) 
for fruit in message2: 
    print(fruit) 

Output:
La ligne 'orange:' n'est pas correctement formaté.
apple
potato


想你的代碼,它是爲我工作。 我得到以下輸出:

La ligne ' orange: ' n'est pas correctement formaté. 

Question:I found these statement but im trying to figure out how i can apply them to my code

您可以使用它,例如:

try: 
    droite = int(droite) 
    if not gauche.isalpha(): 
     raise Exception("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 
except ValueError: 
    raise Exception("La ligne {!r:2} n'est pas correctement formaté.".format(i)) 
+0

中有一個例子,在那段代碼之後,我想知道如果我將運行其他'For',如果這部分代碼沒有提出任何豁免? –

+0

是的。在上面我寫的整個代碼之後,我想在同一級別添加另一個塊。 –

+0

好吧,我編輯了我的代碼塊,我想添加下如果提升沒有返回任何錯誤。 –