On 02/01/2013 08:47 PM, Jack Little wrote:
I get this error

Traceback (most recent call last):
   File "C:\Users\Jack\Desktop\python\g.py", line 56, in <module>
     path1pt1()
NameError: name 'path1pt1' is not defined

With this amount of code:


def simpstart():
   global ammo1
   global ammo2
   global ammo3
   global health
   global tech_parts
   global exp
   global radio_parts
   ammo1=10
   ammo2=0
   ammo3=0
   health=100
   tech_parts=0
   exp=0
   radio_parts=0

You've stopped defining that function, and now are doing top-level code

This following stuff belongs in a function, probably called main()

print "You awake in a haze. A crate,a door and a radio."
g1 = raw_input("Which do you choose  ")
if g1 == "CRATE" or g1 == "Crate" or g1 == "crate":
         print "There is a pack of ammo,some food and an odd microchip"
         ammo1=ammo1 + 6
         health=health + 10
         tech_parts=tech_parts + 1
elif g1 =="DOOR" or g1 == "Door" or g1 == "door":
       print "You are outside"
elif g1 == "RADIO" or g1 == "Radio" or g1 == "radio":
       print "It's only a few parts"
       radio_parts=radio_parts+3
g2 = raw_input("So this is NYC.Ten years after.There are a few streets.Go west or 
north  ")
if g2 == "WEST" or g2 == "West" or g2 == "west":
       path2_pt1()
elif g2 == "NORTH" or g2 == "North" or g2 == "north":
       path1pt1()

Now, in top-level code, you're trying to call a function that hasn't been defined yet. If you want to have complete freedom of order when you define your functions, don't put any top-level code except a tiny block at the end of the script. No function may be called before it has been defined. But inside a function, the call won't be made till the function is called. So if the only calls happen at the end of the script, there'll never be such a problem.




def path1pt1():
     print "This is where it all started. Freedom Tower. A biotech firm called 
Aesthos Biotechnology. Based here."
     print "I worked there."


This should be the only non-trivial top-level code, and it should be at the end of the script.

if __name__ == "__main__":
    simpstart()
    main()


--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to