zoukankan      html  css  js  c++  java
  • python基础一

    python 初步认识

    1、python的应用

      python 的创始人为吉多·范罗苏姆(Guido van Rossum) ,中文名字:龟叔。 在1989年的圣诞节期间,为了打发时间

    ,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

    1-1 目前python的主要应用领域:

    •   云计算 : OpenStack
    •   WEB开发: Django
    •   科学运算、人工智能:典型库NumPy
    •   系统运维:运维人员的必备语言
    •   金融:量化交易、金融分析
    •   图形GUI:PyQT、Tkinter

    2、python 的历史

    • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
    • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
    • Granddaddy of Python web frameworks, Zope 1 was released in 1999
    • Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.
    • Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
    • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
    • Python 2.5 - September 19, 2006
    • Python 2.6 - October 1, 2008
    • Python 2.7 - July 3, 2010
    • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
    • Python 3.0 - December 3, 2008
    • Python 3.1 - June 27, 2009
    • Python 3.2 - February 20, 2011
    • Python 3.3 - September 29, 2012
    • Python 3.4 - March 16, 2014
    • Python 3.5 - September 13, 2015
    • Python 3.6 - December 16,2016

    3、 python语言的分类

    编程语言主要从从以下角度进行分类:

    •   编译型和解释型 
    •   静态语言和动态语言
    •   强类型定义语言和弱类型定义语言

    3-1 编译型和解释型 

      编译型是把源程序性的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度快;

      而解释器则是只是执行程序时,才一条一条的解释成机器语言给计算机执行,所以运行速度没有编译后的程序运行的快。

      这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(二进制形式 0101)

    编译型

    优点:编译器一般会有预编译的过程对代码的优化。因为编译只做一次,运行时不需要编译,所以编译型的的程序执行效率高。可以脱离语言环境独立运行。

    缺点:编译之后需要修改的话,需要对整个模块重新编译,编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据不同的操作系统编译不同的可执行文件。

    解释型

    优点:有良好的平台兼容性,在任何环境下都可以运行,前提是安装了解释器。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

    缺点:每次运行的时候都要解释一遍,性能不如编译型语言

    3-2 静态语言和动态语言

    (1) 动态类型语言:动态类型的语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言来编程是,永远也不用给任何变量指定数据类型,改语言会在你第一次赋值时给变量在内部记录数据类型。

    python就是一种典型的动态类型语言

    (2)静态类型语言:静态类型语言就是与动态类型语言想发,他的数据类型是在编译时检查的,也就是说在写程序时要声明所有变量的数据类型,C/c++是静态语言的典型代表。

    3-3强类型定义语言和弱类型定义语言

    (1) 强类型定义语言:强制数据类型定义的语言。也就是说,一个变量如果可以被指定为str类型,那么,如果他没有经过强制转换,他永远就是这个数据类型了。强类型语言是类型安全的语言。

    (2) 弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!

    python 是一门动态解释型的强类型定义语言。

    4、变量 

    a = 1 + 2
    b = 3 * 4
    c = 5*6-20
    print((a+b)/c)
    

      变量的解释:将程序中运算的中间结果暂时存到内存中,以便后续程序调用

       变量的用法: 1、变量是由数字字母下划线任意组合。

             2、变量不能是数字开头。

             3、变量不能是Python中的关键字

             4、变量是要具有可描述性

             5、变量不能使用中文 (python3提供了可以使用中文,但是不建议使用)

             6、变量不能过长

    变量的两种推荐表现形式:

      

    #驼峰体
    
    AgeOfOldboy = 56
    
    NumberOfStudents = 80
    
    #下划线
    
    age_of_oldboy = 56
    
    number_of_students = 80

    5、常量

      常量:一直不变的量。 例如:π

      在Python中没有一个专门的语法代表常量,约定俗称全部大写的变量为常量。放到文件最上面。

    BIRTH_OF_CHINA = 1949

    6、注释

    单行注释: #

    多行注释:''' '''    """  """"

    7、基础数据类型

    int (整型): 范围 -2**31 ~ 2**31-1

    计算使用。 + - * /  // %

    long(长整型):和C语言不同,Python没有限制长整型的大小,但实际上由于机器内存优先,我们使用的长整数数值不可能无限大。(仅限python2版本有)

    str:python 中用引号引起来的就叫做字符串

    type(对象)可以查看这个数据类型是int还是str

    8、用户交互

    author = 'LDoctor'
    name = input('输入名字:',)
    sex = input('输入性别:',)
    print('我的名字是'+name, '我的性别是'+sex)

    9.格式化输出

    ----格式化输出 % 占位符  s,str  d,int
    name = input('输入名字:',)
    age = input('输入年龄:',)
    job = input('输入工作:',)
    hobbie = input('输入爱好:',)
    
    msg = '''------------ info of %s-------------
    Name : %s
    Age  : %d
    job  : %s
    hobbie : %s
    --------------------- end --------------------------
    ''' % (name,name,int(age),job,hobbie)
    
    print(msg)
    
    
    dict = {'name':name,'age':int(age),'job':job,'hobbie':hobbie}
    msg2 = '''------------ info of %(name)s-------------
    Name : %(name)s
    Age  : %(age)d
    job  : %(job)s
    hobbie : %(hobbie)s
    --------------------- end --------------------------
    ''' % dict
    
    print(msg2)
    #格式化输出, 如果 只是单纯想显示 % 输出 ,只需给% 前面+一个%,表示转义
    msg3 = '我叫 %s,年龄%d,学习进度5%%' % (name,int(age)) print(msg3)

    10、流程控制之--if 

    if...else 语句

    单分支

    if 条件:
        满足条件后要执行的代码

    双分支

    复制代码
    """
    if 条件:
        满足条件执行代码
    else:
        if条件不满足就走这段
    """
    BOb = 23
    
    if Bob < 30 :
        print("就这年龄有什么理由不努力呢")
    else:
        print("折腾不动了,洗洗睡了,顺便吃个鸡,啊哈")
    复制代码

    缩进

      看见上述代码,就会知道,每个条件的下一行都缩进了4个空格,这是Python的一大特色,强制缩进,目的是为了让程序知道,这段代码依赖那个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行那些代码呢?

    Python的缩进有以下几个原则:

    • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
    • 同一级别的代码,缩进必须一致
    • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

    多分支

    回到流程控制上来,if...else ...可以有多个分支条件

    复制代码
    if 条件:
        满足条件执行代码
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个    
    else:
        上面所有的条件不满足就走这段

    玩一个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下

    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39
    

    要求用户输入0-100的数字后,你能正确打印他的对应成绩

    score = int(input("输入分数:"))
    
    if score > 100:
        print("我擦,最高分才100...")
    elif score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 60:
        print("C")
    elif score >= 40:
        print("D")
    else:
        print("太笨了...E")

    11、流程控制之--while循环

      11.1 基本循环

        

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

       11.2循环中止语句

        

        如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句。

    • break用于完全结束一个循环,跳出循环体执行循环后面的语句
    • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

      11.3while ... else...

      与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

      

    count = 0
    while count <= 5 :
        count += 1
        print("Loop",count)
    
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")

      逻辑运算

        

      1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

      

      2 ,  x or y , x为真,值就是x,x为假,值是y;

                 x and y, x为真,值是y,x为假,值是x。

    in,not in :

        判断子元素是否在原字符串(字典,列表,集合)中。

    12、初始编码

       python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。

      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个字节保存,中文需要3个字符保存...

    所以,python2的解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),若果没有指定编码格式是utf-8的话,则打印中文会报错。

       

  • 相关阅读:
    网络基础复习02
    网络基础复习01
    python 基础复习之数据库02
    python 基础复习之数据库01
    python 基础复习 13
    python基础复习 12
    python基础复习 11
    python基础复习10
    列表切片,内置方法
    文件操作基础流程
  • 原文地址:https://www.cnblogs.com/lyh0301/p/8707271.html
Copyright © 2011-2022 走看看