Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Python och for-loopar.

Skapad av Borttagen, 2012-12-20 17:41 i Webbutveckling & Programmering

2 561
8 inlägg
3 poäng
Coulduseahand
Visningsbild
Hjälte 6 inlägg
1
Någon som är en jävel på Python här möjligen?

Sitter och försöker koda en Palindrom-detektor i Python 3.0 med hjälp av for-loopar. Programmet har fyra funktioner:
main() <-- innehåller alla funktioner och skickar argument.
ordnaText() <--- tar bort tecken och blanksteg och skickar vidare.
testaPalindrom() <--- testar strängen som matas in via input.
visaResultat() <--- visar om det är ett palindrom eller inte.

Jag MÅSTE använda for-loopar i det här fallet och får inte göra på något annat sätt (d.v.s jag kan inte reversa strängen och jämföra direkt).

Min fråga är då alltså: hur låter man två for-loopar läsa av strängen som matas in av användaren framlänges och baklänges samtidigt för att jämföra värdena?

Någon som har några fina idéer?

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Stenqvist
Visningsbild
P 30 Mölnlycke Hjälte 139 inlägg
0
Är det en uppgift att använda just for eller bara läraren som är ett as?

Ich have kommit tillbaka

Coulduseahand
Visningsbild
Hjälte 6 inlägg
Trådskapare
0

Svar till Stenqvist [Gå till post]:
Vi ska lära oss for-loopar förmodar jag. Man skulle kunna lösa koden på ett sjukt mycket lättare sätt men just här måste vi använda for-loopar. Derp.

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Nu har jag riktigt dålig koll på python men slängde ihop det här och det kanske är till någon hjälp?

Ett stycke php-kod:
text = "hamsterpaj"
newText = ""

for x in range(len(text) - 1, -1, -1):
newText += text[x]

print newText

Jag är ond!

emomax
Visningsbild
P 33 Hjälte 229 inlägg
1

Svar till Coulduseahand [Gå till post]:
inte alls svårt. Du behöver bara en forloop dessutom.

ta strängen, kopiera den och invertera den.

sätt en bool till false -

for strlen:
jämför char för char i strängarna
om de diffar - bool = true; breaka loop

if(true)
print "inget palindrom"
else
print "palindrom!";

där är iaf pseudokoden, så du får göra nåt själv ;)

Att stressa har jag inte tid med.

Felix
Visningsbild
P 34 Lidingö Hjälte 6 171 inlägg
1

Svar till Coulduseahand [Gå till post]:
Du har ju indexet från for-loopen och strängens längd.
Då jämför du tecken på index med tecken på strängens längd-1-index

Och så sätter du bara en boolean till det värde checken får. Om booleanen blir false kör du break för då är det inte ett palindrom.

You're awesome!

Coulduseahand
Visningsbild
Hjälte 6 inlägg
Trådskapare
0

Svar till Felix [Gå till post]:
BACK IN THE HEEEZY!

Jag sitter och försöker klura ut det här med index och hur det används ordentligt men kommer faktiskt ingenvart.

Kan tydligen använda en while-loop nu vilket gör det hela lättare enligt många. Still fucked though.

Hur ska jag använda mig av index här?

Felix
Visningsbild
P 34 Lidingö Hjälte 6 171 inlägg
0
Svar till Coulduseahand [Gå till post]:
For och while-loopar är mer eller mindre exakt samma sak typ.

jag skulle skriva såhär typ:
Ett stycke PHP-kod:

for ( int i = 0; i <= str.len/2; i++)
if (str[i] != str(str.len-1-i))
return false;
return true;


Kollar vi då strängen 568765 händer följande:
5 != 5? False
6 != 6? False
8 != 7? True
return false

Kollar vi strängen 579 händer följande:
5 != 9? True
return false

Kollar vi strängen 563454365 händer följande
5 != 5? False
6 != 6? False
3 != 3? False
4 != 4? False
5 != 5? False
return true

-----------

Det fina med det här är att du då kan köra två olika metodanrop beroende på om strängen är ett palindrom eller inte, eftersom du får en boolean som är true om det är ett palindrom och false annars.

You're awesome!


Forum » Datorer & IT » Webbutveckling & Programmering » Python och for-loopar.

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons