Próbuję wygenerować ciąg, który zawiera sporadyczne wartości zmiennoprzecinkowe z zerami końcowymi. Jest to MWE łańcucha tekstowego i moja próba usunięcia ich z {0:g}
:. Format() zwraca wartość ValueError podczas używania {0: g} do usuwania zer końcowych
xn, cod = 'r', 'abc'
ccl = [546.3500, 6785.35416]
ect = [12.350, 13.643241]
text = '${}_{{t}} = {0:g} \pm {0:g}\;{}$'.format(xn, ccl[0], ect[0], cod)
print text
Niestety ta zwraca:
ValueError: cannot switch from automatic field numbering to manual field specification
To pytanie Using .format() to format a list with field width arguments zgłoszone w tej samej sprawie, ale nie mogę dowiedzieć się, jak zastosować udzieloną tam odpowiedź na ten problem.
Nie jestem pewien, czy rozumiem, co próbujesz osiągnąć za pomocą 'g'. Zero znaków w literałach typu "float" nie ma znaczenia, więc '546.3500' jest dokładnie tym samym numerem co' 546,35' (i oba będą drukować tak samo, bez względu na to, czy tego chcesz, czy nie). – Blckknght
@Blckknght wypróbuj 'print '{0} {0: g}'. Format (50.0)'. Nie drukują tego samego. – Gabriel
Czytając ponownie pytanie, czy prawdopodobnie chciałeś '{: 0g}' zamiast '{0: g}'? Nie jestem pewien, czy ten pierwszy jest bardzo przydatny, ale jest ważny. – Blckknght