Skrømt Skrevet 4. januar 2015 Del Skrevet 4. januar 2015 Hei! Jeg kom over en nybegynnerguide til python på youtube. Jeg syns jeg har fulgt den slavisk, men jeg får likevel ikke et veldig enkelt program til å fungere. Slik er programmet, skrevet i notepad ++ (program er å ta i da...): print("Hello world") myName = input("What is your name?") print(myName) Jeg går så til ledetekst, og åpner programmet der. Etter at jeg har svar "Joda" på spørsmålet "What is your name?", blir det feilmelding. Her er "snutten": C:\Users\Joda\Desktop\python helloworld.py Hello world What is your name? Joda Traceback (most recent call last): File “helloworld.py”, line 2, in (module) myName = input(“What is your name?”) File “<string>”, line 1, in <module> NameError: name ‘Joda’ is not defined I følge nybegynnerguiden skulle jeg nå kun få opp "Joda", som svar, ikke noen feilmeldinger om udefinerte navn. Kan noen si meg hva jeg har gjort feil? Lenke til kommentar
Lock-Aze Skrevet 4. januar 2015 Del Skrevet 4. januar 2015 (endret) print(str(myName)) Eventuelt: myName = str(input("what is your name?)) Du må enten fortelle at det kommer en string inn, eller at det er en string du skal skrive ut Endret 4. januar 2015 av Lock-Aze Lenke til kommentar
etse Skrevet 4. januar 2015 Del Skrevet 4. januar 2015 (endret) basert på print-statementet ser det ut som du bruker python3, men feilmeldingen du får hadde gitt mening om du brukte python 2 (og da skal man ikke skrive print på den måten). (input i python3 er det samme som raw_input i python 2, og raw_input er da fjernet). Hvilken versjon av python bruker du? Hvis du bruker python 2, så anbefaler jeg deg å bytte til python 3, da guiden du følger tydeligvis bruker dette. Så slipper du slike problemer Edit: Kan forklare litt hvorfor. I python2 har man to ulike input-kommandoer som brukes til litt forskjellige ting: raw_input() er en funksjon som tok inn brukerinput og returnerte teksten som en streng, uten å gjøre noe mer med det. input() var en funksjon, som i praksis var det samme som eval(raw_input()), denne ville da ta inputen fra brukerene og kjøre det som det var kode. Eksempel: bruker du raw_input() og skriver inn "2+2+2" så vil den returnere strengen "2+2+2", mens om du brukte input() ville den returnere svaret på utrykket, altså tallet 6. I python3 endret de dette. raw_input byttet da navn til input, og den gamle imput-funksjonen ble fjernet. Om man da ønsket denne funksjonaliteten måtte man skrive eval(input()) Endret 4. januar 2015 av etse Lenke til kommentar
Imsvale Skrevet 4. januar 2015 Del Skrevet 4. januar 2015 (endret) Print med parentes vil funke i Python 2, og oppførselen til input() er som i Python 2. Trådstarter må bruke raw_input() eller bytte til Python 3. Hvis du bruker python 2, så anbefaler jeg deg å bytte til python 3, da guiden du følger tydeligvis bruker dette. Så slipper du slike problemer Støtter meg til dette.Det er vel ikke helt presist at inputen kjøres som kode, men at det evalueres som et uttrykk (expression)? Man man få 2+2 til å bli 4, men du kan ikke skrive print "hello" og få hello som output. Endret 4. januar 2015 av Imsvale Lenke til kommentar
Skrømt Skrevet 4. januar 2015 Forfatter Del Skrevet 4. januar 2015 (endret) Takker for alle svar! Da forsøker jeg rett og slett å bytte til python3, det stemmer at jeg bruker python2. Hjertelig takk for råd og forklaringer; det er mye det er vanskelig å "få hodet rundt" sånn til å begynne med. EDIT: Da var det oppe å gikk, tusen takk. Endret 4. januar 2015 av Skrømt Lenke til kommentar
Lock-Aze Skrevet 4. januar 2015 Del Skrevet 4. januar 2015 Lykke til, er litt å få hodet rundt i begynnelsen. Men er morro når man begynner å få til. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå