编程基础学习(一)-Python基础语法+数据结构+面向对象全解析

在人工智能与数据科学蓬勃发展的今天,Python已成为最受欢迎的编程语言之一。无论你是想进入数据分析、机器学习领域,还是希望自动化日常工作,掌握Python都是必备技能。本文为你系统整理Python基础核心知识,从最简单的环境配置到面向对象编程,带你轻松迈入编程世界的大门。无需任何编程基础,跟着本指南一步步学习,你也能写出实用的Python程序!

一、环境配置与基础操作

  1. 打开终端

    pwd # 打印当前目录
    ls # 列出文件和目录
    mkdir python # 新建目录
    cd python # 进入指定目录
    cd .. # 返回上级目录
    cd ~ # 进入用户主目录

  2. 运行Python

    python # 运行Python解释器

  3. 库的下载

    pip install pickle

清华源

复制代码
pip install pickle -i https://pypi.tuna.tsinghua.edu.cn/simple

二、基础语法与数据类型

  1. 变量赋值

    x = 5
    a = 100
    b = "Hello World"

    基础运算

    print(5 + 3 * 2) # 输出: 11
    print((5 + 3) * 2) # 输出: 16
    print(5 % 2) # 输出: 1 (取余)
    print(5 / 2) # 输出: 2.5

  2. 数据类型转换

    类型转换

    a = str(5) # '5'
    b = int('5') # 5
    c = float(5) # 5.0
    d = bool(1) # True

    print(a.dtype)

三、数据结构

  1. 列表 (List)

    创建列表

    c = [1, 2, 3, 4, 5, 6, 7]
    d = ["张三", "李四", "王五"]
    e = [1, 2, 3, "4", "5", d]
    list = [[4,5,6,7], [3,4,5,6]]

    列表操作

    print(d[0]) # "张三" - 索引
    print(d[-1]) # "张三" - 索引
    print(c[0:2]) # [1, 2] - 切片
    print(c[:3])
    print(c[0::2]) # [1, 3, 5, 7] - 步长切片 list[start:stop:step]
    print(list[1][0])
    print(list[1][:2])

    列表方法

    c.append(8) # 添加元素
    c.insert(3, 38) # 插入元素
    del c[3] # 删除元素
    c.reverse() # 反转列表
    c.sort() # 排序
    print(c.count(2)) # 计数

  2. 元组 (Tuple)

    创建元组 - 不可变序列

    f = (1, 2, 3)

  3. 字典 (Dictionary)

    创建字典

    dic = {1: "123", "name": "zhangsan", "height": 180}

    字典操作

    print(dic["name"]) # "zhangsan"
    dic["height"] = 175 # 修改值
    del dic["name"] # 删除键值对
    dic["age"] = 18 # 添加新键值对

  4. 字符串操作

    字符串基础

    my_string = "thisStringIsAwesome"

    字符串方法

    print(my_string.upper()) # 转大写
    print(my_string.lower()) # 转小写
    print(my_string.count('s')) # 计数
    print(my_string.replace('e', 'i')) # 替换
    print(my_string.strip()) # 去除空格

    字符串格式化

    a = 100
    b = "Hello World"
    print("point = %s\n"%s"" % (a, b))

    转义字符

    print("Tab\t分隔") # Tab 分隔
    print("换行\n新行") # 换行
    # 新行

四、流程控制

  1. 条件语句

    基础条件判断

    num = input("please input your class number:")
    if num == 1 or num == 2:
    print("class room 302")
    elif num == 3:
    print("class room 303")
    elif num == 4:
    print("class room 304")
    else:
    print("class room 305")

    逻辑运算符

    == 等于, != 不等于, > 大于, >= 大于等于

    < 小于, <= 小于等于, and 与, or 或

  2. 循环语句

  • range() 函数生成一个不可变的整数序列

    range(stop) # 从0开始,到stop-1结束

    range(start, stop) # 从start开始,到stop-1结束

    range(start, stop, step) # 从start开始,到stop-1结束,步长为step

    生成 0-4 的序列

    range(5) # 0, 1, 2, 3, 4

    生成 2-5 的序列

    range(2, 6) # 2, 3, 4, 5

    生成 0-10,步长为2的序列

    range(0, 11, 2) # 0, 2, 4, 6, 8, 10

    生成递减序列

    range(10, 0, -1) # 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

