Python与C 、Java、C#等比较
C——>机器码——>处理器执行
Python、Java、C#——>字节码——>虚拟机上执行——>机器码——>处理器执行
简而言之,Python这门语言是由C开发而来
Python 和 C比较
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,慢
Python 和 Java、C#等比较
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python在速度上可能稍显逊色
Python的种类
Cpython
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。
注:PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!
安装Python
windows:
1
2
3
4
5
6
7
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】--> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:python27,切记前面有分号
Python 入门
1、第一句Python代码
创建 hello.py 文件
print "hello,world"
执行 hello.py 文件
python hello.py
屏幕输出:hello,world
2、解释器:CPython
(1)文件头
#!/usr/bin/env python #防止linux系统出错#
print "hello,world"
(2)Python2和Python3
Python2为ASCII编码 不认识汉字 字符串等(默认ascill)
Python3为Unicode,因此还需加新的东西
#!/usr/bin/env python
print "你好,世界"
会报错:ascii码无法表示中文,编译出错!
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
#!/usr/bin/env python#-*- coding: utf-8 -*-
print "你好,世界"
3、注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
4、执行脚本传入参数(引入库函数之类)
类库有包括三中:
Python内部提供的模块
业内开源的模块
程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数,如下:
#!/usr/bin/env python#-*- coding: utf-8 -*-
importsysprint sys.argv
5、执行生成
.py 文件执行过程中会自动生成一个与其同名的 .pyc 文件(该文件就是Python解释器编译之后产生的字节码)
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
6、变量
(1)命名规则,和C语言大体相同:
字母、数字或下划线
第一个字符不能是数字
关键字不能声明为变量名
"and", "as", "assert", "break", "class", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "print", "raise", "return", "try", "while", "with", "yield"
(2)声明、定义、使用
#!/usr/bin/env python#-*- coding: utf-8 -*-
name= "leba"
上述代码声明了一个变量,变量名为: name,变量name的值为:"leba",也就是定义了一个变量。
7、输入
#!/usr/bin/env python#-*- coding: utf-8 -*-
#将用户输入的内容赋值给 name 变量
name = raw_input("请输入用户名:")#打印输入的内容
print name
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python#-*- coding: utf-8 -*-
importgetpass#将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
#pwd为变量#打印输入的内容
print pwd
8、选择、判断、循环
(1)if判断
if name == "leba" and pwd == "123":print "欢迎,alex!"
else:print "用户名和密码错误"
(2)循环
while条件:一条语句#如:
whileTrue:print "123"
break、continue
#break用于退出所有循环
whileTrue:print "123"
break
print "456"
#continue用于退出当前循环,继续下一次循环
whileTrue:print "123"
continue
print "456"