我想做一个高级订购功能。代码是好的。 但我不太确定为什么它输出3次具有相同的值。 假设它应该是如果用户输入1,它会打印第一行代码,等等。我一直得到相同的输出。高级订购功能 - 打印三次
def double(x):
return 2*x
def square(x):
return x*x
def cube(x):
return x*x*x
def getInput():
while True:
userInput = input("Enter the number you want to test")
try:
if (userInput <= 0):
print ("Please enter a valid number")
except ValueError:
print("Please enter a valid number")
else:
return userInput
break
def getInput2():
while True:
userInput2 = input("Choose your options\n 1 - double \n 2 - square \n 3 - cube")
try:
if (userInput2 <= 0):
print ("Please enter a valid number")
except ValueError:
print("Please enter a valid number")
else:
return userInput2
break
userInputNum = getInput();
userInputOption = getInput2();
def doTwice(func,x):
if func(x== 1):
return double(double(userInputNum))
elif func(x== 2):
return square(square(userInputNum))
elif func(x== 3):
return cube(cube(userInputNum))
else:
print ("Please enter only 1,2 or 3")
print doTwice(double,userInputOption)
print doTwice(square,userInputOption)
print doTwice(cube,userInputOption)
输出给定的(因为我的输入选项1,和数字I键在计算为4):
16
16
16
输出我想要的(因为我的输入选项1,和数量我密钥计算为4):
16
256
262144
你的函数'doTwice(FUNC,X)'从来没有使用'func'或'x' ... – Cyrbil
你永远不会改变'userInputOption'所以由于参数相同,输出总是相同的。 – Arc676
编辑我的问题,请再次看看代码 – stack