Python Forum
Print variable values from a list of variables - 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: Print variable values from a list of variables (/thread-29368.html)



Print variable values from a list of variables - xnightwingx - Aug-30-2020

Sorry, I'm new to python and coding in general. I been searching for some time and haven't found a way to do this.

This is the code so far:
vin1 = 100
vin2 = 200
vin3 = 300
vin4 = 400

vin_numbers = ['vin1', 'vin2', 'vin3', 'vin4']
print('\nAvailable VIN numbers:')
for vin in vin_numbers:
	print(f'{vin} = ')
I'm looking for a way to output the numeric values of the variables in the list rather than the text values from the list. I would really appreciate any help


RE: Print variable values from a list of variables - deanhystad - Aug-30-2020

'vin1' is a string. It is not the variable you initialized to 100. To put the variable values in the list you do this:
vin_numbers=[vin1, vin2, vin3, vin4]
You don't need need to make the variables and can put the values directly in the list.
vin_numbers=[100, 200, 300, 400]



RE: Print variable values from a list of variables - xnightwingx - Aug-30-2020

I see. I think I was trying to do too much with it, when just making the list a list of numbers would be cleaner. thank you!


RE: Print variable values from a list of variables - deanhystad - Sep-01-2020

I don't understand why, but it is a common misconception by many new programmers on this forum that everything needs a variable, as in if you have 4 things you must need 4 variables. I don't know where this thinking comes from, but it is common enough that there must be some popular resource perpetuating this fallacy.

Variables are bad. Necessary, but bad. Every variable is extra code and extra potential for making mistakes. Your programs should only use as many variables as are necessary and no more. In your example you should only have 1 variable, the list of VIN numbers. Unless there is something really special about the second VIN number why should it have a variable? That can be a kind of test for deciding to use a variable. If something is "special" it probably deserves a variable, else treat it as part of a collection or ignore it.

What do I mean by "treat it as part of a collection"? In this example you have a list of VIN numbers. In the "real world" each VIN number represents something unique and special, but a program is not the real world and a VIN number is just a unique ID. Nothing special about that. Your program needs to remember VIN numbers, so there has to be some way to save them and access them and probably process them, but this will be the same for all the VIN numbers. When you have a bunch of related things like this it is best to treat them as faceless entities in a collection.

What do I mean by "ignore it"? I see a lot of Python code on this forum that makes variables for things that should be thrown away. This is particularly true in the GUI discussion group. Almost everything returned by a tkinter call should be thrown away. After I place my controls I don't need to remember the frame that holds them. Depending how I write my code I don't have to remember the handles for my controls and displays. This stuff is important when you are making things, but once you move into running things they are no longer referenced. If you are done using something, throw it away. Python is good at recycling