Math库是不需要单独安装的,是python自带的标准库,官方文档的介绍是:math ---数学函数,该模块提供了对C标准定义的数学函数的访问。这些函数不适用于复数;如果你需要计算复数,请使用cmath模块中的同名函数。将支持计算复数的函数区分开的目的,来自于大多数开发者并不愿意像数学家一样需要学习复数的概念。得到一个异常而不是一个复数结果使得开发者能够更早地监测到传递给这些函数的参数中包含复数,进而调查其产生的原因。该模块提供了很多函数。除非另有明确说明,否则所有返回值均为浮点数。常用的函数有:
import math #引入math库并不需要pip安装
print(math.fabs(-6.0)) #求绝对值
#6.0
print(math.pow(2,3)) #返回2的3次方
#8.0
print(math.ceil(4.8)) #向上取整
#5
print(math.floor(4.8)) #向下取整
#4
print(math.sqrt(9)) #求平方根
#3.0
print(math.fsum([1,2,3])) #求一个序列的和
#6.0
print(math.factorial(3)) #求阶乘
#6
math库不能解决小数位数不确定的情况,它仅仅相当于在python基本的计算方式上,扩展了一些计算。当然python本身也可以进行一些简单的运算:
print(2+3)
#5
print(3-2)
#1
print(2*3)
#6
print(3/2)
#1.5
print(2**3)
#8
print(2.0+3.0)
#5.0
print(2+3.0)
#5.0
print(abs(-6.0))
#6.0
print(3+5j)
#(3+5j)
print(0.2+0.1)
#0.30000000000000004
cainiaofei
2022-09-30
在python中,很多时候需要进行真假判断,也就是会经常用到布尔型变量,在python中,表示真假的不一定要用true和false,也可以通过数字来表示,其中0表示假,即0与false同义,其他的非0 数字表示真,即与true同义,那么,if 2就表示如果是真的,则执行以下操作。
If 结构主要是让程序做出选择,并根据不同的情况执行不同的操作,包括以下用法:
(1)只有 if 进行判断desserts = ['ice cream', 'chocolate', 'apple crisp', 'cookies']
favorite_dessert = 'apple crisp'
hate_dessert = 'chocolate'
for dessert in desserts:
if dessert == favorite_dessert:
print("%s is my favorite dessert!" % dessert.title())
(2)if - else 进行判断for dessert in desserts:
# 比较运算符(== 相等 、!= 不等、> 大于、>= 大于等于、< 小于、<=小于等于)if dessert == favorite_dessert:
print("%s is my favorite dessert!" % dessert.title())
# elif => else + if 当前值不符合上面 if 的判断条件,执行 elif 的判断条件
else:
print("I like %s." % dessert)
(3) if - elif - else 进行判断,其中 elif 不是唯一的,可以根据需要添加,实现更细粒度的判断
# 对不同的 dessert 输出不完全相同的结果for dessert in desserts:
# 比较运算符(== 相等 、!= 不等、> 大于、>= 大于等于、< 小于、<=小于等于)if dessert == favorite_dessert:
print("%s is my favorite dessert!" % dessert.title())
# elif => else + if 当前值不符合上面 if 的判断条件,执行 elif 的判断条件
elif dessert == hate_dessert:
print("I hate %s." % dessert)
# 当前值不符合上面所有的判断条件,就执行 else 里的语句
# 当然如果这个else 不需要的话,可以不写
else:
print("I like %s." % dessert)
值得注意的一点是:当整个 if 判断满足某一个判断条件时,就不会再继续判断该判断条件之后的判断
(4)特殊的判断条件if 0: # 其他数字都返回 True
print("True.")
else:
print("False.") # 结果是这个
if '': #其他的字符串,包括空格都返回 True
print("True.")
else:
print("False.") # 结果是这个
if None: # None 是 Python 中特殊的对象
print("True.")
else:
print("False.") # 结果是这个
if 1:
print("True.") # 结果是这个
else:
print("False.")
if -1:
print("True.") #结果是这个
else:
print("False.")
cainiaofei
2022-09-30
Python的GDAL摸块可以实现MODIS遥感影像数据的读取和计算, MODIS和MOD03数据是HDF4格式文件,需要用import pyhdf.SD as hdf和 from pyhdf.SD import SD
下载pyhdf:下载地址添加链接描述https://www.lfd.uci.edu/~gohlke/pythonlibs/,选择自己适配的版本,比如python是3.8.5,32位,那就下载pyhdf-0.10.3-cp38-cp38-win32.whl。
安装
pyhdf:使用anaconda3
时,
直接打开Anaconda Prompt(software)
打开后将路径转到刚刚下载的p
yhdf
路径下,输入
python -m pip install pyhdf-0.10.3-cp38-cp38-win32.whl
进行安装
注意:可能需要进行p
ip
升级,路径一定不要搞错了
cainiaofei
2022-09-30
Python的print()函数是常用的函数,输出会自动换行是因为默认将参数end设置成了‘\n’,如果想要不换行显示,只要根据需要,把 参数end 设置为‘’(空字符)或‘ ’(空格符)即可。
(1)默认换行的时候
for letter in letters.keys():
for i in range(letters[letter]):
print(letter,end='\n')
(2)修改为不换行的时候
for letter in letters.keys():
for i in range(letters[letter]):
print(letter,end='')
for letter in letters.keys():
for i in range(letters[letter]):
print(letter,end=' ')
cainiaofei
2022-09-30
Python安装后是没有快捷方式的,Python自带的有idle,可以使用idle来编辑运行Python文件。如果在cmd中输入Python命令无法找到的话,是因为Python安装时没有配置环境变量。
Python配置环境变量的方法:
方法一:使用cmd命令添加path环境变量
在cmd下输入: path=%path%;D:\Python3 接着按"Enter"回车键。
其中: D:\Python3 是Python的安装目录。
方法二:在环境变量中添加Python目录
(1) 右键点击"计算机",然后点击"属性"
(2) 然后点击"高级系统设置"
(3) 选择"系统变量"窗口下面的"Path",双击即可!
(4) 然后在"Path"行,添加python安装路径即可。
(5) 最后设置成功以后,在cmd命令行,输入命令"python",就可以出现相关显示。
cainiaofei
2022-09-30
for i in range(1,10):
if i<=5:
print(i*"*")
else:
print((10-i)*"*")
cainiaofei
2022-09-30
系数为a0,a1,a2,a3,⋯an的n次多项式是如下的一个函数:
p(x)=a0+a1x+a2x2+a3x3,⋯an∗xn
函数可以针对不同的x求值,例如,
如果p(x)=1+2x+x2,则p(2)=1+2∗2+22=9。
如果p(x)=1+x2+x4,则 p(2) = 21 ,p(3) = 91 。
编写一个函数poly(),带两个输入参数:一个多项式p(x)的系数a0,a1,a2,a3,⋯an的列表和一个数值x,要求函数返回p(x),即多项式对x的求值结果。
函数接口定义:poly(lst, x)
cainiaofei
2022-09-30
# 毫秒延时
delay_mark = time.time()
while True:
offset = time.time() - delay_mark
if offset > 0.0011:
break
cainiaofei
2022-09-30
a=[]
for i in range(10):
a.extend([eval(input(""))])
print(a)
sum(a)
average=sum(a)/len(a)
print(sum(a),average)
cainiaofei
2022-09-30
2)学习 Python 包并实现基本的爬虫过程,Python中爬虫相关的包很多:urllib、requests、bs4、scrapy、pyspider 等,requests 负责连接网站,返回网页,Xpath 用于解析网页,便于抽取数据。如果用过 BeautifulSoup,会发现 Xpath 要省事不少。
3)了解非结构化数据的存储,爬回来的数据可以直接用文档形式存在本地,也可以存入数据库中。开始数据量不大的时候,可以直接通过 Python 的语法或 pandas 的方法将数据存为csv这样的文件。当然爬回来的数据可能会有缺失、错误等等,还需要对数据进行清洗,可以学习 pandas 包的基本用法来做数据的预处理,得到更干净的数据。
4)学习 scrapy, scrapy 是一个功能非常强大的爬虫框架,它不仅能便捷地构建request,还有强大的 selector 能够方便地解析 response,然而它最让人惊喜的还是它超高的性能,让你可以将爬虫工程化、模块化。学会 scrapy,你可以自己去搭建一些爬虫框架,你就基本具备爬虫工程师的思维了。
5)学习数据库基础,应对大规模数据存储爬回来的数据量小的时候,你可以用文档的形式来存储,一旦数据量大了,这就有点行不通了。所以掌握一种数据库是必须的,目前比较主流的 是MongoDB 。MongoDB 可以方便去存储一些非结构化的数据。
6)掌握各种技巧,应对特殊网站的反爬措施当然,爬虫过程中也会经历一些绝望啊,比如被网站封IP、比如各种奇怪的验证码、userAgent访问限制、各种动态加载等等。遇到这些反爬虫的手段,当然还需要一些高级的技巧来应对,常规的比如访问频率控制、使用代理IP池、抓包、验证码的OCR处理等等。
7)分布式爬虫,实现大规模并发采集爬取基本数据已经不是问题了,你的瓶颈会集中到爬取海量数据的效率。原理是利用多线程的原理让多个爬虫同时工作,需要你掌握Scrapy + MongoDB + Redis 这三种工具。Scrapy 前面我们说过了,用于做基本的页面爬取,MongoDB 用于存储爬取的数据,Redis 则用来存储要爬取的网页队列,也就是任务队列。
cainiaofei
2022-09-30
c = ['J','n','T','m','a']
n = ['j','d','M','J','y']
c1 = [i.upper() for i in c]
n1 = [i.upper() for i in n]
for i in c1:
for j in n1:
t = i>j
print (t)
cainiaofei
2022-09-30
XMind文件的格式不支持上传,有需要的伙伴可以加我微信,我单发给你;
微信: jerry00087
请注明来意!!!
请注明来意!!!
请注明来意!!!
walaka991
2022-09-29
手动导入数据库,效率相对来说太慢,因此需要使用技巧,实现批量的由数据Excel表格中进行批量导入数据库。
具体操作流程:
在数据库中进行insert操作,仅仅需要将excel中的表格数据进行批量组装即可
1.待插入数据如下:

