Ограничьте печать при использовании FOR LOOP - PullRequest
1 голос
/ 19 марта 2019

Я хотел бы знать, как ограничить количество раз, которое я могу напечатать цикл for, я до сих пор ничего не смог найти.Любая помощь?Заранее спасибо

    def sixMulti(x,y): # Multiples of six
    nList = range(x,y)
    bySix = list(filter(lambda x: x%6==0, nList))
    for i in bySix:                             # square root function
        sqrt = list(map(lambda x: x**0.5, bySix))
    #round(sqrt, 3)
    #f"The number is {sqrt:.2f}"
    num = [ '%.2f' % e for e in sqrt]
    for i in range(0, len(num)):
        myList = ("Value is ", bySix[i], " and the square root is ", num[i])
        print(myList)
return bySix, num

1 Ответ

1 голос
/ 19 марта 2019

Ваша функция печатает список только один:

>>> sixMulti(1, 47)
('Value is ', 6, ' and the square root is ', '2.45')
('Value is ', 12, ' and the square root is ', '3.46')
('Value is ', 18, ' and the square root is ', '4.24')
('Value is ', 24, ' and the square root is ', '4.90')
('Value is ', 30, ' and the square root is ', '5.48')
('Value is ', 36, ' and the square root is ', '6.00')
('Value is ', 42, ' and the square root is ', '6.48')

Если у вас есть этот вывод x раз, то вы вызываете эту функцию x раз :) И в

for i in bySix:                             # square root function
    sqrt = list(map(lambda x: x**0.5, bySix))

вы переназначаете sqrt на каждой итерации. Имея только

sqrt = list(map(lambda x: x**0.5, bySix))

достаточно.

...