0

こんにちは、誰かが私を助けることができますか? 私は if ステートメントと elif ステートメントを使用していますが、何らかの理由で elif ステートメント コードが if ステートメントにも応答し、if コード自体が応答しない場合の例を次に示します。

   #login
if(input('username=')=='hello'):
    print('continue')
elif(input('passcode=')=='goodbye'):
    print('continue')
else :
    print ('alert')

このコードを実行すると、次のようになります。

username=hello
continue
>>> 

代わりに、ユーザー名の代わりにパスコードを挿入すると、次のようになります。

username=goodbye
passcode=goodbye
continue
>>> 

最悪なのは、ユーザー名のスペースを空白にしてリターンキーを押すとどうなるかということです:

username=
passcode=goodbye
continue
>>> 

私に何ができる?

4

4 に答える 4

0

elififステートメントは、ステートメントが falseの場合にのみ評価されます。各ケースを 1 行ずつたどると、何が起こっているかが予想どおりであることがわかるはずです。

どのように機能させたいのかわかりませんが、おそらくこのようなものです

if(input('username=')=='hello' and input('passcode=')=='goodbye'):
    print('continue')
else :
    print ('alert')
于 2013-04-10T15:45:09.220 に答える
0

私は上手く理解できていない気がします。コードは、コード化したとおりに実行されます。

続行できるようにするために、ユーザー名とパスワードが一致していることを確認することが目標ですか? もしそうなら、おそらく次のようなものがもっと欲しいでしょう:

if(input('username=')=='hello'):
    print('username is OK. Continue')
    if(input('passcode=')=='goodbye'):
        print('passcode is OK. Continue')
    else :
        print('alert. Passcode is wrong.')
else :
    print('alert. Username is wrong.')
于 2013-04-10T15:43:35.557 に答える
0

ほら、プログラムはあなたが指示したことを正確に実行します。

最初に が であるかどうかをテストしinput()ます"hello"。そうであれば、 と を'continue'出力してスキップしelifますelseinput()そうでない場合は、別のが等しいかどうかをテストし"goodbye"ます。そうであれば、印刷'continue'してスキップしelseます。input()1 番目がそうではなく、 'hello'2 番目input()がそうでない場合にのみ、'goodbye'出力されます'alert'

私はあなたが意味したことは次のようなものだと思います:

   #login
if(input('username=')=='hello'):
    print('continue')
else:
    raise ValueError('alert')
if(input('passcode=')=='goodbye'):
    print('continue')
else:
    raise ValueError('alert')
于 2013-04-10T15:43:53.133 に答える