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>位运算符:&,|, ~,^,<<,>>(按位与,按位或,安位取反,按位异或,左移,右移)</code>
练习题:
练习1:
给定一个不超过五位的正整数,判断其有几位并打印各个位的数。
<code>val </code><code>=</code> <code>input</code><code>(</code><code>'>>>'</code><code>)</code>
<code>val </code><code>=</code> <code>int</code><code>(val)</code>
<code>if</code> <code>val ></code><code>=</code> <code>1000</code><code>: </code><code>#fold</code>
<code> </code><code>if</code> <code>val></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></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 ></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:<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:<2}对应i*j, :<2冒号是分隔符号, <表示左对齐,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 > 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:<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 {} = {:<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 < </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 < </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 < </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