Вопрос:

Почему возврат значения, а затем его использование в качестве переменной не работает в Python таким образом?

python function variables return return-value

50 просмотра

3 ответа

38 Репутация автора

import time
def planeFun ():
    print("The plane has spiked your intrest")
    print("  s    ")
    skully=input("You ran a couple feet away, are you going to go look back in?\n")
    if skully in ["Yes", "yes", " yes", " Yes", "y", "Y", "ya"]:
        print("You decide to go and check back in, make sure what you saw is real!")
        goin=input("should you investigate the plane more, or run away?\n")
        return goin


planeFun()

result= planeFun()
if result in ["run", "Run", " run", " Run", "run away", "Run away", " run away", " Run away"]:
    print("You decide to leave, something weird is going on, and you're not sticking around to find out")

Что я сделал не так в этой программе? Я пытался это исправить и не смог. Всякий раз, когда вводится run, программа запускает функцию, и я не могу понять, почему.

Автор: QuestionedE Источник Размещён: 08.11.2017 10:22

Ответы (3)


3 плюса

259 Репутация автора

Со второй до последней строки вы набрали:

`if reslut in ...`

Попробуйте с результатом.

Автор: Pablo Oliva Размещён: 08.11.2017 10:24

0 плюса

374 Репутация автора

Вы должны заполнить оператор "else" для отладки, означает печатать skully, если ввод не да, то же самое для результата

Автор: sslloo Размещён: 08.11.2017 10:31

0 плюса

18209 Репутация автора

Решение

Всякий раз, когда вводится run, программа запускает функцию, и я не могу понять, почему.

Это связано с тем, что функция вызывается planeFunдважды:

planeFun()          # <-- 1

result= planeFun()  # <-- 2

Наряду с этим я бы порекомендовал то, что @ Жан-Франсуа Фабр упомянул в комментариях. Удаление конечных и ведущих пробелов и ввод данных без учета регистра может упростить проверку на определенные результаты:

def planeFun ():
    print("The plane has spiked your intrest")
    print("  s    ")
    skully=input("You ran a couple feet away, are you going to go look back in?\n").lower().strip()

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

Автор: Spencer Wieczorek Размещён: 08.11.2017 10:35
Вопросы из категории :
32x32