一、 环境搭配
下载anaconda和pycharm即可,把IDE卸载,将anaconda文件中的script 和含有python.exe 均添加到环境配置中。
在pycharm中新建的project中,选择anaconda下的python解释器,anaconda含有的第三方模块均可使用。
存在的问题/疑问
1. 每次创建项目都要在settings中选择anaconda的解释器吗,有没有一劳永逸的方法
2. 比较原理性的东西,IDE中的python和anaconda有什么不一样,路径不一样意味着什么
3. pycharm选择anaconda中的python解释器后好像有一个东西叫创建虚拟环境,对于这个的概念不是很清楚。
pycharm首次运行
import xlwings as xw
app=xw.App(visible=True, add_book=False)
for i in range(1,21):
workbook=app.books.add()
workbook.save(f'd:\\python pycharm\\联系\\example\\01\\员工信息表\\分公司{i}.xlsx')
workbook.close()
app.quit()
路径中的文件夹需要提前建立
对于语法的解释,目前处于不了解不清楚的状态

成功批量建立excel
二、python基本语法的使用 查漏
1. \n 转义符表示换行,取消\n 的功能
print(r'd:\number.xlsx')
print('d:\\number.xlsx')
2. 数据类型的转化
pi='3.14'
pi1=float(pi)
print(type(pi1)
print(int(0.618))
3. 列表
for i in class1:
print(i) #遍历
a=len(class1)
print(a) #统计长度
#提取单个元素
a=class[1]
print(a)
#提取多个-切片
a=class[1:4]
print(a) #左闭右开,可以取到第二个元素,取不到第五个元素
a=class[1:]#第二个之后的所有
b=class[-3:]#提取倒数第三个及之后的所有
c=class[:-2]#提取倒数第2个之前的所有,但是倒数第二个取不到
#添加元素
score=[]#创建空列表
score.append(80)#添加一个元素
#列表转化字符串
'连接符(如,/;)'.join(列表名)
class1=[1,2,3]
a=','.join(class1)
print(a)
#字符串转化成列表
字符串.split('分隔符')
a='hi world'
print(a.split(''))
输出结果:
['hi','world']
4. 字典:键:值
每一个元素是两部分,相互对应如:class1{‘丁一’:85,‘王二’:95}
#提取某个元素的值
字典名['键名']
score=class1['王二']
print(score)
#输出每一个人的姓名和分数
for i in class1:
print(i+':'+str(class1[i]))#值是数字型,需要str()转化为字符串
#another path for all
a=class1.items()
print(a)#返回的是元组数组
结果:
dict_items([('丁一':85),('王二':95)])#输出的结果[]是一个列表,()定义元组
5. 元组中的数据不可修改,集合中的数据没有重复
a=('丁一','王二')
#a 为一个元组,提取与列表同
a=['a','b','a']
print(set(a))
运行结果:{'a','b'}
#集合中没有重复的数据
6. 运算符
运算符包括:算术、赋值、比较、逻辑
算术运算符
‘+’与‘’除了计算也可以用于字符串的运算
‘**’幂运算
‘//’整除运算
‘%’取模运算,两个正整数相除的余数
赋值运算
+=,执行加法运算并赋值左边相应的存在
-=、=、//=、%=、/=
price=100
price+=10
print(price)
运行结果:
110
比较运算符
==是判断左右是否相等
!=是判断左右是否不等
7. 编码规范
选中整体Tab 增加缩进 shift+Tab减少缩进
注释可以分为单行与多行
单行用#,可上可后
多行用三个单引号或三个双引号即:‘’'或者"“”
- 控制语句:条件语句与循环语句
if语句
条件是否成立执行不同的语句
for语句
完成指定次数的循环操作
for i in 序列:
重复的代码
# 序列可以使列表,可以使字符串,可以使字典。字符串则i代表字符,序列式字典,i代表键名
for i in rang(3)
print('第',i+1,'次')
输出结果:
第1次
第2次
第3次
while语句
指定条件成立时重复
永久循环
while True:
print('hahahaha')
pycharm中Ctrl+F2 取消
8. 函数
内置函数
#len()与range()
title=['标题1','标题2','标题3']
for i in range(len(title)):
print(str(i+1)+'.'+title[i])
运行结果:
1.标题1
2.标题2
3.标题3
#replace()替换
字符串.replace(查找内容,替换内容)
a='<em>面朝大海,春暖花开</em>'
a=a.replace('<em>','')
a=a.replace('</em>','')
print(a)
运行结果:
面朝大海,春暖花开
#strip(删除空白字符)
字符串.strip()
#split()调用字符串得到年月日信息
today='2020-04-12'
a=today.split('-')
print(a)
结果运行:
['2020','04','12']
#调用
a=today.split('-')[0]
#获取年信息,得到第一个字符串
自定义函数
def 函数名(参数):
代码
# 函数内使用的变量与函数外的代码无关
x=1
def y(x):
x+=1
print(x)
y(3)
print(x)
输出结果:
4
1
#函数内的x为局部变量
#定义函数仅将函数的执行结果使用print输出,无法继续使用该函数,需要使用return语句定义函数的返回值。
def y(x):
return x+1
a=y(1)
print(a)
# 一二行代码定义函数y,其功能不是输出x+1而是将运算结果作为函数的返回值返回给调用函数的代码a
# 第三行代码,首先调用y函数,以1为参数,y函数内部使用1计算得到结果2,将结果2返回给第三行代码,同时赋值给a
# 运行结果:
2
三 python模块:os、xlwings、numpy、pandas、matplotlib
1. 模块导入
# import
import math
a=math.sqrt(16)
print(a)
4.0
# from
from math import sqrt
a=sqrt(16)
#对引入的模块简写
from math import factorial as fc
import xlwings as xw
# from 引入加通配符
from math impor *
a=sqrt(16)
2. os:处理文件和文件夹
#获取代码文件路径
import os
path=os.getcwd()
print(path) # 在文件中建立py文件,运行py代码表示py保存的此文件夹中
#列出指定路径下的文件夹包含的文件和子文件
import as
path='d:\\list'
file_list=os.listdir(path)#list文件夹下的所有文件和子文件夹的名称
# 分离文件主名和拓展名
import as
path='example.xlsx'
separate=os.path.splitext(path)
print(separate)
结果:
('example','.xlsx')#splitext()返回包含两个元素的元组
#重命名文件和文件夹或者修改路径
import os
old name='d:\\list\\test.xlsx'
newname='d:\\mask\\example.xlsx'
os.rename(oldname,newname)
3. xlwings批量处理excel文件
此模块经常与os、pandas、Numpy、Matplotlib结合使用
import xlwings as xw
app=xw.App(visible=True,add_book=False)
workbook=app.books.add()
# 第二行代码,启动Excel程序窗口但是不新建工作簿,App()的参数中visible用于设置程序窗口可见性,如果True表示现实
# add_book设置启动窗口后是否建立工作簿,F表示不建立。
# 第三行,是建立工作簿,add()为books对象的函数
# 对上面的工作簿进行保存
workbook.save('d:\\example.xlsx')
workbook.close()
app.quit() #退出Excel程序
# 第一行代码为保存绝对路径,相对于当前运行代码文件的路径为相对路径,如workbook.save('example.xlsx')在代码文件下创建工作簿
import xlwings as xw
app=xw.App(visible=True, add_book=False)
for i in range(1,21):
workbook=app.books.add() #创建工作簿
workbook.save(f'd:\\python pycharm\\联系\\example\\01\\员工信息表\\分公司{i}.xlsx')
workbook.close()
app.quit()
# 打开工作簿
import xlwings as xw
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'd:\example.xlsx')
# 操控工作表和单元格
worksheet=workbook.sheets['sheet1'] #选中sheet1
worksheet.range('A1').value='编号' # 在单元格A1中输入内容 编号
worksheet=workbook.sheets.add('产品统计表') #新增一个名为产品统计表的工作表
练习
import xlwings as xw
app=xw.App(visible=False)
workbook=app.books.add()
worksheet=workbook.sheets.add('练习')
worksheet.range('A2').value='编号'
workbook.save(r'd:\python pycharm\pythonProject\练习\example\练习.xlsx')
workbook.close()
app.quit()


