Raw strings

In [1]:
len('\\')
Out[1]:
1
In [2]:
len(r'\\')
Out[2]:
2

Модуль re

In [3]:
import re

re.fullmatch?

Type: function String form: <function fullmatch at 0x103e00730> File: /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/re.py Definition: re.fullmatch(pattern, string, flags=0) Docstring: Try to apply the pattern to all of the string, returning a match object, or None if no match was found.

In [4]:
re.fullmatch(r'a*bb*a((a|b)b*a)*', 'aaaba') is not None
Out[4]:
True
In [5]:
re.fullmatch(r'a*bb*a((a|b)b*a)*', 'aaabab') is not None
Out[5]:
False
In [6]:
re.fullmatch(r'a*bb*a((a|b)b*a)*', 'aaababa') is not None
Out[6]:
True

re.findall?

Type: function String form: <function findall at 0x103e009d8> File: /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/re.py Definition: re.findall(pattern, string, flags=0) Docstring: Return a list of all non-overlapping matches in the string.

If one or more capturing groups are present in the pattern, return a list of groups; this will be a list of tuples if the pattern has more than one group.

Empty matches are included in the result.</code>

In [7]:
re.findall(r'<.*>', '<h1>Title</h1><h2>Subtitle</h2>')
Out[7]:
['<h1>Title</h1><h2>Subtitle</h2>']
In [8]:
re.findall(r'<.*?>', '<h1>Title</h1><h2>Subtitle</h2>')
Out[8]:
['<h1>', '</h1>', '<h2>', '</h2>']

re.search?

Type: function String form: <function search at 0x103e007b8> File: /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/re.py Definition: re.search(pattern, string, flags=0) Docstring: Scan through string looking for a match to the pattern, returning a match object, or None if no match was found.

In [9]:
re.search(r'([_0-9a-zA-Z.]+)[email protected]([_0-9a-zA-Z.]+)', 'My email is [email protected]')
Out[9]:
<_sre.SRE_Match object; span=(12, 32), match='[email protected]'>
In [10]:
mo = re.search(r'([_0-9a-zA-Z.]+)[email protected]([_0-9a-zA-Z.]+)', 'My email is [email protected]')
In [11]:
mo.group()
Out[11]:
In [12]:
mo.group(0)
Out[12]:
In [13]:
mo.group(1)
Out[13]:
'd.v.kornev'
In [14]:
mo.group(2)
Out[14]:
'gmail.com'
In [15]:
re.fullmatch(r'(.*)cad\1', 'abracadabra') is not None
Out[15]:
True
In [16]:
re.search(r'.*(?= Newton)', 'Isaac Newton')
Out[16]:
<_sre.SRE_Match object; span=(0, 5), match='Isaac'>

Вопросы производительности

In [17]:
very_big_data = ['some good string'] * 10000 + ['some bad string'] * 10000
In [18]:
len(very_big_data)
Out[18]:
20000
In [19]:
def count_good_strings(data):
    count = 0
    for string in data:
        if re.search(r'good', string) is not None:
            count += 1
    return count
In [20]:
count_good_strings(very_big_data)
Out[20]:
10000
In [21]:
%timeit count_good_strings(very_big_data)
10 loops, best of 3: 27.3 ms per loop
In [22]:
def count_good_strings_fast(data):
    regex = re.compile(r'good')
    count = 0
    for string in data:
        if regex.search(string):
            count += 1
    return count
In [23]:
count_good_strings_fast(very_big_data)
Out[23]:
10000
In [24]:
%timeit count_good_strings_fast(very_big_data)
100 loops, best of 3: 7.55 ms per loop

Извлечение данных и их изменение

In [25]:
import re
import requests

