Permalänk
Medlem

Python, Felmeddelande

Nu har jag åkt på ett fel igen. Jag vet inte vad som är fel och har testat allt möjligt. Det är där man ska skriva vad man ska räkna ut som det inte fungerar; NameError: name 'area' is not defined. Är ny i python(började för en vecka sedan) och läser en internetguide( http://wiki.linuxportalen.se/index.php/Bli_ormtjusare ). Skulle gärna få tips på bra python-guider. Kan inte heller förstå varför

-*- coding: utf-8 -*-

inte fungerar för mig?

#!/usr/bin/python # -*- coding: utf-8 -*- print "Vad vill du rakna ut?" thing=input("Skriv har: ") area = a omkrets = o if thing == a: print "Vad vill du rakna ut arean av?" area_r=raw_input("Skriv har: ") area1 = 'triangel' area2 = 'kvadrat' area3 = 'rektangel' if thing == area1: hight=input("Hojd: ") base=input("Bas: ") area = hight * base area = area / 2 print "Arean ar: " print area elif thing == area2: hight=input("Hojd: ") base=input("Bredd: ") area = hight * base print "Arean ar: " print area elif thing == area3: hight=input("Hojd: ") base=input("Bredd: ") area = base * hight print "Arean ar: " print area if thing == o: print "Vad vill du rakna ut omkretsen av?" hight=input("Hojd: ") base=input("Bredd: ") omkrets = hight + hight + base + base print "Omkretsen ar: " print omkrets

Tack på förhand

Permalänk
Medlem

Om du skriver ditt felmeddelande så är det femton gånger lättare att hjälpa dig.

Du sätter

area = a omkrets = o

men du har aldrig satt a eller o till något. Lite senare kollar du om thing är samma som a. a är fortfarande inte satt till någonting här.

Du vill kanske testa om thing == 'a' (bokstaven a)

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Skriv felmeddelande!
Skriv Python version (många förändringar nu från 2.7 - 3.X)

#!/usr/bin/python # -*- coding: utf-8 -*- print "Vad vill du rakna ut?" thing=input("Skriv har: ") a = 'area' # eller 'a' som förkortning men ha fnuttarna med omkrets = 'omkrets' # eller 'o' men ha fnuttarna med!! if thing == a: ...

du hade:
if thing == a:

men du hade aldrig definerat a (ett a utan ' ' är en variabel, men 'a' är en sträng)
Dvs hade du skrivit:
if thing == 'a':

DÅ hade det varit rätt.
Samma fel gör du vid "area = a", a är en variabel i din kod, vill du säga att area är bokstaven a måste du skriva area = 'a'

Men kodsnutten ovan är nog det resultat du ville ha, att gemföra om thing == a där a ska betyda 'area'.

Angående:

# -*- coding: utf-8 -*-

Det fungerar bara om du sparar dokumentet som ett UTF-8 dokument, annars blir python förbannad.

Standard char-setet för dokument i windows är iso-8859-15 eller om det är Latin-1
Men jag brukar normalt sätt köra:

#!C:/Python26/Python # -*- coding: iso-8859-15 -*-

på windows eftersom /usr/bin/python inte finns i windows så bör du köra C:/Python26/Python eftersom ja, det är där du har dina windows binaries för Python? Dock bryr sig Python väldigt lite om det där och windows också, det där är en grej för *nix systemet som identifierar dokumentet, åtmindstånde förr i tiden, nu kör systemen "file <file>" och får reda på det så istället för att kolla den första raden. Kan ha fel där dock men du kan nästan skita i den raden i Windows.