• Day 1:Python 两大特性和四大基本语法


    P.S. 这是买的课程,我的笔记  以下注明出处

    FROM:https://gitbook.cn/m/mazi/comp/column?columnId=5e37978dec8d9033cf916b5d&utm_source=columnweixinshare&utm_campaign=Python%20%E5%85%A8%E6%A0%88%2060%20%E5%A4%A9%E7%B2%BE%E9%80%9A%E4%B9%8B%E8%B7%AF

    【后续关于Day **python笔记如是,不做重复说明】

    Python 语言两大特性

    Python 是一门动态的、强类型语言。

    什么是动态语言?

    要了解什么是动态语言,要首先了解“类型检查”。即什么时候“变量”和它们的”类型”,然后判断表达式是否合理。类型检查是验证类型约束的过程,编译器或解释器通常在编译阶段或运行阶段做类型检查。

    如果类型检查发生在程序运行阶段(run time),那么它便是“动态类型语言”(dynamically typed languages)。常见的动态语言包括:

    • Python
    • JavaScrpit
    • PHP

    类型检查发生在“编译阶段”(compile time)的是“静态类型语言”(statically typed languages)。常见的静态类型语言包括:

    • C
    • C++
    • Java
    • C#
    • Scala

    什么是强类型语言?

    强类型语言是指:不管是在编译阶段还是运行阶段,一旦某种类型绑定到变量后,此变量便会持有此类型,并且不能同其他类型在计算表达式时,混合使用。

    例如,如果一个整形和字符类型做‘+’运算,会抛出TypeError:

    >>> a = 5
    >>> a = a + 'a' 
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for +: 'int' and 'str'

    常见的强类型语言有:

    • Python
    • Java
    • C#
    • Scala

    与之对应的是弱类型语言,弱类型语言容易与其他类型混合计算。弱类型语言代表 JavaScript。for example:

    var data = 5

    data = data + 'xiaoming' //string 和 int 结合自动转化为 string.

    常见的弱类型语言有:

    • C
    • C++
    • PHP
    • Javascript

     四大基本语法

    变量命名规则、缩进原则、特殊关键字和特殊运算符  for  Python的基本语法

    命名规则

    主要包括两条:

    • 允许包括英文、数字以及下划线(_),不能以数字开头
    • 名称区分大小写

    特别说明以“下划线”开头的变量是有特殊意义的:

    • 类变量若以单下划线(_)开头,代表不能直接被访问,类似于 C# 的受保护型变量(protected),表示不能通过 import module_name 而导入。
    • 类变量若以双下划(__)开头,表示为类的私有成员,不能被导入和其他类变量访问。
    • 以双下划开头和双下划线结尾的变量是 Python 里的专用标识,有特殊的身份。

    如 Python 自定义类中都包括 __init__ 和 __add__ 方法,如果不重写 __add__ 去执行两个类加法操作,程序会抛 TypeError 异常。

    命名法:推荐蛇形命名法(snake case)

    • 一般变量命名,book_id、book_store_count;
    • 类名首字符为大写,如 Python 内置模块 collections.abc 中的 Iterable 类、我们自定义的 Book 类等;
    • 类方法名:get_store_count();
    • 其他特殊变量,会全部大写,M_PI、MAX_VEHICLE_SPEED。

    Java 最典型的命名方法——驼峰命名法(camel case)。

    缩进原则

    Python 最具特色的地方就是用缩进代替 Java、C++ 中的 {},缩进的层级结构表示代码的逻辑层次。

    Python 的缩进方法,一般为 4 个字符。

    举例,自定义一个 Book 类,重写 __add__ 方法计算两类书的库存量和:

    class Book(object):
        # 定义类的参数
        def __init__(self,book_id, book_name, book_store_count):
            self.book_id = book_id
            self.book_name = book_name
            self.book_store_count = book_store_count
        # 重写加法操作    
        def __add__(self,book):
            return self.book_store_count + book.book_store_count
    
    # 创建两个 Book 类的实例:
    python_intro_book = Book(1,'python入门书',100) 
    ml_intro_book = Book(2,'机器学习入门书',200)
    # 求两本书的总销量
    sales_cnt = python_intro_book + ml_intro_book
    print(sales_cnt) # 30

    remark:

     Python 自定义类中都包括 __init__ 和 __add__ 方法,如果不重写 __add__ 去执行两个类加法操作,程序会抛 TypeError 异常。只有重写后,程序才能正常执行加法操作。

     小知识:autopep8 包遵循 PEP8 的所有规范,安装此包,做好相关配置,便可自动实现 PEP8 制定的编码规范。

    特殊关键字

    Python 有 35 个关键字:(自定义变量名不能与它们重复。)

    False      await      else       import     pass
    None       break      except     in         raise
    True       class      finally    is         return
    and        continue   for        lambda     try
    as         def        from       nonlocal   while
    assert     del        global     not        with
    async      elif       if         or         yield

    常用关键字:

    • True 和 False 用于表示值的真假,在 Java 中是 true 和 false
    • 逻辑反操作 Python 使用 not,Java 是 !
    • None 表示空值,Java 使用 null
    • Python 两个条件同时满足使用 and,Java 是 &&
    • 两者满足其一,Python 使用 or,Java 使用 ||
    • Python 使用 elif, Java 是 else if

    其他比较特殊的关键字,如:

    • del 用于删除可迭代对象中某个元素;
    • def 用于定义函数;
    •  yield 用于定义生成器(generator)函数;
    • global 和 nonlocal 一种应用是 Python 函数式编程的闭包场景;
    • pass 一种应用是定义接口,也是 Python 语言特有的一个关键字。

    特殊运算符

    Python 的运算符包括:

    +       -       *       **      /       //      %      @
    <<      >>      &       |       ^       ~       :=
    <       >       <=      >=      ==      !=

    点介绍 3 个比较特殊的://**:=

    // 用于两个数值相除且向下取整

    >>> 5//2
    2   
    >>> 5/2.1
    2.380952380952381
    >>> 5//2.1
    2.0 
    >>> 

    ** 用于幂运算:

    >>> 2**3
    8
    >>>

    :=  是在 2019 年,Python 3.8 版本里,刚刚才被支持的运算符,被形象地称为“海象运算符”。

    这样可以精简代码的书写,比如:

    >>> a = 'sdasd'
    >>> n = len(a)  
    >>> if n>10:
    ...     print(f"{n}大于10") 
    ... 
    >>> 
    
    
    改写为:
    
    

     >>> a = 'sdsasdasdasdasd' 
     >>> if (n :=len(a)) > 10:
     ... print(f"{n}大于10")
     ... 
     15大于10
     >>>

    另外,Python 比较运算符还支持链式比较,应用起来更加方便,比如:

    >>> i =3
    >>> print(1<i<3) 
    False
    >>> print(1<i<=3) 
    True
    >>>

    另外,运算符 @ 用于装饰器功能(后面细说)。

     

  • 相关阅读:
    步步为营 .NET 设计模式学习笔记 四、Singleton(单例模式)
    步步为营 .NET 设计模式学习笔记 九、Command(命令模式)
    步步为营 .NET 设计模式学习笔记 十八、Template(模板模式)
    步步为营 .NET 代码重构学习笔记 七
    步步为营 .NET 设计模式学习笔记 十九、Chain of Responsibility(职责链模式)
    步步为营 .NET 设计模式学习笔记 二十二、Memento(备望录模式)
    步步为营 .NET 设计模式学习笔记 十四、Decorator(装饰模式)
    步步为营 .NET 代码重构学习 十一
    步步为营 .NET 设计模式学习笔记 一、开篇(设计模式之泡妞二十三招)
    步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
  • 原文地址:https://www.cnblogs.com/PiaYie/p/13715147.html
Copyright © 2020-2023  润新知