Files
learn-python3/notebooks/beginner/conditionals.ipynb
Jerry Pussinen 46450175dc Initial commit
2018-05-01 13:59:37 +02:00

286 lines
6.1 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Conditionals"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Testing truth value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `bool`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('type of True and False: {}'.format(type(True)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('0: {}, 1: {}'.format(bool(0), bool(1)))\n",
"print('empty list: {}, list with values: {}'.format(bool([]), bool(['woop'])))\n",
"print('empty dict: {}, dict with values: {}'.format(bool({}), bool({'Python': 'cool'})))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `==, !=, >, <, >=, <=`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('1 == 0: {}'.format(1 == 0))\n",
"print('1 != 0: {}'.format(1 != 0))\n",
"print('1 > 0: {}'.format(1 > 0))\n",
"print('1 > 1: {}'.format(1 > 1))\n",
"print('1 < 0: {}'.format(1 < 0))\n",
"print('1 < 1: {}'.format(1 < 1))\n",
"print('1 >= 0: {}'.format(1 >= 0))\n",
"print('1 >= 1: {}'.format(1 >= 1))\n",
"print('1 <= 0: {}'.format(1 <= 0))\n",
"print('1 <= 1: {}'.format(1 <= 1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can combine these:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('1 <= 2 <= 3: {}'.format(1 <= 2 <= 3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `and, or, not`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"python_is_cool = True\n",
"java_is_cool = False\n",
"empty_list = []\n",
"secret_value = 3.14"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('Python and java are both cool: {}'.format(python_is_cool and java_is_cool))\n",
"print('secret_value and python_is_cool: {}'.format(secret_value and python_is_cool))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('Python or java is cool: {}'.format(python_is_cool or java_is_cool))\n",
"print('1 >= 1.1 or 2 < float(\"1.4\"): {}'.format(1 >= 1.1 or 2 < float('1.4')))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('Java is not cool: {}'.format(not java_is_cool))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can combine multiple statements, execution order is from left to right. You can control the execution order by using brackets."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(bool(not java_is_cool or secret_value and python_is_cool or empty_list))\n",
"print(bool(not (java_is_cool or secret_value and python_is_cool or empty_list)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `if`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"statement = True\n",
"if statement:\n",
" print('statement is True')\n",
" \n",
"if not statement:\n",
" print('statement is not True')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"empty_list = []\n",
"# With if and elif, conversion to `bool` is implicit\n",
"if empty_list:\n",
" print('empty list will not evaluate to True') # this won't be executed"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"val = 3\n",
"if 0 <= val < 1 or val == 3:\n",
" print('Value is positive and less than one or value is three')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `if-else`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"my_dict = {}\n",
"if my_dict:\n",
" print('there is something in my dict')\n",
"else:\n",
" print('my dict is empty :(')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `if-elif-else`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"val = 88\n",
"if val >= 100:\n",
" print('value is equal or greater than 100')\n",
"elif val > 10:\n",
" print('value is greater than 10 but less than 100')\n",
"else:\n",
" print('value is equal or less than 10')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can have as many `elif` statements as you need. In addition, `else` at the end is not mandatory."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"greeting = 'Hello fellow Pythonista!'\n",
"language = 'Italian'\n",
"\n",
"if language == 'Swedish':\n",
" greeting = 'Hejsan!'\n",
"elif language == 'Finnish':\n",
" greeting = 'Latua perkele!'\n",
"elif language == 'Spanish':\n",
" greeting = 'Hola!'\n",
"elif language == 'German':\n",
" greeting = 'Guten Tag!'\n",
" \n",
"print(greeting)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3.0
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 0
}