Как я могу структурировать переменные более эффективно в Python? - PullRequest
0 голосов
/ 05 июня 2018

Извините, если заголовок не настолько конкретен.Я пытаюсь реструктурировать переменные и операторы if в программе, чтобы сделать код более эффективным.Текущий код довольно большой, и я уверен, что его можно сократить как минимум на 70%.

Я только начал изучать Python две недели назад, возможно, мне не хватает основных функций, которые довольно очевидны.

Вот код:

def function():

    variable = int(input('Input: ')

    if variable == 10:
        variable = 1
    elif variable == 9:
        variable = 0.9

Если я хочу повторить это с другими значениями и переменными, это получится довольно долго, и это то, что я хочу исправить.

Мой друг сказал мне использовать словари для хранения значений, но я не уверен, как использовать операторы if со значениями словаря.

Как мне структурировать свой код, чтобы сделать его короче?

Ответы [ 4 ]

0 голосов
/ 05 июня 2018

Спасибо всем за ваши ответы, решение оказалось проще, чем я ожидал, и теперь я чувствую себя глупо, что не знал раньше.

def probeNew():
    variable = int(input('Input: '))
    output = variable/6.666667
    print(output)

probeNew()

Вместо записи всех фиксированных значений для каждого ввода, я простосделать формулу для любого результата, который я хочу от ввода.(Я знаю, очень очевидно и легко)

0 голосов
/ 05 июня 2018

Если вы хотите четко реализовать логику поиска, используйте структуру dict для сохранения пар ключ / значение.

Ключ обычно представляет собой строку, а значение может быть любого другого типа,например, строка, целое число и т. д.

В вашем случае вы можете настроить lookup_table = {"10": 1, "9": 0.9} и получить значение по ключу, например, variable =lookup_table [str (10)]

lookup_table={"variable":"value1","variable2":2}
variable = lookup_table[variable]
0 голосов
/ 05 июня 2018

По крайней мере, для 10 и 9 вы делите переменную на 10. Так что лучше писать так, а не явно.Кроме того, вы можете объединить 2 случая в одном случае, тогда.

Это немного сократит код.

def function():
    variable = int(input('Input: '))
    if variable == 10 || variable == 9:
        variable /= 10
0 голосов
/ 05 июня 2018

Словарь действует как отображение .Таким образом:

def f(x):
    d = {
        10: 1,
        9: 0.9
    }

    return d[x]

Это делает его короче?На самом деле, нет.Но в некоторых случаях это может быть понятнее, чем использование цепочек операторов if.

  • Если операторы являются очень общей структурой.
  • Словари гораздо более ограничены в приложении.

Иногда яснее будет конкретизация (а не использование общей структуры).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...