Python 如何在if语句中选择函数

Python 如何在if语句中选择函数,python,function,input,Python,Function,Input,我需要帮助,允许用户选择一个值并相应地调用函数 weight = input('Enter K for kilos or P for pounds : ') unit = weight if unit == "K": def metricTopound(kilograms): pounds = kilograms * 2.2 ounces = pounds * 16 return int(pounds), ounces % 16

我需要帮助,允许用户选择一个值并相应地调用函数

weight = input('Enter K for kilos  or P for pounds : ')

unit = weight

if unit == "K":

    def metricTopound(kilograms):

        pounds = kilograms * 2.2
        ounces = pounds * 16

        return int(pounds), ounces % 16

        kilograms = float(input("How many Kilos ? "))
        lb, o = metricTopound(kilograms)
        print('The amount of pounds you entered is {}. '\
        'This is {} pounds and {} ounces.'.format(kilograms, lb, o))

elif unit == " P ":

    def poundsToMetric(pounds):
        kilograms = pounds / 2.2
        grams = kilograms * 1000

        return int(kilograms), grams % 1000

        pounds = float(input("How many Pounds? "))
        kg, g = poundsToMetric(pounds)
        print('The amount of pounds you entered is {}. '\
        'This is {} kilograms and {} grams.'.format(pounds, kg, g))

用户应该能够选择
p
以获得千克的重量,或者选择
K
以获得磅的重量。

您可能需要事先定义功能:

def metricTopound(kilograms):
    pounds = kilograms * 2.2
    ounces = pounds * 16

    return int(pounds), ounces % 16

def poundsToMetric(pounds):
    kilograms = pounds / 2.2
    grams = kilograms * 1000

    return int(kilograms), grams % 1000

weight = input('Enter K for kilos  or P for pounds : ')

unit = weight

if unit == "K":
    kilograms = float(input("How many Kilos ? "))
    lb, o = metricTopound(kilograms)
    print('The amount of kilograms you entered is {}. '\
    'This is {} pounds and {} ounces.'.format(kilograms, lb, o))
elif unit == "P":
    pounds = float(input("How many Pounds? "))
    kg, g = poundsToMetric(pounds)
    print('The amount of pounds you entered is {}. '\
    'This is {} kilograms and {} grams.'.format(pounds, kg, g))
  • 输入的类型不正确,应在上面或单独的文件中定义,然后调用函数
  • return
    语句下面的行永远不会执行
  • 您正在将
    “P”
    传递给比较,因此用户需要先添加空格,然后添加P和尾随空格
  • 固定代码

    def metricTopound(kilograms):
    
            pounds = kilograms * 2.2
            ounces = pounds * 16
    
            return int(pounds), ounces % 16
    
    
    def poundsToMetric(pounds):
            kilograms = pounds / 2.2
            grams = kilograms * 1000
    
            return int(kilograms), grams % 1000
    
    
    unit = raw_input('Enter K for kilos  or P for pounds : ') #get as string
    
    weight= input("Ener Weight") #get as integer
    
    if unit == "K":
           metricTopound(weight)
           kilograms = float(input("How many Kilos ? "))
           lb, o = metricTopound(kilograms)
           print('The amount of pounds you entered is {}. '\
           'This is {} pounds and {} ounces.'.format(kilograms, lb, o))
    
    
    
    elif unit == "P":
             poundsToMetric(weight)
             pounds = float(input("How many Pounds? "))
             kg, g = poundsToMetric(pounds)
             print('The amount of pounds you entered is {}. '\
             'This is {} kilograms and {} grams.'.format(pounds, kg, g))
    

    为什么要在
    if-else
    块中定义函数?在外部定义它们,并在满足条件时调用它们。为什么在函数执行完成之前,您的函数会返回()?谢谢,我非常感谢您的帮助。脚本现在正在运行