跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 基础语法与数据结构常用代码示例

综述由AI生成Python 基础语法与数据结构常用代码示例涵盖了循环控制、列表操作、枚举、随机数生成等基础知识点,以及顺序表元素逆置、删除最小值、区间删除等经典算法实现。内容包含 Python 脚本与 C 语言数据结构代码,适合编程初学者巩固基础并理解常见算法的时间空间复杂度。

ServerBase发布于 2025/2/6更新于 2026/6/222 浏览
Python 基础语法与数据结构常用代码示例

Python 基础语法与数据结构常用代码示例

前言

编程对于初学者来说往往显得神秘且复杂,但实际上,编程语言的核心逻辑并不深奥。大多数程序都是由基础的语句和关键字组合而成的。变量命名、函数定义等虽然需要遵循规范,但核心在于理解逻辑功能。

本文整理了 Python 基础语法及常见数据结构算法的实用代码示例,帮助初学者快速上手并理解底层逻辑。

一、Python 基础语法示例

1. for 循环中的 else 条件

在 Python 中,for...else 结构用于遍历列表。如果循环正常结束(未被 break 中断),则执行 else 块。

场景: 检查列表中是否包含奇数。

numbers = [2, 4, 6, 8, 1]

for number in numbers:
    if number % 2 == 1:
        print(number)
        break
else:
    print("No odd numbers")

说明: 当找到奇数 1 时触发 break,跳过 else 块。若列表全为偶数,则打印 "No odd numbers"。

2. 数字求和

实现用户输入两个数字并计算和的功能。

# -*- coding: UTF-8 -*-
# 用户输入数字
num1 = input('输入第一个数字:')
num2 = input('输入第二个数字:')

# 求和
sum_val = float(num1) + float(num2)
# 显示计算结果
print('数字 {0} 和 {1} 相加结果为:{2}'.format(num1, num2, sum_val))

输出示例:

输入第一个数字:1.5
输入第二个数字:2.5
数字 1.5 和 2.5 相加结果为:4.0

3. 随机数生成

使用 random 模块生成指定范围内的随机整数。

 random


(random.randint(, ))
import
# 生成 0 ~ 9 之间的随机数
print
0
9

说明: random.randint(a, b) 返回一个介于 a 和 b 之间(包含两端)的随机整数。

4. 将列表中的所有元素作为参数传递给函数

使用解包操作符 * 可以将列表元素展开为函数参数。

my_list = [1, 2, 3, 4]

print(my_list)      # 输出:[1, 2, 3, 4]
print(*my_list)     # 输出:1 2 3 4

扩展: 此方法常用于调用接收不定数量参数的函数。

5. 获取列表的所有中间元素

利用序列解包语法提取列表中间部分。

_, *elements_in_the_middle, _ = [1, 2, 3, 4, 5, 6, 7, 8]
print(elements_in_the_middle)  # 输出:[2, 3, 4, 5, 6, 7]

说明: _ 代表丢弃首尾元素,* 捕获中间所有元素。

6. 使用一行代码赋值多个变量

Python 支持多重赋值,简洁高效。

one, two, three, four = 1, 2, 3, 4

7. Python 清空列表

使用 clear() 方法移除列表中所有元素。

RUNOOB = [6, 0, 4, 1]
print('清空前:', RUNOOB)
RUNOOB.clear()
print('清空后:', RUNOOB)

输出:

清空前:[6, 0, 4, 1]
清空后:[]

8. 通过 Enum 枚举同一标签或一系列常量的集合

枚举类型用于定义一组相关的常量,提高代码可读性。

from enum import Enum


class Status(Enum):
    NO_STATUS = -1
    NOT_STARTED = 0
    IN_PROGRESS = 1
    COMPLETED = 2


print(Status.IN_PROGRESS.name)  # 输出:IN_PROGRESS
print(Status.COMPLETED.value)   # 输出:2

说明: 成员可通过身份比较,枚举本身可迭代。

