我正在尝试创建一个投资回报率计算器。我只想接受int
格式输入。我创建了一个try-except
块来避免以其他格式输入。但是,如果任何用户str
在Rent
或中输入了错误的输入(例如),我的逻辑就会失败Loss
。
如果他们这样做,则while循环开始Investment
再次要求输入。我想绕过它,然后让代码从相应变量本身(无论是Rent
还是)中请求输入Loss
。有什么建议吗?
print('This is a ROI calculator. Please enter below details:')
while True:
try:
Investment=int(input('Investment:'))
Rent=int(input('Rent/month:'))
Loss=int(input('Loss/year:'))
if Loss:
break
except ValueError:
print('Please enter in a number format only')
def ROI(Investment,Rent,Loss):
Net_profit=int((Rent*12) - Loss)
ROI=((Net_profit/Investment)*100)
ROI=round(ROI,2)
print(f'Your Return on Investment is: {ROI}')
ROI(Investment,Rent,Loss)
使用功能的力量:
def inputInt(text):
"""Ask with 'text' for an input and returns it as int(). Asks until int given."""
while True:
try:
what = int(input(text))
return what # only ever returns a number
except ValueError:
print('Please enter in a number format only')
while True:
Investment = inputInt('Investment:')
Rent = inputInt('Rent/month:')
Loss = inputInt('Loss/year:')
if Loss: # this will break as soon as Loos is != 0 ?
break
# etc
因此,您始终会在下面处理数字输入,并在始终返回整数的特定函数中保持输入收集的循环以及错误处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句