def twothousand(amt):
n=500
div1=amt//n
mod1=amt%n
return (mod1,n,div1)
def fivehundred(amt):
n=200
div1=amt//n
mod1=amt%n
return (mod1,n,div1)
def calculate(amt):
if amt <10:
print("hi")
elif amt>=200 and amt<500:
mod1,n,div1=fivehundred(amt)
return (mod1,n,div1)
#the above return statement isn't returning anything.
#That is, now the program doesn't go to the main function 2nd time.
elif amt>=500 and amt<2000:
mod1,n,div1=twothousand(amt)
return (mod1,n,div1)
def main1():
amt=int(input("Enter the amount: "))
mod1,n,div1=calculate(amt)
print (mod1,n,div1)
#The above print function executes only once.
if mod1!=0:
amt=mod1
calculate(amt)
if __name__=="__main__":
main1()
输出:
Enter the amount: 1700
200 500 3
预期输出:
Enter the amount: 1700
200 500 3
0 200 1
在calculate((函数调用第二次发生后,我无法执行返回语句,如注释中所写。我没有得到第二个输出。蟒蛇新手,请帮忙。
很抱歉没有提前更新逻辑。逻辑是:
当用户要求1700的金额时,他只能使用500和200的货币获得该金额。因此,第一个输出是-200 500 3;即500货币的3个数字。。剩余的是200。我想调用函数calcule,直到值mod1==0。
您的main((函数应该如下所示:
def main1():
amt=int(input("Enter the amount: "))
mod1,n,div1=calculate(amt)
print (mod1,n,div1)
#The above print function executes only once.
if mod1!=0:
amt=mod1
mod1,n,div1 = calculate(amt)
print (mod1,n,div1)