Python编程基础知识点复习笔记回顾


一、Python解释器

        将Python代码翻译为二进制,交给计算机去运行。是Python.exe程序

二、python中数字有四种类型

        1.整数、布尔型、浮点数和复数。即int 型,bool(true与false),float ,a+bj的复数等

        2.变量不需要声明,但是在使用的时候需要提前赋值。

        3.print(变量名)输出变量值,也可以输出数字;print(‘内容’)输出引号内的内容;

           print(——–,end=" ")可使前列内容在一行显示

        4.连续输出可以在print()加逗号Python里的  " "与 ' ' 作用相同

三、字符串

        可自己定义,使用print(str【】)输出,其中【x:y】x从0开始包含起始点,而y是从右开始,不包含结束点。要想完整输出需➕1。还可以引入步长,放在最后面是步长,加上冒号

        print( str [ 0 : -1 ] )                 # 输出第一个(0)到倒数第2个(不包括-1)的所有字符

abs='我是好人无敌老好人'
print(abs[0:7:2])
#我好无老


print(str * 2)             # 输出字符串两次
print(str + '你好')         # 连接字符串
print(abs*2+'是陈涛')
#我是好人无敌老好人我是好人无敌老好人是陈涛

四、sys

  sys 模块提供了一系列与 Python 解释器和运行环境交互的功能。

import sys
print(sys.version)  # 输出当前 Python 版本

五、赋值

        a = b = c = 1

        a, b, c = 1, 2, 'wo'

六、数据类型

        Python3 中常见的数据类型有:可以用print(type(变量名))查看

a = True
print(type(a))
#<class 'bool'>
Number(数字)

        会返回一个浮点数,// 会返回一个整数

String(字符串)

        反斜杠 \ 转义字符(即在第二行显示),字符串不能改变,【3】错误

bool(布尔类型)

        可以与数字相加

#在控制流中的应用,正常True==1;False==0
if True:
    print("This will always print")
print("这将始终打印")
List(列表)

        1.列表中的元素可以不相同,可以数字,字符串,甚至可以嵌套,不同元素使用逗号隔开。

        2.可以索引,与字符串索引规则相同,补充几点:

        3.【0:】从第一个元素到结束

        4.【0】索引第一个元素;【-1】索引最后一个元素

        5.也可以用  *  打印两次

        6. 可以切片

        7.列表当中的元素可以改变list【0】=x;

        8.del list[2]  可用来删除列表

        9.len()可以告知列表里的元素个数,这个同样适用于字符串等

        10.+   *同样可以对列表使用,会增加列表内的元素个数

        11.list.pop([index=-1])  默认清除最后一个,里面加数字选择

        12.list.remove(obj) 需填入具体元素

Tuple(元组)

        与列表相似,采用小括号,用逗号隔开,不能改变元组当中的数据,tup2 = (20,) # 一个元素,需要在元素后添加逗号

Set(集合)

        采用 { } 来储存数据,强调唯一性,不能重复,也是逗号隔开。可以进行集合运算

Dictionary(字典)

七、数据转换

        正常 int+float 以float显示

        正常 int+str 会报错——就用到显式转换

        int();float();str();

        eval()     eval() 函数用来执行一个字符串("  ")表达式,并返回表达式的值。

        list()

        列表和元组不能被转换为int,转换有限制。

八、运算符

        1.== 条件比较,用于判断,不用于赋值;

        2.!= 为 不等;>= ;           <=         ;

        3.n:=10为海象运算符,n被赋值10,

        4.逻辑运算符,and ; or ; not;注意0为False;其中优先级 not > and > or

        5.成员运算符:in ;not in ;(适用于列表或者元组)

