# Python Data Hierarchy

*Note: This will be updated and linked to further content development*

A subset of the data types that are built into Python.&#x20;

### **Numbers**

We use numbers all the time. Numbers can either be integrals or non-integrals.&#x20;

Arithmetic operators and arithmetic built-in functions will return numbers. Numeric objects are immutable. In other words, when a number is created, it cannot be changes or a number within it be replaced. Python numbers are the same as mathematical numbers, but subject to the limitations of numerical representation in computers.

* ***Integral***
  * ***Integers**:* A whole number that can be positive, negative or zero.
  * ***Booleans**:* A data type that has one of two possible values (`true` or `false`)
* ***Non-integral***
  * ***Floats**:* A number that has a `decimal` place. We use float data type when we need more precision.
  * ***Decimals**:* The decimal data type is an exact numeric defined by its `precision` (total number of digits) and `scale` (number of digits to the right of the **decimal** point).
  * ***Complex*** ***numbers**:* A combination of a real and an imaginary number in the form **`a + bi`** where **`a`** and **`b`** are real numbers, and **`i`** is the "unit imaginary number" `√(−1)`
  * ***Fractions***: Fraction of a number, for example 1/8, 3/4, 5/8 etc.

### Collections

* **Sequences**: Sequences represent finite ordered sets indexed by natural numbers.
  * ***Mutable***: Mutable sequences can be changed after they are created.
    * Lists
  * ***Immutable***: Immutable sequences can **NOT** be changed after they are created.
    * Tuples
    * Strings
* **Sets**
  * ***Mutable***
    * Sets
  * ***Immutable***
    * Frozen sets
* **Mappings**: These represent finite sets of objects indexed by arbitrary index sets.
  * ***Dictionaries***: These represent finite sets of objects indexed by nearly arbitrary values.
* **Callables**
  * ***User-Defined Functions***
  * ***Generators***
  * ***Classes***
  * ***Instance Methods***
  * ***Built-in Functions*** (for example; `len(),` `open()`)
  * ***Built-in Methods*** (for example; `my_list.append(x)`)

### Singletons

* *None*
  * It means that there is no value (empty record). This can be used in function to explicitly return nothing. This type has a single value (`singletons`). This object is accessed through the built-in name `None`. `None` truth value is **`false`**.
* *Ellipsis*
  * Similar to `None`, `Ellipsis` has a single value. This object is accessed through the built-in name `Ellipsis`. It is used to indicate the presence of the "**...**" syntax in a **slice**. `Ellipsis`

    &#x20;truth value is **`true`**.

You can read more on Python Data Types in Python documentation [here](https://docs.python.org/2.0/ref/types.html)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zmnako.gitbook.io/datascience/python-data-hierarchy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
