首页 元宇宙

Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战

分类:元宇宙
字数: (7560)
阅读: (2183)
内容摘要:Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战,

在进行 Python 全栈开发时,后端基础知识至关重要。今天我们深入探讨 Day04 的核心内容:字符编码、List 与 Tuple 的使用,以及条件判断的实战应用。掌握这些知识,能有效避免开发中常见的编码问题,并编写出更高效、更健壮的 Python 代码。

字符编码深度剖析

字符编码是 Python 后端开发中不可忽视的一环。早期计算机使用 ASCII 编码,仅能表示英文字符。随着全球化发展,出现了 Unicode 编码,它为世界上几乎所有字符都分配了一个唯一的数字编号。常见的 Unicode 实现方式有 UTF-8、UTF-16 等。

编码与解码

  • 编码 (Encode): 将 Unicode 字符串转换为特定编码格式的字节序列,例如 UTF-8。
  • 解码 (Decode): 将特定编码格式的字节序列转换为 Unicode 字符串。

Python 3 默认使用 UTF-8 编码。如果处理包含非 ASCII 字符的文件或网络数据,务必确保编码方式正确,否则可能出现乱码。

常见问题与解决方案

  • 问题: 从文件中读取数据时出现 UnicodeDecodeError 异常。

    Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战
  • 原因: 文件编码格式与 Python 默认解码方式不一致。

  • 解决方案: 在打开文件时指定正确的编码方式:

    with open('data.txt', 'r', encoding='gbk') as f: # 假设文件使用 gbk 编码
        content = f.read()
    print(content)
    
  • 问题: 向数据库写入数据时出现编码错误,例如在使用 MySQL 时。

    Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战
  • 原因: 数据库连接的字符集设置不正确。

  • 解决方案: 在连接数据库时指定正确的字符集,例如:

    import pymysql
    
    conn = pymysql.connect(host='localhost', user='root', password='password', database='testdb', charset='utf8') # 指定 utf8 字符集
    cursor = conn.cursor()
    sql = "INSERT INTO users (name) VALUES ('你好')"
    cursor.execute(sql)
    conn.commit()
    cursor.close()
    conn.close()
    

List 与 Tuple:灵活的数据容器

List (列表) 和 Tuple (元组) 是 Python 中常用的数据容器,用于存储多个元素。

Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战

List 的特性

  • 可变性: List 中的元素可以修改、添加或删除。
  • 常用操作: append()insert()remove()pop()sort() 等。

Tuple 的特性

  • 不可变性: Tuple 创建后,其元素不能修改。
  • 常用场景: 用于存储不希望被修改的数据,例如配置信息、函数返回值等。
  • 性能优势: 由于 Tuple 的不可变性,其访问速度通常比 List 快。

List 与 Tuple 的选择

  • 如果需要频繁修改数据,选择 List。
  • 如果数据不需要修改,并且对性能有较高要求,选择 Tuple。

实战示例

# List 示例
my_list = [1, 2, 3, 'a', 'b']
my_list.append(4) # 添加元素
my_list[0] = 0    # 修改元素
print(my_list)  # 输出: [0, 2, 3, 'a', 'b', 4]

# Tuple 示例
my_tuple = (1, 2, 3)
# my_tuple[0] = 0  # 错误:Tuple 不支持修改
print(my_tuple) # 输出: (1, 2, 3)

条件判断:控制程序流程

条件判断(if 语句)是编程中常用的控制结构,用于根据条件执行不同的代码块。

基本语法

if condition:
    # 当 condition 为 True 时执行的代码
elif another_condition:
    # 当 condition 为 False 且 another_condition 为 True 时执行的代码
else:
    # 当所有条件都为 False 时执行的代码

实战案例

例如,判断用户输入的年龄是否大于 18 岁:

age = int(input("请输入您的年龄:"))

if age >= 18:
    print("您已成年,可以访问本网站。")
else:
    print("您未成年,请在家长的陪同下访问。")

嵌套条件判断

if 语句可以嵌套使用,以实现更复杂的逻辑判断。

Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战
score = int(input("请输入您的成绩:"))

if score >= 60:
    print("恭喜您,及格了!")
    if score >= 80:
        print("成绩优秀!")
    else:
        print("成绩良好。")
else:
    print("很遗憾,您不及格。")

实战演示:用户登录验证

接下来,我们演示一个简单的用户登录验证程序,综合运用字符编码、List Tuple 和条件判断的知识。

# 用户信息(存储在 Tuple 中)
users = [('admin', '123456'), ('user1', 'password')] # 实际项目中需要加密存储密码

username = input("请输入用户名:")
password = input("请输入密码:")

# 遍历用户列表,进行验证
for user in users:
    if user[0] == username and user[1] == password:
        print("登录成功!")
        break # 登录成功后退出循环
else:
    print("用户名或密码错误。") # 如果循环正常结束,说明没有找到匹配的用户

这个例子展示了如何利用所学知识构建一个简单的后端功能。在实际项目中,用户数据通常存储在数据库中,例如 MySQL 或 PostgreSQL,并使用 Nginx 进行反向代理和负载均衡,提高系统的并发连接数和稳定性,同时使用宝塔面板进行服务器管理和维护。

每日一题

请用 Python 编写一个函数,接收一个 List 作为参数,返回该 List 中所有元素的和。如果 List 中包含非数字元素,则忽略该元素。

def sum_list(my_list):
    total = 0
    for item in my_list:
        if isinstance(item, (int, float)): # 检查是否为数字类型
            total += item
    return total

# 测试
my_list = [1, 2, 'a', 3.5, 4]
result = sum_list(my_list)
print(result) # 输出: 10.5

Python 全栈开发 Day04:字符编码、List Tuple 详解与条件判断实战

转载请注明出处: 加班到秃头

本文的链接地址: http://m.acea4.store/blog/689558.SHTML

本文最后 发布于2026-04-01 23:22:56,已经过了26天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 彩虹屁大师 6 天前
    登录验证的例子很贴近实际,能不能再详细讲讲数据库连接和 Nginx 反向代理的内容?
  • 春风十里 4 天前
    List 和 Tuple 的区别终于搞明白了,感谢大佬分享!
  • 云南过桥米线 2 天前
    写得真好,字符编码那块儿讲的很清楚,之前老是遇到乱码问题,现在知道怎么解决了。
  • 重庆小面 6 天前
    写得真好,字符编码那块儿讲的很清楚,之前老是遇到乱码问题,现在知道怎么解决了。