python重要知识点总结(黑马程序员)

Python是靠缩进来判断归属的

1、if name == ‘main

一个python文件通常有两种使用方法:
(1)第一是作为脚本直接执行。
(2)使用import到其他的python脚本中被调用(模块重用)执行。

if name == 'main’只有在文件作为脚本直接执行才会被执行,而import到其他脚本中是不会被执行的。

def some_function():
    # 这个函数可以在其他脚本中重复使用。

if __name__ == '__main__':
    # 这个代码块只会在脚本直接执行时运行,而不会在被导入时运行。
    # 你可以在这里放置主要脚本逻辑。
    # 通常,在这里调用函数或定义类并执行代码。
    some_function()

在 if name == ‘main’: 块下的任何代码只会在直接运行脚本时运行,但不会在将脚本作为模块导入到其他脚本中时运行。

2、python解释器

Python解释器是一种计算机程序,它负责执行Python编程语言的代码。Python是一种解释性语言,这意味着Python代码不需要在运行之前编译成机器代码,而是由Python解释器逐行执行。
在这里插入图片描述

3、python中常用的6种数据类型

在这里插入图片描述

4、标识符

在python语句中,我们可以给变量、方法、类等起名字,这些名字我们把它统一的称为标识符。

命名规则:(1)英文(2)中文(不推荐)(3)数字(不可以用在开头)(4)下划线(_)

标识符命名规则:不可使用关键字
在这里插入图片描述

5、运算符

算术运算符
在这里插入图片描述

在这里插入图片描述

6、for循环的基础语法

for循环是一种轮询机制,是对一批内容进行逐个处理
for循环是将字符串的内容:依次取出。所以,for循环也被称之为遍历循环。for循环不可以构造出无限循环。

if __name__ == '__main__':
    # 定义字符串name
    name = "itheima"
    # for循环处理字符串
    for x in name:
        print(x)

    '''
    i
    t
    h
    e
    i
    m
    a
    '''

7、continue和break

continue:中止本次循环,直接进入下一次循环
在这里插入图片描述

if __name__ == '__main__':
    #演示中断语句continue
    for i in range(1,10):
        print("1 ",end="")
        continue
        print("我是菜鸡")

    '''
    1 1 1 1 1 1 1 1 1 
    '''

break:直接结束循环:
在这里插入图片描述

if __name__ == '__main__':
    #演示break的嵌套应用
    for i in range(1,10):
        print("1 ",end="")
        break
        print("我是菜鸡")

    '''
    1 
    '''

8、函数的基本定义语法

函数的定义:

    def 函数名 (传入参数):
        函数体
        return 返回值  #其中传入参数与返回值可以没有

函数的调用:

    函数名 ()
    函数名(传入参数)
    a = 函数名()
    a = 函数名(传入参数)

函数的返回值定义语法

if __name__ == '__main__':
    def add(a,b):
        result = a + b
        return result
    r = add(1,2)
    print(r)

    """
    定义两数相加的函数功能。完成功能后,会将相加的结果返回给函数调用者
    所以,变量r接收到了函数的执行结果
    """

函数的说明文档

if __name__ == '__main__':
    # 主动返回None的函数
    def add(x,y):
        """
        add函数可以接收2个参数,进行2数相加的功能
        :param x:形参x 表示相加的其中一个数字
        :param y:形参y 表示相加的另一个数字
        :return:返回值是2 数相加的结果

        """
        result =x+y
        print(f"和为{result}")
        return result

函数的嵌套调用

if __name__ == '__main__':
    # 定义函数func_ _b
    def func_b():
        print("---2---")


    # 定义函数func_ a,并在内部调用func_ b
    def func_a():
        print("---1---")
        # 嵌套调用func_ .b .
        func_b()
        print("---3---")
    # 调用函数func_ a
    func_a()

    """
    ---1---
    ---2---
    ---3---
    """

函数A中,调用另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

9、None类型

10、Python中的数据容器:

数据容器根据特点的不同,如:

(1)是否支持重复元素
(2)是否可以修改
(3)是否有序,等

分为5类,分别是:列表(list) 、元组(tuple) 、字符串(str) 、集合(set) 、字典(dict)

    '''
    # 文本类型:str(字符串)
    # 数字类型: int(整数),float(浮点数),complex(复数)
    # 序列类型:list(列表)[],tuple(元组)(),range(范围),dic(字典)
    # 套装类型:set(集合),frozenset(冻结集)
    # 布尔类型:bool
    # 二进制类型:bytes,bytearray,memoryview
    '''

