Python Forum
local variable 'option' referenced before assignment
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
local variable 'option' referenced before assignment
#11
well, now when it works, you may want to refactor your code in order to improve it.
e.g. your while loop, because it is repetitive code that screams for change, but it's not only that...
just a challenge for you :-)
Reply
#12
Actually, the string still doesn't print correctly:
#!/usr/bin/env python3
#BuildYourOwnCDmixName.py

def heavyMetalCDMixName():
    yourName = input("What is your name: ")
    VWL = ["Angry", "Violent", "Crazy", "Dangerous", "Berserk"] #VWL = ViolentWordList
    print("The words in the list include: "
          + "[0]:" + VWL[0] + ", [1]:" + VWL[1] + ", [2]:" + VWL[2] + ", [3]:"
          + VWL[3] + ", [4]:" + VWL[4])
    print("Choose index numbers from [0] to [4] to complete the name for your "
          + str(yourName) + "'s _______ Heavy Metal mix. Enter 100 when you're done.")

    name = (str(yourName) + "'s ")
    mixNameList = []
    mixName = ""

    option = True
    while True:        
        option = int(input("Enter index number to append to your CD mix's name: "))
        if option == 0:
            mixNameList = list(mixName)
            mixNameList.insert(0, VWL[0]) 
            mixName = ''.join(mixNameList)
        elif option == 1:
            mixNameList = list(mixName)
            mixNameList.insert(0, VWL[1]) 
            mixName = ''.join(mixNameList)
        elif option == 2:
            mixNameList = list(mixName)
            mixNameList.insert(0, VWL[2]) 
            mixName = ''.join(mixNameList)
        elif option == 3:
            mixNameList = list(mixName)
            mixNameList.insert(0, VWL[3]) 
            mixName = ''.join(mixNameList)
        elif option == 4:
            mixNameList = list(mixName)
            mixNameList.insert(0, VWL[4])
            mixName = ''.join(mixNameList)
        elif option == 100:            
            print("You named your CD mix: " + name + mixName + " Heavy Metal Mix")
            break
        else:
            print("You must enter a valid index number between 0 and 4 from VML.")
            continue        

def main():
    heavyMetalCDMixName()

main()
But the output of my string is backwards. For example:
Output:
=== RESTART: I:\Python\Python36-32\SamsFavorites\BuildYourOwnCDmixName.py === What is your name: Sam The words in the list include: [0]:Angry, [1]:Violent, [2]:Crazy, [3]:Dangerous, [4]:Berserk Choose index numbers from [0] to [4] to complete the name for your Sam's _______ Heavy Metal mix. Enter 100 when you're done. Enter index number to append to your CD mix's name: 0 Enter index number to append to your CD mix's name: 1 Enter index number to append to your CD mix's name: 3 Enter index number to append to your CD mix's name: 100 You named your CD mix: Sam's DangerousViolentAngry Heavy Metal Mix >>>
I was expecting "Sam's AngryViolentDangerous Heavy Metal Mix", because that's the order I originally selected them from the VWL list.
What happened?
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  It's saying my global variable is a local variable Radical 5 1,097 Oct-02-2023, 12:57 AM
Last Post: deanhystad
  local varible referenced before assignment SC4R 6 1,465 Jan-10-2023, 10:58 PM
Last Post: snippsat
  UnboundLocalError: local variable 'wmi' referenced before assignment ilknurg 2 1,855 Feb-10-2022, 07:36 PM
Last Post: deanhystad
  Referenced before assignment finndude 3 3,223 Mar-02-2021, 08:11 PM
Last Post: finndude
  ReferenceError: weakly-referenced object no longer exists MrBitPythoner 17 11,262 Dec-14-2020, 07:34 PM
Last Post: buran
  Assignment of non-existing class variable is accepted - Why? DrZ 6 4,186 Jul-13-2020, 03:53 PM
Last Post: deanhystad
  UnboundLocalError: local variable 'figure_perso' referenced before assignment mederic39 2 2,227 Jun-11-2020, 12:45 PM
Last Post: Yoriz
  local variable 'marks' referenced before assignment Calli 3 2,277 May-25-2020, 03:15 PM
Last Post: Calli
  Variable assignment wierdness with Memory eoins 1 2,003 Mar-08-2020, 10:15 AM
Last Post: scidam
  UnboundLocalError: local variable referenced before assignment svr 1 3,260 Dec-27-2019, 09:08 AM
Last Post: perfringo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020