1

文字当てゲームに取り組んでいます。

次の例で、変数 "userGuessPosition" の値を 2 にハードコードすると、コードが期待どおりに機能するのはなぜですか。

secretWord = ('music')
userGuessPosition = 2 
slice1 = (secretWord.__len__()) - userGuessPosition - 1  
print (secretWord[slice1:userGuessPosition])

しかし、input() 関数に頼ってプロンプトで 2 と入力しても、何も起こらないのですか?

secretWord = ('music')
userGuessPosition = 0
userGuessPosition == input()
slice1 = (secretWord.__len__()) - userGuessPosition - 1  
print (secretWord[slice1:userGuessPosition])

これは、「2」のキーボード入力が整数ではなく文字列として認識されているためだと思います。この場合、変換するための適切な構文がわかりません。

4

2 に答える 2

5
userGuessPosition = int(input())

(Single =;int文字列を int に変換します)

于 2013-04-05T04:00:29.893 に答える
5

問題は、入力が文字列として認識されるのではなく、構文にあるということです。代入操作を行うべき場所で比較操作を行っています。

使用する必要があります

userGuessPosition = input()

それ以外の

userGuessPosition == input()

このinput()関数は実際には、入力数値を最も適切な型である sp に変換しますが、これは問題にはなりません。ただし、文字列 (たとえばmy_string) を整数に変換する必要がある場合は、 を実行するだけですmy_int = int(my_string)

編集

以下で @HenryKeiter によって言及されているように、Python のバージョンによっては、 (常に入力を文字列として受け取る) の名前がPython 3 でに変更されたため、実際には戻り値をinput()手動で整数に変換する必要がある場合があります。raw_input()input()

于 2013-04-05T04:01:21.747 に答える