安装了Anaconda3以及Jupyter notebook后对Python中的一些基础语法、定义容器,对容器做增删改,定义及调用函数做了学习,并且在notebook中实践敲了代码
数据类型:字符串(String)
namestr='儿子'
adjstr='可爱'
print(namestr+adjstr)
儿子可爱
strx='我叫%s,我在%s工作'%('马云','阿里')
print(strx)
我叫马云,我在阿里工作
数据类型:数值(Number)
#1)整型:马云年龄55岁
age=55
#2)浮点型:我用马云的余额宝今天赚了2.5元
money=2.5
print(age,money)
55 2.5
数据类型:容器-列表(List)
'''容器:列表(List)列表用方括弧定义'''
#定义列表:病人姓名
shoppinglist=['排骨','大米','零食','苹果']
print(shoppinglist)
['排骨', '大米', '零食', '苹果']
#列表长度Len=len(nameList)
shoppinglistlen=len(shoppinglist)
print('需要购买食材的种类:',shoppinglistlen)
需要购买食材的种类: 4
#1)容器操作:增加
shoppinglist.append('鸡蛋')
print('增加1个元素:',shoppinglist)
增加1个元素: ['排骨', '大米', '零食', '苹果', '鸡蛋']
#2)容器操作:删除
del shoppinglist[4]
print('删除第5个元素:',shoppinglist)
删除第5个元素: ['排骨', '大米', '零食', '苹果']
#3)容器操作:查询:使用下标索引来访问列表中的值,下标从0开始
a1=shoppinglist[0]
print('查询列表的第1个元素:',a1)
查询列表的第1个元素: 排骨
#4)容器操作:修改:直接指定下标的值
shoppinglist[0]='鸡小胸'
print('修改之后第1个元素是:',shoppinglist[0])
修改之后第1个元素是: 鸡小胸
print('新的购物清单是:',shoppinglist)
新的购物清单是: ['鸡小胸', '大米', '零食', '苹果']
数据类型:容器-集合(Sets)
'''容器:集合(Sets)是一个没有重复元素的容器'''
#定义集合:4种要买的物品
shoplistSet={'鸡小胸','大米','零食','苹果'}
print(shoplistSet)
{'零食', '苹果', '大米', '鸡小胸'}
#1)容器操作:增加
#定义一个空的集合
Sets1=set()
#使用update()增加元素
Sets1.update(['薯片','薯片','鸡蛋'])
print(Sets1)
{'薯片', '鸡蛋'}
#2)容器操作:删除
Sets1.discard('鸡蛋')
print(Sets1)
{'薯片'}
#3)容器操作:查找
txBool='鸡蛋' in Sets1
print(txBool)
False
#4)容器操作:修改
#第1步:先删除
Sets1.discard('薯片')
#第2步:再添加
Sets1.update(['鸡大胸','茶叶','梨','小米'])
print(Sets1)
{'梨', '茶叶', '小米', '鸡大胸'}
数据类型:容器-字典(Dictionary)
'''容器:字典(Dictionary)'''
#定义字典:购买物品编号和物品种类的映射关系
BuyDic={'001':'粮食','002':'零食','003':'蔬菜','004':'水果'}
print(BuyDic)
{'001': '粮食', '002': '零食', '003': '蔬菜', '004': '水果'}
#定义字典:物品数据存储
BuyDic2={'001':['粮食',500,'水晶米','吉林'],
'002':['零食',90,'乐事薯片','河北'],
'003':['蔬菜',250,'油菜','北京'],
'004':['水果',500,'凤梨','台湾']}
#1)容器操作:增加
BuyDic2['005']=['饮料',500,'可口可乐','天津']
print(BuyDic2)
{'001': ['粮食', 500, '水晶米', '吉林'], '002': ['零食', 90, '乐事薯片', '河北'], '003': ['蔬菜', 250, '油菜', '北京'], '004': ['水果', 500, '凤梨', '台湾'], '005': ['饮料', 500, '可口可乐', '天津']}
#2)容器操作:删除
del BuyDic2['005']
print(BuyDic2)
{'001': ['粮食', 500, '水晶米', '吉林'], '002': ['零食', 90, '乐事薯片', '河北'], '003': ['蔬菜', 250, '油菜', '北京'], '004': ['水果', 500, '凤梨', '台湾']}
#3)容器操作:查询,根据物品编号查询物品信息
valueList1=BuyDic2['001']
print(valueList1)
['粮食', 500, '水晶米', '吉林']
#4)容器操作:修改
BuyDic2['001']=['粮食', 250, '藜麦', '陕西']
print('修改之后,物品信息:',BuyDic2['001'])
修改之后,物品信息: ['粮食', 250, '藜麦', '陕西']
print(BuyDic2)
{'001': ['粮食', 250, '藜麦', '陕西'], '002': ['零食', 90, '乐事薯片', '河北'], '003': ['蔬菜', 250, '油菜', '北京'], '004': ['水果', 500, '凤梨', '台湾']}
数据类型:布尔类型
weight=500
if weight==10:
print('判断条件是True')
else:
print('判断条件是False')
判断条件是False
数据类型:空值None
weight=None
if weight==None:
print('年龄是空值')
else:
print('年龄不是空值')
年龄是空值
条件判断案例
#今日气温
Temp=34
if Temp >=35 :
print('天气太热了不出去了')
else:
print('出去玩')
出去玩
'''边界条件:逻辑判断'''
#定义列表:病人姓名
Buylist=['米','面','油','茶']
if '菜' not in Buylist:
print('列表中没有这一项')
else:
print('列表中有这一项')
列表中没有这一项
'''多个条件判断'''
h=float(input('输入你的身高,按enter键获取对应择偶身高:'))
if h < 0 :
print('身高不能小于0')
elif h >= 0 and h < 1.4:
print('尚不再计算匹配范围')
elif h > 2 :
print('找不到合适的匹配')
else:
h1=h+0.13
print('对应择偶身高',h1,'米')
输入你的身高,按enter键获取对应择偶身高:1.6
对应择偶身高 1.73 米
如何使用循环批量处理数据?
案例1:股票加仓
#重复性工作
print('第一次加仓')
print('第二次加仓')
print('第三次加仓')
第一次加仓
第二次加仓
第三次加仓
#容器:1天中吃第几次饭
List1=['第一次加仓','第二次加仓','第三次加仓']
#循环
for i in List1:
print(i)
第一次加仓
第二次加仓
第三次加仓
案例2:清洗股票数据
'''定义字典:6家公司的股票key是公司名称,value是股票代码'''
Dict1={'贵州茅台':'gzmt','五粮液':'wly','今世缘':'jsy',
'酒鬼酒':'jgj','ST皇台':'stht','沱牌舍得':'tpsd'}
#将股票代码全部大写
for key,value in Dict1.items():
#对股票代码转换成大写
newValue=value.upper()
#将转换后新的股票代码赋值给对应的key
Dict1[key]=newValue
print(Dict1)
{'贵州茅台': 'GZMT', '五粮液': 'WLY', '今世缘': 'JSY', '酒鬼酒': 'JGJ', 'ST皇台': 'STHT', '沱牌舍得': 'TPSD'}
continue用于跳出当前循环
for key,value in Dict1.items():
if(key=='今世缘'):
continue
print('当前公司:',key,',当前股票代码:',value)
当前公司: 贵州茅台 ,当前股票代码: GZMT
当前公司: 五粮液 ,当前股票代码: WLY
当前公司: 酒鬼酒 ,当前股票代码: JGJ
当前公司: ST皇台 ,当前股票代码: STHT
当前公司: 沱牌舍得 ,当前股票代码: TPSD
break用于退出整个循环
#查找酒鬼酒公司的股票代码
for key,value in Dict1.items():
if(key == '酒鬼酒'):
break
print('当前公司:',key,',当前股票代码:',value)
当前公司: 贵州茅台 ,当前股票代码: GZMT
当前公司: 五粮液 ,当前股票代码: WLY
当前公司: 今世缘 ,当前股票代码: JSY
函数使用案例
如何自定义函数?
'''定义函数函数功能:两个数相乘输入:x,y是要相乘的两个数输出:两个数相乘的积'''
def mul(x,y):
z=x*y
return z
如何使用函数?
#使用函数
a=1
b=2
c=mul(a,b)
print('1和2相乘等于',c)
1和2相乘等于 2
函数参数:不可变数据类型
字符串、数字,元祖这3种是不可变数据类型,其他的都是可变数据类型
#定义函:改变数据的值
def changeInt(x):
x=x+1
'''使用函数参数是不可变数据类型(字符串,元祖,数值):传递的只是该数据类型的值(相当于复制一份)'''
a=1
print('调用函数之前a的值=',a)
changeInt(a)
print('调用函数之后a的值=',a)
调用函数之前a的值= 1
调用函数之后a的值= 1
函数参数:可变数据类型
#定义函:改变列表的值
def changeList(inputList):
inputList.append('变形金刚')
'''使用函数参数是可变数据类型:传递的是该变量的引用地址'''
nameList=[1,2,3,4,5]
print('调用函数之前的值:',nameList)
changeList(nameList)
print('调用函数之后的值:',nameList)
调用函数之前的值: [1, 2, 3, 4, 5]
调用函数之后的值: [1, 2, 3, 4, 5, '变形金刚']
变量作用域
Python的作用域一共有2种:全局作用域,局部作用域。
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
#变量作用域
def test():
score=55
#在函数外面,访问函数内的局部变量score
print(score)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in
3 score=55
4 #在函数外面,访问函数内的局部变量score
----> 5 print(score)
NameError: name 'score' 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\\Administrator\\.ipython']
第三方模块使用
#引入模块
import pandas as pd
#文件路径(在本地运行时替换成你自己的实际数据路径)
fileNameStr=r'C:\Users\Administrator\Desktop\分布16Q4-18Q1.xlsx'
#读取excel文件里的数据
xl = pd.ExcelFile(fileNameStr)
#获取指定工作表(Sheet)名称的数据
grade = xl.parse('评级')
print(grade)
Unnamed: 0 16Q4 17Q1 17Q4 18Q1
0 A 0.125666 0.156511 0.211850 0.248791
1 B 0.312148 0.296554 0.310504 0.301201
2 C 0.340016 0.348673 0.273241 0.266722
3 D 0.151693 0.122818 0.150341 0.141981
4 E 0.050844 0.052108 0.039788 0.033819
5 F 0.015041 0.017891 0.010291 0.006451
6 G 0.004593 0.005445 0.003984 0.001036
介绍Python的collections包,了解常用的数据结构
队列(queue)
队列就像你去银行办业务排队,新来的人在队列尾部加入,叫做入队。办完业务的人从队列首部离开队列,叫做出队
#导入collections包
from collections import deque
#定义队列:银行排队的编号
bank_queue=deque([1,2,3,4,5])
#入队:在队列尾部插入元素
bank_queue.append(6)
print(bank_queue)
deque([1, 2, 3, 4, 5, 6])
#出队:在队列头部删除元素
bank_queue.popleft()
1
print(bank_queue)
deque([2, 3, 4, 5, 6])
栈(stack)
栈这种数据结构有点像在WORD中编辑文章时的写入和撤销。你后写的内容,就是入栈顶,撤销时也是就是把你最新写的处在栈顶的内容删掉
#定义栈:譬如在word中你按顺序写了几个词组,它们的顺序如下
stack=deque(['我的','祖国','名字是'])
print(stack)
deque(['我的', '祖国', '名字是'])
#入栈:这时你又新写了一个词,它就在栈顶
stack.append('中国')
print(stack)
deque(['我的', '祖国', '名字是', '中国'])
#出栈:将你刚刚写的词处在栈顶的元素移除
stack.pop()
'中国'
print(stack)
deque(['我的', '祖国', '名字是'])
排序字典OrderedDict
from collections import OrderedDict
#定义有序字典
wine=OrderedDict({'贵州茅台':'gzmt','五粮液':'wly','今世缘':'jsy',
'酒鬼酒':'jgj','沱牌舍得':'tpsd','ST皇台':'stht'})
wine
OrderedDict([('贵州茅台', 'gzmt'),
('五粮液', 'wly'),
('今世缘', 'jsy'),
('酒鬼酒', 'jgj'),
('沱牌舍得', 'tpsd'),
('ST皇台', 'stht')])
计数器Counter
from collections import Counter
a = Counter('The brave and the wise can both pity and excuse,when cowards and fools shew no mercy')
a['e']
9
#出现次数最多的3个词
a.most_common(2)
[(' ', 15), ('e', 9)]