• Python开发 第一篇 python的前世今生


    Python前世今生

    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  

    最新的TIOBE排行榜,Python赶超PHP占据第五!!!

    由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!

    Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维自动化测试大数据分析、爬虫、Web 等。

    注视:上述重点字体表示该公司主要使用Python语言开发

    为什么是Python而不是其他语言?

    C 和 Python、Java、C#等

        C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

    其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

    Python 和 C  Python这门语言是由C开发而来

      对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
      对于速度:Python的运行速度相较与C,绝逼是慢了

    Python 和 Java、C#等

      对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
      对于速度:Python在速度上可能稍显逊色

    所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

    Python的种类

      • 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

    windows:

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

    linux:

    1
    2
    3
    无需安装,原装Python环境
      
    ps:如果自带2.6,请更新至2.

    Python 入门

    一、第一句Python代码

    在 /home/dev/ 目录下创建 hello.py 文件,内容如下:

    1
    print "hello,world"

    执行 hello.py 文件,即: python /home/dev/hello.py

    python内部执行过程如下

    二、解释器

    上一步中执行 python /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

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

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

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

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

    三、内容编码

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

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

    四、注释

      当行注视:# 被注释内容

      多行注释:""" 被注释内容 """

    五、执行脚本传入参数

    Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

    • Python内部提供的模块
    • 业内开源的模块
    • 程序员自己开发的模块

    Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    import sys
      
    print sys.argv

    六、 pyc 文件

    执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

    ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。

    七、变量

    1、声明变量

    1
    2
    3
    4
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    name = "李俊"

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

    变量的作用:昵称,其代指内存里某个地址中保存的内容

    变量定义的规则:

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

    2、变量的赋值

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    name1 = "李俊"
    name2 = "李俊1"
    八、输入
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    # 将用户输入的内容赋值给 name 变量
    name = raw_input("请输入用户名:")
      
    # 打印输入的内容
    print name

    输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    import getpass
      
    # 将用户输入的内容赋值给 name 变量
    pwd = getpass.getpass("请输入密码:")
      
    # 打印输入的内容
    print pwd

    九、流程控制和缩进

    需求一、用户登陆验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/usr/bin/env python
    # -*- coding: encoding -*-
      
    # 提示输入用户名和密码
      
    # 验证用户名和密码
    #     如果错误,则输出用户名或密码错误
    #     如果成功,则输出 欢迎,XXX!
     
     
    import getpass
      
      
    name = raw_input('请输入用户名:')
    pwd = getpass.getpass('请输入密码:')
      
    if name == "alex" and pwd == "cmd":
        print "欢迎,alex!"
    else:
        print "用户名和密码错误"

    需求二、根据用户输入内容输出其权限

    1
    2
    3
    4
    5
    6
    # 根据用户输入内容打印其权限
      
    # alex --> 超级管理员
    # eric --> 普通管理员
    # tony,rain --> 业务主管
    # 其他 --> 普通用户
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    name = raw_input('请输入用户名:')
      
      
    if name == "lijun"
        print "超级管理员"
    elif name == "eric":
        print "普通管理员"
    elif name == "tony" or name == "rain":
        print "业务主管"
    else:
        print "普通用户"

    十、while循环

    1、基本循环

    1
    2
    3
    4
    5
    6
    while 条件:
         
        # 循环体
     
        # 如果条件为真,那么循环体则执行
        # 如果条件为假,那么循环体不执行

    2、break

    break用于退出所有循环

    1
    2
    3
    4
    while True:
        print "123"
        break
        print "456"

    3、continue

    continue用于退出当前循环,继续下一次循环

    1
    2
    3
    4
    while True:
        print "123"
        continue
        print "456"

    练习题

    1、使用while循环输入 1 2 3 4 5 6     8 9 10

    2、求1-100的所有数的和

    3、输出 1-100 内的所有奇数

    4、输出 1-100 内的所有偶数

    5、求1-2+3-4+5 ... 99的所有数的和

    6、用户登陆(三次机会重试)

    本系列博文包含H5全栈 java全栈 Python基础、前端开发、Web框架、缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!!
  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第50章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第49章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第48章 读书笔记(待更新)
    Spring Boot 中使用 Quartz 实现任务调度
    实战 FastDFS Java 客户端上传文件
    分布式文件系统之 FastDFS
    Java 持久层框架之 MyBatis
    C语言实现贪吃蛇
    [转载]分享三篇非常好的学习心得
    selenium加载cookie报错问题:selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
  • 原文地址:https://www.cnblogs.com/lijun6/p/9291978.html
Copyright © 2020-2023  润新知