сумма двух или более чисел в python - PullRequest
0 голосов
/ 10 марта 2020

у меня есть простой код

orgtxt = input("Enter text: ")
charA = "a"
charB= "b"
charC="c"

for i in charA:
    orgtxt = orgtxt.replace(i, '2')
for i in charB:
    orgtxt = orgtxt.replace(i, '22')
for i in charC:
    orgtxt = orgtxt.replace(i, '222')

print(orgtxt)

приведенные выше результаты кода будут (222222), если вход был (ab c)

, теперь я хочу суммировать каждую строку с конкретный c номер (30), поэтому он сделает это

orgtxt = input("Enter text: ")
charA = "a"
charB= "b"
charC="c"

for i in charA:
    orgtxt = orgtxt.replace(i, '2')
sum = orgtxt + 30

for i in charB:
    orgtxt = orgtxt.replace(i, '22')
sum = orgtxt + 30

for i in charC:
    orgtxt = orgtxt.replace(i, '222')
sum = orgtxt + 30

print(orgtxt)

мне нужно

  • искать во входном тексте любой символ (а)

  • заменить его на (2)

  • , затем добавить (30)

и продолжить для поиска любого символа (b)

  • замените его на (22)

  • add (30) и так далее ...

, тогда в конце он покажет мне окончательные результаты, которые будут (3252252), если ввод (ab c)

******* *********************

Ладно, вот четкие инструкции

подсказка пользователю для ввода

orgtxt = input("Enter text: ")

определить строки для введенного пользовательского текста, который будет заменен на следующих шагах

charA = "a"
charB= "b"
charC="c"
charD="d"

и т. Д. Для всех символов из A ~ Z, поэтому любой текст, который будет вводить пользователь, будет заменен указанным c число, которое будет представлять собой серийные номера, начиная с 201 ~ 227

здесь я ищу код для любой буквы A и заменю его на номер (201)

for i in charA:
    orgtxt = orgtxt.replace(i, '201')

тогда мне нужно для суммирования результата (201) с указанным c числом (30)

sum = int(orgtxt) + 30

Таким образом, здесь будут получены результаты (231)

продолжить выполнение кода и поиск любую букву B и заменить ее на (202)

for i in charB:
    orgtxt = orgtxt.replace(i, '202')

, тогда мне нужно сложить результат (202) с указанным c числом (30)

sum = int(orgtxt) + 30

Так результаты здесь будут (232)

продолжить выполнение кода и найти любую букву C и заменить ее на (203)

for i in charC:
    orgtxt = orgtxt.replace(i, '203')

, тогда мне нужно суммировать результат ( 203) с указанным c числом (30)

sum = int(orgtxt) + 30

Так что результатом здесь будет (233)

, код будет иметь определения для всех символов A ~ Z от 201 до 227

суммировать каждый замененный символ (с заданным номером), а затем

print(orgtxt)

распечатать окончательные результаты, которые могут быть, например, (231242239), если пользователь i nput был (Ali)

231, первоначально был (A) заменен числом (201), а затем сумма с (30)

242 была первоначально (L) заменена числом (212), а затем сумма с (30)

239 была первоначально (i) заменена на число (209), а затем сумма с (30)

1 Ответ

0 голосов
/ 10 марта 2020

Я думаю, вы должны объяснить еще раз.

у вас есть пример "abc"

после замены "a" на "2" у вас будет

"2bc"

Что вы имеете в виду, добавив 30 к "2bc" ?????

Пожалуйста, объясните также, какой результат вы хотели бы получить для строки

"aabc" а зачем "ababbc"?

Предлагаю вам шаг за шагом объяснить в вашем вопросе, что бы вы хотели иметь. Тогда будет легко написать программу для нее, но без каких-либо примеров все, вероятно, будут толковать ваш вопрос по-разному, и все, что вы получите, будут дикими догадками.

На самом деле написание однозначного вопроса довольно сложно, но необходимо если вам нужны хорошие ответы.

Одна из проблем заключается в том, что вам нужно преобразовать строку в число (целое число), прежде чем вы сможете выполнить любую арифметическую c операцию.

, если вы Если у вас есть строка "2" (например, a = "2"), и вы хотите выполнить операции (добавьте, например, 30), то вам необходимо преобразовать ее (например, rslt = int(a) + 30)

Также, если у вас есть числа, и вы хотите объединить их, затем вы должны сначала преобразовать их в строки. так что с a=12 и b=54 вам пришлось сделать str(a) + str(b), чтобы получить "1254".

Ее еще одна попытка ответа, но у меня сложилось впечатление, что я полностью неверно истолковал ваш вопрос

Пожалуйста, приведите пример ввода и пример ожидаемых результатов и объясните шаг за шагом. Например, вы добавляете 30 только один для всех a с или хотите добавить 30 противника a, что вы делаете с буквами, которые не a, b или c , ...

orgtxt = input("Enter text: ")
charA = "a"
charB= "b"
charC="c"
num_to_add = 30

result = ""
for i in orgtxt:
    if i == charA:
        result = result + str(num_to_add + 2)
    elif i == charB:
        result = result + str(num_to_add + 22)
    elif i == charC:
        result = result + str(num_to_add + 222)


print(result)

если это то, что вы хотите, то следующее должно дать идентичный результат, за исключением того, что любые буквы, которые не являются a, b, c, будут сохранены со вторым кодом и выпал с первым:

orgtxt = orgtxt.replace(charA, str(num_to_add + 2))
orgtxt = orgtxt.replace(charB, str(num_to_add + 22))
orgtxt = orgtxt.replace(charC, str(num_to_add + 222))

print(orgtxt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...