我刚开始学习函数,我正在练习在我的代码中实现一些功能。只是一个简单的例子......我怎样才能将其编码为正确循环并在用户需要时突破?
def profit(i,c):
gain = c - i
print('Your profit is:' + '' + str(gain))
def beginning():
x = float(input("What was your initial investment?"))
y = float(input("What is your investment worth now?"))
profit(x,y)
beginning()
ans = 'y'
while ans == 'y' or ans == 'Y':
ans = str(input('Would you like to calculate another investment? (Y/N)'))
beginning()
if ans != 'y' or ans != 'Y':
break
答案 0 :(得分:1)
有两种方法可以摆脱while循环。第一种方式显然是break
语句,有点像你所做的那样。要使其正常工作,您需要更改条件:
if ans != 'y' or ans != 'Y':
break
这将永远是真的,因为ans
不能是" y"和" Y"同时。你应该把它改成:
if ans not in ["y", "Y"]:
或者
if ans.upper() != "Y":
但是,在你的情况下,你根本不需要它。因为在if语句和while条件中你都在检查ans
,所以你可以摆脱if
并依赖它。
while ans.upper() == "Y":
当ans
成为" Y"以外的任何内容时,这将自动结束循环。或" y"。
你在这里使用break
的唯一原因是你想立即退出循环,而不是完成当前的迭代。例如:
while ans.upper() == "Y":
ans = input("Enter selection: ")
if ans == "I want to stop right now!":
break
print("Do other things, even if ans is not Y")
在这个例子中,"做其他事情"将始终打印,无论ans
是什么,除非ans
是"我想停止",在这种情况下,它不会被打印。
答案 1 :(得分:0)
获得用户输入后,您可以做的是ans = ans.capitalize()
。然后移除ans != 'y'
,因为这会导致循环中断。