Facebook
From Abrupt Crow, 1 Year ago, written in HTML5.
This paste is a reply to Re: python from Soiled Guinea Pig - view diff
Embed
Download Paste or View Raw
Hits: 137
  1. <!DOCTYPE html><html><head><meta charset="utf-8"><title>EZ Python</title><style>@charset "UTF-8";@import 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-alpha2/katex.min.css';code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;margin:0 0 10px;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.4285714;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered,.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}fieldset{border:0;min-width:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}output,.form-control{display:block;font-size:14px;line-height:1.4285714;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px;line-height:1.4285714 \0}input[type="date"].input-sm,.form-horizontal .form-group-sm input.form-control[type="date"],.input-group-sm>input.form-control[type="date"],.input-group-sm>input.input-group-addon[type="date"],.input-group-sm>.input-group-btn>input.btn[type="date"],input[type="time"].input-sm,.form-horizontal .form-group-sm input.form-control[type="time"],.input-group-sm>input.form-control[type="time"],.input-group-sm>input.input-group-addon[type="time"],.input-group-sm>.input-group-btn>input.btn[type="time"],input[type="datetime-local"].input-sm,.form-horizontal .form-group-sm input.form-control[type="datetime-local"],.input-group-sm>input.form-control[type="datetime-local"],.input-group-sm>input.input-group-addon[type="datetime-local"],.input-group-sm>.input-group-btn>input.btn[type="datetime-local"],input[type="month"].input-sm,.form-horizontal .form-group-sm input.form-control[type="month"],.input-group-sm>input.form-control[type="month"],.input-group-sm>input.input-group-addon[type="month"],.input-group-sm>.input-group-btn>input.btn[type="month"]{line-height:30px}input[type="date"].input-lg,.form-horizontal .form-group-lg input.form-control[type="date"],.input-group-lg>input.form-control[type="date"],.input-group-lg>input.input-group-addon[type="date"],.input-group-lg>.input-group-btn>input.btn[type="date"],input[type="time"].input-lg,.form-horizontal .form-group-lg input.form-control[type="time"],.input-group-lg>input.form-control[type="time"],.input-group-lg>input.input-group-addon[type="time"],.input-group-lg>.input-group-btn>input.btn[type="time"],input[type="datetime-local"].input-lg,.form-horizontal .form-group-lg input.form-control[type="datetime-local"],.input-group-lg>input.form-control[type="datetime-local"],.input-group-lg>input.input-group-addon[type="datetime-local"],.input-group-lg>.input-group-btn>input.btn[type="datetime-local"],input[type="month"].input-lg,.form-horizontal .form-group-lg input.form-control[type="month"],.input-group-lg>input.form-control[type="month"],.input-group-lg>input.input-group-addon[type="month"],.input-group-lg>.input-group-btn>input.btn[type="month"]{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"],.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline,.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-horizontal .form-group-lg .form-control-static.form-control,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.form-horizontal .form-group-sm .form-control-static.form-control,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control,.input-group-sm>.form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.input-group-sm>.input-group-addon{height:30px;line-height:1.5}.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.form-horizontal .form-group-sm select.form-control,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:30px;line-height:30px}textarea.input-sm,.form-horizontal .form-group-sm textarea.form-control,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.form-horizontal .form-group-sm select.form-control[multiple],.input-group-sm>select.form-control[multiple],.input-group-sm>select.input-group-addon[multiple],.input-group-sm>.input-group-btn>select.btn[multiple]{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control,.input-group-lg>.form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.input-group-lg>.input-group-addon{height:46px;line-height:1.33}.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.form-horizontal .form-group-lg select.form-control,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:46px;line-height:46px}textarea.input-lg,.form-horizontal .form-group-lg textarea.form-control,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.form-horizontal .form-group-lg select.form-control[multiple],.input-group-lg>select.form-control[multiple],.input-group-lg>select.input-group-addon[multiple],.input-group-lg>.input-group-btn>select.btn[multiple]{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback,.form-horizontal .form-group-lg .form-control+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.form-horizontal .form-group-sm .form-control+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.form-horizontal .form-group-sm .input-group-addon.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.form-horizontal .form-group-lg .input-group-addon.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.4285714;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open,.modal{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transform:translate3d(0,-25%,0);transition:transform .3s ease-out}.modal.in .modal-dialog{transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4285714px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4285714}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;transform:translate3d(0,0,0)}.hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496;-webkit-text-size-adjust:none}.hljs-comment,.hljs-template_comment,.diff .hljs-header,.hljs-doctype,.hljs-pi,.lisp .hljs-string,.hljs-javadoc{color:#586e75}.hljs-keyword,.hljs-winutils,.method,.hljs-addition,.css .hljs-tag,.hljs-request,.hljs-status,.nginx .hljs-title{color:#859900}.hljs-number,.hljs-command,.hljs-string,.hljs-tag .hljs-value,.hljs-rules .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula,.hljs-regexp,.hljs-hexcolor,.hljs-link_url{color:#2aa198}.hljs-title,.hljs-localvars,.hljs-chunk,.hljs-decorator,.hljs-built_in,.hljs-identifier,.vhdl .hljs-literal,.hljs-id,.css .hljs-function{color:#268bd2}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.smalltalk .hljs-number,.hljs-constant,.hljs-class .hljs-title,.hljs-parent,.hljs-type,.hljs-link_reference{color:#b58900}.hljs-preprocessor,.hljs-preprocessor .hljs-keyword,.hljs-pragma,.hljs-shebang,.hljs-symbol,.hljs-symbol .hljs-string,.diff .hljs-change,.hljs-special,.hljs-attr_selector,.hljs-subst,.hljs-cdata,.css .hljs-pseudo,.hljs-header{color:#cb4b16}.hljs-deletion,.hljs-important{color:#dc322f}.hljs-link_label{color:#6c71c4}.tex .hljs-formula{background:#073642}*,*:before,*:after{box-sizing:border-box}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}images{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd{font-size:1em}code,kbd,pre,samp{font-family:monospace,monospace}samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;margin-right:5px}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}.debug{background-color:#ffc0cb!important}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ir{background-color:transparent;border:0;overflow:hidden}.ir::before{content:'';display:block;height:150%;width:0}html{font-size:.875em;background:#fff;color:#373D49}html,body{font-family:Georgia,Cambria,serif;height:100%}body{font-size:1rem;font-weight:400;line-height:2rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}li{font-feature-settings:'kern' 1,'onum' 1,'liga' 1;margin-left:1rem}li>ul,li>ol{margin-bottom:0}p{padding-top:.66001rem;font-feature-settings:'kern' 1,'onum' 1,'liga' 1;margin-top:0}p,pre{margin-bottom:1.33999rem}pre{font-size:1rem;padding:.66001rem 9.5px 9.5px;line-height:2rem;background:linear-gradient(to bottom,#fff 0,#fff .75rem,#f5f7fa .75rem,#f5f7fa 2.75rem,#fff 2.75rem,#fff 4rem);background-size:100% 4rem;border-color:#D3DAEA}blockquote{margin:0}blockquote p{font-size:1rem;margin-bottom:.33999rem;font-style:italic;padding:.66001rem 1rem 1rem;border-left:3px solid #A0AABF}th,td{padding:12px}h1,h2,h3,h4,h5,h6{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;font-style:normal;font-weight:600;margin-top:0}h1{line-height:3rem;font-size:2.0571429rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.953125rem;margin-bottom:.1835837rem;padding-top:.8164163rem}h2,h3{line-height:3rem}h3{font-size:1.6457143rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.546865rem;padding-top:.453135rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}a{cursor:pointer;color:#35D7BB;text-decoration:none}a:hover,a:focus{border-bottom-color:#35D7BB;color:#dff9f4}img{height:auto;max-width:100%}dt{font-style:italic;font-weight:600}.g{display:block}.g:after{clear:both;content:'';display:table}.g-b{float:left;margin:0;width:100%}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--center{display:block;float:none;margin:0 auto}.g-b--right{float:right}.g-b--1of1{width:100%}.g-b--1of2,.g-b--2of4,.g-b--3of6,.g-b--4of8,.g-b--5of10,.g-b--6of12{width:50%}.g-b--1of3,.g-b--2of6,.g-b--4of12{width:33.333%}.g-b--2of3,.g-b--4of6,.g-b--8of12{width:66.666%}.g-b--1of4,.g-b--2of8,.g-b--3of12{width:25%}.g-b--3of4,.g-b--6of8,.g-b--9of12{width:75%}.g-b--1of5,.g-b--2of10{width:20%}.g-b--2of5,.g-b--4of10{width:40%}.g-b--3of5,.g-b--6of10{width:60%}.g-b--4of5,.g-b--8of10{width:80%}.g-b--1of6,.g-b--2of12{width:16.666%}.g-b--5of6,.g-b--10of12{width:83.333%}.g-b--1of8{width:12.5%}.g-b--3of8{width:37.5%}.g-b--5of8{width:62.5%}.g-b--7of8{width:87.5%}.g-b--1of10{width:10%}.g-b--3of10{width:30%}.g-b--7of10{width:70%}.g-b--9of10{width:90%}.g-b--1of12{width:8.333%}.g-b--5of12{width:41.666%}.g-b--7of12{width:58.333%}.g-b--11of12{width:91.666%}.g-b--push--1of1{margin-left:100%}.g-b--push--1of2,.g-b--push--2of4,.g-b--push--3of6,.g-b--push--4of8,.g-b--push--5of10,.g-b--push--6of12{margin-left:50%}.g-b--push--1of3,.g-b--push--2of6,.g-b--push--4of12{margin-left:33.333%}.g-b--push--2of3,.g-b--push--4of6,.g-b--push--8of12{margin-left:66.666%}.g-b--push--1of4,.g-b--push--2of8,.g-b--push--3of12{margin-left:25%}.g-b--push--3of4,.g-b--push--6of8,.g-b--push--9of12{margin-left:75%}.g-b--push--1of5,.g-b--push--2of10{margin-left:20%}.g-b--push--2of5,.g-b--push--4of10{margin-left:40%}.g-b--push--3of5,.g-b--push--6of10{margin-left:60%}.g-b--push--4of5,.g-b--push--8of10{margin-left:80%}.g-b--push--1of6,.g-b--push--2of12{margin-left:16.666%}.g-b--push--5of6,.g-b--push--10of12{margin-left:83.333%}.g-b--push--1of8{margin-left:12.5%}.g-b--push--3of8{margin-left:37.5%}.g-b--push--5of8{margin-left:62.5%}.g-b--push--7of8{margin-left:87.5%}.g-b--push--1of10{margin-left:10%}.g-b--push--3of10{margin-left:30%}.g-b--push--7of10{margin-left:70%}.g-b--push--9of10{margin-left:90%}.g-b--push--1of12{margin-left:8.333%}.g-b--push--5of12{margin-left:41.666%}.g-b--push--7of12{margin-left:58.333%}.g-b--push--11of12{margin-left:91.666%}.g-b--pull--1of1{margin-right:100%}.g-b--pull--1of2,.g-b--pull--2of4,.g-b--pull--3of6,.g-b--pull--4of8,.g-b--pull--5of10,.g-b--pull--6of12{margin-right:50%}.g-b--pull--1of3,.g-b--pull--2of6,.g-b--pull--4of12{margin-right:33.333%}.g-b--pull--2of3,.g-b--pull--4of6,.g-b--pull--8of12{margin-right:66.666%}.g-b--pull--1of4,.g-b--pull--2of8,.g-b--pull--3of12{margin-right:25%}.g-b--pull--3of4,.g-b--pull--6of8,.g-b--pull--9of12{margin-right:75%}.g-b--pull--1of5,.g-b--pull--2of10{margin-right:20%}.g-b--pull--2of5,.g-b--pull--4of10{margin-right:40%}.g-b--pull--3of5,.g-b--pull--6of10{margin-right:60%}.g-b--pull--4of5,.g-b--pull--8of10{margin-right:80%}.g-b--pull--1of6,.g-b--pull--2of12{margin-right:16.666%}.g-b--pull--5of6,.g-b--pull--10of12{margin-right:83.333%}.g-b--pull--1of8{margin-right:12.5%}.g-b--pull--3of8{margin-right:37.5%}.g-b--pull--5of8{margin-right:62.5%}.g-b--pull--7of8{margin-right:87.5%}.g-b--pull--1of10{margin-right:10%}.g-b--pull--3of10{margin-right:30%}.g-b--pull--7of10{margin-right:70%}.g-b--pull--9of10{margin-right:90%}.g-b--pull--1of12{margin-right:8.333%}.g-b--pull--5of12{margin-right:41.666%}.g-b--pull--7of12{margin-right:58.333%}.g-b--pull--11of12{margin-right:91.666%}.splashscreen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#373D49;z-index:22}.splashscreen-dillinger{width:260px;height:auto;display:block;margin:0 auto;padding-bottom:3rem}.splashscreen p{font-size:1.25rem;padding-top:.56251rem;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;text-align:center;max-width:500px;margin:0 auto;color:#FFF}.sp-center{position:relative;transform:translateY(-50%);top:50%}.open-menu>.wrapper{overflow-x:hidden}.page{margin:0 auto;position:relative;top:0;left:0;width:100%;height:100%;z-index:2;transition:all .25s ease-in-out;background-color:#fff;padding-top:51px;will-change:left}.open-menu .page{left:270px}.title{line-height:1rem;font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem;font-weight:500;color:#A0AABF;letter-spacing:1px;text-transform:uppercase;padding-left:16px;padding-right:16px;margin-top:1rem}.split-preview .title{padding-left:0}.title-document{line-height:1rem;font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem;font-weight:400;font-family:"Ubuntu Mono",Monaco;color:#373D49;padding-left:16px;padding-right:16px;width:80%;min-width:300px;outline:0;border:none}.icon{display:block;margin:0 auto;width:36px;height:36px;border-radius:3px;text-align:center}.icon svg{display:inline-block;margin-left:auto;margin-right:auto}.icon-preview{background-color:#373D49;line-height:40px}.icon-preview svg{width:19px;height:12px}.icon-settings{background-color:#373D49;line-height:44px}.icon-settings svg{width:18px;height:18px}.icon-link{width:16px;height:16px;line-height:1;margin-right:24px;text-align:right}.navbar{background-color:#373D49;height:51px;width:100%;position:fixed;top:0;left:0;z-index:6;transition:all .25s ease-in-out;will-change:left}.navbar:after{content:"";display:table;clear:both}.open-menu .navbar{left:270px}.navbar-brand{float:left;margin:0 0 0 24px;padding:0;line-height:42px}.navbar-brand svg{width:85px;height:11px}.nav-left{float:left}.nav-right{float:right}.nav-sidebar{width:100%}.menu{list-style:none;margin:0;padding:0}.menu a{border:0;color:#A0AABF;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;outline:none;text-transform:uppercase}.menu a:hover{color:#35D7BB}.menu .menu-item{border:0;display:none;float:left;margin:0;position:relative}.menu .menu-item>a{display:block;font-size:12px;height:51px;letter-spacing:1px;line-height:51px;padding:0 24px}.menu .menu-item--settings,.menu .menu-item--preview,.menu .menu-item--save-to.in-sidebar,.menu .menu-item--import-from.in-sidebar,.menu .menu-item--link-unlink.in-sidebar,.menu .menu-item--documents.in-sidebar{display:block}.menu .menu-item--documents{padding-bottom:1rem}.menu .menu-item.open>a{background-color:#1D212A}.menu .menu-item-icon>a{height:auto;padding:0}.menu .menu-item-icon:hover>a{background-color:transparent}.menu .menu-link.open i{background-color:#1D212A}.menu .menu-link.open g{fill:#35D7BB}.menu .menu-link-preview,.menu .menu-link-settings{margin-top:8px;width:51px}.menu-sidebar{width:100%}.menu-sidebar .menu-item{float:none;margin-bottom:1px;width:100%}.menu-sidebar .menu-item.open>a{background-color:#373D49}.menu-sidebar .open .caret{transform:rotate(180deg)}.menu-sidebar>.menu-item:hover .dropdown a,.menu-sidebar>.menu-item:hover .settings a{background-color:transparent}.menu-sidebar .menu-link{background-color:#373D49;font-weight:600}.menu-sidebar .menu-link:after{content:"";display:table;clear:both}.menu-sidebar .menu-link>span{float:left}.menu-sidebar .menu-link>.caret{float:right;text-align:right;top:22px}.menu-sidebar .dropdown,.menu-sidebar .settings{background-color:transparent;position:static;width:100%}.dropdown{position:absolute;right:0;top:51px;width:188px}.dropdown,.settings{display:none;background-color:#1D212A}.dropdown{padding:0}.dropdown,.settings,.sidebar-list{list-style:none;margin:0}.sidebar-list{padding:0}.dropdown li{margin:32px 0;padding:0 0 0 32px}.dropdown li,.settings li{line-height:1}.sidebar-list li{line-height:1;margin:32px 0;padding:0 0 0 32px}.dropdown a{color:#D0D6E2}.dropdown a,.settings a,.sidebar-list a{display:block;text-transform:none}.sidebar-list a{color:#D0D6E2}.dropdown a:after,.settings a:after,.sidebar-list a:after{content:"";display:table;clear:both}.dropdown .icon,.settings .icon,.sidebar-list .icon{float:right}.open .dropdown,.open .settings,.open .sidebar-list{display:block}.open .dropdown.collapse,.open .collapse.settings,.open .sidebar-list.collapse{display:none}.open .dropdown.collapse.in,.open .collapse.in.settings,.open .sidebar-list.collapse.in{display:block}.dropdown .unlinked .icon,.settings .unlinked .icon,.sidebar-list .unlinked .icon{opacity:.3}.dropdown.documents li,.documents.settings li,.sidebar-list.documents li{background-image:url("../img/icons/file.svg");background-position:240px center;background-repeat:no-repeat;background-size:14px 16px;padding:3px 32px}.dropdown.documents li.octocat,.documents.settings li.octocat,.sidebar-list.documents li.octocat{background-image:url("../img/icons/octocat.svg");background-position:234px center;background-size:24px 24px}.dropdown.documents li:last-child,.documents.settings li:last-child,.sidebar-list.documents li:last-child{margin-bottom:1rem}.dropdown.documents li.active a,.documents.settings li.active a,.sidebar-list.documents li.active a{color:#35D7BB}.settings{position:fixed;top:67px;right:16px;border-radius:3px;width:288px;background-color:#373D49;padding:16px;z-index:7}.show-settings .settings{display:block}.settings .has-checkbox{float:left}.settings form{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between}.settings input{width:20%}.settings a{font-size:1.25rem;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;line-height:28px;color:#D0D6E2}.settings a:after{content:"";display:table;clear:both}.settings a:hover{color:#35D7BB}.settings li{border-bottom:1px solid #4F535B;margin:0;padding:16px 0}.settings li:last-child{border-bottom:none}.brand{border:none;display:block}.brand:hover g{fill:#35D7BB}.toggle{display:block;float:left;height:16px;padding:25px 16px 26px;width:40px}.toggle span:after,.toggle span:before{content:'';left:0;position:absolute;top:-6px}.toggle span:after{top:6px}.toggle span{display:block;position:relative}.toggle span,.toggle span:after,.toggle span:before{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:#D3DAEA;height:2px;transition:all .3s;width:20px}.open-menu .toggle span{background-color:transparent}.open-menu .toggle span:before{transform:rotate(45deg) translate(3px,3px)}.open-menu .toggle span:after{transform:rotate(-45deg) translate(5px,-6px)}.caret{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;position:relative;top:-1px;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.sidebar{overflow:auto;height:100%;padding-right:15px;padding-bottom:15px;width:285px}.sidebar-wrapper{-webkit-overflow-scrolling:touch;background-color:#2B2F36;left:0;height:100%;overflow-y:hidden;position:fixed;top:0;width:285px;z-index:1}.sidebar-branding{width:160px;padding:0;margin:16px auto}.header{border-bottom:1px solid #E8E8E8;position:relative}.words,.characters{line-height:1rem;font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem;font-weight:500;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;color:#A0AABF;letter-spacing:1px;text-transform:uppercase;z-index:5;position:absolute;right:16px;top:0}.words span,.characters span{color:#000}.words+.characters{top:22px}.btn{text-align:center;display:inline-block;width:100%;text-transform:uppercase;font-weight:600;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:0 1px 0 #1b8b77;padding:16px 24px;background-color:#35D7BB;border-radius:3px;margin:0 auto 16px;line-height:1;color:#fff;transition:all .15s linear;-webkit-font-smoothing:antialiased}.btn--new,.btn--save{display:block;width:238px}.btn--new:hover,.btn--new:focus,.btn--save:hover,.btn--save:focus{color:#fff;border-bottom-color:transparent;box-shadow:0 1px 3px #24b59c;text-shadow:0 1px 0 #24b59c}.btn--save{background-color:#4A5261;text-shadow:0 1px 1px #1e2127}.btn--save:hover,.btn--save:focus{color:#fff;border-bottom-color:transparent;box-shadow:0 1px 5px #08090a;text-shadow:none}.btn--delete{display:block;width:238px;background-color:transparent;font-size:12px;text-shadow:none}.btn--delete:hover,.btn--delete:focus{color:#fff;border-bottom-color:transparent;text-shadow:0 1px 0 #08090a;opacity:.8}.btn--delete-modal,.btn--ok,.btn--close{border-top:0;background-color:#4A5261;text-shadow:0 1px 0 #08090a;margin:0}.btn--delete-modal:hover,.btn--delete-modal:focus,.btn--ok:hover,.btn--ok:focus,.btn--close:hover,.btn--close:focus{color:#fff;background-color:#292d36;text-shadow:none}.btn--delete-modal{display:inline;width:auto}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(55,61,73,.8);transition:all .25s ease-in-out;transition-timing-function:ease-out;will-change:left,opacity,visibility;z-index:5;opacity:0;visibility:hidden}.show-settings .overlay{visibility:visible;opacity:1}.switch{float:right;line-height:1}.switch input{display:none}.switch small{display:inline-block;cursor:pointer;padding:0 24px 0 0;transition:all ease .2s;background-color:#2B2F36;border-color:#2B2F36}.switch small,.switch small:before{border-radius:30px;box-shadow:inset 0 0 2px 0 #14171F}.switch small:before{display:block;content:'';width:28px;height:28px;background:#fff}.switch.checked small{padding-right:0;padding-left:24px;background-color:#35D7BB;box-shadow:none}.modal--dillinger.about .modal-dialog{font-size:1.25rem;max-width:500px}.modal--dillinger.scope .modal-dialog{max-width:300px;margin:5rem auto}.modal--dillinger .modal-dialog{max-width:600px;width:auto;margin:5rem auto}.modal--dillinger .modal-content{background:#373D49;border-radius:3px;box-shadow:0 2px 5px 0 #2C3B59;color:#fff;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;padding:2rem}.modal--dillinger ul{list-style-type:disc;margin:1rem 0;padding:0 0 0 1rem}.modal--dillinger li{padding:0;margin:0}.modal--dillinger .modal-header{border:0;padding:0}.modal--dillinger .modal-body{padding:0}.modal--dillinger .modal-footer{border:0;padding:0}.modal--dillinger .close{color:#fff;opacity:1}.modal-backdrop{background-color:#373D49}.pagination--dillinger{padding:0!important;margin:1.5rem 0!important;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:stretch;align-content:stretch}.pagination--dillinger li{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;text-align:center}.pagination--dillinger li:first-child>a,.pagination--dillinger li.disabled>a,.pagination--dillinger li.disabled>a:hover,.pagination--dillinger li.disabled>a:focus,.pagination--dillinger li>a{background-color:transparent;border-color:#4F535B;border-right-color:transparent}.pagination--dillinger li.active>a,.pagination--dillinger li.active>a:hover,.pagination--dillinger li.active>a:focus{border-color:#4A5261;background-color:#4A5261;color:#fff}.pagination--dillinger li>a{float:none;color:#fff;width:100%;display:block;text-align:center;margin:0;border-right-color:transparent;padding:6px}.pagination--dillinger li>a:hover,.pagination--dillinger li>a:focus{border-color:#35D7BB;background-color:#35D7BB;color:#fff}.pagination--dillinger li:last-child a{border-color:#4F535B}.pagination--dillinger li:first-child a{border-right-color:transparent}.diNotify{position:absolute;z-index:9999;left:0;right:0;top:0;margin:0 auto;max-width:400px;text-align:center;transition:top .5s ease-in-out,opacity .5s ease-in-out;visibility:hidden}.diNotify-body{-webkit-font-smoothing:antialiased;background-color:#35D7BB;background:#666E7F;border-radius:3px;color:#fff;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;overflow:hidden;padding:1rem 2rem .5rem;display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:center;justify-content:center}.diNotify-icon{display:block;width:16px;height:16px;line-height:16px;position:relative;top:3px}.diNotify-message{padding-left:1rem}.zen-wrapper{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:10;background-color:#FFF;opacity:0;transition:opacity .25s ease-in-out}.zen-wrapper.on{opacity:1}.enter-zen-mode{background-image:url("../img/icons/enter-zen.svg");right:.5rem;top:.313rem;display:none}.enter-zen-mode,.close-zen-mode{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;background-repeat:no-repeat;width:32px;height:32px;display:block;position:absolute}.close-zen-mode{background-image:url("../img/icons/exit-zen.svg");right:1rem;top:1rem}.zen-page{position:relative;top:0;bottom:0;z-index:11;height:100%;width:100%}#zen{font-size:1.25rem;width:300px;height:80%;margin:0 auto;position:relative;top:10%}#zen:before,#zen:after{content:"";position:absolute;height:10%;width:100%;z-index:12;pointer-events:none}#preview .table{width:auto}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-e{background-color:#666;border-right:8px solid #e8e8e8;border-left:1px solid #222;width:10px;z-index:88!important;position:relative}.ui-resizable-e:after{content:"-";display:block;position:absolute;top:calc(50% - 16px);left:0;height:25px;width:2px;background-color:rgba(0,0,0,.4);margin:3px}#editor{cursor:ew-resize;position:relative;z-index:auto}.profile-pic{float:left;width:250px}#_default_ a::before{color:#A0AABF}#_default_ img{display:none}#_default_ #_default_{display:block;float:left;max-width:38%;word-wrap:break-word}#_default_ .default-ad{display:none}#_default_ ._default_{display:block}#_default_ a{color:#35d7bb;text-decoration:none}#_default_ a:hover{color:#8ae8d8}#_default_ .default-image{display:none}#_default_ .default-title:after{content:" — "}#_default_ .default-title,#_default_ .default-text,#_default_ .default-description{display:inline}#_default_ .default-title{position:relative;font-weight:600;display:none}#_default_ a:before{position:relative;top:0;padding:5px;color:#a0aabf;content:"Ad";text-transform:uppercase;font-size:8px;font-family:Verdana,sans-serif}#_default_{display:block;float:left;max-width:38%;word-wrap:break-word}#_default_ ._default_{display:block;font-size:.75rem;height:51px;letter-spacing:1px;line-height:1rem;padding:18px 24px}body{max-width:1024px;margin:0 auto;overflow:auto;padding:2%}.split{overflow:scroll;padding:0!important;-webkit-overflow-scrolling:touch}.split-editor{padding-left:0;padding-right:0;position:relative;z-index:3}.show-preview .split-editor{display:none}.split-preview{background-color:#fff;display:none;top:0;position:relative;z-index:4}.show-preview .split-preview{display:block}#editor{font-size:1rem;font-family:"Ubuntu Mono",Monaco;font-weight:400;line-height:2rem;width:100%;height:100%}#editor .ace_gutter{-webkit-font-smoothing:antialiased}.editor-header{width:50%;float:left;border-bottom:1px solid #E8E8E8;position:relative}.editor-header--first{border-right:1px solid #E8E8E8}.editor-header .title{display:inline-block}.preview-html{padding:15px}.preview-html a{color:#A0AABF;text-decoration:underline}.preview-src{white-space:normal}.preview-mode-toggle-src{background-image:url("../img/icons/code.svg")}.preview-mode-toggle-src,.preview-mode-toggle-html{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;background-repeat:no-repeat;width:32px;height:32px;display:block;position:absolute;right:.5rem;top:.5rem;display:none}.preview-mode-toggle-html{background-image:url("../img/icons/eye.svg")}.sr-only{visibility:hidden;text-overflow:110%;overflow:hidden;top:-100px;position:absolute}.mnone{margin:0!important}@media screen and (min-width:27.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.0571429rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.953125rem;margin-bottom:.1835837rem;padding-top:.8164163rem}h3{font-size:1.6457143rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.546865rem;padding-top:.453135rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--m1of1{width:100%}.g-b--m1of2,.g-b--m2of4,.g-b--m3of6,.g-b--m4of8,.g-b--m5of10,.g-b--m6of12{width:50%}.g-b--m1of3,.g-b--m2of6,.g-b--m4of12{width:33.333%}.g-b--m2of3,.g-b--m4of6,.g-b--m8of12{width:66.666%}.g-b--m1of4,.g-b--m2of8,.g-b--m3of12{width:25%}.g-b--m3of4,.g-b--m6of8,.g-b--m9of12{width:75%}.g-b--m1of5,.g-b--m2of10{width:20%}.g-b--m2of5,.g-b--m4of10{width:40%}.g-b--m3of5,.g-b--m6of10{width:60%}.g-b--m4of5,.g-b--m8of10{width:80%}.g-b--m1of6,.g-b--m2of12{width:16.666%}.g-b--m5of6,.g-b--m10of12{width:83.333%}.g-b--m1of8{width:12.5%}.g-b--m3of8{width:37.5%}.g-b--m5of8{width:62.5%}.g-b--m7of8{width:87.5%}.g-b--m1of10{width:10%}.g-b--m3of10{width:30%}.g-b--m7of10{width:70%}.g-b--m9of10{width:90%}.g-b--m1of12{width:8.333%}.g-b--m5of12{width:41.666%}.g-b--m7of12{width:58.333%}.g-b--m11of12{width:91.666%}.g-b--push--m1of1{margin-left:100%}.g-b--push--m1of2,.g-b--push--m2of4,.g-b--push--m3of6,.g-b--push--m4of8,.g-b--push--m5of10,.g-b--push--m6of12{margin-left:50%}.g-b--push--m1of3,.g-b--push--m2of6,.g-b--push--m4of12{margin-left:33.333%}.g-b--push--m2of3,.g-b--push--m4of6,.g-b--push--m8of12{margin-left:66.666%}.g-b--push--m1of4,.g-b--push--m2of8,.g-b--push--m3of12{margin-left:25%}.g-b--push--m3of4,.g-b--push--m6of8,.g-b--push--m9of12{margin-left:75%}.g-b--push--m1of5,.g-b--push--m2of10{margin-left:20%}.g-b--push--m2of5,.g-b--push--m4of10{margin-left:40%}.g-b--push--m3of5,.g-b--push--m6of10{margin-left:60%}.g-b--push--m4of5,.g-b--push--m8of10{margin-left:80%}.g-b--push--m1of6,.g-b--push--m2of12{margin-left:16.666%}.g-b--push--m5of6,.g-b--push--m10of12{margin-left:83.333%}.g-b--push--m1of8{margin-left:12.5%}.g-b--push--m3of8{margin-left:37.5%}.g-b--push--m5of8{margin-left:62.5%}.g-b--push--m7of8{margin-left:87.5%}.g-b--push--m1of10{margin-left:10%}.g-b--push--m3of10{margin-left:30%}.g-b--push--m7of10{margin-left:70%}.g-b--push--m9of10{margin-left:90%}.g-b--push--m1of12{margin-left:8.333%}.g-b--push--m5of12{margin-left:41.666%}.g-b--push--m7of12{margin-left:58.333%}.g-b--push--m11of12{margin-left:91.666%}.g-b--pull--m1of1{margin-right:100%}.g-b--pull--m1of2,.g-b--pull--m2of4,.g-b--pull--m3of6,.g-b--pull--m4of8,.g-b--pull--m5of10,.g-b--pull--m6of12{margin-right:50%}.g-b--pull--m1of3,.g-b--pull--m2of6,.g-b--pull--m4of12{margin-right:33.333%}.g-b--pull--m2of3,.g-b--pull--m4of6,.g-b--pull--m8of12{margin-right:66.666%}.g-b--pull--m1of4,.g-b--pull--m2of8,.g-b--pull--m3of12{margin-right:25%}.g-b--pull--m3of4,.g-b--pull--m6of8,.g-b--pull--m9of12{margin-right:75%}.g-b--pull--m1of5,.g-b--pull--m2of10{margin-right:20%}.g-b--pull--m2of5,.g-b--pull--m4of10{margin-right:40%}.g-b--pull--m3of5,.g-b--pull--m6of10{margin-right:60%}.g-b--pull--m4of5,.g-b--pull--m8of10{margin-right:80%}.g-b--pull--m1of6,.g-b--pull--m2of12{margin-right:16.666%}.g-b--pull--m5of6,.g-b--pull--m10of12{margin-right:83.333%}.g-b--pull--m1of8{margin-right:12.5%}.g-b--pull--m3of8{margin-right:37.5%}.g-b--pull--m5of8{margin-right:62.5%}.g-b--pull--m7of8{margin-right:87.5%}.g-b--pull--m1of10{margin-right:10%}.g-b--pull--m3of10{margin-right:30%}.g-b--pull--m7of10{margin-right:70%}.g-b--pull--m9of10{margin-right:90%}.g-b--pull--m1of12{margin-right:8.333%}.g-b--pull--m5of12{margin-right:41.666%}.g-b--pull--m7of12{margin-right:58.333%}.g-b--pull--m11of12{margin-right:91.666%}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{margin-bottom:.89999rem;padding-top:.10001rem}.title-document,.settings a{font-size:1.25rem}.words,.characters{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#zen{width:400px}#editor{font-size:1rem}}@media screen and (min-width:46.25em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.0571429rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.953125rem;margin-bottom:.1835837rem;padding-top:.8164163rem}h3{font-size:1.6457143rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.546865rem;padding-top:.453135rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--t1of1{width:100%}.g-b--t1of2,.g-b--t2of4,.g-b--t3of6,.g-b--t4of8,.g-b--t5of10,.g-b--t6of12{width:50%}.g-b--t1of3,.g-b--t2of6,.g-b--t4of12{width:33.333%}.g-b--t2of3,.g-b--t4of6,.g-b--t8of12{width:66.666%}.g-b--t1of4,.g-b--t2of8,.g-b--t3of12{width:25%}.g-b--t3of4,.g-b--t6of8,.g-b--t9of12{width:75%}.g-b--t1of5,.g-b--t2of10{width:20%}.g-b--t2of5,.g-b--t4of10{width:40%}.g-b--t3of5,.g-b--t6of10{width:60%}.g-b--t4of5,.g-b--t8of10{width:80%}.g-b--t1of6,.g-b--t2of12{width:16.666%}.g-b--t5of6,.g-b--t10of12{width:83.333%}.g-b--t1of8{width:12.5%}.g-b--t3of8{width:37.5%}.g-b--t5of8{width:62.5%}.g-b--t7of8{width:87.5%}.g-b--t1of10{width:10%}.g-b--t3of10{width:30%}.g-b--t7of10{width:70%}.g-b--t9of10{width:90%}.g-b--t1of12{width:8.333%}.g-b--t5of12{width:41.666%}.g-b--t7of12{width:58.333%}.g-b--t11of12{width:91.666%}.g-b--push--t1of1{margin-left:100%}.g-b--push--t1of2,.g-b--push--t2of4,.g-b--push--t3of6,.g-b--push--t4of8,.g-b--push--t5of10,.g-b--push--t6of12{margin-left:50%}.g-b--push--t1of3,.g-b--push--t2of6,.g-b--push--t4of12{margin-left:33.333%}.g-b--push--t2of3,.g-b--push--t4of6,.g-b--push--t8of12{margin-left:66.666%}.g-b--push--t1of4,.g-b--push--t2of8,.g-b--push--t3of12{margin-left:25%}.g-b--push--t3of4,.g-b--push--t6of8,.g-b--push--t9of12{margin-left:75%}.g-b--push--t1of5,.g-b--push--t2of10{margin-left:20%}.g-b--push--t2of5,.g-b--push--t4of10{margin-left:40%}.g-b--push--t3of5,.g-b--push--t6of10{margin-left:60%}.g-b--push--t4of5,.g-b--push--t8of10{margin-left:80%}.g-b--push--t1of6,.g-b--push--t2of12{margin-left:16.666%}.g-b--push--t5of6,.g-b--push--t10of12{margin-left:83.333%}.g-b--push--t1of8{margin-left:12.5%}.g-b--push--t3of8{margin-left:37.5%}.g-b--push--t5of8{margin-left:62.5%}.g-b--push--t7of8{margin-left:87.5%}.g-b--push--t1of10{margin-left:10%}.g-b--push--t3of10{margin-left:30%}.g-b--push--t7of10{margin-left:70%}.g-b--push--t9of10{margin-left:90%}.g-b--push--t1of12{margin-left:8.333%}.g-b--push--t5of12{margin-left:41.666%}.g-b--push--t7of12{margin-left:58.333%}.g-b--push--t11of12{margin-left:91.666%}.g-b--pull--t1of1{margin-right:100%}.g-b--pull--t1of2,.g-b--pull--t2of4,.g-b--pull--t3of6,.g-b--pull--t4of8,.g-b--pull--t5of10,.g-b--pull--t6of12{margin-right:50%}.g-b--pull--t1of3,.g-b--pull--t2of6,.g-b--pull--t4of12{margin-right:33.333%}.g-b--pull--t2of3,.g-b--pull--t4of6,.g-b--pull--t8of12{margin-right:66.666%}.g-b--pull--t1of4,.g-b--pull--t2of8,.g-b--pull--t3of12{margin-right:25%}.g-b--pull--t3of4,.g-b--pull--t6of8,.g-b--pull--t9of12{margin-right:75%}.g-b--pull--t1of5,.g-b--pull--t2of10{margin-right:20%}.g-b--pull--t2of5,.g-b--pull--t4of10{margin-right:40%}.g-b--pull--t3of5,.g-b--pull--t6of10{margin-right:60%}.g-b--pull--t4of5,.g-b--pull--t8of10{margin-right:80%}.g-b--pull--t1of6,.g-b--pull--t2of12{margin-right:16.666%}.g-b--pull--t5of6,.g-b--pull--t10of12{margin-right:83.333%}.g-b--pull--t1of8{margin-right:12.5%}.g-b--pull--t3of8{margin-right:37.5%}.g-b--pull--t5of8{margin-right:62.5%}.g-b--pull--t7of8{margin-right:87.5%}.g-b--pull--t1of10{margin-right:10%}.g-b--pull--t3of10{margin-right:30%}.g-b--pull--t7of10{margin-right:70%}.g-b--pull--t9of10{margin-right:90%}.g-b--pull--t1of12{margin-right:8.333%}.g-b--pull--t5of12{margin-right:41.666%}.g-b--pull--t7of12{margin-right:58.333%}.g-b--pull--t11of12{margin-right:91.666%}.splashscreen-dillinger{width:500px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem}.menu .menu-item--save-to,.menu .menu-item--import-from{display:block}.menu .menu-item--preview,.menu .menu-item--save-to.in-sidebar,.menu .menu-item--import-from.in-sidebar{display:none}.settings a{font-size:1.25rem}.words,.characters{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog{font-size:1.25rem}.enter-zen-mode{display:block}.close-zen-mode{right:3rem;top:3rem}#zen{font-size:1.25rem;width:500px}.split-editor{border-right:1px solid #E8E8E8;float:left;padding-right:16px;width:50%}.show-preview .split-editor{display:block}.split-preview{display:block;float:right;position:relative;top:0;width:50%}#editor{font-size:1rem}.preview-mode-toggle-src,.preview-mode-toggle-html{display:block}}@media screen and (min-width:62.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.0571429rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.953125rem;margin-bottom:.1835837rem;padding-top:.8164163rem}h3{font-size:1.6457143rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.546865rem;padding-top:.453135rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--d1of1{width:100%}.g-b--d1of2,.g-b--d2of4,.g-b--d3of6,.g-b--d4of8,.g-b--d5of10,.g-b--d6of12{width:50%}.g-b--d1of3,.g-b--d2of6,.g-b--d4of12{width:33.333%}.g-b--d2of3,.g-b--d4of6,.g-b--d8of12{width:66.666%}.g-b--d1of4,.g-b--d2of8,.g-b--d3of12{width:25%}.g-b--d3of4,.g-b--d6of8,.g-b--d9of12{width:75%}.g-b--d1of5,.g-b--d2of10{width:20%}.g-b--d2of5,.g-b--d4of10{width:40%}.g-b--d3of5,.g-b--d6of10{width:60%}.g-b--d4of5,.g-b--d8of10{width:80%}.g-b--d1of6,.g-b--d2of12{width:16.666%}.g-b--d5of6,.g-b--d10of12{width:83.333%}.g-b--d1of8{width:12.5%}.g-b--d3of8{width:37.5%}.g-b--d5of8{width:62.5%}.g-b--d7of8{width:87.5%}.g-b--d1of10{width:10%}.g-b--d3of10{width:30%}.g-b--d7of10{width:70%}.g-b--d9of10{width:90%}.g-b--d1of12{width:8.333%}.g-b--d5of12{width:41.666%}.g-b--d7of12{width:58.333%}.g-b--d11of12{width:91.666%}.g-b--push--d1of1{margin-left:100%}.g-b--push--d1of2,.g-b--push--d2of4,.g-b--push--d3of6,.g-b--push--d4of8,.g-b--push--d5of10,.g-b--push--d6of12{margin-left:50%}.g-b--push--d1of3,.g-b--push--d2of6,.g-b--push--d4of12{margin-left:33.333%}.g-b--push--d2of3,.g-b--push--d4of6,.g-b--push--d8of12{margin-left:66.666%}.g-b--push--d1of4,.g-b--push--d2of8,.g-b--push--d3of12{margin-left:25%}.g-b--push--d3of4,.g-b--push--d6of8,.g-b--push--d9of12{margin-left:75%}.g-b--push--d1of5,.g-b--push--d2of10{margin-left:20%}.g-b--push--d2of5,.g-b--push--d4of10{margin-left:40%}.g-b--push--d3of5,.g-b--push--d6of10{margin-left:60%}.g-b--push--d4of5,.g-b--push--d8of10{margin-left:80%}.g-b--push--d1of6,.g-b--push--d2of12{margin-left:16.666%}.g-b--push--d5of6,.g-b--push--d10of12{margin-left:83.333%}.g-b--push--d1of8{margin-left:12.5%}.g-b--push--d3of8{margin-left:37.5%}.g-b--push--d5of8{margin-left:62.5%}.g-b--push--d7of8{margin-left:87.5%}.g-b--push--d1of10{margin-left:10%}.g-b--push--d3of10{margin-left:30%}.g-b--push--d7of10{margin-left:70%}.g-b--push--d9of10{margin-left:90%}.g-b--push--d1of12{margin-left:8.333%}.g-b--push--d5of12{margin-left:41.666%}.g-b--push--d7of12{margin-left:58.333%}.g-b--push--d11of12{margin-left:91.666%}.g-b--pull--d1of1{margin-right:100%}.g-b--pull--d1of2,.g-b--pull--d2of4,.g-b--pull--d3of6,.g-b--pull--d4of8,.g-b--pull--d5of10,.g-b--pull--d6of12{margin-right:50%}.g-b--pull--d1of3,.g-b--pull--d2of6,.g-b--pull--d4of12{margin-right:33.333%}.g-b--pull--d2of3,.g-b--pull--d4of6,.g-b--pull--d8of12{margin-right:66.666%}.g-b--pull--d1of4,.g-b--pull--d2of8,.g-b--pull--d3of12{margin-right:25%}.g-b--pull--d3of4,.g-b--pull--d6of8,.g-b--pull--d9of12{margin-right:75%}.g-b--pull--d1of5,.g-b--pull--d2of10{margin-right:20%}.g-b--pull--d2of5,.g-b--pull--d4of10{margin-right:40%}.g-b--pull--d3of5,.g-b--pull--d6of10{margin-right:60%}.g-b--pull--d4of5,.g-b--pull--d8of10{margin-right:80%}.g-b--pull--d1of6,.g-b--pull--d2of12{margin-right:16.666%}.g-b--pull--d5of6,.g-b--pull--d10of12{margin-right:83.333%}.g-b--pull--d1of8{margin-right:12.5%}.g-b--pull--d3of8{margin-right:37.5%}.g-b--pull--d5of8{margin-right:62.5%}.g-b--pull--d7of8{margin-right:87.5%}.g-b--pull--d1of10{margin-right:10%}.g-b--pull--d3of10{margin-right:30%}.g-b--pull--d7of10{margin-right:70%}.g-b--pull--d9of10{margin-right:90%}.g-b--pull--d1of12{margin-right:8.333%}.g-b--pull--d5of12{margin-right:41.666%}.g-b--pull--d7of12{margin-right:58.333%}.g-b--pull--d11of12{margin-right:91.666%}.splashscreen-dillinger{width:700px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem}.menu .menu-item--export-as{display:block}.menu .menu-item--preview{display:none}.settings a{font-size:1.25rem}.words,.characters{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#zen{width:700px}#editor{font-size:1rem}}@media screen and (min-width:87.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.0571429rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.953125rem;margin-bottom:.1835837rem;padding-top:.8164163rem}h3{font-size:1.6457143rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.546865rem;padding-top:.453135rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.splashscreen-dillinger{width:800px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{margin-bottom:.89999rem;padding-top:.10001rem}.title-document,.settings a{font-size:1.25rem}.words,.characters{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#editor{font-size:1rem}}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}.form-horizontal .form-group-lg .control-label{padding-top:14.3px}.form-horizontal .form-group-sm .control-label{padding-top:6px}.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}@media screen and (max-width:1200px){#_default_{max-width:30%}#_default_ ._default_{font-size:.825rem;line-height:.875rem;padding:12px 12px 6px 24px;text-align:justify}}@media screen and (max-width:1100px){#_default_{max-width:27%}#_default_ ._default_{font-size:.8rem;line-height:.85rem;padding:12px 6px 6px 24px;text-align:justify}}@media screen and (max-width:1000px){#_default_{max-width:24%}#_default_ ._default_{font-size:.775rem;line-height:.8rem;padding:12px 6px 6px 24px;text-align:justify}}@media screen and (max-width:900px){#_default_{max-width:30%}}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}@media screen and (max-width:720px){#_default_{max-width:60%}#_default_ ._default_{font-size:.75rem;line-height:1rem;padding:12px 24px}}@media screen and (max-width:620px){#_default_{max-width:50%}#_default_ ._default_{font-size:.66rem;letter-spacing:1px;line-height:1rem;padding:10px 24px}}@media screen and (max-width:520px){#_default_ ._default_{font-size:.4rem;line-height:.875rem;padding:6px 12px 6px 24px;text-align:justify}}@media screen and (max-width:460px){#_default_{display:none}}@media screen and (max-width:46.1875em){.editor-header{display:none}.editor-header--first{display:block;width:100%}}</style></head><body id="preview">
  2. <p class="has-line-data" data-line-start="0" data-line-end="1">Python Made EZ (and other stuff)</p>
  3. <h1 class="code-line" data-line-start=2 data-line-end=3><a id="H_everyone_2"></a>Hîïíīįì everyone!</h1>
  4. <p class="has-line-data" data-line-start="4" data-line-end="5">Hope y’all are doing great! School is starting real soon, so I hope <s>you have been studying to get ready</s> you are enjoying the last of vacation!</p>
  5. <p class="has-line-data" data-line-start="6" data-line-end="7">So I made this tutorial on python so that others can try to learn from it and get better! Hopefully, what I say will be comprehensive and easy to read.</p>
  6. <p class="has-line-data" data-line-start="8" data-line-end="9">Most of it I will write, but sometimes I will include some stuff from other websites which explain better than me. I will put what I’ve taken in <em>italic</em>, and the sources and helpful links at the bottom.</p>
  7. <hr>
  8. <p class="has-line-data" data-line-start="15" data-line-end="16">I will be covering:</p>
  9. <ul>
  10. <li class="has-line-data" data-line-start="17" data-line-end="18"><code>Hello World!</code>: History of Python</li>
  11. <li class="has-line-data" data-line-start="18" data-line-end="19">Key Terms</li>
  12. <li class="has-line-data" data-line-start="19" data-line-end="20">Comments</li>
  13. <li class="has-line-data" data-line-start="20" data-line-end="21"><code>print</code></li>
  14. <li class="has-line-data" data-line-start="21" data-line-end="22">Data Types</li>
  15. <li class="has-line-data" data-line-start="22" data-line-end="26">Variables
  16. <ul>
  17. <li class="has-line-data" data-line-start="23" data-line-end="24">Printing Variables</li>
  18. <li class="has-line-data" data-line-start="24" data-line-end="25">Naming Variables</li>
  19. <li class="has-line-data" data-line-start="25" data-line-end="26">Changing Variables</li>
  20. </ul>
  21. </li>
  22. <li class="has-line-data" data-line-start="26" data-line-end="27">Concatenation</li>
  23. <li class="has-line-data" data-line-start="27" data-line-end="28">Operators</li>
  24. <li class="has-line-data" data-line-start="28" data-line-end="29">Comparison Operators</li>
  25. <li class="has-line-data" data-line-start="29" data-line-end="33">Conditionals
  26. <ul>
  27. <li class="has-line-data" data-line-start="30" data-line-end="31"><code>if</code></li>
  28. <li class="has-line-data" data-line-start="31" data-line-end="32"><code>elif</code></li>
  29. <li class="has-line-data" data-line-start="32" data-line-end="33"><code>else</code></li>
  30. </ul>
  31. </li>
  32. <li class="has-line-data" data-line-start="33" data-line-end="34"><code>input</code></li>
  33. <li class="has-line-data" data-line-start="34" data-line-end="35">A Bit of Lists</li>
  34. <li class="has-line-data" data-line-start="35" data-line-end="36"><code>for</code> Loops</li>
  35. <li class="has-line-data" data-line-start="36" data-line-end="37"><code>while</code> Loops</li>
  36. <li class="has-line-data" data-line-start="37" data-line-end="38">Functions</li>
  37. <li class="has-line-data" data-line-start="38" data-line-end="42">Imports
  38. <ul>
  39. <li class="has-line-data" data-line-start="39" data-line-end="40"><code>time</code></li>
  40. <li class="has-line-data" data-line-start="40" data-line-end="41"><code>random</code></li>
  41. <li class="has-line-data" data-line-start="41" data-line-end="42"><code>math</code></li>
  42. </ul>
  43. </li>
  44. <li class="has-line-data" data-line-start="42" data-line-end="43">Small Programs and Useful Stuff</li>
  45. <li class="has-line-data" data-line-start="43" data-line-end="44"><code>ANSI</code> Escape Codes</li>
  46. <li class="has-line-data" data-line-start="44" data-line-end="45">Links</li>
  47. <li class="has-line-data" data-line-start="45" data-line-end="47"><code>Goodbye World!</code>: End</li>
  48. </ul>
  49. <p class="has-line-data" data-line-start="47" data-line-end="48">Well without any further ado, let’s get on with it!</p>
  50. <hr>
  51. <h3 class="code-line" data-line-start=51 data-line-end=52><a id="Hello_World_History_of_Python_51"></a><code>Hello World!</code>: History of Python</h3>
  52. <p class="has-line-data" data-line-start="53" data-line-end="54">Python is a general purpose programming language. It was created by Guido Van Rossum and released in 1991. One of the main features of it is its readability, simple syntax, and few keywords, which makes it great for beginners (with no prior experience of coding) to learn it.</p>
  53. <p class="has-line-data" data-line-start="55" data-line-end="56">Fun fact: Guido Van Rossum was reading the scripts of Monty Python when he was creating the language; he needed <em>“a name that was short, unique, and slightly mysterious”</em> so he decided to call the language Python.</p>
  54. <p class="has-line-data" data-line-start="57" data-line-end="58">(Last year we had to make a poem on a important person in Computer Science, so I made one on him: <a href="https://docs.google.com/document/d/1yf2T2fFaS3Vwk7zkvN1nPOr8XPXJroL1yHI7z5qhaRc/edit?usp=sharing">https://docs.google.com/document/d/1yf2T2fFaS3Vwk7zkvN1nPOr8XPXJroL1yHI7z5qhaRc/edit?usp=sharing</a>)</p>
  55. <hr>
  56. <h3 class="code-line" data-line-start=60 data-line-end=61><a id="Key_Terms_60"></a>Key Terms</h3>
  57. <p class="has-line-data" data-line-start="62" data-line-end="63">Now before we continue, just a few words you should know:</p>
  58. <ul>
  59. <li class="has-line-data" data-line-start="64" data-line-end="66">Console: The black part located at the right/bottom of your screen</li>
  60. </ul>
  61. <img src="https://i.ibb.co/1nspSJ8/intro-console.png" alt="output -1" width="500" height="333">
  62. <ul>
  63. <li class="has-line-data" data-line-start="68" data-line-end="70">
  64. <p class="has-line-data" data-line-start="68" data-line-end="69">Input: stuff that is taken in by the computer (more on this later)</p>
  65. </li>
  66. <li class="has-line-data" data-line-start="70" data-line-end="72">
  67. <p class="has-line-data" data-line-start="70" data-line-end="71">Ouput: the information processed and sent out by the computer (usually in the console)</p>
  68. </li>
  69. </ul>
  70. <img src="https://i.ibb.co/VYSd0s2/intro-output.png" alt="output -1" width="500" height="333">
  71. <ul>
  72. <li class="has-line-data" data-line-start="74" data-line-end="76">
  73. <p class="has-line-data" data-line-start="74" data-line-end="75">Errors: actually, a good thing! Don’t worry if you have an error, just try to learn from it and correct it. That’s how you can improve, by knowing how to correct errors.</p>
  74. </li>
  75. <li class="has-line-data" data-line-start="76" data-line-end="78">
  76. <p class="has-line-data" data-line-start="76" data-line-end="77">Execute: run a piece of code</p>
  77. </li>
  78. </ul>
  79. <hr>
  80. <h3 class="code-line" data-line-start=80 data-line-end=81><a id="Comments_80"></a>Comments</h3>
  81. <p class="has-line-data" data-line-start="82" data-line-end="83">Comments are used for explaining your code, making it more readable, and <em>to prevent execution when testing code</em>.</p>
  82. <p class="has-line-data" data-line-start="84" data-line-end="85">This is how to comment:</p>
  83. <pre><code class="has-line-data" data-line-start="87" data-line-end="91" class="language-py"><span class="hljs-comment"># this is a comment</span>
  84. <span class="hljs-comment"># it starts with a hastag #</span>
  85. <span class="hljs-comment"># Python will ignore and not run anything after the hastag </span>
  86. </code></pre>
  87. <p class="has-line-data" data-line-start="92" data-line-end="93">You can also have multiline comments:</p>
  88. <pre><code class="has-line-data" data-line-start="95" data-line-end="102" class="language-py"><span class="hljs-string">"""
  89. this is
  90. a multiline comment
  91.  
  92. I can make it very long!
  93. """</span>
  94. </code></pre>
  95. <hr>
  96. <h3 class="code-line" data-line-start=105 data-line-end=106><a id="print_105"></a>print</h3>
  97. <p class="has-line-data" data-line-start="107" data-line-end="108">The <code>print()</code> functions is used for outputting a message (object) onto the console. This is how you use it:</p>
  98. <pre><code class="has-line-data" data-line-start="110" data-line-end="117" class="language-py">print(<span class="hljs-string">"Something."</span>)
  99. <span class="hljs-comment"># remember this is a comment</span>
  100. <span class="hljs-comment"># you can use double quotes " </span>
  101. <span class="hljs-comment"># or single quotes '</span>
  102. print(<span class="hljs-string">'Using single quotes'</span>)
  103. print(<span class="hljs-string">"Is the same as using double quotes"</span>)
  104. </code></pre>
  105. <p class="has-line-data" data-line-start="118" data-line-end="119">You can also triple quotes for big messages.</p>
  106. <p class="has-line-data" data-line-start="120" data-line-end="121">Example:</p>
  107. <pre><code class="has-line-data" data-line-start="123" data-line-end="135" class="language-py">print(<span class="hljs-string">"Hello World!"</span>)
  108.  
  109. print(<span class="hljs-string">"""
  110.  
  111. Rules:
  112.  
  113. [1] Code
  114. [2] Be nice
  115. [3] Lol
  116. [4] Repeat
  117. """</span>)
  118. </code></pre>
  119. <p class="has-line-data" data-line-start="136" data-line-end="137">Output:</p>
  120. <pre><code class="has-line-data" data-line-start="139" data-line-end="149">Hello World!
  121.  
  122.  
  123. Rules:
  124.  
  125. [1] Code
  126. [2] Be nice
  127. [3] Lol
  128. [4] Repeat
  129. </code></pre>
  130. <hr>
  131. <h3 class="code-line" data-line-start=151 data-line-end=152><a id="Data_Types_151"></a>Data Types</h3>
  132. <p class="has-line-data" data-line-start="153" data-line-end="154"><em>Data types are the classification or categorization of data items.</em></p>
  133. <p class="has-line-data" data-line-start="155" data-line-end="156">These are the 4 main data types:</p>
  134. <p class="has-line-data" data-line-start="157" data-line-end="159"><code>int</code>: (integer) a whole number<br>
  135. 12 is an <code>int</code>, so is 902.</p>
  136. <p class="has-line-data" data-line-start="160" data-line-end="162"><code>str</code>: (string) a sequence of characters<br>
  137. “Hi” is a <code>str</code>, so is “New York City”.</p>
  138. <p class="has-line-data" data-line-start="163" data-line-end="165"><code>float</code>: (float) a combination of string and integers<br>
  139. -90 is a <code>float</code>, so is 128.84</p>
  140. <p class="has-line-data" data-line-start="166" data-line-end="168"><code>bool</code>: (boolean) data type with 2 possible values; <code>True</code> and <code>False</code><br>
  141. Note that <code>True</code> has a <strong>capital <code>T</code></strong> and <code>False</code> has a <strong>capital <code>F</code></strong>!</p>
  142. <hr>
  143. <h3 class="code-line" data-line-start=172 data-line-end=173><a id="Variables_172"></a>Variables</h3>
  144. <p class="has-line-data" data-line-start="174" data-line-end="175">Variables are used for containing/storing information.</p>
  145. <p class="has-line-data" data-line-start="176" data-line-end="177">Example:</p>
  146. <pre><code class="has-line-data" data-line-start="179" data-line-end="188" class="language-py">name = <span class="hljs-string">"Lucy"</span>  <span class="hljs-comment"># this variable contains a str</span>
  147.  
  148. age = <span class="hljs-number">25</span>  <span class="hljs-comment"># this variable contains an int</span>
  149.  
  150. height = <span class="hljs-number">160.5</span> <span class="hljs-comment"># this variable contains a float</span>
  151.  
  152. can_vote = <span class="hljs-keyword">True</span>  <span class="hljs-comment"># this variable contains a Boolean that is True (because Lucy is 25 y/o)</span>
  153.  
  154. </code></pre>
  155. <h4 class="code-line" data-line-start=189 data-line-end=190><a id="Printing_variables_189"></a>Printing variables:</h4>
  156. <p class="has-line-data" data-line-start="191" data-line-end="192">To print variables, you simply do <code>print(variableName)</code>:</p>
  157. <pre><code class="has-line-data" data-line-start="194" data-line-end="199" class="language-py">print(name)
  158. print(age)
  159. print(height)
  160. print(can_vote)
  161. </code></pre>
  162. <p class="has-line-data" data-line-start="200" data-line-end="201">Output:</p>
  163. <pre><code class="has-line-data" data-line-start="203" data-line-end="208">Lucy
  164. 25
  165. 160.5
  166. True
  167. </code></pre>
  168. <h4 class="code-line" data-line-start=209 data-line-end=210><a id="Naming_Variables_209"></a>Naming Variables:</h4>
  169. <p class="has-line-data" data-line-start="211" data-line-end="212">You should try to make variables with a descriptive name. For example, if you have a variable with an age, an appropriate name would be <code>age</code>, not <code>how_old</code> or <code>number_years</code>.</p>
  170. <p class="has-line-data" data-line-start="213" data-line-end="214">Some rules for naming variables:</p>
  171. <ul>
  172. <li class="has-line-data" data-line-start="215" data-line-end="216">must start with a letter (not a number)</li>
  173. <li class="has-line-data" data-line-start="216" data-line-end="217">no spaces (use underscores)</li>
  174. <li class="has-line-data" data-line-start="217" data-line-end="219">no keywords (like <code>print</code>, <code>input</code>, <code>or</code>, etc.)</li>
  175. </ul>
  176. <h4 class="code-line" data-line-start=219 data-line-end=220><a id="Changing_Variables_219"></a>Changing Variables:</h4>
  177. <p class="has-line-data" data-line-start="221" data-line-end="222">You can change variables to other values.</p>
  178. <p class="has-line-data" data-line-start="223" data-line-end="224">For example:</p>
  179. <pre><code class="has-line-data" data-line-start="226" data-line-end="236" class="language-py">x = <span class="hljs-number">18</span>
  180. print(x)
  181.  
  182. x = <span class="hljs-number">19</span>
  183. print(x)
  184.  
  185. <span class="hljs-comment"># the output will be:</span>
  186. <span class="hljs-comment"># 18</span>
  187. <span class="hljs-comment"># 19</span>
  188. </code></pre>
  189. <p class="has-line-data" data-line-start="237" data-line-end="238">As you can see, we have changed the variable <code>x</code> from the initial value of 18 to 19.</p>
  190. <hr>
  191. <h3 class="code-line" data-line-start=241 data-line-end=242><a id="Concatenation_241"></a>Concatenation</h3>
  192. <p class="has-line-data" data-line-start="243" data-line-end="244">Let’s go back to our first 3 variables:</p>
  193. <pre><code class="has-line-data" data-line-start="246" data-line-end="253" class="language-py">name = <span class="hljs-string">"Lucy"</span>
  194.  
  195. age = <span class="hljs-number">25</span>  
  196.  
  197. height = <span class="hljs-number">160.5</span>
  198.  
  199. </code></pre>
  200. <p class="has-line-data" data-line-start="254" data-line-end="256">What if we want to make a sentence like this:<br>
  201. <code>Her name is Lucy, she is 25 years old and she measures 160.5 cm.</code></p>
  202. <p class="has-line-data" data-line-start="257" data-line-end="259">Of course, we could just print that whole thing like this:<br>
  203. <code>print(&quot;Her name is Lucy, she is 25 years old and she measures 160.5 cm.&quot;)</code></p>
  204. <p class="has-line-data" data-line-start="260" data-line-end="261">But if we want to do this with variables, we could do it something like this:</p>
  205. <pre><code class="has-line-data" data-line-start="263" data-line-end="266" class="language-py">print(<span class="hljs-string">"Her name is "</span> + name + <span class="hljs-string">", she is "</span> + age + <span class="hljs-string">" years old and she measures "</span> + height + <span class="hljs-string">" cm."</span>)
  206. <span class="hljs-comment"># try running this!</span>
  207. </code></pre>
  208. <p class="has-line-data" data-line-start="267" data-line-end="268">Aha! If you ran it, you should have gotten this error:</p>
  209. <img src="https://i.ibb.co/3skBMM2/concatenation-error.png" alt="output -1" width="500" height="333">
  210. <p class="has-line-data" data-line-start="271" data-line-end="272">Basically, it means that you cannot concatenate <code>int</code> to <code>str</code>. But what does concatenate mean?</p>
  211. <p class="has-line-data" data-line-start="273" data-line-end="274">Concatenate means join/link together, like the concatenation of “sand” and “castle” is “sandcastle”</p>
  212. <p class="has-line-data" data-line-start="275" data-line-end="276">In the previous code, we want to concatenate the bits of sentences (&quot;Her name is &quot;, “, she is”, etc.) as well as the variables (<code>name</code>, <code>age</code>, and <code>height</code>).</p>
  213. <p class="has-line-data" data-line-start="277" data-line-end="278">Since the computer can only concatenate <code>str</code> together, we simply have to convert those variables into <code>str</code>, like so:</p>
  214. <pre><code class="has-line-data" data-line-start="280" data-line-end="283" class="language-py">print(<span class="hljs-string">"Her name is "</span> + name + <span class="hljs-string">", she is "</span> + str(age) + <span class="hljs-string">" years old and she measures "</span> + str(height) + <span class="hljs-string">" cm."</span>)
  215. <span class="hljs-comment"># since name is already a str, no need to convert it</span>
  216. </code></pre>
  217. <p class="has-line-data" data-line-start="284" data-line-end="285">Output:</p>
  218. <pre><code class="has-line-data" data-line-start="287" data-line-end="289">Her name is Lucy, she is 25 years old and she measures 160.5 cm.
  219. </code></pre>
  220. <hr>
  221. <h3 class="code-line" data-line-start=292 data-line-end=293><a id="Operators_292"></a>Operators</h3>
  222. <p class="has-line-data" data-line-start="294" data-line-end="295"><em>A symbol or function denoting an operation</em></p>
  223. <p class="has-line-data" data-line-start="296" data-line-end="297">Basically operators can be used in math.</p>
  224. <p class="has-line-data" data-line-start="298" data-line-end="299">List of operators:</p>
  225. <ul>
  226. <li class="has-line-data" data-line-start="300" data-line-end="301"><code>+</code> For adding numbers (can also be used for concatenation) | Eg: 12 + 89 = 101</li>
  227. <li class="has-line-data" data-line-start="301" data-line-end="302"><code>-</code> For subtracting numbers | Eg: 65 - 5 = 60</li>
  228. <li class="has-line-data" data-line-start="302" data-line-end="303"><code>*</code> For multiplying numbers | Eg: 12 * 4 = 48</li>
  229. <li class="has-line-data" data-line-start="303" data-line-end="304"><code>/</code> For dividing numbers | Eg: 60 / 5 = 12</li>
  230. <li class="has-line-data" data-line-start="304" data-line-end="305"><code>**</code> Exponentiation (“to the power of”) | Eg: 2**3 = 8</li>
  231. <li class="has-line-data" data-line-start="305" data-line-end="306"><code>//</code> Floor division (divides numbers and takes away everything after the decimal point) | Eg: 100 // 3 = 33</li>
  232. <li class="has-line-data" data-line-start="306" data-line-end="308"><code>%</code> Modulo (divides numbers and returns whats left (remainder)) | Eg: 50 % 30 = 20</li>
  233. </ul>
  234. <p class="has-line-data" data-line-start="308" data-line-end="309">These operators can be used for decreasing/increasing variables.</p>
  235. <p class="has-line-data" data-line-start="310" data-line-end="311">Example:</p>
  236. <pre><code class="has-line-data" data-line-start="313" data-line-end="318" class="language-py">x = <span class="hljs-number">12</span>
  237. x += <span class="hljs-number">3</span>
  238. print(x)
  239. <span class="hljs-comment"># this will output 15, because 12 + 3 = 15</span>
  240. </code></pre>
  241. <p class="has-line-data" data-line-start="318" data-line-end="319">You can replace the <code>+</code> in <code>+=</code> by any other operator that you want:</p>
  242. <pre><code class="has-line-data" data-line-start="321" data-line-end="330" class="language-py">x = <span class="hljs-number">6</span>
  243. x *= <span class="hljs-number">5</span>
  244. print(x)
  245.  
  246. y = <span class="hljs-number">9</span>
  247. y /= <span class="hljs-number">3</span>
  248. print(y)
  249. <span class="hljs-comment"># this will output 30 and then below 3.</span>
  250. </code></pre>
  251. <p class="has-line-data" data-line-start="331" data-line-end="332">Also: <code>x += y</code> is just a shorter version of writing <code>x = x + y</code>; both work the same</p>
  252. <hr>
  253. <h3 class="code-line" data-line-start=335 data-line-end=336><a id="Comparison_Operators_335"></a>Comparison Operators</h3>
  254. <p class="has-line-data" data-line-start="337" data-line-end="338">Comparsion operators are for, well, comparing things. They return a Boolean value, <code>True</code> or <code>False</code>. They can be used in conditionals.</p>
  255. <p class="has-line-data" data-line-start="339" data-line-end="340">List of comparison operators:</p>
  256. <ul>
  257. <li class="has-line-data" data-line-start="341" data-line-end="342"><code>==</code> equal to | Eg: 7 == 7</li>
  258. <li class="has-line-data" data-line-start="342" data-line-end="343"><code>!=</code> not equal to | Eg: 7 != 8</li>
  259. <li class="has-line-data" data-line-start="343" data-line-end="344"><code>&gt;</code> bigger than | Eg: 12 &gt; 8</li>
  260. <li class="has-line-data" data-line-start="344" data-line-end="345"><code>&lt;</code> smaller than | Eg: 7 &lt; 9</li>
  261. <li class="has-line-data" data-line-start="345" data-line-end="346"><code>&gt;=</code> bigger than or equal to | Eg: 19 &gt;= 19</li>
  262. <li class="has-line-data" data-line-start="346" data-line-end="348"><code>&lt;=</code> smaller than or equal to | Eg: 1 &lt;= 4</li>
  263. </ul>
  264. <p class="has-line-data" data-line-start="348" data-line-end="349">If we type these into the console, we will get either <code>True</code> or <code>False</code>:</p>
  265. <pre><code class="has-line-data" data-line-start="351" data-line-end="358" class="language-py">
  266. <span class="hljs-number">6</span> &gt; <span class="hljs-number">7</span> <span class="hljs-comment"># will return False</span>
  267. <span class="hljs-number">12</span> &lt; <span class="hljs-number">80</span> <span class="hljs-comment"># will return True</span>
  268. <span class="hljs-number">786</span> != <span class="hljs-number">787</span> <span class="hljs-comment"># will return True</span>
  269. <span class="hljs-number">95</span> &lt;= <span class="hljs-number">96</span> <span class="hljs-comment"># will return True</span>
  270.  
  271. </code></pre>
  272. <hr>
  273. <h3 class="code-line" data-line-start=361 data-line-end=362><a id="Conditionals_361"></a>Conditionals</h3>
  274. <p class="has-line-data" data-line-start="363" data-line-end="364">Conditionals are used to verify if an expression is <code>True</code> or <code>False</code>.</p>
  275. <h4 class="code-line" data-line-start=365 data-line-end=366><a id="if_365"></a><code>if</code></h4>
  276. <p class="has-line-data" data-line-start="366" data-line-end="367">Example: we want to see if a number is bigger than another one.</p>
  277. <p class="has-line-data" data-line-start="368" data-line-end="369">How to say in english: &quot;If the number 10 is bigger than the number 5, then etc.</p>
  278. <p class="has-line-data" data-line-start="370" data-line-end="371">How to say it in Python:</p>
  279. <pre><code class="has-line-data" data-line-start="373" data-line-end="376" class="language-py"><span class="hljs-keyword">if</span> <span class="hljs-number">10</span> &gt; <span class="hljs-number">5</span>:  
  280.     <span class="hljs-comment"># etc.</span>
  281. </code></pre>
  282. <p class="has-line-data" data-line-start="377" data-line-end="379">All the code that is indented will be inside that <code>if</code> statement. It will <strong>only</strong> run if the condition is verified.<br>
  283. You can also use variables in conditionals:</p>
  284. <pre><code class="has-line-data" data-line-start="381" data-line-end="389" class="language-py">x = <span class="hljs-number">20</span>
  285. y = <span class="hljs-number">40</span>
  286.  
  287. <span class="hljs-keyword">if</span> x &lt; y:
  288.     print(<span class="hljs-string">"20 is smaller than 40"</span>!)
  289.  
  290. <span class="hljs-comment"># the output of this program will be "20 is smaller than 40"! because the condition (x &lt; y) is True.</span>
  291. </code></pre>
  292. <h4 class="code-line" data-line-start=389 data-line-end=390><a id="elif_389"></a><code>elif</code></h4>
  293. <p class="has-line-data" data-line-start="391" data-line-end="392"><code>elif</code> is basically like <code>if</code>; it checks if several conditions are <code>True</code></p>
  294. <p class="has-line-data" data-line-start="393" data-line-end="394">Example:</p>
  295. <pre><code class="has-line-data" data-line-start="396" data-line-end="408" class="language-py">age = <span class="hljs-number">16</span>
  296.  
  297. <span class="hljs-keyword">if</span> age == <span class="hljs-number">12</span>:
  298.     print(<span class="hljs-string">"You're 12 years old!"</span>)
  299.  
  300. <span class="hljs-keyword">elif</span> age == <span class="hljs-number">14</span>:
  301.     print(<span class="hljs-string">"You're 14 years old!"</span>)
  302.  
  303. <span class="hljs-keyword">elif</span> age == <span class="hljs-number">16</span>:
  304.     print(<span class="hljs-string">"You're 16 years old!"</span>)
  305.  
  306. </code></pre>
  307. <p class="has-line-data" data-line-start="409" data-line-end="410">This program will output:</p>
  308. <pre><code class="has-line-data" data-line-start="412" data-line-end="414">You're 16 years old!
  309. </code></pre>
  310. <p class="has-line-data" data-line-start="414" data-line-end="415">Because <code>age = 16</code>.</p>
  311. <h4 class="code-line" data-line-start=416 data-line-end=417><a id="else_416"></a><code>else</code></h4>
  312. <p class="has-line-data" data-line-start="418" data-line-end="419"><code>else</code> usually comes after the <code>if</code>/<code>elif</code>. Like the name implies, the code inside it only executes if the previous conditions are <code>False</code>.</p>
  313. <p class="has-line-data" data-line-start="420" data-line-end="421">Example:</p>
  314. <pre><code class="has-line-data" data-line-start="423" data-line-end="431" class="language-py">age = 12
  315.  
  316. if age &gt;= 18:
  317.     print("You can vote!")
  318.  
  319. else:
  320.     print("You can't vote yet!)
  321. </code></pre>
  322. <p class="has-line-data" data-line-start="432" data-line-end="433">Output:</p>
  323. <pre><code class="has-line-data" data-line-start="435" data-line-end="437">You can't vote yet!
  324. </code></pre>
  325. <p class="has-line-data" data-line-start="437" data-line-end="438">Because <code>age &lt; 18</code>.</p>
  326. <hr>
  327. <h3 class="code-line" data-line-start=441 data-line-end=442><a id="input_441"></a><code>input</code></h3>
  328. <p class="has-line-data" data-line-start="443" data-line-end="445">The <code>input</code> function is used to prompt the user. It will stop the program until the user types something and presses the return key.<br>
  329. You can assign the input to a variable to store what the user types.</p>
  330. <p class="has-line-data" data-line-start="446" data-line-end="447">For example:</p>
  331. <pre><code class="has-line-data" data-line-start="449" data-line-end="455" class="language-py">username = input(<span class="hljs-string">"Enter your username: "</span>)
  332.  
  333. <span class="hljs-comment"># then you can print the username</span>
  334.  
  335. print(<span class="hljs-string">"Welcome, "</span>+str(username)+<span class="hljs-string">"!"</span>)
  336. </code></pre>
  337. <p class="has-line-data" data-line-start="456" data-line-end="457">Output:</p>
  338. <pre><code class="has-line-data" data-line-start="459" data-line-end="462">Enter your username: Bookie0
  339. Welcome, Bookie0!
  340. </code></pre>
  341. <p class="has-line-data" data-line-start="463" data-line-end="464">By default, the <code>input</code> converts what the user writes into <code>str</code>, but you can specify it like this:</p>
  342. <pre><code class="has-line-data" data-line-start="466" data-line-end="476" class="language-py">
  343. number = int(input(<span class="hljs-string">"Enter a number: "</span>)) <span class="hljs-comment"># converts what the user says into an int</span>
  344. <span class="hljs-comment"># if the user types a str or float, then there will be an error message.</span>
  345.  
  346. <span class="hljs-comment"># doing int(input()) is useful for calculations, now we can do this:</span>
  347.  
  348. number += <span class="hljs-number">10</span>
  349. print(<span class="hljs-string">"If you add 10 to that number, you get: "</span>+ str(number)) <span class="hljs-comment"># remember to convert it to str for concatenation!</span>
  350.  
  351. </code></pre>
  352. <p class="has-line-data" data-line-start="477" data-line-end="478">Output:</p>
  353. <pre><code class="has-line-data" data-line-start="480" data-line-end="484">Enter a number: 189
  354. If you add 10 to that number, you get: 199
  355.  
  356. </code></pre>
  357. <p class="has-line-data" data-line-start="484" data-line-end="485">You can also do <code>float(input(&quot;&quot;))</code> to convert it to <code>float</code>.</p>
  358. <hr>
  359. <p class="has-line-data" data-line-start="489" data-line-end="490">Now, here is a little program summarizing a bit of what you’ve learnt so far.</p>
  360. <p class="has-line-data" data-line-start="491" data-line-end="492">Full program:</p>
  361. <pre><code class="has-line-data" data-line-start="494" data-line-end="511" class="language-py">
  362. username = input(<span class="hljs-string">"Username: "</span>)
  363. password = input(<span class="hljs-string">"Password: "</span>)
  364.  
  365. admin_username = <span class="hljs-string">"Mr.ADMIN"</span>
  366. admin_password = <span class="hljs-string">"<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1e29191edd1e1d2d2d691d3c5">[email&#160;protected]</a>"</span>
  367.  
  368. <span class="hljs-keyword">if</span> username == admin_username:
  369.     <span class="hljs-keyword">if</span> password == admin_password:
  370.         print(<span class="hljs-string">"Welcome Admin! You are the best!"</span>)
  371.  
  372.     <span class="hljs-keyword">else</span>:
  373.         print(<span class="hljs-string">"Wrong password!"</span>)
  374.  
  375. <span class="hljs-keyword">else</span>:
  376.     print(<span class="hljs-string">"Welcome, "</span>+str(username)+<span class="hljs-string">"!"</span>)
  377. </code></pre>
  378. <p class="has-line-data" data-line-start="512" data-line-end="513">Now a detailed version:</p>
  379. <pre><code class="has-line-data" data-line-start="515" data-line-end="538" class="language-py">
  380. <span class="hljs-comment"># inputs</span>
  381. username = input(<span class="hljs-string">"Username: "</span>)  <span class="hljs-comment"># asks user for the username</span>
  382. password = input(<span class="hljs-string">"Password: "</span>)  <span class="hljs-comment"># asks user for the password</span>
  383.  
  384. <span class="hljs-comment"># variables</span>
  385. admin_username = <span class="hljs-string">"Mr.ADMIN"</span>  <span class="hljs-comment"># setting the admin username </span>
  386. admin_password = <span class="hljs-string">"<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="672457572b1727141410571503">[email&#160;protected]</a>"</span>  <span class="hljs-comment"># setting the admin passsword</span>
  387.  
  388. <span class="hljs-comment"># conditionals</span>
  389. <span class="hljs-keyword">if</span> username == admin_username:  <span class="hljs-comment"># if the user entered the exact admin username</span>
  390.    
  391.     <span class="hljs-keyword">if</span> password == admin_password:  <span class="hljs-comment"># if the user enters the exact and correct admin password</span>
  392.        
  393.         print(<span class="hljs-string">"Welcome Admin! You are the best!"</span>)  <span class="hljs-comment"># a welcome message only to the admin</span>
  394.  
  395.     <span class="hljs-keyword">else</span>:  <span class="hljs-comment"># if the user gets the admin password wrong</span>
  396.         print(<span class="hljs-string">"Error! Wrong password!"</span>)  <span class="hljs-comment"># an error message appears</span>
  397.        
  398. <span class="hljs-keyword">else</span>:  <span class="hljs-comment"># if the user enters something different than the admin username</span>
  399.     print(<span class="hljs-string">"Welcome, general user "</span>+str(username)+<span class="hljs-string">"!"</span>)  <span class="hljs-comment"># a welcome message only for general users</span>
  400.  
  401. </code></pre>
  402. <p class="has-line-data" data-line-start="539" data-line-end="540">Output:</p>
  403. <p class="has-line-data" data-line-start="541" data-line-end="542">An option:</p>
  404. <pre><code class="has-line-data" data-line-start="543" data-line-end="548">Username: Mr.ADMIN
  405. Password: i dont know
  406. Error! Wrong password!
  407.  
  408. </code></pre>
  409. <p class="has-line-data" data-line-start="549" data-line-end="550">Another option:</p>
  410. <pre><code class="has-line-data" data-line-start="551" data-line-end="555">Username: Mr.ADMIN
  411. Password: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e7a4d7d7ab97a7949490d7889583">[email&#160;protected]</a>
  412. Welcome Admin! You are the best!
  413. </code></pre>
  414. <p class="has-line-data" data-line-start="556" data-line-end="557">Final option:</p>
  415. <pre><code class="has-line-data" data-line-start="558" data-line-end="562">Username: Bob
  416. Password: Chee$e
  417. Welcome, general user Bob!
  418. </code></pre>
  419. <hr>
  420. <h3 class="code-line" data-line-start=565 data-line-end=566><a id="A_bit_of_lists_565"></a>A bit of lists</h3>
  421. <p class="has-line-data" data-line-start="567" data-line-end="568"><em>A list is a collection which is ordered and changeable.</em> They are written with square braquets: <code>[]</code></p>
  422. <pre><code class="has-line-data" data-line-start="570" data-line-end="576" class="language-py">meat = [<span class="hljs-string">"beef"</span>, <span class="hljs-string">"lamb"</span>, <span class="hljs-string">"chicken"</span>]
  423.  
  424. print(meat)
  425.  
  426.  
  427. </code></pre>
  428. <p class="has-line-data" data-line-start="576" data-line-end="577">Output:</p>
  429. <pre><code class="has-line-data" data-line-start="579" data-line-end="581">['beef', 'lamb', 'chicken']
  430. </code></pre>
  431. <p class="has-line-data" data-line-start="582" data-line-end="583">You can access specific items of the list with the index number. Now here is the kinda tricky part. Indexes start at 0, meaning that the first item of the list has an index of 0, the second item has an index of 1, the third item has an index of 2, etc.</p>
  432. <pre><code class="has-line-data" data-line-start="585" data-line-end="591" class="language-py">meat = [<span class="hljs-string">"beef"</span>, <span class="hljs-string">"lamb"</span>, <span class="hljs-string">"chicken"</span>]
  433. <span class="hljs-comment"># Index:  0       1         2      etc.</span>
  434.  
  435. print(meat[<span class="hljs-number">2</span>])  <span class="hljs-comment"># will output "chicken" because it is at index 2</span>
  436.  
  437. </code></pre>
  438. <p class="has-line-data" data-line-start="592" data-line-end="593">You can also use negative indexing: index -1 means the last item, index -2 means the second to last item, etc.</p>
  439. <pre><code class="has-line-data" data-line-start="595" data-line-end="600" class="language-py">meat = [<span class="hljs-string">"beef"</span>, <span class="hljs-string">"lamb"</span>, <span class="hljs-string">"chicken"</span>]
  440. <span class="hljs-comment"># Index:  -3       -2         -1     etc.</span>
  441.  
  442. print(meat[-<span class="hljs-number">3</span>])  <span class="hljs-comment"># will output "beef" because it is at index -3</span>
  443. </code></pre>
  444. <p class="has-line-data" data-line-start="601" data-line-end="602">You can add items in the list using <code>append()</code>:</p>
  445. <pre><code class="has-line-data" data-line-start="604" data-line-end="611" class="language-py">meat = [<span class="hljs-string">"beef"</span>, <span class="hljs-string">"lamb"</span>, <span class="hljs-string">"chicken"</span>]
  446.  
  447. meat.append(<span class="hljs-string">"pork"</span>)
  448.  
  449. print(meat)
  450.  
  451. </code></pre>
  452. <p class="has-line-data" data-line-start="612" data-line-end="613">Output:</p>
  453. <pre><code class="has-line-data" data-line-start="615" data-line-end="617">['beef', 'lamb', 'chicken', 'pork']
  454. </code></pre>
  455. <p class="has-line-data" data-line-start="618" data-line-end="619">“pork” will be added at the end of the list.</p>
  456. <p class="has-line-data" data-line-start="620" data-line-end="621">For removing items in the list, use <code>remove()</code>:</p>
  457. <pre><code class="has-line-data" data-line-start="623" data-line-end="630" class="language-py">meat = [<span class="hljs-string">'beef'</span>, <span class="hljs-string">'lamb'</span>, <span class="hljs-string">'chicken'</span>]
  458.  
  459. meat.remove(<span class="hljs-string">"lamb"</span>)
  460.  
  461. print(meat)
  462.  
  463. </code></pre>
  464. <p class="has-line-data" data-line-start="631" data-line-end="632">Output:</p>
  465. <pre><code class="has-line-data" data-line-start="634" data-line-end="636">['beef', 'chicken']
  466. </code></pre>
  467. <p class="has-line-data" data-line-start="637" data-line-end="638">You can also use <code>del</code> to remove items at a specific index:</p>
  468. <pre><code class="has-line-data" data-line-start="640" data-line-end="647" class="language-py">meat = [<span class="hljs-string">'beef'</span>, <span class="hljs-string">'lamb'</span>, <span class="hljs-string">'chicken'</span>]
  469.  
  470. <span class="hljs-keyword">del</span> meat[<span class="hljs-number">0</span>]
  471.  
  472. print(meat)
  473.  
  474. </code></pre>
  475. <p class="has-line-data" data-line-start="648" data-line-end="649">Output:</p>
  476. <pre><code class="has-line-data" data-line-start="651" data-line-end="653">['lamb', 'chicken']
  477. </code></pre>
  478. <p class="has-line-data" data-line-start="654" data-line-end="655">There are also many other things you can do with lists, check out this: <a href="https://www.w3schools.com/python/python_lists.asp">https://www.w3schools.com/python/python_lists.asp</a> for more info!</p>
  479. <hr>
  480. <h3 class="code-line" data-line-start=658 data-line-end=659><a id="for_loops_658"></a><code>for</code> loops</h3>
  481. <p class="has-line-data" data-line-start="660" data-line-end="661"><em>A for loop is used for iterating over a sequence.</em> Basically, it runs a piece of code for a specific number of times.</p>
  482. <p class="has-line-data" data-line-start="662" data-line-end="663">For example:</p>
  483. <pre><code class="has-line-data" data-line-start="665" data-line-end="668" class="language-py"><span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">5</span>):
  484.     print(<span class="hljs-string">"Hello!"</span>)
  485. </code></pre>
  486. <p class="has-line-data" data-line-start="669" data-line-end="670">Output:</p>
  487. <pre><code class="has-line-data" data-line-start="672" data-line-end="678">Hello!
  488. Hello!
  489. Hello!
  490. Hello!
  491. Hello!
  492. </code></pre>
  493. <p class="has-line-data" data-line-start="679" data-line-end="680">You can also use the <code>for</code> loop to print each item in a list (using the list from above):</p>
  494. <pre><code class="has-line-data" data-line-start="682" data-line-end="687" class="language-py">meat = [<span class="hljs-string">'beef'</span>, <span class="hljs-string">'lamb'</span>, <span class="hljs-string">'chicken'</span>]
  495.  
  496. <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> meat:
  497.     print(i)
  498. </code></pre>
  499. <p class="has-line-data" data-line-start="688" data-line-end="689">Output:</p>
  500. <pre><code class="has-line-data" data-line-start="691" data-line-end="695">beef
  501. lamb
  502. chicken
  503. </code></pre>
  504. <hr>
  505. <h3 class="code-line" data-line-start=698 data-line-end=699><a id="while_loops_698"></a><code>while</code> loops</h3>
  506. <p class="has-line-data" data-line-start="700" data-line-end="701"><code>while</code> loops will run a piece of code as long as the condition is <code>True</code>.</p>
  507. <p class="has-line-data" data-line-start="702" data-line-end="703">For example:</p>
  508. <pre><code class="has-line-data" data-line-start="705" data-line-end="711" class="language-py">x = <span class="hljs-number">1</span>  <span class="hljs-comment"># sets x to 1</span>
  509.  
  510. <span class="hljs-keyword">while</span> x &lt;= <span class="hljs-number">10</span>:  <span class="hljs-comment"># will repeat 10 times</span>
  511.     print(x)  <span class="hljs-comment"># prints x</span>
  512.     x += <span class="hljs-number">1</span>  <span class="hljs-comment"># increments (adds 1) to x</span>
  513. </code></pre>
  514. <p class="has-line-data" data-line-start="712" data-line-end="713">Ouput:</p>
  515. <pre><code class="has-line-data" data-line-start="715" data-line-end="726">1
  516. 2
  517. 3
  518. 4
  519. 5
  520. 6
  521. 7
  522. 8
  523. 9
  524. 10
  525. </code></pre>
  526. <p class="has-line-data" data-line-start="727" data-line-end="728">You can also make <code>while</code> loops go on for infinity, like so (useful for spamming lol):</p>
  527. <pre><code class="has-line-data" data-line-start="730" data-line-end="734" class="language-py"><span class="hljs-keyword">while</span> <span class="hljs-keyword">True</span>:
  528.     print(<span class="hljs-string">"Theres no stopping me nowwwww!"</span>)
  529.  
  530. </code></pre>
  531. <p class="has-line-data" data-line-start="735" data-line-end="736">Output:</p>
  532. <pre><code class="has-line-data" data-line-start="738" data-line-end="746" class="language-py">Theres no stopping me nowwwww!
  533. Theres no stopping me nowwwww!
  534. Theres no stopping me nowwwww!
  535. Theres no stopping me nowwwww!
  536. Theres no stopping me nowwwww!
  537.  
  538. <span class="hljs-comment"># etc until infinity</span>
  539. </code></pre>
  540. <hr>
  541. <h3 class="code-line" data-line-start=750 data-line-end=751><a id="Functions_750"></a>Functions</h3>
  542. <p class="has-line-data" data-line-start="752" data-line-end="753">Functions are a group of code that will only execute when it is called.</p>
  543. <p class="has-line-data" data-line-start="754" data-line-end="755">For example, instead having to type a piece of code several times, you can use a function to put that piece of code inside, and then when you need to use it, you can just call it.</p>
  544. <pre><code class="has-line-data" data-line-start="757" data-line-end="764" class="language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">greeting</span><span class="hljs-params">()</span>:</span>  <span class="hljs-comment"># defining the function</span>
  545.     print(<span class="hljs-string">"Bonjour!"</span>)  <span class="hljs-comment"># everything that is indented will be executed when the function is called</span>
  546.  
  547. greeting()  <span class="hljs-comment"># calling the function</span>
  548. <span class="hljs-comment"># you can now call this function when you want, instead of always writing the same code everytime</span>
  549.  
  550. </code></pre>
  551. <p class="has-line-data" data-line-start="765" data-line-end="766">Output:</p>
  552. <pre><code class="has-line-data" data-line-start="768" data-line-end="770">Bonjour!
  553. </code></pre>
  554. <hr>
  555. <h3 class="code-line" data-line-start=773 data-line-end=774><a id="Imports_773"></a>Imports</h3>
  556. <h4 class="code-line" data-line-start=775 data-line-end=776><a id="time_775"></a><code>time</code></h4>
  557. <p class="has-line-data" data-line-start="777" data-line-end="778">You can use time in your Python programs.</p>
  558. <p class="has-line-data" data-line-start="779" data-line-end="780">How to make the program wait:</p>
  559. <pre><code class="has-line-data" data-line-start="782" data-line-end="792" class="language-py"><span class="hljs-comment"># first import time</span>
  560. <span class="hljs-keyword">import</span> time
  561.  
  562. print(<span class="hljs-string">"Hello!"</span>)
  563.  
  564. <span class="hljs-comment"># then for the program to wait </span>
  565. time.sleep(<span class="hljs-number">1</span>)  <span class="hljs-comment"># write how long you want to wait (in seconds) in the parenthesis</span>
  566.  
  567. print(<span class="hljs-string">"Bye!"</span>)
  568. </code></pre>
  569. <p class="has-line-data" data-line-start="793" data-line-end="794">Output:</p>
  570. <pre><code class="has-line-data" data-line-start="796" data-line-end="800">Hello!
  571. # program will wait 1 second
  572. Bye!
  573. </code></pre>
  574. <p class="has-line-data" data-line-start="801" data-line-end="802">You can also do this (more simpler):</p>
  575. <pre><code class="has-line-data" data-line-start="804" data-line-end="820" class="language-py"><span class="hljs-keyword">import</span> time
  576. <span class="hljs-keyword">from</span> time <span class="hljs-keyword">import</span> sleep
  577.  
  578. <span class="hljs-comment"># instead of time.sleep(), do sleep()</span>
  579. <span class="hljs-comment"># its the same</span>
  580.  
  581. print(<span class="hljs-string">"time.sleep(1)..."</span>)
  582.  
  583. time.sleep(<span class="hljs-number">1</span>)
  584.  
  585. print(<span class="hljs-string">"...is the same as..."</span>)
  586.  
  587. sleep(<span class="hljs-number">1</span>)
  588.  
  589. print(<span class="hljs-string">"sleep(1)!"</span>)
  590. </code></pre>
  591. <h4 class="code-line" data-line-start=821 data-line-end=822><a id="random_821"></a><code>random</code></h4>
  592. <p class="has-line-data" data-line-start="823" data-line-end="824">You can use the <code>random</code> module to randomly pick numbers with <code>randint()</code>:</p>
  593. <pre><code class="has-line-data" data-line-start="826" data-line-end="834" class="language-py"><span class="hljs-comment"># remember to import!</span>
  594. <span class="hljs-keyword">import</span> random
  595. <span class="hljs-keyword">from</span> random <span class="hljs-keyword">import</span> randint
  596.  
  597. rand_num = randint(<span class="hljs-number">1</span>,<span class="hljs-number">5</span>)
  598. <span class="hljs-comment"># this will output a random number between 1 and 5 inclusive!</span>
  599. <span class="hljs-comment"># this means the possible numbers are 1, 2, 3, 4, or 5</span>
  600. </code></pre>
  601. <p class="has-line-data" data-line-start="835" data-line-end="836">The reason I am precising this is because you can also use <code>randrange()</code>:</p>
  602. <pre><code class="has-line-data" data-line-start="838" data-line-end="845" class="language-py"><span class="hljs-keyword">import</span> random
  603. <span class="hljs-keyword">from</span> random <span class="hljs-keyword">import</span> randrange
  604.  
  605. rand_num = randrange(<span class="hljs-number">1</span>,<span class="hljs-number">5</span>)
  606. <span class="hljs-comment"># this will output a random number between 1 inclusive and 5 NON-inclusive (or 4 inclusive)!</span>
  607. <span class="hljs-comment"># this means the possible numbers are 1, 2, 3, or 4</span>
  608. </code></pre>
  609. <p class="has-line-data" data-line-start="846" data-line-end="847">You can also randomly pick an item from a list with <code>choice()</code>:</p>
  610. <pre><code class="has-line-data" data-line-start="849" data-line-end="860" class="language-py"><span class="hljs-keyword">import</span> random
  611. <span class="hljs-keyword">from</span> random <span class="hljs-keyword">import</span> choice
  612.  
  613. meat = [<span class="hljs-string">"beef"</span>, <span class="hljs-string">"lamb"</span>, <span class="hljs-string">"chicken"</span>]
  614. rand_meat = choice(meat)
  615.  
  616. print(rand_meat)
  617.  
  618. <span class="hljs-comment"># this will output a randomly chosen item of the list meat</span>
  619. <span class="hljs-comment"># the possible outcomes are beef, lamb, or chicken.</span>
  620. </code></pre>
  621. <h4 class="code-line" data-line-start=861 data-line-end=862><a id="math_861"></a><code>math</code></h4>
  622. <p class="has-line-data" data-line-start="863" data-line-end="864">First, you already have some functions already built in Python: <code>min()</code> and <code>max()</code>. They return the smallest and biggest value of <code>ints</code> inside the parenthesis, respectively.</p>
  623. <p class="has-line-data" data-line-start="865" data-line-end="866">For example:</p>
  624. <pre><code class="has-line-data" data-line-start="868" data-line-end="875" class="language-py">list_a = min(<span class="hljs-number">18</span>, <span class="hljs-number">12</span>, <span class="hljs-number">14</span>, <span class="hljs-number">16</span>)
  625. list_b = max(<span class="hljs-number">17</span>, <span class="hljs-number">19</span>, <span class="hljs-number">15</span>, <span class="hljs-number">13</span>)
  626.  
  627. print(list_a)  <span class="hljs-comment"># will output 12</span>
  628. print(list_b)  <span class="hljs-comment"># will output 19</span>
  629.  
  630. </code></pre>
  631. <p class="has-line-data" data-line-start="876" data-line-end="877">Now for some more modules:</p>
  632. <p class="has-line-data" data-line-start="878" data-line-end="879">You can use <code>math.floor()</code> and <code>math.ceil()</code> to round up numbers to the nearest or highest <code>int</code>.</p>
  633. <p class="has-line-data" data-line-start="880" data-line-end="881">For example:</p>
  634. <pre><code class="has-line-data" data-line-start="883" data-line-end="893" class="language-py"><span class="hljs-comment"># first import</span>
  635. <span class="hljs-keyword">import</span> math
  636.  
  637. num_a = math.floor(<span class="hljs-number">2.3</span>)
  638. num_b = math.ceil(<span class="hljs-number">2.3</span>)
  639.  
  640. print(num_a)  <span class="hljs-comment"># will output 2</span>
  641. print(num_b)  <span class="hljs-comment"># will output 3</span>
  642.  
  643. </code></pre>
  644. <p class="has-line-data" data-line-start="894" data-line-end="895">Explanation (from Andrew Sutherland’s course): So <code>math.floor()</code> will round up <code>2.3</code> to the nearest <strong>lowest</strong> <code>int</code>, which in this case is <code>2</code>. This is because, if you imagine it, the floor is on the bottom, so thats why it will round the number to the nearest lowest <code>int</code>.</p>
  645. <p class="has-line-data" data-line-start="896" data-line-end="897">Vice-versa for <code>math.ceil()</code>; it will round up <code>2.3</code> to the nearest <strong>highest</strong> <code>int</code>, which in this case is <code>3</code>. This is because <code>ceil</code> is short for ceiling (programmers like to shorten words), and the ceiling is high.</p>
  646. <p class="has-line-data" data-line-start="899" data-line-end="900">You can also get <code>pi</code> π:</p>
  647. <pre><code class="has-line-data" data-line-start="902" data-line-end="908" class="language-py"><span class="hljs-keyword">import</span> math
  648.  
  649. pi = math.pi
  650.  
  651. print(pi)  
  652. </code></pre>
  653. <p class="has-line-data" data-line-start="909" data-line-end="910">Output:</p>
  654. <pre><code class="has-line-data" data-line-start="912" data-line-end="914">3.141592653589793
  655. </code></pre>
  656. <p class="has-line-data" data-line-start="915" data-line-end="916">Here is the full list of all the things you can do with <code>math</code>: <a href="https://www.w3schools.com/python/module_math.asp">https://www.w3schools.com/python/module_math.asp</a></p>
  657. <hr>
  658. <h3 class="code-line" data-line-start=919 data-line-end=920><a id="Small_Programs_You_Can_Use_919"></a>Small Programs You Can Use</h3>
  659. <h4 class="code-line" data-line-start=921 data-line-end=922><a id="Countdown_Program_921"></a>Countdown Program:</h4>
  660. <pre><code class="has-line-data" data-line-start="924" data-line-end="942" class="language-py"><span class="hljs-comment"># imports</span>
  661. <span class="hljs-keyword">import</span> time
  662. <span class="hljs-keyword">from</span> time <span class="hljs-keyword">import</span> sleep
  663.  
  664. <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">countdown</span><span class="hljs-params">()</span>:</span>  <span class="hljs-comment"># making a function for the countdown (so you can use it several times)</span>
  665.        
  666.     count = int(input(<span class="hljs-string">"Countdown from what? "</span>))  <span class="hljs-comment"># asks user how long the countdown</span>
  667.    
  668.     <span class="hljs-keyword">while</span> count &gt;= <span class="hljs-number">0</span>:  <span class="hljs-comment"># will repeat until count = 0</span>
  669.         print(count)  <span class="hljs-comment"># prints where the countdown is at</span>
  670.         count -= <span class="hljs-number">1</span>  <span class="hljs-comment"># subtracts 1 from count</span>
  671.         sleep(<span class="hljs-number">1</span>)  <span class="hljs-comment"># program waits 1 second before continuing</span>
  672.  
  673.     print(<span class="hljs-string">"End of countdown!"</span>)  <span class="hljs-comment"># message after the countdown</span>
  674.  
  675.  
  676. countdown()  <span class="hljs-comment"># remember to call the function or nothing will happen</span>
  677. </code></pre>
  678. <p class="has-line-data" data-line-start="943" data-line-end="944">Output:</p>
  679. <pre><code class="has-line-data" data-line-start="946" data-line-end="955">Countdown from what? 5
  680. 5
  681. 4
  682. 3
  683. 2
  684. 1
  685. 0
  686. End of countdown!
  687. </code></pre>
  688. <h4 class="code-line" data-line-start=957 data-line-end=958><a id="Simple_Calculator_957"></a>Simple Calculator</h4>
  689. <p class="has-line-data" data-line-start="959" data-line-end="960">First way using <code>eval()</code></p>
  690. <pre><code class="has-line-data" data-line-start="961" data-line-end="968" class="language-py">calculation = input(<span class="hljs-string">"Type your calculation: "</span>)  <span class="hljs-comment"># asks the user for a calculation.</span>
  691.  
  692. print(<span class="hljs-string">"Answer to "</span> + str(calculation) + <span class="hljs-string">": "</span> + str(eval(calculation)))
  693. <span class="hljs-comment"># eval basically does the operation, like on a normal calculator. </span>
  694.  
  695. <span class="hljs-comment"># however, if you write something different than a valid operaion, there will be an error.</span>
  696. </code></pre>
  697. <p class="has-line-data" data-line-start="969" data-line-end="970">Or another way, using several conditionals, and you can only do “something” + “something” (but with the operators):</p>
  698. <pre><code class="has-line-data" data-line-start="972" data-line-end="1010" class="language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">calculator</span><span class="hljs-params">()</span>:</span>  <span class="hljs-comment"># making a function to hold all the code for calculator</span>
  699.    
  700.     <span class="hljs-keyword">while</span> <span class="hljs-keyword">True</span>:  <span class="hljs-comment"># loops forever so you can make several calculations without having to press run again</span>
  701.        
  702.         first_num = int(input(<span class="hljs-string">"Enter 1st number: "</span>))  <span class="hljs-comment"># asks user for 1st number </span>
  703.  
  704.         second_num = int(input(<span class="hljs-string">"Enter 2nd number: "</span>))  <span class="hljs-comment"># asks user for 2nd number</span>
  705.         operator = input(<span class="hljs-string">"Select operator: +  -  *  /  **  //  "</span>)  <span class="hljs-comment"># asks user for operator</span>
  706.  
  707.         <span class="hljs-keyword">if</span> operator == <span class="hljs-string">"+"</span>:  <span class="hljs-comment"># addition</span>
  708.             answer = first_num + second_num
  709.             print(answer)
  710.  
  711.         <span class="hljs-keyword">elif</span> operator == <span class="hljs-string">"-"</span>:  <span class="hljs-comment"># subtraction</span>
  712.             answer = first_num - second_num
  713.             print(answer)
  714.  
  715.         <span class="hljs-keyword">elif</span> operator == <span class="hljs-string">"*"</span>:  <span class="hljs-comment"># multiplication</span>
  716.             answer = first_num * second_num
  717.             print(answer)
  718.  
  719.         <span class="hljs-keyword">elif</span> operator == <span class="hljs-string">"/"</span>:  <span class="hljs-comment"># division</span>
  720.             answer = first_num / second_num
  721.             print(answer)
  722.  
  723.         <span class="hljs-keyword">elif</span> operator == <span class="hljs-string">"**"</span>:  <span class="hljs-comment"># exponentiation ("to the power of")</span>
  724.             answer = first_num ** second_num
  725.             print(answer)
  726.  
  727.         <span class="hljs-keyword">elif</span> operator == <span class="hljs-string">"//"</span>:  <span class="hljs-comment"># floor division</span>
  728.             answer = first_num // second_num
  729.             print(answer)
  730.    
  731.         <span class="hljs-keyword">else</span>:  <span class="hljs-comment"># if user selects an invalid operator</span>
  732.             print(<span class="hljs-string">"Invalid!"</span>)
  733.  
  734. calculator()  <span class="hljs-comment"># calls the function </span>
  735. </code></pre>
  736. <p class="has-line-data" data-line-start="1010" data-line-end="1011">But obviously that is pretty long and full of many <code>if</code>/<code>elif</code>.</p>
  737. <hr>
  738. <p class="has-line-data" data-line-start="1014" data-line-end="1015">Some functions that are useful:</p>
  739. <p class="has-line-data" data-line-start="1016" data-line-end="1017">“Press ENTER to continue” Prompt:</p>
  740. <pre><code class="has-line-data" data-line-start="1019" data-line-end="1025" class="language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">enter</span><span class="hljs-params">()</span>:</span>
  741.     input(<span class="hljs-string">"Press ENTER to continue! "</span>)
  742.  
  743. <span class="hljs-comment"># this is useful for text based adventure games; when they finish reading some text, they can press ENTER and the next part will follow.</span>
  744. <span class="hljs-comment"># just call the function where you need it</span>
  745. </code></pre>
  746. <p class="has-line-data" data-line-start="1026" data-line-end="1027">Spacing in between lines function:</p>
  747. <pre><code class="has-line-data" data-line-start="1029" data-line-end="1035" class="language-py"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">space</span><span class="hljs-params">()</span>:</span>
  748.     print()
  749.     print()
  750.  
  751. <span class="hljs-comment"># same as pressing ENTER twice, this is useful to make your text a bit more airy, makes it less compact and block like.</span>
  752. </code></pre>
  753. <p class="has-line-data" data-line-start="1036" data-line-end="1037">Slowprint:</p>
  754. <pre><code class="has-line-data" data-line-start="1039" data-line-end="1056" class="language-py"><span class="hljs-comment"># first imports:</span>
  755. <span class="hljs-keyword">import</span> time, sys
  756. <span class="hljs-keyword">from</span> time <span class="hljs-keyword">import</span> sleep
  757.  
  758. <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">sp</span><span class="hljs-params">(str)</span>:</span>
  759.   <span class="hljs-keyword">for</span> letter <span class="hljs-keyword">in</span> str:
  760.     sys.stdout.write(letter)
  761.     sys.stdout.flush()
  762.     time.sleep(<span class="hljs-number">0.06</span>)
  763.   print()
  764.  
  765. <span class="hljs-comment"># to use it:</span>
  766.  
  767. sp(<span class="hljs-string">"Hello there!"</span>)
  768.  
  769. <span class="hljs-comment"># this will output Hello There! one letter every 0.06 seconds, making it look like the typewriter effect.</span>
  770. </code></pre>
  771. <hr>
  772. <h3 class="code-line" data-line-start=1059 data-line-end=1060><a id="ANSI_Escape_Codes_1059"></a><code>ANSI</code> Escape Codes</h3>
  773. <p class="has-line-data" data-line-start="1061" data-line-end="1062"><code>ANSI</code> escape codes are for controlling text in the console. You can use it to make what is in the output nicer for the user.</p>
  774. <p class="has-line-data" data-line-start="1063" data-line-end="1064">For example, you can use <code>\n</code> for a new line:</p>
  775. <pre><code class="has-line-data" data-line-start="1066" data-line-end="1068" class="language-py">name = input(<span class="hljs-string">"Enter your name\n&gt;&gt;&gt; "</span>)
  776. </code></pre>
  777. <p class="has-line-data" data-line-start="1069" data-line-end="1070">Output:</p>
  778. <pre><code class="has-line-data" data-line-start="1072" data-line-end="1075">Enter your name
  779. &gt;&gt;&gt;
  780. </code></pre>
  781. <p class="has-line-data" data-line-start="1076" data-line-end="1077">This makes it look nice, you can start typing on the little prompt arrows <code>&gt;&gt;&gt;</code>.</p>
  782. <p class="has-line-data" data-line-start="1078" data-line-end="1079">You can also use <code>\t</code> for tab:</p>
  783. <pre><code class="has-line-data" data-line-start="1081" data-line-end="1083" class="language-py">print(<span class="hljs-string">"Hello\tdude"</span>)
  784. </code></pre>
  785. <p class="has-line-data" data-line-start="1084" data-line-end="1085">Output:</p>
  786. <pre><code class="has-line-data" data-line-start="1087" data-line-end="1089">Hello   dude
  787. </code></pre>
  788. <p class="has-line-data" data-line-start="1090" data-line-end="1091"><code>\v</code> for vertical tab:</p>
  789. <pre><code class="has-line-data" data-line-start="1093" data-line-end="1095" class="language-py">print(<span class="hljs-string">"Hello\vdude"</span>)
  790. </code></pre>
  791. <p class="has-line-data" data-line-start="1096" data-line-end="1097">Output:</p>
  792. <pre><code class="has-line-data" data-line-start="1099" data-line-end="1102">Hello
  793.      dude
  794. </code></pre>
  795. <p class="has-line-data" data-line-start="1103" data-line-end="1104">You can also have colors in python:</p>
  796. <pre><code class="has-line-data" data-line-start="1106" data-line-end="1133" class="language-py"># the ANSI codes are stored in variables, making them easier to use
  797. black = "\033[0;30m"
  798. red = "\033[0;31m"
  799. green = "\033[0;32m"
  800. yellow = "\033[0;33m"
  801. blue = "\033[0;34m"
  802. magenta = "\033[0;35m"
  803. cyan = "\033[0;36m"
  804. white = "\033[0;37m"
  805. bright_black = "\033[0;90m"
  806. bright_red = "\033[0;91m"
  807. bright_green = "\033[0;92m"
  808. bright_yellow = "\033[0;93m"
  809. bright_blue = "\033[0;94m"
  810. bright_magenta = "\033[0;95m"
  811. bright_cyan = "\033[0;96m"
  812. bright_white = "\033[0;97m"
  813.  
  814.  
  815. # to use them:
  816. print(red+"Hello")
  817.  
  818. # you can also have multiple colors:
  819. print(red+"Hel"+bright_blue+"lo)
  820.  
  821. # and you can even use it with the slowPrint I mentioned earlier!
  822. </code></pre>
  823. <p class="has-line-data" data-line-start="1134" data-line-end="1135">Output:</p>
  824. <img src="https://i.ibb.co/sF2Gbx6/ANSI-output-1.png" alt="output -1" width="500" height="333">
  825. <p class="has-line-data" data-line-start="1138" data-line-end="1139">And you can have underline and italic:</p>
  826. <pre><code class="has-line-data" data-line-start="1141" data-line-end="1151" class="language-py">reset = <span class="hljs-string">"\u001b[0m"</span>
  827. underline = <span class="hljs-string">"\033[4m"</span>
  828. italic = <span class="hljs-string">"\033[3m"</span>
  829.  
  830. <span class="hljs-comment"># to use it:</span>
  831.  
  832. print(italic+<span class="hljs-string">"Hello "</span>+reset+<span class="hljs-string">" there "</span>+underline+<span class="hljs-string">"Mister!"</span>)
  833. <span class="hljs-comment"># the reset is for taking away all changes you've made to the text</span>
  834. <span class="hljs-comment"># it makes the text back to the default color and text decorations.</span>
  835. </code></pre>
  836. <p class="has-line-data" data-line-start="1152" data-line-end="1153">Output:</p>
  837. <img src="https://i.ibb.co/R20Wt6K/ANSI-output-2.png" alt="output -1" width="500" height="333">
  838. <hr>
  839. <h3 class="code-line" data-line-start=1159 data-line-end=1160><a id="Links_Sources_and_Good_Websites_1159"></a>Links: Sources and Good Websites</h3>
  840. <h4 class="code-line" data-line-start=1161 data-line-end=1162><a id="Sources_1161"></a>Sources:</h4>
  841. <p class="has-line-data" data-line-start="1163" data-line-end="1164">Always good to use a bit of help from here and there!</p>
  842. <ul>
  843. <li class="has-line-data" data-line-start="1165" data-line-end="1166">W3 Schools: <a href="https://www.w3schools.com/python/default.asp">https://www.w3schools.com/python/default.asp</a></li>
  844. <li class="has-line-data" data-line-start="1166" data-line-end="1167">Wikipedia: <a href="https://en.wikipedia.org/wiki/Guido_van_Rossum">https://en.wikipedia.org/wiki/Guido_van_Rossum</a></li>
  845. <li class="has-line-data" data-line-start="1167" data-line-end="1169">Wikipedia: <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">https://en.wikipedia.org/wiki/ANSI_escape_code</a></li>
  846. </ul>
  847. <h4 class="code-line" data-line-start=1169 data-line-end=1170><a id="Good_Websites_you_can_use_1169"></a>Good Websites you can use:</h4>
  848. <ul>
  849. <li class="has-line-data" data-line-start="1171" data-line-end="1172">Official website: <a href="https://www.python.org/">https://www.python.org/</a></li>
  850. <li class="has-line-data" data-line-start="1172" data-line-end="1173">W3 Schools: <a href="https://www.w3schools.com/python/default.asp">https://www.w3schools.com/python/default.asp</a></li>
  851. <li class="has-line-data" data-line-start="1173" data-line-end="1174"><a href="https://www.tutorialspoint.com/python/index.htm">https://www.tutorialspoint.com/python/index.htm</a></li>
  852. <li class="has-line-data" data-line-start="1174" data-line-end="1176"><a href="https://realpython.com/">https://realpython.com/</a></li>
  853. </ul>
  854. <p class="has-line-data" data-line-start="1176" data-line-end="1177">Interactive:</p>
  855. <ul>
  856. <li class="has-line-data" data-line-start="1177" data-line-end="1178"><a href="https://www.learnpython.org/">https://www.learnpython.org/</a></li>
  857. <li class="has-line-data" data-line-start="1178" data-line-end="1180"><a href="https://www.codecademy.com/learn/learn-python">https://www.codecademy.com/learn/learn-python</a></li>
  858. </ul>
  859. <h3 class="code-line" data-line-start=1180 data-line-end=1181><a id="Goodbye_World_End_1180"></a><code>Goodbye World!</code>: End</h3>
  860. <p class="has-line-data" data-line-start="1182" data-line-end="1183">Well, I guess this is the end. I hope y’all have learnt something new/interesting! If you have any questions, please comment and I will try my best to answer them.</p>
  861. <h1 class="code-line" data-line-start=1184 data-line-end=1185><a id="Have_a_super_day_everyone_1184"></a>Have a super day everyone!</h1>
  862. <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script></body></html>
  863.  
  864.  

Replies to Re: Re: python rss

Title Name Language When
Re: Re: Re: python Blush Motmot html5 1 Year ago.