3

input()Python 3 の関数を使用して、ユーザーに yes または no の質問をしたいと思います。例えば:

affirmative = ["", "y", "yes"]
x = input("Continue? [Y/n] ").lower()
if x in affirmative:
    # Do something
else:
    print("Canceled")

「肯定的な」回答に使用する必要がある特定のリストはありますか? string.uppercasePython には と のようなものがありstring.lowercase、事前に定義された変数のリストがあることを私は知っています。「はい」と見なすべき回答のリストはありますか?

4

3 に答える 3

6

Python の distutils にはstrtobool、うまくいくかもしれないものがあります。ドキュメント リンク

distutils.util.strtobool(val)

true の文字列表現を true (1) または false (0) に変換します。

  • 真の値は: yyesttrueon1です。
  • False 値は、 nnoffalseoff0です。
  • それ以外の場合は ValueError を発生させます。

しかし、これはあなたが現在望んでいるスタイルと完全には一致しません。

于 2013-10-13T04:23:42.887 に答える
1

私にはもっと良い考えがあります。「yYnN」で始まるものは何でも受け入れ、必要に応じて空の文字列を受け入れます。何か他のことについて不平を言って、もう一度尋ねてください。ユーザーはすぐに慣れます。

「それを行うための明白な方法が1つ、できれば1つだけあるはずです」:-)

于 2013-10-13T04:31:20.953 に答える
0

肯定的または否定的な回答 (複数の場合もあります) を検討するのは、すべてあなた次第です。潜在的なユーザーの回答の配列を作成するか (既に示したように)、単に入力が間違っていることをユーザーに伝え、「はいまたはいいえで答えてください」などのメッセージで警告することができます。

また、主に使用される肯定的なメッセージはyes, y, true, t, 1.

于 2013-10-13T04:26:47.670 に答える