首页 > 编程语言 >python小白学习笔记(基于黑马程序员编写03)

python小白学习笔记(基于黑马程序员编写03)

时间:2024-08-22 12:25:08浏览次数:15  
标签:03 python 元素 list 列表 程序员 num print my

目录

二十一、函数基础定义

        1.解释:

        2.为什么要用函数呢?

        3.定义:

二十二、函数参数

        1.解释:

        2.定义:

二十三、函数返回值

        1.解释:

        2.定义:

        思考:

补充:None

        1.解释

        2.应用场景

二十四、函数说明文档

二十五、函数的嵌套

        1.局部变量:

        2.全局变量

        3.global关键字

二十六、数据容器

二十七、列表

        1.语法:

        2.列表的下表(索引)

        3.列表常见功能

        ①、查找某个元素的下标

        ②、修改特定位置(索引)的元素值

        ③、插入元素

        ④、追加元素

        ⑤、删除元素

        ⑥、清空列表内容

        ⑦、统计某元素在列表内的数量

        ⑧、统计元素 

        ⑨、小结

        4.列表的遍历

        5.列表总结


二十一、函数基础定义

        1.解释:

                是组织好的,可重复使用的,用来实现特定功能的代码段。

        2.为什么要用函数呢?

                为了得到一个针对特定需求、可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率

        3.定义:

def 函数名(传入参数):

                函数体

                return 返回值

函数名(参数)

        注意:①参数如不需要,可以省略

                   ②返回值如不需要,可以省略

                   ③函数必须先定义后使用

二十二、函数参数

        1.解释:

                传入参数的功能是:在函数进行计算的时候,接受外部(调用时)提供的数据

        2.定义:

# 定义函数
def add(x,y):
    result=x+y
    print(f"{x}+{y}的结果是:{result}")

# 调用函数
add(1,2)

        函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数·

        参数之间使用逗号进行分隔

        函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

        传入的时候,按照顺序传入数据,使用逗号分隔

        注意:传入参数的数量是不受限制的,可以不使用参数,也可以仅使用任意N个参数

二十三、函数返回值

        1.解释:

                所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果

        2.定义:

# 定义函数
def add(x,y):
    result = x+y
    # 返回返回值result
    return result

# 调用函数
num = add(1,2)
# 输出返回值
print(num)

                变量就是能接收到函数的返回值

                语法就是:通过return关键字,就能向调用者返回数据

                注意:函数体在遇到return后就结束了,所以写在return后的代码不会执行。

        思考:

                之前说返回值可以缺省,那么缺省的函数有返回值么?

                答:有的。Python中有一个特殊的字面量:None,其类型是:<class'NoneType'>

                无返回值的函数,实际上就是返回了:None这个字面量

# 定义函数
def my_print():
    print("击泥胎梅")

# 调用函数
test = my_print()
# 输出返回值
print(f"返回值为{test},返回值类型为{type(test)}")

        结果:

补充:None

        1.解释

        None表示:空的、无实际意义的意思,类型是:<class'NoneType'>

        函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意思。

        None可以主动使用return返回,效果等同于不写return语句

        2.应用场景

        None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。

        ①、用在函数无返回值上

        ②、用在if判断上

                在if判断中,None等同于Flase

                一般用于在函数中主动返回None,配合if判断做相关处理

# 定义函数
def your_age(age):
    if age >= 18:
        return 'SUCCESS'

# 调用函数,当年龄小于18时,test为None
test = your_age(int(input("请输入你的年龄\n")))
# 当test为None时,not None为真,于是输出语句
if not test:
    print("对不起,未满十八岁不能进入")

        结果:

 

        ③用在声明无内容的变量上

                定义变量,但暂时不需要变量有具体值,可以用None来代替

# 暂不赋予变量具体值
name = None

二十四、函数说明文档

        函数是纯代码语言.想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。

        我们可以给函数添加说明文档,辅助理解函数的作用。

        语法如下:

  def func(x, y):

                """

                函数说明

                :param x:形参x的说明

                :paramy:形参y的说明

                :return:返回值的说明

                """

                函数体

                return 返回值

        通过多行注释的形式,对函数进行说明解释

        内容应写在函数体之前

#定义函数,进行文档说明
def add(a,b):
    """
    add函数可以接收2个参数,进行2数相加的功能
    :param a: 形参a表示相加的其中一个数字
    :param b: 形参b表示相加的另外一个数字
    :return: 返回值是2数相加的结果
    """
    result = a + b
    print(f"2数相加的结果是:{result}")
    return result

        注:

        :param 用于解释参数

        :return用于解释返回值

        在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档

二十五、函数的嵌套

        所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数

def func_b():
    print("---2---")
def func_a():
    print("---1---")
    func_b()
    print("---3---")
    # 调用函数func_a
