これは、例として使用している私のプログラムのダムダウンバージョンです。
GOTOを使用すると、コードがずさんで混乱するため、悪い習慣であることを私は知っていますが、私が抱えているこの問題を解決するには完璧です(問題は投稿の下部に詳しく説明されています)。
def prompt():
while True:
user_input = raw_input:
if input == '?':
print help_o
elif not user_input.isalpha():
print "You entered bad characters"
elif user_input == 'r': ##Restart
???????????
else:
return user_input
load_word_list() ##Load words into list
for word in wordList: ##Loop that needs to restart
for i in range(5):
to_speak = "Spell, %s" %word
subprocess.Popen(['espeak', to_speak])
answer = prompt()
if answer != word:
print "You got it wrong"
#Print results
プロンプトで、wordListリストをリロードし、外側のforループを再開します。
GOTOを使用すると、???? ... GOTO load_word_list()の代わりに使用できます。
しかし、これはPythonであるため(そしてPythonは優れたコードに関するものです)、この問題を解決するためのPythonの方法は何ですか?