3

入門プログラミングのクラスの2日目で、問題が発生しています。if ステートメントを使用しています。宿題は

ユーザーに整数の入力を求めるプログラムを作成します (入力された値は整数であると想定できます)。その整数がゼロに等しい場合は、「ゼロ」と出力します。そうでない場合は、陽性か陰性かを判断し、どちらであるかを出力します。また、その数が 5 で割り切れるかどうかを判断します。

これで、ユーザーに数値の入力を求め、その正または負か、または 5 で割り切れるかどうかを判断できますが、プログラムが満たされていない最初の条件をバイパスして 2 番目の条件セットに入る方法がわかりません。以下のコードの例、

number = input("enter an integer: ")

if number > 0 and number%5 == 0:
    print number, "is positive and divisible by 5"
else :
    print "positive but not divisible by 5"

if number < 0 and number%5== 0:
    print "neggy and divisible by 5"
else :
    print "neggy but not divisible by 5"

私の問題は、負の数を入力すると、最初の条件が満たされていないため、「正だが5で割り切れない」と出力されることです。elif を試しましたが、毎回構文エラーが発生します。私の先生は基本的な "and"、"or"、"if"、"else"、"elif" などの単語を使用するだけなので、空想しないでください。ありがとう

4

5 に答える 5

6

elif を使用:

number = input("enter an integer: ")

if number > 0 and number%5 == 0:
    print number, "is positive and divisible by 5"
elif number > 0:
    print "positive but not divisible by 5"
elif number < 0 and number%5== 0:
    print "neggy and divisible by 5"
elif number < 0:
    print "neggy but not divisible by 5"
else:
    print "zero"
于 2013-09-09T23:59:19.927 に答える
1

使用するのが最善if ... elif ... elseですが、とにかく、別のオプションを投入しています:

if number == 0:
    print 'zero'
else:
    print number, 'is', 'positive' if number > 0 else 'negative', 'and',
    print 'not' if number % 5 else '', 'divisible by 5'

説明... これはprint、Python 2 のステートメントがカンマで区切られた複数の値を取り、スペースで区切られた値を表示できる方法を利用しています。そしてそれはあなたが書き換えることを可能にする条件式を使用します(例えば)

if condition:
    print 'yes'
else:
    print 'no'

なので

print 'yes' if condition else 'no'

ただし、コードが読みにくくなることが多いため、あまりお勧めできません。

于 2013-09-10T00:19:12.930 に答える
1
于 2013-09-10T00:26:33.017 に答える
0
if number == 0:
    print "zero"
else:

    pos = (number > 0 )
    div_by_5 = (number % 5 == 0)

    if pos and div_by_5:
        print number, "is positive and div by 5"
    elif pos and not div_by_5:
        print number, "is positive but not div by 5"
    elif not pos and div_by_5:
        print number, "is negative and div by 5"
    elif not pos and not div_by_5:
        print number, "is negative but not div by 5"
于 2013-09-10T00:05:38.377 に答える
0

パイソン 2.7.4

number = int(raw_input())

if not number: print "zero"
elif abs(number) % 5 == 0:
    print [ `number` + " is negative and divisible by 5", 
        `number` + " is positive and divisible by 5"][number > 0]
else: print [ `number` + " is negative but not divisible by 5", 
        `number` + " is positive but not divisible by 5"][number > 0]

バックティック

于 2013-09-10T00:14:33.550 に答える