Форум сайта python.su
Посмотрите. Правильно ли я написал? Что-то кажется где то есть ошибки. Питон изучаю всего 3 часа, прошу помочь!
http://dumpz.org/14508/
Офлайн
смотря в каком месте должна заканчиваться функция
ИМХО вам нужно так:
def f( self, mess, args):
"""nuber`s factorial"""
b = args.isdigit()
a = int(args)
if b != 0:
return int(a)
else:
return int(b)
Отредактировано (Ноя. 21, 2009 14:57:13)
Офлайн
нет. это для бота.
args - строка.
я ее переделываю в a (int)
если число а - не число, т.е. в args ввели букву к примеру, то должен работать else и выводить b!
Если а - число - ф-ия должна возвращать факториал от числа а.
Вот так.
Офлайн
def f( self, mess, args):
"""nuber`s factorial"""
b = args.isdigit()
a = int(args)
if b != 0:
return int(math.factorial(a))
else:
return int(b)
Офлайн
Тогда вот так:
def f( self, mess, args):
"""nuber`s factorial"""
b = args.isdigit()
a = int(args)
if b != 0:
return int(math.factorial(a))
else:
return int(b)
Офлайн
f это функция или метод какогото класса? Если функция то ненужен селф. Это вопервых. Во вторых, судя по коду b и а - локальные переменные функции f и их нельзя использовать вне функции(или же у вас просто жуткая путаница с отступами…). Если же они глобальные, то это не очень хороший стиль программирования.
Дальше, не понятно зачем функции передается параметр mess, если не используется? Проверку на неравенство нулю, тоже можно убрать.
Вобщем приведите в порядок отступы. Скорее всего они должны быть так как вам указали во втором посте.
def f(args):
"""nuber`s factorial"""
b = args.isdigit()
a = int(args)
if b:
return int(math.factorial(a))
else:
return int(b)
Отредактировано (Ноя. 21, 2009 15:57:44)
Офлайн
А может так? :)
def f(args):
"""nuber`s factorial"""
b = args.isdigit()
a = int(args)
if b:
result = int(math.factorial(a))
else:
result = int(b)
return result
Офлайн