Почему строки печатаются дважды?

for i in range(1,10):
    if i == 1:
        i = (f'{i}st')
        print(i)
    if i == 2:
        i = (f'{i}nd')
        print(i)
    if i == 3:
        i = (f'{i}rd')
        print(i)
    else:
        print(i)

В выводе получается, что первые два числа повторяются два раза, с чем связанно такое повторение?

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Zhihar

вот из-за этого:

else:
    print(i)

у вас условия не связаны в один if:

# если i = 1 выводим 1st
if i == 1:
    i =(f'{i}st')
    print(i)

# если i = 2 выводим 2nd
if i == 2:
    i = (f'{i}nd')
    print(i)

# если i = 3 выводим 3rd
if i == 3:
    i = (f'{i}rd')
    print(i)
else:
    # если i не равно 3 (!!!!!!!!!!!!!!!!!!!!) вывести i, которое для i = 1 равно 1st, для i = 2 равно 2nd
    print(i)

вам надо или внутри if поставить continue или elif вместо if ставить

→ Ссылка
Автор решения: Jack_oS

ваш else относиться только к третьему if, попробуйте так:

for i in range(1,10):
    if i == 1:
        i =(f'{i}st')
        print(i)
    elif i == 2:
        i = (f'{i}nd')
        print(i)
    elif i == 3:
        i = (f'{i}rd')
        print(i)
    else:
        print(i)

как результат:

1st
2nd
3rd
4
5
6
7
8
9
→ Ссылка