Permalänk
Hedersmedlem
Skrivet av Jepp:

Jag har provat len men bara alltså att se hur den fungerar. Jag vet ej hur jag ska använda den i övningen. Jag har faktiskt inte den blekaste.

Ska man skriva i skript eller konsol?len verkar ju inte fungera i skript. Kanske är det så att funktioner bara funkar i konsol?

len() är en funktion och tittar vi i dokumentationen så kräver den 1 argument. För övrigt bör du alltid ha dokumentationen öppen i ett fönster.
http://docs.python.org/py3k/library/functions.html#len

namn = 'Kalle Kula' print ('len(namn) == ' + str(len(namn)))

Skriver ut len(namn) == 10
10 istället för 9 därför att mellanslag räknas. Detta leder dig till hur du nog är tänkt att lösa uppgiften, genom att skapa en sträng med mellanslag framför namnet.

Det finns inbyggda sätt för att finformatera text men det är nog mer än vad du klarar av nu.

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG

Permalänk
Medlem

Det löste sig. Tackar

Visa signatur

jepp

Permalänk
Medlem

Jag lär mig om villkorssatsser och jag jag förstår inte riktigt vad som menas.

Det står:

1 if time < 60:
2 if l e v e l C o m p l e t e d == True :
3 p r i n t ( " Your r e w a r d is : a cake . " )

(rad 2 och 3 ska vara indragna)

Jag är lite osäker på hur jag ska tolka koden på rad 2. Den definition jag lärde mig var att x == y betyder : sant om x är lika med y men vad betyder det där?

Visa signatur

jepp

Permalänk
Medlem
Skrivet av Jepp:

Jag lär mig om villkorssatsser och jag jag förstår inte riktigt vad som menas.

Det står:

1 if time < 60:
2 if l e v e l C o m p l e t e d == True :
3 p r i n t ( " Your r e w a r d is : a cake . " )

(rad 2 och 3 ska vara indragna)

Jag är lite osäker på hur jag ska tolka koden på rad 2. Den definition jag lärde mig var att x == y betyder : sant om x är lika med y men vad betyder det där?

Det är inte så knivigt ska du se. Först borde du börja använda kod-taggarna för att få koden med indentering och ett fixed font i forumet. För att utnyttja dem, lägg din kod mellan en [ CODE]-tagg och avsluta med [ /CODE] (det skall inte vara några mellanslag i taggarna, det hade jag bara nu för att de skulle synas och inte tolkas av forumet). Så här kan det se ut:

if time < 60: print "Yes!"

För att få det så skrev jag alltså:

if time < 60: print "Yes!"

Så till ditt problem. Vi går igenom din kod rad för rad och kollar vad som händer (med kod-taggar).

1 if time < 60: 2 if levelCompleted == True: 3 print("Your reward is: a cake.")

På rad ett har vi en villkorssats som testar om variabeln time innehåller ett värde mindre än 60, om värdet är mindre än sextio kommer detta tolkas som sant (True) och Pythontolken fortsätter läsa nästa (indenterade) rad.
På rad två finner vi ytterligare en villkorssats som här testar om variabeln levelCompleted innehåller samma värde som den inbyggda variabeln True. True är en inbyggd boolsk (engelska: boolean) variabel som har värdet "Sant" (eller en etta, 1, beroende på hur man vill tänka). Om man tidigare i koden definerat levelCompleted = 1 eller levelCompleted = True, så kommer den här utvärderingen levelCompleted == True ge ett sant värde och if-satsen fortsätter på nästa rad.
På rad tre, hit kommer vi om och endast om de två föregående if-satsernas argument utvärderats till sant, dvs om time < 60 OCH levelCompleted == True. Då skrivs strängen ut.

Du finner Python-definitionen av en boolsk variabel i pythondokumentationen: http://docs.python.org/library/constants.html

Permalänk
Medlem
Skrivet av Boulund:

Det är inte så knivigt ska du se. Först borde du börja använda kod-taggarna för att få koden med indentering och ett fixed font i forumet. För att utnyttja dem, lägg din kod mellan en [ CODE]-tagg och avsluta med [ /CODE] (det skall inte vara några mellanslag i taggarna, det hade jag bara nu för att de skulle synas och inte tolkas av forumet). Så här kan det se ut:

if time < 60: print "Yes!"

För att få det så skrev jag alltså:

if time < 60: print "Yes!"

Så till ditt problem. Vi går igenom din kod rad för rad och kollar vad som händer (med kod-taggar).

1 if time < 60: 2 if levelCompleted == True: 3 print("Your reward is: a cake.")

