mirror of
https://github.com/Estom/notes.git
synced 2026-02-04 11:04:21 +08:00
修改
This commit is contained in:
26
Python/python2/1 基础知识.md
Normal file
26
Python/python2/1 基础知识.md
Normal file
@@ -0,0 +1,26 @@
|
||||
## 程序设计的基础知识
|
||||
|
||||
* 程序的定义:为了完成某项任务解决某个问题,计算机及执行的一定的指令
|
||||
|
||||
* 计算机:实现程序的机器,Enia(宾夕法尼亚大学)-电子管-晶体管-集成电路
|
||||
|
||||
* cup构成,冯诺依曼的计算机结构:输入设备-存储器-输出设备-控制器-计算器
|
||||
|
||||
## 人与机器的沟通
|
||||
|
||||
* 程序设计语言:汇编语言-低级语言-高级语言(python-Java)
|
||||
|
||||
* 分类:编译型语言source code -compiler- object
|
||||
CODe。解释性语言sourcecode-interpreter-output
|
||||
|
||||
* 创始人:吉多·范·罗苏姆蟒蛇
|
||||
|
||||
* python:解释性语言,可移植性强,执行效率低;设计哲学:优雅明确简单
|
||||
|
||||
## 第一个程序hello world
|
||||
|
||||
* ‘print python’
|
||||
|
||||
* 命令行(Linux系统下)优点:无需创建文件,立即看到裕运行的结果
|
||||
|
||||
* 脚本IDE编辑器:适合编写大型程序更容易纠错,更容易修改和执行
|
||||
@@ -1,57 +1,56 @@
|
||||
\>选择结构
|
||||
|
||||
\>\>程序流程图:用简单的图形表示问题的解决步骤;起止框,处理匡,判断框,文档框,流程线,圆形,输入输出框
|
||||
## 选择结构
|
||||
|
||||
\>\>语法:(python中大括号不是分区作用,是靠语句块的缩进来体现语句块术语的范围)
|
||||
* 程序流程图:用简单的图形表示问题的解决步骤;起止框,处理匡,判断框,文档框,流程线,圆形,输入输出框
|
||||
|
||||
* 语法:(python中大括号不是分区作用,是靠语句块的缩进来体现语句块术语的范围)
|
||||
```
|
||||
if 条件:
|
||||
|
||||
缩进语句块
|
||||
缩进语句块
|
||||
|
||||
其余的语句
|
||||
|
||||
if 条件:
|
||||
|
||||
缩进语句块
|
||||
缩进语句块
|
||||
|
||||
else :
|
||||
|
||||
缩进语句块
|
||||
缩进语句块
|
||||
```
|
||||
|
||||
\>\>if语句支持嵌套
|
||||
* if语句支持嵌套
|
||||
|
||||
\>\>多分支结构elif 条件==else if
|
||||
* 多分支结构elif 条件==else if
|
||||
条件,有助于简化缩进,是画面更加清晰,可读性更高
|
||||
|
||||
涉及到两个典型的例子:elif计算多分支结构;领先是否安全的例子
|
||||
|
||||
\>循环结构
|
||||
|
||||
\>\>while:条件判断,成立则执行循环体,不成立则不执行
|
||||
## 循环结构
|
||||
|
||||
* while:条件判断,成立则执行循环体,不成立则不执行
|
||||
```
|
||||
初始化语句
|
||||
|
||||
while 条件语句:
|
||||
|
||||
循环体
|
||||
循环体
|
||||
|
||||
其它语句
|
||||
```
|
||||
* break,结束当前循环体
|
||||
|
||||
\>\>break,结束当前循环体
|
||||
|
||||
\>\>continue,结束这次循环或者说开始新的循环
|
||||
|
||||
\>\>for循环
|
||||
* continue,结束这次循环或者说开始新的循环
|
||||
|
||||
* for循环
|
||||
```
|
||||
for element in object
|
||||
|
||||
循环体
|
||||
循环体
|
||||
```
|
||||
|
||||
\>\>range(start,stop,step)生成连续整数
|
||||
|
||||
\>\>穷举法的使用-鸡兔同笼问题
|
||||
|
||||
\>\>循环的嵌套问题
|
||||
* range(start,stop,step)生成连续整数
|
||||
|
||||
\>程序控制结构的练习题
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
**\>程序设计的基础知识**
|
||||
|
||||
\>\>程序的定义:为了完成某项任务解决某个问题,计算机及执行的一定的指令
|
||||
|
||||
\>\>计算机:实现程序的机器,Enia(宾夕法尼亚大学)-电子管-晶体管-集成电路
|
||||
|
||||
\>\>cup构成,冯诺依曼的计算机结构:输入设备-存储器-输出设备-控制器-计算器
|
||||
|
||||
**\>人与机器的沟通**
|
||||
|
||||
\>\>程序设计语言:汇编语言-低级语言-高级语言(python-Java)
|
||||
|
||||
\>\>分类:编译型语言source code -compiler- object
|
||||
CODe。解释性语言sourcecode-interpreter-output
|
||||
|
||||
\>\>创始人:吉多·范·罗苏姆蟒蛇
|
||||
|
||||
\>\>python:解释性语言,可移植性强,执行效率低;设计哲学:优雅明确简单
|
||||
|
||||
**\>第一个程序hello world**
|
||||
|
||||
\>\>‘print python’
|
||||
|
||||
\>\>命令行(Linux系统下)优点:无需创建文件,立即看到裕运行的结果
|
||||
|
||||
脚本IDE编辑器:适合编写大型程序更容易纠错,更容易修改和执行
|
||||
@@ -1,103 +0,0 @@
|
||||
\>递归的实现:
|
||||
|
||||
**[python]** [view
|
||||
plain](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
[copy](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
|
||||
1. \<pre name="code" **class**="python"\>**def** p(n):
|
||||
|
||||
2. **if** n ==1 **or** n == 0:
|
||||
|
||||
3. **return** 1
|
||||
|
||||
\>递归的设计:
|
||||
|
||||
> 将问题分解成许多同构的问题,然后以相同的方式解决最终分解的小问题。
|
||||
|
||||
> 递归的要素:
|
||||
|
||||
> 递归执行的操作
|
||||
|
||||
> 递归的结束条件
|
||||
|
||||
> 递归的参数传递
|
||||
|
||||
\>实例一:兔子序列(菲波那切数列,在自然界一些动植物身上都有体现)
|
||||
|
||||
**[python]** [view
|
||||
plain](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
[copy](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
|
||||
1. **def** fib(n):
|
||||
|
||||
2. **if** n == 1 **or** n == 2:
|
||||
|
||||
3. **return** 1
|
||||
|
||||
4. **else**:
|
||||
|
||||
5. **return** fib(n - 1) + fib(n - 2)
|
||||
|
||||
6. **print** fib(20)
|
||||
|
||||
\>实例二:汉诺塔问题
|
||||
|
||||
**[python]** [view
|
||||
plain](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
[copy](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
|
||||
1. **def** hanoi(n, A, B, C):
|
||||
|
||||
2. **if** n == 1:
|
||||
|
||||
3. **print** "move", n, "from", A, "to", C
|
||||
|
||||
4. **else**:
|
||||
|
||||
5. hanoi(n - 1, A, C, B)
|
||||
|
||||
6. **print** 'move', n, 'from', A, 'to', C
|
||||
|
||||
7. hanoi(n - 1, B, A, C)
|
||||
|
||||
8.
|
||||
|
||||
9. hanoi(10, 'left', 'Mid', 'Right')
|
||||
|
||||
\>实例三:停车问题
|
||||
|
||||
> 要求:在固定长度的马路上随机停车,根据车身长度以及随机性特点确定,马路长度与停车数量的关系
|
||||
|
||||
**[python]** [view
|
||||
plain](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
[copy](http://blog.csdn.net/estom_yin/article/details/51892697)
|
||||
|
||||
1. **import** random
|
||||
|
||||
2. \#if the w big enough, lim parking to 3.7472 named Reni constance
|
||||
|
||||
3.
|
||||
|
||||
4. **def** parking(low, high):
|
||||
|
||||
5. **if** high - low \< 1:
|
||||
|
||||
6. **return** 0
|
||||
|
||||
7. **else**:
|
||||
|
||||
8. x = random.uniform(low, high - 1)
|
||||
|
||||
9. **return** parking(low, x) + 1 + parking(x + 1, high)
|
||||
|
||||
10. **print** parking(0, 5)
|
||||
|
||||
\>递归的优劣
|
||||
|
||||
\>\>能使一个蕴含递归关系而且结构复杂的程序简洁精练,增强可读性
|
||||
|
||||
\>\>嵌套层次深,函数调用开销大,存在大量的重复计算
|
||||
|
||||
\>补充琐碎知识
|
||||
|
||||
> random.uniform(low, high) 能产生从low到high的随机数
|
||||
Reference in New Issue
Block a user