Chcę wydrukować listę liczb porządkowych z dołączonym odpowiednim sufiksem (np. 1, 2 ...). Wydaje się, że problem dotyczy polecenia drukowania. Jak widać poniżej, skomentowałem wszystkie bloki IF z wyjątkiem pierwszego, który spróbował rozwiązać problem. Dzięki.

ord_nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for ord_num in ord_nums:
    if (ord_num == 1):
        print(ord_num + "st")
    elif (ord_num == 2):
        print(ord_num) #+ "nd")
    elif (ord_num == 3):
        print (ord_num) #+ "rd")
    else:
        print(ord_num) #+ "th")

0
theEngineeredSelf 3 kwiecień 2020, 18:15

4 odpowiedzi

Najlepsza odpowiedź

Przed dodaniem rzuć go na łańcuch; próbujesz dodać int do łańcucha

print(str(ord_num) + "st")
0
Helios 3 kwiecień 2020, 15:20

Aby mieszać typy w ciągu do wydrukowania, możesz użyć sformatowanego ciągu za pomocą f"str" i umieścić zmienne, które chcesz wydrukować w nawiasach, w następujący sposób:

a = 3
b = "b"

print(f"This is a number : {a}")
print(f"This is a string : {b}")
0
David de Castilla 3 kwiecień 2020, 15:29

Może być konieczne rzutowanie każdego integer na string w instrukcji print. Na przykład -

print(str(ord_num) + "st")
0
Sajan 3 kwiecień 2020, 15:21

Domyślam się, że masz TypeError za dodanie str i int. Prawidłowy kod to print(str(ord_num) + "st").

0
EagleGaming 3 kwiecień 2020, 15:23