Hitta alla heltal
Använd isnumeric() för att kunna hitta alla heltal som finns i den minstring ='1966grundade456for789data'.
Sedan ditt program ska summa upp de heltal 1966456789 (1+9+6+6+4+5+6+7+8+9=61)
Jag vet att ja ska programmera med for loop, if villkor , omvandling från string to int . summa += int(min string).
Men kunde inte gå vidare...
Ja frågan är vad du försöker uppnå? De förändringar du föreslår räcker nog för att koden ska bli körbar i a f.
Då ser det väl ut som det här.
for i in range(10):
print(i)
for j in range(20):
print(j, end="," )
print()
TACK!!
ok.
När du itererar över tecken i en sträng så gör du enklast som
for ch in en_sträng:
// gör något med ch som innehåller ett nytt tecken för varje iteration
Där kan du sen avgöra (if-sats) om det är ett heltal (isnumeric) och kan då konvertera det till heltal (int()) och addera till din summa.
Jag förstod inte hur koden skrukture skulle se ut :/
Jag hjälper dig med lite pseudokod som du får översätta till python. Återkom om du funderar över något
definiera summa och sätt det till 0
för varje tecken i minstring:
om tecknet är ett heltal:
gör om tecknet till heltal
addera heltalet till summa
skriv ut summan
summa = 0
for i in minstring.isnumeric():
if i == 0 :
print(i)
Gör jag rätt så här långt?
Du börjar rätt med att definiera en variabel som heter summa och initierar den med 0
Sen ska du iterera över alla tecken i minstring med en for-sats men din for-sats är inte korrekt. Som jag skrev i #5 så itererar du över alla tecken i en strän enligt
for ch in minstring:
då kommer alla rader med kod som följer for-satsen OCH är indenterade att exekveras och för varje iteration så har variabeln ch värdet av det aktuella tecknet. Så om du vill skriva ut alla värden så skriver du
for ch in minstring:
print (ch)
Om du nu följer min pseudokod i #7 så ska du nu kontrollera om tecknet är ett heltal och det gör du med metoden isnumeric(). isnumeric är en metod på klassen String så den måste du anropa med en instans av klassen String. Eftersom det är en sträng du itererar så blir ch en String och du kan nu kontrollera om ch är en siffra genom att kontrollera villkoret ch.isnumeric() som returnerar true om ch är en siffra.
Nu har du alltså koden
for ch in minstring:
if ch.isnumeric():
# gör något
Nu ska du lägga till värdet av ch till din summa och för att göra det så måste du göra om ch från sträng till ett heltal när du har kontrollerat att det är en siffra.
Prova det och återkom om du inte förstår. Du lär dig bättre av att prova själv. Jag kan rekommendera att du testar mycket när du skriver kod. Skriv en rad, testa, skrive en rad till, testa, rätta, testa.. osv.
Jag tror att jag ska fortsätta med elif härifrån, och sedan, omvandla från string to int . summa += int(min string) eller hur? Jag är så tacksam för bra förklaring men jag är inte så bra att gå vidare eftersom jag har precis börjat att lära mig och försöker göra det själv utan hjälpmedel. Kanske är det inte svårt för någon som vet, men det är väldigt svårt för mig, om du hjälper lite till med en liten förklaring så hade jag inte lämnat programmet halvvägs. Tack :)
Om du tittar i #7 så är det följande pseudokod du ska ersätta
för varje tecken i minstring:
om tecknet är ett heltal:
gör om tecknet till heltal
addera heltalet till summa
och om du tittar på #9 så har du början till det
for ch in minstring:
if ch.isnumeric():
# gör något
där #gör något är koden för att ersätta de två sista raderna i pseudokoden. Den koden har du antydit i #10 och om du lägger in den så för du
for ch in minstring:
if ch.isnumeric():
summa += int (ch)
Nu har du alla beståndsdelarna för att sätta ihop det du söker.