Python基础

Python 简介与环境搭建

Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。



Python 发展历史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。



Python 特点

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  • 2.易于阅读:Python代码定义的更清晰。

  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  • 8.数据库:Python提供所有主要的商业数据库的接口。

  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

  • Python 环境搭建

    本章节我们将向大家介绍如何在本地搭建Python开发环境。

    Python可应用于多平台包括 Linux 和 Mac OS X。

    你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。

    • Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。)
    • Win 9x/NT/2000
    • Macintosh (Intel, PPC, 68K)
    • OS/2
    • DOS (多个DOS版本)
    • PalmOS
    • Nokia 移动手机
    • Windows CE
    • Acorn/RISC OS
    • BeOS
    • Amiga
    • VMS/OpenVMS
    • QNX
    • VxWorks
    • Psion
    • Python 同样可以移植到 Java 和 .NET 虚拟机上。


    Python下载

    Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:

    Python官网:http://www.python.org/

    你可以在以下链接中下载 Python 的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。

    Python文档下载地址:www.python.org/doc/



    Python安装

    Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。

    您需要下载适用于您使用平台的二进制代码,然后安装Python。

    如果您平台的二进制代码是不可用的,你需要使用C编译器手动编译源代码。

    编译的源代码,功能上有更多的选择性, 为python安装提供了更多的灵活性。

    以下为不同平台上安装Python的方法:

    Unix & Linux 平台安装 Python:

    以下为在Unix & Linux 平台上安装 Python 的简单步骤:

    • 打开WEB浏览器访问http://www.python.org/download/
    • 选择适用于Unix/Linux的源码压缩包。
    • 下载及解压压缩包。
    • 如果你需要自定义一些选项修改Modules/Setup
    • 执行 ./configure 脚本
    • make
    • make install

    执行以上操作后,Python会安装在 /usr/local/bin 目录中,Python库安装在/usr/local/lib/pythonXX,XX为你使用的Python的版本号。

    Window 平台安装 Python:

    以下为在 Window 平台上安装 Python 的简单步骤:

    • 打开WEB浏览器访问http://www.python.org/download/
    • 在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。
    • 要使用安装程序 python-XYZ.msi, Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持MSI。Windows XP和更高版本已经有MSI,很多老机器也可以安装MSI。
    • 下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。

    MAC 平台安装 Python:

    最近的Macs系统都自带有Python环境,你也可以在链接 http://www.python.org/download/ 上下载最新版安装。



    环境变量配置

    程序和可执行文件可以在许多目录,而这些路径很可能不在操作系统提供可执行文件的搜索路径中。

    path(路径)存储在环境变量中,这是由操作系统维护的一个命名的字符串。这些变量包含可用的命令行解释器和其他程序的信息。

    Unix或Windows中路径变量为PATH(UNIX区分大小写,Windows不区分大小写)。

    在Mac OS中,安装程序过程中改变了python的安装路径。如果你需要在其他目录引用Python,你必须在path中添加Python目录。

    在 Unix/Linux 设置环境变量

    • 在 csh shell: 输入 
      setenv PATH "$PATH:/usr/local/bin/python"
      , 按下"Enter"。
    • 在 bash shell (Linux): 输入 
      export PATH="$PATH:/usr/local/bin/python" 
      ,按下"Enter"。
    • 在 sh 或者 ksh shell: 输入 
      PATH="$PATH:/usr/local/bin/python" 
      , 按下"Enter"。

    注意: /usr/local/bin/python 是 Python 的安装目录。

    在 Windows 设置环境变量

    在环境变量中添加Python目录:

    在命令提示框中(cmd) : 输入 

    path=%path%;C:\Python 
    按下"Enter"。

    注意: C:\Python 是Python的安装目录。

    也可以通过以下方式设置:

    • 右键点击"计算机",然后点击"属性"
    • 然后点击"高级系统设置"
    • 选择"系统变量"窗口下面的"Path",双击即可!
    • 然后在"Path"行,添加python安装路径即可(我的D:\Python32),所以在后面,添加该路径即可。 ps:记住,路径直接用分号";"隔开!
    • 最后设置成功以后,在cmd命令行,输入命令"python",就可以有相关显示。


    Python 环境变量

    下面几个重要的环境变量,它应用于Python:

    变量名 描述
    PYTHONPATH PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。
    PYTHONSTARTUP Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此变量指定的文件中的代码。
    PYTHONCASEOK 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写.
    PYTHONHOME 另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。


    运行Python

    有三种方式可以运行Python:

    1、交互式解释器:

    你可以通过命令行窗口进入python并开在交互式解释器中开始编写Python代码。

    你可以在Unix,DOS或任何其他提供了命令行或者shell的系统进行python编码工作。

    $ python # Unix/Linux 

    或者 

    C:>python # Windows/DOS

    以下为Python命令行参数:

    选项 描述
    -d 在解析时显示调试信息
    -O 生成优化代码 ( .pyo 文件 )
    -S 启动时不引入查找Python路径的位置
    -V 输出Python版本号
    -X 从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。
    -c cmd 执行 Python 脚本,并将运行结果作为 cmd 字符串。
    file 在给定的python文件执行python脚本。

    2、命令行脚本

    在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:

    $ python script.py # Unix/Linux 

    或者 

    C:>python script.py # Windows/DOS

    注意:在执行脚本时,请检查脚本是否有可执行权限。

    3、集成开发环境(IDE:Integrated Development Environment): PyCharm

    PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。

    PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……

    PyCharm 下载地址 : https://www.jetbrains.com/pycharm/download/

    继续下一章之前,请确保您的环境已搭建成功。如果你不能够建立正确的环境,那么你就可以从您的系统管理员的帮助。

    在以后的章节中给出的例子已在 Python2.7.6 版本测试通过。

    Python 中文编码

    前面章节中我们已经学会了如何用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。

    Python 文件中如果未指定编码,在执行过程会出现报错:

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

    以上程序执行输出结果为:

      File "test.py", line 2
    SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

    Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

    解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了

    注意:#coding=utf-8 的 = 号两边不要空格。

    实例(Python 2.0+)

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

    运行实例 »

    输出结果为:

    你好,世界

    所以如果大家在学习过程中,代码中包含中文,就需要在头部指定编码。

    注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。

    注意:如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:

    SyntaxError: (unicode error) utf-8 codec cant decode byte 0xc4 in position 0:
    invalid continuation byte

    Pycharm 设置步骤:

    • 进入 file > Settings,在输入框搜索 encoding
    • 找到 Editor > File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。

    笔记列表

    1.    Airmin

        lau***ceair@gmail.com

      其实pycharm右下角就可以切换编码,不用这么麻烦:

      但是,如果你文件已经指定了编码 # -*- coding: UTF-8 -*-,这里就不能修改了:

    Python 基础语法

    Python 语言与 Perl,C 和 Java 等语言有许多相似之处。但是,也存在一些差异。

    在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程。


    第一个 Python 程序

    交互式编程

    交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。

    linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:

    $ python
    Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 

    Window 上在安装 Python 时已经已经安装了默认的交互式编程客户端,提示窗口如下:

    在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果:

    >>> print "Hello, Python!";

    在 Python 2.7.6 版本中,以上实例输出结果如下:

    Hello, Python!

    脚本式编程

    通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。

    让我们写一个简单的 Python 脚本程序。所有 Python 文件将以 .py 为扩展名。将以下的源代码拷贝至 test.py 文件中。

    print "Hello, Python!";

    这里,假设你已经设置了 Python 解释器 PATH 变量。使用以下命令运行程序:

    $ python test.py

    输出结果:

    Hello, Python!

    让我们尝试另一种方式来执行 Python 脚本。修改 test.py 文件,如下所示:

    #!/usr/bin/python
    
    print "Hello, Python!";

    这里,假定您的Python解释器在/usr/bin目录中,使用以下命令执行脚本:

    $ chmod +x test.py     # 脚本文件添加可执行权限
    $ ./test.py

    输出结果:

    Hello, Python!

    Python 标识符

    在 Python 里,标识符由字母、数字、下划线组成。

    在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

    Python 中的标识符是区分大小写的。

    以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;

    以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

    Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

    >>> print 'hello';print 'runoob';
    hello
    runoob

    Python 保留字符

    下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。

    所有 Python 的关键字只包含小写字母。

    and exec not
    assert finally or
    break for pass
    class from print
    continue global raise
    def if return
    del import try
    elif in while
    else is with
    except lambda yield

    行和缩进

    学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。

    缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:

    if True:
        print "True"
    else:
      print "False"
     

    以下代码将会执行错误:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # 文件名:test.py
    
    if True:
        print "Answer"
        print "True"
    else:
        print "Answer"
        # 没有严格缩进,在执行时会报错
      print "False"

    执行以上代码,会出现如下错误提醒:

    $ python test.py  
      File "test.py", line 10
        print "False"
                    ^
    IndentationError: unindent does not match any outer indentation level

    IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

    如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。

    因此,在 Python 的代码块中必须使用相同数目的行首缩进空格数。

    建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用


    多行语句

    Python语句中一般以新行作为为语句的结束符。

    但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

    total = item_one + \
            item_two + \
            item_three

    语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:

    days = ['Monday', 'Tuesday', 'Wednesday',
            'Thursday', 'Friday']

    Python 引号

    Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。

    其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

    word = 'word'
    sentence = "这是一个句子。"
    paragraph = """这是一个段落。
    包含了多个语句"""

    Python注释

    python中单行注释采用 # 开头。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # 文件名:test.py
    
    # 第一个注释
    print "Hello, Python!";  # 第二个注释

    输出结果:

    Hello, Python!

    注释可以在语句或表达式行末:

    name = "Madisetti" # 这是一个注释

    python 中多行注释使用三个单引号(''')或三个双引号(""")。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # 文件名:test.py
    
    
    '''
    这是多行注释,使用单引号。
    这是多行注释,使用单引号。
    这是多行注释,使用单引号。
    '''
    
    """
    这是多行注释,使用双引号。
    这是多行注释,使用双引号。
    这是多行注释,使用双引号。
    """

    Python空行

    函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

    空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

    记住:空行也是程序代码的一部分。


    等待用户输入

    下面的程序执行后就会等待用户输入,按回车键后就会退出:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    raw_input("按下 enter 键退出,其他任意键显示...\n")   注意 版本3.x版本只有input

    以上代码中 ,\n 实现换行。一旦用户按下 enter(回车) 键退出,其它键显示。

  • 版本和3.x版本的print用法不一样的。
    2.x是“print “123””
    3.x是“print(“123”)

  • 行以上代码,输入结果为:

    $ python test.py
    runoob

    Print 输出

    print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    x="a"
    y="b"
    # 换行输出
    print x
    print y
    
    print '---------'
    # 不换行输出(3.x版本是不正确的)
    print x,
    print y, 
    #-------------------------------
    # 不换行输出
    print x,y

    以上实例执行结果为:

    a
    b
    ---------
    a b a b

------------------------------------------------------------------------------------------------


D:\pythonwork>python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-b     : issue warnings about str(bytes_instance), str(bytearray_instance)
         and comparing bytes/bytearray with str. (-bb: issue errors)
-B     : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser; also PYTHONDEBUG=x
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
-h     : print this help message and exit (also --help)
-i     : inspect interactively after running script; forces a prompt even
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
-I     : isolate Python from the user's environment (implies -E and -s)
-m mod : run library module as a script (terminates option list)
-O     : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
-OO    : remove doc-strings in addition to the -O optimizations
-q     : don't print version and copyright messages on interactive startup
-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
-S     : don't imply 'import site' on initialization
-u     : unbuffered binary stdout and stderr, stdin always buffered;
         also PYTHONUNBUFFERED=x
         see man page for details on internal buffering relating to '-u'
-v     : verbose (trace import statements); also PYTHONVERBOSE=x
         can be supplied multiple times to increase verbosity
-V     : print the Python version number and exit (also --version)
         when given twice, print more information about the build
-W arg : warning control; arg is action:message:category:module:lineno
         also PYTHONWARNINGS=arg
-x     : skip first line of source, allowing use of non-Unix forms of #!cmd
-X opt : set implementation-specific option
file   : program read from script file
-      : program read from stdin (default; interactive mode if a tty)
arg ...: arguments passed to program in sys.argv[1:]


Other environment variables:
PYTHONSTARTUP: file executed on interactive startup (no default)
PYTHONPATH   : ';'-separated list of directories prefixed to the
               default module search path.  The result is sys.path.
PYTHONHOME   : alternate <prefix> directory (or <prefix>;<exec_prefix>).
               The default module search path uses <prefix>\lib.
PYTHONCASEOK : ignore case in 'import' statements (Windows).
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
PYTHONFAULTHANDLER: dump the Python traceback on fatal errors.
PYTHONHASHSEED: if this variable is set to 'random', a random value is used
   to seed the hashes of str, bytes and datetime objects.  It can also be
   set to an integer in the range [0,4294967295] to get hash values with a
   predictable seed.
PYTHONMALLOC: set the Python memory allocators and/or install debug hooks
   on Python memory allocators. Use PYTHONMALLOC=debug to install debug
   hooks.


D:\pythonwork>python -V
Python 3.6.1
------------------------------------------------------------------------------------------

多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

如下实例:

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 

命令行参数

很多程序可以执行一些操作来查看一些基本信息,Python 可以使用 -h 参数查看各参数帮助信息:

$ python -h 
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... 
Options and arguments (and corresponding environment variables): 
-c cmd : program passed in as string (terminates option list) 
-d     : debug output from parser (also PYTHONDEBUG=x) 
-E     : ignore environment variables (such as PYTHONPATH) 
-h     : print this help message and exit 
 
[ etc. ] 

我们在使用脚本形式执行 Python 时,可以接收命令行输入的参数,具体使用可以参照 Python 命令行参数

笔记列表

  1.    younger

      129***3390@qq.com

    执行脚本传入参数,使用sys模块,编辑 test.py 如下

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import sys
    
    print sys.argv

    sys.argv 用来获取命令行参数

    运行命令,执行结果:

    ./test.py hello
    ['./test.py', 'hello']

    sys.argv[0] 代表文件本身路径,所带参数从 sys.argv[1] 开始。

    younger

       younger

      129***3390@qq.com

    6个月前 (08-03)
  2.    qing

      282***728@qq.com

       参考地址

    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。

    #!/usr/bin/python : 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器;

    #!/usr/bin/env python(推荐): 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。

    #!/usr/bin/python 相当于写死了python路径;

    #!/usr/bin/env python 会去环境设置寻找 python 目录,推荐这种写法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值