区别:
1、编码
python2.0:
python3.0:默认编码格式为utf-8
Default Settings-->Editor-->File and Code Templates-->Python Script中添加
#!/usr/bin/env python
# -*- coding:utf-8 -*-
二、print函数
Python 2 的 print 声明已经被 print()
函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。
三、动态语言和静态语言
1)动态类型语言:是指在运行期间才去做数据类型的检查的语言,即用动态类型的语言编程时,永远也不用给任何变量指定数据类型
2)静态类型语言:与动态类型语言刚才相反,他的数据类型是在编译期间检查的,即写程序时需要声明所有的变量的数据类型,C/C++/JAVA/C#即使典型的静态类型语言
四、Python常用变量及数据类型
1)数据类型:int(整型),float(浮点型),string(字符型),布尔型(bool),None(空值)
1)、整型:大小写无要求
2)、浮点型:对于很大或则很小的浮点数,需用科学计数法表示,吧10作为e表示,1.23X109 ==1.23e9,0.000012==1.2e5
转移字符:
\ :表示可以转移多个字符
\n:表示换行
\t:表示制表符
如果需要转移很多字符串:python允许用r‘ ‘表示‘ ’内部的字符串默认不转义 >>> print ‘\\\t\\‘ \ \ >>> print r‘\\\t\\‘ \\\t\\
如果字符串内部有很多换行,python允许用 ‘ ‘ ‘ . . . ‘ ‘ ‘ 格式表示多行内容
3)、布尔值(false true)
布尔值可以用:and 、or、not运算
and运算是与运算:所有为true,and运算结果才是true >>> True and True True >>> True and False False >>> False and False False
or运算是或运算:其中一个为true,or运算结果就是true >>> True or True True >>> True or False True >>> False or False False
not运算是非运算:单目运算>>> not True False >>> not False True
4)空值
python空值用none表示,none不能理解为0,0是有意义,none是一个特殊的空值
【注意:python中大小写代表不同的字符】
编写python脚本开头格式
#!/usr/bin/env python
# -*- coding: utf-8 -*-
缩进和注释
python是强制缩进的语言,他通过缩进来确定一个新的逻辑层次的开始和结束,同一逻辑层次级别的代码缩进必须保持一致,
顶层逻辑层次的代码风格保持一致不能有缩进(新行的开始不能有空格)
六、变量命名规则
1、字母、 数据 、下划线
2、变量名第一个字符不能是数字
3、关键字不能声明为变量
4、驼峰命名规则:每个字符的第一个字母写成“大写”,如:CheckCurrentConnCunt、、、
比如:name = ‘lcj‘ #name是字符串,字符串要加上引号哦
age = 19 #age 是整数,整数不要就爱引号,加引号后就变成了字符串了哦 、注意哦
has_girlfriend = False #是布尔型,一般用这个做逻辑判断,如:if has_girlfriend:print ‘good for you‘
age = age + 1 #这个结果应该是20,运算流程是先将=号后面的 age+1 结果算出,然后在把这个结果重赋值给 age ,赋值之前是19,那么赋值以后 age 值变为20
七、Python解释器工作原理
1)在内存中穿件一个“lcj”的字符串
2)在内存中创建一个名字为“name”的变量,并把它指向“lcj”的内存地址。
即将变量 name 赋值给另外一个变量 name2,这个操作实际是把变量 name2 指向的数据
例如:
>>> name = "lcj"
>>> name2 = name
>>> id(name),id(name2)
(139725731035896, 139725731035896)
>>> name = "Jack"
>>> id(name),id(name2)
(139725731051632, 139725731035896)
>>> print(name,name2)
(‘Jack‘, ‘lcj‘)
>>>
分析:
1)定义 name="lcj",解释器创建了字符串“lcj”和变量name,并把name指向“lcj”
2)执行 name2=name ,解释器创建name2变量,并把name2指向了name变量所指向的字符串“lcj”
3)这时通过ID内存函数查看一下这两个变量分别指向的内存地址,结果都是指向同一个地址
4)执行 name = "Jack",解释器创建一个新的变量“Jack”,并把 name 指向一个新的地址,也就是“Jack”所在地址的内存地址,但是neme2依然还是指向原来的“lcj”
总结:当你把一个变量name赋值给另外一个变量name2时,解释器只是把name变量所指向的内存地址赋值给了name2,因此name和name2并未直接发生关联,只不过是他们都同时指向同一个内存地址而已,这也是说为什么你把name在指向一个新地址后,而name2的值还保持不变的原因。
八、运算符
& 与运算,这个二进制位必须在2组数组中都为真,结果才返回真,
| 或运算,这个二进制位只需要在其中一组数据中为真即返回真
^ 异或运算,只要这个二进制位在两组数据中不相同就返回真
<< 左移运算,将A整体向左移2位
>> 右移运算,将A整体向右移2位
逻辑预算符:and 、or 、not
关系运算符:in 、not in
验证运算符:is 、is not
九、字符编码及格式化字符
1)1 byte = 8 bit(一个字节表示最大整数是255)
2)%运算符:表示格式化字符串,即表示字符串替换
3) %d:表示整数替换,有几个%s占位符,后面就跟几个变量或值,顺序对应好
4)%f:表示浮点型
5)%x:表示十六进制整数
十、Python注释符号
1)单行注释:3
2)多行注释:‘‘‘ XXXX ‘‘‘
技巧: