Уведомления

Группа в Telegram: @pythonsu

#1 Май 12, 2013 13:57:16

locky_kid
Зарегистрирован: 2013-02-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

Есть простенький код:
import operator
def function_f(n):
k = 0
while n>0:
if n % 2 == 1:
k = 1
a = divmod(n, 2)
return k + function_f(a)
return 0

b=213
print (function_f(b))

и странная ошибка:
Traceback (most recent call last):
File “C:\Users\iglyakho\shad3v1.py”, line 12, in <module>
print (function_f(b))
File “C:\Users\iglyakho\shad3v1.py”, line 8, in function_f
return k + function_f(a)
File “C:\Users\iglyakho\shad3v1.py”, line 4, in function_f
while n>0:
TypeError: unorderable types: tuple() > int()


Моих скромных познаний не хватает, чтобы понять каким образом переменная в формате int превращается в кортеж.
Расскажите, пожалуйста, где я неправ

Отредактировано locky_kid (Май 12, 2013 13:57:51)

Офлайн

#2 Май 12, 2013 14:39:01

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

a = divmod(n, 2)
return k + function_f(a)

divmod(3, 2)
Out[3]: (1, 1)

Офлайн

#3 Май 12, 2013 14:44:32

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

a = divmod(n, 2)
return k + function_f(a[0])

только цикл получился бесконечный

Офлайн

#4 Май 12, 2013 15:33:48

elisk
Зарегистрирован: 2013-04-09
Сообщения: 35
Репутация: +  7  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

import operator
def function_f(n):
	k = 0
	while n>0:
		if n % 2 == 1:
			k = 1
			a = divmod(n, 2)
			return k + function_f(a[0])
		n -= 1	
	return 0
b=213
print('count= ', function_f(b))

Офлайн

#5 Май 12, 2013 17:49:18

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

онлайн
http://www.pythontutor.com/visualize.html#

отлаживайте

Офлайн

#6 Май 12, 2013 18:05:40

locky_kid
Зарегистрирован: 2013-02-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Товарищи, уделите минутку внимания, пожалуйста!

Спасибо огромное, товарищи!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version