Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 21, 2009 14:41:08

saur
От:
Зарегистрирован: 2009-11-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

Посмотрите. Правильно ли я написал? Что-то кажется где то есть ошибки. Питон изучаю всего 3 часа, прошу помочь!

http://dumpz.org/14508/



Офлайн

#2 Ноя. 21, 2009 14:53:06

andreykyz
От:
Зарегистрирован: 2009-11-19
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

смотря в каком месте должна заканчиваться функция
ИМХО вам нужно так:

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)

Офлайн

#3 Ноя. 21, 2009 15:17:14

saur
От:
Зарегистрирован: 2009-11-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

нет. это для бота.
args - строка.
я ее переделываю в a (int)
если число а - не число, т.е. в args ввели букву к примеру, то должен работать else и выводить b!
Если а - число - ф-ия должна возвращать факториал от числа а.

Вот так.



Офлайн

#4 Ноя. 21, 2009 15:31:41

saur
От:
Зарегистрирован: 2009-11-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

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)



Офлайн

#5 Ноя. 21, 2009 15:45:54

andreykyz
От:
Зарегистрирован: 2009-11-19
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

Тогда вот так:

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)



Офлайн

#6 Ноя. 21, 2009 15:48:13

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

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)
кстати return int(b) - работать не будет, тк b - встроеный метод (isdigit())



Отредактировано (Ноя. 21, 2009 15:57:44)

Офлайн

#7 Ноя. 21, 2009 22:01:14

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

функции - ламерский вопрос

А может так? :)

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



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version