これは私のprogramのコードスニペットです。要求された値が入力されると、その変数の値が増加し、キーq
を押してループを終了して結果を出力します。私のコードは、sys
からargv
をインポートして引数を取ることに注意してください(コマンドラインの私の名前です)。intをcharと比較する
prompt = "# "
come_out = True
one = 0
two = 0
three = 0
four = 0
answer = 0
while (come_out == True):
print """
Enter q to exit()
> Do you like Got?
> What about LoTR?
> Okay, Fargo?
> Alright, last choice: American Gods?
"""
answer = raw_input(prompt)
if answer == 1:
one = one + 1
elif answer == 2:
two = two + 1
elif answer == 3:
three = three + 1
elif answer == 4:
four = four + 1
elif answer == ord('q'):
come_out = False
else:
print "Not applicable ~~~ exiting"
come_out = False
:
$ python ex14.py Sambhav-Jain
それはまでループを介してすべての方法を実行するために持っていたとして、それは、すべてのエラーを与えるものではありませんが、想定して動作しません。ユーザーが明示的にキーq
を押して終了しますが、:
Hi, Sambhav-Jain. Welcome to your ex14.py script.
Enter q to exit()
> Do you like Got?
> What about LoTR?
> Okay, Fargo?
> Alright, last choice: American Gods?
# 1
Not applicable ~~~ exiting
GoT Lovers: 0
LoTR Lovers: 0
Fargo Lovers: 0
American God Lovers: 0
は、私はオンラインで検索して、明示的に0123をキャストする方法を発見しました
answer = int(raw_input(prompt))
これをやって、私は、以前のバージョンのために使用したのと同じコマンドを実行することで、それがエラーを生成します:int
すなわち、変数
Hi, Sambhav-Jain. Welcome to your ex14.py script.
Enter q to exit()
> Do you like Got?
> What about LoTR?
> Okay, Fargo?
> Alright, last choice: American Gods?
# 1
Enter q to exit()
> Do you like Got?
> What about LoTR?
> Okay, Fargo?
> Alright, last choice: American Gods?
# q
Traceback (most recent call last):
File "ex14.py", line 26, in <module>
answer = int(raw_input(prompt))
ValueError: invalid literal for int() with base 10: 'q'
PS:重複としてこれをマークしないでください。
すばやく変更できるのは、qではなく-1を求めることです。このように、すべての入力タイプは同じです。 – Antimony
このガイドラインに従ってください:https://stackoverflow.com/help/mcve – klutt