天天看点

python基础语法

python编程基础概念:

程序: 一组能让计算机识别和执行的指令; 

电子计算机:能够执行程序的机器;

冯诺依曼体系架构:

    CPU由运算器和控制器组成;

    运算器:完成各种算术运算,逻辑运算,数据传输等数据加工处理;

    控制器:控制程序的执行;

    存储器:记忆程序和数据,如内存;

    输入设备:将数据或程序输入计算机中,如键盘鼠标等; 

    输出设备:将数据或程序的处理结果展示给用户,如显示器打印机等;

    CPU中还有寄存器和多级缓存; 

编程基础: 

    计算机语言:人与计算机之间交互的语言;

    机器语言:机器指令的集合,机器指令是一定位数组成二进制的0和1的序列; 

    汇编语言:用一些助记符号代替机器指令,成为汇编语言;

语言分类: 

    低级语言:面向机器的语言,包括机器语言、汇编语言;

    高级语言:接近自然语言和数学语言的计算机语言;

高级语言的发展: 

    非结构化语言 —> 结构化语言 —> 面向对象语言 —> 函数式语言 

程序Program: 

    程序 = 数据结构 + 算法 

    数据是一切程序的核心;

    数据结构是数据在计算机中的类型和组织方式; 

    算法是处理数据的方式,算法有优劣之分;

基础语法:

注释:

<code>#标注的文本  </code>

<code>“”“ ”“” 或 ‘’‘ ‘’’包裹的文本 </code>

数字:

<code>整数、浮点数</code>

字符串:

<code>使用 ' 或 " 引用的字符的序列;</code>

<code>使用 </code><code>''</code><code>' 或 </code><code>""</code><code>" 可以跨行; </code>

<code>字符串前面加上 r 或 R 前缀,表示该字符不做特殊的处理;</code>

转义序列: 

<code>\\  \t  \r  \n  \</code><code>'  \''</code>  

<code>前缀 r, 把里面的所有字符当普通字符对待;</code>

缩进: 

<code>采用缩进的方式表示层次关系; </code>

<code>约定使用4个空格缩进;</code>

续行: 

<code>在行尾使用"\"; </code>

<code>如果使用括号,认为括号内是一个整体,内部跨行不用"\";</code>

常量:  

<code>一旦赋值就不能改变值的标识符; </code>

<code>python中无法定义常量;</code>

变量: 

<code>赋值后,可以改变值的标识符;</code>

python的语言类型: 

<code>python是动态强类型语言; </code>

<code>动态编译语言:</code>

<code>不用事先声明类型,随时可赋值为其他类型; </code>

<code>编程时不知道是什么类型,很难判断; </code>

<code>强类型语言: </code>

<code>    </code><code>不同类型之间,必须先强制类型转换为同一类型;</code>

运算符: 

<code>算数运算符:自然除 </code><code>'/'</code> <code>结果是浮点数,整除 </code><code>'//'</code> <code>;注:2.x中</code><code>'/'</code> <code>和 </code><code>'//'</code> <code>都是整除; </code>

<code>位运算符:&amp;,|, ~,^,&lt;&lt;,&gt;&gt;(按位与,按位或,安位取反,按位异或,左移,右移)</code>

练习题:

练习1: 

给定一个不超过五位的正整数,判断其有几位并打印各个位的数。

<code>val </code><code>=</code> <code>input</code><code>(</code><code>'&gt;&gt;&gt;'</code><code>)</code>

<code>val </code><code>=</code> <code>int</code><code>(val)</code>

<code>if</code> <code>val &gt;</code><code>=</code> <code>1000</code><code>: </code><code>#fold</code>

<code>    </code><code>if</code> <code>val&gt;</code><code>=</code><code>10000</code><code>:</code>

<code>        </code><code>n </code><code>=</code> <code>5</code>

<code>        </code><code>print</code><code>(n)</code>

<code>    </code><code>else</code><code>:</code>

<code>        </code><code>n </code><code>=</code> <code>4</code>

<code>else</code><code>:</code>

<code>    </code><code>if</code> <code>val&gt;</code><code>=</code><code>100</code><code>:</code>

<code>        </code><code>n </code><code>=</code> <code>3</code>

<code>    </code><code>elif</code> <code>val &gt;</code><code>=</code> <code>10</code><code>:</code>

<code>        </code><code>n </code><code>=</code> <code>2</code>

<code>        </code><code>n </code><code>=</code> <code>1</code>

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(n, </code><code>0</code><code>, </code><code>-</code><code>1</code><code>):</code>

<code>    </code><code>pN </code><code>=</code> <code>val </code><code>/</code><code>/</code> <code>(</code><code>10</code> <code>*</code><code>*</code> <code>(i </code><code>-</code> <code>1</code><code>))</code>

<code>    </code><code>val </code><code>=</code> <code>val </code><code>%</code> <code>(</code><code>10</code> <code>*</code><code>*</code> <code>(i </code><code>-</code> <code>1</code><code>)) </code>

<code>    </code><code>print</code><code>(pN, end </code><code>=</code> <code>' '</code><code>)</code>

练习2: 

求100以内所有奇数的和(2500)。 

<code>sum</code> <code>=</code> <code>0</code>

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>101</code><code>):</code>

<code>    </code><code>if</code> <code>i </code><code>%</code> <code>2</code> <code>!</code><code>=</code> <code>0</code><code>:</code>

<code>        </code><code>sum</code> <code>+</code><code>=</code> <code>i</code>

<code>print</code><code>(</code><code>sum</code><code>)</code>

练习3: 

求1-5的阶乘之和。 

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>6</code><code>):</code>

<code>    </code><code>factorial </code><code>=</code> <code>1</code>

<code>    </code><code>for</code> <code>j </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, i</code><code>+</code><code>1</code><code>):</code>

<code>        </code><code>factorial </code><code>*</code><code>=</code> <code>j</code>

<code>    </code><code>sum</code> <code>+</code><code>=</code> <code>factorial</code>

练习4:

打印九九乘法表 

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>10</code><code>):</code>

<code>        </code><code>print</code><code>(</code><code>'{1} x {0} = {2:&lt;2}'</code><code>.</code><code>format</code><code>(i, j, i</code><code>*</code><code>j), end</code><code>=</code><code>' '</code><code>) </code>

<code>        </code><code># print('{1} x {0} = {2}'.format(i, j, i*j), '\t', end=' ')  # '\t'制表符.</code>

<code>    </code><code>print</code><code>()</code>

<code># {2:&lt;2}对应i*j, :&lt;2冒号是分隔符号, &lt;表示左对齐,2表示宽度.    </code>

<code>1</code> <code>x </code><code>1</code> <code>=</code> <code>1</code>

<code>1</code> <code>x </code><code>2</code> <code>=</code> <code>2</code>  <code>2</code> <code>x </code><code>2</code> <code>=</code> <code>4</code>

<code>1</code> <code>x </code><code>3</code> <code>=</code> <code>3</code>  <code>2</code> <code>x </code><code>3</code> <code>=</code> <code>6</code>  <code>3</code> <code>x </code><code>3</code> <code>=</code> <code>9</code>

<code>1</code> <code>x </code><code>4</code> <code>=</code> <code>4</code>  <code>2</code> <code>x </code><code>4</code> <code>=</code> <code>8</code>  <code>3</code> <code>x </code><code>4</code> <code>=</code> <code>12</code> <code>4</code> <code>x </code><code>4</code> <code>=</code> <code>16</code>

<code>1</code> <code>x </code><code>5</code> <code>=</code> <code>5</code>  <code>2</code> <code>x </code><code>5</code> <code>=</code> <code>10</code> <code>3</code> <code>x </code><code>5</code> <code>=</code> <code>15</code> <code>4</code> <code>x </code><code>5</code> <code>=</code> <code>20</code> <code>5</code> <code>x </code><code>5</code> <code>=</code> <code>25</code>