2.编辑单元格公式:

3.直接将公式进行下拉:

将单元格内的SQL语句进行粘贴到文本直接在nvicat终端执行即可。
cainiaofei
2022-09-29
Excel 中的函数嵌套最多可有 7 层。
对于 IF(),有些时候可以配合AND(),OR()来解决多层次问题。
不过有些时候用它们是解决不了的,这就需要我们考虑其它的方法。
最开始,我还以为只有 IF() 函数有 7 层嵌套问题,后来用想用 CHOOSE() 替换 IF() 时,才发现 CHOOSE() 也不能做大于 7 层的嵌套。
最后得出:Excel 中可能所有函数都不能超过7层嵌套。
先看看 IF() 函数的语法:
IF(logical_test,value_if_true,value_if_false),
这里要研究的是 logical_test ,它只能返回 TRUE 或 FALSE ,
而 Excel 中 TRUE 值为1, FALSE 值为0,不过要想体现出 1 和 0 ,
必须对 TRUE 和 FALSE 作加 0 或 乘 1 之类的操作(也就是说把类型转换一下)。
再一点,也是非常关键的一点是:
对于IF()结构来说,只要遇到 logical_test 为 TRUE(按照条件的顺序) ,则结束判断。
原理清楚了之后,就开始实际操作了:
首先,把条件按顺序陈列出来。
比如:A1<-50,-50<=A1<0,A1=0,0<A1<50,...
相当于:IF(A1<-50,...,IF((A1>=-50)*(A1<0),...,IF(A1=0,...,IF((A1>0)*(A1<50),...,...))))
说明:这里的 * 含义为 AND , 之所以用它,是因为将用到数组公式。
写到这里就差不多了,最后要做的就是:使条件和结果对应起来。
根据刚才说的,只要遇到条件为 TRUE(按照条件的顺序) ,则结束判断。
所以我们要找到第一个满足条件的位置。
先给个例子:
{=MIN(IF({TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}+0={1,1,1,1,1,1,1,1,1},{1,2,3,4,5,6,7,8,9}))}
这里的{TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}即为条件,共有九个;
{1,1,1,1,1,1,1,1,1}相当于一个全是 TRUE 的数组(这是为了方便,完全可以用TRUE替换);
{1,2,3,4,5,6,7,8,9}是满足条件对应的操作(这里只是简单的数值)。
MIN()目的是为了找到第一个满足条件的位置。
这里有个问题,就是如果条件都为 FALSE 时,则 MIN() 返回0,
这是因为没有与全不满足条件对应的项,
如果再加个判断条件,就显得冗余了,
简单的办法是对单元个设置 自定义数字格式 , 对 0 位置设置格式即可。
比如:...;...;"数据未找到"
上面的例子是一个标准的IF()结构,如果想让条件为 FALSE 时,执行相应的操作,只要把{1,1,1,1,1,1,1,1,1}中的1换成0即可
IF(条件,真,假)&IF(条件,真,假)&
IF(条件,真,假)&..............
其中假为空,即输入""(两个双引号)
=(I3/D3>=73.08)*7+(AND(I3/D3<73.08,I3/D3>=69.03))*6.5+(AND(I3/D3<69.03,I3/D3>=64.5))*6
或
一个单元格实现
)(数组形式输入)。
或
将七层之外的IF语句,放在另外的单元格内来处理,例:C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推,可以实现在数据库语言中CASE语句的功能。
当然,对于初学者会有一些困难。
这里给出一个解决IF函数嵌套超出范围的方法,可能比较容易使初学者看懂。其思路是:一个单元格做不了的事,分给两个或更多的单元格来做,文字内容是这样,函数内容也是这样。
例子:假如 A1=1,则 B1=A;A1=2,则 B1=B …… A1=26,则 B1=Z
解决方法如下:
根据情况,可以将 C、D、E 这些从事辅助运算的单元格放在其它任何地方,或
一个单元格也可以实现!
cainiaofei
2022-09-29


