zoukankan      html  css  js  c++  java
  • 初学Python

    Python介绍

    •   Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
    •   Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[1]  。
    •   Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
    •   Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[2]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
     

    Python应用领域:

    •   系统编程:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具[7]  。
    •   图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
    •   数学处理:NumPy扩展提供大量与许多标准数学库的接口。
    •   文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
    •   数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
    •       网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
    •   Web编程:应用的开发语言,支持最新的XML技术。
    •   多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
    •   pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。
    •   黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。
    •   用Python写简单爬虫

    python特点:

      优点:
    •   简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
    •   易学:Python极其容易上手,因为Python有极其简单的说明文档[6]  。
    •   速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。[4] 
    •   免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
    •   高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
    •   可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
    •   解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
    运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。
    在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
    面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
    •   可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
    •   可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
     
    缺点:
    •   单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
    • 独特的语法
      这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。
    •   运行速度慢:这里是指与C和C++相比。

    Python 的语言:

    编译型和解释型:

    • 编译型:c/c++ 全部编译完毕在执行,快:一次把所有的代码转换成机器语言,然后写成可执行文件
    • 解释型:解释型程序是将编译的过程放到执行过程中,慢:在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行 优点:更容易移植

    动态语言和静态语言:

    通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

    • 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
    • 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

    Python解释器:

    • 当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
    • 由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

    CPython

    • 当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

    CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

    IPython

    • IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
    • CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

    PyPy

    • PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
    • 绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

    Python安装

    windows

    • 下载安装包
        https://www.python.org/downloads/
    • 安装
        默认安装路径:D:Python3.5
    • 配置环境变量
        【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
        如:原来的值;D:Python3.5,切记前面有分号

    linux、Mac

    • 无需安装,原装Python环境
        ps:如果自带2.6,请更新至2.7
    Python练习:
    PS:

    1  从这里开始,下面及以后所有的程序都在python3 的环境中编写并运行,不考虑兼容2.x 版本的python

    2  博主假定大家已经部署完python3并安装好了Pycharm 

     

    Pycharm编写:Hello World

    #Author:xp
    print("Hello World!")

     

    指定解释器

    如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

    #!/usr/bin/env python 
    print "hello,world"

    如此一来,执行: ./hello.py 即可。

    ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

     

    Python变量定义的规则:

     1、变量名只能是 字母、数字或下划线的任意组合

     2、变量名的第一个字符不能是数字

    以下关键字不能声明为变量名

       

     ['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']

    声明变量

    #_*_coding:utf-8_*_
    name = "xp"

    上述代码声明了一个变量,变量名为: name,变量name的值为:"xp" 

    变量的赋值
    name = "xp"
    name2 = name
    print("my name is",name,name2)
    name = "Paochege"
    print(name,name2)
    while循环+if判断猜数字
    #Author:xp
    age_of_oldboy = 56
    count =0
    while count <3:
        guess_age = int (input("guess age:"))
        if guess_age == age_of_oldboy:
            print("yes ,you got it.")
            break
        elif guess_age > age_of_oldboy:
            print("think smaller")
        else:
            print("think bigger!")
        count +=1
        if count == 3:
            countine_confirm = input("do you want to leep guessing..?")
            if countine_confirm != 'n':
                count =0
    

    for加if判断循环猜数字

    # Author:xp
    
    age_of_oldboy = 56
    for i in range(3):
        guess_age = int(input("guess age:") )
        if guess_age == age_of_oldboy :
            print("yes, you got it. ")
            break
        elif guess_age > age_of_oldboy:
            print("think smaller...")
        else:
            print("think bigger!")
    else:
        print("you have tried too many times..fuck off")
    

    用户输入账户密码:

    # Author:xp
    import getpass
    
    _username = 'xp123'
    _password = 'abc123'
    username = input("username:")
    #password = getpass.getpass("password:")
    password = input("password:")
    if _username == username and _password == password:
        print("Welcome user {name} login...".format(name=username))
    else:
        print("Invalid username or password!")
  • 相关阅读:
    Vue路由和组件分别在什么场景使用
    mybatis返回集合对象包含List<String>
    vue登录页+验证码+MD5加密
    mybatis 查询树形结构
    解决Vue Router报错 Error: Cannot find module ‘@/views/xxx‘ at webpackEmptyContext
    HttpServletRequest 在Filter中添加header
    CRM体系中的SFA(SaleForce Automation)应该怎么设计?
    Google Analytics Advertisement 广告 URL : 数据产品知识 UTM
    Win11要的TPM 2.0不一定是独立芯片,你的CPU固件可能已经支持 || 杨澜对话尹志尧:美国顶尖半导体专家华人很多,国内却奇缺
    mysql SQL注入攻击 解决Orm工具Hibernate,Mybatis, MiniDao 的 sql 预编译语句 ;解决非Orm工具JDBCTemplate的
  • 原文地址:https://www.cnblogs.com/xgblog/p/5712629.html
Copyright © 2011-2022 走看看