9. 重复字符串

使用乘法运算符 * 可以快速复制字符串。

name = "Banana"
print(name * 4)  # 输出:BananaBananaBananaBanana

10. 计算每个月天数

利用 calendar 模块获取月份信息。

#!/usr/bin/python3
import calendar

monthRange = calendar.monthrange(2016, 9)
print(monthRange)

输出: (3, 30)

说明: 元组第一个元素表示该月第一天是星期几(0-6),第二个元素为该月总天数。

11. 输出指定范围内的素数

判断并输出给定区间内的所有素数。

# 输出指定范围内的素数
lower = int(input("输入区间最小值:"))
upper = int(input("输入区间最大值:"))

for num in range(lower, upper + 1):
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                break
        else:
            print(num)

注意: 内层循环若无 break 则执行 else 块,即找到素数。

12. 计算两数差值

使用函数计算差值,注意参数顺序。

def subtract(a, b):
    return a - b


print(subtract(1, 3))  # 输出:-2
print(subtract(3, 1))  # 输出:2

# 使用命名参数避免顺序错误
print(subtract(a=1, b=3))  # 输出:-2
print(subtract(b=3, a=1))  # 输出:-2

二、C 语言数据结构算法示例

以下示例展示了顺序表(SqList)的经典操作,涉及时间复杂度 O(n) 和空间复杂度 O(1) 的要求。

13. 奇数移到偶数前

需求: 将所有奇数移动到偶数之前,要求时间最少,辅助空间最少。 思路: 双指针法,左找偶数,右找奇数,交换。

void move(SqList &L)
{
    int i = 0, j = L.length - 1, k;
    ElemType temp;
    while(i < j)
    {
        // 奇数从前向后找
        while(L.data[i] % 2 == 1)
          i++; // 指向奇数
        // 偶数从后往前找
        while(L.data[j] % 2 == 0)
          j--; // 指向偶数
        if(i < j) // 奇数在偶数前面
        {
            temp = L.data[i];
            L.data[i] = L.data[j];
            L.data[j] = temp;
        }
    }
}

14. 顺序表元素逆置

需求: 将顺序表 L 中所有元素逆置,空间复杂度 O(1)。 思路: 首尾对应元素交换。

void reverse(SqList &L)
{
    int i;
    ElemType x;
    // 只扫描前半部分
    for(i = 0; i < L.length / 2; i++)
    {
        x = L.data[i];
        // L.data[i]后半部分对应元素为 L.data[L.length-i-1]
        L.data[i] = L.data[L.length - i - 1];
        L.data[L.length - i - 1] = x;
    }
}

修正说明: 原逻辑中 i=L.length/2 已修正为 i < L.length / 2,防止越界。

15. 删除顺序表最小值元素

需求: 删除最小值元素,由最后一个元素填补空位。

bool Delete_Min(SqList &L, ElemType &value)
{
    // 表长为 0 不成立
    if(L.length == 0)
       return false;
    
    // 假设第一个元素为最小值
    value = L.data[0];
    // 记录最小值元素下标
    int pos = 0;
    int i;
    
    // 从第二个元素开始比较
    for(i = 1; i < L.length; i++)
    {
        if(L.data[i] < value)
        {
            value = L.data[i];
            pos = i;
        }
    }
    
    // 删除位置的元素用最后一个元素取代
    L.data[pos] = L.data[L.length - 1];
    // 表长减一
    L.length--;
    return true;
}

16. 删除值在 x~y 之间的所有数据

需求: 删除顺序表中值在 x 到 y 之间的所有元素,效率优先。

方法一:保留非目标元素

void del_xy(SqList &L, ElemType x, ElemType y)
{
    int i, k = 0;
    for(i = 0; i < L.length; i++)
    {
        if(L.data[i] >= x && L.data[i] <= y)
        {
            // 跳过该元素
        }
        else
        {
            L.data[k++] = L.data[i];
        }
    }
    L.length = k;
}

