当前位置: 首页 > 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 判断结构

多分支逻辑优化
 

# 普通写法(易混淆条件顺序)

if score >= 90:

grade = "A"

elif score >= 80:

grade = "B"

elif score >= 70:

grade = "C"

else:

grade = "D"

# 推荐写法(明确区间范围)

if 90 <= score <= 100:

grade = "A"

elif 80 <= score < 90:

grade = "B"

elif 70 <= score < 80:

grade = "C"

else:

grade = "D"

3.2 循环结构对比

循环类型

适用场景

核心特点

跳出方式

for 循环

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

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

break/continue

while 循环

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

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

break/continue

典型案例

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

nums = [12, 34, 5, 67, 8]

max_num = nums[0]

for num in nums:

if num > max_num:

max_num = num

  • while 循环:猜数字游戏

import random 

target = random.randint(1, 100)

while True:

guess = int(input("猜数字(1-100): "))

if guess > target:

print("大了")

elif guess < target:

print("小了")

else:

print("猜对了!")

break

四、函数与数据容器

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()

五、文件操作与异常处理

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 / num

except 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)

方法重写案例

 

class Animal:

def sound(self):

print("动物发声")

class Dog(Animal):

def sound(self): # 重写父类方法

print("汪汪汪")

class Bird(Animal):

def sound(self): # 重写父类方法

print("叽叽喳喳")

# 多态调用

def make_sound(animal):

animal.sound()

dog = Dog()

bird = Bird()

make_sound(dog) # 输出:汪汪汪

make_sound(bird) # 输出:叽叽喳喳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/256873.html

相关文章:

  • 零基础学习Redis(14) -- Spring中使用Redis
  • Go语言--语法基础6--基本数据类型--数组类型(1)
  • 为OneCode 开发TRea 开发插件,从环境搭建到生态融合
  • 跨域问题说明
  • 开发语言本身只是提供了一种解决问题的工具
  • 给docker 配置代理 IP机端口
  • Java事务失效(面试题)的常见场景
  • Python 商务数据分析—— NumPy 学习笔记Ⅱ
  • 登录拦截功能实现 -瑞吉外卖笔记
  • 2025年EAAI SCI1区TOP,基于低差异序列的仿果蝇无人机地下环境路径规划算法,深度解析+性能实测
  • 群晖 NAS Docker 镜像加速配置详细教程
  • SpringBean 创建过程详解
  • 【ELK(Elasticsearch+Logstash+Kibana) 从零搭建实战记录:日志采集与可视化】
  • 预训练 vs. 微调:大模型落地的核心两步,究竟有何不同?
  • 【Linux手册】进程地址空间:从虚拟到物理的内存寻址之旅
  • 通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
  • go excel解析库xuri/excelize中的SAX
  • 【PyTorch项目实战】CycleGAN:无需成对训练样本,支持跨领域图像风格迁移
  • 开关电源:BUCK和BOOST
  • NotePad++ 怎么没有找到插件管理?
  • C++ 友元:打破封装边界的“特殊权限”
  • LangChain赋能RAG:从构建到评估优化的一体化实战指南
  • 跨平台多路RTSP/RTMP转RTMP推送模块深度解析
  • Python函数实战:从基础到高级应用
  • ABP VNext + gRPC 双向流:实时数据推送与订阅场景实现
  • 量化-因子处理
  • 原创模板--微信小程序 实现的背单词程序
  • GESP C++ 各等级详细知识点汇总
  • 从单口相声到群口辩论:MultiTalk开源:多角色对话生成SOTA模型,语音-视觉对齐精度达98.7%!
  • Linux 下的 socket