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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python多个问题限制为int [duplicate]相关的知识,希望对你有一定的参考价值。

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

我做了一个函数,向用户提出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 :)

答案

你可以分开号码选择器:

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))

以上是关于Python多个问题限制为int [duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

 Failed to destroy end point associated with ProtocolHandler["ajp-nio-8009"] Duplica

在 Python 中,是不是可以将函数参数的类型限制为两种可能的类型? [复制]

Python 数量限制

1.7 Python基础知识 - 数值类型

Python:C++ 扩展返回多个值

Python 将变量输出拆分为多个变量