11、方法和函数

函数是一个封装的代码单元,可以提供特定功能。在python中,如果将函数定义为class(类)的成员,那么函数会称为:方法

    # 函数
    def add(x,y):
        return x + y
    #方法
    class Student:
        def add(self,x,y):
            return x + y

方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同:
函数的使用:num= add(1,2)
方法的使用:student = Student() num = student.add(1,2)

12、列表

    #字面量
    [元素1,元素2,元素3...]
    #定义变量
    变量名称 = [元素1,元素2,元素3...]
    #定义空列表
    变量名称 = []
    变量名称 = list()
if __name__ == '__main__':
    # 定义一个嵌套的列表
    my_list = [[1, 2, 3],[4, 5, 6]]
    print(my_list)
    print(type(my_list))

    '''
    [[1, 2, 3], [4, 5, 6]]
    <class 'list'>
    '''

列表的常见方法:
在这里插入图片描述

13、列表的循环遍历

#while循环

if __name__ == '__main__':

    my_list = [21,25,21,23,22,20]
    index = 0
    while index < len(my_list):
        #通过index变量取出对应下标的元素
        element = my_list[index]
        print(f"列表的元素:{element}")
        index+= 1

        '''
	    index = 0
	    while index <len(列表):
	        元素 = 列表[index]
	        对元素处理
	        index += 1
   	 	'''
#for循环

def list_for_func():
    my_list = [1,2,3,4,5]
    for element in my_list:
        print(f"列表的元素有:{element}")
list_for_func()
    '''
    for 临时变量 in 数据容器:
        对临时变量进行处理
    '''

14、元组

元组:同样可以存储不同类型元素,一旦完成定义,就不可以修改

元组遍历


if __name__ == '__main__':
    t8 = ("python",1,34,90)
    #while
    index = 0
    while index < len(t8):
        print(f"元组的元素有:{t8[index]}")
        index += 1
    #for
    for element in t8:
        print(f"元组的元素有:{element}")

15、字符串

字符串操作
在这里插入图片描述字符串的三种定义方式
(1)单引号定义法:name = ‘黑马程序员’
(2)双引号定义法:name =“黑马程序员”
(3)三引号定义法:name=“”“黑马程序员”“”

三引号定义法:和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串,不使用变量接收它,就可以作为多行注释使用

16、集合

列表:可修改、支持重复元素且有序
元组、字符串:不可以修改、支持重复元素且有序
集合:不支持元素的重复(自带去重功能)、并且内容无序 集合不支持下标索引,所以不支持使用while循环

在这里插入图片描述

17、字典

定义:实现用Key取出Value的操作,使用{},不过存储的元素是一个个的:键值对

字典同集合一样,不可以使用下标索引,但是字典可以通过Key值来取得对应的Value
字典不支持下标索引,所以同样不可以用while循环遍历

在这里插入图片描述

18、五类数据容器对比

数据容器可以从以下视角进行简单的分类:
(1)是否支持下标索引
支持:列表、元组、字符串-序列类型
不支持:集合、字典-非序列类型
(2)是否支持重复元素
支持:列表、元组、字符串-序列类型
不支持:集合、字典-非序列类型
(3)是否可以修改
支持:列表、集合、字典
不支持:元组、字符串

在这里插入图片描述

19、函数进阶

(1)函数的多返回值

import re

if __name__ == '__main__':
    def return_num():
        return 1
        return 2
    result = return_num()
    print(result)
#结果 1
#只执行第一个return,原因是因为return可以退出当前函数,导致return下方的代码不执行

#一个函数有多个返回值
    def test_return():
        return 1,"hello",True
    x,y,z= test_return()
    print(x)    #结果1
    print(y)    #结果2
    print(z)
#结果:
#1
#hello
#True
#按照返回值的顺序,写对应顺序的多个多个变量接收即可,变量之间用逗号隔开,支持不同类型的数据return

(2)函数的多种参数使用形式

  • 位置参数
#位置参数
def user_info(name,age,gender):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('TOM',20,'男')
  • 关键字参数
#关键字参数
def user_info(name,age,gender):
    print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")
#关键字传参:函数调用时,如果有位置参数时,位置参数必须在关键字的前面,但关键字参数之间不存在先后顺序
user_info(name="小明",age=20,gender="男")
#可以不按照固定顺序
user_info(age=20,gender="男",name="小明")
#可以和位置参数混用,位置参数必须在前,且匹配参数顺序
user_info("小明",age=20,gender="男")
  • 缺省参数