多用于for函数

复制代码
# 重复执行5次
for i in range(5):
    print(f"第{i+1}次循环")

# 输出:
# 第1次循环
# 第2次循环
# 第3次循环
# 第4次循环
# 第5次循环


fruits = ['apple', 'banana', 'cherry', 'date']

for i in range(len(fruits)):
    print(f"索引 {i}: {fruits[i]}")

# 输出:
# 索引 0: apple
# 索引 1: banana  
# 索引 2: cherry
# 索引 3: date

# for循环
for i in range(0, 5):
    print("Hello World %s" % i)

# 遍历列表
h = ["a", "b", "c", "d"]
for i in h:
    print(i)

# while循环
x = 1
y = 2
while x < 5 and y < 5:
    x = x + 1
    y = y + 1
    print(x, y)
    if x == 4:
        break           # 终止循环
  1. 函数

    定义函数

    def hi_name(yourname):
    print("Hello %s" % yourname)

    使用函数

    hi_name("zhangsan") # 输出: Hello zhangsan

    带返回值的函数

    def add(a, b):
    return a + b

    c = add(5, 6) # c = 11

    内建函数

    print(abs(-10)) # 输出: 10

  2. 文件操作

    import pickle

    文件写入

    game_data = {
    "position": "N2 E3",
    "pocket": ["keys", "knife"],
    "money": 160
    }

    save_file = open("save.dat", "wb")
    pickle.dump(game_data, save_file)
    save_file.close()

    文件读取

    load_file = open("save.dat", "rb")
    load_game_data = pickle.load(load_file)
    load_file.close()

  3. 类与面向对象编程

    基类

    class Animals:
    def breathe(self):
    print("breathing")
    def move(self):
    print("moving")
    def eat(self):
    print("eating food")

    继承

    class Mammals(Animals):
    def breastfeed(self):
    print("feeding young")

    class Cats(Mammals):
    def init(self, spots):
    self.spots = spots

    复制代码
     def catch_mouse(self):
         print("catch mouse")
     
     def dance(self):
         self.left_foot_forward()
         self.left_foot_backward()
     
     def left_foot_forward(self):
         print("left foot forward")
     
     def left_foot_backward(self):
         print("left foot backward")

    使用类

    kitty = Cats(10)
    print(kitty.spots) # 10
    kitty.dance() # 调用方法
    kitty.breastfeed() # 调用父类方法
    kitty.move() # 调用祖父类方法

  4. 模块使用

    导入模块

    import time
    import numpy as np

    使用模块

    print(time.asctime()) # 当前时间

    选择性导入

    from math import pi

    创建NumPy数组

    my_list = [1, 2, 3, 4]
    my_array = np.array(my_list)
    my_2darray = np.array([[1,2,3],[4,5,6]])
    my_2darray[:,0]
    print(my_array.shape) # 数组维度

  5. Python列表 vs NumPy数组

  • 数据类型处理

    列表:可以混合不同类型

    mixed_list = [1, "hello", 3.14, True] # ✅ 允许

    NumPy数组:自动统一类型

    mixed_array = np.array([1, "hello", 3.14])
    print(mixed_array) # ['1' 'hello' '3.14'] ⚠️ 全部转为字符串
    print(mixed_array.dtype) # <U32 (Unicode字符串)

  • 数学运算差异

    列表:逐元素运算需要循环

    my_list = [1, 2, 3, 4]
    result_list = [x * 2 for x in my_list] # [2, 4, 6, 8]

    NumPy数组:向量化运算

    my_array = np.array([1, 2, 3, 4])
    result_array = my_array * 2 # array([2, 4, 6, 8]) ✅ 直接运算

  • 多维操作能力

    列表:二维操作繁琐

    list_2d = [[1,2,3], [4,5,6]]
    print(list_2d[0][1]) # 2 - 需要双重索引

    NumPy数组:真正的多维数组

    array_2d = np.array([[1,2,3], [4,5,6]])
    print(array_2d[0, 1]) # 2 - 单次索引即可
    print(array_2d.shape) # (2, 3) - 直接获取维度

  • 实际性能测试

    import time
    import numpy as np

    创建大数据

    large_list = list(range(1000000))
    large_array = np.arange(1000000)

    列表运算时间

    start = time.time()
    result_list = [x * 2 for x in large_list]
    list_time = time.time() - start

    NumPy运算时间

    start = time.time()
    result_array = large_array * 2
    numpy_time = time.time() - start

    print(f"列表时间: {list_time:.4f}秒")
    print(f"NumPy时间: {numpy_time:.4f}秒")
    print(f"NumPy比列表快 {list_time/numpy_time:.1f} 倍")

  • 广播机制

    列表无法直接与标量进行数学运算

    my_list + 5 # ❌ 报错!

    NumPy支持广播

    my_array = np.array([1, 2, 3])
    result = my_array + 5 # array([6, 7, 8]) ✅
    result = my_array * 2 # array([2, 4, 6]) ✅

  • 数学函数

    my_array = np.array([1, 4, 9, 16])

    print(np.sqrt(my_array)) # 平方根: [1. 2. 3. 4.]
    print(np.sin(my_array)) # 正弦函数
    print(np.sum(my_array)) # 求和: 30
    print(np.mean(my_array)) # 平均值: 7.5

  • 高级索引

    my_array = np.array([10, 20, 30, 40, 50])

    布尔索引

    print(my_array[my_array > 25]) # [30 40 50]

    花式索引

    print(my_array[[0, 2, 4]]) # [10 30 50]

  • 相互转换

    列表 → NumPy数组

    my_list = [1, 2, 3, 4]
    my_array = np.array(my_list)

    NumPy数组 → 列表

    new_list = my_array.tolist()

    print(type(my_list)) # <class 'list'>
    print(type(my_array)) # <class 'numpy.ndarray'>
    print(type(new_list)) # <class 'list'>

  1. 编码规范
  • 使用4个空格缩进

  • 变量名由字母、数字、下划线组成,不能以数字开头

  • 类名首字母大写

  • 使用注释说明代码功能

总结:这份基础指南涵盖了Python编程的核心概念,从基础语法到面向对象编程,为后续学习TensorFlow和数据科学打下坚实基础。

相关推荐
white-persist3 小时前
JWT 漏洞全解析:从原理到实战
前端·网络·python·安全·web安全·网络安全·系统安全
沐知全栈开发3 小时前
Bootstrap4 表格详解
开发语言
CryptoRzz3 小时前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
久未3 小时前
Pytorch autoload机制自动加载树外扩展(Autoload Device Extension)
人工智能·pytorch·python
java1234_小锋3 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras.Model来定义模型
python·深度学习·tensorflow·tensorflow2
Learn Beyond Limits4 小时前
TensorFlow Implementation of Content-Based Filtering|基于内容过滤的TensorFlow实现
人工智能·python·深度学习·机器学习·ai·tensorflow·吴恩达
java1234_小锋4 小时前
TensorFlow2 Python深度学习 - 函数式API(Functional API)
python·深度学习·tensorflow·tensorflow2
Never_Satisfied4 小时前
在JavaScript / HTML中,div容器在内容过多时不显示超出的部分
开发语言·javascript·html
Y200309164 小时前
使用 PyTorch 实现 MNIST 手写数字识别
python