Python多个问题限制为int [duplicate]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我做了一个函数,向用户提出3个问题;考虑到每块瓷砖的宽度,长度和成本......这会产生功能结束时的总成本。

我希望函数能够完成一系列问题,确保输入等于整数。但是我不希望它继续回到问题的开头。

例如。

如果用户在“成本是多少”中输入一个字符串:

我希望它重新提出这个问题而不是回到系列中的第一个问题。

正如现在的功能一样 - 如果没有输入整数,它将继续回到'什么是宽度:'的第一个问题。

"""
A function based on finding the cost of tiling a certain area; based 
on
width, length and the cost per tile
"""

def tile_cost():
while True:
    try:
        w = float(input('What is the width: '))
        l = float(input('What is the height: '))
        c = float(input('What is the cost: '))
    except ValueError:
        print('This is not an int')
        continue
    else:
        break

print("The cost of tiling the floor will be: £%.2f" % (w * l * c))


tile_cost()

我已经尝试了多种其他方式来实现我想要实现的目标,但代码变得混乱并重复自身并且实际上并不适合我。试图搜索这一段很长一段时间后,我发现很难找到问题的明确答案。

在此先感谢任何人的帮助,它将有助于进一步了解python :)

python error-handling while-loop
1个回答
0
投票

你可以分开号码选择器:

def pick_num(text):
    while True:
        try:
            a = float(input(text))
            return a
        except ValueError:
            print('This is not a number')



def tile_cost():
    w = pick_num('What is the width: ')
    l = pick_num('What is the height: ')
    c = pick_num('What is the cost: ')
    print("The cost of tiling the floor will be: £%.2f" % (w * l * c))
© www.soinside.com 2019 - 2024. All rights reserved.