允许用户输入浮点数时出现问题

2024-09-27 22:26:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个代码,用户需要输入float作为输入,以便计算循环的压力。我把事情当作字符串和非负输入来处理,但不知道如何让我的用户输入浮点数(2.5、1.6等),而不会出现错误或陷入循环。这是我的密码:

psrc = input("Enter starting pressure for source: ") # Druck Quelle [Pa] / pressure source 
    while psrc.isnumeric() == False or float(psrc) <=0 or float(psrc) >=3: 
        print ("Starting pressure must be numeric value in range 0-3. Please enter valid pressure value.")
        psrc = input("Enter new pressure: ")

编辑:算出了。 谢谢大家的想法。通过添加一个函数来解决这个问题,该函数检查值并将布尔值返回到循环,然后继续计算。 功能:

def is_float(n):
  try:
    float(n)
    return True
  except:
    return False

新循环定义:

psrc = input("Enter starting pressure for source: ") # Druck Quelle [Pa] / pressure source 
while is_float(psrc) != True or float(psrc) <=0 or float(psrc) >=3: 
    print ("Starting pressure must be numeric value in range 0-3. Please enter valid pressure value.")
    psrc = input("Enter new pressure: ")

Tags: or用户sourceforinputvaluefloatenter
3条回答

看看这个

x=False
while not x:
    try:
        psrc = float(input("Enter starting pressure for source: ")) # Druck Quelle [Pa] / pressure source 
        x=True
    except ValueError:
        print('Enter valid decimal number.')
print(psrc)

str(int(psrc)).isnumeric()我想会帮助你们解决这个问题

我可以提供两种方式: 1.

def is_it_float(num:str):
    if num.count(".")>1:
        return False
    num = num.split(".")
    for i in num:
        if not i.isnumeric():
            return False
    return True
def is_it_float(num:str):
    try:
        float(num)
        return True
    except ValueError:
        return False

相关问题 更多 >

    热门问题