将程序源码“翻译”成目标源码(机器语言),生产可执行文件(*.obj)然后执行
优点:不需要源代码,不依赖语言环境,因为,执行的是机器代码文件,编译后可直接执行,效率高,速度快,因为程序代码已经翻译成计算机可以理解的机器语言
缺点:一旦需要修改,必须要修改源代码,然后在重新编译,没有源代码,修改很不方便。跨平台性能差,不同操作系统需要不同的可执行文件
语言:C,C++等
使用解释器执行源代码文件, 解释器把源代码文件便解释成机器指令,便交给CPU执行
优点:可跨平台,因为解释器做好了跨平台的交互处理。方式灵活,可以动态调整和修改程序
缺点:效率比较低,不能独立生成可执行文件,不能脱离解释器。代码是明文的
语言:python,Java,php
规则:只能是字母、数字或下划线的任意组合
第一个字符不能是数字
关键字不能为变量名
命名习惯:驼峰体,下划线
print,input
py2中,print ‘aaa‘, py3中,print(‘aaa‘)
#
数字:int,long(python没有指定长度,python3中没有这个类型了,都是int型), float
字符串:单引号,双引号,多引号(一段话),可以相加(只能字符串之间)相乘(字符串*数字)
bool类型:True, False
(参考:http://www.runoob.com/python/python-operators.html)
算术运算符: ‘+‘,‘-‘,‘*‘,‘/‘,‘%‘,‘**‘,‘//‘(py2中,1/2 得0, 1.0/2得0.5)
比较运算符:‘==’, ‘!=‘, ‘<>‘(py2里得不等于), ‘>‘, ‘<‘, ‘>=‘, ‘<=‘
赋值运算符:‘=‘, ‘+=‘, ‘-=‘, ‘*=‘, ‘/=‘, ‘%=‘, ‘**=‘, ‘//=‘
位运算符(换成二进制操作):‘&‘, ‘|‘, ‘~‘, ‘^‘(异或,相异为1), ‘<<‘(左移,高位丢弃,低位补0), ‘>>‘
逻辑运算符: and, or, not
x and y: x为False,返回False,否则,返回y的计算值。
x or y:x为非0,返回x值,否则返回y得计算值。
not x:x为True,返回False;x为False,返回True
成员运算符:in, not in
身份运算符:is,is not,(判断两个标识符是不是引用自一个对象)
优先级:(从高到低)
幂,转,正负, 乘除取模取整除,
加减,左右移,位与,位或位异或,
大大等小小等,等不等,
赋值,身份,成员,逻辑。
万能用法:括号()
单分支
if 条件:
.....
双分支
if 条件:
....
else:
....
多分支
if 条件:
...
elif 条件:
....
elif 条件:
...
else:
...
循环
while 条件:
执行代码.....
终止语句
break, continue
while 条件:
执行代码..
else:
......(当循环不正常退出时,执行else后的语句)
py3 文件默认编码:utf-8,
字符串默认编码:unicode
py2 文件默认编码ASCII,
字符串默认编码ASCII,
把字符串编码改成utf-8的方式:在文件开头:#!_*_ coding: utf-8 _*_, 或 #!encoding: utf-8
UTF --> decode 解码 --> Unicode
Unicode --> encode 编码 --> GBK/UTF-8
存在内存上Unicode,存在硬盘或网络传输是GBK/UTF-8
在python2,str = bytes, 是因为 要表示图片,视频等二进制的数据。还有一个类型叫unicode
pyhton3,str = unicode
py2: 以utf-8orgbk编写的代码,内容加载到内存,并不会转成unicode,还是utf-8 or gbk
py3: 以utf-8orgbk编写的代码,内容加载到内存,自动转成unicode,
千万不要自己转码,转码前必须备份
原文:https://www.cnblogs.com/ywsun/p/10487270.html