Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Python Заполнение массива по спирали https://www.cyberforum.ru/ python-beginners/ thread1259189.html
Всем привет! Питон начал изучать недавно. Не могу решить задачу. На ввод поступает число n. Требуется в квадрате размером n*n "нарисовать змейку" слева-направо сверху-вниз, как в примере т.е грубо...
Python Алгоритм Гаусса-Жордана на Python
Здравствуйте. Ищу вашей помощи, т.к. сам в питоне абсолютный новичек. Решил его использовать для расчетных работ в университете взамен MathLab. Задача относительно не сложная, но в коде я еще слабо...
Python Линейный алгоритм: найти минимум и максимум из трех чисел https://www.cyberforum.ru/ python-beginners/ thread1255619.html
даны три числа а,b,c.найти max и min этих чисел.
Python Как определить, связны ли две вершины в графе? https://www.cyberforum.ru/ python-beginners/ thread1254705.html
Доброго времени суток! Подскажите пожалуйста алгоритм, который смог бы определить, связны ли две вершины в графе
Как написать функцию, которая выдает случайное число? Python
Решил написать функцию,которая выдает случайное число.А как это сделать понятие не имею!Помогите... Знаю что есть уже random.randint()
Python Не могу вызвать функцию в python https://www.cyberforum.ru/ python-beginners/ thread1253531.html
print("1=+,2=+,3=*,4=/") ch=int(input()) a=int(input()) b=int(input()) if ch=="1": def add(): c=a+b print(c) add() if ch=="2":
Python Найти индекс максимального элемент двумерного массива https://www.cyberforum.ru/ python-beginners/ thread1252061.html
Задача такая: есть двумерный массив типа: , , ] надо найти индексы всех максимальных элементов то есть должен вернуть: ,,] Есть ли какое ниудь изящное решение? Код: sk=, , ] b=3 m = max()#...
Задача с таймером Python
Добрый день. Вопрос покажется тривиальным но я не смог найти ответ. Суть такая: мне надо на выходе получить часы вида чч:мм:сс. #начальное время на часах deho = 1 demi = 1 dese = 1 day = 0...
Python Количество микросекунд с начала дня Ниже приведен код позволяющий получить текущий timestamp в микросекундах. #include <sys/time.h> #include <stdio.h> int main(void) { struct timeval tv; if( gettimeofday( &tv,... https://www.cyberforum.ru/ python-beginners/ thread1251368.html Python Рандомный вывод одного из двух заданных слов https://www.cyberforum.ru/ python-beginners/ thread1250291.html
Нужно в if написать случайное действие... Пример: if s == 15: рандом(Blue1() или Blue2()) И в коде есть такое: def Blue1(): MouseClickLeft #образно говоря, просто код лень писать ...
Написать программу, которая будет проверять цвет пикселя без скриншотов экрана Python
Возможно ли на Python написать программу, которая будет проверять цвет пикселя без скриншотов экрана? Хочу написать бота который реагирует на цвет, но вот все сводится к использованию скриншотов...
Python Как получить список доступных устройств в Windows https://www.cyberforum.ru/ python-beginners/ thread1248639.html
Необходимо получить перечень устройств хранения данных (дисков, подключенных флешек и т.д.) в ОС Windows.
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 4
0

TypeError int object is not callable, ошибка в функции len - Python - Ответ 6625703

19.09.2014, 22:53. Показов 7831. Ответов 4
Метки (Все метки)

Добрый день, Уважаемые форумчане.