九、常用的一些函数

        1. abs()返回绝对值

        2.exp()返回e的x次幂

        3.max();min()

        4.pow(x,y)计算x的y次幂

        5.import random

        6.random.random()返回随机生成的一个实数,它在半开放区间 [0,1) 范围内。

        7.random.uniform(x, y)随机生成下一个实数,它在 [x,y] 范围内

        8.random.seed(10),随机数种子,即后续使用生成的随机数是一个

        9.   \r  回到行首,当打印内容时,新内容会覆盖在这一行的开头,而不是追加在行末。一般在字符串当中使用。

十、字符串格式化

        想到 { } 使用时应该加上引号,给字符串传入变化的数值

        1.使用%号

  • %s:字符串
  • %d:整数
  • %f:浮点数(可以指定精度,如 %.2f 表示保留两位小数)
  •         用法:“字符中%d”  %(3)

    print("%s的年龄是%d岁"  %("我",a))

            2.通过 {} 作为占位符,用 format() 来传入值。

    s = "My name is {} and I am {} years old.".format(name, age)
    print(s)
    
    s= "My name is {name} and I am {age} years old.".format(name="Charlie", age=35)
    #还可以包含关键参数
    
    
    formatted_string = "{:3}".format(5)
    print(f"'{formatted_string}'")
    
    '  5'
    
    #数字 5 被格式化为一个宽度为3的字符串,前面会填充空格以达到3个字符的宽度

            3.  f 开头,后面跟着字符串,字符串中的表达式用大括号 { } 包起来,它会将变量或表达式计算后的值替换进去

    name = 'Runoob'
     f ' Hello {name} ' 

            f 在字符串外,在字符串内依然使用大括号{ }进行替换字符串。

    十一、条件控制与循环

    1.        if  ____  :

               elif ____ :

               else:

            注意冒号不能少,主要是判断True和False

    2.循环语句:

    while循环:
            while True :

                    print

            False的时候就stop了。同时也可以设置无限循环。ctrl+c退出;

            while  True:
                <statement(s)>
            else:
                <additional_statement(s)>

    False的时候执行else部分,相比上面更有操作空间

    for循环:可以遍历列表也可以遍历字符串

            for  i in ___:  i 是变量名,是输出的变量,in后是已存在的列表。字符串等

            else:

            在 for循环里常用的一个 range,可以嵌套 if控制语句等

            range(10)从1-9

            range(2,12)从2到11

            n = list(range(5)) 也可以转换range为列表,内容由其中设定

    break与continue语句        

            可以改变for与while循环的执行顺序

            break:在满足某些条件时提前结束循环。

            continue:不希望执行循环体剩下的代码,而是直接跳到下一次迭代

            在嵌套循环中(循环套循环),breakcontinue 只会影响它所在的最内层循环。对于外层循环不会产生影响。

    十二、Python函数

    1.函数通过关键字 def ;来定义

            def ():   ————-注意冒号不能少

            传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数

            带 return 返回值,不带return返回None

     2.引用对象

            Python 中的变量本质上是对象的引用,而不是对象本身。

            对象的引用是指变量名与对象之间的关联关系。换句话说,当我们在 Python 中创建一个对象

    并赋值给某个变量时,实际上是将变量与该对象在内存中的地址关联起来,这个关联关系就是引用。

            变量引用这个对象 = 变量与该对象的内存地址关联了起来(指针)= 变量并不存储对象的值,而是存储对象在内存中的位置或地址。

    a = [1, 2, 3]  # 变量 a 引用了一个列表对象
    b = a          # 变量 b 也引用了同一个列表对象
    
    3.Python的对象分为可变对象不可变对象:

            可变对象:如列表,字典等,该类对象创建后可以修改对象的值,

    a = [1, 2, 3]  # 变量 a 引用了一个列表对象
    b = a          # 变量 b 也引用了同一个列表对象
    a.append(4)  # 修改通过 a 引用的对象
    print(b)     # 输出: [1, 2, 3, 4],b 引用了相同的对象,所以也发生变化
    

            不可变对象:对象创建后无法修改其值。例如,整数、浮点数、字符串、元组等。

    x = 10  # x 引用了整数对象 10
    y = x   # y 引用了同一个整数对象 10
    
    x = x + 1  # x 引用一个新的整数对象 11
    print(x)  # 输出: 11
    print(y)  # 输出: 10,y 仍然引用原来的整数对象 10
    

            若想复制对象,可以使用浅拷贝与深拷贝

    4.参数传递

            传递的是对象的引用:函数参数传递的是变量所引用对象的引用(关系)而不是对象的副本

            遇到不可变对象,无法修改对象值,直接内部会创建一个新的对象

            遇到可变对象,当传入对象的引用后,对象被修改,内部变量与外部变量的引用是相同的,所以也会影响到外部

            不可变对象的参数传递(如:整数、字符串、元组等)

            可变对象的参数传递(如:列表、字典、集合等

            默认参数的陷阱:避免使用可变对象作为函数的默认参数,因为它会导致意外的共享修改。否则进行初始化。

    5.参数调用

            关键字参数

            通过参数名来指定参数值的方式,使得函数调用时更加灵活、可读性更高。关

    键字参数不需要按照函数定义中参数的顺序进行传递,且可以与位置参数结合使用。

    def printme( str ):
       "打印任何传入的字符串"
       print (str)
       return
     
    #调用printme函数,效果是相同的
    
    printme('菜鸟教程')
    printme( str = "菜鸟教程")      #   关键字调用
    
    
    def printinfo( name, age ):
      ---------
    
    #调用printinfo函数
    printinfo( age=50, name="runoob" )  #   关键字调用,无需考虑参数位置顺序
    
    
    
    
            默认参数 

            age=35为默认参数,若在调用函数时没有传入 对象的引用,则会以35默认,

    若没有给定默认参数,则为位置参数,此时age没有传入的话,就会报错。可*age就不会报错了

    def printinfo(name, age=35):
        "打印任何传入的字符串"
        print("名字: ", name)
        print("年龄: ", age)
        return
    printinfo(name="runoob")
    
    
            不定长参数

       *args —— 可变位置参数,允许函数接收任意数量的位置参数,并将它们作为元组进行处理   

            def printinfo( arg1, *vartuple )   按需传入参数即可,若*vartuple没有指定参数,它就是一个空

    元组。我们也可以不向函数传递未命名的变量

    def my_function(*args):
        for arg in args:
            print(arg)
    
    my_function(1, 2, 3, 4)
    

            打包成了元组  print(arg) —(1, 2, 3, 4)

            **kwargs——–允许函数接收任意数量的关键字参数,参数名来指定参数值,并将它们作为字

    典进行处理两个星号 ** 的参数会以字典的形式导入,字典也可以遍历,变量有两个key与value

    def my_function(**kwargs):
        print(kwargs)
    my_function(name="Alice", age=25, city="New York")
    
    #{'name': 'Alice', 'age': 25, 'city': 'New York'}
    

          小结:定义函数时,参数的顺序应该遵循以下规则:

    1. 位置参数
    2. 默认参数
    3. *args(可变位置参数)–可以解包   numbers = [1, 2, 3]  *numbers解包列表为位置参数
    4. **kwargs(可变关键字参数)
    def example_function(a, b=2, *args, **kwargs):
        print(f"a = {a}, b = {b}")
        print("args =", args)
        print("kwargs =", kwargs)
    
    example_function(1, 3, 4, 5, name="Alice", age=30)
    
    #结果
    a = 1, b = 3
    args = (4, 5)
    kwargs = {'name': 'Alice', 'age': 30}
    
    5.lambda函数

            语法:lambda 参数1, 参数2, …: 表达式—-函数自动返回表达式的值,不需要显式地使用

    return,定义的一个lambda函数计算和      sum_func = lambda x, y: x + y 

    十三、python的模块功能

            模块是一个包含 Python 代码的文件(后缀为 .py

            1.   from module import ...:导入特定的功能,而不是整个模块。

            2.   from  module  import *   导入所有的模块

            3. 官方模块 import math、、import math as  m(简化使用)、、、

            4. 自己设置模块,在别的py文件中使用自设模块的变量、函数、类等

    # my_module.py
    def greet(name):
        return f"Hello, {name}!"
    
    def add(x, y):
        return x + y
    
    
    #使用my_module.py里的函数greet与add
    import my_module
    
    print(my_module.greet("Alice"))  # 输出: Hello, Alice!
    print(my_module.add(5, 10))      # 输出: 15
    

            5.    __name__  是一个内置变量,用来表示当前模块的名称。__name__ 的值会是 "__main__"

            便可利用 == “_main_”来实现一些功能

    print(f"The value of __name__ is: {__name__}")
    
    #结果是:The value of __name__ is: __main__
    
    

            如果模块是被导入到其他模块中,__name__ 的值则是这个模块的名字(通常是文件名,去掉

    .py 后缀)。

            6.The value of __name__ is: my_module           

            一般用法:if __name__ == "__main__" 的作用是确保当 my_module 被导入时,测试代码不

    会被执行,只有函数 ……. 可用。通过 if __name__ == "__main__",你可以在一个文件中组织测

    试代码、主程序逻辑,而不会影响模块在其他地方的导入和使用。

    十四、类(面向对象编程)

            使用对象进行编程,创建类 , 创建对象, 使用对象完成任务

    1.类(Class)

            用来描述具有相同的属性和方法的对象的集合。

            类似设计一张表格—–打印一张表格—–填写一张表格的过程

    2.类属性(成员变量)

            类属性是直接定义在类中的变量,属于整个类,而不是某个具体的实例。所有实例共享同一个类属性。

    3.类方法(函数/成员方法)

            用来定义对象的行为。方法的第一个参数必须是 self

    (1)与函数的定义稍有区别,要求参数列表有关键字self,在传参时可视为不存在,可为空参。

    (2)想要在方法中访问成员变量,必须通过self来调用, self 就是 对象/实例 属性集合

    (3)self 是一个特殊的参数,用来指代类的实例对象,而非类。它允许类的实例在方法中引用自己的属性和其他方法,self.xxx表示实例的变量, 在类中函数相互调用要加 self 

            有关self的具体理解可以看这篇博客https://blog.csdn.net/xrinosvip/article/details/89647884



    4.实例化类

            1.典型类实例化的语法,创建了一个新的类实例并将该对象赋给局部变量 x,x 为空的对象。

    class MyClass:
        x = MyClass()

            可以通过x来访问类的属性和方法

    2.__init__( )   是一种更加高效构造方法, 更简洁的设置   类属性, 在创建对象能更方便

               该方法在创建类对象的时候会自动执行。 同时会将参数自动传递给__init__方法(函数)使用.

    于是便可以在创建类对象(实例化类)的时候填入相关属性参数  

    def __init__(self, name,age):
         self.name = name
         self.age =age

    十五、封装

    (1)类中提供了私有成员的——私有成员变量与私有成员方法,对应现实世界中不对用户开放的

    属性和行为。

            语法:在定义的变量方法前加 入 _ _(两个下划线)

    (2)一旦设置,对于类对象无法使用私有属性与私有方法———报错———外部无法调用

    但是类中的其他成员是可以调用的私有变量与方法—–即别的成员方法可以调用

            __name =None

            def __name(self):

    十六、继承

    1.继承 : 基于老的类进行修改,在类的名字后多加了括号

            class People ( Old ):  #People为字类,Old为父类

    ——————————————————-单继承

    ——————————————————-多继承

            逗号隔开,如果在字类不需要增添,可直接需要pass补全语法,防止报错

    2.如下

    作者:小鱼品水

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python编程基础知识点复习笔记回顾

    发表回复