2016-10-21 4 views
0

は宿題の要件です:少なくとも3アンテナと、せいぜい4目をしているC宿題の条件でデバッグするには?ここ

  • RaoMartian、。
  • BrownVenerian、最大6アンテナと少なくとも2つの目を持つ人。
  • 耳ムーンは、アンテナを2つ、最大で3つ持っています。

私の現在のコード:

eyes=input("How many eyes? ") 
antennas= input("How many antennas? ") 

if (antennas<=0) or (eyes<=0): 
    print "" 
elif(antennas>=3) and (eyes<=4): 
    print "RaoMartian" 
elif (antennas<=6) and (eyes>=2): 
    print "BrownVenerian" 
elif (antennas<=2) and (eyes<=3): 
    print "YeungMoon" 

これは、入力がどのように見えるかです:私は目とアンテナの2のために3を入力すると、私は唯一の "BrownVenerian" を取得

How many eyes? 1 
How many antennas? 4 
RaoMartian 

How many eyes? 3 
How many antennas? 2 
BrownVenerian 
YeungMoon 

How many eyes? 6 
How many antennas? 8 
"" 

しかし、私も "霊夢"を得ることを期待しています。

+2

なぜこれを投票して終了しているのですか?それはサンプルコードと望ましい出力を持っています。 – tdelaney

+1

この問題を解決する一般的な方法は、鉛筆を取り、動作しない値で手動で各行をステップ実行することです。 – tdelaney

+0

YeungMoonはBrownVenerianのサブセットです - もしあなたが可能なBrownVenerianを見つけたら、あなたは入れ子にされたifを行うことができます。 – tdelaney

答えて

2

elifステートメントを使用すると、コードでは代替コードを1つだけ使用することができます。あなたは個別に異なる条件をテストするために別のifステートメントを使用する必要があります。

if (antennas>=3) and (eyes<=4): 
    print "RaoMartian" 
if (antennas<=6) and (eyes>=2): 
    print "BrownVenerian" 
if (antennas<=2) and (eyes<=3): 
    print "YeungMoon" 
1

「elifの」「であれば、他」のショートカットです。 これは、そのブロック内のコードは、前のif文が偽の条件になった場合にのみ実行されることを意味します。条件の1つが真であるため、次のelifを評価していないため、コンソールでその印刷が表示されています。複数の条件を許可する場合は、通常のifのelifを変更します。

関連する問題