{ "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 }