func_a()

        结果:

注意:如果函数A中,调用了另外一个函数B,那么只有先把函数B中的任务都执行完毕之后才会回到上次函数A执行的位置,进行执行之后的内容

二十六、局部变量AND全局变量

        变量作用域指的是变量的作用范围 (变量在哪里可用,在哪里不可用)

        主要分为两类:局部变量和全局变量

        1.局部变量:

                局部变量是定义在函数体内部的变量,即只在函数体内部生效

def testA():
    num = 100
    print(num)
testA()   #输出100
print(num)   #报错:name'num'isnot defined

        num是定义在“testA”函数内部的变量,在函数外部访问则立即报错

        局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

        2.全局变量

                全局变量,指的是在函数体内外都能生效的变量

#定义全局变量a
num = 100
def testA():
    print(num)#访问全局变量num,并打印变量num存储的数据
def testB():
    print(num)#访问全局变量num,并打印变量num存储的数据
testA() # 输出100
testB() # 输出100

         思考:下面这段代码会print(num)输出什么,100还是200?

#定义全局变量a
num = 100
def testA():
    print(num)#访问全局变量num,并打印变量num存储的数据
def testB():
    num = 200
    print(num)#访问全局变量num,并打印变量num存储的数据
testA() # 输出100
testB() # 输出100
print(num)

               结果:

        为什么在testB中把num修改成200了,最后输出的num还是100呢?

        这是因为testB中把num修改成200的是局部变量,相当于在testB中重新定义了一个局部变量num并赋值为200,而不是修改全局变量num,那么我们是不是就没办法在函数中修改全局变量了呢?

        答案肯定是可以的,python特意写了global关键字来应对上述情况。

        3.global关键字

                使用global关键字可以在函数内部声明变量为全局变量

#定义全局变量a
num = 100
def testA():
    print(num)#访问全局变量num,并打印变量num存储的数据
def testB():
    global num
    num = 200
    print(num)#访问全局变量num,并打印变量num存储的数据
testA() # 输出100
testB() # 输出100
print(num)

        结果:

        如上所示:要在函数中修改全局变量,需要使用global关键字将函数内定义的变量声明为全局变量

二十六、数据容器

        Python中的数据容器:

        一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素

        每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

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

        是否支持重复元素

        是否可以修改

        是否有序,等

        分为5类,分别是:

        列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

二十七、列表

        1.语法:

#字面量

[元素1,元素2,元素3,元素4,...]

#定义变量

变量名称=[元素1,元素2,元素3,元素4,...]

#定义空列表

变量名称尔=[]

变量名称尔= list()

        列表内的每一个数据,称之为元素

        以[]作为标识

        列表内每一个元素之间用“,”逗号隔开

#定义一个列表list
my_list = ["itheima","itcast","python"]
print(my_list)
print(type(my_list))

my_list = ["itheima", 666, True]
print(my_list)
print(type(my_list))

#定义一个嵌套的列表
my_list = [[1, 2, 3],[4,5,6]]
print(my_list)
print(type(my_list))

        注意:元素的数据类型没有任何限制,甚至元素也可以是列表,支持嵌套列表

        2.列表的下表(索引)

        列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增我们只需要按照下标索引,即可取得对应位置的元素。

#语法:列表[下标索引]
name_list = ['Tom','Lily','Rose']
print(name_list[0])#结果:Tom
print(name_list[1])#结果:Lily
print(name_list[2])#结果:Rose

        当然我们强大的python是支持反向索引的

        也就是从后往前,从-1开始,依次递(-1,-2,-3...)

#语法:列表[下标索引]
name_list = ['Tom','Lily','Rose']
print(name_list[-3])#结果:Tom
print(name_list[-2])#结果:Lily
print(name_list[-1])#结果:Rose

        注意:下标索引的取值范围,超出范围无法获取元素,并且会报错

                    正向下标是从0开始,要取第1个元素要xx[0],取第3个元素为xx[2]

                    反向下标是从-1开始,要取最后1个元素要xx[-1]

        3.列表常见功能

        列表也提供了一系列功能:插入元素、删除元素、清空列表、修改元素、统计元素个数等等功能,这些功能我们都称之为:列表的方法

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

        方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同:

#函数
def add(x,y):
    return x+y
#函数的使用
num = add(1,2)

#方法
class Student:
    def add(self,x,y):
        return x+y
#方法的使用:
student = Student()
num = student.add(1,2)

        方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同,关于方法的具体内容我们在后续的文章里会进行更新,现在就先当成函数使用

        ①、查找某个元素的下标

        功能:查找指定元素在列表的下标如果找不到,报错ValueError

        语法:列表:index.(元素)        

        index就是列表对象(变量)内置的方法(函数)

mylist = ["ikun","geigei","lizhi"]
# 查找某元素在列表内的下标索引
index = mylist.index("ikun")
print(f"ikun在列表中的下标索引值是:{index}")
#如果被查找的元素不存在,会报错
index = mylist.index("hello")
print(f"hello在列表中的下标索引值是:{index}")

结果:

        

        ②、修改特定位置(索引)的元素值

        语法:列表[下标] = 值

        直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

#正向下标
my_list = [1, 2, 3]
my_list[0] = 5
print(my_list) # 结果:[5,2,3]
# #反向下标
my_list = [1, 2, 3]
my_list[-3] = 5
print(my_list) # 结果: [5,2,3]
        ③、插入元素

        语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

        注意:这里可以用-1,但是-1并不会插入到列表的尾部,而是插入到倒数第二个的位置,也就是例子里面2和3的中间

my_list =[1,2,3]
my_list.insert(1, "ikun")
print(my_list) #结果::[1,"ikun",3,4]
        ④、追加元素

        语法1:列表.append(元素),将指定元素,追加到列表的尾部

my_list =[1,2,3]
my_list.append(4)
print(my_list) # 结果:[1,2,3, 4]

        语法2:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾

my_list = [1,2,3]
my_list.extend([4,5,6])
print(my_list) # 结果:[1,2,3,4,5,6]
        ⑤、删除元素

        语法1:del列表[下标]

        语法2:列表.pop[下标]

        注意:这里的del是直接删除元素,而pop可以用一个变量来接收你删除的函数

my_list =[1,2,3]
del my_list[0]
print(my_list) # 结果:[2,3]

num = my_list.pop(0)
print(num) # 结果:1
print(my_list) # 结果:[2,3]

          语法3:列表.remove(元素) 这里是删除某元素在列表中的第一个匹配项

my_list=[1,2,3,2,3]
my_list.remove(2)
print(my_list)#结果:[1,3,2,3]

        注意:这里只能删除第一个匹配项,如果需要删除多个,需要执行多次语句,当删除项不存在时,程序报错

        ⑥、清空列表内容

        语法:列表.clear()

my_list =[1,2,3]
my_list.clear()
print(my_list)#结果:[]
        ⑦、统计某元素在列表内的数量

        语法:列表.count(元素)

my_1ist=[1,1,1,2,3]
print(my_1ist.count(1)) #结果:3
        ⑧、统计元素 

        语法:len(列表)

my_1ist=[1,1,1,2,3]
print(len(my_1ist)) # 结果:5
        ⑨、小结
列表常见功能小结
编号使用方式作用
1列表.append(元素)向列表中追加一个元素
2列表.extend(容器)将数据容器的内容依次取出,追加到列表尾部
3列表.insert(下标,元素)在指定下标处,插入指定的元素
4del 列表[下标]删除列表指定下标元素
5列表.pop(下标)删除列表指定下标元素
6列表.remove(元素)从前向后,删除此元素第一个匹配项
7列表.clear()清空列表
8列表.count(元素)统计此元素在列表中出现的次数
9列表.index(元素)9查找指定元素在列表的下标,找不到报错ValueError
10len(列表)统计容器内有多少元素

        4.列表的遍历

        既然数据容器可以存储多个元素,那么,就会有需求从容器内依次取出元素进行操作。将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代。

        如何遍历列表的元素呢?可以使用前面学过的while循环

        如何在循环中取出列表的元素呢?使用列表[下标]的方式取出

        循环条件如何控制?定义一个变量表示下标,从0开始,循环条件为下标值<列表的元素数量

my_1ist=[1,1,1,2,3]
# 定义一个变量来标记列表的下标
index = 0   # 初始值为0
print(my_1ist)
# 通过len()获取列表长度作为判断条件,这里需要注意因为下标是从0开始,所以遍历5个元素的列表,下标只需要到4就可以了,所以判断条件不需要<=
while index < len(my_1ist):
    print(f"元组第{index+1}个元素是{my_1ist[index]}")
    # 将循环变量(index)每一次循环都+1,缺少的话会导致死循环
    index += 1

        结果:

 

        除了while循环外,Python中还有另外一种循环形式:for循环。

        对比while,for循环更加适合对列表等数据容器进行遍历。

        语法:

        for 临时变量 in 数据容器:

                对临时变量进行处理

        表示,从容器内,依次取出元素并赋值到临时变量上

        在每一次的循环中,我们可以对临时变量(元素)进行处理。

