Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2021 10:52:26

AndrewNovi
Зарегистрирован: 2021-01-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать так, чтобы 2+2 равнялось 22

Добрый день!
Допустим у меня есть два значения, которые равняются 2. Если я их складываю, то получаю ответ 4. Но мне нужно сделать так, чтобы они складывались не как цифры, а условно, как буквы. То есть 2+2=22, 3+3+3 = 333 и так далее. Как это можно сделать?

Отредактировано AndrewNovi (Янв. 21, 2021 10:52:55)

Офлайн

#2 Янв. 21, 2021 11:15:13

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

Как сделать так, чтобы 2+2 равнялось 22

  
>>> lst = [2, 2, 2]
>>> out = int(''.join(map(str, lst)))
>>> out
222
>>>

Можешь также на 10 умножать перед каждым сложением
  
>>> lst = [2, 2, 2]
>>> 
>>> out = 0
>>> for i in lst:
...     out = out * 10 + i
... 
>>> out
222
>>>
Так лучше, так как работа с числами происходит быстрее, чем со строками. Одна строка - это несколько чисел, тогда как каждое число - это одно число.



Отредактировано py.user.next (Янв. 21, 2021 11:24:55)

Офлайн

#3 Янв. 21, 2021 11:16:27

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

Как сделать так, чтобы 2+2 равнялось 22

 >>> s = [1,2,3,4,5]
>>> sum(map(lambda x, y: x*10**y, s[::-1], range(len(s))))
>>> 12345



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Янв. 21, 2021 11:16:51)

Офлайн

#4 Янв. 21, 2021 12:35:02

AndrewNovi
Зарегистрирован: 2021-01-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать так, чтобы 2+2 равнялось 22

Спасибо!

Офлайн

#5 Янв. 21, 2021 13:22:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Как сделать так, чтобы 2+2 равнялось 22

AndrewNovi
чтобы они складывались не как цифры, а условно, как буквы
Я бы короче ответил.
Ну и используйте тогда буквы
 '2'+'2'
>>> 22



Отредактировано doza_and (Янв. 21, 2021 13:22:26)

Офлайн

#6 Янв. 22, 2021 00:49:37

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

Как сделать так, чтобы 2+2 равнялось 22

doza_and
Я бы короче ответил.
Иногда в учебных задачах на числа попадаются такие элементы. Человеку предлагается менять цифры местами в числе или там подсчитывать цифры в числе. В нормальных задачах, которые учат, запрещается при этом работать со строками. Преобразуй, но без строк и операций с ними, только числовыми операциями. Для программирования в целом это полезно, потому что это в питоне со строками функционал развит и в нём всё удобно делать, а где-нибудь в другом языке - нет, да и условий таких может не быть. Битовые операции из той же области. Когда работаешь с битами, ты должен понимать, что ты с ними делаешь. Один бит не на то место поставишь и всё, ошибка, которую ещё не отловишь потом так просто. Будет годами сидеть какая-нибудь фигня потом и неправильно работать, и ты даже понимать не будешь, что устройство работает только наполовину из-за одного бита. Я вот давно писал программу для проверки состояния модема, так у него всё взаимодействие через биты в числе, которое ему подаётся. Ты у него что-то спрашиваешь набором бит, а он тебе отвечает что-то тоже набором бит. Никаких там ни строк, ни исключений, ни сообщений, ничего нет.

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



Отредактировано py.user.next (Янв. 22, 2021 01:25:28)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version