一.Python特点:
是一种面向对象、解释型、弱类型的脚本语言,解释型语言天生具有可跨平台性 ,只要为平台提供了相应的Python环境,Python就可以在该平台上运行。
①面向对象:类 class
②解释型 :可跨平台性
二、DOS命令:
①cd :切换目录
②dir :浏览...
③mkdir:创建...
④rmdir:删除...
⑤ipconfig:查看IP地址
⑥ping :测试网络连接
⑦pip freeze > requirements.txt:将项目依赖的包输出到指定的requirements.txt
pip freeze -r requirements.txt:使用pip安装requirements.txt中
(主要使用在项目迁移中,即windows-->Linux,Linux可将生成的requirements.txt文件中所需要的包通过pip freeze -r requirements.txt指令在Linux环境中生成)
三、高级语言按程序的执行方式可以分为编译型和解释型两种:
①编译型语言:
编译型语言是指使用专门的编译器,针对特定的平台(操作系统)将某种高级语言源代码一次性"翻译"成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程成为编译。
编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。
因为编译型语言是一次性编译成机器码的,所以可以脱离开发环境独立运行,而且通常运行效率较高,但因为编译型语言的程序被编译成特定平台上的机器码,因此编译生成的可执行程序通常无法移植到其他平台上运行,如果需要移植,则必须将源代码复制到特定平台上。
总结:不可跨平台、运行效率高
②解释型语言:
解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。
可以这样认为,每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势,就是跨平台比较容易,只要提供特定平台的解释器即可,每个特定平台上的解释器都负责将源程序解释成特定平台的机器指令。解释型语言可以方便的实现源程序级的移植。
总结:可跨平台、运行效率低
四、变量名的命名规则:
①由字母、数字、下划线组成,数字不能作为开头
②严格区分大小写
③不能使用Python的关键字
④望文生义
⑤驼峰式:getName、payMoney
a.如果一个名字是由多个单词组成的,则除第一个单词之外的以后每个单词的首字母大写。
b.类,如果定义类名,则每个单词的首字母都要大写。GetName
⑥下划线式:
Python中变量的,函数命名:
get_name(python推荐) ~ getName
pay_money(python推荐) ~ payMoney
⑦ 常量命名的时候,一般大写
NAME = 'sakura'
五、用法
a.print的用法
① print(value, ..., sep=' ', end='
', file=sys.stdout, flush=False)
sep = ' ',默认分割符为空格
是newline开个新行
是Carriage return,打印头回到行首。如果没有
就直接
,那么这行就会被覆盖打印。例如:
>>> print("hello
python")
python
注:此时,python将hello覆盖了
>>> print("hello
python")
hello
python
②.r'' raw 原样输出字符串的内容,即使有转义字符也不会转义
print(r'hellop hon')
>>> hellop hon
注:也可以写成print('hello\p\thon')
>>> hellop hon
六、字符串
①三引号:""" """、''' '''
作用: 1.保留格式的字符串输出
2.作为多行注释使用
注:# 仅作为单行注释使用
②%f float 小数点后面数字表示保留原数字小数点后面的位数,而且是遵循四舍五入
>>> salary = 1999.99
>>> print("价格是:%f"%salary)
>>> 价格是:1999.990000
>>> salary_1 = 1999.99
>>> print("价格是:%.1f"%salary_1)
>>> 价格是:2000.0
>>> salary_2 = 1999.91
>>> print("价格是:%.2f"%salary_2)
>>> 价格是:1999.91
>>> salary_3 = 1999.991
>>> print("价格是:%.2f"%salary_2)
>>> 价格是:1999.99
③字符串的格式化输出方式: 1.使用占位符:%s、%d、%f..
2.format
>>> movie = "大侦探皮卡丘"
>>> count = 5
>>> ticket = 20
>>> print("""
电影:{}
人数:{}
单价:{}
总票价:{}
""".format(movie,count,ticket,count*ticket))
结果显示为:
电影:大侦探皮卡丘
人数:5
单价:20
总票价:100
注:format是一个字符串中的函数'',.format(),此处的.意思为调用
③在数字-5~256之间,定义a,b,使其同时为相同一个数字,则其id一样。
例:a = -5
b = -5
print(a is b)---------True
a = 256
b = 256
print(a is b)---------True
a = -6
b = -6
print(a is b)---------False
a = 257
b = 257
print(a is b)---------False
七、进制
①0b---->二进制 二进制表示:0b1011
(1)十进制--->二进制
a = 3
print(bin(a))------>0b11
(2)十进制--->二进制
a = 0b11
print(int(a))------>3
(3)负数 --->二进制
a = -8
print(bin(a))----->-0b11
注意:负数的二进制并不是这样,只不过Python已经帮忙封装好,实际上负数的二进制步骤如下:
a = -8
第一步:先求出正数8的二进制:0000 1000
第二步:取反 :1111 0111
第三步:最后位数加1 : 1111 1000
②0o---->八进制 八进制表示:0o6430 (三个一位数字)
(1)八进制--->二进制
0o6430--->6 4 3 0
分别得对应的二进制数110 100 011 000
即0o6430 == 0b110100011000
③0x---->十六进制 十六进制表示:0x9 (四个一位数字)
0x9ab16--->9 a b 1 6
分别得对应的二进制数1001 1010 1011 0001 0110
a,b,c...分别表示数字10,11,12,...(以此类推)
即0x9ab16 == 0b 1001 1010 1011 0001 0110
0xF0610C--->F 0 6 1 0 C
分别得对应的二进制数 1111 0000 0110 0001 0000 1100
即0xF0610C == 0b1111 0000 0110 0001 0000 1100
八、位运算
①&
print(3 & 2)---->2
原因:1为True,0为False
3---->0000 0011
& 2---->0000 0010
------------------
结果: 0000 0010
(00-->0,11-->1,10-->0,故得0000 0010)
②|
print(5 | 3)---->7
原因:1为True,0为False
5---->0000 0110
| 3---->0000 0011
-------------------
结果: 0000 0111 -----> 7
③~ (取反)
print(~5) ---->-6
原因: 1.先得+5的二进制数0000 0101
2.取反 1111 1010
3.看第一位(第一位是符号位,只要第一位是1,则表示负数,第一位是0,则表示为正数)
4.目前是已知二进制,倒着推,则需要-1,得1111 1001
5.对1111 1001 进行取反0000 0110,即6
6.因3可知为负数,即-6
④^ (异或:上下比较 相同的为0,不同的为1)
print(3^5) ----> 6
原因: 3 ----> 0000 0011
^ 5 ----> 0000 0101
--------------------
结果: 0000 0110 ----> 6
步骤: 1.^左边的数字转成二进制
2.^右边的数字转成二进制
3.对齐,上下进行比较(相同的为0,不同的为1)
4.将计算的结果转成十进制
⑤<< (左移)
print(2<<1)---->4
原因:1.先得出2的二进制数为0000 0010
2.向左侧移一位,并在最后一位补0(去除第一位,在末位补0),得0000 0100
3.再将新的二进制数转换为十进制数:0000 0100 ---->4
(<<后面的数字,表示向左移动的位数,1表示向左移1位,2表示向左移两位....)
⑥>> (右移)
print(2>>1)--->1
(原理同⑤,但须注意:向右移→,前位补0,末位移动相应位数)
九、三目运算符
格式:结果_1 if 表达式 else 结果_2
(如果表达式为真,则返回结果_1,为假,则返回结果_2)
a = 6
b = 5
result = (a + b) if (a > b) else (a-b)
print("result = ",result)------->result = 11
十、运算符的优先级:
** 指数(最高优先级)
~ + - (符号运算符) 按位翻转,一元加号和减号
* / // % 乘、除、取整除、取余
+ - (加减) 加法、减法
<< >> 左移、右移
& 位"and"
^ | 位运算符
> >= < <= 比较运算符
== != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not 逻辑运算符
and
or