<code>1</code> <code>x </code><code>6</code> <code>=</code> <code>6</code>  <code>2</code> <code>x </code><code>6</code> <code>=</code> <code>12</code> <code>3</code> <code>x </code><code>6</code> <code>=</code> <code>18</code> <code>4</code> <code>x </code><code>6</code> <code>=</code> <code>24</code> <code>5</code> <code>x </code><code>6</code> <code>=</code> <code>30</code> <code>6</code> <code>x </code><code>6</code> <code>=</code> <code>36</code>

<code>1</code> <code>x </code><code>7</code> <code>=</code> <code>7</code>  <code>2</code> <code>x </code><code>7</code> <code>=</code> <code>14</code> <code>3</code> <code>x </code><code>7</code> <code>=</code> <code>21</code> <code>4</code> <code>x </code><code>7</code> <code>=</code> <code>28</code> <code>5</code> <code>x </code><code>7</code> <code>=</code> <code>35</code> <code>6</code> <code>x </code><code>7</code> <code>=</code> <code>42</code> <code>7</code> <code>x </code><code>7</code> <code>=</code> <code>49</code>

<code>1</code> <code>x </code><code>8</code> <code>=</code> <code>8</code>  <code>2</code> <code>x </code><code>8</code> <code>=</code> <code>16</code> <code>3</code> <code>x </code><code>8</code> <code>=</code> <code>24</code> <code>4</code> <code>x </code><code>8</code> <code>=</code> <code>32</code> <code>5</code> <code>x </code><code>8</code> <code>=</code> <code>40</code> <code>6</code> <code>x </code><code>8</code> <code>=</code> <code>48</code> <code>7</code> <code>x </code><code>8</code> <code>=</code> <code>56</code> <code>8</code> <code>x </code><code>8</code> <code>=</code> <code>64</code>

<code>1</code> <code>x </code><code>9</code> <code>=</code> <code>9</code>  <code>2</code> <code>x </code><code>9</code> <code>=</code> <code>18</code> <code>3</code> <code>x </code><code>9</code> <code>=</code> <code>27</code> <code>4</code> <code>x </code><code>9</code> <code>=</code> <code>36</code> <code>5</code> <code>x </code><code>9</code> <code>=</code> <code>45</code> <code>6</code> <code>x </code><code>9</code> <code>=</code> <code>54</code> <code>7</code> <code>x </code><code>9</code> <code>=</code> <code>63</code> <code>8</code> <code>x </code><code>9</code> <code>=</code> <code>72</code> <code>9</code> <code>x </code><code>9</code> <code>=</code> <code>81</code>

扩展: 

方法1:

<code>    </code><code>for</code> <code>j </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>10</code><code>):</code>

<code>        </code><code>if</code> <code>i &gt; j:</code>

<code>            </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>13</code><code>, end </code><code>=</code> <code>'')</code>

<code>        </code><code>else</code><code>:</code>

<code>            </code><code>print</code><code>(</code><code>'{0} x {1} = {2:&lt;4}'</code><code>.</code><code>format</code><code>(i, j, i</code><code>*</code><code>j), end</code><code>=</code><code>' '</code><code>)</code>

<code>    </code> 

<code>1</code> <code>x </code><code>1</code> <code>=</code> <code>1</code>    <code>1</code> <code>x </code><code>2</code> <code>=</code> <code>2</code>    <code>1</code> <code>x </code><code>3</code> <code>=</code> <code>3</code>    <code>1</code> <code>x </code><code>4</code> <code>=</code> <code>4</code>    <code>1</code> <code>x </code><code>5</code> <code>=</code> <code>5</code>    <code>1</code> <code>x </code><code>6</code> <code>=</code> <code>6</code>    <code>1</code> <code>x </code><code>7</code> <code>=</code> <code>7</code>    <code>1</code> <code>x </code><code>8</code> <code>=</code> <code>8</code>    <code>1</code> <code>x </code><code>9</code> <code>=</code> <code>9</code>

