파이썬 기초 print(trump_tweet(text)) 에서 NameError: name 'text' is not defined

조회수 1216회

--------------------제가 작성한 코드-------------

def trump_tweet(text) :
    # 주어진 규칙에 맞추어 trump_twit()함수를 구현해주세요.
    # pass는 지우고 코드를 작성해주세요.
    words = text.split()

    Hashtag, Mention, Others = [],[],[]
    for word in words:
        if word.startswith('#'):
            plain_word=word[1:]
            Hashtag.append(plain_word)
        elif word.startswith('@'):
            plain_word=word[1:]
            Mention.append(plain_word)
        else :
            Others.append(word)
    return Hashtag, Mention, Others

print(trump_tweet(text))



# 아래 부분은 수정하지 마세요!
# 입력과 출력을 수행하는 코드입니다.
t = input()
trump_tweet(t)

---------------------여기서부터 문제(지시사항)입니다.-------------

지시사항
trump_tweet 함수는 text를 공백을 기준으로 nnn개의 문자열로 나눕니다. 각각의 나뉘어진 문자열을 아래의 규칙을 따라 분류합니다.

각 문자열이 '#'로 시작하면 'Hashtag'로 분류하여 리스트에 저장합니다.
각 문자열이 '@'로 시작하면 'Mention'로 분류하여 리스트에 저장합니다.
이외의 경우는 묶어서 따로 분류하여 리스트에 저장합니다.
각각 분류된 리스트를 아래 지정된 형식처럼 출력되도록 print 함수를 이용합니다.

제가 작성한 코드를 실행하면,

Traceback (most recent call last):
  File "main.py", line 18, in <module>
    print(trump_tweet(text))
NameError: name 'text' is not defined

이런 에러가 출력이 되는데 text를 정의하지 않았다는데 어떻게 풀어나가야할지 감이 잡히질 않습니다.

기초 중의 기초라는 건 알고 있는데, 사실 문과쪽 직무라서 제가 실무에서도 파이썬을 만질 일이 없는데 회사에서 파이썬 교육을 수료하라는 명령이 떨어져서 최근 추석연휴에도 매일 출근하는 일정 속에서 꾸역꾸역 강의는 다 수강하였습니다.

한 강의 끝에 나오는 짤막한 테스트 같은 건 바로바로 해결이 됐는데 이걸 코드를 직접 작성하려는 부분에서는 정말 머리가 하얘지면서 막막하더라구요. 제발 도와주십시오.

제 직무도 아닌데 역대급 스트레스를 줘서 다 놓아버리고 싶게 만들고 있는 게 파이썬입니다. 시간도 많고 여유가 있으면 진득하게 공부를 해보면 좋겠지만 당장 수료 만료일이라 조급한 마음에 울음만 나올 것 같고 혼자 공부할 엄두도 못 내고 있습니다 ㅠㅠ

1 답변

  • 수학 시간에 이런 문제를 풀어보신 적이 있을 겁니다.

    f(x) = 3x+9 일 때, f(4)의 값을 구하여라.

    이건 질문자님도 풀 수 있고 파이썬도 풀 수 있는 문제입니다. 하지만

    f(x) = 3x+9 일 때, f(y)의 값을 구하여라.

    이런 문제는 누구도 풀 수 없죠. y가 뭔지 모르거든요. 근데 여기서

    f(x) = 3x+9이고 y=-7 일 때, f(y)의 값을 구하여라.

    라고 하면 이건 풀 수가 있지요.

    자 이제 질문자님의 코드의 에러독해해 봅시다.

    NameError: name 'text' is not defined

    파이썬이 모르는 이름 text가 등장해서 문제를 못풀겠다는군요. 아무래도 우리는 f(4)가 아닌 f(y)의 값을 구하라고 시킨 모양이네요! 함수의 변수 자리에 값을 바로 대입해 주거나, 값이 있는 변수를 이용하면, 함수를 실행할 수 있을까나요?

    print(trump_tweet("아무 문자열이나 입력"))
    
    text664 = "아무 문자열이나 입력"
    print(trump_tweet(text664))
    

    안해봐서 모르겠는데 한번 직접 시도해 보시죠!

    파이썬은 21세기의 비주얼베이직이 되려는가? 위로의 말씀을 드립니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)