操作步骤
1 任意打开一个工作簿中,如“1组”,可以看到里面的工作表“1组成绩”。

2 在“数据”选项卡下单击“合并表格”按钮。

3 在弹出的列表中选择“合并成一个工作表”选项。

4 在弹出的“合并成一个工作表”对话框中,已默认选中了我们前面打中的工作簿“1组”中的工作表“1组成绩”,单击“添加文件”按钮,继续添加文件。

5 在弹出的“打开”对话框中,找到要合并的其它工作簿,选中工作簿“2组”“3组”,单击下方的“打开”按钮。

6 返回“合并成一个工作表”对话框,可见3个工作簿中的工作表已全部被选中。

7 将“从第几行开始合并”编辑框中默认的“1”改成“2”(第1行为标题行,不需重复合并),再单击“开始合并”(会员功能)。

8 工作簿合并完成后会生成一张新的工作簿“工作簿1”,里面有2张工作表“报告”和“总表”。“报告”显示的是合并的整体情况,切换到“总表”可以看到合并的具体情况,可见原先分布在3个不同工作簿中的3张工作表内容全都合并在了“总表”之中。


cainiaofei
2022-09-29

怎么做出好看的图表呢

1、删除表格灰线
视图 -去掉网格线前的勾,你会发现表格一下干净了好多。

