# Types and built-in functionsÂ¶

```# Replace the value of this variable with your name
my_name = 'John Coltrane'
```
```print(type(52))
print(type("52"))
print(type('52'))
print(type(52.0))
```

## Every value has a type.Â¶

• Every value in a program has a specific type.

• Integer (`int`): represents positive or negative whole numbers like 3 or -512.

• Floating point number (`float`): represents real numbers like 3.14159 or -2.5.

• Character string (usually called â€śstringâ€ť, `str`): text.

• Written in either single quotes or double quotes (as long as they match).

• The quote marks arenâ€™t printed when the string is displayed.

## Built-in functionsÂ¶

• Use the built-in function `type` to find out what type a value has.

• Works on variables as well.

• But remember: the value has the type â€” the variable is just a label.

```def get_gdp(C,I,G,X,M):
return  C + I + G + (X - M)

island_gdp = get_gdp(1000000, 500000,800000,100000,2000000)
print(island_gdp)
```
```400000
```

## Types control what operations (or methods) can be performed on a given value.Â¶

• A valueâ€™s type determines what the program can do to it.

```print(5 - 3)
```
```print('hello' + ', ' + my_name)
```

## You can use the â€ś+â€ť and â€ś*â€ť operators on strings.Â¶

• â€śAddingâ€ť character strings concatenates them.

```full_name = 'Ahmed' + ' ' + 'Walsh'
print(full_name)
```
• Multiplying a character string by an integer N creates a new string that consists of that character string repeated N times.

• Since multiplication is repeated addition.

```separator = '=' * 10
print(separator)
```

## Strings have a length (but numbers donâ€™t).Â¶

• The built-in function `len` counts the number of characters in a string.

```print(len(full_name))
```
• But numbers donâ€™t have a length (not even zero).

```print(len(52))
```

## Must convert numbers to strings or vice versa when operating on them.Â¶

• Cannot add numbers and strings.

```print(1 + '2')
```
• Not allowed because itâ€™s ambiguous: should `1 + '2'` be `3` or `'12'`?

• Some types can be converted to other types by using the type name as a function.

```print(1 + int('2'))
print(str(1) + '2')
```

## Can mix integers and floats freely in operations.Â¶

• Integers and floating-point numbers can be mixed in arithmetic.

• Python 3 automatically converts integers to floats as needed. (Integer division in Python 2 will return an integer, the floor of the division.)

```print('half is', 1 / 2.0)
print('three squared is', 3.0 ** 2)
```