Python基础学习函数+模块+类

Python基础学习——函数、模块和类

在Python中,函数、模块和类都是非常重要的基础知识。

函数

函数是一块可重用的代码,它接受输入并返回输出。函数的优点是可以提高代码的可读性和重复利用性。

函数的定义和调用

在Python中,定义函数的语法为:

def function_name(parameter1, parameter2, ...):
    # function body

其中,def关键字表示要定义一个函数,function_name是函数的名称,parameter1parameter2等是函数的参数。函数的参数可以没有,也可以有多个。

例如,我们定义一个简单的函数,用于计算两个数的和:

def add(a, b):
    return a + b

函数体中使用了return语句返回了计算结果。这个函数可以通过以下方式进行调用:

result = add(1, 2)
print(result)  # 输出3

函数的参数传递方式

在Python中,函数的参数可以有两种传递方式:

  1. 值传递
  2. 引用传递

当函数的参数是不可变类型时(如数字、字符串、元组等),Python会采用值传递的方式。例如:

def increment(x):
    x += 1

a = 1
increment(a)
print(a)  # 输出1

在这个例子中,虽然函数中将x加了1,但是对于全局变量a没有任何改变,因为a是不可变类型,传递的是值。

当函数的参数是可变类型时(如列表、字典等),Python会采用引用传递的方式。例如:

def append_element(lst, element):
    lst.append(element)

lst = [1, 2, 3]
append_element(lst, 4)
print(lst)  # 输出[1, 2, 3, 4]

在这个例子中,函数中向列表中添加元素后,对于全局变量lst也发生了改变,因为列表是可变类型,传递的是引用。

函数的默认参数

在Python中,可以给函数的参数指定默认值。例如:

def power(x, n=2):
    return x ** n

print(power(3))  # 输出9
print(power(3, 3))  # 输出27

当给出第二个参数时,函数使用第二个参数作为幂,如果不给出第二个参数,函数默认使用2作为幂。

函数的可变参数

在Python中,可以使用可变参数接受不确定数量的参数。在函数的参数前加上一个*即可:

def sum(*args):
    result = 0
    for i in args:
        result += i
    return result

print(sum(1, 2, 3))  # 输出6

这个sum函数可以接受任意数量的参数,将它们相加并返回结果。

模块

在Python中,模块是指一个包含Python代码的文件。一个模块可以包含类、函数和变量等。

模块的导入和使用

在Python中,使用import关键字来导入模块。例如,我们想导入Python标准库中的os模块,可以使用以下代码:

import os

导入模块后,就可以使用其中的函数和变量了。例如,我们可以使用os.getcwd()函数来获取当前工作目录:

import os

current_dir = os.getcwd()
print(current_dir)

模块别名和局部导入

使用import导入模块时,也可以给模块指定别名,这样可以方便地使用模块功能:

import numpy as np

arr = np.array([1, 2, 3])
print(arr)

此外,我们还可以使用from语句从模块中导入部分功能:

from math import sin, cos

print(sin(0))
print(cos(0))

这个例子中,我们只从math模块中导入了sincos函数。

在Python中,类是一种抽象的数据类型,它可以有属性和方法。类的使用可以提高代码的面向对象程度,方便代码的组织与重用。

类的定义和实例化

在Python中,定义类的语法为:

class ClassName:
    def __init__(self, parameter1, parameter2, ...):
        # constructor
    def method1(self, parameter1, parameter2, ...):
        # method1 implementation
    def method2(self, parameter1, parameter2, ...):
        # method2 implementation

其中,__init__方法是构造函数,用于在类的实例化时初始化对象;method1method2是类的方法,它们可以访问和修改类的属性。

例如,我们定义一个简单的类来表示一个点:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def distance(self, other):
        dx = self.x - other.x
        dy = self.y - other.y
        return (dx ** 2 + dy ** 2) ** 0.5

这个Point类有一个构造函数,用于初始化xy属性,还有一个distance方法,可以计算两个点之间的距离。

实例化类的语法为:

point1 = Point(0, 0)
point2 = Point(3, 4)
distance = point1.distance(point2)
print(distance)  # 输出5.0

类的继承和方法重载

在Python中,类可以通过继承来获得父类的属性和方法,同时也可以重载父类的方法来符合需求。例如,我们定义一个继承Point类的ColoredPoint类,并重载它的构造函数:

class ColoredPoint(Point):
    def __init__(self, x, y, color):
        super().__init__(x, y)
        self.color = color

这个ColoredPoint类从Point类继承了xy属性和distance方法,并在它的构造函数中添加了color属性。在__init__方法中,我们使用了super()函数来调用父类的构造函数。

类的静态方法和类方法

在Python中,可以定义静态方法和类方法。

静态方法使用@staticmethod装饰器来定义,它可以不依赖于类的实例而存在。例如:

class MyClass:
    @staticmethod
    def method():
        return "Hello, static method!"

类方法使用@classmethod装饰器来定义,它在类的范围内运行,可以访问和修改类的属性。例如:

class Point:
    point_num = 0
    def __init__(self, x, y):
        self.x = x
        self.y = y
        Point.point_num += 1
    @classmethod
    def get_point_num(cls):
        return cls.point_num

