首页 > 编程语言 ># 23_ Python基础到实战一飞冲天(二)-python基础(二十三)--变量的引用

# 23_ Python基础到实战一飞冲天(二)-python基础(二十三)--变量的引用

时间:2024-11-30 22:57:53浏览次数:12  
标签:名片 23 Python python dict print input find card

23_ Python基础到实战一飞冲天(二)-python基础(二十三)–变量的引用

一、处理名片-03-修改名片

1、名片管理系统案例:cards_tools.py 文件中,修改名片方法(deal_card) 代码:

  • 由于找到的字典记录已经在列表中保存
  • 要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可
def deal_card(find_dict):

    """操作搜索到的名片字典
        :param find_dict:找到的名片字典
    """
    print(find_dict)

    action_str = input("请选择要执行的操作 "
        "[1] 修改 [2] 删除 [0] 返回上级菜单")

    if action_str == "1":

        find_dict["name"] = input("姓名:")
        find_dict["phone"] = input("电话:")
        find_dict["qq"] = input("QQ号码:")
        find_dict["email"] = input("邮箱:")

        print("修改名片成功!")

    elif action_str == "2":

        card_list.remove(find_dict)

        print("删除名片成功!")

2、名片管理系统案例:cards_tools.py 文件 代码

# cards_tools.py

# 所有名片记录的列表
card_list = []

def show_menu():

    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】 V1.0")
    print("")
    print("1.新增名片")
    print("2.显示全部")
    print("3.搜索名片")
    print("")
    print("0.退出系统")
    print("*" * 50)


def new_card():

    """新增名片"""
    print("-" * 50)
    print("新增名片")

    # 1)提示用户依次输入名片信息
    name_str = input("请输入姓名:")
    phone_str = input("请输入电话:")
    qq_str = input("请输入qq号码:")
    email_str = input("请输入email:")

    # 2)将名片信息保存到一个字典
    card_dict = {"name": name_str,
"phone": phone_str,
"qq": qq_str,
"email": email_str}

    # 3)将字典添加到名片列表
    card_list.append(card_dict)

    # 4)提示名片添加完成
    print(card_list)
    print("添加用户 %s 的名片成功" % name_str)


def show_all():

    """显示全部名片"""
    print("-" * 50)
    print("功能:显示全部名片")

    # 判断是否有名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0:
        print("提示:没有任何名片记录")

        # 在函数中使用 `return` 表示返回,下方的代码不会再执行。
        # 如果在 `return` 后没有跟任何内容,表示会返回到调用函数位置,并不返回任何结果
        return

    # 打印表头
    for name in ["姓名", "电话", "QQ", "邮箱"]:
        print(name, end="\t\t")

    print("")

    # 打印分隔线
    print("=" * 50)

    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:

        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                        card_dict["phone"],
                                        card_dict["qq"],
                                        card_dict["email"]))


def search_card():

    """搜索名片"""
    print("-" * 50)
    print("功能:搜索名片")

    # 1. 提示要搜索的姓名
    find_name = input("请输入要搜索的姓名:")

    # 2. 遍历名片列表,查询要搜索的姓名,如果没找到,提示用户
    for card_dict in card_list:

        if card_dict["name"] == find_name:

            print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
            print("-" * 40)

            print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (
                card_dict["name"],
                card_dict["phone"],
                card_dict["qq"],
                card_dict["email"]))

            print("-" * 40)

            # TODO(小明) 针对找到的字典进行后续操作:修改/删除
            deal_card(card_dict)

            break
    else:
        print("没有找到 %s" % find_name)


def deal_card(find_dict):

    """操作搜索到的名片字典
        :param find_dict:找到的名片字典
    """
    print(find_dict)

    action_str = input("请选择要执行的操作 "
        "[1] 修改 [2] 删除 [0] 返回上级菜单")

    if action_str == "1":

        find_dict["name"] = input("姓名:")
        find_dict["phone"] = input("电话:")
        find_dict["qq"] = input("QQ号码:")
        find_dict["email"] = input("邮箱:")

        print("修改名片成功!")

    elif action_str == "2":

        card_list.remove(find_dict)

        print("删除名片成功!")

3、名片管理系统案例:cards_main.py 文件 代码

# cards_main.py

import cards_tools

