Почему он говорит, что имя не определено?

#python #function

#python #функция

Вопрос:

Итак, я создаю ранкер, который берет данные из Twitter. У меня возникла проблема, из-за которой я получаю сообщение об ошибке

 NameError: name 'tweets' is not defined
 

Это мой код

 while True:
    sleep(120 - time() % 120)
    def searchTwit():
        tweets = api.search("#stocks" or "#daytrading",count=100)
        return tweets


    def getTicker(tweets):
        for tweet in tweets:
            if "$" in tweet.text:
                x = tweet.text.split()
                for i in x:
                    if i.startswith("$") and i[1].isalpha():
                        i.strip(".")
                        i.upper()
                        tickList.append(i)

    # print(var_string)
    def retrieveTickers():
        for i in tickList:
            cursor.execute('INSERT INTO master.dbo.TickerTable (TickerName) VALUES (?);', (i))
        conn.commit()

        # thing to run
    searchTwit()
    getTicker(tweets)
    print("getting Tickers")
    retrieveTickers()
    print("sending tickers")
    print(tickList)
    tickList=[]
    print(tickList)
 

Я не уверен, что все это должно быть в цикле while или нет, и я также не понимаю, почему я получаю эту ошибку, когда одна из моих функций возвращает «твиты».

Комментарии:

1. tweets = searchTwit()

2. Когда вы return что-то делаете, вы не возвращаете имя переменной. Вы возвращаете его значение, поэтому вам все равно следует присвоить ему имя.

3. Кстати, функции должны быть определены вне цикла

4. Хорошо, спасибо, ребята, раньше у меня были функции снаружи, но я запутался в этой ошибке