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.tpcf.cn/news/910396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT小白到高手:HCIA、HCIP、HCIE认证攻略

大家好&#xff0c;这里是G-LAB IT实验室。6月&#xff12;&#xff12;日&#xff0c;周日&#xff01;HCIA&#xff0b;CCNA开新班啦&#xff01; 01 华为HCIA、HCIP、HCIE有必要考证吗 在如今竞争激烈的IT行业&#xff0c;华为的认证体系已成为众多网络工程师的重要参考。…

【IndexDB】前端IndexedDB终极指南

前端 IndexedDB 详细教程 IndexedDB 是一个浏览器内置的 NoSQL 数据库系统&#xff0c;允许在客户端存储大量结构化数据&#xff0c;并支持高性能搜索。相比 localStorage&#xff0c;IndexedDB 更适合存储大量数据并提供更复杂的查询功能。 基本概念 数据库&#xff1a;每个…

扩散模型与强化学习(1):字节Seedance中的人类偏好优化实践

扩散模型与强化学习(0)&#xff1a;专栏汇总与导航 前言&#xff1a;最近强化学习在Diffusion Models得到了越来越多广泛的应用&#xff0c;本专栏将系统性地介绍当前Diffusion Models中实用且前沿的技术进展。这篇博客介绍字节最新的视频生成模型Seedance 1.0: Exploring the …

【内存】Linux 内核优化实战 - vm.max_map_count

目录 vm.max_map_count参数全面解析一、参数定义与核心作用二、默认值与关键调整场景1. 默认限制与不足场景2. 典型报错案例 三、操作指南&#xff1a;查看与修改方法四、场景化建议值与配置示例五、关键注意事项六、延伸知识&#xff1a;内存映射的底层逻辑 vm.max_map_count参…

组件之间的双向绑定:v-model

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

GetX 实现 MVVM 架构, 高效 路由管理 和 状态管理

GetX是Flutter中的一个高效的状态管理与路由管理框架&#xff0c;结合MVVM架构能简化代码逻辑。以下是使用GetX实现MVVM架构&#xff0c;并完成路由和状态管理的核心思路与实践&#xff1a; 一、MVVM架构在GetX中的映射 MVVM&#xff08;Model-View-ViewModel&#xff09;与G…

Qt项目,记事本

一、项目说明 项目功能&#xff1a; &#xff08;1&#xff09;打开文件&#xff1a;点击打开文件按钮弹出对话框&#xff0c;选择文本文件后&#xff0c;在主窗口编辑界面显示内容。 &#xff08;2&#xff09;关闭文件&#xff1a;关闭打开的文件&#xff0c;并询问是否保存…

【全开源】填表问卷统计预约打卡表单系统+uniapp前端

一.系统介绍 填表问卷统计预约打卡表单系统是ThinkPHPUniApp开发的一款集信息填表、预约报名&#xff0c;签到打卡、活动通知、报名投票、班级统计等功能的自定义表单统计小程序。 二.搭建环境 系统环境&#xff1a;CentOS、 运行环境&#xff1a;宝塔 Linux 网站环境&…

开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装

最近有个项目需要做视觉自动化处理的工具&#xff0c;最后选用的软件为python&#xff0c;刚好这个机会进行系统学习。短时间学习&#xff0c;需要快速开发&#xff0c;所以记录要点步骤&#xff0c;防止忘记。 链接&#xff1a; 开源 python 应用 开发&#xff08;一&#x…

SpringCloud + Zookeeper + Feign整合及Feign原理

知其然 SpringCloud Zookeeper Spring Cloud 与 Zookeeper的整合只需要添加相关的starter依赖和增加相关注解即可完成。 pom.xml 如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.…

深入探索 OpenCV 图像识别:从基础到深度学习