# 添加一个无限循环,由用户主动决定什么时候退出循环
while True:

    # TODO(小明) 显示功能菜单
    cards_tools.show_menu()

    action_str = input("请选择希望执行的操作:")
    print("您选择的操作是【%s】" % action_str)

    # 1,2,3针对名片的操作
    if action_str in ["1", "2", "3"]:

        # 新增名片
        if action_str == "1":
            cards_tools.new_card()

        # 显示全部
        elif action_str == "2":
            cards_tools.show_all()

        # 查询名片
        elif action_str == "3":
            cards_tools.search_card()

        pass

    # 0 退出系统
    elif action_str == "0":

        print("欢迎再次使用【名片管理系统】")
        break

        # 如果在开发中,不希望立刻编写分支内部的代码,可以使用 pass 关键字
        # pass 表示一个占位符,能够保证程序代码结构正确。
        # 程序运行时,pass关键字不会执行任何操作。
        # pass

    # 其他内容输入错误,需要提示用户
    else:
        print("您输入的不正确,请重新选择")

4示例:

在这里插入图片描述

二、处理名片-04-明确细化修改名片的思路,准备新的输入函数

1、名片管理系统案例:cards_tools.py 文件中,对 修改名片方法(deal_card) 进行改进细化

如果用户在使用时,某些名片内容并不想修改,应该如何做呢?

既然系统提供的 input 函数不能满足需求,那么就新定义一个函数 input_card_info 对系统的 input 函数进行扩展。

2、input_card_info 函数编写思路

def input_card_info(dict_value, tip_message):

    """输入名片信息

    :param dict_value: 字典原有值
    :param tip_message: 输入提示信息
    :return: 如果输入,返回输入内容,否则返回字典原有值
    """
    # 1. 提示用户输入内容   
    # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果 
    # 3. 如果用户没有输入内容,返回 `字典中原有的值`   

三、处理名片-05-实现修改名片输入函数

1、名片管理系统案例:cards_tools.py 文件中,对 修改名片方法(deal_card) 进行改进细化,添加 input_card_info 函数,并编写 代码

def input_card_info(dict_value, tip_message):

    """输入名片信息

    :param dict_value: 字典原有值
    :param tip_message: 输入提示信息
    :return: 如果输入,返回输入内容,否则返回字典原有值
    """
    # 1. 提示用户输入内容
    result_str = input(tip_message)

    # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:

        return result_str
    # 3. 如果用户没有输入内容,返回 `字典中原有的值`
    else:

        return dict_value

2、cards_tools.py 文件 代码

# cards_tools.py

# 所有名片记录的列表
card_list = []

def show_menu():

    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】 V1.0")
    print("")
    print("1.新增名片")
    print("2.显示全部")
    print("3.搜索名片")
    print("")
    print("0.退出系统")
    print("*" * 50)


def new_card():

    """新增名片"""
    print("-" * 50)
    print("新增名片")

    # 1)提示用户依次输入名片信息
    name_str = input("请输入姓名:")
    phone_str = input("请输入电话:")
    qq_str = input("请输入qq号码:")
    email_str = input("请输入email:")

    # 2)将名片信息保存到一个字典
    card_dict = {"name": name_str,
"phone": phone_str,
"qq": qq_str,
"email": email_str}

    # 3)将字典添加到名片列表
    card_list.append(card_dict)

    # 4)提示名片添加完成
    print(card_list)
    print("添加用户 %s 的名片成功" % name_str)


def show_all():

    """显示全部名片"""
    print("-" * 50)
    print("功能:显示全部名片")

    # 判断是否有名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0:
        print("提示:没有任何名片记录")

        # 在函数中使用 `return` 表示返回,下方的代码不会再执行。
        # 如果在 `return` 后没有跟任何内容,表示会返回到调用函数位置,并不返回任何结果
        return

    # 打印表头
    for name in ["姓名", "电话", "QQ", "邮箱"]:
        print(name, end="\t\t")

    print("")

    # 打印分隔线
    print("=" * 50)

    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:

        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                        card_dict["phone"],
                                        card_dict["qq"],
                                        card_dict["email"]))


def search_card():

    """搜索名片"""
    print("-" * 50)
    print("功能:搜索名片")

    # 1. 提示要搜索的姓名
    find_name = input("请输入要搜索的姓名:")

    # 2. 遍历名片列表,查询要搜索的姓名,如果没找到,提示用户
    for card_dict in card_list:

        if card_dict["name"] == find_name:

            print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
            print("-" * 40)

            print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (
                card_dict["name"],
                card_dict["phone"],
                card_dict["qq"],
                card_dict["email"]))

            print("-" * 40)

            # TODO(小明) 针对找到的字典进行后续操作:修改/删除
            deal_card(card_dict)

            break
    else:
        print("没有找到 %s" % find_name)


def deal_card(find_dict):

    """操作搜索到的名片字典
        :param find_dict:找到的名片字典
    """
    print(find_dict)

    action_str = input("请选择要执行的操作 "
        "[1] 修改 [2] 删除 [0] 返回上级菜单")

    if action_str == "1":

        # find_dict["name"] = input("姓名:")
        # find_dict["phone"] = input("电话:")
        # find_dict["qq"] = input("QQ号码:")
        # find_dict["email"] = input("邮箱:")

        # 改进细化代码

        find_dict["name"] = input_card_info(find_dict["name"], "姓名:")
        find_dict["phone"] = input_card_info(find_dict["phone"], "电话:")
        find_dict["qq"] = input_card_info(find_dict["qq"], "QQ号码:")
        find_dict["email"] = input_card_info(find_dict["email"], "邮箱:")

        print("修改名片成功!")

    elif action_str == "2":

        card_list.remove(find_dict)

        print("删除名片成功!")


def input_card_info(dict_value, tip_message):

    """输入名片信息

    :param dict_value: 字典原有值
    :param tip_message: 输入提示信息
    :return: 如果输入,返回输入内容,否则返回字典原有值
    """

    # 1. 提示用户输入内容
    result_str = input(tip_message)

    # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:

        return result_str

    # 3. 如果用户没有输入内容,返回 `字典中原有的值`
    else:

        return dict_value

3、示例:

在这里插入图片描述

四、处理名片-06-增加文档注释、删除TODO标记

1、pycharm 中,给函数快速添加文档注释

1)点击某一函数,如:cards_tools.py 文件中的 def input_card_info 函数:
2)点击函数左边 【黄色灯泡】小三角下面的【Insert docuumentation string stub】。
3)给函数添加注释,如下:
4)选中全部注释,点击 pycharm 菜单栏的【Code】下面的【Move line Up】会把全部注释快速移动到函数顶部。

def input_card_info(dict_value, tip_message):

    """输入名片信息

    :param dict_value: 字典原有值
    :param tip_message: 输入提示信息
    :return: 如果输入,返回输入内容,否则返回字典原有值
    """
def deal_card(find_dict):

    """操作搜索到的名片字典
        :param find_dict:找到的名片字典
    """

2、cards_tools.py 文件 代码

# cards_tools.py

# 所有名片记录的列表
card_list = []

def show_menu():

    """显示菜单"""
    print("*" * 50)
    print("欢迎使用【名片管理系统】 V1.0")
    print("")
    print("1.新增名片")
    print("2.显示全部")
    print("3.搜索名片")
    print("")
    print("0.退出系统")
    print("*" * 50)


def new_card():

    """新增名片"""
    print("-" * 50)
    print("新增名片")

    # 1)提示用户依次输入名片信息
    name_str = input("请输入姓名:")
    phone_str = input("请输入电话:")
    qq_str = input("请输入qq号码:")
    email_str = input("请输入email:")

    # 2)将名片信息保存到一个字典
    card_dict = {"name": name_str,
"phone": phone_str,
"qq": qq_str,
"email": email_str}

    # 3)将字典添加到名片列表
    card_list.append(card_dict)

    # 4)提示名片添加完成
    print(card_list)
    print("添加用户 %s 的名片成功" % name_str)


def show_all():

    """显示全部名片"""
    print("-" * 50)
    print("功能:显示全部名片")

    # 判断是否有名片记录,如果没有,提示用户并且返回
    if len(card_list) == 0:
        print("提示:没有任何名片记录")

        # 在函数中使用 `return` 表示返回,下方的代码不会再执行。
        # 如果在 `return` 后没有跟任何内容,表示会返回到调用函数位置,并不返回任何结果
        return

    # 打印表头
    for name in ["姓名", "电话", "QQ", "邮箱"]:
        print(name, end="\t\t")

    print("")

    # 打印分隔线
    print("=" * 50)

    # 遍历名片列表依次输出字典信息
    for card_dict in card_list:

        print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                        card_dict["phone"],
                                        card_dict["qq"],
                                        card_dict["email"]))


