Python学习笔记函数篇

函数

函数的作用

函数在Python里面有怎样的作用呢,我们可以这样来理解:如果你要做一个蛋糕,你需要准备材料,然后一步一步的做,做出一个蛋糕。如果你只是做一个,肯定没什么。要是要做很多个蛋糕,每一个蛋糕都需要一步一步的做,是在太慢了。你就需要你烤面包的机器(function,函数),这样你就可以快速做出蛋糕了。也就是不不管烤面包的机器怎么做的,你只要知道,最后你能拿到蛋糕就行了。函数就是把一步一步的过程封装(做成了烤面包的机器)了起来,你只需要传递参数(蛋糕的材料),然后让机器自动运行。只要你最后获得一个结果就行了(蛋糕),所以我们可以把相对独立的要重复使用的功能模块写成函数。

定义函数

在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数,这一点和数学上的函数非常相似,程序中函数的参数就相当于是数学上说的函数的自变量,而函数执行完成后我们可以通过return关键字来返回一个值,这相当于数学上说的函数的因变量。
下面我们来写一个简单的函数:

def foo():
    print('hello, world!')
#将打印'hello,world!'的功能封装到foo()函数里面

foo()
#调用foo()函数实现打印'hello,world!'功能

函数的参数

一个函数具体有多少个参数是由调用者来决定,我们作为函数的设计者对这一点是一无所知的,因此在不确定参数个数的时候,我们可以使用可变参数,代码如下所示。

def add(*args):
    total = 0
    for val in args:
        total += val
    return total


my_list = [1, 3, 5, 7, 9]
# 不能用函数直接调用列表,通过*把列表里的元素一个个的传递给函数并执行
print(f(*my_list))

作用域 - LEGB : local(局部作用域) (嵌套作用域) global(全局作用域) build-in(内置作用域)

a = 100

def f():
    global a
    a = 200  #导入全局变量a并对a重新赋值
    b = 'hello'

    def g():
        nonlocal b
        b = 'good'  #导入局部变量b并对b重新赋值

下面我们来写判断一个数是否为素数的函数

def is_prime(num):
    for factor in range(2, num):
        if num % factor == 0:
            return False
    return True if num != 1 else False

模块

Python模块是一个.py文件,其中包含多个常量和定义的函数代码(以及自定义的数据类,类型等),供其他的Python程序使用。模块分为内置模块和非内置模块。

内置函数

内置模块中的函数称为内置函数(有时又称系统函数)。
内置函数使用时不需加模块名前缀

非内置模块

非内置模块以文件形式存在于Python的安装目录中,要使用模块中的函数首先要导入该模块
Python中使用(import 模块名)来导入模块

字符串

今天的计算机处理得更多的数据都是以文本信息的方式存在的,Python表示文本信息的类型是字符串类型。所谓字符串,就是由零个或多个字符组成的有限序列。

我们可以通过下例学习字符串的各种用法:

def main():
    str1 = 'hello, world!'
    # 通过len函数计算字符串的长度
    print(len(str1))  # 13
    # 获得字符串首字母大写的拷贝
    print(str1.capitalize())  # Hello, world!
    # 获得字符串变大写后的拷贝
    print(str1.upper())  # HELLO, WORLD!
    # 从字符串中查找子串所在位置
    print(str1.find('or'))  # 8
    print(str1.find('shit'))  # -1
    # 与find类似但找不到子串时会引发异常
    # print(str1.index('or'))
    # print(str1.index('shit'))
    # 检查字符串是否以指定的字符串开头
    print(str1.startswith('He'))  # False
    print(str1.startswith('hel'))  # True
    # 检查字符串是否以指定的字符串结尾
    print(str1.endswith('!'))  # True
    # 将字符串以指定的宽度居中并在两侧填充指定的字符
    print(str1.center(50, '*'))
    # 将字符串以指定的宽度靠右放置左侧填充指定的字符
    print(str1.rjust(50, ' '))
    str2 = 'abc123456'
    # 从字符串中取出指定位置的字符(下标运算)
    print(str2[2])  # c
    # 字符串切片(从指定的开始索引到指定的结束索引)
    print(str2[2:5])  # c12
    print(str2[2:])  # c123456
    print(str2[2::2])  # c246
    print(str2[::2])  # ac246
    print(str2[::-1])  # 654321cba
    print(str2[-3:-1])  # 45
    # 检查字符串是否由数字构成
    print(str2.isdigit())  # False
    # 检查字符串是否以字母构成
    print(str2.isalpha())  # False
    # 检查字符串是否以数字和字母构成
    print(str2.isalnum())  # True
    str3 = '  jackfrued@126.com '
    print(str3)
    # 获得字符串修剪左右两侧空格的拷贝
    print(str3.strip())


if __name__ == '__main__':
    main()

#使用if __name__ == '__main__':  main() 语句调用函数以免在其他模块调用该模块时运行不相关的项目

列表

列表和字符串一样可以进行切片,计算长度等操作,除此之外,列表还可以做添加,删除等操作,如下例所示:


def main():
    list1 = [1, 3, 5, 7, 100]
    # 添加元素
    list1.append(200)
    list1.insert(1, 400)
    list1 += [1000, 2000]
    print(list1)
    print(len(list1))
    # 删除元素
    list1.remove(3)
    if 1234 in list1:
        list1.remove(1234)
    del list1[0]
    print(list1)
    # 清空列表元素
    list1.clear()
    print(list1)


if __name__ == '__main__':
    main()

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改,我们把多个元素组合到一起就形成了一个元组,所以它和列表一样可以保存多条数据。元组中的元素是无法修改的,如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组,当然如果一个方法要返回多个值,使用元组也是不错的选择。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值