# 写在开头(学习推荐)
~ alex li Day教程
~ 廖雪峰教程
~ 菜鸟python3教程
~ 努力哥python3教程
~ 黑马教程
~ 实验楼以及慕课网
一、基础认知:
1、python 是一门 动态 解释性 的 强类型定义 语言
# 编译 与 解释:
编译:把源程序的每一条语句都编译成机器语言,并保存成二进制文件,
这样运行起来计算机可以直接以机器语言来运行此程序,速度很快
解释:在程序执行时,才一条一条的解释成机器语言给计算机来执行
所以运行起来不如编译后的快
# 静态语言 与 动态语言
静态类型:数据类型在编译期间检查,也就是说在写程序时要声明所有变量的数据类型
动态类型:数据类型在运行期间检查也就是说,在用动态类型编程时,永远不用给任何变量指定数据类型
语言会在你第一次赋值给变量的时候,在内部将数据类型记录下来
# 强类型语言 与 弱类型语言
强:一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么他就永远是这个数据类型
弱:数据类型可以被忽略
2、python 的运行过程
1)、python 是一门解释型语言么?
Yes. But what is the pyc? "c" is "compiled"
2)、python 到底是什么?
其实 Python 和 Java / C# 一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下 Python 程序的运行过程吧。
当我们在命令行中输入 python hello.py 时,其实是激活了 Python 的“解释器”,告诉“解释器”:你要开始工作了。
可是在“解释”之前,其实执行的第一项工作和 Java 一样,是编译。
3)、简述 python 的运行过程
-- PyCodeObject && pyc
- 我们在硬盘上看到的 pyc 自然不必多说,而其实 PyCodeObject 则是 Python 编译器真正编译成的结果。
-- execution
- 当 python 程序运行时,编译的结果则是保存在位于内存中的 PyCodeObject 中
- 当 Python 程序运行结束时,Python 解释器则将 PyCodeObject 写回到 pyc 文件中
- 当 python 程序第二次运行时,首先程序会在硬盘中寻找 pyc 文件,如果找到,则直接载入,否则就重复上面的过程
- PyCodeObject 和 pyc 文件定位: pyc 文件其实是 PyCodeObject 的一种持久化保存方式
3、python 的优缺点
1)、优点
-- 明确 简单 优雅
-- 开发效率高:强大的第三方库,官方库有相应的模块支持,自己有可开发相应模块,大大降低开发周期,避免重复制造轮子
-- 高级语言:无需考虑如何管理你的程序使用的内存一类的细节
-- 可移植性:开源
-- 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的 Python 程序中使用它们。
-- 可嵌入性:可以把 Python 嵌入你的 C / C++ 程序,从而向你的程序用户提供脚本功能。
2)、缺点
-- 速度慢
-- 代码不可加密
-- 线程不能利用多 CPU 问题!!!
4、python 解释器
-- CPython
-- IPython
-- PyPy !!
-- Jython
-- IronPython
5、python 2.0 与 3.0
二、字符编码与转码:
1、python 解释器在加载 .py 文件中的代码时,会对内容进行编码(默认 ascill )
2、ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,
主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII 码最多只能表示 255 个符号。
3、显然 ASCII 码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
总结:
三、基础语法:
1、python 保留字
保留字就是关键字,不可以用作任何标识符名称
2、变量 ( 变量的实质就是:在内存地址中真是存在 )
下面的“x”就是内存地址中真是存在的
name1 或者是 name2 都只是他的一个 “门牌号”而已
再补充一点:后面出现的函数,其实实质也是 “变量”,可以打印出其内存地址
1 name1 = "x" 2 name2 = name1 3 print(name1,name2) 4 name1 = "xx" 5 print(name1,name2)
1 def val(): 2 print("chenjie") 3 print(val)
3、注释
-- 行注释:# >>快捷键 ctrl + /
-- 段注释:‘‘‘ 内容 ‘‘‘
4、end=“”
1 print("print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end = ‘ ‘ ") 2 x = "a" 3 y = "b" 4 z = "-----" 5 print(x) 6 print(y) 7 print(z) 8 print(x,end=" ") 9 print(y,end=" ") 10 print(z,end=" ")
5、行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用任何的大括号{}
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数
6、多行语句
7、同一行显示多条语句
1 name = "chenjie" ; print(name)
8、多个语句构成一个代码组
缩进相同的一组语句构成一个代码块,我们称之为代码组
9、用户输入
-- input
-- 等待用户输入
-- 加密 input : getpass 方法
10、字符串格式化输出
# 字符串拼接输出
# %s 字符串 (str) %d 整数 (int) %f 浮点 (float)
# format调用
11、三元运算
result = 值1 if 条件 else 值2
PK
12、数据运算
# http://www.runoob.com/python/python-operators.html
1)、算数运算
2)、比较运算
3)、赋值运算
4)、逻辑运算
5)、成员运算
6)、身份运算
7)、位运算
8)、运算级优先级
13、循环
# 经典实例
-- 斐波纳契数列
-- 九九乘法表(五种类型输出)
-- 0-100之间的和
-- 质数判断
1)、if……else、if……elif……else
2)、while 判断条件、while……else、while……loop
3)、for(遍历任何序列的项目)、for……break
4)、break(跳出当前循环体 [for or while])
5)、continue(跳过当前循环体中剩余的语句,然后继续下一轮循环)
6)、pass(空语句,保持程序结构的完整性)
7)、if else elif while for break continue pass 都可以混合使用 主要靠思维
8)、range()函数:
-- 遍历数字序列
-- 用range指定区间的值
-- range指定不同的增量,也就是步长
# ……一大堆
13、数据类型:
1)、数字
# http://www.runoob.com/python3/python3-number.html
1. 整型 (int)、浮点数 (float)、复数 (complex)
2. 数字运算
3. 函数
2)、布尔值
-- 真 或 假
-- 1 或 0
3)、字符串 (str)
a. Python中的字符串用单引号 (‘) 或双引号 (\") 括起来 , 同时使用反斜杠(\)转义特殊字符
b. 字符串的基础操作
1 a = ‘hello‘ 2 b = ‘python‘ 3 print(a+b) 4 print(a*2) 5 print(a[0:-1]) 6 print(a[0]) 7 print(a[2:5]) 8 print(a[2:]) 9 print(a[:]) 10 if(‘h‘in a): 11 print(‘h在变量a中‘) 12 else: 13 print(‘h不在变量a中‘) 14 if(‘m‘ not in a): 15 print(‘m不在变量a中‘) 16 else: 17 print(‘m在变量a中‘) 18 print(‘pyt\nhon‘);print(r‘pyt\nhon‘)
c. 转义字符
-
d. 字符串内建函数(40条)
# http://www.runoob.com/python3/python3-string.html
4)、列表
5)、元组
6)、字典
7)、集合
14、练习实例
1)、购物车程序
2)、