当前位置: 首页 > news >正文

Python商务数据分析——Python 入门基础知识学习笔记

一、简介

1.1 Python 特性

解释型语言:代码无需编译可直接运行,适合快速开发。

动态类型:变量类型在运行时确定(如x=1后x="str"仍合法)。

面向对象:支持类、对象、继承等特性,代码可复用性强。

语法简洁:通过缩进区分代码块,减少括号等冗余符号。

1.2 应用场景

数据分析:Pandas、Numpy 等库处理结构化数据。

人工智能:TensorFlow、PyTorch 构建机器学习模型。

Web 开发:Django、Flask 框架开发网站。

自动化脚本:批量处理文件、系统运维自动化。

二、Python 基础语法

2.1 字面量与数据类型

核心关联点:可变与不可变类型

类型

是否可变

存储特点

典型应用

整数(int)

不可变

直接存储数值

计数、索引

浮点数(float)

不可变

存储小数,存在精度误差(如0.1+0.2≠0.3)

科学计算

字符串(str)

不可变

字符序列,支持切片操作

文本处理

列表(list)

可变

有序元素集合,可动态增删改

存储同类数据序列

元组(tuple)

不可变

有序元素集合,不可修改

保护数据不被意外修改

字典(dict)

可变

键值对映射,键需不可变(如 str)

快速查询(类似通讯录)

集合(set)

可变

无序不重复元素,支持集合运算

去重、交集并集计算

易混淆点

  • 字符串、元组虽不可变,但可通过拼接生成新对象(如s = "a"; s += "b"实际生成新字符串)。
  • 字典的键必须为不可变类型(如dict[{1:2}]会报错,因列表可变)。

2.2 运算符优先级(由高到低)

示例对比

  • 3 + 4 * 2 → 先算4*2=8,再算3+8=11(乘优先于加)。
  • 3 * 2 ** 2 → 先算2**2=4,再算3*4=12(指数优先于乘法)。

2.3 字符串操作核心方法

易混淆方法对比

方法

作用

是否修改原字符串

示例

split()

按分隔符分割成列表

"a,b,c".split(",") → ["a","b","c"]

join()

用指定字符连接列表

",".join(["a","b","c"]) → "a,b,c"

strip()

去除首尾指定字符(默认空格)

" abc ".strip() → "abc"

replace()

替换子串

"abc".replace("a","x") → "xbc"

upper()/lower()

转大小写

"AbC".upper() → "ABC"

三、流程控制:判断与循环

3.1 if 基本格式

# 示例代码
age = 20
if age >= 18:print("成年了")print("可以投票了")

     if-elif-else 语句

# 示例代码
height = int(input("请输入身高(cm): "))
vip_level = int(input("请输入VIP等级:"))if height < 120:print("免费游玩")
elif vip_level > 3:print("VIP免费")
else:print("需要购票")

3.2 循环结构对比

循环类型

适用场景

核心特点

跳出方式

for 循环

已知次数的遍历(如列表、字符串)

按元素遍历,无需手动控制计数器

break/continue

while 循环

未知次数的循环(如用户输入验证)

条件为真时执行,需手动更新条件变量

break/continue

典型案例

for 循环:遍历列表求最大值

 
# 示例代码
name = "python"
for char in name:print(char)

while 循环:猜数字游戏

# 示例代码
i = 0
while i < 5:print(i)i += 1

四、函数与数据容器

4.1 函数参数传递机制

可变与不可变参数对比

参数类型

传递方式

修改影响

示例

不可变类型(int/str/tuple)

值传递

函数内修改不影响外部变量

def f(x): x=2; a=1; f(a); print(a) → 1

可变类型(list/dict/set)

引用传递

函数内修改会影响外部变量

def f(l): l.append(0); a=[1]; f(a); print(a) → [1,0]

4.2 数据容器核心操作对比

列表、元组、字典、集合常用方法

操作

列表(list)

元组(tuple)

字典(dict)

集合(set)

创建

[1,2]

(1,2) 或 1,2

{'a':1}

{1,2} 或 set([1,2])

新增元素

append()/insert()

不可新增(报错)

