首页 > 代码库 > Python第一天

Python第一天

1、Python简介

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

Python的优点

1、Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。开发效率非常高,

2、Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子

3、高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

4、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行。

5、可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

6、可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。 

Python缺点

1、运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

2、代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

安装Python

linux系统:

无需安装,原装Python环境,如果自带2.6,请更新至2.7或者3.5,根据自身要求,Ubuntu上的Python更新快,centos上的Python版本比较旧

windows系统:

1、下载安装包

    https://www.python.org/downloads/
2、安装
    安装路径:自己定义,默认C盘
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python3,前面有分号出现如下图表明安装成功:
技术分享

Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件,比较常见的有:

  • 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的字节码字节码再编译成机器码。
  • RubyPython、Brython ...

Python入门

第一个Python程序

在linux 下创建一个文件叫hello.py,并输入

>>> print ‘hello, world‘hello, world

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 -*-

python2不支持中文,要显示中文必须首先定义字符集:

#-*-coding:utf-8 -*-

行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

username = input("username:")password = input("password:")if username == "zyj" and password == "123456":    print("welcome!")else:    print("wrong username or password")

否则会提示:IndentationError:(缩进错误),同一级别的代码必须保持一致!!!

多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:

total = item_one +         item_two +         item_three

在  [], {}, 或 () 中的多行语句,不需要使用反斜杠(\),例如:

total = [item_one, item_two, item_three,        item_four, item_five]

变量

name = "zyj"name2 = nameprint(name,name2)name = "yzj"print(name,name2)

上述代码先声明一个变量name,值为zyj,又声明一个变量值为name

变量定义规则

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 以下关键字不能声明为变量名
  4. [‘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‘]

 Python3解释器

Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在/usr/local/python3 目录中。

安装完成后,我们可以将路径 /usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python3 。

$ PATH=$PATH:/usr/local/python3/bin/python3    # 设置环境变量$ python3 --versionPython 3.5.2

内容编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

#!/usr/bin/env python  print "你好,世界

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python# -*- coding: utf-8 -*-  print "你好,世界"

总结:

python2不支持中文,要显示中文必须首先定义字符集:

#-*-coding:utf-8 -*-

Python3的注释

单行注释前面加#号,多行注释加三个双引号或者三个单引号,Python中单双引号作用一样,单双引号代表字符串为单行(在同一行使用)如下为错误使用:

intro = "My name is zyj,I am 26 years old,I like girl"

如果要这样写可以使用如下写法:

intro = """My name is zyjI am 26 years oldI like girl"""print(intro)    

解释:三个单引号或者双引号可以注释多行,同时也可以表示一个段落。

总结:

单行注释:# 被注释内容

多行注释:""" 被注释内容 """ or‘‘‘被注释内容‘‘‘
"""多行注释"""即可以代表一个多行注释,也可以代表一个段落

 

Python第一天