def search_card():

    """搜索名片"""
    print("-" * 50)
    print("功能:搜索名片")

    # 1. 提示要搜索的姓名
    find_name = input("请输入要搜索的姓名:")

    # 2. 遍历名片列表,查询要搜索的姓名,如果没找到,提示用户
    for card_dict in card_list:

        if card_dict["name"] == find_name:

            print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
            print("-" * 40)

            print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % (
                card_dict["name"],
                card_dict["phone"],
                card_dict["qq"],
                card_dict["email"]))

            print("-" * 40)

            # TODO(小明) 针对找到的字典进行后续操作:修改/删除
            deal_card(card_dict)

            break
    else:
        print("没有找到 %s" % find_name)


def deal_card(find_dict):

    """处理查找到的名片

    :param find_dict: 查找到的名片
    """
    print(find_dict)

    action_str = input("请选择要执行的操作 "
        "[1] 修改 [2] 删除 [0] 返回上级菜单")

    if action_str == "1":

        # find_dict["name"] = input("姓名:")
        # find_dict["phone"] = input("电话:")
        # find_dict["qq"] = input("QQ号码:")
        # find_dict["email"] = input("邮箱:")

        # 改进细化代码

        find_dict["name"] = input_card_info(find_dict["name"], "姓名:")
        find_dict["phone"] = input_card_info(find_dict["phone"], "电话:")
        find_dict["qq"] = input_card_info(find_dict["qq"], "QQ号码:")
        find_dict["email"] = input_card_info(find_dict["email"], "邮箱:")

        print("修改名片成功!")

    elif action_str == "2":

        card_list.remove(find_dict)

        print("删除名片成功!")


def input_card_info(dict_value, tip_message):

    """输入名片信息

    :param dict_value: 字典原有值
    :param tip_message: 输入提示信息
    :return: 如果输入,返回输入内容,否则返回字典原有值
    """

    # 1. 提示用户输入内容
    result_str = input(tip_message)

    # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:

        return result_str

    # 3. 如果用户没有输入内容,返回 `字典中原有的值`
    else:

        return dict_value

3、示例:

在这里插入图片描述

五、运行程序-01-增加Shebang符号直接运行Python程序

1、linux系统上的 Shebang 符号(#!)

1) #!这个符号叫做 Shebang 或者 Sha-bang
2) Shebang 通常在 Unix 系统脚本的中 第一行开头 使用。
3) 指明 执行这个脚本文件解释程序

2、使用 Shebang 的步骤

1)使用 which 查询 python3 解释器所在路径

$ which python3

2)修改要运行的 主 python 文件(如:cards_main.py ),在第一行增加以下内容

#! /usr/bin/python3

3)修改 主 python 文件(如:cards_main.py ) 的文件权限,增加执行权限

$ chmod +x cards_main.py

4)在需要时执行程序即可

sudo ./cards_main.py

3示例:

python@Ubuntu:~/桌面/06_名片管理系统$ pwd
/home/python/桌面/06_名片管理系统
python@Ubuntu:~/桌面/06_名片管理系统$ ls
cards_main.py  cards_tools.py  __pycache__
python@Ubuntu:~/桌面/06_名片管理系统$ ./cards_main.py
bash: ./cards_main.py: 权限不够
python@Ubuntu:~/桌面/06_名片管理系统$ sudo ./cards_main.py
[sudo] python 的密码: 
sudo: ./cards_main.py:找不到命令
python@Ubuntu:~/桌面/06_名片管理系统$ sudo python3 ./cards_main.py
**************************************************
欢迎使用【名片管理系统】 V1.0

1.新增名片
2.显示全部
3.搜索名片

0.退出系统
**************************************************
请选择希望执行的操作:0
您选择的操作是【0】
欢迎再次使用【名片管理系统】
python@Ubuntu:~/桌面/06_名片管理系统$ which python3
/usr/bin/python3
python@Ubuntu:~/桌面/06_名片管理系统$ sudo chmod +x cards_main.py 
python@Ubuntu:~/桌面/06_名片管理系统$ ls
cards_main.py  cards_tools.py  __pycache__
python@Ubuntu:~/桌面/06_名片管理系统$ sudo ./cards_main.py
^C
python@Ubuntu:~/桌面/06_名片管理系统$ sudo ./cards_main.py
**************************************************
欢迎使用【名片管理系统】 V1.0

在这里插入图片描述

六、变量的引用-01-变量的引用概念

1、变量进阶(理解):目标

1)变量的引用。
2)可变和不可变类型。
3)局部变量和全局变量。

2、变量的引用

  • 变量 和 数据 都是保存在 内存 中的。
  • Python函数 的 参数传递 以及 返回值 都是靠 引用 传递的。

