Kom-pa-TI-bilitet
Python, Felmeddelande
Senast redigerat
Senast redigerat
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
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)
Kom-pa-TI-bilitet
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.
Spelnyheter från FZ
Copyright © 1999–2025 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.