Использование форматирования строк Python с изменением размеров списков - PullRequest
0 голосов
/ 17 февраля 2019

как вывести строку строки без предварительной подготовки {} мест.Потому что теперь моей функции нужно всего 6 мест, но если я изменю ввод (n,m), мне понадобится другое число {}.Как это определить?

def all_pairs_sum(m,n):
    sum = 0
    mult = []
    for m in range(1,m+1):
        for n in range(1,n+1):
            l = m*n
            mult.append(l)
            sum = sum + m*n
            print(m," * ", n, " = ", l)
    print("{}+{}+{}+{}+{}+{} =".format(*mult))
    return sum

print (all_pairs_sum(2,3))

Ответы [ 4 ]

0 голосов
/ 17 февраля 2019

Вы можете использовать функцию f-string , добавленную в Python 3.6.Также обратите внимание, что sum - это функция из стандартной библиотеки Python.Лучше не называть ваши переменные этим именем.Как вы можете видеть в моем примере, я назвал его total

def all_pairs_sum(m,n):
    total = 0
    mult = []
    for m in range(1, m + 1):
      for n in range(1 , n + 1):
          l = m * n
          mult.append(l)
          total += l
          print(f"{m} * {n} = {l:>2d}")
    print(f"{' + '.join(map(str, mult))} = {sum(mult)}")
    return total

print(all_pairs_sum(2, 5))

Вывод:

1 * 1 =  1
1 * 2 =  2
1 * 3 =  3
1 * 4 =  4
1 * 5 =  5
2 * 1 =  2
2 * 2 =  4
2 * 3 =  6
2 * 4 =  8
2 * 5 = 10
1 + 2 + 3 + 4 + 5 + 2 + 4 + 6 + 8 + 10 = 45
45
0 голосов
/ 17 февраля 2019

Если вы хотите распечатать строковое представление суммированных значений, вы можете использовать что-то вроде этого:

print("+".join(str(x) for x in mult))

0 голосов
/ 17 февраля 2019

Если вы используете метод format(), у вас есть определенное количество полей замены {}.Вы можете использовать это решение:

l = list(range(5))
print(' + '.join(str(i) for i in l), ' = ', sum(l))
# 0 + 1 + 2 + 3 + 4  =  10
0 голосов
/ 17 февраля 2019

Как насчет:

def get_msg_template(n):
    tmp =  '{}+' * n
    return tmp[:-1]

print(get_msg_template(4))

Вывод:

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