Найти - Пользователи
Полная версия: Как сделать так, чтобы 2+2 равнялось 22
Начало » Python для новичков » Как сделать так, чтобы 2+2 равнялось 22
1
AndrewNovi
Добрый день!
Допустим у меня есть два значения, которые равняются 2. Если я их складываю, то получаю ответ 4. Но мне нужно сделать так, чтобы они складывались не как цифры, а условно, как буквы. То есть 2+2=22, 3+3+3 = 333 и так далее. Как это можно сделать?
py.user.next
  
>>> 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
>>>
Так лучше, так как работа с числами происходит быстрее, чем со строками. Одна строка - это несколько чисел, тогда как каждое число - это одно число.
Rodegast
 >>> s = [1,2,3,4,5]
>>> sum(map(lambda x, y: x*10**y, s[::-1], range(len(s))))
>>> 12345
AndrewNovi
Спасибо!
doza_and
AndrewNovi
чтобы они складывались не как цифры, а условно, как буквы
Я бы короче ответил.
Ну и используйте тогда буквы
 '2'+'2'
>>> 22
py.user.next
doza_and
Я бы короче ответил.
Иногда в учебных задачах на числа попадаются такие элементы. Человеку предлагается менять цифры местами в числе или там подсчитывать цифры в числе. В нормальных задачах, которые учат, запрещается при этом работать со строками. Преобразуй, но без строк и операций с ними, только числовыми операциями. Для программирования в целом это полезно, потому что это в питоне со строками функционал развит и в нём всё удобно делать, а где-нибудь в другом языке - нет, да и условий таких может не быть. Битовые операции из той же области. Когда работаешь с битами, ты должен понимать, что ты с ними делаешь. Один бит не на то место поставишь и всё, ошибка, которую ещё не отловишь потом так просто. Будет годами сидеть какая-нибудь фигня потом и неправильно работать, и ты даже понимать не будешь, что устройство работает только наполовину из-за одного бита. Я вот давно писал программу для проверки состояния модема, так у него всё взаимодействие через биты в числе, которое ему подаётся. Ты у него что-то спрашиваешь набором бит, а он тебе отвечает что-то тоже набором бит. Никаких там ни строк, ни исключений, ни сообщений, ничего нет.

То есть система одна и та же. И вот эта работа с числами как с числами готовит человека именно к нормальному программированию. Чтобы он делал не то, что может делать любой дурак (назовём это так “любой школьник”), а чтобы он делал то, что ему придётся фактически делать, когда он встретит реальный механизм/устройство, которых дофига вокруг. А в них нет ни строк, нифига, просто какие-то числа гуляют туда-сюда. И от того, умеет ли он строить и разбирать эти числа или же ждёт, когда ему какие-то строки удобные подарят, зависит то, сможет ли он выполнить задачу в реальной жизни или же будет с глупым лицом сидеть и ждать, когда придёт умный и необщительный дяденька с бородой и выполнит за него эту работу, потому что дяденька учился в нормальном вузе. Если ты прорешиваешь, ты будешь программистом. А если ты не прорешиваешь, то ты будешь стримером тупорылым, обложившимся плюшевыми игрушками и рассказывающим, как ты можешь всё написать. Только вот за годы у тебя не будет ни одной программы написанной; где-то в фантазиях они там будут, которые никто не проверит, потому что ты никому не интересен.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB