Python: как вернуть строки в def, содержащие функции if / else - PullRequest
0 голосов
/ 23 сентября 2018

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

Проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь напечатать или вернуть строку, ничего не происходит.Если я беру струны отдельно, они работают нормально.Вот часть моего кода.(У меня есть две части кода, подобные этой, и ни одна из них не выполняет ничего, у первой есть if и elif, а у второй if и else)

speed=int(input("Expected average speed in MPH?"))

def response(speed):

    if speed > 80:


        return "Your travelling dangerously fast, as well as breaking the law. Slow down."


    elif speed < 60:


        return "Your going slow. Please speed up to not be a hinderance to other traffic."

Эта часть моего кода не отображается в конечном результате.,Я не могу думать о том, что я могу делать неправильно.Принимая во внимание, что если я только что сделал это, то все работает отлично.

enter=int(input("Enter I-15 at what mile marker?"))

exit=int(input("Exit I-15 at what mile marker?"))

def milestotravel(exit, enter):
    return abs(exit-enter)

print ("You will travel: "+str(milestotravel(exit, enter))+" miles.")

Весь мой код до сих пор: (все еще работает над некоторыми из них)

enter=int(input("Enter I-15 at what mile marker?"))

exit=int(input("Exit I-15 at what mile marker?"))

goal=float(input("How many hours from now do you want to arrive?"))

speed=int(input("Expected average speed in MPH?"))


def milestotravel(exit, enter):
    return abs(exit-enter)

def traveltime(speed, goal):
    return goal/speed

def response(speed):

    if speed > 80:

        print "Your travelling dangerously fast, as well as breaking the law. Slow down."

    elif speed < 60:
        print "Your going slow. Please speed up to not be a hinderance to other traffic."


print ("You will travel: "+str(milestotravel(exit, enter))+" miles.")


def response2(traveltime, goal, speed):

    if traveltime(speed, goal) > goal:
        print "You will be "+str(traveltime(speed, goal)-goal)+" hours late."

   else:
        print "Leave in the next "+str(traveltime(speed, goal))+" hours to be on time."

1 Ответ

0 голосов
/ 23 сентября 2018

Вы на самом деле вызываете свою функцию где-нибудь?Это не похоже на тебя.Вы определили его (блок кода def), но чтобы на самом деле сделать что-то с этим, вы должны вызвать его.

Поместите это в свой файл (после блока кода def):

response(speed)

Затем запустите ваш файл.Определение функции (def и т. Д.) Не будет запускать функцию, она просто сделает ее доступной для последующего ее запуска, вызвав ее (так же, как вы вызываете print, говоря print ('some text')

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

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