Python: печать повторяющегося значения в строке

#python

#python

Вопрос:

Мне нужно написать простую программу на python 3.6, которая принимает вводимые пользователем данные и вычисляет значение n n*n n*n*n n*n*n*n .

Итак, если пользователь вводит 7, то на консоль должно быть выведено следующее 7 7*7 7*7*7 7*7*7*7 = 2800 .

Как мне выполнить это с помощью функции print ?

До сих пор я пробовал следующее:

 input_int = int(input("Please enter a value: "))

result_int = input_int   input_int * input_int   input_int * input_int * input_int    input_int * input_int * input_int * input_int

print(input_int   input_int * input_int   input_int * input_int * input_int    input_int * input_int * input_int * input_int, " = ", result_int)
  

и не дает мне того, что я хочу.

Комментарии:

1. Что вы пробовали до сих пор?

2. Обновил мой пост

3. Вы можете использовать преобразование input_int в строку и использовать для их объединения.

4. Пожалуйста, покажите больше контекста. Откуда input_int берется? Для чего выполняется ваш расчет result_int ?

5. В любом случае, конечно, это не дает вам того, что вы хотите — например, в вашем коде нет ничего, что пытается создать * символы or в выходных данных. Логически продумайте этапы решения проблемы.

Ответ №1:

 input_int = int(input("Please enter a value: "))
result_int = input_int   input_int * input_int   input_int * input_int * input_int    input_int * input_int * input_int * input_int
input_string = f'{input_int}   {input_int} * {input_int}   {input_int} * {input_int}   {input_int} * {input_int}   {input_int} * {input_int}   {input_int} = {result_int}'

print(input_string)
  

Ответ №2:

Вот небольшая помощь, поскольку это похоже на обычное назначение.

Вам нужно преобразовать целые числа в строки и обрабатывать математические символы как строки… Итак, что-то вроде этого…

 In [2]: my_int = 7                                                              

In [3]: # convert to a string...                                                

In [4]: my_int = str(my_int)                                                    

In [5]: print(my_int,' ',my_int,'*')                                            
7   7 *
  

Ответ №3:

Учитывая, что ваш результат уже сохранен в result_int, а ‘n’ хранится в input_int .

print(input_int input_int * input_int input_int * input_int * input_int input_int * input_int * input_int * input_int, " = ",result_int)

Это не сработает, так как вы непосредственно печатаете значение.

Вам нужно использовать что-то вроде:

print(input_int ' ' input_int '*' input_int ' ' input_int '*' input_int '*' input_int ' ' input_int '*' input_int '*' input_int '*' input_int, " = ",result_int)

Это дало бы желаемый результат.

Комментарии:

1. Или мы можем использовать цикл for для итеративной печати этого?

2. Да, мы также можем использовать для этого цикл for .

Ответ №4:

Если число итераций фиксировано равным 4, вы можете выполнить итерацию от 1 до 5 или, если ваша итерация динамическая, вы можете заменить 5 своей переменной.

 input_int = int(input("Please enter a value: "))
out = 0
string = ''
for i in range(1,5):
    string  = (str(input_int) "*")*i " "
    out  = pow(input_int, i)

string = string.replace("* ", "   ")[:-2] " = "

print(string str(out))
  

Объясните:

for повторяется от 1 до 5, что приводит к повторению в 4 раза.

string = (str(input_int) ««)i » «, который создаст строковое отображение, подобное 7 7 7 7 7 7*

Здесь необходимо удалить лишние знаки ‘*’ и ‘ ‘.

out = pow(input_int, i)

Pow — это функция python по умолчанию для вычисления квадрата числа, например pow(7,2)

Замените лишние ‘*’ и ‘ ‘ на replace и добавьте ‘=’ в конце.

Ответ №5:

Прочитав последние комментарии, я думаю, вы ищете что-то вроде этого:

 x = 7
result = 7   (7 * 7)   (7 * 7 * 7)   (7 * 7 * 7 * 7)
print(f'{x}   {x} * {x}   {x} * {x} * {x}   {x} * {x} * {x} * {x} = {result}')
  

Вывод

 7   7 * 7   7 * 7 * 7   7 * 7 * 7 * 7 = 2800
  

Документация по Python: форматированные строковые литералы (f-строки)

Ответ №6:

Просто немного математики.

 >>> n = 7
>>> (n**5 - 1) // (n - 1) - 1
2800