Czy istnieje zwięzły sposób formatowania liczby, która może być również ciągiem znaków?wartość formatu, która może być liczbą i/lub łańcuchem w pytonie 3
Liczba normalnie będzie liczbą zmiennoprzecinkową, ale czasami jest również oznaczana jako ciąg "n/a".
Chciałbym sformatować zmienną ze stałą liczbą miejsc po przecinku, ale wydrukować cały ciąg na wypadek, gdyby nie był liczbą.
Na przykład:
var=3.145623
print("This is {0:.2f}".format(var))
>>>This is 3.14
, ale
var = "n/a"
print("This is {0:.2f}".format(var))
>>> File "<stdin>", line 1, in <module>
>>> ValueError: Unknown format code 'f' for object of type 'str'
Nie jestem zaskoczony ValueError, ale zastanawiam się, czy jest tam zwięzły sposób wokół niego, najlepiej bez wyraźnego IF-oświadczenie.
Wydaje się, że za pomocą wyraźnego 'if-else' jest najprostsza droga ... To jest problem pojawi się, gdy mamy do czynienia z mieszane typy i dlaczego powinieneś tego unikać, jeśli to możliwe. –
@ juanpa.arrivillaga: Właśnie dlatego, że przegapiłem zmianę w .format() lub czymś - wydaje mi się, że to byłby problem, który często pojawia się u ludzi, a więc może już coś jest wbudowane ... – Gerhard
Czy mogę zapytać, dlaczego jest możliwe, że otrzymasz albo 'float' lub ciąg' 'n/a" '? Wygląda na to, że to prawdziwy problem. –