Python - Как мне сделать так, чтобы моя другая программа выполнялась только тогда, когда оператор if согласован? - PullRequest
1 голос
/ 03 апреля 2020

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

enter code here

cookbook = int(input("What recipe would you like to make? (Please state the number)\n"))
if cookbook == 1:
    import mymodule as mx
    mx.greeting("Nana")

    a = mx.person1["age"]
    print(a)

    mx.omin(2)

    mx.tmin(4)

    mx.cmin(10)

    mx.smallest(0)
else:
    print("Updates pending")

Ответы [ 2 ]

2 голосов
/ 03 апреля 2020

Кажется, вы хотите изменить, какой python файл вы собираетесь запустить. Вы можете сделать это, просто изменив пространство имен из импорта.

cookbook = input("What recipe would you like to make?")
if cookbook == "pepper":
    import pepper as recipe # This is the name of the file I want to execute
elif cookbook == "pasta":
    import pasta as recipe

recipe.run()

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

Вот пример с 3 файлами, насколько я понимаю, что вы пытаетесь:

cookbook.py

cookbook = input("What recipe would you like to make? ")
if cookbook == "pepper":
    import pepper as recipe
elif cookbook == "pasta":
    import pasta as recipe

recipe.run()

pepper.py

def run():
    print('\n1: Grow plant')
    print('\n2: Get pepper')

pasta.py

def run():
    print('\n1: Mix water with flour and egg')
    print('\n2: Flatten')
    print('\n2: Boil in water')

Затем вы запускаете cookbook.py и вводите 'перец' или 'макароны'

0 голосов
/ 10 апреля 2020

Что помогает, так это то, что вместо использования слов для выбора импортируемой опции используйте цифры и сообщите пользователю об этом в вопросе. Кажется, что функции не способны обрабатывать пользовательский ввод, поэтому введите его в код перед запуском, как в «mx.omin (2)».

cookbook = int(input("What recipe would you like to make? (Please state the number)\n"))
if cookbook == 1:
    import mymodule as mx
    mx.greeting("Nana")

    a = mx.person1["age"]
    print(a)

    mx.omin(2)

    mx.tmin(4)

    mx.cmin(10)

    mx.smallest(0)
elif cookbook == 2:
    import sauce as mx
    mx.greeting("Nana")

    mx.cabmin(0.6666)

    mx.carmin(2)

    mx.cookmin(200)

    mx.smallest(0)

    mx.confidence("OK")

    mx.final("sauce")
else:
    print("Updates pending")


...