# Variables and Types

## Table of Contents

1. [Declaration](/content/classes/python/variables-types#declaration/index.html)
2. [Variable Naming Rules](/content/classes/python/variables-types#variable-naming-rules/index.html)
3. [Data Types](/content/classes/python/variables-types#data-types/index.html)

**Variables** are a way to store a piece of data. Variables are a fundamental part of [Python](/content/classes/python/index.html), as they are with any programming language. Variables have two components to them, the name and its value. Let's start by creating one.

## Declaration

**Declaring** a variable is incredibly simple in Python. It looks like this:

```python
x = 1
y = "sabe.io"
print(x)
print(y)
```

```bash
1
sabe.io
```

Variables in Python are created by simply setting their values, that's it. Unlike in other programming languages, you do not need to specify the type of variable, it is done automatically for you.

## Variable Naming Rules

Here are the rules for what are valid Python variable names:

- The variable name must begin with a letter or underscore
- The variable name cannot begin with a number or symbol
- Throughout the entire variable name, it can only contain alpha-numeric characters with the only exception being underscores

With that in mind, here are some examples of valid Python variable names:

```python
apples
_apples
_apples_
```

And here are examples of invalid Python variable names:

```python
1apples
app les
$apples
%apples
```

## Data Types

Python supports five standard data types. We've already seen two of them already, **Numbers** and **String**. Here is the entire list:

- Numbers
- String
- List
- Tuple
- Dictionary

It is useful to know that you can get the type of a variable by using the `type` method, like so:

```python
x = 1
y = "sabe.io"
print(type(x))
print(type(y))
```

```bash
<class 'int'>
<class 'str'>
```

We'll get into **lists**, **tuples**, and **dictionaries** in later lessons.
