Python nie wszystkie argumenty przekonwertowane podczas formatowania ciągu

Python nie wszystkie argumenty przekonwertowane podczas formatowania ciągu

Formatowanie łańcucha to technika tworzenia/tworzenia łańcucha poprzez zastąpienie symboliczne zastępcze w ciągu wartości. Podczas wykonywania operacji na strunach w Python występują różne błędy. Komunikat o błędzie „Nie wszystkie argumenty przekonwertowane podczas formatowania ciągu”Pojawia się podczas próby sformatowania podanych ciągów za pomocą niewłaściwej składni lub za pomocą operatora modulo„%”Ze strunami i liczbami.

Na tym blogu Python zbadamy różne przyczyny i rozwiązania podanego określonego błędu. Zacznijmy od następujących treści:

    • Jakie są przyczyny tego błędu?
    • Rozwiązania do naprawienia tego błędu

Jakie są przyczyny błędu „nie wszystkie argumenty przekonwertowane podczas formatowania ciągu”?

Omówiony błąd może wystąpić z kilku powodów, w tym następujących:

Przyczyna 1: Za pomocą nieprawidłowej składni

Ten błąd może wystąpić, gdy nieprawidłowa składnia operatora modulo „”%”Służy do wywoływania i dołączania zainicjowanych wartości. Rzućmy okiem na poniższy przykład:

name = "Joseph"
Wiek = 23
output = "Mam na imię i jestem lat„%”(nazwa, wiek)
Drukuj (wyjście)


W powyższym kodzie nieprawidłowa składnia operatora modulo „%”Służy do umieszczenia wartości„nazwa" I "wiek”Wewnątrz ciągu bez użycia odpowiednich symboli zastępczych, ja.mi., "%S" I "%D"Itd. Wbrew typom danych.

Wyjście


W rezultacie podane ograniczenie jest napotkane z powodu brakujących symboli zastępczych w stosunku do wywołanych wartości.

Przyczyna 2: Korzystanie z operatora modulo „%” z liczbą całkowitą i ciągami

Inną przyczyną tego błędu może być użycie omawianego operatora z liczbą całkowitą i ciągiem. Na przykład rzućmy okiem na poniższy przykładowy kod:

name = "45"
Wiek = 23
Wyjście = nazwa % wieku
Drukuj (wyjście)


W powyższym fragmencie kodu operator modulo „%”Jest umieszczany między zmienną strunową”nazwa”I zmienna całkowitą”wiek„Aby zwrócić odpowiadającą resztę.

Wyjście


Ponieważ obie wartości obejmują sprzeczne typy danych, obliczenia nie można wykonać, a zatem podany błąd.

Rozwiązania do naprawienia błędu „nie wszystkie argumenty przekonwertowane podczas formatowania ciągu”

Poniżej znajdują się rozwiązania, aby naprawić określone ograniczenie w Pythonie:

Rozwiązanie 1: Popraw składnię, umieszczając odpowiednie symbole zastępcze

Aby naprawić ten błąd, musimy wywołać inicjowanie wartości ciągów, umieszczając odpowiedni symbol zastępczy, i.mi., "%S”, Jak następuje:

nazwa = „John”
wiek = "30"
wyjście = "Nazywam się %S i ja jestem %S -Lata" %(nazwa, wiek)
Drukuj (wyjście)


W powyższym kodeksie symbol zastępczy „%S”Zamiast do kręconych aparatów ortodontycznych”„Aby odpowiednio wywołać zainicjowane wartości ciągów.

Wyjście


Jak widać, zainicjowane wartości ciągów są dostępne i odpowiednio dołączone.

Rozwiązanie 2: Za pomocą metody „Format ()”

„„format()”Metoda formatuje podaną/określoną wartość zgodnie z specyfikatorem formatu. Tę metodę można również wykorzystać do formatowania wywołanych wartości bez użycia symboli zastępczych.

Składnia

format (val, format)


W powyższej składni:

    • "val”Odpowiada wartości, którą należy sformatować.
    • "format”Odnosi się do specyfikacji sposobu sformatowania wartości.

Przykład

Przeglądmy następujący kod:

nazwa = „John”
wiek = "30"
Output = "Mam na imię i mam lata".format (nazwa, wiek)
Drukuj (wyjście)


W powyższym bloku kodu „format()”Metoda jest używana do zawierania wywołanych wartości ciągów jako jego argumentów, w ten sposób odpowiednio zwracając i dołączając wartości.

Wyjście


To wyjście sugeruje, że wartości ciągów są odpowiednio pobierane.

Rozwiązanie 3: Wylewanie danych

Błąd można również rozwiązać, przekształcając „strunowy" Do "int DataType za pośrednictwem castingu, w następujący sposób:

name = "45"
Wiek = 23
wyjście = int (nazwa) % wiek
Drukuj (wyjście)


W powyższym kodzie zainicjowana wartość ciągu jest rzucana na „int”A następnie operator modulo„%”Jest stosowany między domyślną a odlepioną liczbą całkowitą w celu odzyskania odpowiedniej reszty.

Wyjście


Jak widać, reszta jest odpowiednio pobierana.mi., 45/23 = „22".

Wniosek

„„Nie wszystkie argumenty przekonwertowane podczas formatowania ciągu„Błąd można rozwiązać, korygując składnię operatora modulo”%”Poprzez umieszczanie odpowiednich symboli zastępczych lub korzystanie z„format()„Metoda zamiast operatora % lub przekształcanie„strunowy" do "int”Poprzez rzucanie danych. Ten przewodnik Python omówił wiele powodów i rozwiązań w celu rozwiązania omówionego ograniczenia.