2

当面のタスクは非常に単純です。cpsc の前提条件 (番号 217、219、または 233) と数学の前提条件 (217 または 251) を要求する短いプログラムを作成し、これらのクラスのいずれかを前提条件として持っている場合は、前提条件と言う必要があります。満たされていない場合、前提条件が満たされていません。私のコードは次のようになります (笑ってはいけない、文字通り最大の python noob):

cpsc=input("Which cpsc course have you taken (only pick one): ")
math=input("which math course have you taken (only pick one): ")

if cpsc==(217 or 219 or 233) and math ==(217 or 251)
    print("prerequisites met")
else:
    print("prerequisites not met")

私が持っているすべての入力は、elseプリントのみを提供します。 と の比較に問題があると想定していcpsc==ますmath==。これを機能させるにはどうすればよいですか? ありとあらゆる助けをいただければ幸いです。

4

3 に答える 3

5

ごめんね笑ったけどXD

冗談ですが..ははは。わかった申し訳ない。要点に行きましょう。

目的の出力が得られないのはなぜですか?

if ステートメントには少し問題があります。あなたのインターピーターでこれをテストしてみてください:)

a = 233
if a == (217 or 219 or 233):
    print (True)
else:
    print (False)

これは印刷されますFalse。なぜなのかご存知ですか?

実際、orあなたの場合の使用(217 or 219 or 233)は少しずれています。(評価を試すことができます(217 or 219 or 233))。ここではor、演算子として を使用して、実際に論理比較を実行しています (リンクをクリックしてください。これは C で書かれていますが、理解しやすいはずです)。

これを解決するには

演算子を使用してin、「望ましい」値をリストにすることができます。

if a in [217, 219, 233] and math in [217, 251]:
    #do something

編集 :)

あ、うん。上記のコードはまだ機能しないことを忘れていました。もう 1 つ不足しています。

あれは何でしょう?input常に文字列を提供するのは事実です。そのため、 (整数) が (文字列) と等しくないため、その値a"217"存在する場合でも機能しません。217"217"

これを解決するには、入力をint()関数で整数に変換します。

cpsc = int(input("Which cpsc course have you taken (only pick one): "))
math = int(input("which math course have you taken (only pick one): "))

それだけです..これが役立つことを願っています!

于 2013-10-25T03:35:17.077 に答える
2

StackOverflow と Python へようこそ! 間違いをいくつか訂正し、知っておくべきことを説明します。

cpsc=input("Which cpsc course have you taken (only pick one): ")
math=input("which math course have you taken (only pick one): ")

if (cpsc == 217 or cpsc == 219 or cpsc == 233) and (math == 217 or math == 251):
    print("prerequisites met")
else:
    print("prerequisites not met")

それは動作するコードでなければなりません。しかし、なぜ?

  • Python ブロック ステートメント ( ifwhilefordefなど) の後にはコロン ( :) を付ける必要があります。
  • ブロックを正しく機能させるには、インデントする必要があります。
  • ステートメントはそのorようには機能しません。各条件を個別に確認するか、次のようにする必要がありますif cpsc in [217, 219, 233]
于 2013-10-25T03:27:49.593 に答える
0

==(a or b or c ...)が期待どおりに動作しません。式a or b, ...は、短絡評価と呼ばれるものを受けます (詳細についてはこちらを参照してください)。すなわち:

>>> 1 or 2 or 3
1

217基本的に、この場合、それぞれが式の最初の数値に解決され217ます。必要なもの:

if cpsc in [217, 219, 233] and math in [217 or 251]:
于 2013-10-25T03:32:19.623 に答える