Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2015 23:21:37

0x420
Зарегистрирован: 2015-07-26
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

работа int внутри функции

Добрый день. Решая задачу столкнулся с одной проблемой
я хотел этот фрагмент перенести в функцию

n = int((raw_input('vvdeite')), 10)
print n
выход:
>>> 
vvdeite-00000001234
-1234
>>>

в функции все работает по другому:
def chi(n):
   n = int(str(n), 10)
      return n    
print chi(-00000001234)
>>> 
-668
>>> 


прошу вас помочь понять в чем моя ошибка
перед тем как писать сюда ознакомился int и str.

Офлайн

#2 Окт. 5, 2015 23:27:56

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

работа int внутри функции

Вы не правильно сделали - в функцию надо передавать строку, а вы уже передали число, причем в восьмиричной системе. и str в функции лишнее

print chi('-00000001234')



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Окт. 5, 2015 23:41:03

0x420
Зарегистрирован: 2015-07-26
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

работа int внутри функции

а как сделать так что бы передавая число либо строку я получал число в десятичной системе ?

Отредактировано 0x420 (Окт. 5, 2015 23:58:27)

Офлайн

#4 Окт. 6, 2015 00:02:02

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

работа int внутри функции

Проверяйте корректность формата сами.

Офлайн

#5 Окт. 6, 2015 00:09:08

0x420
Зарегистрирован: 2015-07-26
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

работа int внутри функции

Каким образом?

Офлайн

#6 Окт. 6, 2015 02:19:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

работа int внутри функции

0x420
n = int((raw_input('vvdeite')), 10)
Это то же самое, что и
n = int(raw_input('vvdeite'))

Удивительно, но это всё, оказывается, можно и напрямую проверить в консоли
>>> int('123')
123
>>> int('12345')
12345
>>> int('12345' * 10)
12345123451234512345123451234512345123451234512345L
>>>



Отредактировано py.user.next (Окт. 6, 2015 02:21:58)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version