zoukankan      html  css  js  c++  java
  • python之初接触

    编程语言相关

    1什么是编程语言

    编程语言即语言,语言的本质就是沟通,因而编程语言与英语 、法语、日语等所有语言并无区别,只不过英语是人与人之间沟通的介质,而编程语言则是程序员与计算机沟通的介质。
    
    程序员把自己想要说的话用编程的语言写到文件里,这其实就开发了一个程序,接下来让计算机按照文件里说的内容去做事情,这就是程序的执行

    2 编程语言的分类以及优缺点

    编程语言从诞生开始到现在大致经历了三个阶段:机器语言  汇编语言  高级语言

    一:机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
       优点:灵活、直接执行和速度快。
    缺点:不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。
    二:汇编语言:汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的,标识符更容易识别和记忆。它同样需要编程
    者将每一步具体的操作用命令的形式写出来。
       优点:能完成一般高级语言所不能实现的操作,而且源程序经汇编生成的可执行文件比较小,且执行速度很快。
    缺点:源程序比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识。
    三:高级语言:明确地讲,高级语言就是说人话,用人类能读懂的(比如英文)字符编程。高级语言是绝大多数编程者的选择。和汇编语言相比,它不但
    将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等。
    优点:大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
    缺点:高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。
    高级语言按照转换方式分为俩类:
    解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(先翻译/编译成字节码,然后由解释器解释执行,这个过程程序员都无需关心了,享受这种便利即可)。
      
    python就是解释类语言,此外,JavaScript / Perl /Shell等都是解释型语言。
        优点:这种方式比较灵活,可以动态地调整、修改应用程序。    
        缺点:效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器。
    
    编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言)。
      
        优点:其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
        缺点:但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。大多数的编程语言都是编译型的
               例如Visual C++、Visual Foxpro、Delphi等。
    View Code
    编程语言经历了:机器语言-------->汇编语言------------>高级语言(java,C#,php,ruby,python)

                 1:开发效率从低到高                        2:执行效率从高到低                                               3:掌握难度从难到易

    注解:执行效率不是问题,硬件已经足够用,于是开发效率成了关键,因而高级语言在当今世界大行其道

     编程语言排序表

    python简介

    python应用领域:

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

    python语言和其他语言的区别:

    C 和 Python、Java、C#等
    
      C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
    
      其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
    
      Python 和 C  Python这门语言是由C开发而来
    
      对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
    
           Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
    
      对于速度:Python的运行速度相较与C,慢很多。比其他几门语言速度上也比较慢。
    
           速度永远不是关键,对大多数的应用程序来说,并不需要这么快的运行速度,因为用户根本感觉不出来。
    
      对于加密:对于编译型语言如C语言来说,可以将编译后的代码发给用户,用户反解几乎是不可能的,相当于自带加密功能了。
    
           而解释型语言如python只能发布源码给用户,但现在主流的思想是软件开源。
    
    复制代码
    View Code

    python语言的种类:

    View Code

    python环境

    windows系统:

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

    Linux系统

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

    更新python

    windows系统

    卸载重装即可

    Linux系统

    Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python

    查看默认Python版本
    python -V
    1、安装gcc,用于编译Python源码
        yum install gcc
    2、下载源码包,https://www.python.org/ftp/python/
    3、解压并进入源码文件
    4、编译安装
        ./configure
        make all
        make install
    5、查看版本
        /usr/local/bin/python2.7 -V
    6、修改默认Python版本
        mv /usr/bin/python /usr/bin/python2.6
        ln -s /usr/local/bin/python2.7 /usr/bin/python
    7、防止yum执行异常,修改yum使用的Python版本
        vi /usr/bin/yum
        将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
    View Code

     python入门

    1. hello world:

    在D:python_test目录下新建文件hello.py,编写代码如下

    print('hello world')

    执行hello.py,即python D:python_testhello.py

    2指定解释器

    window平台下python D:python_testhello.py时,明确的指出 hello.py 脚本由 python 解释器来执行。

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

    #!/usr/bin/env python
    print('hello world')

     3 字符编码

    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 文件中的代码时,会对内容进行编码

    在python3中默认utf-8,,可以编码中文

    在python2中默认ascill,ascii码无法表示中文

    如果是如下代码的话:

    #!/usr/bin/env python 
    print "你好,世界"
    --->报错:ascii码无法表示中文

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

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

    4. 注释:

    单行注视:# 被注释内容

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

    注释快捷键:选中被注释的内容,ctrl+?注释选中的内容,再次ctrl+?取消注释

    5.执行脚本传入参数

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

    (1)Python内部提供的模块;(2)业内开源的模块;(3)程序员自己开发的模块

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

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

    执行:

    C:UsersAdministrator>python D:python_testhello.py arg1 arg2 arg3
    ['D:\python_test\hello.py', 'arg1', 'arg2', 'arg3']

    6.pyc文件

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

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

    7.变量

    变量的声明(定义)

    #!/usr/bin/env python
     
    name='egon'

    变量定义的规则:

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

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

      关键字不能声明为变量名

    变量的赋值

    #!/usr/bin/env python
     
    name1='lhf'
    name2='egon'

    变量指向被赋值的内容

     

    #!/usr/bin/env python
     
    name1='lhf'
    name2=name1

    变量的存在意义:程序执行的本质在于处理一系列状态的变化,变量就用来保存某一种状态,比如 level=1,age=10,name='egon',变量的值的修改(即变量的赋值)就是一种状态的变化,不同的数据类型用来表示不同的状态,比如数 字类型用来表示人的年纪,等级,身份证等等

    #!/usr/bin/env python
    #一个游戏人物的等级由1级升到2级
    level=1
    level=2
    #一个游戏帐号的密码由'123'改成'456'
    passwd='123'
    passwd='456'
    #一个人的名字有'by'改成'bypp'
    name='by'
    name='bypp'

    8.输入

    #!/usr/bin/env python
     
    name=input('请输入用户名:')
    print(name)

    执行:

    C:UsersAdministrator>python D:python_testhello.py
    请输入用户名:bypp
    bypp

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

    #!/usr/bin/env python
     
    import getpass
    password=getpass.getpass('请输入密码:')
    print(password)

    执行:

    C:UsersAdministrator>python D:python_testhello.py
    请输入密码:
    123456

    9.控制流程和缩进

    流程控制:

      例子一、用户登陆验证
     
    #!/usr/bin/env python
     
    name=input('请输入用户名字:')
    password=input('请输入密码:')
     
    if name == 'bypp' and password == '123':
        print('bypp login success')
    else:
        print('用户名或密码错误')

    例子二、根据用户输入内容输出其权限

    #!/usr/bin/env python
    #根据用户输入内容打印其权限
     
    '''
    bypp --> 超级管理员
    tom  --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
    '''
    name=input('请输入用户名字:')
     
    if name == 'bypp':
        print('超级管理员')
    elif name == 'tom':
        print('普通管理员')
    elif name == 'jack' or name == 'rain':
        print('业务主管')
    else:
        print('普通用户')

    缩进:

    python中子内容统一被缩进相同的空格数,如1,2,3,4,5,6,,7,8等随意设定,只需要统一即可。

    但python中默认缩进4个空格

    10.while循环

    1基本循环

    while 条件:
          
        # 循环体
      
        # 如果条件为真,那么循环体则执行
        # 如果条件为假,那么循环体不执行

    2break循环

    break用于退出所有循环
        
    while True:
        print "123"
        break
        print "456"

    3continue循环

    continue用于退出当前循环,继续下一次循环
    
    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、用户登陆(三次机会重试)

  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/bypp/p/7171655.html
Copyright © 2011-2022 走看看