Как исправить TypeError: объект 'int' не может быть вызван из разделенного числа

Я пытаюсь создать программу для генерации текста с именами пользователей из txt-файла, но я продолжаю получать TypeError: 'int' object is not iterable я знаю, что это значит, но я понятия не имею, как решить мою проблему. Я пытался просто сделать y = 12 / 2, и та же ошибка возникла, когда я прошел цикл for y, я действительно запутался, поэтому, если бы кто-то мог мне помочь, это было бы здорово.

это мой код

def generateNum():
        #imports random
        from random import randint

        for _ in range(10):
            value = randint(0, 900000)
            return(str(value))

def getNumOfLines( file):
        #opens txt file
        with open(file) as f:
            Lines = f.readlines()
            count = 0
            # Strips the newline character
            for line in Lines:
                count += 1

            return(count)
class debug:
    def __init__(self, credsTxt, tagsTxt):
        self.credsTxt = credsTxt
        self.tagsTxt = tagsTxt

        self.numOfCreds = getNumOfLines(credsTxt)
        self.numOfTags = getNumOfLines(tagsTxt) 

        self.ammountPerAccount = round(self.numOfTags / self.numOfCreds)   

    
    def getComments(self):
        #initializes comment
        comment = ""
        #opens txt file

        file1 = open(self.tagsTxt, 'r')

        count = 0
        while True:
            count += 1
        
            # Get next line from file
            line = file1.readline()

            for i in self.ammountPerAccount:
                # if line is empty
                # end of file is reached
                if not line:
                    break
                comment += ' ' + line.strip() + ' ' + generateNum() + '.'  
            return(comment)
                


print(debug('D:/FiverrWork/user/instagram-bot/textGen/assets/login_Info.txt', 'D:/FiverrWork/user/instagram-bot/textGen/assets/tags.txt').getComments())

это моя ошибка трассировки стека

Traceback (most recent call last):
  File "d:\FiverrWork\user\textgenerator\textgenerator\txt.py", line 57, in <module>
    print(debug('D:/FiverrWork/user/textgenerator/textgenerator/assets/login_Info.txt', 'D:/FiverrWork/user/textgenerator/textgenerator/assets/tags.txt').getComments())
  File "d:\FiverrWork\user\textgenerator\textgenerator\txt.py", line 47, in getComments
    for i in self.ammountPerAccount():
TypeError: 'int' object is not callable

Ваш код не соответствует трассировке. Похоже, что код исправлен, а трассировка является результатом запуска другой версии вашего скрипта.

Klaus D. 10.04.2022 15:30

Похоже, оскорбительная строка: for i in self.ammountPerAccount:. Я вижу сверху, что вы назначаете: self.ammountPerAccount = round(..., поэтому я считаю, что это int. Что вы на самом деле хотите, чтобы цикл for делал, поскольку вы не можете перебирать int?

quamrana 10.04.2022 15:32

@Клаус Д. нет, это правильно, я просто запустил его, и он делает то же самое

AnonyomailDeveloper 10.04.2022 15:35

@quamrana, поэтому я хочу, чтобы он запускал этот код х раз, когда х является значением ammountPerAccount.

AnonyomailDeveloper 10.04.2022 15:39

О, так ты хотел написать: for _ in range(self.ammountPerAccount):

quamrana 10.04.2022 15:40

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

AnonyomailDeveloper 10.04.2022 15:42
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
6
16
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш цикл for в том виде, в котором он опубликован, не может выполнять итерацию по int. Вы хотели перебрать range():

for _ in range(self.ammountPerAccount):

    # if line is empty
    # end of file is reached
    if not line:
        break
    comment += ' ' + line.strip() + ' ' + generateNum() + '.' 

Я использовал _ в качестве переменной-заполнителя, поскольку фактическое значение i каждый раз не использовалось.

Другие вопросы по теме