Lösningsförhandsvisning: Konvertera en numerisk sträng medint(). För icke -decimala ingångar (binär, hex) passerar en bas. Lägg till felhantering eller förvalidering för att hantera ogiltig inmatning.
Metod 1: Konvertera en decimal numerisk sträng med int ()
Steg 1:Förvara eller läs den numeriska strängen.
s = "42"Steg 2:Konvertera strängen till ett heltal.
n = int(s)Steg 3:Använd heltalet i beräkningar eller skriv ut den.
print(n * 2) # 84Dricks:int()ignorerar ledande/släpande Whitespace och stöder valfria tecken som"+17"eller" -3 ".
Metod 2: Analyssträngar i andra baser (binär, hex, oktal)
Steg 1:Identifiera basen för din sträng (2 för binär, 8 för Octal, 16 för hex).
Föreslagen läsning:
Steg 2:Passera basen som det andra argumentet tillint().
# Binary
b = "1010"
n = int(b, 2) # 10
# Hexadecimal
h = "1A"
m = int(h, 16) # 26Obs: Du kan använda valfri bas mellan 2 och 36.
Metod 3: Hantera ogiltig ingång på ett säkert sätt (försök/utom eller förkontroll)
Steg 1:Förpacka konverteringen i ett försök/utom block för att fånga dåliga input.
s = "abc"
try:
n = int(s)
print(n)
except ValueError:
print("Invalid input: cannot convert to integer")Steg 2:Valfritt valfritt valfritt medstr.isdigit()för siffriga ingångar.
s = "12345"
if s.isdigit():
print(int(s))
else:
print("Not a pure digit string")Kontrollera:str.isdigit()accepterar inte tecken ("-5") eller decimaler ("12.3"). Använd försöket/utom sökvägen för dessa fall.
Metod 4: Konvertera flottörliknande strängar till Int
Steg 1:Konvertera strängen till en flottör och sedan till en int.
s = "88.8"
n = int(float(s)) # 88 (truncates toward zero)Obs: Detta trunkerar den fraktionella delen. Om du behöver avrundas, konvertera tillfloatoch ansökaround()föreint().
Metod 5: Konvertera en lista över numeriska strängar
Steg 1:Kartlägga varje element genomintatt bygga en ny lista.
xs = ["1", "2", "3"]
nums = list(map(int, xs)) # [1, 2, 3]Steg 2:Alternativt använder du en listförståelse.
nums = [int(x) for x in xs]Tips: Om objekt kan vara ogiltiga, linda in konverteringen i en funktion som använder försök/utom och tillämpa den medmapeller en förståelse.
Vanliga fallgropar
- Passerar icke-numerisk text (till exempel
"hello") höjerValueError. Använd försök/förutom att hålla ditt program igång. - Analysera en flottörsträng (till exempel
"12.5") medint()misslyckas; konvertera tillfloatFörst om trunkering är acceptabel. - Parsing basspecifika strängar utan rätt bas ger felaktiga resultat eller fel. Passera alltid basen när strängen inte är decimal.
Medint()För direkt parsing, ett basargument för icke-decimala strängar och enkel validering, kan du konvertera ingångar säkert och hålla din kod robust.













