python中的函数详解

一,内置函数

查看可遍历元素的长度

代码如下(示例):

print(len(range(1, 10)))

将负数转为正数

代码如下(示例):

print(abs(-10))

所有元素为真则为真,一个为假则为假

代码如下(示例):

print(all([0, 1, True]), all([]))

一个元素为真则为真,无论几个假

代码如下(示例):

print(any([1, 0, False]), any([]))

十进制转二进制

代码如下(示例):

print(bin(10))

十进制转十六进制

代码如下(示例):

print(hex(10))

十进制转八进制

代码如下(示例):

print(oct(12))

只有定义的类和函数为真,其他为假

代码如下(示例):

print(callable(10), callable(lambda x: x))

ascill 码转换

代码如下(示例):

print(chr(10), chr(100), ord("Z"), ord("X"))

求一个数的整数和余数

代码如下(示例):

print(divmod(100, 3))

求一个数的次方 开始为所求的这个数
结束为次方

代码如下(示例):

print(pow(2, 3))

将字符串进行排序,输出为列表的形式

代码如下(示例):

print(sorted("helol"))

求总和

代码如下(示例):

print(sum([i for i in range(10)]))

求最大值和最小值

代码如下(示例):

print(max([10, 20, 30]))
print(max([{"age": 15}, {"age": 5}, {"age": 25}], key=lambda x: x["age"]))
print(min([{"age": 15}, {"age": 5}, {"age": 25}], key=lambda x: x["age"]))

二,装饰器和闭包

闭包三要素
1,外置函数嵌套内置函数
2.外部函数可以将内部函数返回
3.内部函数可以访问外部函数的局部变量

代码如下(实例):

def f1():
    print("f1")
    i = 1

    def f2():
        # nunlocal 相当于globals可以修改外部变量
        nonlocal i
        i += 1
        print("f2", i)

    return f2


# r就等同于f2 (r内部保存了外部函数的变量i)
r = f1()
r()

函数添加新功能就需要 修改函数实现 重复代码很麻烦
闭包最经典的提两个题时间开销和用户校验
一,用户校验

代码如下(实例):


def login_required(f):
    def check():
        user_name = input("输入用户名")
        if user_name == "admin":
            f()
        else:
            print("输入错误")

    return check


# index = login_required(index)
# index()
# mine = login_required(mine)
# mine()
# cart = login_required(cart)
# cart()
@login_required
def index():
    print("首页")


index()


@login_required
def cart():
    print("购物车")


cart()


@login_required
def mine():
    print("主页")


cart()

闭包和装饰器步骤

  1. 定义3个基本函数
  2. 编写闭包
  3. 使用闭包加工原始3个函数
  4. 给闭包添加权限校验
  5. 函数调用
    二,时间开销
    随机 0-1000以内的500个数字 放入列表
    使用冒泡排序与选择排序对列表进行升序
    编写装饰器 统计 两个方法的时间开销

代码如下(示例):

import random
import time

l = []

for i in range(500):
    num = l.append(random.randint(0, 1000))
l1 = [i for i in l]


def login_required(f):
    def check():
        start = time.time()
        f()
        print(time.time() - start)

    return check


@login_required
def p():
    for i in range(len(l) - 1):
        for j in range(i + 1, len(l)):
            if l[i] > l[j]:
                l[i], l[j] = l[j], l[i]


p()


@login_required
def p1():
    for i in range(len(l1) - 1):
        min_index = i
        for j in range(i + 1, len(l1)):
            if l1[j] < l1[min_index]:
                min_index = j
            if min_index != i:
                l1[min_index], l1[i] = l1[i], l1[min_index]


p1()

三,open函数

打开文件只读不写
找不到文件回报错
须在文件根目录下创建一个data.txt文件

代码如下(示例):

f = open("data.txt", mode="r")
print(f.read())

读取文件中的第一行,读取几次重复几次

代码如下(示例):

print(f.readline())

查看有没有阅读文件的权力

代码如下(示例):

print(f.readable())

将文件读取成列表

代码如下(示例):

print(f.readlines())

将图片转换成二进制查看

代码如下(示例)

f = open("data2.png", mode="rb")
print(f.read())

写入

代码如下(示例):

w = open("data1.txt", mode="w")
curren = ['a']
w.write(curren)

查看是否有写入的权力

代码如下(示例):`

print(w.writable())

打开这个文件将指定内容写入 没有就创建

代码如下(示例):`

a = open("data3.txt", mode="a")
a.write("8792")
# 关闭
a.close()

随着代码块的结束 f自动关闭 不需要调用close

代码如下(示例):

with open("data.txt", mode="r") as f:
    print(f.read())

四,json序列化和反序列化

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在不同应用程序之间传输和存储数据。以下是一些 JSON 的作用:

  • 数据交换:JSON 是一种通用的数据格式,可用于不同编程语言之间的数据交换。它提供了一种结构化的方式来表示复杂的数据,使得数据在不同系统之间的传输更加方便和可靠。

  • 与前端交互:JSON 在 Web 开发中扮演了重要的角色。通过将数据以 JSON 格式发送到前端,可以轻松地在后端和前端之间进行数据交互。前端框架如Ajax、React、Vue等都支持直接处理 JSON 数据。

  • 存储配置数据:JSON 可以用于存储配置信息,例如应用程序的设置和选项。由于 JSON 具有结构化格式,因此可以轻松地读取和修改配置数据。

  • API 通信:许多 Web API 使用 JSON 作为数据传输格式。当客户端请求数据时,服务器会将响应数据以 JSON 格式返回,使得数据的解析和处理更加方便。

  • NoSQL 数据库存储:JSON 在 NoSQL 数据库中被广泛使用,例如 MongoDB。NoSQL 数据库使用文档型数据库模型,而 JSON 可以很好地表示和存储文档数据。

  • 日志记录:JSON 可以用于结构化日志记录,将重要的日志信息以 JSON 格式记录下来。这样做有助于后续的日志分析和处理。
    将字典的类型转换为字符串类型

代码如下(示例):

import json
dict1 = {"name": "wen", "age": 10, "sex": "男"}
json_str = json.dumps(dict1)
print(json_str, type(json_str))

从 JSON 格式的字符串中解码数据并将其转换为 Python 字典

代码如下(示例):

import json
json_str1 = json.loads(json_str)
print(dict1)
dict2 = {"name": "wen", "age": 10, "sex": "男"}

上述代码将一个字典对象 data 写入名为 data.json 的文件中。如果文件不存在,则会创建新文件;如果文件已存在,则会覆盖原有内容。
将数据以 JSON 格式写入文件

代码如下(示例)

import json
with open("dict2.json", "w") as file:
    json.dump(dict2, file)

通过指定 indent 参数,我们将生成的 JSON 文件进行了缩进,使其更易读。sort_keys 参数设置为 True 则会按照键的顺序对 JSON 对象进行排序。

代码如下(示例):

import json
with open("data.json", "w") as file:
    json.dump(data, file, indent=4, sort_keys=True)
    # 从JSON文件中读取数据
with open("data.json", "r") as file:
    data = json.load(file)

print(data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值