簡體   English   中英

Python:用戶輸入和無效返回

[英]Python: User Input and Invalid returns

我正在嘗試在 python 中創建一個程序,用戶將輸入一個溫度和單位,讓程序將溫度轉換為開爾文。 對於代碼,我需要幫助檢測輸入無效的情況,如果輸入無效則返回 None 值。

cas_number = "7732-18-5" 
rho = 1000
mu = 1
Tm = 273.15
Tb = 373.13
k = 0.58


units = input("Input desired units, 'K' for Kelvin, 'C' for Celsius, and 'F' for Fahrenheit \n")

temperature = input("Input temperature value \n")


def check_units(units):
    if units == 'F' or units == 'C' or units == 'K':
        return True
    else:
        print("Invalid Input")
        return False

def check_temperature(temperature):
    try:
        float(temperature)
        return True
    except:
        return False    

def convert_to_kelvin(temperature, units):
    if check_temperature == True and check_units == True:
        if units == 'K':
            temperature = temperature
            return temperature
        elif units == 'C':
            temperature += Tm
            return temperature
        elif units == 'F':
            temperature = (temperature - 32)/1.8 + Tm
            return temperature
    else:
        print("Invalid Input")
        return

def is_gas(temperature):
    if check_temperature and check_units:
        if temperature >= Tb:
            return True
        elif temperature < Tb:
            return False
    else:
        return None

def is_liquid(temperature):
    if check_temperature and check_units:
        if temperature > Tm and temperature < Tb:
            return True
        elif temperature <= Tm and temperature >= Tb:
            return False            
    else:
        return None

def is_solid(temperature):
    if check_temperature and check_units:
        if temperature <= Tm:
            return True
        elif temperature > Tm:
            return False
    else:
        return None
def check_units(units):
    if units == 'F' or units == 'C' or units == 'K':
        return True
    else:        
        return None

測試 check_units()

units = input("Input desired units, 'K' for Kelvin, 'C' for Celsius, and 'F' for Fahrenheit \n")

input_check = check_units(units) # calling the function

if input_check == True:
    print('Valid input')
if input_check == None:
    print('Invalid input')

你的 check_temperature() 搞砸了。 獲得輸入后,您可以將其轉換為浮點數,如下所示:

temperature = input("Input temperature value \n")
temperature = float(temperature)

或者

temperature = float(input("Input temperature value \n"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM