数据科学必备Python编程基础

article/2025/7/22 22:14:14

前言

对于Python复杂的编程语言中提取了数据分析常用的数据处理以及数据可视化等数据分析师常用的内容,区别与其他的Python编程教程,如果是纯开发的小伙伴,看完本系列的文章仅仅只能掌握数据相关处理的内容,并不能完全掌握开发方面的技能,请有选择阅读。

(文末送读者福利)

Python的特点

1、简单、易学Python是一种代表简单主义思想的语言,有简单的语法,容易上手。Python能够专注于解决问题而不是去搞明白语言本身。

2、面向对象的高层语言无需关注底层细节,而C/C++中需要操作指针。与其他语言相比,Python以强大而又简单的方式实现面向对象编程。

3、解释性强Python程序不需要编译成二进制代码,可以直接在源代码上运行。

4、免费开源,可移植性Unix衍生系统,Win32系统家族,掌上电脑/手机,游戏控制台(PSP)等等。

5、可扩展性,可嵌入性如果一段关键代码希望运行得更快或者希望算法不公开,可以把这部分程序用C或C++编写,然后在Python程序中使用。可以把Python嵌入到C/C++程序,从而向程序用户提供脚本功能。

6、丰富的库Python标准库确实很庞大,包括正则表达式、文档生成、单元、测试、线程、数据库、网页浏览器、等等。此外,还有其他高质量的库,如wxPython、Twisted和图像库等等。

Python的安装

对于数据分析师而言,不建议使用原生的方式安装Python。而是使用对数据分析师更加友好的 Anaconda 进行安装,更多辅助数据分析师的功能。

并且基于 Anaconda 的 Jupyter Notebook,也是集成很多使用功能的编辑器同时兼具交互式的优点。可以在同一个界面中保存展示代码,展现运行结果,实时互交式运行代码等功能,并且对新手非常友好,不需要过多的配置。

数据分析师必备Python基础

数据分析师使用Python的基础语法

这部分内容了解即可,会在实际操作中讲解。

Python 标识符
1、在 Python 里,标识符有字母、数字、下划线组成。
2、在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
3、Python 中的标识符是区分大小写的。
4、以下划线开头的标识符是有特殊意义的。以单下划线开头 foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
5、以双下划线开头的 foo 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init
_() 代表类的构造函数。

Python 标准的数据类型
1、数据类型:Numbers(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典)
2、数字类型:int(有符号整型)long(长整型[也可以代表八进制和十六进制])float(浮点型)complex(复数)

Python 数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

在这里插入图片描述

Python 运算符

算术运算符

加 - 两个对象相加 a + b 输出结果 30 。
减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10。
乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2。
% 取模 - 返回除法的余数 b % a 输出结果 0。
幂 - 返回x的y次幂 ab 为10的20次方, 输出结果 100000000000000000000。
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0。

Python比较运算符

以下假设变量a为10,变量b为20。

== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true。
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。

= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

Python逻辑运算符

假设变量 a 为 10, b为 20。

and x and y 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔”或” - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False 。

Python成员运算符

in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

Python身份运算符

is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False。
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

Python 变量类型

Number 数字变量: Python中的数字包含int、float、bool、complex复数。
String 字符串变量: python里面的字符串是指用单引号 ‘ 或者双引号 “” 括起来一段字符和数字,同时一些特殊字符需要使用 \ 来进行转译。
List 列表变量: List在python中使用会比较频繁,他和数组很大的相似性。可以实现许多集合类的实现。
Tuple 元素变量: 元组是一组不能修改的数据集合,使用()和“,” 将数据进行分隔。
Set 集合变量: 一个用“{}”包含起来一组或多个个体组成的集合,通常是进行成员关系测试和删除重复元素使用的。 注意空的set,要使用set()来实现, { }是用来表示一个空的字典。
Dictionary 字典变量: 字典是一种数据映射类型,用{ } 进行标识,它包含了一组由 key:value组成的集合。 key(键)和 value(值)一一对应,在同一个字典中,key值必须是唯一的,不能够重复。

Python的控制流语句
单分支结构

条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等
语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致

num = input("输入一个数字:")
if int(num)<10:print(num)

在选择和循环结构中,条件表达式的值为 False 的情况如下:False、0、0.0、空值None、空序列对象(空列表、空元组、空集合、空字典、空字符串)、空range对象、空迭代对象。其他情况,均为 True。这么看来 Python 所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。

在python 中,条件表达式不能出现赋值操作符 “=”,避免了其他语言中经常误将关系运算符 “==” 写作赋值运算符“=”带来的困扰。

if 3:    #整数作为条件表达式        print("ok")
a = []   #列表作为条件表达式,由于为空列表,是False
if a:print("空列表,False")
s = "False"    #非空字符串,是True
if s:print("非空字符串,是True")c = 9
if 3<c<20:print("3<c<20")
if 3<c  and  c<20:print("3<c  and c<20")if True:        #布尔值print("True")

双分支结构

Python 提供了三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下:

条件为真时的值 if(条件表达式)else 条件为假时的值。
上一个案例代码,可以用三元条件运算符实现。

num = input("输入一个数字:")        
if int(num)<10:print(num)
else:print("数字太大")num = input("请输入一个数字")        
print( num if int(num)<10 else "数字太大")

在这里插入图片描述
多分支结构

方法1(使用完整的条件表达)

score = int(input("请输入分数"))        
grade = ''
if(score<60):grade = "不及格"
if(60<=score<80):grade = "及格"
if(80<=score<90):grade = "良好"
if(90<=score<=100):grade = "优秀"print("分数是{0},等级是{1}".format(score,grade))

方法2(利用多分支结构)

score = int(input("请输入分数"))        
grade = ''
if score<60 :grade = "不及格"
elif  score<80 :grade = "及格"
elif  score<90 :grade = "良好"
elif  score<=100:grade = "优秀"print("分数是{0},等级是{1}".format(score,grade))

其他循环方式

while循环。

num = 0                
sum_all = 0         #1-100所有数的累加和
sum_even = 0        #1-100偶数的累加和
sum_odd = 0         #1-100奇数的累加和
while num<=100:sum_all += numif num%2==0:sum_even += numelse:sum_odd += numnum += 1         #迭代,改变条件表达式,使循环趋于结束print("1-100所有数的累加和",sum_all)
print("1-100偶数的累加和",sum_even)
print("1-100奇数的累加和",sum_odd)

for 循环。

for  x  in  (20,30,40):        print(x*3)for x  in  "sxt001":        print(x)for i in range(10) :print(i)

循环的终止与执行

break语句。break语句可用于 while 和 for 循环中,用来结束整个循环。当有嵌套循环时,break语句 ,只能跳出最近的一层循环。

while True:        a = input("请输入一个字符(输入Q或q结束)")if a.upper()=='Q':print("循环结束,退出")breakelse:print(a)

continue 语句,continue 语句用于结束本次循环,继续下一次循环,多个玄幻嵌套时,continue也是应用于最近的一层循环。

empNum = 0        
salarySum= 0
salarys = []
while True:s = input("请输入员工的薪资(按Q或q结束)")if s.upper()=='Q':print("录入完成,退出")breakif float(s)<0:continueempNum +=1salarys.append(float(s))salarySum += float(s)print("员工数{0}".format(empNum))
print("录入薪资:",salarys)
print("平均薪资{0}".format(salarySum/empNum))

读者福利:知道你对Python感兴趣,还准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取

在这里插入图片描述

好文推荐

了解python的前景:https://blog.csdn.net/xiqng17111342931/article/details/127705925

了解python的副业:https://blog.csdn.net/xiqng17111342931/article/details/127872402


http://chatgpt.dhexx.cn/article/4hcdF3sx.shtml

相关文章

数据结构中的C语言编程基础

​ 在学习数据结构时&#xff0c;需要我们编写许多的程序&#xff0c;对于一些变量的定义、结构体的声明、指针的使用&#xff0c;需要有一个统一的标准&#xff0c;这样才能方便我们使用、并简化记忆难度。 ​ 本文结合自身的编程经验和高分笔记中对考研数据结构编程的一些建…

面向数据编程 Data-Oriented Programming [1]

RuntimeMapMaker3D-Pro 面向数据的编程原则 0.1 简介 面向数据的编程是一种编程范式&#xff0c;旨在简化以信息为中心的软件系统的设计和实施。而不是围绕着将数据和代码结合在一起的实体&#xff08;如实例化的对象&#xff09;来设计信息系统&#xff08;例如&#xff0c;从…

ODBC API开发教程

ODBC API开发教程 作者&#xff1a;闻怡洋 未得到作者允许请勿转载 http://wyy.vchelp.net/ 目录 第 1 章 介绍... 2 第 2 章 ODBC API访问数据库... 2 2.1 ODBC简要介绍... 2 2.1.1 在没有ODBC以前... 2 2.1.2 ODBC介绍... 3 2.1.3 ODBC结构…

Microsoft Server 2008 空间存储 应用方法详解

2019独角兽企业重金招聘Python工程师标准>>> 刚接触2008的空间存储&#xff0c;资料比较少&#xff0c;在数据库操作中有很多不懂的地方&#xff0c;包括用法&#xff0c;语法等&#xff0c;经过同事的指点明白了一些&#xff0c;感谢大腿同事~这里只记录数据库操作…

ODBC 数据类型和API(VC)

目录 ODBC 数据类型API 函数 ODBC 数据类型 ODBC SQL 数据类型 展开显示 ODBC SQL 数据类型SQL类型标识SQL 92类型标识类型描述SQL_CHARCHAR(n)定长字符串,其长度为nSQL_VARCHARVARCHAR(n)变长字符串,最大长度为nSQL_LONGVARCHARLONG VARCHAR变长字符串,最大长度取决于数据源S…

Sql的decimal、float、double类型的区别

三者的区别介绍 float:浮点型&#xff0c;含字节数为4&#xff0c;32bit&#xff0c;数值范围为-3.4E38~3.4E38&#xff08;7个有效位&#xff09; double:双精度实型&#xff0c;含字节数为8&#xff0c;64bit数值范围-1.7E308~1.7E308&#xff08;15个有效位&#xff09; d…

【网络编程实践】2.3.4.2 建议关闭 Nagle 算法

Nagle算法主要是避免发送小的数据包&#xff0c;要求TCP连接上最多只能有一个未被确认的小分组&#xff0c;在该分组的确认到达之前不能发送其他的小分组。 Nagle算法的目的&#xff1a;避免发送大量的小包&#xff0c;网络上每次只能一个小包存在&#xff0c;在小包被确认之前…

Nagle算法与TCP_CORK,TCP_NODELAY,TCP_QUICKACK

1. Nagel算法 TCP/IP协议中&#xff0c;无论发送多少数据&#xff0c;总是要在数据前面加上协议头&#xff0c;同时&#xff0c;对方接收到数据&#xff0c;也需要发送ACK表示确认。为了尽可能的利用网络带宽&#xff0c;TCP总是希望尽可能的发送足够大的数据。&#xff08;一…

如何关闭和启用Nagle算法

如果各位读者在搜索如何关闭的话&#xff0c;那么我有理由相信各位对想要解决的问题已经算是比较清楚了&#xff0c;废话不多数。 什么是nagle算法&#xff0c;它是干嘛用的&#xff0c;请自行google or 百度 Step1 Open regredit 快捷键&#xff1a;winr 打开&#xff1a…

19- TCP 协议(Nagle)

前面我们所用的 unp/protocol/tools/winclient/echo_cli.cpp 程序的特别之处是它总会发送一个小分组&#xff08;TCP 段&#xff0c;只有 41 字节&#xff09;到服务器。这样的小分组在英文中称为 tinygram&#xff0c;在网络状态好的情况下&#xff0c;比如局域网中&#xff0…

TCP Nagle算法详解

转: http://bbs.chinaunix.net/thread-3767363-1-1.html 在网络拥塞控制领域&#xff0c;我们知道有一个非常有名的算法叫做Nagle算法&#xff08;Nagle algorithm&#xff09;&#xff0c;这是使用它的发明人John Nagle的名字来命名的&#xff0c;John Nagle在1984年首次用这个…

TCP之延时Nagle算法实验详解

TCP/IP协议中&#xff0c;无论发送多少数据&#xff0c;总是要在数据前面加上协议头&#xff0c;同时&#xff0c;对方接收到数据&#xff0c;也需要发送ACK表示确认。为了尽可能的利用网络带宽&#xff0c;TCP总是希望尽可能的发送足够大的数据。&#xff08;一个连接会设置MS…

Nagle Algorithm

转: http://bbs.chinaunix.NET/thread-3767363-1-1.html 在网络拥塞控制领域&#xff0c;我们知道有一个非常有名的算法叫做Nagle算法&#xff08;Nagle algorithm&#xff09;&#xff0c;这是使用它的发明人John Nagle的名字来命名的&#xff0c;John Nagle在1984年首次用这…

TCP中的Nagle算法

TCP中的Nagle算法 一. Nagel算法 TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认.为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据.(在一个连接中会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数…

确认应答、Nagle算法和延时确认应答

目录 确认应答 延时确认应答 Nagle算法 确认应答 TCP在传输数据的时候&#xff0c;每次接受方收到来自发送方的数据包后&#xff0c;接受方对都会发送一个确认应答(ACK)报文作为回应&#xff0c;发送方收到来自接受方的确认应答(ACK)报文&#xff0c;就表明发送的数据已经被…

TCP/IP卷一:80---TCP数据流与窗口管理之(延时确认(延迟ACK)、Nagle算法)

一、延迟确认&#xff08;延迟ACK&#xff09; 在许多情况下&#xff0c;TCP并不对每个到来的数据包都返回ACK&#xff0c;利用TCP的累积ACK字段&#xff08;参见TCP报文格式https://blog.csdn.net/qq_41453285/article/details/104016416&#xff09;就能实现该功能累积确认可…

禁用 Nagle 算法

有没有发现一个很奇怪的组合&#xff0c;即 Nagle 算法和延时 ACK 的组合。这个组合为什么奇怪呢&#xff1f; 我举一个例子你来体会一下。比如&#xff0c;客户端分两次将一个请求发送出去&#xff0c;由于请求的第一部分的报文未被确认&#xff0c;Nagle 算法开始起作用&…

TCP Nagle算法及示例

TCP nagle算法是说&#xff0c;一个TCP连接只允许有一个未被确认的小数据包&#xff0c;如果有小数据包未被确认&#xff0c;其他要发送的小数据包先被缓存起来&#xff0c;等收到确认后&#xff0c; 把这些数据包再一块发送出去。注意算法中说的是小数据包&#xff0c;也就是n…

TCP-IP详解:Nagle算法

参考书籍&#xff1a;TCP/IP详解&#xff0c;卷1&#xff1a;协议 Small Packet Problem 在使用一些协议通讯的时候&#xff0c;比如Telnet&#xff0c;会有一个字节字节的发送的情景&#xff0c;每次发送一个字节的有用数据&#xff0c;就会产生41个字节长的分组&#xff0c…

TCP-Nagle:代码版本重新解释Nagle算法

开年来的第一份工作&#xff0c;就是在最新的内核上打补丁。 可没想到Nagle算法也被我冲进了去年的垃圾桶里。 在网上找了一些资料&#xff0c;理论很快被消化&#xff0c;但看了看内核的实现&#xff0c;久久没能动弹。坐了一天&#xff0c;才摸索出来点什么&#xff0c;觉得…