编译性语言:在将源代码编译完毕生成一个可执行文件后才能运行
解释性语言:在代码的运行期间进行编译
动态类型语言:在运行期间才去做数据检查的语言,也就是说在使用动态类型语言时不用指定数据类型
静态类型语言:在编译期间去做数据检查
强类型定义语言:强制数据类型定义的语言
弱类型定义语言:数据类型可以忽略的语言,一个变量可以有不同的数据类型
python解释器:要运行代码,就需要python解释器去执行.py文件
以下是几种常用的python解释器:
CPython
这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python
就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
CPython用>>>
作为提示符,而IPython用In [
序号
]:
作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
字符编码:python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ASCII码)
发展过程:ASCII:支持255个字符(不支持中文),每个字符占一个字节
--->1980年,GB2313,支持7000多个字符
--->1995年,GBK1.0,支持20000多个字符
--->2000年,GB18030,支持27000多个字符
--->unicode,每个字符占2个字节
--->utf-8,en:1个字节,zh:3个字节
注:因为python解释器不支持中文,所以应该告诉python解释器,用什么编码执行源代码
python:
1.定义:python是一门解释性动态强类型定义的语言
2.优点:
(1)..python的定位时“优雅、明确、简单”,所以python程序看上去总是简单易懂
(2).开发效率非常高,又非常强大的第三方库
(3).高级语言——无需考虑如何管理内存等底层细节
(4).由于它的开源本质,可移植性高
(5).可扩展性——可以把部分程序用c或c++编写
(6).可嵌入性——可以把python嵌入你的c++程序
3.缺点:
(1).速度慢
(2).由于其开源本质导致代码不能加密
(3).线程不能多利用CPU问题
4.本周学习python相关语法知识:
1.变量:
(1)定义规则:变量名只能是字母、数字或下划线的任意组合 ,变量名的第一个字符不能是数字
(2)注意事项:以下关键字不能声明为变量名:
【'and' 'as' 'assert' 'break' 'class' 'continue'
'def''elif' 'else' 'except' 'exec' 'finally'
'for''from''gloable' 'if' 'import' 'in' 'lambda' 'not' 'or'
'pass''print' 'raise' 'return' 'try' 'while' 'with' 'yield'】
2.用户交互程序:
'''
username = input("username:")
password = input("password:")
print(username,password)
'''
#输入
name = input("name:")
age = int(input("age:"))
#注意:python中输入数据时默认是字符串类型,要想改变类型,就必须使用强制转换
print(type(age)) #type()显示变量的数据类型
job = input("job:")
salary = input("salary:")
#两种打印方式
#第一种
info = '''
------------ info of ''' + name + ''' ----------
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job + '''
Salary:''' + salary + '''
'''
print(info) #第二种
mgr = '''
--------mgr of %s ----------
Name:%s
Age:%d
Job:%s
Salary:%s
''' % (name,name,age,job,salary)
print(mgr) #第三种
sfs = '''
-------- sfs of {_name} -------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,
_age=age,
_job=job,
_salary=salary)
print(sfs) #第三种
ofo = '''
-------- ofo of {0} -------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(ofo)
#建议不要使用第一种
3.if else流程判断
例如:if 3>2:
xxx
else:
yyy
#执行完xxx后执行下一个语句
4.while循环:
while 判断语句:
内部子语句
else:
内部子语句
#如果while内部的子语句顺利执行完毕就执行else的内部子语句,如果while循 环被break破坏掉,就不执行els
5.for循环:
for i in range(10): #range(10)里面默认是0、1、2、3、4、5、6、7、8、9,当循环时i就把range里面的数取出来
for i in range(0,10,2): #range()里面是0、2、4、6、8
for i in range(1,10,2): #range()里面是1、3、5、7、9
for i in range(n):
内部子语句
else:
内部子语句
#如果for内部的子语句顺利执行完毕就执行else的内部子语句,如果for循环被break破坏掉,就不执行else
6.break和continue
break用于终止循环,转到下一个语句
continue用于不执行循环内部的子语句,即跳过本次循环
附注:所有主语句下面的子语句必须强制缩进