Странные результаты Python

#python #while-loop

Вопрос:

У меня есть следующий фрагмент кода с довольно странным результатом.. по крайней мере, не тот, которого я ожидаю. Я хотел бы показать мне подсчет четных чисел в диапазоне (1,10) только в одной строке для этого диапазона. Есть какие-нибудь идеи? Спасибо!

Код :

 count=0 
for number in range (1,10):
    if number % 2==0:
        count  =1
        print(number)
    print(f"I have {count} even number")
 

Результаты :

 I have 0 even number
2
I have 1 even number
I have 1 even number
4
I have 2 even number
I have 2 even number
6
I have 3 even number
I have 3 even number
8
I have 4 even number
I have 4 even number
 

Ответ №1:

Если вы хотите, чтобы предложение печаталось только после завершения цикла, просто выведите инструкцию print из цикла:

 count=0 
for number in range (1,10):
    if number % 2==0:
        count  =1
        print(number)
print(f"I have {count} even numbers")
 

Ответ №2:

Вы хотите убедиться, что ваш последний оператор печати не находится в цикле for.

 count=0
for number in range (1,10):
    if number % 2==0:
        count  =1
        print(number)
print(f"I have {count} even number")
 

Ответ №3:

Ты это имеешь в виду?

 count=0 
str = ''
for number in range (1,10):
    if number % 2==0:
        count  =1
        str  = f" {number}"
print(f"I have {count} even numbers: {str}")
 

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

1. очень хорошая альтернатива.. даже этот результат потрясающий. 2 4 6 8 У меня 4 четных числа