Python的简介
Python与其他语言的对比:
C和Python、Java、C#
C语言:代码直接编译成了机器码,在处理器上直接执行
Python、Java、C#:编译得到相应的字节码,虚拟机执行字节码并转换成机器码再在处理器上执行。
Python和C 补充:Python是由C开发而来
对于使用:Python的类库齐全且使用简洁,Python 10行实现的代码,别的语言需要数十行
对于速度:C语言直接编译成机器码,速度远远大于Python
Python和C#、Java
对于使用:Linux原装Python,而其他的没有
对于速度:Python在执行效率上稍逊一筹
Python的种类:
Cpython
python的官方版本,使用C语言编写,使用广泛,Cpython会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在python虚拟机上
Jython
Python的java实现,会将Python代码动态编译成java字节码,运行在jvm上
Iron Python
Python的C#实现,IronPython会将Python代码编译成C#字节码,运行在CLR上。
PyPy
它的目的使执行速度,采用JIT技术,对Python代码进行一个动态的编译,在Python的基础上对Python的字节码进一步处理,从而提升执行速度
IPython
居于CPython之上的一个交互式的编译器,内核其实是调用了IE
Python的环境
1.安装Python
Windows:安装包,配置环境变量
Linux:自带有Python环境
2.更新Python
Windows:卸载重装即可
Linux:
查看默认Python版本
python -V 、安装gcc,用于编译Python源码
yum install gcc
、下载源码包,https://www.python.org/ftp/python/
、解压并进入源码文件
、编译安装
./configure
make all
make install
、查看版本
/usr/local/bin/python2. -V
、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.
ln -s /usr/local/bin/python2. /usr/bin/python
、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.
Python入门
一:你好,Python
.创建一个.py文件
.输入
print("Hello Python")
.保存退出
打开CMD,通过以下方式执行Python文件(已经配置好了环境变量)
python .py文件
补充一点:
python2中可以使用:
print "Hello Python"
而Python3不行
二:解释器
以上执行时,python 就是指定了这个py文件是要由python解释器来执行的
在Linux中,如果想要想shell脚本一样执行python脚本,就需要加入一些头部信息
#!/usr/bin/env python
#其实就是Python解释器的具体路径,也就是在这里指定了python解释器 print("Hello World")
三:编码
在python2中如果你的代码中存在中文,而且没有指定编码,则会报错
Python2解释器在加载py文件的时候,会对内容进行默认的编码(ascii),ASCII是不支持中文的
所以我们要使用UTF-8编码:
#!/usr/bin/env python
# -*- coding:utf- -*- print("你好,Python")
另外说一点:python3好像是默认编码为unicode,所以不需要担心中文问题
四:Python代码的注释
单行注释 # 注释的内容
多行注释 ”“” 注释的内容 “”“
五:执行Python时传入参数
Python有大量的模块,从而使得Python的开发非常的方便简洁。类模块有三种:
- Python内部提供的模块
- 开源的一些模块
- 自己开发的模块
Python内部提供的模块中有一个sys模块,其中sys.argv可以用来获取执行Python执行脚本时传入的参数
import sys print(sys.argv)
六:pyc文件
在执行Python代码时,如果导入了其他的.py文件,那么执行过程中就会生成一个与其同名的.pyc文件,该文件就是Python解释器编译后产生的字节码
同时,如果再次调用这个.py文件,当它发现有pyc文件时,就会去调用这个pyc文件,而非源py文件,所以说,Python的模块本身就是单例
七:变量
1.声明变量
name = "nullnull"
最简单的一个声明变量,变量名为name,变量name的值为”nullnull“
一个名为name的变量名指向了一个存着值为”nullnull“的内存空间
另外提一点:其实变量名是可以使用中文的,但是开发中没有人会这么做。
2.变量的定义规则:
- 变量名字母、数字或下划线的组合
- 变量名的第一个字符不能是数字
- 一些Python内置的关键字不能作为变量名
另外提一点:有个叫做PEP8的对Python编码进行了统一的规范
3.变量的赋值
name1 = "nullnull"
name2 = "fullfull"
name1 = "nullnull"
name2 = name1
这也说明了python的引用类型,这里你可以先不用了解。
八:输入
#python2
name1 = raw_input("请输入你的...") #Python3
name2 = input("请输入你的...")
另外补充一点:如果你输入的是密码,想要想Linux一样输入时不可见就要用到getpass模块
import getpass pwd = getpass.getpass("请输入密码:") print(pwd)
九:流程控制和代码的缩进
流程控制语句:
if...elif....else
for循环
while....break/continue
if else语句判断语句
if True:
print("这是真的")
else:
print("虽然他永远不会执行吧")
if elif elif 多条件判断语句
while循环语句
while True:
print("如果真的就会执行啦,根本停不下来")
for循环
for i in ['','','']
print("这里是列表中的每一个元素啦" + i)
break 用于while或for的代码块中,用于跳出循环
continue类似于break,但却是跳过本次循环