有些杂乱,但是是数据分析方面python的基础入门。边学习边总结做笔记,欢迎指正~争取尽快出numpy和pandas的笔记供大家参考!
前言
IDE:集成开发环境 Anaconda
Idle:纯python下的基本IDE,交互式编译器>>>
脚本试编译器:.py文件 可以用Idle运行
CMD:直接运行.py / 在CMD中直接写代码
jupyternotebook:运行 ctrl+回车;插入 alt+回车; 新增 shift+回车;导出文件:download as
一、变量和数据类型
1. python标准数据类型:int float string字符串 list列表 tuple元组 dict字典
(1)string字符串有序不可变的列表
(2)list列表[]有序可变,列表中可以使字符、数字、列表和字典
(3)tuple元组()有序不可变
(4)dict字典{x:xx}无序可变
2. var = 10.5 int(var)=10 浮点型变整型不会四舍五入
3. 运算符:a/b除法 a%b取模,返回除法后的余数 a//b取整,返回除法后的整数 a**b幂
比较运算符:=是赋值 ==是比较判断 !=不等于
逻辑运算符:and且 or或 结果是True或False bool()函数只有在0、None、[]、''为False,其余都是True
二、序列
1. 序列:序列的索引指向值,改变值就是改变索引的指向--可以通用与所有序列
(1)序列的连接:+ 序列的重复:*
(2)下标索引 :lst[0] 第一个值 lst[-1]最后一个值
(3)切片:lst[0:10]左闭右开 lst[:10]从头开始 lst[10:]到尾结束 lst[::]从头到尾 步长:lst[0:10:2]
(4)序列的内置函数 max min sum len lst.index(0)查找序列中0的索引位置 lst.count(6)查找序列中6存在几个
2.列表list
(1)添加:name = ['小米','华为']
print(name+['苹果']) #生成新列表
add =[ '苹果','梨']
name.append(add)#改变原有列表本身,把添加的值整体加入到列表中 ['小米','华为',[ '苹果','梨']]
name.extend(add)#改变原有列表本身,把添加的值直接加入到列表中 ['小米','华为','苹果','梨']
(2)删除:lst.remove(5)#改变原有列表本身,删除括号中值
del lst[2:4] 删除相应索引
lst.clear()清除所有值
(3)插入:lst.insert(0,'a') #.insert(位置索引,插入值)
(4)复制:x = list(range(10))
# m = x #m指向与x指向一样,所以x变m也变
m = x.copy() #x复制,m指向和x值相同但是是新的索引,所以x变m不变
(5)排序:.sort()方法 lst.sort() #reserve倒序,默认正序False
lst3 = sorted(lst1) #sorted()函数:排序并复制函数,得到新的列表
(6)元组:是不可变的列表 切片、索引、步长和list一样,但是不能del删除某个,可以直接删除整体,不能做元素的添加排序等
3.文本str:不可变序列
(1)转义字符:\'输出' 、\n提行
(2)序列的通用功能都可以,字符串常用功能
st.replace(old,new,count-更换几个)
st.split(',') #生成新的列表****
m.join(lst)#连接 字符串join,对象为列表,把lst中每个值用m连接
st.startswith('a'),st.endswith('a')判断开头和结尾,st.upper()#全部大写,st.lower()#全部小写
st.swapcase()#大小写互换,st.capitalize()#首字母大写,st.isnumeric()是否全是数字,st.isalpha()#是否全是字母,#删除字符末尾的空格st.rstrip() ,#删除开投空格st.lstrip(),st.strip())#删除开头和结尾的空格,st.replace(' ',''))#删除所有空格
(3)格式化字符:
#%i整数 %s字符串 %f浮点型
print('小米成绩为:%i,小红成绩%i'%(70,90)) #多个替换变量后面要用元组方式
print('%.2f'%m)#.2f会四舍五入、print('%.0f'%m)#%i不会四舍五入、
(4)format格式化:
print('今天天气怎么样{}'.format(',非常好')) #{}里面是要替换的变量/值
print('我得工作是{work}'.format(work='ahkd'))
print('{}{}{}'.format('a','a','v'),'\n', '{0}{1}{0}'.format('as','ad','dda'))#{}是占位符
print('{:.1f}'.format(4.1723))#一位小数
print('{:%}'.format(4.2))#百分号
三、字典
1.字典key键,value值:直接用key做索引,键值对需要成对出现,如果键出现多次,最后一次会被记住;key必须是不可变对象(不能以列表作为key);dic1['a'] =100如果dic1中无key=a则为添加,有则为更改a值;dic1.clear() #清空所有;del dic1 #删除字典
2.申明字典
(1)dic = dict(m=10,n='aa',h=[1,2,3]) #dict()函数方法一
(2)lst3 = (('a',1),('b',2)) 或 lst3 = [('a',1),('b',2)] 或 [['a',1],['b',2]]
print(dict(lst3)) #dict()函数方法二
(3)内置函数:
dict.update()方法:更新/合并字典,把第二个字典合并到第一个字典,改变第一个字典,不会改变第二个字典;
print(len(dic1))#求字典长度
#列表字典格式,每个字典是一条数据,数据之间用列表连在一起
print('a'in dic1) #可以用key判断是否包含,不能用value判断是否包含
(4)字典的元素访问及遍历
直接用key作为访问,直接用key作为访问
输出所有key:poi.keys(),输出所有value:poi.values(),输出所有的元素key:value:poi.items()-#生成的是复合序列:第一个key,第二个是value
四、条件和判断
1. if 、 if else、if elif else、or and 多条件判断、for遍历
2.循环控制语句:break continue
五、函数
eval()执行表达式eval(1+2):3
exec("python语句")执行python语句,以字符串形式
global 把局部变量变为全局变量
lambda作为匿名函数是不需要函数名的,主体是个表达式,而不是代码块:f = lambda a,b,c:a+b+c
(1)位置参数,即必选参数 def power(x):
(2)默认参数,调用时可变 def power(x,y=2):
(3)可变参数,传入参数个数可变 为元组,def power(*args):,
(4)关键字参数,传入参数为dict def power(**kw):
六、模块与包
1.自己创建的.py放进现有路径中:
#方法一:查看现有包的路径:import pandas print(pandas.__file__)
#方法二:直接添加路径 import sys sys.path.append(r'/Users/xy/anaconda3/lib/python3.6/site-packages')
2.自己新建的py文件就是模块,模块里面的函数就是模块的方法
3.#python标准模块--random随机数:import random
x = random.random() #生成0-1的随机数 m = random.randint(0,10) #生成a-b区间的整数
lst = list(range(20)) s = random.choice(lst) #随机取样,按照索引选择的所以里面的值必须是序列
sli = random.sample(lst,5)#随机取指定的片段 random.shuffle(lst)#元素随机打乱其本身
4.时间模块time
time.sleep(0.1) #休息函数,按秒计算
time.ctime()#直接生成当地的时间,是个字符串
time.localtime()#当前时区的结构时间是个视图 wday0-6表示周日-周六,yday表示1-366表示一年的第几天
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())# a为字符串格式 b为时间戳一般用localtime
八、文件的读写
1.文件路径的三种表达:
path1 = '\\Users\\xy\\anaconda3\\lib\\python3.6\\site-packages\\tmodel.txt' # 单个反斜杠:/
path2 = '/Users/xy/anaconda3/lib/python3.6/site-packages/tmodel.txt' # 两个斜杠:\\(第一个\是转义符)
path3 = r'\Users\xy/anaconda3\lib\python3.6\site-packages\tmodel.txt' # r用于防止字符转义
2.读取文件r:
open(‘路径’,‘模式’,encoding=‘编码’)有中文设置成utf-8,是ASIN的用gbk,是uft-8的用utf8
print(f.read())
模式:r 读取文件 默认; w写入 rw读取➕写人; a追加
读取方法:.read()读取后光标会留在读取末尾
f.seek(0)#把光标重新移动到某位置
f.close()#关闭文件链接,无法读取了
os.chdir('/:/:/')#改变路径
print(f.read(10))#读取前十个
print(f.readline())#读取一行字符
print(f.readline(3))#读取一行中前几个字符
print(f.readlines())#读取整个文件,一般用来遍历
3.写入方法:.write()为了有提行可以用for循环遍历