Мне нужно создать функцию, которая выполняет следующие действия для назначения класса: - Напишите функцию Python, которая будет принимать в качестве входных данных три строковых значения от пользователя.Метод вернет пользователю конкатенацию строковых значений в обратном порядке.Функция вызывается из основного метода.- В методе main запросите у пользователя три строки.
Первоначально я создал функцию (lkng_glss_lttr_bot) со вложенным словарем, которая запрашивала у пользователя ввод (разделы буквы), сохраняла его в словаре, объединяла записи и затем возвращала в обратном порядке.Строки как ЗазеркальеФункция работала так, как я ожидал, и я смог создать небольшую программу с циклами, чтобы пользователь мог добавлять новые записи.Но как только я добавил основной метод, удалил вход из lkng_glss_lttr_bot () и попытался поместить вход в main (), все пошло не так.
В настоящее время я получаю NameError: имя 'получателя' не определено.Если я закомментирую функцию get_recipient (), то она перейдет к следующей вложенной функции и выдаст мне NameError.
В моем коде отсутствует что-то, что позволяет именовать переменные, но я нуб и не могу понять, в чем проблема.
Я подумал, что возможнопроблема заключалась во вложенном словаре, поэтому я упростил функцию, вынув словарь, удалив циклы и завершив программу после составления одной буквы.Опять же, функция работала, когда ввод был в lkng_glss_lttr_bot (), но как только я попытался поместить ввод в main (), я не смог заставить программу выполняться.
Примеры, которые я видел наПоэтому я предлагаю создать отдельную функцию вне main () для хранения информации и ввода пользовательских данных в эту отдельную функцию, но это не будет работать в соответствии с требованиями моего назначения.Некоторые люди также предложили добавить глобальные переменные.Я попробовал это, и все еще получил ту же ошибку.
Я пытался создать вложенную функцию для каждой переменной и вернуть переменную, но это также не сработало.Я думал, что вложение функций в main будет соответствовать требованиям ввода пользователя в метод main, но я все еще получаю NameError.
Честно говоря, я вообще не понимаю main (), особеннос пользовательским вводом, потому что примеры, которые я видел, не имеют ввода в main ().
def main():
lkng_glss_lttr_bot()
def get_recipient():
recipient = [input("\nWhat is the recipient’s name?\n")]
return get_recipient
def get_inquiry():
print("\nPlease inquire about %s's well being." % recipient)
inquiry = input("You can ask about the weather, or what %s has been doing to pass the time in the interim between your last contact:\n" % recipient)
return inquiry
def get_lttr_body():
body = input("\nPlease write a few sentences to inform %s of the recent happenings in your life:\n" % recipient)
return body
def get_final_sentiment():
final_sentiment = input("\nPlease close the letter by expressing the importance of your friendship and your desire to spend time with %s in the future:\n" % recipient )
return final_sentiment
def get_sender():
sender = input("\nWhat is your name?\n")
return sender
def get_postscript():
postscript = input("\nPlease write a short postscript to %s:\n" % recipient)
return postscript
# Function to create a personalized letter in reverse order
def lkng_glss_lttr_bot():
recipient = get_recipient()
inquiry = get_inquiry()
body = get_body()
final_sentiment = get_final_sentiment()
sender = get_sender()
postscript = get_postscript()
greeting = str("My Dearest")
closing = str("With all my love and affection,")
# Concatenate Greeting and Recipient
Line_1 = greeting + " " + recipient + "," + "\n"
# Concatenate Inquiry and Body
Line_2 = inquiry + " " + body + "\n"
# Concatenate Line_1, Line_2, Final_Sentiment, Closing, Sender, & Postscript to create a reverse ordered letter
rvrs_lttr = "P.S. " + postscript + "\n" + sender + "\n" + closing + "\n" + final_sentiment + "\n" + Line_2 + Line_1
# Using rvrs_lttr format, reverse the order of the entire letter using an extended slice to create a Looking Glass Letter
lkng_glss_lttr = rvrs_lttr[::-1]
# Notify sender that their letter contents have been added to the Bot
print("\nYour letter to %s has been composed by the Looking Glass Letter Bot:\n" % recipient + lkng_glss_lttr)
if __name__ == '__main__': main()
Буква должна выглядеть так:
, aloL tseraeD yM
.enif m'I? Uoy эра woH
! Uoy ssim I
, noitceffa dna evol ym lla htiW
oG-oG
! em llaC .SP
И все работает так, как я ожидаю, если входные подсказки находятся в функции lkng_glss_lttr_bot.Но я не могу обернуть голову вокруг main ().Любые предложения, чтобы получить меня в правильном направлении, будут оценены.Спасибо!