方法二:统计并移动

void del_xy_v2(SqList &L, ElemType x, ElemType y)
{
    int i = 0, k = 0;
    while(i < L.length)
    {
        if(L.data[i] >= x && L.data[i] <= y)
           k++;
        else
           L.data[i - k] = L.data[i];
        i++;
    }
    L.length = L.length - k;
}

修正说明: 原文本中 L.data[j] 已修正为 L.data[i],确保逻辑正确。

17. 打印九九乘法表

经典的嵌套循环练习。

for i in range(1, 10):
    for j in range(1, i + 1):
        print('{}x{}={}	'.format(j, i, i * j), end='')
    print()

三、学习建议与总结

编程能力的提升依赖于持续的实践。上述代码涵盖了基础语法控制流、数据结构操作以及经典算法思想。

  1. 基础巩固: 熟练掌握 Python 的列表推导、解包、枚举等特性,能显著提升开发效率。
  2. 算法思维: C 语言顺序表操作有助于理解内存管理、指针操作及时间复杂度分析。
  3. 持续进阶: 在掌握基础后,可进一步探索爬虫、数据分析、机器学习等领域,这些方向均建立在扎实的编程基础之上。

建议读者在实际环境中运行上述代码,修改参数观察输出变化,从而加深理解。编程没有捷径,唯有坚持训练方能融会贯通。

目录

  1. Python 基础语法与数据结构常用代码示例
  2. 前言
  3. 一、Python 基础语法示例
  4. 1. for 循环中的 else 条件
  5. 2. 数字求和
  6. -- coding: UTF-8 --
  7. 用户输入数字
  8. 求和
  9. 显示计算结果
  10. 3. 随机数生成
  11. 生成 0 ~ 9 之间的随机数
  12. 4. 将列表中的所有元素作为参数传递给函数
  13. 5. 获取列表的所有中间元素
  14. 6. 使用一行代码赋值多个变量
  15. 7. Python 清空列表
  16. 8. 通过 Enum 枚举同一标签或一系列常量的集合
  17. 9. 重复字符串
  18. 10. 计算每个月天数
  19. 11. 输出指定范围内的素数
  20. 输出指定范围内的素数
  21. 12. 计算两数差值
  22. 使用命名参数避免顺序错误
  23. 二、C 语言数据结构算法示例
  24. 13. 奇数移到偶数前
  25. 14. 顺序表元素逆置
  26. 15. 删除顺序表最小值元素
  27. 16. 删除值在 x~y 之间的所有数据
  28. 17. 打印九九乘法表
  29. 三、学习建议与总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw QQ 机器人接入完整指南
  • MySQL 日志系统:错误日志、慢查询日志、二进制日志
  • Conda + VSCode 配置 Python 开发环境
  • C++ 基础教程:程序流程结构、数组与函数
  • Kafka 核心架构与分布式存储深度解析
  • 大厂 AI 岗位核心技能指南:前端、后端与算法实战
  • DuckDB C++ 集成:在嵌入式项目中实现高性能数据分析
  • Python 类基础入门教程
  • C++ STL string 类详解与实战
  • Python 基础与 Excel 集成应用及爬虫入门指南
  • 哈希表的C语言简单实现
  • Python 数据分析:无监督学习、文本及图像处理
  • FPGA 内部资源详解:LUT、FF、BRAM、DSP、PLL 及综合报告解读
  • Java 实现双向链表:LinkedList 模拟与源码解析
  • C/C++ 全局变量跨文件访问机制:链接属性与原理
  • OpenClaw 登顶 GitHub 星标榜首,单人开发重塑 AI 代理格局
  • 利用闲置小米 9 打造天马 G 复古掌机指南
  • ClawdBot 平滑迁移至 OpenClaw:飞书 AI 助理部署实战
  • C++ unordered_map 和 unordered_set 底层原理
  • FPGA 简介及开发流程

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online