Попытка вывода математического уравнения с помощью цикла for в python - PullRequest
0 голосов
/ 01 декабря 2019

Итак, у меня есть список изменяемого размера с целыми числами в нем, например [2,5,6,9,1], и я пытаюсь создать формулу сложения с циклом for:

z= 1
while z > 0:
    for i in range(len(list)):
        print(list[i],"+", end=" ")
    z = 0
    print("=",sum(list),end=" ")

Вот чтоя пытаюсь и вывод:

2 + 5 + 6 + 9 + 1 + = 23

Что мне делать, если я хочу вывести n целых чисел и n-1 плюс знаки между целыми числами?

Ответы [ 4 ]

1 голос
/ 01 декабря 2019

Вы можете использовать str.join, которые принимают итерируемые строки. Вам необходимо сопоставить каждый int с str, затем присоединиться к ним с помощью + и распечатать результат

values = [2, 5, 6, 9, 1]
formula = " + ".join(map(str, values))
print(formula, "=", sum(values))  # 2 + 5 + 6 + 9 + 1 = 23

# Using f-strings
formula = f'{" + ".join(map(str, values))} = {sum(values)}'
print(formula)
0 голосов
/ 01 декабря 2019

Вы можете использовать enumerate () , начиная с индекса 1

>>> l= [2,5,6,9,1]
>>> s = ''
>>> sum_ = 0
>>> for i, v in enumerate(l, 1):
         if i == len(l):
             # If the current item is the length of the list then just append the number at this index, and the final sum
             s += str(v) + ' = ' + str(sum_)
         else:
             # means we are still looping add the number and the plus sign
             s += str(v)+' +
>>> print(s)
2 + 5 + 6 + 9 + 1 = 23 
0 голосов
/ 01 декабря 2019

Использование join:

def printfn(alist):
    expr = " + ".join((map(str, alist)))
    sum_val = sum(alist)
    print("{} = {}".format(expr, sum_val))

a = [1,2,3]
printfn(a)
# 1 + 2 + 3 = 6

b = [1,2,3,4]
printfn(b)
# 1 + 2 + 3 + 4 = 10
0 голосов
/ 01 декабря 2019

Создайте цикл for в диапазоне (len (список) -1) и добавьте печать (list [len (list) -1]) перед z = 0

list = [2,5,6,9,1] 

z= 1
while z > 0:
    for i in range( len(list)-1 ):
         print(list[i],"+", end=" ")
    print (list[len(list)-1],end=" ")
    print("=",sum(list),end=" ")
    z = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...