3、引用的概念:在 Python

1)变量数据 是分开存储的。
2)数据 保存在内存中的一个位置。
3)变量 中保存着数据在内存中的地址。
4)变量记录数据的地址,就叫做 引用
5)使用 id() 函数可以查看变量中保存数据所在的 内存地址

注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用

  • 变量 不再 对之前的数据引用。
  • 变量 改为 对新赋值的数据引用。

4、 变量引用 的示例

Python 中,变量的名字类似于 便签纸 贴在 数据 上。

1)定义一个整数变量 a,并且赋值为 1

在这里插入图片描述

2)将变量 a 赋值为 2

在这里插入图片描述

3)定义一个整数变量 b,并且将变量 a 的值赋值给 b

在这里插入图片描述

变量 b 是第 2 个贴在数字 2 上的标签

5、在 ipython3 中演示变量的引用 示例:

In [1]: a = 1

In [2]: id(a)
Out[2]: 139381312

In [3]: id(1)
Out[3]: 139381312

In [4]: b = a

In [5]: id(b)
Out[5]: 139381312

In [6]: a = 2

In [7]: id(a)
Out[7]: 139381328

In [8]: c = 1

In [9]: id(c)
Out[9]: 139381312

In [10]: id(b)
Out[10]: 139381312

在这里插入图片描述

七、变量的引用-02-调用函数传递实参的引用

1、调用函数传递实参的引用 示例(dzs_01_引用.py) 代码

# dzs_01_引用.py

def test(num):

    print("在函数内部 %d 对应的内存地址是 %d " % (num, id(num)))

# 1.定义一个变量
a = 10

# 数据的地址本身就是一个数字
print("变量 a 在内存中的地址是 %d " % id(a))

# 2.调用 test 函数
test(a)

2、示例

在这里插入图片描述

八、变量的引用-03-函数返回值传递引用

1、函数的参数和返回值的传递 示例(dzs_01_引用2.py) 代码

Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的.

# dzs_01_引用2.py

def test(num):

    print("-" * 50)
    print("%d 在函数内的内存地址是 %x" % (num, id(num)))

    result = 100

    print("返回值 %d 在内存中的地址是 %x" % (result, id(result)))
    print("-" * 50)

    return  result

a = 10
print("调用函数前 内存地址是 %x" % id(a))

r = test(a)

print("调用函数后 实参内存地址是 %x" % id(a))
print("调用函数后 返回值内存地址是 %x" % id(r))

2、示例

在这里插入图片描述

九、可变类型和不可变类型-01-基本概念

1、python 中不可变类型,内存中的数据不允许被修改:

1)数字类型 `int`, `bool`, `float`, `complex`, `long(2.x)`
2)字符串 `str`
3)元组 `tuple`

2、python 中可变类型,内存中的数据可以被修改:

1)列表 `list`
2)字典 `dict`

3、示例代码

a = 1
a = "hello"
a = [1, 2, 3]
a = [3, 2, 1]

十、可变类型和不可变类型-02-列表、字典的修改和赋值

1、可变数据类型:列表和字典的内存地址引用 示例(dzs_02_列表字典引用.py) 代码:

# dzs_02_列表字典引用.py

demo_list = [1, 2, 3]

print("定义列表后的内存地址 %d" % id(demo_list))

demo_list.append(999)
demo_list.pop(0)
demo_list.remove(2)
demo_list[0] = 10

print("修改数据后的内存地址 %d" % id(demo_list))

demo_dict = {"name": "小明"}

print("定义字典后的内存地址 %d" % id(demo_dict))

demo_dict["age"] = 18
demo_dict.pop("name")
demo_dict["name"] = "老王"

print("修改数据后的内存地址 %d" % id(demo_dict))

注意:字典的 key 只能使用不可变类型的数据

2、注意

1)可变类型的数据变化,是通过 方法 来实现的。

2)如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
* 变量 不再 对之前的数据引用。
* 变量 改为 对新赋值的数据引用。

3、示例1:

在这里插入图片描述

4、示例2:ipython3 中演示 列表 类型数据内存地址变化

In [1]: # 列表

In [2]: a = [1,3,5]

In [3]: id(a)
Out[3]: 3051217132

In [4]: a.append(99)

In [5]: a
Out[5]: [1, 3, 5, 99]

In [6]: id(a)
Out[6]: 3051217132

In [7]: a.remove(3)

