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

373 lines
7.5 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# [Strings](https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"my_string = 'Python is my favorite programming language!'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"my_string"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"type(my_string)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"len(my_string)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Respecting [PEP8](https://www.python.org/dev/peps/pep-0008/#maximum-line-length) with long strings"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"long_story = ('Lorem ipsum dolor sit amet, consectetur adipiscing elit.' \n",
" 'Pellentesque eget tincidunt felis. Ut ac vestibulum est.' \n",
" 'In sed ipsum sit amet sapien scelerisque bibendum. Sed ' \n",
" 'sagittis purus eu diam fermentum pellentesque.')\n",
"long_story"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.replace()`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you don't know how it works, you can always check the `help`:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"help(str.replace)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"my_string.replace('a', '?')\n",
"print(my_string)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"my_modified_string = my_string.replace('is', 'will be')\n",
"print(my_modified_string)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.format()`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"secret = '{} is cool'.format('Python')\n",
"print(secret)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('My name is {} {}, you can call me {}.'.format('John', 'Doe', 'John'))\n",
"# is the same as:\n",
"print('My name is {first} {family}, you can call me {first}.'.format(first='John', family='Doe'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.join()`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pandas = 'pandas'\n",
"numpy = 'numpy'\n",
"requests = 'requests'\n",
"cool_python_libs = ', '.join([pandas, numpy, requests])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print('Some cool python libraries: {}'.format(cool_python_libs))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatives (not as [Pythonic](http://docs.python-guide.org/en/latest/writing/style/#idioms) and [slower](https://waymoot.org/home/python_string/)):"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"cool_python_libs = pandas + ', ' + numpy + ', ' + requests\n",
"print('Some cool python libraries: {}'.format(cool_python_libs))\n",
"\n",
"cool_python_libs = pandas\n",
"cool_python_libs += ', ' + numpy\n",
"cool_python_libs += ', ' + requests\n",
"print('Some cool python libraries: {}'.format(cool_python_libs))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.upper(), str.lower(), str.title()`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"mixed_case = 'PyTHoN hackER'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"mixed_case.upper()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"mixed_case.lower()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"mixed_case.title()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.strip()`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ugly_formatted = ' \\n \\t Some story to tell '\n",
"stripped = ugly_formatted.strip()\n",
"\n",
"print('ugly: {}'.format(ugly_formatted))\n",
"print('stripped: {}'.format(ugly_formatted.strip()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## `str.split()`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sentence = 'three different words'\n",
"words = sentence.split()\n",
"print(words)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"type(words)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"secret_binary_data = '01001,101101,11100000'\n",
"binaries = secret_binary_data.split(',')\n",
"print(binaries)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calling multiple methods in a row"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ugly_mixed_case = ' ThIS LooKs BAd '\n",
"pretty = ugly_mixed_case.strip().lower().replace('bad', 'good')\n",
"print(pretty)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that execution order is from left to right. Thus, this won't work:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pretty = ugly_mixed_case.replace('bad', 'good').strip().lower()\n",
"print(pretty)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Escape characters](http://python-reference.readthedocs.io/en/latest/docs/str/escapes.html#escape-characters)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"two_lines = 'First line\\nSecond line'\n",
"print(two_lines)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"indented = '\\tThis will be indented'\n",
"print(indented)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 1
}