Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 24, 2021 08:23:29

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Реверс кортежа

Здравствуйте.
Не получается у меня вывести кортеж в обратном порядке.
Сама задача такая:
Напишите программу, в которой пользователь вводит целое число, а программа формирует кортеж, который состоит из цифр, входящих в это число. Предложите способы создания кортежа, при котором цифры, формирующие число, включаются в кортеж в прямом и обратном порядке.

Офлайн

#2 Дек. 24, 2021 12:49:32

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Реверс кортежа

Вроде получилось, но не пойму откуда появляется запятая в самом начале во втором ряду.

 his = input('введите число: ')
hiss = tuple(his)
pre = int(''.join(map(str, hiss)))
k = []
for i in range(0, pre + 1):
    k.append(i)
    k.sort(reverse=True)
    print(f'{i}', end=',')
print(f'\n', *k, sep=',')

Офлайн

#3 Дек. 24, 2021 14:54:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Реверс кортежа

 raw = input('Enter number')
res_tuple = tuple(int(i) for i in raw)
res_tuple_reverse = tuple(int(i) for i in raw[::-1])
print(res_tuple, res_tuple_reverse)



Офлайн

#4 Дек. 25, 2021 05:47:21

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Реверс кортежа

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

Офлайн

#5 Дек. 25, 2021 06:29:52

AleksandrM
Зарегистрирован: 2021-12-04
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Реверс кортежа

Может так ?

 raw = input('Enter number: ')
res_tuple = tuple(int(i) for i in raw)
res_tuples = int(''.join(map(str, res_tuple)))
res_tupl = tuple(int(z) for z in range(0, res_tuples))
print(*res_tupl, sep=',')
res_tuple_reverse = tuple(int(i) for i in res_tupl[::-1])
print('\n', *res_tuple_reverse, sep=',')

Отредактировано AleksandrM (Дек. 25, 2021 06:30:52)

Офлайн

#6 Дек. 25, 2021 11:25:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Реверс кортежа

AleksandrM
Нужно чтобы при вводе пользователя целого числа, программа формировала кортеж, который состоит из цифр, входящих в это число. А потом эти числа вывести реверсом.
Моя программа именно это и делает. Вы её запускали?



Офлайн

#7 Дек. 25, 2021 13:45:00

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Реверс кортежа

 num = int(input('введите число:'))
order = (input('введите порядок(1 -> прямой, 2 -> обратный):'))
if order == '1':
    my_tuple = tuple(range(num+1))
    print(','.join(map(str, my_tuple)))
elif order == '2':
    my_tuple = tuple(range(num,-1,-1))
    print(','.join(map(str, my_tuple)))
else:
    print('порядок не определен')

вывод
 введите число:12
введите порядок(1 -> прямой, 2 -> обратный):2
12,11,10,9,8,7,6,5,4,3,2,1,0
Process finished with exit code 0

Офлайн

#8 Дек. 25, 2021 15:14:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Реверс кортежа

xam1816

…программа формировала кортеж, который состоит из цифр, входящих в это число

 my_tuple = tuple(range(num+1))

ну разве вы это сделали?



Офлайн

#9 Дек. 25, 2021 16:34:44

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Реверс кортежа

FishHook
ну разве вы это сделали?
Ну да, понял что не то, сначала код автора запустил, он там выводит их как диапазон, а нужно из цифр этого числа
 num = input('введите число:')
order = (input('введите порядок(1 -> прямой, 2 -> обратный):'))
if order == '1':
    my_tuple = tuple(map(int,num))
    print(','.join(map(str, my_tuple)))
elif order == '2':
    my_tuple = tuple(map(int,num[::-1]))
    print(','.join(map(str, my_tuple)))
else:
    print('порядок не определен')

вывод

 введите число:54321
введите порядок(1 -> прямой, 2 -> обратный):2
1,2,3,4,5
Process finished with exit code 0

Отредактировано xam1816 (Дек. 25, 2021 21:00:58)

Офлайн

#10 Дек. 26, 2021 00:46:48

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

Реверс кортежа

AleksandrM
Напишите программу, в которой пользователь вводит целое число, а программа формирует кортеж, который состоит из цифр, входящих в это число.
Тут есть загвоздка. Целое число принадлежит интервалу от -inf до +inf. Следовательно, оно может быть введено со знаком плюс и со знаком минус.

Так что старайся работать с числами как с числами, а не как со строками. Во первых, ты в них никогда не встретишь ведущих нулей (которые тоже цифры сами по себе) или трёх минусов и плюсов (которые тоже знаки числа сами по себе) слева, справа или в середине. Во-вторых, числа в питоне едят многократно меньше памяти, потому что строки в питоне - это такие массивы чисел, тогда как одно число в питоне - это одно число либо редко массив чисел (только если число очень большое и начинается длинная арифметика, что бывает редко в учебных задачах, да и в реальных задачах тоже). Заодно ты приобретёшь полезный навык раскладывания чисел на цифры. Любой дурак может обращать строки или выбирать что-то из них по одному элементу, так как создатель питона позаботился о том, чтобы со строками было удобно и просто работать (то есть это не дураки такие крутые, а это создатель просто упростил работу со строками по максимуму). Но в реальных задачах на числа (шифрование, хеширование, попиксельное преобразование изображений, передача данных по протоколам между устройствами) тебе придётся работать с числами не как со строками, а математически. И вот в эти моменты тебе очень пригодится навык разложения чисел на части, склеивания чисел из чисел и тому подобное. Ты будешь рад, что это всё протренировал раньше и тебе не приходится во время работы сидеть и искать информацию “а как же это сделать - разложить число на цифры, а то тут в этом ассемблере строк вообще нет и реверса для строк тем более”.



Отредактировано py.user.next (Дек. 26, 2021 00:49:14)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version