私はR.PiでPythonを学んでいます。次のコードでは、 "inputchecker"関数を "getinput"関数に戻している間にメモリに開いたままにしておくと思われます。ネスト機能はPythonicですか?
このコードは悪いですか?それは非常に異なって行われるべきですか?
def getinput(i):
if i == 1:
first = input("Would you like A or B? ")
inputchecker(1, first)
elif i == 2:
second = input("Would you like C or D? ")
inputchecker(2, second)
def inputchecker(n, userinput):
def _tryagain_(n):
usage(n)
getinput(n)
if n == 1:
if userinput in ("A", "B"):
print("You chose wisely.")
getinput(2)
else:
_tryagain_(n)
elif n == 2:
if userinput in ("C", "D"):
print("You chose wisely.")
else:
_tryagain_(n)
def usage(u):
if u == 1:
print("Usage: Just A or B please.")
if u == 2:
print("Usage: Just C or D please.")
getinput(1)
「神託」であることをプログラミングimperitaveに固執するだろうが、これはのみのpythonに限定されるものではありません。すべての言語がこの「ハック」をサポートしています。 whileループを関数に入れるのに十分な頻度で頻繁に使用しない限り、whileループを使用するのが最善です。 – ProgramFast