python基础入门之普通操作与函数(三)

  • Post category:Python

Python基础入门之普通操作与函数(三)

Python基础入门之普通操作与函数(三)是一个涵盖了Python中常用的操作和函数的教程。本教程将介绍列表操作和函数操作两个方面的内容。

列表操作

列表切片

列表切片是指从一个列表中截取一部分元素,形成一个新的列表。可以使用冒号(:)来指定切片的起始位置和结束位置。下面是一个示例:

# 示例1:列表切片
lst = [1, 2, 3, 4, 5]
new_lst = lst[1:4]
print(new_lst)

在这个示例中,我们首先定义了一个列表lst,然后使用切片操作将lst中的第2个到第4个元素截取出来,形成一个新的列表new_lst。最后,我们打印出new_lst。

列表排序

可以使用sort()方法对一个列表进行排序。sort()方法有两个可选参数:reverse和key。reverse参数用于指定是否降序排列,key参数用于指定排序的关键字。下面是一个示例:

# 示例2:列表排序
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort()
print(lst)

lst.sort(reverse=True)
print(lst)

lst.sort(key=lambda x: x % 3)
print(lst)

在这个示例中,我们首先定义了一个列表lst,然后使用sort()方法对lst进行排序。第一个sort()方法将lst按照升序排列,第二个sort()方法将lst按照降序排列,第三个sort()方法将lst按照元素对3取余数的结果升序排列。最后,我们打印出排序后的lst。

函数操作

函数定义

函数是一段可重复使用的代码块,可以接受参数并返回值。可以使用def关键字来定义一个函数。下面是一个示例:

# 示例3:函数定义
def add(x, y):
    return x + y

result = add(3, 5)
print(result)

在这个示例中,我们定义了一个函数add,它接受两个参数x和y,并返回它们的和。然后,我们调用add函数,并将3和5作为参数传递给它。最后,我们打印出add函数的返回值。

匿名函数

匿名函数是一种没有名称的函数,可以使用lambda关键字来定义。它通常用于一些简单的函数,可以作为其他函数的参数传递。下面是一个示例:

# 示例4:匿名函数
lst = [1, 2, 3, 4, 5]
new_lst = list(map(lambda x: x * 2, lst))
print(new_lst)

在这个示例中,我们首先定义了一个列表lst,然后使用map()函数和匿名函数将lst中的每个元素都乘以2,形成一个新的列表new_lst。最后,我们打印出new_lst。

示例

下面是一个示例,演示如何使用列表切片和函数定义来实现一个简单的计算器:

# 示例5:使用列表切片和函数定义实现计算器
def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mul(x, y):
    return x * y

def div(x, y):
    return x / y

ops = {'+': add, '-': sub, '*': mul, '/': div}

expr = '3 + 4 * 5'
tokens = expr.split()
stack = []
for token in tokens:
    if token.isdigit():
        stack.append(int(token))
    else:
        op = ops[token]
        y = stack.pop()
        x = stack.pop()
        z = op(x, y)
        stack.append(z)

result = stack.pop()
print(result)

在这个示例中,我们首先定义了四个函数add、sub、mul和div,分别用于实现加法、减法、乘法和除法。然后,我们定义了一个字典ops,用于将运算符映射到对应的函数上。接着,我们定义了一个表达式expr,使用split()方法将它分割成一个个token。然后,我们使用一个栈stack来保存数字和运算符,遍历token,如果是数字就将它压入栈中,如果是运算符就从栈中弹出两个数字,使用ops字典中对应的函数进行计算,然后将结果压入栈中。最后,我们从栈中弹出最后的结果,并打印出来。

需要注意的是,这个计算器只支持加减乘除四种运算符,不支持括号和优先级。