dict[key]=value

add()/update()

删除元素

pop()/remove()

不可删除(报错)

pop(key)

remove()/discard()/pop()

访问元素

lst[0]

tup[0]

dict[key] 或 get(key)

不可直接访问(无序)

遍历

for x in lst

for x in tup

for k in dict 或 for k,v in dict.items()

for x in set

常用内置函数

len()/max()/min()/sorted()

len()/max()/min()/sorted()

len()/keys()/values()/items()

len()/union()/intersection()

数据容器对比

类型

元素类型

有序

可变

重复元素

列表(List)

任意

支持

元组(Tuple)

任意

支持

字典(Dict)

Key 必须不可变,Value 任意

Key 不支持重复

集合(Set)

任意

不支持

字符串(Str)

字符

支持

五、文件操作与异常处理

5.1 文件操作三模式对比

模式

读写权限

文件不存在时

典型应用

r

只读

报错

读取配置文件

w

写入(覆盖原内容)

创建新文件

重新生成日志文件

a

追加写入

创建新文件

追加日志记录

安全写法:使用with open自动关闭文件


# 读取文件(推荐)with open("data.txt", "r", encoding="utf-8") as f:content = f.read()# 写入文件(推荐)with open("output.txt", "w", encoding="utf-8") as f:f.write("Hello World")

5.2 异常处理流程

典型案例


try:num = int(input("输入数字: "))result = 10 / numexcept ValueError:print("请输入有效数字")except ZeroDivisionError:print("不能除以0")except Exception as e:print(f"未知错误: {e}")else:print(f"计算结果: {result}")finally:print("程序执行完毕")

六、模块与面向对象编程

6.1 模块导入方式对比

导入方式

语法

命名空间影响

适用场景

导入整个模块

import math

math.sqrt(4)

避免命名冲突

导入指定功能

from math import sqrt

sqrt(4)

简化代码书写

导入所有功能

from math import *

可能覆盖同名变量

快速原型开发

模块别名

import math as m

m.sqrt(4)

长模块名简化

6.2 面向对象核心概念

封装、继承、多态对比

概念

定义

代码示例

封装

隐藏内部实现,只暴露必要接口

class Person: __age=18; def get_age(): return self.__age

继承

子类复用父类代码

class Student(Person): pass

多态

同一方法不同实现(动态绑定)

def func(obj): obj.sound(); dog=Dog(); bird=Bird(); func(dog); func(bird)

http://www.lryc.cn/news/573970.html

相关文章:

  • Python打卡训练营Day56
  • 今日推荐:data-engineer-handbook
  • ICML 2025 | 时空数据(Spatial-Temporal)论文总结
  • 【RocketMQ 生产者和消费者】- 消费者的订阅关系一致性
  • Unity3D仿星露谷物语开发69之动作声音
  • 统计用户本月的连续登录天数
  • 系列一、windows中安装RabbitMQ
  • [论文阅读] 软件工程 + 教学 | 软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践
  • Linux——6.检测磁盘空间、处理数据文件
  • 爬虫入门练习(文字数据的爬取)
  • JavaScript 的 “==” 存在的坑
  • 跨域视角下强化学习重塑大模型推理:GURU框架与多领域推理新突破
  • TypeScript类型定义:Interface与Type的全面对比与使用场景
  • 线程池异步处理
  • 分布式ID生成方式及优缺点详解
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结
  • uni-app项目实战笔记23--解决首次加载额外图片带来的网络消耗问题
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • day03-微服务01
  • 《Nature Commun》(中科院1区, IF17.694): CITE-seq+空间转录组解析SSc免疫异质性
  • MySQL学习(1)——基础库操作
  • 【C++开发】CMake构建工具
  • 系统思考:救火先放火
  • (线性代数最小二乘问题)Normal Equation(正规方程)
  • 【边缘计算】ECA、ECN、ECI
  • 逆向某物 App 登录接口:还原 newSign 算法全流程
  • springboot 提供的可扩展接口
  • Element表格表头合并技巧
  • 30天pytorch从入门到熟练(day1)
  • VS2019调试进入FFmpeg源码