Форум сайта python.su
0
Ввожу число напр. 116076 в восьм. сист.
сдвигаю на 2 разряда в лево ( num << 2) На бумаге получается 470370 А в Pythone - 05164150 Почему?
num = oct(116076) num = int(num) num = num << 2 print oct(num)
Офлайн
16
Неправильно вводите восьмеричное число.
In [1]: num = int('116076', 8) In [2]: num = num << 2 In [3]: print oct(num) 0470370
Офлайн
221
Python понимает введенные числа следующим образом: десятичная система (просто число) - 123, двоичная форма (приставка 0b) - 0b1111011, восьмеричная система (приставка 0) - 0173, в шестандцатеричной системе (приставка 0x) - 0x7b
num = 0116076 num = num << 2 print oct(num) 0470370
Офлайн
0
Вот еще вопросик… Мне нужно получить список чисел, но я не могу это сделать, если я ввожу число напр. 000010 Питон не воспринимает нули с лева В итоге питон записывает только 010 Тобишь 8 :mad: А мне нужен список spis = Что делать??
Отредактировано ilja (Дек. 17, 2012 06:49:50)
Офлайн
857
JOHN_16в третьей версии заменили с 0173 на 0o173
Python понимает введенные числа следующим образом
…
восьмеричная система (приставка 0) - 0173
>>> num = int('116076', 8) >>> num <<= 2 >>> oct(num) '0o470370' >>>
iljaхрани в строках
если я ввожу число напр. 000010 Питон не воспринимает нули с лева
>>> '000010' '000010' >>> int('000010') 10 >>>
Отредактировано py.user.next (Дек. 17, 2012 07:47:45)
Офлайн
0
Дык мне нужна строка или список как раз
spis = [0,0,0,0,1,0]
spisToInt = [] spis = [0,0,0,0,1,0] for element in spis: num = spis[i] num = int(num,8) spisToInt[i].append(num) i = i+1
Отредактировано ilja (Дек. 17, 2012 08:15:38)
Офлайн
0
Заменил For на While и еще кое что Все работает :)
Офлайн
221
ilja можно короче используя генераторы списков:
spis = [0,0,0,0,1,0] [int(str(x), 8) for x in spis]
Офлайн
221
iljaсудя по тому коду вы не понимаете что делаете, полистайте “Чаплыгин - учимся программировать вместе с Python” - времени займет 3-7 дней, зато пользы будет очень много
Заменил For на While и еще кое что Все работает :)
Офлайн
iljaтак Вы хотите изменить список или новый создать (судя по Вашему коду)?
Как мне сделать этот список типа Int ?
Офлайн