<code>             </code><code>2</code> <code>x </code><code>2</code> <code>=</code> <code>4</code>    <code>2</code> <code>x </code><code>3</code> <code>=</code> <code>6</code>    <code>2</code> <code>x </code><code>4</code> <code>=</code> <code>8</code>    <code>2</code> <code>x </code><code>5</code> <code>=</code> <code>10</code>   <code>2</code> <code>x </code><code>6</code> <code>=</code> <code>12</code>   <code>2</code> <code>x </code><code>7</code> <code>=</code> <code>14</code>   <code>2</code> <code>x </code><code>8</code> <code>=</code> <code>16</code>   <code>2</code> <code>x </code><code>9</code> <code>=</code> <code>18</code>

<code>                          </code><code>3</code> <code>x </code><code>3</code> <code>=</code> <code>9</code>    <code>3</code> <code>x </code><code>4</code> <code>=</code> <code>12</code>   <code>3</code> <code>x </code><code>5</code> <code>=</code> <code>15</code>   <code>3</code> <code>x </code><code>6</code> <code>=</code> <code>18</code>   <code>3</code> <code>x </code><code>7</code> <code>=</code> <code>21</code>   <code>3</code> <code>x </code><code>8</code> <code>=</code> <code>24</code>   <code>3</code> <code>x </code><code>9</code> <code>=</code> <code>27</code>

<code>                                       </code><code>4</code> <code>x </code><code>4</code> <code>=</code> <code>16</code>   <code>4</code> <code>x </code><code>5</code> <code>=</code> <code>20</code>   <code>4</code> <code>x </code><code>6</code> <code>=</code> <code>24</code>   <code>4</code> <code>x </code><code>7</code> <code>=</code> <code>28</code>   <code>4</code> <code>x </code><code>8</code> <code>=</code> <code>32</code>   <code>4</code> <code>x </code><code>9</code> <code>=</code> <code>36</code>

<code>                                                    </code><code>5</code> <code>x </code><code>5</code> <code>=</code> <code>25</code>   <code>5</code> <code>x </code><code>6</code> <code>=</code> <code>30</code>   <code>5</code> <code>x </code><code>7</code> <code>=</code> <code>35</code>   <code>5</code> <code>x </code><code>8</code> <code>=</code> <code>40</code>   <code>5</code> <code>x </code><code>9</code> <code>=</code> <code>45</code>

<code>                                                                 </code><code>6</code> <code>x </code><code>6</code> <code>=</code> <code>36</code>   <code>6</code> <code>x </code><code>7</code> <code>=</code> <code>42</code>   <code>6</code> <code>x </code><code>8</code> <code>=</code> <code>48</code>   <code>6</code> <code>x </code><code>9</code> <code>=</code> <code>54</code>

<code>                                                                              </code><code>7</code> <code>x </code><code>7</code> <code>=</code> <code>49</code>   <code>7</code> <code>x </code><code>8</code> <code>=</code> <code>56</code>   <code>7</code> <code>x </code><code>9</code> <code>=</code> <code>63</code>  

<code>                                                                                           </code><code>8</code> <code>x </code><code>8</code> <code>=</code> <code>64</code>   <code>8</code> <code>x </code><code>9</code> <code>=</code> <code>72</code> 

<code>                                                                                                        </code><code>9</code> <code>x </code><code>9</code> <code>=</code> <code>81</code>                                                                                    <code>8</code> <code>x </code><code>8</code> <code>=</code> <code>64</code>   <code>8</code> <code>x </code><code>9</code> <code>=</code> <code>72</code>                                                                                                 <code>9</code> <code>x </code><code>9</code> <code>=</code> <code>81</code>

方法2: 

<code>    </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>13</code> <code>*</code> <code>(i</code><code>-</code><code>1</code><code>), end </code><code>=</code> <code>'')</code>

