Python Forum

Full Version: NameError: name is not defined
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm really new to python. Can someone help me figure out what's wrong with my crappy game? It says NameError: name 'DSC' is not defined on line 55 in main.py
import time
import os

name = raw_input("""Hello, welcome to Snek World.
You are a snek what is your name? """)
time.sleep(1)
print 'Hi, %s Welcome to Snek World' % name
time.sleep(2)

# Pick a Biome

print """Here in Snek World we have tons of
different biomes! Pick where you want to live. (Sneks vary in each biome.)
1. Desert
2. Rainforest
3. Plains
"""
biome = int(raw_input())
time.sleep(2)
os.system('cls')

# Desert Snakes (DSC = Desert snake choice)

if biome == 1:
    DSC = raw_input("""Good choice! There are lots of sneks from the
desert! (Pick which snek you want to be)
1. Kenyan Sand Boa
2. Cobra
3. California King Snake
""")

# Rainforest snakes (RSC Rainforest snek choice)

elif biome == 2:
    RSC = input("""Good choice! There are lots of sneks from the
rainforest! (Pick which snek you want to be)
1. Tri-color hognose
2. Rainbow Boa
3. Bush Viper
""")

# Plains (PSC Plains snek choice)

elif biome == 3:
    PSC = input("""Good choice! There are lots of sneks from the
plains! (Pick which snek you want to be)
1. Hognose snake
2. Diamondback rattlesnake
3. Rat snake
""")

# DSC

if DSC == 1:
    print '%s the Kenyan sand boa, I like it!' % name
if DSC == 2:
    print '%s the Cobra, I like it!' % name
if DSC == 3:
    print '%s the California king snake, I like it!' % name

# RSC

if RSC == 1:
    print '%s the Tri-color hognose, I like it!' % name
if RSC == 2:
    print '%s the Rainbow boa, I like it!' % name
if RSC == 3:
    print '%s the Bush viper, I like it!' % name

# PSC

if PSC == 1:
    print '%s the Hognose snake, I like it!' % name
if PSC == 2:
    print '%s the Diamondback rattlesnake, I like it!' % name
if PSC == 3:
    print '%s the Rat snake, I like it!' % name
if biome is not 1, when it reach line 54 your script doesn't know what DSC is and what the value is..
(Sep-25-2017, 08:03 PM)buran Wrote: [ -> ]if biome is not 1, when it reach line 54 your script doesn't know what DSC is and what the value is..
So what should I do?
(Sep-25-2017, 08:08 PM)buran Wrote: [ -> ]refactor your code.

How do I do that?

(Sep-25-2017, 08:08 PM)buran Wrote: [ -> ]refactor your code. look at https://python-forum.io/Thread-Text-Adventure-Tutorial

What is refactoring? How would it fix my code?
Refactoring is basically reorganizing your code. The problem is the if/elif/else structure of your code. If you structured your code differently, you wouldn't run into the problems you are having. You could fix your code without restructuring it, by defining dummy values for DSC and the other similar variables at the beginning. But in the long run that structure would lead to other problems as you expanded your code.
I would also add, since you are new to Python, you really should be using Python 3 not Python 2.  Make sure you check out the link suggested by buran, it will give you a good idea on how a game is structured. Note, however, it is written in Python 3 but it should still be simple enough to follow along.
(Sep-25-2017, 08:46 PM)ichabod801 Wrote: [ -> ]Refactoring is basically reorganizing your code. The problem is the if/elif/else structure of your code. If you structured your code differently, you wouldn't run into the problems you are having. You could fix your code without restructuring it, by defining dummy values for DSC and the other similar variables at the beginning. But in the long run that structure would lead to other problems as you expanded your code.

How would I restructure it?
Look at the link that Buran posted.