10 svar
126 visningar
Micimacko behöver inte mer hjälp
Micimacko 4088
Postad: 29 maj 2020 18:10

börja samla

Vet inte vad jag ska börja med att göra här. Jag fattar hur man går igenom och jämför när man redan har en första siffra, men innan dess? Kan man ha en tom plats och jämföra med på ngt sätt??

Sen vet jag inte riktigt hur jag ska tolka frågan. Ska "3" räknas eller hoppas över?

Tegelhus 225
Postad: 29 maj 2020 18:27

Ett vanligt sätt att lösa jämförelsen är att från början låta högsta siffran vara det första elementet i listan, och sedan gå igenom listan för att leta större tal. Det blir dock mer komplicerat i och med att listan även kan innehålla strängar - första elementet kan ju vara en sträng, och då vill man inte jämföra övriga element med det.

Ett annat alternativ som jag brukar se är att sätta jämförelsetalet till 0 från början, och sedan gå igenom alla element i listan. Men vad händer då om listan bara innehåller negativa tal? I exempelvis C kan man lösa det genom att sätta jämförelsetalet till minsta möjliga värde, men verkar som att det i Python inte finns någon egentlig gräns för heltalens storlek?

Vill man ha en buggfri lösning som fungerar på alla giltiga listor blir du nog tvungen att skriva en lite mer avancerad funktion som tar hänsyn till de olika fallen (fungerar oavsett antal strängar och deras position i listan, samt oavsett värden på heltalen).

Och jag tolkar det som att "3" ska hoppas över, men om du vill vara på den säkra sidan är det alltid bäst att fråga din lärare hur hen har tänkt.

Micimacko 4088
Postad: 29 maj 2020 18:44

Tack, jag fick till det till slut! Upptäckte att det är jobbigt att få bort allt som är ivägen när jag testar om ngn del funkar, finns det ett sätt att sätta dit fler # samtidigt?

Tegelhus 225
Postad: 29 maj 2020 20:54
Micimacko skrev:

Tack, jag fick till det till slut! Upptäckte att det är jobbigt att få bort allt som är ivägen när jag testar om ngn del funkar, finns det ett sätt att sätta dit fler # samtidigt?

Beror på vilket program du jobbar i. I IDLE kan du använda Alt+3 för att kommentera alla markerade rader, sen Alt+4 för att ta avkommentera.

Laguna Online 30472
Postad: 30 maj 2020 05:15

Jag använder ofta "if False" runt det som jag inte vill ha just då. 

Micimacko 4088
Postad: 30 maj 2020 08:03
Laguna skrev:

Jag använder ofta "if False" runt det som jag inte vill ha just då. 

Hur gör man det?

Laguna Online 30472
Postad: 30 maj 2020 08:23
Micimacko skrev:
Laguna skrev:

Jag använder ofta "if False" runt det som jag inte vill ha just då. 

Hur gör man det?

Det är en helt normal if-sats. Det som står under den kommrr inte att köras. 

Micimacko 4088
Postad: 30 maj 2020 08:25

Men då måste jag väl göra lika många mellanrum istället för att något ska hamna under den?

Laguna Online 30472
Postad: 30 maj 2020 10:18
Micimacko skrev:

Men då måste jag väl göra lika många mellanrum istället för att något ska hamna under den?

Ja, men editorn jag använder har ett enkelt sätt att göra det, och hjälper till med indenteringen annars också. 

Hondel 1377
Postad: 1 jun 2020 13:22
Laguna skrev:

Jag använder ofta "if False" runt det som jag inte vill ha just då. 

Hur kan jag inte tänkt på det innan? Nu skäms jag! Själv har jag använt ''' före och efter koden som inte ska köras under debug. Det är väl egentligen till dokumentation (?) och ska endast användas för egen debug, men funkar

Laguna Online 30472
Postad: 1 jun 2020 13:41
Hondel skrev:
Laguna skrev:

Jag använder ofta "if False" runt det som jag inte vill ha just då. 

Hur kan jag inte tänkt på det innan? Nu skäms jag! Själv har jag använt ''' före och efter koden som inte ska köras under debug. Det är väl egentligen till dokumentation (?) och ska endast användas för egen debug, men funkar

Det är också ett ganska bra trick. Python är ovanligt besvärligt på den här punkten. I C eller C++ använder jag gärna #if 0 ... #endif och behöver inte röra koden innanför alls.

En sak som är bra med if False och #if 0 är att när man väl har skrivit det så kan man mycket lätt ändra False till True eller 0 till 1 och på så vis få med koden igen.

Svara
Close