På rad ett har vi en villkorssats som testar om variabeln time innehåller ett värde mindre än 60, om värdet är mindre än sextio kommer detta tolkas som sant (True) och Pythontolken fortsätter läsa nästa (indenterade) rad.
På rad två finner vi ytterligare en villkorssats som här testar om variabeln levelCompleted innehåller samma värde som den inbyggda variabeln True. True är en inbyggd boolsk (engelska: boolean) variabel som har värdet "Sant" (eller en etta, 1, beroende på hur man vill tänka). Om man tidigare i koden definerat levelCompleted = 1 eller levelCompleted = True, så kommer den här utvärderingen levelCompleted == True ge ett sant värde och if-satsen fortsätter på nästa rad.
På rad tre, hit kommer vi om och endast om de två föregående if-satsernas argument utvärderats till sant, dvs om time < 60 OCH levelCompleted == True. Då skrivs strängen ut.

Du finner Python-definitionen av en boolsk variabel i pythondokumentationen: http://docs.python.org/library/constants.html

Tack för ditt svar.

Du skriver:

På rad två finner vi ytterligare en villkorssats som här testar om variabeln levelCompleted innehåller samma värde som den inbyggda variabeln True. True är en inbyggd boolsk (engelska: boolean) variabel som har värdet "Sant" (eller en etta, 1, beroende på hur man vill tänka). Om man tidigare i koden definerat levelCompleted = 1 eller levelCompleted = True, så kommer den här utvärderingen levelCompleted == True ge ett sant värde och if-satsen fortsätter på nästa rad.

Det är ett likhetstecken samt tilldelningstecken. Och dessa ska då betyda att levelCompleted är sant om leveln har blivit completad eller? Då måste man alltså skriva in kod någonstans som visar att levelCompleted är sann.

typ levelCompleted = True (är det så man skriver eller? Jag har python 3x.)
Ska man skriva detta på raderna efter eller före koden?

Samma sak med time. Man kan ju skriva time = (50). Görs det före eller efter eller spelar det ingen roll?

Visa signatur

jepp

Permalänk
Medlem
Skrivet av Jepp:

Det är ett likhetstecken samt tilldelningstecken. Och dessa ska då betyda att levelCompleted är sant om leveln har blivit completad eller? Då måste man alltså skriva in kod någonstans som visar att levelCompleted är sann.

typ levelCompleted = True (är det så man skriver eller? Jag har python 3x.)
Ska man skriva detta på raderna efter eller före koden?

Samma sak med time. Man kan ju skriva time = (50). Görs det före eller efter eller spelar det ingen roll?

Hej. Det känns inte riktigt som du har förstått hur det fungerar med vilken ordning saker tolkas i pythonkod. Har du provat börja från början och läsa t.ex. "A Byte of Python", "Learn Python The Hard Way", eller någon annan av introduktionstexterna som finns länkade på Pythons hemsida?

För att svara direkt på din fråga så måste du givetvis definera värden på time och levelCompleted innan du når if-satserna. Det låter lite som om du har ambitioner att göra någon form av spel, men det är svårt att förstå riktigt vad du vill göra (och hur) utan mer information.

Permalänk
Medlem
Skrivet av Boulund:

Hej. Det känns inte riktigt som du har förstått hur det fungerar med vilken ordning saker tolkas i pythonkod. Har du provat börja från början och läsa t.ex. "A Byte of Python", "Learn Python The Hard Way", eller någon annan av introduktionstexterna som finns länkade på Pythons hemsida?

För att svara direkt på din fråga så måste du givetvis definera värden på time och levelCompleted innan du når if-satserna. Det låter lite som om du har ambitioner att göra någon form av spel, men det är svårt att förstå riktigt vad du vill göra (och hur) utan mer information.

Ok, jag börjar fatta. Detta är bara en övning jag gör. Ok, en sista fråga bara. När det är två st "= " så är ju ena ett likhetstecken och det visar en tilldelningssats. Så det betyder alltså att programmet checkar att värdet stämmer och det andra "likhetstecknet" således beordrar att exekvera sista satsen eller?

Visa signatur

jepp

Permalänk
Hedersmedlem
Skrivet av Jepp:

Ok, jag börjar fatta. Detta är bara en övning jag gör. Ok, en sista fråga bara. När det är två st "= " så är ju ena ett likhetstecken och det visar en tilldelningssats. Så det betyder alltså att programmet checkar att värdet stämmer och det andra "likhetstecknet" således beordrar att exekvera sista satsen eller?

När det är två direkt på varandra följande likhetstecken så är det den infixa likhetsoperatorn. Det finns inget "första" och "andra" tecken att beakta för python. Likhetsoperatorn evaluerar till True om levelCompleted är True. Sen är det if-satsen som avgör var programmet ska fortsätta, inte något likhetstecken. För övrigt så är jämförelsen här onödig. Skriver man ' == True ' så kan man ta bort det.

Skickades från m.sweclockers.com

Visa signatur

Forumregler | Feedbackforumet | Något som behöver modereras? Tryck på Anmäl inlägget och ge en anledning, någon moderator kommer granska inlägget och göra (egen) bedömning
"Fate. Protects fools, little children and ships named Enterprise." - Riker - ST:TNG