p1 = Point(0, 0)
p2 = Point(1, 1)
print(Point.get_point_num())  # 输出2

这个Point类有一个类属性point_num,表示实例化对象的数量。在每次对象初始化时,point_num加1。类方法get_point_num可以返回当前实例化对象的数量。

示例说明

  1. 定义一个Student类,包括nameagesex三个属性,分别为字符串、整数、字符串类型,还有一个方法show用于输出该学生的信息。实例化三个学生对象,调用show方法输出这三个学生的信息。
class Student:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
    def show(self):
        print("Name: {}, Age: {}, Sex: {}".format(self.name, self.age, self.sex))

student1 = Student("Tom", 20, "male")
student2 = Student("Lucy", 19, "female")
student3 = Student("Mike", 21, "male")

student1.show()
student2.show()
student3.show()

运行结果:

Name: Tom, Age: 20, Sex: male
Name: Lucy, Age: 19, Sex: female
Name: Mike, Age: 21, Sex: male
  1. 定义一个函数find_max,用于在列表中查找最大的元素,如果找到则返回该元素的索引,否则返回-1。
def find_max(lst):
    if len(lst) == 0:
        return -1
    max_index = 0
    for i in range(1, len(lst)):
        if lst[i] > lst[max_index]:
            max_index = i
    return max_index

list1 = [5, 3, 4, 7, 1]
list2 = []

print(find_max(list1))  # 输出3
print(find_max(list2))  # 输出-1

运行结果:

3
-1

以上就是Python基础学习中函数、模块和类的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基础学习函数+模块+类 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • python利用7z批量解压rar的实现

    我来详细讲解一下“python利用7z批量解压rar的实现”的完整攻略。 1. 环境准备 首先需要安装好Python和7z压缩工具,具体安装方法可以查阅相关资料。另外,还需要安装Python的第三方模块pylzma,可以通过pip命令进行安装: pip install pylzma 2. 解压命令 利用Python和7z批量解压rar需要用到的命令格式为: …

    python 2023年6月3日
    00
  • 解决python 找不到module的问题

    关于“解决Python找不到Module的问题”的完整攻略,可以从以下几个方面来说明: 1. 确认Module是否已安装 在Python中使用Module,首先需要在本地电脑上安装该Module。可以通过pip命令来进行安装,比如: pip install module_name 当然,也可以通过在GitHub等代码托管平台上找到对应Module的代码库,下…

    python 2023年6月3日
    00
  • Python中有哪些常用的框架?

    Python语言是一个非常流行的编程语言,它在Web开发、数据科学、人工智能等领域都有着广泛的应用。Python生态系统中有许多强大的框架,用于开发Web应用、数据科学、机器学习等领域,这些框架让开发人员可以轻松地构建复杂的应用程序。本文将介绍Python中几个常用的框架。 Flask框架 Flask框架是一个轻量级的Web框架,它使用Python语言编写,…

    python 2023年4月19日
    00
  • Python Socket编程详解

    Python Socket编程是一种在计算机网络中使用的编程技术,主要用于实现网络通信功能。本文将从Socket编程的概念入手,详细讲解Socket编程的基础知识和操作方法,并且通过两个示例说明Socket编程的具体应用。 一、Socket编程概述 1.1 Socket编程简介 Socket是网络编程中的一个抽象概念,它和文件类似,可以被看作是一种打开的文件…

    python 2023年5月19日
    00
  • Python 自动化常用操作及glob使用大全

    下面我就来详细讲解一下关于“Python 自动化常用操作及glob使用大全”的完整攻略。本文主要介绍如何用Python实现自动化操作,包括文件操作、网络请求、图像处理等,并介绍了使用glob模块查询文件的方法。 一、Python 自动化常用操作 本节主要介绍一些Python自动化操作的示例。 1. 文件操作 创建文件夹 import os os.mkdir(…

    python 2023年5月19日
    00
  • Python使用future处理并发问题方案详解

    Python使用future处理并发问题方案详解 背景 在Python的并发编程中,有多种处理方式,其中就包括了使用concurrent.futures模块中的Future类进行并发编程的方案。本文将详细讲解这种方案,包括它的基本概念、使用方法、注意事项和示例。 概念 Future是一个抽象的概念,它表示未来承诺完成的操作。例如,如果你向网站发送一个请求,此…

    python 2023年5月13日
    00
  • Python实现去除列表中重复元素的方法总结【7种方法】

    下面我将详细讲解“Python实现去除列表中重复元素的方法总结【7种方法】”的完整攻略。 一、需求背景和问题描述 在 Python 编程中,经常会遇到需要从列表中删除重复元素的场景。比如,我们从数据库中获取了一个列表,但是其中可能包含重复的元素,这时候我们就需要去重。 那么问题来了,Python 中有哪些方法可以去除列表中的重复元素呢? 本篇文章将为大家总结…

    python 2023年6月3日
    00
  • Python自动创建Excel并获取内容

    下面我将为您详细讲解Python自动创建Excel并获取内容的完整实例教程。 1.使用Python库xlwt创建Excel文件 通过Python库xlwt,可以自动创建Excel表格并对其进行编辑和填充。以下是创建一个包含3行3列的Excel表格的Python代码示例: # 引入xlwt库 import xlwt # 创建一个workbook对象,相当于创建…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部