4. Numpy 数组计算
#import numpy as np
a=[1,2,3,4]
b=np.array([1,2,3,4])# 创建数组 array就是数组
print(a)
print(b)
输出结果:
[1,2,3,4]
[1 2 3 4]
使用数组可以更好的进行运算,储存更多的元素
import numpy as np
a=[1,2,3]
b=np.array([1,2,3])
c=a*2
d=b*2
print(c)
print(d)
运行结果
[1,2,3,1,2,3]
[2,4,6]
#储存结果
import numpy as np
e=[[1,2],[3,4],[5,6]]
f=np.array([[1,2],[3,4],[5,6]])
print(e)
print(f)
结果:
[[1,2],[3,4],[5,6]]
[[1,2]
[3,4]
[5,6]] #创建二维数组
其他创建数组的方法
import numpy as np
x=np.arange(5)
y=np.arange(5,10)
z=np.arrange(5,10,2) #均遵循,左闭右开的原则,起点,终点,步长
import numpy as np
c=np.random.randn(3)
# 服从正态分布
#二维数组
import numpy as np
d=np.arange(12),reshape(3,4)
print(d)
结果:
([0 1 2 3]
[4 5 6 7]
[8 9 1011]) #三行四列
import numpy as np
e=np.random.randint(0,10,(4,4))
print(e)
结果:
([4 1 6 3]
[3 0 4 8]
[7 8 1 8]
[4 6 3 6])
5. pandas数据分析清洗
pandas含有series和dataframe两种数据结果,series类似于numpy的一维数组。
本文介绍了使用Python环境搭配Anaconda和PyCharm,重点讲解了Python基本语法,包括数据类型、运算符、编码规范和函数,并详细阐述了如何利用os、xlwings、numpy和pandas等模块处理Excel文件,特别是xlwings在批量处理Excel方面的应用。
1765





