3

私はPythonにかなり慣れていません。PythonforIOS 3.4 を使い始めたばかりで、input() に問題があります。これは IOS 実装のバグだと思いますが、物事を正しく理解していることを確認したいと思います。

ユーザーが Enter キーを押すだけ (null 応答) の場合、結果として単に null 文字列 ('') を返すのではなく、KeyboardInterrupt 例外が発生します。これは正しいです?Python 2 では raw_input は '' を返すと思います。Python 3 では入力が raw_input に置き換わっていることを理解していました。

4

1 に答える 1

2

いくつかのテストを試してください:

try:
    s = input('enter string: ')
except KeyboardInterrupt:
    print 'Error raised'

「エラーが発生しました」というメッセージが表示される場合は、ご質問の内容からそうなるはずですが、iOS のバグである可能性があります。私が知っていることからinput、Python 3 の関数は空の文字列を取ることができますが、まだ Python 3 で作業していないのでわかりません。

とりあえず、try/except ケースを while ループに入れて、次のように空白の入力が発生しないようにすることをお勧めします。

while True:
    try:
        s = input('enter string: ')
        break
    except KeyboardInterrupt:
        continue

そして、Apple にバグを報告してください。「Python 3 では入力が raw_input に置き換えられたことを理解していました」についてinput()は、その通りです。ユーザー入力を取得する唯一の標準的な方法です。

また、人々があなたを完全に助けることができる唯一の方法は、あなたが問題を抱えているコードを投稿することです.

于 2013-11-13T05:38:18.487 に答える