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的种类有那些?

  1. CPython                  # 现在使用最为广泛,默认安装的也是CPython,它的执行过程是源文件(.py文件)转换成字节码文件(.pyc文件),然后在Python虚拟机上运行。
  2. Jython                    # 使用Java语言来实现,执行过程是源文件(.py文件),Jython动态编译源文件(.py文件)编译成JAVA字节码,在后再JVM虚拟机上运行。
  3. PyPy                          # Python实现的Python解释器,将Python的字节码再编译成机器码。PyPy还提供了JIT编译器和沙盒功能,因此运行速度比CPython要快,以及可以                              安全的运行                        一些不被信任的代码。PyPy还有一个单独的支持微线程的版本。
  4. IronPython                 # Python的代码使用C#来实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似,作者也为同一人。)
  5. 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




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 脚本名,便可以./脚本名来执行脚本
1 #!/usr/bin/pytho #定义用什么解释器或来执行代码
2 
3 print('hello world')  #打印hello world

定义内容编码

  • 在脚本的第二行输入编码格式: # -*-coding:utf-8-*-
  • 如果你的python是2.*的,代码这样写一定会报错:
1 1 #!/usr/bin/env python #定义用什么解释器或来执行代码
2 2 print('你好,世界')  #打印你好,世界

 因为2.*的Python默认为ascii编码无法表示中文。

  • 改成后的样子:
1 1 #!/usr/bin/env python  #定义用什么解释器或来执行代码
2 2 #-*-coding:utf-8-*-  #定义使用什么编码格式来读取代码内容
3 3 print('你好,世界') #打印你好,世界

 因为你的#-*-coding:utf-8-*-告诉了Python我的代码使用utf-8的编码来执行。

注释

  • 注释的意思就是这里的内容不进行存入内存,让代码的可读性变高。
  • 注释单行为#被注是的内容
  • 注释多行为"""被注释的内容"""

执行脚本传入参数

  • 创建两个文件例如 a.py和b.py 在a.py中写入
print('hello A')
  • 在b.py中写
import a  #导入a的内容
print('hello B')  #打印hello B

 那么执行后显示的结果是

1 hello A
2 hello B

pyc文件

  • 提示:代码经过编译可以产生字节码,字节码通过反编译也可以得到代码。当代码丢失时只要字节码还在同样可以运行。

变量

  • 我们首先声明变量 name = 'Wuyongqi'
  • 从上述中可以看出name为变量名,'Wuyongqi'为值。
  • 变量的作用可以理解为简称、昵称他代指内存里某一个地址中的内容。

      

Python编程几月几号是星期几_Python

  • 变量定义的规则:
  • 变量名称只能以数字、字母、下划线来组合命名,但是数字不可以开头。
  • 因为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    #指定使用python解释器执行代码
2 # -*- coding: utf-8 -*-  #指定使用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"  #指定了name1变量代指内存中的Wuyongqi
5 name2 = name1    #指定了name2变量指向name1变量代指的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之后便退出了。

 

  • 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当前的值。