r = requests.get('http://python.org/')
r.text
Out[25]:
'<!doctype html>\n<!--[if lt IE 7]>   <html class="no-js ie6 lt-ie7 lt-ie8 lt-ie9">   <![endif]-->\n<!--[if IE 7]>      <html class="no-js ie7 lt-ie8 lt-ie9">          <![endif]-->\n<!--[if IE 8]>      <html class="no-js ie8 lt-ie9">                 <![endif]-->\n<!--[if gt IE 8]><!--><html class="no-js" lang="en" dir="ltr">  <!--<![endif]-->\n\n<head>\n    <meta charset="utf-8">\n    <meta http-equiv="X-UA-Compatible" content="IE=edge">\n\n    <link rel="prefetch" href="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">\n\n    <meta name="application-name" content="Python.org">\n    <meta name="msapplication-tooltip" content="The official home of the Python Programming Language">\n    <meta name="apple-mobile-web-app-title" content="Python.org">\n    <meta name="apple-mobile-web-app-capable" content="yes">\n    <meta name="apple-mobile-web-app-status-bar-style" content="black">\n\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <meta name="HandheldFriendly" content="True">\n    <meta name="format-detection" content="telephone=no">\n    <meta http-equiv="cleartype" content="on">\n    <meta http-equiv="imagetoolbar" content="false">\n\n    <script src="/static/js/libs/modernizr.js"></script>\n\n    <link href="/static/stylesheets/style.css" rel="stylesheet" type="text/css" title="default" />\n    <link href="/static/stylesheets/mq.css" rel="stylesheet" type="text/css" media="not print, braille, embossed, speech, tty" />\n    \n\n    <!--[if (lte IE 8)&(!IEMobile)]>\n    <link href="/static/stylesheets/no-mq.css" rel="stylesheet" type="text/css" media="screen" />\n    \n    \n    <![endif]-->\n\n    \n    <link rel="icon" type="image/x-icon" href="/static/favicon.ico">\n    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/static/apple-touch-icon-144x144-precomposed.png">\n    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/static/apple-touch-icon-114x114-precomposed.png">\n    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/static/apple-touch-icon-72x72-precomposed.png">\n    <link rel="apple-touch-icon-precomposed" href="/static/apple-touch-icon-precomposed.png">\n    <link rel="apple-touch-icon" href="/static/apple-touch-icon-precomposed.png">\n\n    \n    <meta name="msapplication-TileImage" content="/static/metro-icon-144x144-precomposed.png"><!-- white shape -->\n    <meta name="msapplication-TileColor" content="#3673a5"><!-- python blue -->\n    <meta name="msapplication-navbutton-color" content="#3673a5">\n\n    <meta property="og:site_name" content="Python.org">\n    <meta property="og:type" content="website">\n\n    <title>Welcome to Python.org</title>\n    <meta property="og:title" content="Welcome to Python.org">\n\n    \n    <meta name="description" content="The official home of the Python Programming Language">\n    <meta name="og:description" content="The official home of the Python Programming Language">\n    <meta name="keywords" content="Python programming language object oriented web free open source software license documentation download community">\n    <meta property="og:tag" content="Python programming language object oriented web free open source software license documentation download community">\n    <meta property="og:published_time" content="">\n    <meta property="og:modified_time" content="">\n    <meta property="og:author" content="">\n    <meta property="og:section" content=""> \n    <meta property="og:url" content="">\n    <meta property="og:image" content="">\n    <meta property="og:video" content="">\n\n    <link rel="author" href="/static/humans.txt">\n\n    \n\n    \n    <script type="application/ld+json">\n     {\n       "@context": "http://schema.org",\n       "@type": "WebSite",\n       "url": "https://www.python.org/",\n       "potentialAction": {\n         "@type": "SearchAction",\n         "target": "https://www.python.org/search/?q={search_term_string}",\n         "query-input": "required name=search_term_string"\n       }\n     }\n    </script>\n\n    \n    <script type="text/javascript">\n    var _gaq = _gaq || [];\n    _gaq.push([\'_setAccount\', \'UA-39055973-1\']);\n    _gaq.push([\'_trackPageview\']);\n\n    (function() {\n        var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;\n        ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';\n        var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);\n    })();\n    </script>\n    \n</head>\n\n<body class="python home" id="homepage">\n\n    <div id="touchnav-wrapper">\n\n        <!-- Sister Site Links -->\n        <div id="top" class="top-bar do-not-print">\n\n            <nav class="meta-navigation container" role="navigation">\n\n                \n                <div class="skip-link screen-reader-text">\n                    <a href="#content" title="Skip to content">Skip to content</a>\n                </div>\n\n                \n                <a id="close-python-network" class="jump-link" href="#python-network" aria-hidden="true">\n                    <span aria-hidden="true" class="icon-arrow-down"><span>&#9660;</span></span> Close\n                </a>\n\n                \n\n<ul class="menu" role="tree">\n    \n    <li class="python-meta current_item selectedcurrent_branch selected">\n        <a href="/" title="The Python Programming Language" class="current_item selectedcurrent_branch selected">Python</a>\n    </li>\n    \n    <li class="psf-meta ">\n        <a href="/psf-landing/" title="The Python Software Foundation" >PSF</a>\n    </li>\n    \n    <li class="docs-meta ">\n        <a href="https://docs.python.org" title="Python Documentation" >Docs</a>\n    </li>\n    \n    <li class="pypi-meta ">\n        <a href="https://pypi.python.org/" title="Python Package Index" >PyPI</a>\n    </li>\n    \n    <li class="jobs-meta ">\n        <a href="/community/jobs/" title="Python Job Board" >Jobs</a>\n    </li>\n    \n    <li class="shop-meta ">\n        <a href="/community/" title="Python Community" >Community</a>\n    </li>\n    \n</ul>\n\n\n                <a id="python-network" class="jump-link" href="#top" aria-hidden="true">\n                    <span aria-hidden="true" class="icon-arrow-up"><span>&#9650;</span></span> The Python Network\n                </a>\n\n            </nav>\n\n        </div>\n\n        <!-- Header elements -->\n        <header class="main-header" role="banner">\n            <div class="container">\n\n                <h1 class="site-headline">\n                    <a href="/"><img class="python-logo" src="/static/img/python-logo.png" alt="python&trade;"></a>\n                </h1>\n\n                <div class="options-bar do-not-print">\n\n                    \n                    <a id="site-map-link" class="jump-to-menu" href="#site-map"><span class="menu-icon">&equiv;</span> Menu</a><form class="search-the-site" action="/search/" method="get">\n                        <fieldset title="Search Python.org">\n\n                            <span aria-hidden="true" class="icon-search"></span>\n\n                            <label class="screen-reader-text" for="id-search-field">Search This Site</label>\n                            <input id="id-search-field" name="q" type="search" role="textbox" class="search-field" placeholder="Search" value="" tabindex="1">\n\n                            <button type="submit" name="submit" id="submit" class="search-button" title="Submit this Search" tabindex="3">\n                                GO\n                            </button>\n\n                            \n                            <!--[if IE]><input type="text" style="display: none;" disabled="disabled" size="1" tabindex="4"><![endif]-->\n\n                        </fieldset>\n                    </form><span class="breaker"></span><div class="adjust-font-size" aria-hidden="true">\n                        <ul class="navigation menu" aria-label="Adjust Text Size on Page">\n                            <li class="tier-1 last" aria-haspopup="true">\n                                <a href="#" class="action-trigger"><strong><small>A</small> A</strong></a>\n                                <ul class="subnav menu">\n                                    <li class="tier-2 element-1" role="treeitem"><a class="text-shrink" title="Make Text Smaller" href="javascript:;">Smaller</a></li>\n                                    <li class="tier-2 element-2" role="treeitem"><a class="text-grow" title="Make Text Larger" href="javascript:;">Larger</a></li>\n                                    <li class="tier-2 element-3" role="treeitem"><a class="text-reset" title="Reset any font size changes I have made" href="javascript:;">Reset</a></li>\n                                </ul>\n                            </li>\n                        </ul>\n                    </div><div class="winkwink-nudgenudge">\n                        <ul class="navigation menu" aria-label="Social Media Navigation">\n                            <li class="tier-1 last" aria-haspopup="true">\n                                <a href="#" class="action-trigger">Socialize</a>\n                                <ul class="subnav menu">\n                                    <li class="tier-2 element-1" role="treeitem"><a href="http://plus.google.com/+Python"><span aria-hidden="true" class="icon-google-plus"></span>Google+</a></li>\n                                    <li class="tier-2 element-2" role="treeitem"><a href="http://www.facebook.com/pythonlang?fref=ts"><span aria-hidden="true" class="icon-facebook"></span>Facebook</a></li>\n                                    <li class="tier-2 element-3" role="treeitem"><a href="http://twitter.com/ThePSF"><span aria-hidden="true" class="icon-twitter"></span>Twitter</a></li>\n                                    <li class="tier-2 element-4" role="treeitem"><a href="/community/irc/"><span aria-hidden="true" class="icon-freenode"></span>Chat on IRC</a></li>\n                                </ul>\n                            </li>\n                        </ul>\n                    </div><div class="account-signin">\n                        <ul class="navigation menu" aria-label="Social Media Navigation">\n                            <li class="tier-1 last" aria-haspopup="true">\n                                \n                                <a href="/accounts/login/" title="Sign Up or Sign In to Python.org">Sign In</a>\n                                <ul class="subnav menu">\n                                    <li class="tier-2 element-1" role="treeitem"><a href="/accounts/signup/">Sign Up / Register</a></li>\n                                    <li class="tier-2 element-2" role="treeitem"><a href="/accounts/login/">Sign In</a></li>\n                                </ul>\n                                \n                            </li>\n                        </ul>\n                    </div>\n\n                </div><!-- end options-bar -->\n\n                <nav id="mainnav" class="python-navigation main-navigation do-not-print" role="navigation">\n                    \n                        \n<ul class="navigation menu" role="menubar" aria-label="Main Navigation">\n  \n    \n    \n    <li id="about" class="tier-1 element-1  " aria-haspopup="true">\n        <a href="/about/" title="" class="">About</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/about/apps/" title="">Applications</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/about/quotes/" title="">Quotes</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/about/gettingstarted/" title="">Getting Started</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/about/help/" title="">Help</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="downloads" class="tier-1 element-2  " aria-haspopup="true">\n        <a href="/downloads/" title="" class="">Downloads</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/downloads/" title="">All releases</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/downloads/source/" title="">Source code</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/downloads/windows/" title="">Windows</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/downloads/mac-osx/" title="">Mac OS X</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/download/other/" title="">Other Platforms</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="https://docs.python.org/3/license.html" title="">License</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/download/alternatives" title="">Alternative Implementations</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="documentation" class="tier-1 element-3  " aria-haspopup="true">\n        <a href="/doc/" title="" class="">Documentation</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/doc/" title="">Docs</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/doc/av" title="">Audio/Visual Talks</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="https://wiki.python.org/moin/BeginnersGuide" title="">Beginner&#39;s Guide</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="https://docs.python.org/devguide/" title="">Developer&#39;s Guide</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="https://docs.python.org/faq/" title="">FAQ</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="http://wiki.python.org/moin/Languages" title="">Non-English Docs</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="http://python.org/dev/peps/" title="">PEP Index</a></li>\n    \n        <li class="tier-2 element-8" role="treeitem"><a href="https://wiki.python.org/moin/PythonBooks" title="">Python Books</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="community" class="tier-1 element-4  " aria-haspopup="true">\n        <a href="/community/" title="" class="">Community</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/community/diversity/" title="">Diversity</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/community/irc/" title="">IRC</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/community/lists/" title="">Mailing Lists</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/community/workshops/" title="">Python Conferences</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/community/sigs/" title="">Special Interest Groups</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="https://wiki.python.org/moin/" title="">Python Wiki</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/community/logos/" title="">Python Logo</a></li>\n    \n        <li class="tier-2 element-8" role="treeitem"><a href="/community/merchandise/" title="">Merchandise</a></li>\n    \n        <li class="tier-2 element-9" role="treeitem"><a href="/community/awards" title="">Community Awards</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="success-stories" class="tier-1 element-5  " aria-haspopup="true">\n        <a href="/about/success/" title="success-stories" class="">Success Stories</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/about/success/#arts" title="">Arts</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/about/success/#business" title="">Business</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/about/success/#education" title="">Education</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/about/success/#engineering" title="">Engineering</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/about/success/#government" title="">Government</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="/about/success/#scientific" title="">Scientific</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/about/success/#software-development" title="">Software Development</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="news" class="tier-1 element-6  " aria-haspopup="true">\n        <a href="/blogs/" title="News from around the Python world" class="">News</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/blogs/" title="Python Insider Blog Posts">Python News</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="http://planetpython.org/" title="Planet Python">Community News</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="http://pyfound.blogspot.com/" title="PSF Blog">PSF News</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="http://pycon.blogspot.com/" title="PyCon Blog">PyCon News</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    <li id="events" class="tier-1 element-7  " aria-haspopup="true">\n        <a href="/events/python-events/" title="" class="">Events</a>\n        \n            \n\n<ul class="subnav menu" role="menu" aria-hidden="true">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/events/python-events/" title="">Python Events</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/events/python-user-group/" title="">User Group Events</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/events/python-events/past/" title="">Python Events Archive</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/events/python-user-group/past/" title="">User Group Events Archive</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event" title="">Submit an Event</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    \n    \n    \n  \n</ul>\n\n                    \n                </nav>\n\n                <div class="header-banner "> <!-- for optional "do-not-print" class -->\n                    \n        <div id="dive-into-python" class="flex-slideshow slideshow">\n\n            <ul class="launch-shell menu" id="launch-shell">\n                <li>\n                    <a class="button prompt" id="start-shell" data-shell-container="#dive-into-python" href="/shell/">&gt;_\n                        <span class="message">Launch Interactive Shell</span>\n                    </a>\n                </li>\n            </ul>\n\n            <ul class="slides menu">\n                \n                <li>\n                    <div class="slide-code"><pre><code><span class="comment"># Python 3: Fibonacci series up to n</span>\r\n>>> def fib(n):\r\n>>>     a, b = 0, 1\r\n>>>     while a &lt; n:\r\n>>>         print(a, end=\' \')\r\n>>>         a, b = b, a+b\r\n>>>     print()\r\n>>> fib(1000)\r\n<span class="output">0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987</span></code></pre></div>\n                    <div class="slide-copy"><h1>Functions Defined</h1>\r\n<p>The core of extensible programming is defining functions. Python allows mandatory and optional arguments, keyword arguments, and even arbitrary argument lists. <a href="//docs.python.org/3/tutorial/controlflow.html#defining-functions">More about defining functions in Python&nbsp;3</a></p></div>\n                </li>\n                \n                <li>\n                    <div class="slide-code"><pre><code><span class="comment"># Python 3: List comprehensions</span>\r\n>>> fruits = [\'Banana\', \'Apple\', \'Lime\']\r\n>>> loud_fruits = [fruit.upper() for fruit in fruits]\r\n>>> print(loud_fruits)\r\n<span class="output">[\'BANANA\', \'APPLE\', \'LIME\']</span>\r\n\r\n<span class="comment"># List and the enumerate function</span>\r\n>>> list(enumerate(fruits))\r\n<span class="output">[(0, \'Banana\'), (1, \'Apple\'), (2, \'Lime\')]</span></code></pre></div>\n                    <div class="slide-copy"><h1>Compound Data Types</h1>\r\n<p>Lists (known as arrays in other languages) are one of the compound data types that Python understands. Lists can be indexed, sliced and manipulated with other built-in functions. <a href="//docs.python.org/3/tutorial/introduction.html#lists">More about lists in Python&nbsp;3</a></p></div>\n                </li>\n                \n                <li>\n                    <div class="slide-code"><pre><code><span class="comment"># Python 3: Simple arithmetic</span>\r\n>>> 1 / 2\r\n<span class="output">0.5</span>\r\n>>> 2 ** 3\r\n<span class="output">8</span>\r\n>>> 17 / 3  <span class="comment"># classic division returns a float</span>\r\n<span class="output">5.666666666666667</span>\r\n>>> 17 // 3  <span class="comment"># floor division</span>\r\n<span class="output">5</span></code></pre></div>\n                    <div class="slide-copy"><h1>Intuitive Interpretation</h1>\r\n<p>Calculations are simple with Python, and expression syntax is straightforward: the operators <code>+</code>, <code>-</code>, <code>*</code> and <code>/</code> work as expected; parentheses <code>()</code> can be used for grouping. <a href="http://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator">More about simple math functions in Python&nbsp;3</a>.</p></div>\n                </li>\n                \n                <li>\n                    <div class="slide-code"><pre><code><span class="comment"># Python 3: Simple output (with Unicode)</span>\r\n>>> print("Hello, I\'m Python!")\r\n<span class="output">Hello, I\'m Python!</span>\r\n\r\n<span class="comment"># Input, assignment</span>\r\n>>> name = input(\'What is your name?\\n\')\r\n>>> print(\'Hi, %s.\' % name)\r\n<span class="output">What is your name?\r\nPython\r\nHi, Python.</span></code></pre></div>\n                    <div class="slide-copy"><h1>Quick &amp; Easy to Learn</h1>\r\n<p>Experienced programmers in any other language can pick up Python very quickly, and beginners find the clean syntax and indentation structure easy to learn. <a href="//docs.python.org/3/tutorial/">Whet your appetite</a> with our Python&nbsp;3 overview.</p>\r\n                   </div>\n                </li>\n                \n                <li>\n                    <div class="slide-code"><pre><code><span class=\\"comment\\"># For loop on a list</span>\r\n>>> numbers = [2, 4, 6, 8]\r\n>>> product = 1\r\n>>> for number in numbers:\r\n...    product = product * number\r\n... \r\n>>> print(\'The product is:\', product)\r\n<span class=\\"output\\">The product is: 384</span></code></pre></div>\n                    <div class="slide-copy"><h1>All the Flow You&rsquo;d Expect</h1>\r\n<p>Python knows the usual control flow statements that other languages speak &mdash; <code>if</code>, <code>for</code>, <code>while</code> and <code>range</code> &mdash; with some of its own twists, of course. <a href="//docs.python.org/3/tutorial/controlflow.html">More control flow tools in Python&nbsp;3</a></p></div>\n                </li>\n                \n            </ul>\n        </div>\n\n\n                </div>\n\n                \n        <div class="introduction">\n            <p>Python is a programming language that lets you work quickly <span class="breaker"></span>and integrate systems more effectively. <a class="readmore" href="/doc/">Learn More</a></p>\n        </div>\n\n\n             </div><!-- end .container -->\n        </header>\n\n        <div id="content" class="content-wrapper">\n            <!-- Main Content Column -->\n            <div class="container">\n\n                <section class="main-content " role="main">\n\n                    \n                    \n\n                    \n\n                <div class="row">\n\n                    <div class="small-widget get-started-widget">\n                        <h2 class="widget-title"><span aria-hidden="true" class="icon-get-started"></span>Get Started</h2>\r\n<p>Whether you\'re new to programming or an experienced developer, it\'s easy to learn and use Python.</p>\r\n<p><a href="/about/gettingstarted/">Start with our Beginner&rsquo;s Guide</a></p>\n                    </div>\n\n                    <div class="small-widget download-widget">\n                        <h2 class="widget-title"><span aria-hidden="true" class="icon-download"></span>Download</h2>\n<p>Python source code and installers are available for download for all versions! Not sure which version to use? <a href="https://wiki.python.org/moin/Python2orPython3">Check here</a>.</p>\n<p>Latest: <a href="/downloads/release/python-343/">Python 3.4.3</a> - <a href="/downloads/release/python-279/">Python 2.7.9</a></p>\n                    </div>\n\n                    <div class="small-widget documentation-widget">\n                        <h2 class="widget-title"><span aria-hidden="true" class="icon-documentation"></span>Docs</h2>\r\n<p>Documentation for Python\'s standard library, along with tutorials and guides, are available online.</p>\r\n<p><a href="https://docs.python.org">docs.python.org</a></p>\n                    </div>\n\n                    <div class="small-widget jobs-widget last">\n                        <h2 class="widget-title"><span aria-hidden="true" class="icon-jobs"></span>Jobs</h2>\r\n<p>Looking for work or have a Python related position that you\'re trying to hire for? Our community-run job board is the place to go.</p>\r\n<p><a href="//jobs.python.org">jobs.python.org</a></p>\n                    </div>\n\n                </div>\n\n                <div class="list-widgets row">\n\n                    <div class="medium-widget blog-widget">\n                        \n                        <div class="shrubbery">\n                        \n                            <h2 class="widget-title"><span aria-hidden="true" class="icon-news"></span>Latest News</h2>\n                            <p class="give-me-more"><a href="http://blog.python.org" title="More News">More</a></p>\n                            \n                            <ul class="menu">\n                                \n                                \n                                <li>\n<time datetime="2015-03-03T22:45:29.000001+00:00"><span class="say-no-more">2015-</span>03-03</time>\n <a href="http://feedproxy.google.com/~r/PythonInsider/~3/AJ6AMDcjGaE/python-3.html">Python 3.4.3&nbsp;was released Wednesday, February 25th, 2015.&nbsp;&nbsp; Python 3.4.3 has ...</a></li>\n                                \n                                <li>\n<time datetime="2015-01-13T14:11:19.000001+00:00"><span class="say-no-more">2015-</span>01-13</time>\n <a href="http://feedproxy.google.com/~r/PythonInsider/~3/eb3JkcqpXBQ/ironpython-275-released.html">IronPython 2.7.5 has been released.</a></li>\n                                \n                                <li>\n<time datetime="2014-12-10T22:33:27.000002+00:00"><span class="say-no-more">2014-</span>12-10</time>\n <a href="http://feedproxy.google.com/~r/PythonInsider/~3/WgVFScO85Is/python-279-released.html">Python 2.7.9 has been released. Download it for your platform.</a></li>\n                                \n                                <li>\n<time datetime="2014-12-05T21:06:22.000004+00:00"><span class="say-no-more">2014-</span>12-05</time>\n <a href="http://feedproxy.google.com/~r/PythonInsider/~3/791RxJ5ghSk/release-candidate-for-python-279.html">The first release candidate of Python 2.7.9 has been released. ...</a></li>\n                                \n                                <li>\n<time datetime="2014-08-01T20:48:51.000004+00:00"><span class="say-no-more">2014-</span>08-01</time>\n <a href="http://feedproxy.google.com/~r/PythonInsider/~3/pyi0_KezFgY/python-341-released.html">Python 3.4.1 was released on May 18th, 2014, with over ...</a></li>\n                                \n                            </ul>\n                        </div><!-- end .shrubbery -->\n\n                    </div>\n\n                    <div class="medium-widget event-widget last">\n                        \n                        <div class="shrubbery">\n                        \n                            <h2 class="widget-title"><span aria-hidden="true" class="icon-calendar"></span>Upcoming Events</h2>\n                            <p class="give-me-more"><a href="/events/calendars/" title="More Events">More</a></p>\n                            \n                            <ul class="menu">\n                                \n                                \n                                \n                                <li>\n<time datetime="2015-03-28T00:00:00+00:00"><span class="say-no-more">2015-</span>03-28</time>\n <a href="/events/python-events/285/">PyDay AsunciĆ³n</a></li>\n                                \n                                \n                                \n                                <li>\n<time datetime="2015-03-28T00:00:00+00:00"><span class="say-no-more">2015-</span>03-28</time>\n <a href="/events/python-events/246/">PythonCamp 2015 - Python Bar Camp in Cologne</a></li>\n                                \n                                \n                                \n                                <li>\n<time datetime="2015-04-03T00:00:00+00:00"><span class="say-no-more">2015-</span>04-03</time>\n <a href="/events/python-events/274/">PyData Paris 2015</a></li>\n                                \n                                \n                                \n                                <li>\n<time datetime="2015-04-08T00:00:00+00:00"><span class="say-no-more">2015-</span>04-08</time>\n <a href="/events/python-events/244/">PyCon US 2015</a></li>\n                                \n                                \n                                \n                                <li>\n<time datetime="2015-04-12T00:00:00+00:00"><span class="say-no-more">2015-</span>04-12</time>\n <a href="/events/python-events/276/">PyCon Sweden 2015</a></li>\n                                \n                                \n                            </ul>\n                        </div>\n\n                    </div>\n\n                </div>\n\n                <div class="row">\n\n                    <div class="medium-widget success-stories-widget">\n                        \n\n                        <div class="shrubbery">\n                            \n\n                            <h2 class="widget-title"><span aria-hidden="true" class="icon-success-stories"></span>Success Stories</h2>\n                            <p class="give-me-more"><a href="/success-stories/" title="More Success Stories">More</a></p>\n\n                            \n                            <div class="success-story-item" data-weight="0" id="success-story-2" style="display: none;">\n\n                            <blockquote>\n                                <a href="/success-stories/industrial-light-magic-runs-python/">ILM runs a batch processing environment capable of modeling, rendering and compositing tens of thousands of motion picture frames per day. Thousands of machines running Linux, IRIX, Compaq Tru64, OS X, Solaris, and Windows join together to provide a production pipeline used by ~800 users daily. Speed of development is key, and Python was a faster way to code (and re-code) the programs that control this production pipeline.</a>\n                            </blockquote>\n\n                            <table cellpadding="0" cellspacing="0" border="0" width="100%" class="quote-from">\n                                <tbody>\n                                    <tr>\n                                        \n                                        <td><p><a href="/success-stories/industrial-light-magic-runs-python/">Industrial Light &amp; Magic Runs on Python</a> <em>by Tim Fortenberry</em></p></td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                            </div>\n                            \n\n                        </div><!-- end .shrubbery -->\n\n                    </div>\n\n                    <div class="medium-widget applications-widget last">\n                        <div class="shrubbery">\n                            <h2 class="widget-title"><span aria-hidden="true" class="icon-python"></span>Use Python for&hellip;</h2>\r\n<p class="give-me-more"><a href="/about/apps" title="More Applications">More</a></p>\r\n\r\n<ul class="menu">\r\n    <li><b>Web Programming</b>:\r\n        <span class="tag-wrapper"><a class="tag" href="http://www.djangoproject.com/">Django</a>, <a class="tag" href="http://www.pylonsproject.org/">Pyramid</a>, <a class="tag" href="http://bottlepy.org">Bottle</a>, <a class="tag" href="http://tornadoweb.org">Tornado</a>, <a href="http://flask.pocoo.org/" class="tag">Flask</a>, <a class="tag" href="http://www.web2py.com/">web2py</a></span></li>\r\n    <li><b>GUI Development</b>:\r\n        <span class="tag-wrapper"><a class="tag" href="http://www.wxpython.org/">wxPython</a>, <a class="tag" href="http://wiki.python.org/moin/TkInter">tkInter</a>, <a class="tag" href="http://www.pygtk.org">PyGtk</a>, <a class="tag" href="http://www.riverbankcomputing.co.uk/software/pyqt/intro">PyQt</a></span></li>\r\n    <li><b>Scientific and Numeric</b>:\r\n        <span class="tag-wrapper">\r\n<a class="tag" href="http://www.scipy.org">SciPy</a>, <a class="tag" href="http://pandas.pydata.org/">Pandas</a>, <a href="http://ipython.org" class="tag">IPython</a></span></li>\r\n    <li><b>Software Development</b>:\r\n        <span class="tag-wrapper"><a class="tag" href="http://buildbot.net/">Buildbot</a>, <a class="tag" href="http://trac.edgewall.org/">Trac</a>, <a class="tag" href="http://roundup.sourceforge.net/">Roundup</a></span></li>\r\n    <li><b>System Administration</b>:\r\n        <span class="tag-wrapper"><a class="tag" href="http://www.ansible.com">Ansible</a>, <a class="tag" href="http://www.saltstack.com">Salt</a>, <a class="tag" href="https://www.openstack.org">OpenStack</a></span></li>\r\n</ul>\r\n\n                        </div><!-- end .shrubbery -->\n                    </div>\n\n                </div>\n\n                \n                <div class="pep-widget">\n\n                    <h2 class="widget-title">\n                        <span class="prompt">&gt;&gt;&gt;</span> <a href="/dev/peps/">Python Enhancement Proposals<span class="say-no-more"> (PEPs)</span></a>: The future of Python<span class="say-no-more"> is discussed here.</span>\n                        <a aria-hidden="true" class="rss-link" href="/dev/peps/peps.rss"><span class="icon-feed"></span> RSS</a>\n                    </h2>\n\n\n                    \n                    \n                </div>\n\n                                <div class="psf-widget">\n\n                    <div class="python-logo"></div>\n                    \n                    <h2 class="widget-title">\r\n    <span class="prompt">&gt;&gt;&gt;</span> <a href="/psf/">Python Software Foundation</a>\r\n</h2>\r\n<p>The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. <a class="readmore" href="/psf/">Learn more</a> </p>\r\n<p class="click-these">\r\n    <a class="button" href="/users/membership/">Become a Member</a>\r\n    <a class="button" href="/psf/donations/">Donate to the PSF</a>\r\n</p>\n                </div>\n\n\n\n\n                </section>\n\n                \n                \n\n                \n                \n\n\n            </div><!-- end .container -->\n        </div><!-- end #content .content-wrapper -->\n\n        <!-- Footer and social media list -->\n        <footer id="site-map" class="main-footer" role="contentinfo">\n            <div class="main-footer-links">\n                <div class="container">\n\n                    \n                    <a id="back-to-top-1" class="jump-link" href="#python-network"><span aria-hidden="true" class="icon-arrow-up"><span>&#9650;</span></span> Back to Top</a>\n\n                    \n\n<ul class="sitemap navigation menu do-not-print" role="tree">\n    \n    <li class="tier-1 element-1">\n        <a href="/about/" >About</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/about/apps/" title="">Applications</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/about/quotes/" title="">Quotes</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/about/gettingstarted/" title="">Getting Started</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/about/help/" title="">Help</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-2">\n        <a href="/downloads/" >Downloads</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/downloads/" title="">All releases</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/downloads/source/" title="">Source code</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/downloads/windows/" title="">Windows</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/downloads/mac-osx/" title="">Mac OS X</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/download/other/" title="">Other Platforms</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="https://docs.python.org/3/license.html" title="">License</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/download/alternatives" title="">Alternative Implementations</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-3">\n        <a href="/doc/" >Documentation</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/doc/" title="">Docs</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/doc/av" title="">Audio/Visual Talks</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="https://wiki.python.org/moin/BeginnersGuide" title="">Beginner&#39;s Guide</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="https://docs.python.org/devguide/" title="">Developer&#39;s Guide</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="https://docs.python.org/faq/" title="">FAQ</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="http://wiki.python.org/moin/Languages" title="">Non-English Docs</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="http://python.org/dev/peps/" title="">PEP Index</a></li>\n    \n        <li class="tier-2 element-8" role="treeitem"><a href="https://wiki.python.org/moin/PythonBooks" title="">Python Books</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-4">\n        <a href="/community/" >Community</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/community/diversity/" title="">Diversity</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/community/irc/" title="">IRC</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/community/lists/" title="">Mailing Lists</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/community/workshops/" title="">Python Conferences</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/community/sigs/" title="">Special Interest Groups</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="https://wiki.python.org/moin/" title="">Python Wiki</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/community/logos/" title="">Python Logo</a></li>\n    \n        <li class="tier-2 element-8" role="treeitem"><a href="/community/merchandise/" title="">Merchandise</a></li>\n    \n        <li class="tier-2 element-9" role="treeitem"><a href="/community/awards" title="">Community Awards</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-5">\n        <a href="/about/success/" title="success-stories">Success Stories</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/about/success/#arts" title="">Arts</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/about/success/#business" title="">Business</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/about/success/#education" title="">Education</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/about/success/#engineering" title="">Engineering</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="/about/success/#government" title="">Government</a></li>\n    \n        <li class="tier-2 element-6" role="treeitem"><a href="/about/success/#scientific" title="">Scientific</a></li>\n    \n        <li class="tier-2 element-7" role="treeitem"><a href="/about/success/#software-development" title="">Software Development</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-6">\n        <a href="/blogs/" title="News from around the Python world">News</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/blogs/" title="Python Insider Blog Posts">Python News</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="http://planetpython.org/" title="Planet Python">Community News</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="http://pyfound.blogspot.com/" title="PSF Blog">PSF News</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="http://pycon.blogspot.com/" title="PyCon Blog">PyCon News</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-7">\n        <a href="/events/python-events/" >Events</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="/events/python-events/" title="">Python Events</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="/events/python-user-group/" title="">User Group Events</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="/events/python-events/past/" title="">Python Events Archive</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="/events/python-user-group/past/" title="">User Group Events Archive</a></li>\n    \n        <li class="tier-2 element-5" role="treeitem"><a href="https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event" title="">Submit an Event</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n    <li class="tier-1 element-8">\n        <a href="/dev/" >Contributing</a>\n        \n            \n\n<ul class="subnav menu">\n    \n        <li class="tier-2 element-1" role="treeitem"><a href="http://docs.python.org/devguide/" title="">Developer&#39;s Guide</a></li>\n    \n        <li class="tier-2 element-2" role="treeitem"><a href="http://bugs.python.org/" title="">Issue Tracker</a></li>\n    \n        <li class="tier-2 element-3" role="treeitem"><a href="https://mail.python.org/mailman/listinfo/python-dev" title="">python-dev list</a></li>\n    \n        <li class="tier-2 element-4" role="treeitem"><a href="http://pythonmentors.com/" title="">Core Mentorship</a></li>\n    \n</ul>\n\n        \n    </li>\n    \n</ul>\n\n\n                    <a id="back-to-top-2" class="jump-link" href="#python-network"><span aria-hidden="true" class="icon-arrow-up"><span>&#9650;</span></span> Back to Top</a>\n                    \n\n                </div><!-- end .container -->\n            </div> <!-- end .main-footer-links -->\n\n            <div class="site-base">\n                <div class="container">\n                    \n                    <ul class="footer-links navigation menu do-not-print" role="tree">\n                        <li class="tier-1 element-1"><a href="/about/help/">Help &amp; <span class="say-no-more">General</span> Contact</a></li>\n                        <li class="tier-1 element-2"><a href="/community/diversity/">Diversity <span class="say-no-more">Initiatives</span></a></li>\n                        <li class="tier-1 element-3"><a href="https://github.com/python/pythondotorg/issues">Submit Website Bug</a></li>\n                        <!--<li class="tier-1 element-3"><a href="#"><span class="say-no-more">Website</span> Colophon</a></li>-->\n                    </ul>\n\n                    <div class="copyright">\n                        <p><small>\n                            <span class="pre">Copyright &copy;2001-2015.</span>\n                            &nbsp;<span class="pre"><a href="/psf-landing/">Python Software Foundation</a></span>\n                            &nbsp;<span class="pre"><a href="/about/legal/">Legal Statements</a></span>\n                            &nbsp;<span class="pre"><a href="/privacy/">Privacy Policy</a></span>\n                        </small></p>\n                    </div>\n\n                </div><!-- end .container -->\n            </div><!-- end .site-base -->\n\n        </footer>\n\n\n        <div id="nojs" class="do-not-print">\n            <p><strong>Notice:</strong> While Javascript is not essential for this website, your interaction with the content will be limited. Please turn Javascript on for the full experience. </p>\n        </div>\n\n        <!--[if lt IE 8]>\n        <div id="oldie-warning" class="do-not-print">\n            <p><strong>Notice:</strong> Your browser is <em>ancient</em> and <a href="http://www.ie6countdown.com/">Microsoft agrees</a>. <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience a better web.</p>\n        </div>\n        <![endif]-->\n\n    </div><!-- end #touchnav-wrapper -->\n\n    \n    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>\n    <script>window.jQuery || document.write(\'<script src="/static/js/libs/jquery-1.8.2.min.js"><\\/script>\')</script>\n\n    <script type="text/javascript" src="/static/js/main-min.js" charset="utf-8"></script>\n    \n\n    <!--[if lte IE 7]>\n    <script type="text/javascript" src="/static/js/plugins/IE8-min.js" charset="utf-8"></script>\n    \n    \n    <![endif]-->\n\n    <!--[if lte IE 8]>\n    <script type="text/javascript" src="/static/js/plugins/getComputedStyle-min.js" charset="utf-8"></script>\n    \n    \n    <![endif]-->\n\n    \n\n    \n    \n\n</body>\n</html>\n'
In [26]:
urls = re.findall(r'<a href="(.+?)"', r.text)
urls
Out[26]:
['#content',
 '/',
 '/psf-landing/',
 'https://docs.python.org',
 'https://pypi.python.org/',
 '/community/jobs/',
 '/community/',
 '/',
 '#',
 '#',
 'http://plus.google.com/+Python',
 'http://www.facebook.com/pythonlang?fref=ts',
 'http://twitter.com/ThePSF',
 '/community/irc/',
 '/accounts/login/',
 '/accounts/signup/',
 '/accounts/login/',
 '/about/',
 '/about/apps/',
 '/about/quotes/',
 '/about/gettingstarted/',
 '/about/help/',
 '/downloads/',
 '/downloads/',
 '/downloads/source/',
 '/downloads/windows/',
 '/downloads/mac-osx/',
 '/download/other/',
 'https://docs.python.org/3/license.html',
 '/download/alternatives',
 '/doc/',
 '/doc/',
 '/doc/av',
 'https://wiki.python.org/moin/BeginnersGuide',
 'https://docs.python.org/devguide/',
 'https://docs.python.org/faq/',
 'http://wiki.python.org/moin/Languages',
 'http://python.org/dev/peps/',
 'https://wiki.python.org/moin/PythonBooks',
 '/community/',
 '/community/diversity/',
 '/community/irc/',
 '/community/lists/',
 '/community/workshops/',
 '/community/sigs/',
 'https://wiki.python.org/moin/',
 '/community/logos/',
 '/community/merchandise/',
 '/community/awards',
 '/about/success/',
 '/about/success/#arts',
 '/about/success/#business',
 '/about/success/#education',
 '/about/success/#engineering',
 '/about/success/#government',
 '/about/success/#scientific',
 '/about/success/#software-development',
 '/blogs/',
 '/blogs/',
 'http://planetpython.org/',
 'http://pyfound.blogspot.com/',
 'http://pycon.blogspot.com/',
 '/events/python-events/',
 '/events/python-events/',
 '/events/python-user-group/',
 '/events/python-events/past/',
 '/events/python-user-group/past/',
 'https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event',
 '//docs.python.org/3/tutorial/controlflow.html#defining-functions',
 '//docs.python.org/3/tutorial/introduction.html#lists',
 'http://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator',
 '//docs.python.org/3/tutorial/',
 '//docs.python.org/3/tutorial/controlflow.html',
 '/about/gettingstarted/',
 'https://wiki.python.org/moin/Python2orPython3',
 '/downloads/release/python-343/',
 '/downloads/release/python-279/',
 'https://docs.python.org',
 '//jobs.python.org',
 'http://blog.python.org',
 'http://feedproxy.google.com/~r/PythonInsider/~3/AJ6AMDcjGaE/python-3.html',
 'http://feedproxy.google.com/~r/PythonInsider/~3/eb3JkcqpXBQ/ironpython-275-released.html',
 'http://feedproxy.google.com/~r/PythonInsider/~3/WgVFScO85Is/python-279-released.html',
 'http://feedproxy.google.com/~r/PythonInsider/~3/791RxJ5ghSk/release-candidate-for-python-279.html',
 'http://feedproxy.google.com/~r/PythonInsider/~3/pyi0_KezFgY/python-341-released.html',
 '/events/calendars/',
 '/events/python-events/285/',
 '/events/python-events/246/',
 '/events/python-events/274/',
 '/events/python-events/244/',
 '/events/python-events/276/',
 '/success-stories/',
 '/success-stories/industrial-light-magic-runs-python/',
 '/success-stories/industrial-light-magic-runs-python/',
 '/about/apps',
 'http://flask.pocoo.org/',
 'http://ipython.org',
 '/dev/peps/',
 '/psf/',
 '/about/',
 '/about/apps/',
 '/about/quotes/',
 '/about/gettingstarted/',
 '/about/help/',
 '/downloads/',
 '/downloads/',
 '/downloads/source/',
 '/downloads/windows/',
 '/downloads/mac-osx/',
 '/download/other/',
 'https://docs.python.org/3/license.html',
 '/download/alternatives',
 '/doc/',
 '/doc/',
 '/doc/av',
 'https://wiki.python.org/moin/BeginnersGuide',
 'https://docs.python.org/devguide/',
 'https://docs.python.org/faq/',
 'http://wiki.python.org/moin/Languages',
 'http://python.org/dev/peps/',
 'https://wiki.python.org/moin/PythonBooks',
 '/community/',
 '/community/diversity/',
 '/community/irc/',
 '/community/lists/',
 '/community/workshops/',
 '/community/sigs/',
 'https://wiki.python.org/moin/',
 '/community/logos/',
 '/community/merchandise/',
 '/community/awards',
 '/about/success/',
 '/about/success/#arts',
 '/about/success/#business',
 '/about/success/#education',
 '/about/success/#engineering',
 '/about/success/#government',
 '/about/success/#scientific',
 '/about/success/#software-development',
 '/blogs/',
 '/blogs/',
 'http://planetpython.org/',
 'http://pyfound.blogspot.com/',
 'http://pycon.blogspot.com/',
 '/events/python-events/',
 '/events/python-events/',
 '/events/python-user-group/',
 '/events/python-events/past/',
 '/events/python-user-group/past/',
 'https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event',
 '/dev/',
 'http://docs.python.org/devguide/',
 'http://bugs.python.org/',
 'https://mail.python.org/mailman/listinfo/python-dev',
 'http://pythonmentors.com/',
 '/about/help/',
 '/community/diversity/',
 'https://github.com/python/pythondotorg/issues',
 '#',
 '/psf-landing/',
 '/about/legal/',
 '/privacy/',
 'http://www.ie6countdown.com/',
 'http://browsehappy.com/',
 'http://www.google.com/chromeframe/?redirect=true']