In [8]: a
Out[8]: [1, 5, 99]

In [9]: id(a)
Out[9]: 3051217132

In [10]: a.clear()

In [11]: a
Out[11]: []

In [12]: id(a)
Out[12]: 3051217132

In [13]: a = []

In [14]: id(a)
Out[14]: 3051227948

在这里插入图片描述

5、示例3:ipython3 中演示 字典 类型数据内存地址变化

In [15]: # 字典

In [16]: b = {"name": "zhangsan"}

In [17]: b["age"] = 18

In [18]: id(b)
Out[18]: 3051199724

In [19]: b
Out[19]: {'name': 'zhangsan', 'age': 18}

In [21]: b.pop("name")
Out[21]: 'zhangsan'

In [22]: b
Out[22]: {'age': 18}

In [23]: id(b)
Out[23]: 3051199724

In [24]: b.clear()

In [25]: b
Out[25]: {}

In [26]: id(b)
Out[26]: 3051199724

In [27]: b = {}

In [28]: id(b)
Out[28]: 3051223916

在这里插入图片描述

上一节关联链接请点击:

22_ Python基础到实战一飞冲天(二)-python基础(二十二)–名片管理系统案例:cards_tools.py文件

标签:名片,23,Python,python,dict,print,input,find,card
From: https://blog.csdn.net/qfyh_djh/article/details/144068913

相关文章

  • Python入门基础语法之运算符类型和语法
    运算符类型和语法运算符基本概念需注意,虽然python中无常量,但人为规定,在运行过程中值不能改变的为常量,要全部大写。操作数:参与运算的变量或者常量或具体的数值操作符:将参与运算的量连接起来的符号表达式:由操作数和操作符构成且符合python语法规范的式子,不同的操作符可以......
  • Python 爬虫实战:抓取百科网站上某个词条的详细信息
    目录一、前言二、爬虫前准备1.安装必备库2.确定目标网站和词条三、静态页面抓取:使用requests和BeautifulSoup1.发送HTTP请求2.解析HTML页面3.提取更多内容四、抓取动态加载页面数据:使用Selenium1.安装并配置Selenium2.使用Selenium抓取页面内容3......
  • 一篇文章带你全面搞懂面试必问系列之 Python 深浅拷贝
    当你在面试中被问到“Python的深拷贝和浅拷贝有什么区别?”时,是否瞬间大脑一片空白?这个问题不仅频繁出现在技术面试中,也是衡量你对Python内存管理和数据操作理解的重要考察点。那么,什么是深拷贝和浅拷贝?它们究竟有何不同?又该在何种场景中使用?在当下的开发场景中,无论是数据......
  • 树莓派上手攻略:轻松切换至默认Python 3环境,解锁更多编程可能
    树莓派上手攻略:轻松切换至默认Python3环境,解锁更多编程可能前言树莓派作为一款开源的微型计算机,因其低成本和高灵活性而受到广泛欢迎。Python作为树莓派的官方编程语言,以其简洁的语法和强大的功能,成为了许多初学者和开发者的首选。然而,默认情况下,树莓派可能预装了Python2,这......
  • python毕设 宠物寄养系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于宠物寄养系统的研究,现有研究主要以宠物领养系统或单纯的寄养业务流程为主,专门针对宠物寄养系统全面功能设计与实现的研究较少。在......
  • Python使用pygame写的贪吃蛇详解
    使用python实现的贪吃蛇小游戏,只实现了基础功能代码importpygame#python中流行游戏开发库,提供图像处理等功能importrandom#python标准库,随机生成数,随机生成食物位置#初始化模块pygame.init()#颜色white=(255,255,255)yellow=(255,255,102)black=......
  • 234. 回文链表
    题目自己写的:/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,ListNode*next):val(x),......
  • python毕设 在线学习平台程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于在线学习平台的研究,现有研究主要以平台的整体架构和功能实现为主,如大规模在线课程平台(MOOC)的设计与推广等。然而专门针对Python技......
  • Python练习
    练习11、已知lst=[5,2,1,4,9],程序实现:删除lst元素中的最大值和最小值(不考虑多个最值情况)lst=[5,2,1,4,9]lst.sort()print(lst)#[1,2,4,5,9]dellst[0],lst[len(lst)-1]print(lst)#[2,4,5]lst.pop(0)print(lst)#[4,5]练习22、已知info={......
  • 从高校就业信息管理系统到Python和Java类系统开题报告:结构化研究的提纲优化
    个人名片......