<code>    </code><code>for</code> <code>j </code><code>in</code> <code>range</code><code>(i, </code><code>10</code><code>):</code>

<code>        </code><code>print</code><code>(</code><code>'{} x {} = {:&lt;4}'</code><code>.</code><code>format</code><code>(i, j, i</code><code>*</code><code>j), end</code><code>=</code><code>' '</code><code>)</code>

<code>                                                                                                        </code><code>9</code> <code>x </code><code>9</code> <code>=</code> <code>81</code>                                                                                                       <code>9</code> <code>x </code><code>9</code> <code>=</code> <code>81</code>

练习5: 

打印100以内的斐波那契数列。 

<code>n1 </code><code>=</code> <code>0</code>

<code>n2 </code><code>=</code> <code>1</code>

<code>for</code> <code>_ </code><code>in</code> <code>range</code><code>(</code><code>100</code><code>):</code>

<code>    </code><code>n1, n2 </code><code>=</code> <code>n2, n1</code><code>+</code><code>n2</code>

<code>    </code><code>if</code> <code>n1 &lt; </code><code>100</code><code>:</code>

<code>        </code><code>print</code><code>(n1)</code>

练习6: 

求斐波那契数列第101项。 

<code>count </code><code>=</code> <code>0</code>

<code>while</code> <code>True</code><code>:</code>

<code>    </code><code>count </code><code>+</code><code>=</code> <code>1</code>

<code>    </code><code>if</code> <code>count </code><code>=</code><code>=</code> <code>101</code><code>:</code>

<code>        </code><code>break</code>

练习7: 

打印菱形。 

<code>num </code><code>=</code> <code>8</code>

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>22</code><code>, </code><code>2</code><code>):</code>

<code>    </code><code>if</code> <code>i &lt; </code><code>12</code><code>:</code>

<code>        </code><code>num </code><code>-</code><code>=</code> <code>1</code>

<code>        </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>num </code><code>+</code> <code>'*'</code> <code>*</code> <code>i)</code>

<code>        </code><code>num </code><code>+</code><code>=</code> <code>1</code>

<code>        </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>num </code><code>+</code> <code>'*'</code> <code>*</code> <code>(</code><code>22</code><code>-</code><code>i))</code>

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>-</code><code>3</code><code>, </code><code>4</code><code>):</code>

<code>    </code><code>if</code> <code>i &lt; </code><code>0</code><code>:</code>

<code>        </code><code>prespace </code><code>=</code> <code>-</code><code>i</code>

<code>        </code><code>prespace </code><code>=</code> <code>i</code>

<code>    </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>prespace </code><code>+</code> <code>'*'</code> <code>*</code> <code>(</code><code>7</code> <code>-</code> <code>prespace </code><code>*</code> <code>2</code><code>))</code>

练习8: 

打印如下形状: 

<code>        </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>(</code><code>-</code><code>i) </code><code>+</code> <code>'*'</code> <code>*</code> <code>(</code><code>4</code><code>+</code><code>i))</code>

<code>    </code><code>elif</code> <code>i </code><code>=</code><code>=</code> <code>0</code><code>:</code>

<code>        </code><code>print</code><code>(</code><code>'*'</code> <code>*</code> <code>7</code><code>)</code>

<code>        </code><code>print</code><code>(</code><code>' '</code> <code>*</code> <code>3</code> <code>+</code> <code>'*'</code> <code>*</code> <code>(</code><code>4</code><code>-</code><code>i))</code>

<code>        </code> 

<code>   </code><code>*</code>

<code>  </code><code>*</code><code>*</code>

<code> </code><code>*</code><code>*</code><code>*</code>

<code>*</code><code>*</code><code>*</code><code>*</code><code>*</code><code>*</code><code>*</code>

<code>   </code><code>*</code><code>*</code><code>*</code>

<code>   </code><code>*</code><code>*</code>

完!

本文转自 羽丰1995 51CTO博客,原文链接:http://blog.51cto.com/13683137989/1965841