Python简介
为什么选择Python而不选择其他语言?
- 我们知道流行和常用的语言有C、Java、Python,在其中几个做出选择,选择一个语言进行学习。
- C语言与Python的对比:
- 在使用上:Python的类库非常多,如果用C和Python来实现一个功能,Python可能只需要几行就可以,但是C可能就需要几十行甚至上百行。
- 在执行速度上:在速度上没的说,C语言的执行速度比Python快得多。
- Java语言与Python的对比:
- 在使用上:Python在Linux、Mac OS系统上原装带有Python,这是其他语言没有的。这两种语言都是有非常丰富的类库支持。
- 在执行速度上:Python比Java的速度可能慢上一些。
总结:Python在执行速度上比较慢,但是他的代码可读性高(代码简单明了),拥有非常丰富的类库。在中国有一种习惯叫做先入为主的概念,所以当Python发展到中国的时候已经有了其他语言来做这件事情,改变可能带来不可预知的后果所以Python的发展在中国还是比较缓慢的,但是在国外已经很火了。
Python的种类有那些?
- CPython # 现在使用最为广泛,默认安装的也是CPython,它的执行过程是源文件(.py文件)转换成字节码文件(.pyc文件),然后在Python虚拟机上运行。
- Jython # 使用Java语言来实现,执行过程是源文件(.py文件),Jython动态编译源文件(.py文件)编译成JAVA字节码,在后再JVM虚拟机上运行。
- PyPy # Python实现的Python解释器,将Python的字节码再编译成机器码。PyPy还提供了JIT编译器和沙盒功能,因此运行速度比CPython要快,以及可以 安全的运行 一些不被信任的代码。PyPy还有一个单独的支持微线程的版本。
- IronPython # Python的代码使用C#来实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似,作者也为同一人。)
- Brython、RubyPython...等等
Python类型 | 虚拟机 | 兼容的语言 |
CPython | CPythonVM | C |
Jython | JVM | JAVA |
IronPython | CLR | C# |
Brython | javascript engine(e.g,V8) | JavaScript |
RubyPython | Ruby VM | Ruby |
总结:现在使用最为广泛的是CPython,因为官方默认给出的Python就是CPython,从上述中可以看出每一种类型的Python都会有不同的方式去实现,但是他们的代码规则是一样的。现在运行最快的为PyPy
Python环境的安装及配置
安装Python
windows:
1 1、下载安装包 2 3 https://www.python.org/downloads/ 4 5 2、安装 6 7 默认安装路径:C:\python27 8 9 3、配置环境变量 10 11 [右键计算机]--[属性]--[高级系统设置]--[高级]--[环境变量]--[在其中找到变量名为Path的一行,双击]--[Python的安装目录追加到变值中,使用;号分割] 12 13 如:原来的值;C:\python27,切记前面有分号linux:
1 Linux不需要安装,Linux原装带有Python环境。 提示:如果Python版本是2.6,请更新至2.7,查看Python版本python -V
更新Python
windows:
1 卸载后重新安装便可,可同时安装2.*和3.*版本。
linux:
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python
1 1、安装gcc,用于编译Python源码 2 3 yum install gcc 4 5 2、下载源码包,https://www.python.org/ftp/python/ 6 7 3、解压并进入源码文件 8 9 4、编译安装 10 11 ./configure 12 13 make all 14 15 make install 16 17 5、查看版本 18 19 /usr/local/bin/python2.7 -V 20 21 6、修改默认Python版本 22 23 mv /usr/bin/python /usr/bin/python2.6 24 25 ln -s /usr/local/bin/python2.7 /usr/bin/python 26 27 7、防止yum执行异常,修改yum使用的Python版本 28 29 vi /usr/bin/yum 30 31 将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
Python入门
第一个Python代码
- 在任何一个目录下创建一个以.py结尾的文件,因为默认Python文件以.py结尾,可以写成其他的但是不建议(假设我们的文件在/usr/local/hello.py)。
- 在创建的文件中输入代码 print(‘hello word‘)
- 执行此代码输入 python /usr/local/hello.py 便可以执行其中的代码。
定义解释器
- 每次在写脚本时第一行定义脚本使用什么语言经行执行:
- #!/usr/bin/pytho或者#!/usr/bin/env python,在Windows上无作用
- 在定义好#!/usr/bin/pytho之后我们需要给脚本可执行权限 chomd 755 脚本名,便可以./脚本名来执行脚本
#!/usr/bin/pytho print(‘hello work‘)
定义内容编码
- 在脚本的第二行输入编码格式: # -*-coding:utf-8-*- 。utf-8为字符编码格式,如果我们可能会输出中文或输入中文可以使用,同时也可以使用unicode编码,但是推荐使用utf-8节省空间,因为2.*版本的Python他默认使用的是ascii编码。如果是3.5的话就不需要了,3.5默认使用的是utf-8编码
- 如果你的python是2.*的,代码这样写一定会报错:
1 #!/usr/bin/env python 2 print(‘你好,世界‘)
因为2.*的Python默认为ascii编码无法表示中文。
- 改成后的样子:
1 #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 print(‘你好,世界‘)
因为你的#-*-coding:utf-8-*-告诉了Python我的代码使用utf-8的编码来执行。
注释
- 注释的意思就是这里的内容不进行存入内存,让代码的可读性变高。
- 注释单行为#被注是的内容
- 注释多行为"""被注释的内容"""
执行脚本传入参数
- 创建两个文件例如 a.py和b.py 在a.py中写入 print ‘hello A‘ ,在b.py中写入
1 import a 2 print(‘hello B‘)
那么执行后显示的结果是
1 hello A 2 hello B
pyc文件
- 在执行Python代码的时候如果导入了其他的.py文件,那么在执行过程中会自动生成一个与代码文件同名的.py文件,这个文件就是Python解释器编译之后产生的字节码。
- 提示:代码经过编译可以产生字节码,字节码通过反编译也可以得到代码。当代码丢失时只要字节码还在同样可以运行。
变量
- 我们首先声明变量 name = ‘Wuyongqi‘
- 从上述中可以看出name为变量名,‘Wuyongqi‘为值。
- 变量的作用可以理解为简称、昵称他代指内存里某一个地址中的内容。
-
- 变量定义的规则:
- 变量名称只能以数字、字母、下划线来组合命名,但是数字不可以开头。
- 因为Python也有一写关键字,这些关键字不可以声明为变量
- [‘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‘]
- 变量定义的规则:
- 给变量赋值
- 这样就相当于在内存中开辟出两块空间一块空间叫Hello work,一块叫Wuyongqi。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 name1 = "Hello Word" 5 name2 = "Wuyongqi"
- 这样就想是内存中开辟一块空间然后叫Wuyongqi,使用name1来代指Wuyongqi这个内存空间地址,name2等于name1所以不需要在开辟一块空间name2与name1同使用一块内存空间。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 name1 = "Wuyongqi" 5 name2 = name1
- 这样就相当于在内存中开辟出两块空间一块空间叫Hello work,一块叫Wuyongqi。
输入
- 输入
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 name = raw_input("请输入用户名:") 4 # 将用户输入的内容赋值给 name 这个变量 5 print name 6 #打印用户输入的内容
- 当输入密码的时候防止被他人看到可以设置为不可见密码,使用getpass模块中的getpass方法便可以。
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 import getpass 4 pwd = getpass.getpass("请输入密码:") 5 #当用户输入完成后,将用户输入的值赋给pwd 6 print pwd 7 #打印出用户输入的密码
流程控制和缩进
- 在这里我们使用if判断来做流程控制,python中有严格缩进要求,因为他没有结束符
- 首先完成一个用户登录账号、密码的例子:
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 import getpass 4 5 username = raw_input(‘请输入用户名:‘) #提示用户输入用户名,并讲用户输入的用户名赋给username变量。 6 7 password = getpass.getpass(‘请输入密码:‘)#提示用户输入密码,并讲用户输入的密码赋给pwd变量,这里我们使用了getpass模块的getpass方法所以用户输入的内容是看不到的。 8 9 if username == "Wuyongqi" and pwd == "wyq": 10 print(‘恭喜您,登陆成功...‘) 11 12 else: 13 print(‘您输入的账号或密码错误,请从新输入....‘)
- 首先完成一个用户登录账号、密码的例子:
while循环
- 基本循环
1 while 条件:#当条件满足的情况下执行下面代码 2 3 代码........
- break命令的解释
- break可以终止当前循环。
1 while True:#条件一直满足,请不要那这个值随意尝试,将会导致一个死循环。 2 print(‘hello‘) #打印hello 3 break #终止当前循环。 这样的代码也就是打印一次hello之后便退出了。
- break可以终止当前循环。
- continue命令的解释
- continue用于退出当前循环,进行下一次循环。
1 a=1#定义一个变量数字为1。 2 while True: #循环体条件一直满足。 3 if a == 12 : #判断当前的变量a是不是等于12,如果等于12执行下面的代码,如果不等于则继续向下判断。 4 continue #当if判断a等于12的时候将不打印12,因为在这里我们使用了continue跳出了本次循环。 5 elif a == 50 : #判断当前的变量a是不是等于50,如果等于50执行下面的代码,如果不等于50则继续向下判断。 6 break #if判断a等于50终止当前循环退出。 7 else: #如果上层判断都没有符合的则执行这一步。 8 print(a) #打印变量a当前的值。
- continue用于退出当前循环,进行下一次循环。
时间: 2024-11-05 12:07:40