Я пишу простенький скрипт, суть его в том, что он берет строки (строки содержат фамилии) из файла txt, парсит каждую строку на символы и для каждого символа забирает значение (от 1 до 9) из словаря tu_main. Далее, производится расчет итогового числа заданной фамилии, примерно так: значение каждого символа складывается между собой, итоговое число разбивается на отдельные числа и снова складывается.
Скрипт работал, если главную переменную (строку файла) я задавай в ручную типа val_last_name = u"ИВАНОВ".
Однако, автоматизировав основную часть процесса получения числа из фамилии и загнав это в тело цикла, я получаю ошибку TypeError: 'int' object is not callable.
1 вопрос: почему интерпретатор заставляет меня len делать глобальной переменной? Если global len убрать, интерпретатор будет ругаться.
2 вопрос: почему первая строка парсится и рассчитывается корректно, а следующая за не отваливается с ошибкой?
P.S. я видел, что на форуме уже обсуждали подобные проблемы, но, к сожалению, у меня не получилось на их основе поправить свой код. Заранее спасибо за помощь.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf8 -*-
def CountFunc(a):
    # инициализация главного словаря
    global len
    tu_main = {
        u"А".encode('utf8'): 1, u"Б".encode('utf8'): 2, u"В".encode('utf8'): 6, u"Г".encode('utf8'): 3,
        u"Д".encode('utf8'): 4,
        u"Е".encode('utf8'): 5, u"Ж".encode('utf8'): 2, u"З".encode('utf8'): 7, u"И".encode('utf8'): 1,
        u"Й".encode('utf8'): 1,
        u"К".encode('utf8'): 2, u"Л".encode('utf8'): 2, u"М".encode('utf8'): 4, u"Н".encode('utf8'): 5,
        u"О".encode('utf8'): 7,
        u"П".encode('utf8'): 8, u"Р".encode('utf8'): 2, u"С".encode('utf8'): 3, u"Т".encode('utf8'): 4,
        u"У".encode('utf8'): 6,
        u"Ф".encode('utf8'): 8, u"Х".encode('utf8'): 5, u"Ц".encode('utf8'): 3, u"Ч".encode('utf8'): 7,
        u"Ш".encode('utf8'): 2,
        u"Щ".encode('utf8'): 9, u"Ы".encode('utf8'): 1, u"Ь".encode('utf8'): 1, u"Э".encode('utf8'): 6,
        u"Ю".encode('utf8'): 7,
        u"Я".encode('utf8'): 2}
 
    val_last_name = a
    lenght = len(val_last_name)
 
    # временный список для хранения парсинга строк
    tmp_list = []
 
    # цикл сложения промежуточного значения
    i = 0
    while i < lenght:
        val = val_last_name[i]
        val_total = tu_main[val.encode('utf8')]
        tmp_list.append(val_total)
        i += 1
 
    # суммирование и конвертация промежуточного значения для повторной операции сложения
    summa_total = sum(tmp_list)
    str_sum = str(summa_total)
 
    # кол-во символов для цикла парсинга
    len = len(str_sum)
 
    # создаем временный список для хранения парсинга строк
    tmp_list_2 = []
 
    # цикл сложения итогового числа
    n = 0
    while n < len:
        converted_summa = int(str_sum[n])
        tmp_list_2.append(converted_summa)
        n += 1
    summa_total_2 = sum(tmp_list_2)
    return summa_total_2
 
# открытие файла для подсчета кол-ва строк
f = open('tu_last_name.txt', 'r')
cnt_rows = sum(1 for i in f)
f.close()
 
file = open('tu_last_name.txt', 'r')
# создание списка из строк файла
line_list = file.readlines()
file.close()
 
# основной цикл
n = 0
while n < cnt_rows:
    line = (line_list[n]).rstrip('\n')
    if line != "":
        decode_line = line.decode('utf8')
        print "Номер фамилии:", decode_line, "равен %s" %CountFunc(decode_line)
    n += 1
содержимое файла tu_last_name.txt
ААРОНОВ
АБPАМОВ
АБPАШКИН
АБАБИЛОВ
АБАБИН
АБАБКИН
АБАБКО
АБАБУЛАЕВ
АБАБУРКО
АБАГАЕВ
АБАГОВ
АБАГОДИНОВ
АБАДАЕВ
АБАДЕЕВ
АБАДЕНКОВ
АБАДЖАЛИМОВ
АБАДЖЕВ
АБАДЖЕРОВ
АБАДЖИЕВ
АБАДУЛИН

Вернуться к обсуждению:
TypeError int object is not callable, ошибка в функции len Python
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2014, 22:53
Готовые ответы и решения:

TypeError: 'int' object is not callable
Начал изучать питон но столкнулся с проблемой. def d(): x=int(input(&quot;Введите: &quot;))...

TypeError: 'module' object is not callable
Помогите, пожалуйста, не понимаю, в чем ошибка. Выводится такая ошибка: Traceback (most recent...

Max(): TypeError: 'Series' object is not callable
Добрый вечер! Объясните пожалуйста, почему это не работает a=0.1 b=0.2 c=0.3 s= max(s)

TypeError: 'str' object is not callable. Как исправить?
import string file = open(&quot;input.txt&quot;, &quot;r&quot;) db = file.readlines() file.close() file =...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2014, 22:53
Помогаю со студенческими работами здесь

Как исправить ошибку TypeError: 'str' object is not callable?
Как исправить ошибку типа объекта. try: WebDriverWait(chrome, 60).until( ...

TypeError: 'str' object is not callable. Как исправить? - Python
import time, socket, threading, requests, urllib, socks def thread(numthreads, attack): ...

'int' object is not callable
import math #горизонтальная координата x = 1 #ускорение свободного падения g = 9.822...

Ошибка TypeError: unorderable types: str() > int()
n=input('Введите число') summa=0 while n&gt;0: i=n%10 n=n/10 summa=summa+i print(summa)...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru