Python入门最完整的基础知识大全【纯干货,建议收藏】!

主要内容如下:

1.用Python做数据分析的重要性

Python在数据分析和交互、探索性计算以及数据可视化等方面都显得比较活跃,这就是Python作为数据分析的原因之一,python拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,在处理中型数据方面可以说有着无与伦比的优势,已经成为数据分析中流砥柱的分析工具。

Python也具有强大的编程能力,这种编程语言不同于R或者matlab,python有些非常强大的数据分析能力,并且还可以利用Python进行爬虫,写游戏,以及自动化运维,在这些领域中有着很广泛的应用,这些优点就使得一种技术去解决所有的业务服务问题,这就充分的体现的Python有利于各个业务之间的融合。如果使用Python,能够大大的提高数据分析的效率。

python是人工智能时代的通用语言,人工智能需要的是即时性,而Python是一种非常简洁的语言,同时有着丰富的数据库以及活跃的社区,这样就能够轻松的提取数据,从而为人工智能做出优质的服务。

2.安装Python

“工欲善其事,必先利其器”

既然要用Python做数据分析,那就要先将Python相关的软件安装好。

事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境。

简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码、图像和文档全部组合到一个web文档中。

安装的步骤就按照知乎猴子老师的详细步骤进行,遇到的问题,链接里也会有相应的解决办法。

3.Python基本语法

这一部分在Jupyter notebook中实现的,以下内容也是直接存为markdown文件(.md),然后再导入到知乎中。

数据类型:字符串(string)

#定义字符串
nameStr='张三'
moneyStr='有钱'
#字符串合并
print('用+将字符串合并:',nameStr+moneyStr)
用+将字符串合并: 张三有钱
#用%s格式化字符串
str1='我是%s,我是%s的儿子。'%('张小明','张三')
print(str1)
我是张小明,我是张三的儿子。

数据类型:数值(Number)

#(1)整型:张三的年龄50岁
age=50
#(2)浮点型:我的余额宝今天收益1.09元
money=1.09

数据类型:容器——列表(List)

#用[]定义列表:病人姓名
nameList=['张三','李四','王五','赵六']
#列表长度
nameLen=len(nameList)
print('列表长度——病人数目:',nameLen)
列表长度——病人数目: 4
''''列表的4个操作'''
#(1)增加
nameList.append('钱七')
print('增加1个元素:',nameList)
增加1个元素: ['张三', '李四', '王五', '赵六', '钱七']
#(2)删除
del nameList[1]
print('删除第2个元素:',nameList)
删除第2个元素: ['张三', '王五', '赵六', '钱七']
#(3)查询
name1=nameList[0]
print('查询列表的第1个元素:',name1)
查询列表的第1个元素: 张三
#(4)修改:直接指定下标的值
print('修改之前第1个元素是:',nameList[0])
nameList[0]='张大三'
print('修改之后第1个元素是:',nameList[0])
修改之前第1个元素是: 张三
修改之后第1个元素是: 张大三

数据类型:容器——元组(Tuple)

#用()定义元组
gafataTuple=('谷歌','苹果','Facebook','亚马逊','腾讯','阿里巴巴')
#元组长度
gafataLen=len(gafataTuple)
print('元祖长度:',gafataLen)
#查询元组的第一个元素(下标从0开始)
print('第1个元素的值:',gafataTuple[0])
元祖长度: 6
第1个元素的值: 谷歌

数据类型:容器——集合(Set)

#用{}定义集合
gafataSet={'谷歌','苹果','Facebook','亚马逊','腾讯','阿里巴巴','阿里巴巴'}
print(gafataSet)
{'苹果', '腾讯', 'Facebook', '阿里巴巴', '谷歌', '亚马逊'}
'''集合的4个操作'''
#(1)增加
#用set()定义1个空的集合
stockSet=set()
#使用update()增加元素
stockSet.update(['腾讯','阿里巴巴','京东']) #此处注意要加[]
print(stockSet)
{'京东', '阿里巴巴', '腾讯'}
#(2)删除
stockSet.discard('京东')
print(stockSet)
{'阿里巴巴', '腾讯'}
#(3)查询
txBool='腾讯' in stockSet
print(txBool)
True
#(4)修改
#第1步:先删除
print('修改前的集合:',stockSet)
stockSet.discard('阿里巴巴')
#第2步:再添加
stockSet.update(['阿里']) #此处注意要加[]
print('修改后的集合:',stockSet)
修改前的集合: {'阿里巴巴', '腾讯'}
修改后的集合: {'阿里', '腾讯'}

数据类型:容器——字典(Dictionary)

#用{}定义字典:病人编号和姓名的映射关系
patienDic={'001':'张三','002':'李四','003':'王五','004':'赵六'}
patienDic
{'001': '张三', '002': '李四', '003': '王五', '004': '赵六'}
#用{}定义字典:excel病人数据存储
patienDic2={'001':['张三',29,'1型糖尿病','较差'],
            '002':['李四',34,'2型糖尿病','好转'],
            '003':['王五',28,'1型糖尿病','显著好转'],
            '004':['赵六',52,'2型糖尿病','好转']}
patienDic2
{'001': ['张三', 29, '1型糖尿病', '较差'],
 '002': ['李四', 34, '2型糖尿病', '好转'],
 '003': ['王五', 28, '1型糖尿病', '显著好转'],
 '004': ['赵六', 52, '2型糖尿病', '好转']}
'''字典的4个操作'''
#(1)增加
patienDic2['005']=['钱七',30,'1型糖尿病','好转']
print(patienDic2)
{'001': ['张三', 29, '1型糖尿病', '较差'], '002': ['李四', 34, '2型糖尿病', '好转'],
 '003': ['王五', 28, '1型糖尿病', '显著好转'], '004': ['赵六', 52, '2型糖尿病', '好转'], '005': ['钱七', 30, '1型糖尿病', '好转']}
#(2)删除
del patienDic2['005']
#(3)查询:根据病人编号查询病人信息
valueList1=patienDic2['001']
print(valueList1)
['张三', 29, '1型糖尿病', '较差']
#(4)修改
print('修改之前,病人信息:',patienDic2['001'])
patienDic2['001']=['张三', 29, '1型糖尿病', '好转']
print('修改之后,病人信息:',patienDic2['001'])
修改之前,病人信息: ['张三', 29, '1型糖尿病', '较差']
修改之后,病人信息: ['张三', 29, '1型糖尿病', '好转']

数据类型:布尔类型

age=10
if age==10:
    print('判断条件是True')
else:
    print('判断条件是False')
判断条件是True

数据类型:空值None

age=None
if age==None:
    print('年龄是空值')
else:
    print('年龄不是空值')
年龄是空值

条件判断

#《摔跤吧,爸爸》豆瓣评分
scoreNum=9.1
if scoreNum>=8:
    print('评分很高,一定要去看看这部电影!')
else:
    print('评分太低,不去看了···')
评分很高,一定要去看看这部电影!
'''边界条件 
——值比较/逻辑比较'''
nameList=['张三','李四','王五','赵六']
if '王五'not in nameList:
    print('列表中没有叫王五的人')
else:
    print('列表中有个叫王五的人')
列表中有个叫王五的人
#多个条件判断
age=int(input('请输入你家狗狗的年龄,按enter获取计算结果:'))
if age<0:
    print('狗狗年龄不能小于0')
elif age==1:
    print('相当于14岁的人')
elif age==2:
    print('相当于22岁的人')
else:
    human=22+(age-2)*5
    print('对应人类年龄:',human)
请输入你家狗狗的年龄,按enter获取计算结果:5
对应人类年龄: 37

循环——批量处理数据

#重复性工作
print('今天第1次吃饭')
print('今天第2次吃饭')
print('今天第3次吃饭')
今天第1次吃饭
今天第2次吃饭
今天第3次吃饭
#用循环语句代替
eatList=['今天第1次吃饭','今天第2次吃饭','今天第3次吃饭']
for i in eatList:
    print(i)
今天第1次吃饭
今天第2次吃饭
今天第3次吃饭
'''司(GAFATA)的股票
key—公司名称,value—股票代码'''
gafataDict={'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple',
            '谷歌':'GOOGL','Facebook':'fb','亚马逊':'amzn'}
#将股票代码全部大写
for key,value in gafataDict.items():
    newValue=value.upper()
    gafataDict[key]=newValue
print(gafataDict)
{'腾讯': 'HK:00700', '阿里巴巴': 'BABA', '苹果': 'APPLE', '谷歌': 'GOOGL', 'Facebook': 'FB', '亚马逊': 'AMZN'}

continue——用于跳出当前循环

for key,value in gafataDict.items():
    if(key=='苹果'):
        continue
    print('当前公司:',key,',当前股票代码',value)
当前公司: 腾讯 ,当前股票代码 HK:00700
当前公司: 阿里巴巴 ,当前股票代码 BABA
当前公司: 谷歌 ,当前股票代码 GOOGL
当前公司: Facebook ,当前股票代码 FB
当前公司: 亚马逊 ,当前股票代码 AMZN

break——用于退出整个循环

number=0
for key,value in gafataDict.items():
    number+=1
    if(key=='苹果'):
        print(number,'查找',key,'公司的股票代码是',value)
        break
    print(number,'当前公司:',key,',当前股票代码',value)
1 当前公司: 腾讯 ,当前股票代码 HK:00700
2 当前公司: 阿里巴巴 ,当前股票代码 BABA
3 查找 苹果 公司的股票代码是 APPLE

函数

#自定义函数——两数相除
def divide(x,y):
    z=x/y
    return z
#使用函数
a=4
b=2
#按顺序给参数输入值
c=divide(a,b)
print('方式一:4除以2等于',c)
#带参数名      
d=divide(y=b,x=a)
print('方式二:4除以2等于',d)
方式一:4除以2等于 2.0
方式二:4除以2等于 2.0
'''函数参数——不可变类型(字符串,数值,元组)
参数传递时,相当于传递的是复制出来的数据,函数内部修改数据对于数据本身没有影响
'''
#定义函数——改变数据的值
def changeInt(a):
    a=a+1
#使用函数
b=1
print('调用函数之前b的值=',b)
changeInt(a=b)
print('调用函数之后b的值=',b)
调用函数之前b的值= 1
调用函数之后b的值= 1
'''函数参数——可变类型
参数传递时,传递的是该变量的引用地址,函数内部修改数据时原始数据也改变了
'''
#定义函数——改变列表的值
def changeList(inputList):
    inputList.append('孙八')
#使用函数
nameList=['张三','李四']
print('调用函数之前的列表=',nameList)
changeList(inputList=nameList)
print('调用函数之后的列表=',nameList)
调用函数之前的列表= ['张三', '李四']
调用函数之后的列表= ['张三', '李四', '孙八']

Python的作用域一共有2种:全局作用域,局部作用域。

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

'''变量作业域'''
def test():
    aStr='别理会他人闲言闲语,今日随他们吧,让他们说吧,你的机会将会到来,再来证明自己。'
#在函数外面,访问函数内的局部变量str,会报错
print(aStr)
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-101-363016320396> in <module>
      3     aStr='别理会他人闲言闲语,今日随他们吧,让他们说吧,你的机会将会到来,再来证明自己。'
      4 #在函数外面,访问函数内的局部变量str
----> 5 print(aStr)


NameError: name 'aStr' is not defined

模块

'''Python内置模块'''
#第1步:引入模块
import sys
#第2步:使用模块中的函数、属性
pathList=sys.path
print('Python路径为:\n',pathList)
Python路径为:
 ['D:\\Anaconda3\\python36.zip', 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib', 'D:\\Anaconda3', '', 
'D:\\Anaconda3\\lib\\site-packages', 'D:\\Anaconda3\\lib\\site-packages\\win32', 
'D:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'D:\\Anaconda3\\lib\\site-packages\\Pythonwin', 
'D:\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\hp\\.ipython']
'''第三方模块'''
#第1步:引入模块
import pandas as pd
#文件路径
fileName='H:\病历数据.xlsx'
#读取excel文件里的数据
x1=pd.ExcelFile(fileName)
#获取指定工作表的数据
patientDf=x1.parse('Sheet1')
print(patientDf)
病人编号  姓名  年龄  糖尿病类型    病情
0     1  张三  29  1型糖尿病    较差
1     2  李四  34  2型糖尿病    好转
2     3  王五  28  1型糖尿病  显著好转
3     4  赵六  52  2型糖尿病    较差

数据结构

'''collections是Python内建的一个集合模块,提供了许多有用的集合类。
双向链表queue:队列和栈
队列——先进先出(头出尾进)
'''
#定义队列——餐馆排队吃饭人的编号
from collections import deque
queue=deque(['001','002','003','004','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '004', '005', '006'])
#出队:在队列头部删除元素
queue.popleft()
'001'
print(queue)
deque(['002', '003', '004', '005', '006'])
'''
栈——后进先出(last in first out,LIFO)/(尾进尾出)
浏览器后退按钮——相当于出栈
浏览器前进按钮——相当于入栈
'''
#定义栈——浏览我个人知乎主页的顺序
stack=deque(['动态','回答','文章'])
print(stack)
deque(['动态', '回答', '文章'])
#入栈:在栈顶(尾部)加入元素
stack.append('专栏')
print(stack)
deque(['动态', '回答', '文章', '专栏'])
#出栈:在栈顶(尾部)删除元素
stack.pop()
'专栏'
print(stack)
deque(['动态', '回答', '文章'])
'''collections中排序字典
OrderedDict:按照插入key的顺序,对字典排序
'''
from collections import OrderedDict
gafataDict={'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple',
            '谷歌':'GOOGL','Facebook':'fb','亚马逊':'amzn'}
#定义有序字典
gafataOdDict=OrderedDict({'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple',
                         '谷歌':'GOOGL','Facebook':'fb','亚马逊':'amzn'})
gafataOdDict
OrderedDict([('腾讯', 'HK:00700'),
             ('阿里巴巴', 'baba'),
             ('苹果', 'Apple'),
             ('谷歌', 'GOOGL'),
             ('Facebook', 'fb'),
             ('亚马逊', 'amzn')])
#计数器
from collections import Counter
cDict=Counter('有一种鸟是永远也关不住的,因为他们的羽毛太光亮了。羽毛太光亮了!')
cDict
Counter({'有': 1,
         '一': 1,
         '种': 1,
         '鸟': 1,
         '是': 1,
         '永': 1,
         '远': 1,
         '也': 1,
         '关': 1,
         '不': 1,
         '住': 1,
         '的': 2,
         ',': 1,
         '因': 1,
         '为': 1,
         '他': 1,
         '们': 1,
         '羽': 2,
         '毛': 2,
         '太': 2,
         '光': 2,
         '亮': 2,
         '了': 2,
         '。': 1,
         '!': 1})
#出现次数最多的5个词
cDict.most_common(5)
[('的', 2), ('羽', 2), ('毛', 2), ('太', 2), ('光', 2)]

Python学习资料(项目源码、安装包、激活码、电子书、视频教程)已经打包好啦! 需要的小伙伴点击下方链接拿走哦!或者下方扫码领取! 

【点击链接】

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值