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

相关文章:

  • SpringBoot+Vue服装商城系统 附带详细运行指导视频
  • Redis ①①-AOF
  • 【数据治理】要点整理-《数据管理能力成熟度评估模型》国家标准(GB/T 36073—2018)
  • Java基础八股文 - 面试者心理历程与标准答案
  • VS2019调试进入FFmpeg源码
  • mysql join的原理及过程
  • 核心概念解析:AI、数据挖掘、机器学习与深度学习的关系
  • LangGraph--基础学习(memory和持久化)
  • B端登录页防攻击策略:抵御暴力破解的6道硬核防线
  • 前端的跨域问题
  • 从实验室到生产线:机器学习模型部署的七大陷阱及PyTorch Serving避坑指南
  • Java面试复习指南:Java基础、面向对象编程与并发编程
  • Portable Watch:基于STM32的便携智能手表
  • DataX 实现 Doris 和 MySQL 双向同步完全指南
  • 爬虫001----介绍以及可能需要使用的技术栈
  • multiprocessing.pool和multiprocessing.Process
  • 深入剖析AI大模型:关于LlamaIndex知识管理与信息检索应用
  • Python爬虫实战:研究Spynner相关技术
  • 【系统分析师】2018年真题:论文及解题思路
  • Java中栈的实现---Stack、Deque、自定义实现
  • C/C++数据结构之静态数组
  • Excel学习02
  • Gartner金融AI应用机会雷达-学习心得
  • 十、关系数据库设计理论(二)
  • Element表格表头合并技巧
  • js 函数参数赋值问题
  • (码云gitee)IDEA新项目自动创建gitee仓库并直接提交
  • uv功能介绍和完整使用示例总结
  • 目标检测neck算法之MPCA和FSA的源码实现
  • vscode+react+ESLint解决不引入组件,vscode不会报错的问题