10 svar
200 visningar
Mayaa1 48
Postad: 4 apr 2023 18:45 Redigerad: 4 apr 2023 20:27

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...

CurtJ 1149
Postad: 4 apr 2023 20:10

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()
Mayaa1 48
Postad: 4 apr 2023 20:11

TACK!!

Mayaa1 48
Postad: 4 apr 2023 20:19 Redigerad: 4 apr 2023 20:27

ok.

CurtJ 1149
Postad: 4 apr 2023 20:55

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. 

Mayaa1 48
Postad: 4 apr 2023 21:02

Jag förstod inte hur koden skrukture skulle se ut :/ 

CurtJ 1149
Postad: 4 apr 2023 21:38

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
Mayaa1 48
Postad: 5 apr 2023 23:43

summa = 0

for i in minstring.isnumeric():
if i == 0 :
print(i)

 

Gör jag rätt så här långt?

CurtJ 1149
Postad: 6 apr 2023 09:56

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. 

Mayaa1 48
Postad: 7 apr 2023 14:00

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 :)

CurtJ 1149
Postad: 12 apr 2023 18:53

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. 

Svara Avbryt
Close