2、增加行高
把标题行设置为40左右,普通行设置30左右,你会发现文字不再那么拥挤。

3、修改字体
微软雅黑字体总是第一选择

4、删除表格线
删除原来的表格黑线(快捷键Ctrl +shift + -),用灰5%的颜色隔行填充,表格马上会变个模样。

个人信息部分则用灰底白边线

5、字体大小和数字格式
标题和尾行字体加粗加大,看起来有层次感。
数字格式要设置成合适的数字格式(不要用默认的),如果有需要添加货币符号会更美观。

6、配色
搭配合适的色系是表格是最关键的一环。用什么颜色最好?看上去舒服即可。表格有层次感,数据又能清晰的展示出来。
本例模板中表格是青绿色系,而突出数据用了浅橙色。下图是四种颜色的RGB值。

非调色板中的颜色可以用设置RGB填充。

配色后的效果:

7、数据条的应用
条件格式中的数据是一个美化表格的神器

8、小图标使用
添加小图标后,会让表格看起来更高大上

9、切片器的使用
如果是一个表格,添加切片器,不但好看,筛选起来更方向。方法:先把表格插入 -表格转换为超级表,然后通过表格工具栏插入切片器。

cainiaofei
2022-09-29
(1) 专业指标多,EXCEL中很少有专业指标,当然EXCEL也有一些专业的统 计函数,例如STDEV标准差函数,而SPSS中比比皆是。
(2) 分析手段的专业化,统计模型很多,不过用过SPSS的人经常说,SPSS 的统计模型太多了,经常搞得我头晕。
(3) 画图都比EXCEL专业得多,图画出来本身就有了分析的味道,对于初学 者来说,往往是从画图方面体会到了SPSS的差异和强大。
下面用一个简单的例子,说明专业统计软件和EXCEL的区别:
(1)有下面的EXCEL数据

