while循环中有多个输入,以及Python中的try-except块

用户名

我正在尝试创建一个投资回报率计算器。我只想接受int格式输入我创建了一个try-except块来避免以其他格式输入。但是,如果任何用户strRent或中输入了错误的输入(例如,我的逻辑就会失败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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

try/except 块的范围

try / except块中的Python变量范围

如何合并多个try-except块?

Try / Except块的Python单元测试

避免从类重复try / except块的代码

如何使try / except块内的变量公开?

Python:如何使用相同的try / except块简化多个语句

警告:try 块中的 'X' 与 'except ImportError' 也应该在 except 块中定义

Python中的try-except块未处理异常

如何使用try-except块来验证输入,并使用while语句提示用户直到Python中的有效输入?

使用Try and Except块,但是在Except部分中,它显示了Not Defined Python

即使有 try...except 块也会抛出异常

在try-except块中使用python“ with”语句

python缩短嵌入式try-except块

在try / except块中创建变量是否被视为不良做法?

如何在嵌套的try / except块中重新引发异常?

如何在嵌套的try / except块中重新引发异常?

查找函数的 try/except 块中是否发生错误

如何在 try/except 块中获取 cgitb 回溯?

在try / except块中串联数据帧

脚本卡在try-except块中

Python:通过带有多个例外的Try / Except块传播异常

为什么异常没有打印在except块中

如何使用 try 和 except 块防止重复?

在可以取消的任务中使用 try/except 块的正确方法

如何使用pytest测试try/except块的异常

EOFError,即使尝试了try和except块之后

Try-Except块-是否正确执行此操作?

不想使用if else而是尝试在Python中使用except块