In [27]:
for url in urls:
    print(re.sub(r"^([#/])", r'http://python.org/\1', url))
http://python.org/#content
http://python.org//
http://python.org//psf-landing/
https://docs.python.org
https://pypi.python.org/
http://python.org//community/jobs/
http://python.org//community/
http://python.org//
http://python.org/#
http://python.org/#
http://plus.google.com/+Python
http://www.facebook.com/pythonlang?fref=ts
http://twitter.com/ThePSF
http://python.org//community/irc/
http://python.org//accounts/login/
http://python.org//accounts/signup/
http://python.org//accounts/login/
http://python.org//about/
http://python.org//about/apps/
http://python.org//about/quotes/
http://python.org//about/gettingstarted/
http://python.org//about/help/
http://python.org//downloads/
http://python.org//downloads/
http://python.org//downloads/source/
http://python.org//downloads/windows/
http://python.org//downloads/mac-osx/
http://python.org//download/other/
https://docs.python.org/3/license.html
http://python.org//download/alternatives
http://python.org//doc/
http://python.org//doc/
http://python.org//doc/av
https://wiki.python.org/moin/BeginnersGuide
https://docs.python.org/devguide/
https://docs.python.org/faq/
http://wiki.python.org/moin/Languages
http://python.org/dev/peps/
https://wiki.python.org/moin/PythonBooks
http://python.org//community/
http://python.org//community/diversity/
http://python.org//community/irc/
http://python.org//community/lists/
http://python.org//community/workshops/
http://python.org//community/sigs/
https://wiki.python.org/moin/
http://python.org//community/logos/
http://python.org//community/merchandise/
http://python.org//community/awards
http://python.org//about/success/
http://python.org//about/success/#arts
http://python.org//about/success/#business
http://python.org//about/success/#education
http://python.org//about/success/#engineering
http://python.org//about/success/#government
http://python.org//about/success/#scientific
http://python.org//about/success/#software-development
http://python.org//blogs/
http://python.org//blogs/
http://planetpython.org/
http://pyfound.blogspot.com/
http://pycon.blogspot.com/
http://python.org//events/python-events/
http://python.org//events/python-events/
http://python.org//events/python-user-group/
http://python.org//events/python-events/past/
http://python.org//events/python-user-group/past/
https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event
http://python.org///docs.python.org/3/tutorial/controlflow.html#defining-functions
http://python.org///docs.python.org/3/tutorial/introduction.html#lists
http://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator
http://python.org///docs.python.org/3/tutorial/
http://python.org///docs.python.org/3/tutorial/controlflow.html
http://python.org//about/gettingstarted/
https://wiki.python.org/moin/Python2orPython3
http://python.org//downloads/release/python-343/
http://python.org//downloads/release/python-279/
https://docs.python.org
http://python.org///jobs.python.org
http://blog.python.org
http://feedproxy.google.com/~r/PythonInsider/~3/AJ6AMDcjGaE/python-3.html
http://feedproxy.google.com/~r/PythonInsider/~3/eb3JkcqpXBQ/ironpython-275-released.html
http://feedproxy.google.com/~r/PythonInsider/~3/WgVFScO85Is/python-279-released.html
http://feedproxy.google.com/~r/PythonInsider/~3/791RxJ5ghSk/release-candidate-for-python-279.html
http://feedproxy.google.com/~r/PythonInsider/~3/pyi0_KezFgY/python-341-released.html
http://python.org//events/calendars/
http://python.org//events/python-events/285/
http://python.org//events/python-events/246/
http://python.org//events/python-events/274/
http://python.org//events/python-events/244/
http://python.org//events/python-events/276/
http://python.org//success-stories/
http://python.org//success-stories/industrial-light-magic-runs-python/
http://python.org//success-stories/industrial-light-magic-runs-python/
http://python.org//about/apps
http://flask.pocoo.org/
http://ipython.org
http://python.org//dev/peps/
http://python.org//psf/
http://python.org//about/
http://python.org//about/apps/
http://python.org//about/quotes/
http://python.org//about/gettingstarted/
http://python.org//about/help/
http://python.org//downloads/
http://python.org//downloads/
http://python.org//downloads/source/
http://python.org//downloads/windows/
http://python.org//downloads/mac-osx/
http://python.org//download/other/
https://docs.python.org/3/license.html
http://python.org//download/alternatives
http://python.org//doc/
http://python.org//doc/
http://python.org//doc/av
https://wiki.python.org/moin/BeginnersGuide
https://docs.python.org/devguide/
https://docs.python.org/faq/
http://wiki.python.org/moin/Languages
http://python.org/dev/peps/
https://wiki.python.org/moin/PythonBooks
http://python.org//community/
http://python.org//community/diversity/
http://python.org//community/irc/
http://python.org//community/lists/
http://python.org//community/workshops/
http://python.org//community/sigs/
https://wiki.python.org/moin/
http://python.org//community/logos/
http://python.org//community/merchandise/
http://python.org//community/awards
http://python.org//about/success/
http://python.org//about/success/#arts
http://python.org//about/success/#business
http://python.org//about/success/#education
http://python.org//about/success/#engineering
http://python.org//about/success/#government
http://python.org//about/success/#scientific
http://python.org//about/success/#software-development
http://python.org//blogs/
http://python.org//blogs/
http://planetpython.org/
http://pyfound.blogspot.com/
http://pycon.blogspot.com/
http://python.org//events/python-events/
http://python.org//events/python-events/
http://python.org//events/python-user-group/
http://python.org//events/python-events/past/
http://python.org//events/python-user-group/past/
https://wiki.python.org/moin/PythonEventsCalendar#Submitting_an_Event
http://python.org//dev/
http://docs.python.org/devguide/
http://bugs.python.org/
https://mail.python.org/mailman/listinfo/python-dev
http://pythonmentors.com/
http://python.org//about/help/
http://python.org//community/diversity/
https://github.com/python/pythondotorg/issues
http://python.org/#
http://python.org//psf-landing/
http://python.org//about/legal/
http://python.org//privacy/
http://www.ie6countdown.com/
http://browsehappy.com/
http://www.google.com/chromeframe/?redirect=true