#缺省参数:当调用函数时没有传递参数,就会使用默认是用缺省参数对应的值
def user_info(name,age,gender='男'):
    print(f'您的名字是{name},年龄是{age},性别是{gender}')

user_info('Tom',20)
user_info('rose',18,'女')
  • 不定长参数:当调用函数时不确定参数个数时,可以使用不定长参数

分为位置传递和关键字传递

#位置传递
def user_info(*args):
    print(args)

user_info('Tom')
user_info('Tom',18)
#结果:
#('Tom',)
#('Tom', 18)
#传进来的所有参数都会被args变量收集,他会根据传进参数的位置合并为一个元组,args是元组类型

#关键字传递
def user_info(**kwargs):
    print(kwargs)

user_info(name='Tom',age=18,id=110)
#结果
#{'name': 'Tom', 'age': 18, 'id': 110}
#参数是"键=值"形式的情况下,所有的"键=值"都会被kwargs接受,同时会根据"键=值"组成字典

(3)匿名函数

  • 函数作为参数传递:将函数传入的作用在于:传入计算逻辑,而非传入数据
#定义一个函数,接收另一个函数作为传入参数
def test_func(compute):
    result = compute(1,2) #确定compute是函数
    print(f"compute参数的类型是:{type(compute)}")
    print(f"计算结果:{result}")

#定义一个函数,准备作为参数传入另一个函数
def compute(x,y):
    return  x+y
#调用,并传入函数
test_func(compute)

#结果
#compute参数的类型是:<class 'function'>
#计算结果:3
  • lambda匿名函数

函数的定义中:
1.def关键字,可以定义带有名称的函数
2.lambda关键字,可以定义匿名函数(无名称)
有名称的函数,可以重复使用
没有名称的匿名,只能临时使用一次

#定义一个函数,接收另一个函数作为传入参数
def test_func(compute):
    result = compute(1,2) 
    print(f"计算结果:{result}")

#通过lambda匿名函数的形式,将匿名函数作为参数传入
test_func(lambda x,y:x+y)

#结果:3

20、文件编码概念

(1)文件的编码
计算机中有很多可用的编码:UTF-8、GBK、Big5等,将内容翻译成二进制,以及将二进制翻译回可识别内容。

计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码,将计算机保存的0和1,反向翻译回可以识别的内容。

(2)文件的读取

  • 打开文件
    open(name,mode,encoding)函数
    name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
    mode:设置打开文件的模式(访问模式):只读、写入、追加等
    encoding:编码格式(推荐使用UTF-8)

在这里插入图片描述1.read()方法。文件对象。read(num) num表示要从文件中读取的数据的长度,如果没有传入num个字符, 那么就表示读取文件中的所有的数据

2.readlines()方法:
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个一个列表,其中每一行的数据为一个元素。

f =open('python.txt') #f为文件对象
content = f.readlines()
print(content)

#关闭文件
f.close()

for循环读取文件行

for line in open("python.txt","r")
	print(line)
#每一个line临时变量,就记录了文件的一行数据

3.with open语法

with open("python.txt",'r') as f:
	f.readlines()

#通过在with open的语句块中对文件进行操作
#可以在操作完成后自动关闭close文件,避免遗忘掉close方法

在这里插入图片描述
(3)文件的写入

#文件的写出操作
f = open('python.txt','w')
f.write('helloworld')
f.flush()  #将缓冲区的内容写入到文件中

(4)文件的追加

#文件的写出操作
f = open('python.txt','a')
f.write('helloworld')
f.write('\n月薪过万')
f.flush()  #将缓冲区的内容写入到文件中

21、python异常、模块和包

(1)捕获所有异常

try:
    f = open("D:/123.txt","r")
except Exception as e:
    print("出现异常了")
#结果 出现异常了  

(2)finally:表示没有异常都要执行

try:
	f = open("D:/123.txt","r",encoding = "UTF-8")
except Exception as e:
	print("出现异常了")
	f = open("D:/123.txt","w",encoding ="UTF-8")
else:
	print("好高兴,没有异常")
finally:
	print("我是finally,有没有异常我都要执行")
	f.close()

(3)异常的传递性

#异常的传递性
def func1():
    print("func1 开始执行")
    num = 1/0
    print("func1 结束执行")

def func2():
    print("func2 开始执行")
    func1()
    print("func2 结束执行")

def main():
    try:
        func2()
    except Exception as e:
        print(f"出现异常了,异常的信息是:{e}")
main()

#结果
func2 开始执行
func1 开始执行
出现异常了,异常的信息是:division by zero
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值