Python语法(一)

1、缩进原则

  1. Python使用缩进来区分不同的代码块,所以对缩进是严格要求。

  2. 物理行和逻辑行的概念

    • 物理行:代码编辑器中显示的代码,每一行内容是一个物理行。

    • 逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。

    • 可以使用";"号将多个逻辑行合并成一个物理行。

    • 可以使用" \ "对一个逻辑行进行换行,书写为多个物理行。

  3. 缩进原则

    • 逻辑行的“首行”需要顶格,即无缩进

    • 相同逻辑层保持相同的缩进

    • ":"标记一个新的逻辑层

    • 缩进长度和缩进字符(2个空格或者4个空格或者一个tab)

2、函数

  1. 概念: 把重复利用的代码块封装起来,方便重复使用就是函数,函数分为you

  2. 语法:

# 定义函数
def 函数名称([参数列表]):
        函数体
        [return 值]
        
# 调用函数
函数名称()
函数名:函数的名字,按照标识符命名规则命名
参数列表:小括号里面的参数,没有参数可以不写,有多个参数的时候中间用,(逗号)隔开
函数体:函数里要实现某个功能的代码
return 值:函数的返回值

注意:

  • 用 [] (中括号) 括起来的可以使用,也可以省略不写

  • 函数调用不可以放在函数定义的前面,因为再使用函数名调用函数时,要保证这个函数是已经存在的

  1. 无参函数

  • 无返回值

    def a():
        print("Hello World!!!");
    ​
    a(); # 函数的调用
  • 有返回值

    def c():
        a = int(input("请输入a的值"));
        b = int(input("请输入b的值"));
        return a + b;
    ​
    print(c()); 
  1. 有参函数

  • 无返回值

    def b(a,b): # a和b为形参
        print(a + b);
    ​
    b(2,3); # 实参
  • 有返回值

    def d(a,b): # a和b为形参
        return a + b;
    ​
    print(d(2,3)); # 2和3为实参

注意:以上在调用函数时,要注意参数的传递顺序不能颠倒!

  • 位置参数

    def test(a,b,c,d) 
      return a + b + c + d;
     
    print(test(1,2,3,4)); # 少传或者多传都会报错
  • 关键传参

    def test(a,b,c,d) 
      return a + b + c + d;
     
    print(test(1,d=4,c=3,b=2));
  • 默认值传参

    def e(a,b,c=3):
        return a + b + c
        
    print(e(2,3))
    # 当定义一个有默认值参数的函数时,有默认值的形参必须位于所有没默认值形参的后面
  • 不定长参数

    1. 加一个*号 (元组 tuple)

      def fun(a, *tupleb):
          print("a =",a)
          print("*tupleb = ",tupleb)
      ​
      fun(3,4,5,6) # 调用fun函数
    2. 加入两个**号 (字典 dict) 字典形式

  • 函数调用必须在函数定义后面

3、类

①面向对象

  • 面向对象编程(opp)是一种程序设计思想

  • 面对对象术语简介

    • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例

    • 方法:类中定义的函数

    • 类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体(方法)之外。类变量通常不作为实例变量使用,类变量也称作属性

    • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据

    • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写

    • 实例变量:定义在init方法中的变量,只作用于当前实例的类

    • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待,以普通的类为基础建立专门的类对象

    • 实例化:创建一个类的实例,类的具体对象。一个类可以实例化出无数个对象

    • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法

    • 多态:对不同类的对象使用同样的操作

    • 封装:对外部世界隐藏对象的工作细节

②类定义

  • 使用关键字class进行定义,class后面紧跟类名

  • 类定义与函数定义(def语句)一样:只有在被执行才会起作用

  • 类包含属性和方法

    • 一个对象的特征称为"属性"

    • 一个对象的行为称为"方法"

    • 属性分为类属性和实例属性

  • 类定义的形式

    • 类内部的函数定义通常具有一种特别形式的参数列表,这个特别形式就是第一个参数必须是self(self参数后面介绍)

    • 方法是所有实例都共用的

    • Python类中的方法分为:实例方法、类方法、静态方法。

③实例对象

  • 类对象的操作

    • 实例化:使用instance_name = class_name()的方式实例化,实例化操作创建该类的实例(格式:实例对象名 = 类名(),实例对象名是我们自己定义的)

    • 属性引用:使用class_name.attr_name的方式引用类属性(类名.属性名或类名.方法名)

    • 注意:类只是一个抽象的概念,只有经过实例化后(获得实例对象),才会有意义,才能正常使用这个类中的属性和方法

    • 使用class语句只能创建一个类,而无法创建类的实例对象,因此要想使用已创建好的类,还需要手动创建类的实例对象,创建类对象的过程又称为类的实例化

    • 类在使用前必须先实例化,并将实例赋值给一个变量(得到实例对象)

④self参数

  • 在定义实例变量、实例方法时的第一个参数必须是self

  • self在定义时需要定义,但是在调用时会自动传入(不需要手动传入了)

  • self代表的当前的实例对象本身,这样在调用实例方法等时Python就知道当前是哪个实例对象了

  • 作用域

    • 如果想要一个方法中的参数能在其他方法中使用,那么就可以使用"self."来将这个参数变成一个实例变量

    • name参数:在方法中使用了"self.name = name",这步就相当于是将这个name参数变成了一个实例变量,因此可以在所有方法中使用

    • age参数:age参数就没有使用name参数那样的写法,仅仅是在setname()方法中定义并使用,因此age参数就只能在setname()方法中使用,而不能在kick()方法中使用,即使他们是在同一个类中(经常遇到的是这种写法)

你可能感兴趣的:(python,开发语言)