Traceback (most recent call last):
File "/home/erik/Bilder/Bootstrap/JD-AL/new-sw/pp2.py", line 8, in <module>
html = html % ("A", "B")
TypeError: not enough arguments for format string
Jag testat med lite olika varianter men inget fungerar.
Ingen stjärna på Python här.
Jag trodde %-tecknet var modulo-operatorn? Dvs 10 % 4 = 2 medan det i ditt fall ser ut som du försöker göra någon form av sträng-operation.
f-strings är en rekommenderad metod, gå gärna direkt till källan istf någon annans tolkning av den: https://docs.python.org/3/tutorial/inputoutput.html. Om det är gammalt eller modernt kan ha betydelse för bakåtkompatibilitet, fundera på om det är en viktig aspekt här.
Felet du hade ger Python en bra ledtråd till när den säger "not enough arguments for format string". Du formatterar en sträng och har TVÅ argument. Varje argument skall motsvaras av ett procenttecken i strängen, och man kan räkna till TRE av dem. Det går inte ihop, därför blir det stopp.
rvl skrev: ↑22 juli 2025, 04:05:10
Problemet med den ursprungliga koden är:
"width:100%"
escapera det procenttecknet till:
"width:100%%"
Tack för det. Jag såg inte %-teckenet i 100%. Jag var jätteförvirrad och försökte med det ena och andra för att lösa felet
Sedan är det frågan vilket sätt man väljer. Jag har bara sett små fördelar/nackdelar med de olika sätten. guckrum har bakåtkompatibilitet-argmuentet för F-Strings
En stilla undra är varför det finns olika 3st sätt. jaja det finns även ett 4e sätt. Jag hade först ett antal strängar som jag på slutet slog samma. Såg mkt fult ut och svåröverskådligt.
Ett fjärde är att konkatenera ihop strängen själv typ "text" + A + "mer text".
Det är det här med pragmatism. Ett sätt räcker såklart, och idealt skall man bara ha ett. Men vilket man än väljer så kommer det inte att passa som handen i handsken i alla upptänkliga fall.
F-strängar kräver egentligen minst ansträngning, eftersom Python evaluerar det som står inom krullarna och stoppar in den motsvarande strängen direkt, så inga konverteringar eller mappningar behövs. Använder jag själv f-strängar hela tiden? Nej, det kan jag inte påstå...
>Ett fjärde är att konkatenera ihop strängen själv typ "text" + A + "mer text
Precis så gjorde jag i början. Jag hade 5 fasta strängar och 2 variabla. Det fungerar men rörigt och knepigt att uppdatera.