在当今数字化时代&#xff0c;图像识别技术已经渗透到我们生活的方方面面&#xff0c;从智能手机中的拍照翻译功能到自动驾驶汽车的目标检测系统&#xff0c;图像识别的应用无处不在。作为一名算法工程师&#xff0c;我有幸深入研究并实践了 OpenCV 在图像识别领域的强大功能。…

Hadoop部署(HA)高可用集群

一、准备工作 1.把集群全部停掉 在三台节点上都做&#xff08;在xshell通过右键----> 发送输入到--->所有会话&#xff09; 2..在/export/servers下创建HA目录 sudo mkdir -p /export/servers/HA 3.创建用户和设置所属主和所属组 #创建用户 sudo adduser ygre #设置…

STM32 CAN位同步、错误处理

一、接收方数据采样 CAN总线没有时钟线&#xff0c;总线上的所有设备通过约定波特率的方式确定每一个数据位的时长发送方以约定的位时长每隔固定时间输出一个数据位接收方以约定的位时长每隔固定时间采样总线的电平&#xff0c;输入一个数据位理想状态下&#xff0c;接收方能依…

django serializer __all__中 额外添加外键里的某一个属性

在Django中使用序列化器&#xff08;Serializer&#xff09;时&#xff0c;你可能会遇到需要将模型&#xff08;Model&#xff09;中的外键字段转换成其关联对象的一部分属性的情况。默认情况下&#xff0c;序列化器会自动序列化外键字段&#xff0c;但如果你想要在序列化结果中…

Redis快的原因

Redis 高性能的核心原因 Redis 之所以能达到极高的性能&#xff08;10万 QPS&#xff09;&#xff0c;主要源于以下几个关键设计&#xff1a; 1. 纯内存操作 核心优势&#xff1a;所有数据存储在内存中&#xff0c;避免了磁盘 I/O 瓶颈 内存访问速度比磁盘快 10万倍以上&am…

【大模型微调】6.模型微调实测与格式转换导出

引言 本文继续研究 LLaMA-Factory 微调数据的流程&#xff0c;侧重于微调结果与模型导出。 数据集准备 首先参考 LLaMA-Factory 核心开发者的文章[1]&#xff0c;下载用于微调的公开的商品文案数据集 AdvertiseGen。 下载地址&#xff1a;https%3A//cloud.tsinghua.edu.cn/…

3085. 成为 K 特殊字符串需要删除的最少字符数

3085. 成为 K 特殊字符串需要删除的最少字符数 给你一个字符串 word 和一个整数 k。 如果 |freq(word[i]) - freq(word[j])| < k 对于字符串中所有下标 i 和 j 都成立&#xff0c;则认为 word 是 k 特殊字符串。 此处&#xff0c;freq(x) 表示字符 x 在 word 中的出现频…

分布式系统中的 Kafka:流量削峰与异步解耦(二)

Kafka 在分布式系统中的应用案例 电商订单系统 在电商领域&#xff0c;订单系统是核心业务模块之一&#xff0c;涉及多个复杂的业务环节和系统组件之间的交互。以常见的电商购物流程为例&#xff0c;当用户在电商平台上下单后&#xff0c;订单创建服务会首先接收到用户的订单…

从事登高架设作业需要注意哪些安全事项?

从事登高架设作业&#xff08;如脚手架搭设、高空维修、外墙清洗等&#xff09;属于高风险特种作业&#xff0c;必须严格遵守安全规范。以下是关键安全注意事项&#xff0c;涵盖作业前准备、作业中操作、应急处理三大环节&#xff0c;符合国家《高处作业安全技术规范》&#xf…

RA4M2开发IOT(6)----涂鸦模组快速上云

RA4M2开发IOT.6--涂鸦模组快速上云 概述视频教学样品申请硬件准备参考程序涂鸦官网链接创建一个项目选择对应产品产品基本配置添加标准功能APP界面配置硬件选择产品配置硬件详情PCB原理图涂鸦调试文件下载进入调试涂鸦模块串口协议心跳检测查询产品信息查询工作模式AP配网APP链…