1

Python 2.5 では、次のコードを使用しました。

    yn=raw_input('''This program is for solving linear and quadratic equations.
    Is this what you want to do?
    ''')
    if not 'y' in yn or 'Y' in yn:
        print 'Program now quitting.'

Program now quittingこれは、yn に 'y' または 'Y' が含まれていない場合に発生するはずでしたが、yn に 'Y' が含まれていた場合にも、残りのプログラムが開始する前に表示されました。に変えたときは変わらなかったif not 'y' in yn or 'Y' in yn:のにif not 'y' in yn or not 'Y' in yn:

    if not 'y' in yn:
        if not 'Y' in yn:

これは正しいですか?問題を解決し、この部分を同じ行に保つために何ができるでしょうか?

4

5 に答える 5

5

if not ('y' in yn or 'Y' in yn):動作するはずです。

于 2013-05-08T12:09:26.240 に答える
2

smitecのは正しいですが、

if not 'y' in yn.lower():

簡単かもしれません。

于 2013-05-08T12:13:25.720 に答える
0
if (not 'y' in yn) or (not 'Y' in yn):
    print 'Program Now Quitting.'
于 2013-05-08T12:10:30.660 に答える
0

疑わしい場合は中括弧を使用してください:)

達成したい内容に応じて、次のようになります。

if (not 'y' in yn) or ('Y' in yn):

また:

if not ('y' in yn or 'Y' in yn):
于 2013-05-08T12:11:06.000 に答える
0

より読みやすいように書くことを検討してください

if 'y' not in yn and 'Y' not in yn:
  pass  # ...

オペレーターは、not inあなたが遭遇したばかりの問題に悩まされることはありません。

あなたの直接の質問について:notオペレーターは優先順位が高いのでバインドします。

not x or y

と解釈されます

(not x) or y

これをオーバーライドする場合は、括弧を設定する必要があります。

not (x or y)

または用語を転置します。

not x and not y
于 2013-05-08T12:38:38.757 に答える