Нужна помощь в отношении функций в моем существующем коде - PullRequest
0 голосов
/ 01 июля 2019

Мне нужна помощь / руководство о том, как применять функции к моему уже существующему коду. У меня есть цикл While и for, идущий правильно, и код выполняется, но я должен сделать это там, где я добавляю функции и вызываю их по моим операторам if.

Вот что я должен сделать --- функция, чтобы приветствовать пользователя этой программы и предоставить выбор меню. Эта функция не будет принимать никаких аргументов. б. Функции для преобразования из британских / американских единиц в метрические единицы. я. Каждая функция примет имперскую / американскую единицу в качестве аргумента ii. Он будет преобразован в соответствующую метрическую единицу. Вам нужно будет найти формулу (ы) конвертации в Интернете для каждой из приведенных ниже конверсий. III. Убедитесь, что в вашем определении функции есть оператор возврата. внутривенно Когда вы вызываете функцию, присвойте функцию переменной и напечатайте переменную для пользователя. v. Имперские / американские единицы, которые будут преобразованы. 1. Мили в километры 2. Ярды в метры 3. Дюймы в сантиметры 4. Фаренгейты в Цельсия 5. Фунты в килограммы c. Создайте цикл while, чтобы запрашивать ввод данных пользователем (для какого преобразования они хотят) и вызывать функции в модуле преобразования метрик.

Вот мой код до сих пор ---

print(".....................Metric Conversion........................")

def welcome():
    print("Hello, the purpose of this program is to give the conversion for Imperial/US units.")

def miles(miles):
    return 

def Yards(yards):
    return yards

def Inches(inches):
    return inches

def kilogram(kilogram):
    return kilogram

calculate = 'yes'
while calculate:
    print('''    1) Mile to Kilometers
    2) Yards to Meters
    3) Inches to Centimeters
    4) Fahrenheit to Celsius
    5)Pounds to Kilgrams''')
    answer = input("Please choose and option ")

    if answer == '1':
        miles = float(input("Please enter the Mile to convert to kilometer  "))
        conversion_factor = 1.609
        kilometers = miles * conversion_factor
        print("The conversion from Miles to Kilometers is: ",kilometers)

    elif answer =='2':
        yards = float(input("Please enter the Yard to convert to Meters:  "))
        conversion_rate = 0.9144
        meters = yards * conversion_rate
        print("The conversion from Yards to Meters is: ",meters)

    elif answer =='3':
        inches = float(input("Please enter the Inch to convert to centimeters: "))
        conversion_rate = 2.54
        centimeters = inches * conversion_rate
        print("The conversion from Inches to Centimeters is: ", centimeters)

    elif answer =='4':
        fahrenheit = float(input("Please enter the degree in Fahrenheit to find the Celsius:  "))
        celsius = (fahrenheit -32) *5.0/9.0
        print("The conversion from Fahrenheit to Celsius is: ", celsius)

    elif answer == '5':
        pounds = float(input("Please enter the Pound to convert to Kilogram: "))
        conversion_rate = 0.453592
        kilograms = pounds * conversion_rate
        print("The conversion from Pounds to Kilograms is: ", kilograms)


    else:
        print("You must enter in one of the available options.")

    calculate = input("Would you like to calulate again? ")

1 Ответ

0 голосов
/ 01 июля 2019

Если ваша цель состоит в меньшей избыточности, вы также можете представить себе такой класс:

class Converter:
    def __init__(self, imperial_unit_name, metric_unit_name, factor):
        self.imperial_unit_name = imperial_unit_name
        self.metric_unit_name = metric_unit_name
        self.factor = factor # you could also add an offset if needed

    def run(self):
        miles = float(input("Please enter the {} to convert to {}: "
                            .format(self.imperial_unit_name,self.metric_unit_name)))
        print("The conversion from {} to {} is: {}"
              .format(self.imperial_unit_name,self.metric_unit_name, miles * self.factor))

# Use as many conversions as you want
conversions = [ ("Miles", "Kilometers", 1.609), ("Inches","Centimeters",2.54) ]

А затем, чтобы сделать преобразование:

answer = 1
Converter(*conversions[answer]).run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...