 ## Step 9: Variables

Okay, so now we know about a few types of data, and a few ways to manipulate them. However, something very fundamental is still missing. What if we want to evaluate the expression `12 ** 2`, and print the result 3 times?

``````puts(12 ** 2)
puts(12 ** 2)
puts(12 ** 2)``````

This seems a bit repetitive, and if you remember, programming is all about automation. If something seems repetitive while you’re writing a program, odds are there is a better way to do it. In this case, we are asking the computer to do the same calculation three times. This might not seem like a big deal now, but what if the calculation was a lot more complicated and took the computer 30 seconds to evaluate, and we want to print the result 100,000 times? Now it seems like our program would be a lot faster if we could perform the calculation one time, save the result, and then print it as many times as we want.

``````number = 12 ** 2
puts(number)
puts(number)
puts(number)``````

Here, we saved the result of `12 ** 2` in a variable called `number`, and then printed out number 3 times. In this example, we only had to perform the calculation once instead of three times.

In Ruby, variables can be named using letters and numbers, but must start with a lowercase letter. Also, by convention in Ruby if you want to call your variable something with multiple words, you use an underscore to separate the words.

``````three_hundred = 10 * 10 * 3
puts(three_hundred)``````

Ruby also allows us to change the values of our variables throughout our programs.

``````number = 8
puts(number)
number = number + 1
puts(number)``````

Above we changed the value of the variable `number` by adding `1` to the original value.