十分钟看懂python3语言特性

作者: 心际花园 | 来源:发表于2017-08-04 17:46 被阅读154次

    十分钟看懂python3语言特性

    看了王垠的《如何掌握所有程序语言》,感触甚深。如果说程序语言有其通用规律的话,那就是语言特性,也就是这些语言的通用概念。这些概念的具体语法的形式可能都不一样,但是所内涵的功能是一致的,比如英语中的bird和汉语中,其实指的都是同一种事物,关键是它们怎么运作的,而不是它们的形式是什么。

    掌握语言特性,一开始要掌握最基本、最简单的概念和用法,然后由简单到复杂。不是让你从头到尾的学,而是先掌握框架,再逐渐丰富。

    下面,尝试写出python的语言特性。

    一、字符串和数

    1.字符串

    所有在单引号‘ ’、双引号“ ”、三引号‘’‘ ’‘’“”“ ”“”里面的单词、句子和数字等都是字符串。其中三个引号可以换行。

    ‘good’

    '''123
    456'''
    

    2.数字

    数字不用加引号,包括整数,浮点数(带小数点的数和科学计数法的数)和复数。

    1

    3.14156

    10E-10

    (1+2j)

    二、变量

    字符串、数、函数、数据结构、类、类的属性等对象通过 = 赋值给变量。

    a=55

    b='good'

    c=[1, 2, 3]

    变量分为公共变量,特殊变量和私有变量.

    1.公共变量。名称前后不带_,可以正常使用。

    2.特殊变量。名称前后带_,一般在Python里有特殊用途,如

    _main_

    _name_

    3.私有变量。名称前带_,不应该被直接引用。

    三、算术运算

    1.加减乘除,大于小于等于,变成二进制位移,以及二进制求同求异。

    2.优先级跟数学算术一样。

    3.字符串也可以进行算数运算

    'abc'*3
    

    四、数据结构

    数据结构,Data Structures,就是储存数据的容器。数据包括字符串和数等对象。

    四种数据结构:

    1.列表[list],可以增删修改。

    2.元组(tuple),不能修改。

    3.字典,dict,格式如{key:value},可以增删修改。

    4.集合,{set },储存key,不储存value,可以增删。

    五、控制结构

    1.if

    如果...那么。

    if ... :
       代码块
    elif ...:
       代码块
    else:
       代码块
    

    2.while

    如果是TRUE,那么执行下面代码。

    while True:
        代码块
    

    3.for

    for ....in 循环,可迭代出(就是一个个取出)列表、元组、字典和字符串等对象里的元素。

    for n in [1,2,3]:
        print(n)
    

    4.break和continue

    break和continue用在 if,while和for里面。

    break是停止所有循环,continue是停止执行本次循环中continue下面的语句,继续执行下个循环。

    六、函数定义

    python有内置函数和自定义函数。内置函数是python定义好的,知道名称就可以直接使用,自定义函数就是用def去定义。

    1.定义一个函数,def

    def 函数名(参数):
        代码块
        return ...
    
    1. 参数类别

      参数共有五种

    def 函数名(位置参数,默认参数,*可变参数,**关键字参数,命名关键字参数):
        代码块
        return 
    

    (1)位置参数

    放在函数名称的( )里,且不带*,也不在 *参数 后的参数。

    举例

    def add(x):
        return x*x  
    

    这个x就是位置参数

    (2)默认参数

    在函数名称后面的( )里,给参数赋值的参数。

    举例

    def add(n,k=2):
        reutrn n+k
    
    add(4)  #只需要给n赋值即可
    

    这里面的k就是默认参数。

    (3)可变参数

    可变参数,是指传入参数的个数可以变化,从0到任意个参数,均可。

    形式为

    def  函数名称(*可变参数):
        代码块
    

    举例

    def calc(*n):
        sun=0
        for x in n:
            sum=sum+x
        return sum
    
    calc(1,2)
    
    num=[1,2,3]  #如果传入的是个列表,则在列表名称前面加上*
    calc(*num)
    
    num=(1,2,3)#如果传入的是个元组,则在元组名称前面加上*
    calc(*num)
    

    (4)关键字参数

    关键字参数,是指参数名称的个数,可变化,可以放一个参数名称到任意个参数名称。这些参数名称会自动组成一个字典。

    形式为

    def 函数名称(**关键字参数):
        代码块
    

    举例

    def add(**kw):
        print(kw)
    
    add(num1=1,num2=2)  #必须写成  参数名称=对象 的形式。
    
    #结果显示如下
    {'num1':1,'num2'=2}
    

    (5)命名关键字参数

    命名关键字参数限制关键字参数名称的个数。有两种形式

    • 一种是在*后面的参数
    def add(*,命名关键字参数名称1,命名关键字参数名称2)
    

    举例如下:

    def add(*,flower,tree):
        print(flower,tree)
    
    add(flower='rose',tree='apple')
    
    #结果显示
    rose apple
    
    • 一种是在 *可变参数 后面的参数
    def add(*可变参数,命名关键字参数)
    

    举例如下:

    def add(*person,flower,tree):
        print(person,flower,tree)
    
    country=['China','America']
    add(*country,flower='rose',tree='apple')
    
    #结果显示如下
    ('China', 'America') rose apple
    

    七、函数调用

    函数调用格式如下

    (1)变量=函数名称(参数 )

    a=abs(-5) #abs是求绝对值的内置函数。
    

    (2)变量=函数名称

    ​ 变量(参数)

    a=abs
    a(-5)
    

    八、递归

    递归就是函数的套用。就是函数里套用一个函数。

    使用方法:

    def 函数(参数):

    ​ 代码块

    ​ return 函数(参数)

    举例,求1+2+3+...+(n-1)+n的和

    def fact(n):
        if n==1:
            return 1
        return n*fact(n-1)  
    

    九、类型推导

    1.推导式

    推导式,英文名称Comprehensions,又称生成式。类型有三种,列表推导式,字典推导式和集合推导式,三种方式的语法结构都差不多。

    [关于n的表达式 for n in collection if 条件]

    举例如下

    [x+x for x in range(1,10)]
    
    [n+n for n in range(1,20) if n%2==1]
    
    { key_expr: value_expr for value in collection if condition }
    
    { expr for value in collection if condition }
    

    2.生成器

    生成器,generator。可以实现一边循环一遍计算,一次生成一个数。

    生成器有两种语法结构

    (1)把列表生成式的[ ] 改成( )即可

    举例

    g=(x+x for x in range(10))
    
    next(g) #可以不断成数字
    
    for n in g: #可以全部打出来
        print(n)
    

    (2)把函数里的print 改成 yield即可。

    举例

    def add(n):
        yield n
    
    next(add(5))
    

    十、lambda函数

    lambda,又称匿名函数。语法结构为:

    lambda x:表达式

    举例如下

    a=lambda x:x*x
    a(5)
    

    十一、面向对象——class

    类,即class,语法形式为

    class 类名称(父类名称): #如果没有父类名称,就写object
        pass
    

    参考:

    1.Python中的推导式使用详解

    2.廖雪峰的Python教程

    3.Python官方指导手册

    相关文章

      网友评论

      本文标题: 十分钟看懂python3语言特性

      本文链接:https://www.haomeiwen.com/subject/celblxtx.html