(2)我们要分析购书的书价的一些情况,例如年龄、性别、学历、推荐渠道等 对于购书书价的影响,想通过图示的方式。
(3)用SPSS把EXCEL数据读进来

(4)画图,用散点图

(5)选择简单的散点图

(6)SPSS的散点图可以实现五维图,就是5个维度,EXCEL最多只能三维图,就是那个气泡图。

(7)看看效果吧

让我们扳扳手指数一下,年龄、书价、性别、学历、推荐,是不是5个维度?这里画的就是著名的面板图,再加上一个设置标记。
cainiaofei
2022-09-29

先插入一张格式一样的空报表

插入数值调节控件

打开“开发工具”下拉选项,选择上图按钮,然后插入到表格中

右击控件,选择“设置控件格式”,弹出“设置控件格式选项卡”后,选择“控制”,最小值填“1”,最大值填“6”,步长填“1”,单元格链接选E2单元格,最后“确定”,这样控件格式就设置好了

设置联动日期。在D2单元格内输入公式:=DATE(2020,E2+1,),这样得出的日期就和1-6月资产负债表D2单元格内的日期一样了。

设置报表数据链接公式。在B5单元格输入上图公式:=IFS($D$2='1月'!$D$2,'1月'!B5,$D$2='2月'!$D$2,'2月'!B5,$D$2='3月'!$D$2,'3月'!B5,$D$2='4月'!$D$2,'4月'!B5,$D$2='5月'!$D$2,'5月'!B5,$D$2='6月'!$D$2,'6月'!B5),然后往右,往下拉公式(最右边两列方法一样,先输入公式,记得变化单元格,然后往右,往下拉公式)。

最后再调整一下控件的位置,这样随控件按钮变动的每月资产负债表就做成功了。只要点击控件的左箭头、右箭头标志,就可以变动到对应月份的资产负债表,再将1-6月资产负债表隐藏掉,只留一个最终的联动资产负债表

cainiaofei
2022-09-29