当前位置: 首页 > 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.xdnf.cn/news/1065655.html

相关文章:

  • Node.js特训专栏-实战进阶:6. MVC架构在Express中的应用
  • C++智能指针编程实例
  • 目标检测neck算法之MPCA和FSA的源码实现
  • UE5 游戏模板 —— ThirdPersonGame
  • 深度解析云计算网络架构:VLAN+OVS+Bonding构建高可靠虚拟化平台
  • 给同一个wordpress网站绑定多个域名的实现方法
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • 《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题
  • 从零开始手写redis(16)实现渐进式 rehash map
  • (码云gitee)IDEA新项目自动创建gitee仓库并直接提交
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结
  • 【51单片机】串口通信
  • 在windows上使用file命令
  • 2140、解决智力问题
  • 核心概念解析:AI、数据挖掘、机器学习与深度学习的关系
  • P99延迟:系统性能优化的关键指标
  • 管理综合知识点
  • Kafka与Zookeeper在linux上的下载记录
  • 【PyTorch项目实战】CycleGAN:无需成对训练样本,支持跨领域图像风格迁移
  • git 如何忽略某个文件夹文件
  • dijkstra(迪杰斯特拉)算法详解
  • React 核心原理与Fiber架构
  • Python 的内置函数 help
  • 【力扣 中等 C】983. 最低票价
  • Linux内核中安全创建套接字:为何inet_create未导出及正确替代方案
  • rust单体web项目模板搭建
  • JAVA集合篇--深入理解ConcurrentHashMap图解版
  • Dalvik和ART的区别
  • 华为云Flexus+DeepSeek征文|开启DeepSeek-V3+R1商用服务之旅
  • 顶顶通AI呼叫软件(大模型电话机器人)介绍