my_1ist=[1,1,1,2,3]
print(my_1ist)
for i in my_1ist:
    print(f"元组元素有:{i}")

         结果:

        

        while循环和for循环,都是循环语句,但细节不同:

        在循环控制上:

                while循环可以自定循环条件,并自行控制

                for循环不可以自定循环条件,只可以一个个从容器内取出数据

        在无限循环上:

                while循环可以通过条件控制做到无限循环

                for循环理论上不可以,因为被遍历的容器容量不是无限的

        在使用场景上:

                while循环适用于任何想要循环的场景

                for循环适用于,遍历数据容器的场景或简单的固定次数循环场景

        5.列表总结

        经过上述对列表的学习,可以总结出列表有如下特点:

                可以容纳多个元素(上限为2**63-1、9223372036854775807个)

                可以容纳不同类型的元素 (混装)

                数据是有序存储的 (有下标序号)

                允许重复数据存在

                可以修改 (增加或删除元素等)

        

标签:03,python,元素,list,列表,程序员,num,print,my
From: https://blog.csdn.net/weixin_67247542/article/details/141367921

相关文章

  • 程序员如何平衡日常编码工作与提升式学习?
    在快速迭代的编程世界中,程序员们不仅需要高效完成日常编码任务,还需不断学习新技术、深化专业知识,以应对日益复杂的项目挑战。然而,如何在繁忙琐碎的编码工作与个人成长之间找到平衡,是不少程序员都面临的一个难题。是沉浸在日复一日的工作代码海洋中,还是抽出时间深入探索、自主学......
  • python 接口实现类的
    定义接口实现classObjectAuth(ABC):@staticmethoddefdispatch(type):forsub_clsinObjectAuth.__subclasses__():ifsub_cls.__name__.lower().find(type.lower())>=0:returnsub_clsraiseException("没有......
  • 程序员是怎么做到写了 Bug 还理直气壮的?
    “你怎么能如此自信地面对程序中的错误呢?” 测试小姐姐以质疑的口吻向程序员小哥哥提出挑战。事件的导火索是公司的测试小姐姐在评估产品时发现了几个错误。恰巧,编写这个产品的程序员与测试小姐姐关系不错,两人经常互相打趣。当测试小姐姐发现程序员小哥哥的代码存在错误时,她以......
  • Levenshtein,一个超强的 Python 库!
    更多Python学习内容:ipengtao.com大家好,今天为大家分享一个超强的Python库-Levenshtein。Github地址:https://github.com/ztane/python-Levenshtein/文本相似性在许多领域如自然语言处理、数据清洗和信息检索中都有广泛应用。Python-Levenshtein库提供了一种有效的方法来计算......
  • 身份证识别、护照OCR、python身份证四要素实名认证API
    翔云身份证实名认证与身份证识别接口让你的APP在众多竞品中脱颖而出,仅需一键上传,用户身份信息便能快速提取,精准核验,告别繁琐的手动输入与反复核验,简化身份验证流程,提升用户体验,现已被广泛应用于电商、在线教育、金融等各类生活服务类APP中。python身份证实名认证接口代码......
  • Python之可变对象及其引用、深拷贝和浅拷贝
    可变对象及其引用深拷贝和浅拷贝可变对象及其引用Python中,变量名关联有值时才存在,如x=5变量名没有关联到特定的类型,类型有关联的对象觉得变量创建后即与特定的Python对象相关联Python维护命名空间,其中改变名与变量关联。这种联系,称为“引用”,也就是变量名引用对象......
  • Python之列表解决实际问题案例(字谜、文件分析)
    字谜文件分析1.《葛底斯堡演说》的长度2、有多少个不同的单词字谜字谜通过重新安排单词里的字母,来组成新的单词或词组。例如,将cinema转换成另一个英语单词iceman。在这个例子中,将设计一个程序,检查两个词是否构成字谜。如何做到这一点?做法是找出两个字谜单词所共享......
  • Python之列表的常用方法(添加删除排序等)
    一、列表的可变性二、列表方法1、不修改列表的方法2、修改列表的方法(1)添加(2)删除(3)列表排序(4)颠倒列表三、练习四、range、split和多重赋值五、使用join在列表和字符串之间转换一、列表的可变性在字符串中,不能直接去替换字符串中指定索引的值,需要使用切片和连接符。......
  • Python开发中,SQLAlchemy 的同步操作和异步操作封装,以及常规CRUD的处理。
    在我们使用Python来和数据库打交道中,SQLAlchemy是一个非常不错的ORM工具,通过它我们可以很好的实现多种数据库的统一模型接入,而且它提供了非常多的特性,通过结合不同的数据库驱动,我们可以实现同步或者异步的处理封装。1、SQLAlchemy介绍SQLAlchemy 是一个功能强大且灵活的Python......
  • Python中的常用的数据预处理所需工具
    Jupyter对于数据预处理的重要功能是支持用逐行编写和运行代码,实时查看结果。Jupyter是一个开源的交互式计算环境,它允许用户以网页的形式编写和运行代码,以及创建和共享文档,这些文档可以包含实时代码、方程、可视化和解释性文本。Jupyter的主要组件包括:1.JupyterNotebook:一......