Python Forum
Name error - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Name error (/thread-18952.html)



Name error - Uzomaza - Jun-07-2019

Hi!
Why dont work the var1 code?

import turtle
from tkinter import *
import tkinter.messagebox

wn = turtle.Screen()
wn.setup(650,650)
wn.bgcolor("White")
wn.title("Turtle program")
geralt = turtle.Turtle()

def ujra():
    restart = raw_input("Új alakzatot akarsz? Ha igenre kattintasz visszamész a program legelejére!")
    if restart == "yes" or restart == "y":
        kerdo()
    if restart == "n" or restart == "no":
        vege()

def kerdo():
    while 1:
        tkinter.messagebox.showinfo("Választó","Válaszd ki a kívánt alakzatot!")
        answer = tkinter.messagebox.askquestion("Választó","Háromszöget választod?")

        if answer == "yes":
            var1 = "haromszog"
            print("Háromszöget választottad!")
            vege()
            break
        else:
            answer = tkinter.messagebox.askquestion("Választó","Négyszöget választod?")

        if answer == "yes":
            var1 = "negyszog"
            print("Négyszöget választottad!")
            vege()
            break
        else:
            answer = tkinter.messagebox.askquestion("Választó","Ötszöget választod?")

        if answer == "yes":
            var1 = "otszog"
            print("Ötszöget választottad!")
            vege()
            break
        else:
            answer = tkinter.messagebox.askquestion("Választó","Nem választottál alakzatot, a program újraindul!")

        if answer == "yes":
            continue
        else:
            continue

def vege():
    print ("A string értéke:", var1)
    if var1 == "haromszog":
        szelesseg=wn.numinput("Szélessége","")
        hosszusag=wn.numinput("Hosszúsága","")
        for i in range(3):
            geralt.forward(szelesseg)
            geralt.right(hosszusag)

    if var1 == "negyszog":
        szelesseg=wn.numinput("Szélessége","")
        hosszusag=wn.numinput("Hosszúsága","")
        for i in range(4):
            geralt.forward(szelesseg)
            geralt.right(hosszusag)

    if var1 == "otszog":
        print("IDE ÍRD A VÁLASZT!")
        lap=int(input("Lapok száma: "))
        hosszusag=int(input("Hosszúsága: "))
        szam=360
        szog = szam/lap
        for i in range(lap):
            geralt.forward(hosszusag)
            geralt.right(szog)
    ujra()

kerdo()
Ötszöget választottad!
Traceback (most recent call last):
File "c:\users\balogh patrik\desktop\beadando.py", line 79, in <module>
kerdo()
File "c:\users\balogh patrik\desktop\beadando.py", line 42, in kerdo
vege()
File "c:\users\balogh patrik\desktop\beadando.py", line 53, in vege
print ("A string értéke:", var1)
NameError: name 'var1' is not defined


RE: Name error - heiner55 - Jun-07-2019

Replace vege() with vege(var1)


RE: Name error - heiner55 - Jun-08-2019

Glad to hear, your program runs well now.

Which language are you using in your script ?

Hungarian ?