2017-04-20 14 views
1

私はリストをテストする方法を理解しようとしています。もう一度リストを実行するための新しい 'for'ステートメントを作成する必要がありますか?悪い英語のために試してくださいループで値が返されたかどうかを調べる

私はこれらのステートメントを見つけましたが、私は自分のコードにどのように適用できるかを考えようとしています。

しかし、ループがまったく実行されなかったかどうかを確認するにはどうすればよいですか?ループの実行されたことがないかどうかを確認するために

最も簡単な方法は、センチネル値としてNoneを使用しないことです。

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が付いた行があります。string:整数と、不足している項目や間違った項目が入力された場合にテストします。修正された質問の例があります –

答えて

1

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

、あなたのプログラムの開発を続けていきたいと、あなたはraiseを使用することができませんでした。
例えば、gaucheの場合、int(droite)raise ValueErrorおよびgauche.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

私がコードを編集しましたが、raiseがエラーを返さなかった場合に追加したいブロックがあります。 –

関連する問題