知识点:数据类型、数据拼接和数据转换+PDF文件提取合并转WORD

计算机的本质就是一个可以做复杂计算的机器,它的主要任务就是处理各种数据,并实现数据间的转换,而这些数据的类型,就是计算机的语言类型。

数据类型:

最常用的数据类型有三种——字符串(str)、整数(int)和浮点数(float) 。

(1)字符串

  • 字符串最明显的识别方式就是它的外面要有【引号】,这是字符串最明显的特征。引号就是字符串数据的身份,只要是被单/双/三引号包括起来的内容,不论这个内容是中文、英文还是数字都表示是字符串类型。

  • 字符串类型必须有引号的辅助。不然代码就会报错,引号就是外衣,没有外衣就是在裸奔(辣眼睛,不敢看)。
  • tips:感觉单双引号都差不多,当用三引号里面的文字没有换行时,和单双引号的作用一样。

(2)整数

  • 整数是代码界的独行侠,为什么呢?那是因为它不需要任何外衣,可以在代码界自由穿梭,就像一个独行侠。

  • 整数的自由度很高可以自由地在print()函数中输出。

  • 它很难跟其他的数据类型合群。如果在print()函数中整数混入中文、英文,电脑就会报错,就像两个仇人相遇,必然要怒目相向;如果是整数和整数在一起就会英雄惜英雄,可以直接进行数学运算,并通过print()函数打印出来。

(3)算术运算符及优先级

运算符:

运算优先级口诀:

顺序从前到后,有括号先计算,先乘除后加减,有平方先平方。

(3)浮点数

0.02和0.39都是十进制,这就涉及到一个十进制和二进制运算转换的问题,Python在进行浮点数运算时,会先把0.02和0.39转化成二进制数才能计算,这里就不再展开了。【注:二进制数由0和1表示,逢二进一】

大家只需要知道浮点型数字不能简单理解为小数运算,要先把十进制数字转换成二进制,相加后后再将二进制结果转成十进制小数,这样计算后的结果就会有偏差。

数据拼接

(1)+

都是字符串型,可。

text1 = '孙尚香'
text2 = '连续击杀8次'
text3 = '敌方'
text4 = '获得'
text5 = '超神称号'print(text1+text2+text3+text4+text5)

(2)type()函数

当变量中既有字符串型又有整型时,利用type()函数查看各个变量的类型是什么。type()仅起查询的作用。

数据类型的转换

三种数据类型对应三种数据类型转换函数str()、int()和float();

(1)str()函数

不论数据是中文、数字、标点,str()函数都能将数据转换成其字符串类型,也可以理解成在str()函数的帮助下,数据就会被加上引号变成字符串。

year = 2020
goal = '我要实现一个小目标:先赚它'
count = 1000
unit ='万。'
print(str(year)+goal+str(count)+unit)

运行如下:

str()就相当于给整数加个引号变成字符串类型。

(2)int()函数

字符串类型的数字能转换为整数,int()函数不能把中文、浮点数类型的字符串或者标点符号转换成整数,字符串内容是整数的数据,才能被int()强制转换,其他类型都会报错。

字符串内容是浮点数类型的不能使用int()函数转换,但浮点数是可以被int()函数转换的。

int()函数会直接取整,跟小数四舍五入的处理方法不同。

(3)float函数

要转换字符串就是小数形式的,比如'5.2'这种,想让它保持小数形式的5.2,就要借助——float()函数。

总结

综合实例:

num1 = '5.2'
num2 = 2
note = '派森老师说:5.2+2等于'要求输出结果:派森老师说:5.2+2等于7

分析,上面的变量中,其中num1是含有浮点数的字符串,num2是整数,note也是字符串。

我们知道5.2+2等于7.2,要把7.2这个浮点数取整,转换成7,才是我们要的结果。

但是现在5.2是在一个字符串变量num1当中,我先将字符串转换为浮点数,float(num1)就可以得到浮点数5.2,这样就可以直接跟num2相加。

float(num1)+num2等于7.2,接着我们要对相加后的结果取整,int(float(num1)+num2),就得到整数7。

计算转换的工作就完成了,这时一个是字符串数据note,一个是整数7,它们还不能直接拼接,还要把7转换成字符串数据str(int(float(num1)+num2))

代码:

num1 = '5.2'
num2 = 2
note = '派森老师说:5.2+2等于'
print(note+str(int(float(num1)+num2)))

彩蛋——PDF文件提取合并转WORD

PDF提取合并:


import PyPDF2 #可从PDF文档提取信息
import os #用于获取需要合并的PDF文件所在路径
path="e:/派森教学案例库/AI/" # 文件夹路径
#1.获取需要用于合并的文件名及路径
files=[]
for file in os.listdir(path):if file.endswith(".pdf"): #排除文件夹内的其它干扰文件,只获取PDF文件files.append(path+file)
#2.获取每个PDF文件里面需要的信息并添加到写入文件
pdf_writer=PyPDF2.PdfFileWriter()
for file in files:pdf_obj=open(file,'rb')# 以二进制读取,将保留PDF中的所有信息pdf_reader=PyPDF2.PdfFileReader(pdf_obj)for page_num in range(0,pdf_reader.numPages): #不要第一页的封面,从第2页开始获取page_obj=pdf_reader.getPage(page_num)pdf_writer.addPage(page_obj)
#3.写入并保存汇总PDF文件
pdf_output_file=open("e:/派森教学案例库/AI/new.pdf",'wb') #以二进制写入,将保留源PDF中的所有信息
pdf_writer.write(pdf_output_file)
pdf_output_file.close()

提取PDF页面:

from PyPDF2 import PdfFileWriter, PdfFileReaderstart_page = 15
# 开始页
end_page = 20
# 截止页
output = PdfFileWriter()
pdf_file = PdfFileReader(open("e:\\派森教学案例库\\AI\\ai2.pdf", "rb"))
pdf_pages_len = pdf_file.getNumPages()# 保存input.pdf中的1-5页到output.pdf
for i in range(start_page, end_page):output.addPage(pdf_file.getPage(i))outputStream = open("e:\派森教学案例库\AI\output2.pdf", "wb")
output.write(outputStream)

PDF转word:

#!/usr/bin/python
# -*- coding: utf-8 -*-import sys
import importlib
importlib.reload(sys)
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import *
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed'''''
解析pdf文件,获取文件中包含的各种对象
'''# 解析pdf文件函数
def parse(pdf_path):fp = open(pdf_path, 'rb')  # 以二进制读模式打开# 用文件对象来创建一个pdf文档分析器parser = PDFParser(fp)# 创建一个PDF文档doc = PDFDocument()# 连接分析器 与文档对象parser.set_document(doc)doc.set_parser(parser)# 提供初始化密码# 如果没有密码 就创建一个空的字符串doc.initialize()# 检测文档是否提供txt转换,不提供就忽略if not doc.is_extractable:raise PDFTextExtractionNotAllowedelse:# 创建PDf 资源管理器 来管理共享资源rsrcmgr = PDFResourceManager()# 创建一个PDF设备对象laparams = LAParams()device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个PDF解释器对象interpreter = PDFPageInterpreter(rsrcmgr, device)# 用来计数页面,图片,曲线,figure,水平文本框等对象的数量num_page, num_image, num_curve, num_figure, num_TextBoxHorizontal = 0, 0, 0, 0, 0# 循环遍历列表,每次处理一个page的内容for page in doc.get_pages():  # doc.get_pages() 获取page列表num_page += 1  # 页面增一interpreter.process_page(page)# 接受该页面的LTPage对象layout = device.get_result()for x in layout:if isinstance(x, LTImage):  # 图片对象num_image += 1if isinstance(x, LTCurve):  # 曲线对象num_curve += 1if isinstance(x, LTFigure):  # figure对象num_figure += 1if isinstance(x, LTTextBoxHorizontal):  # 获取文本内容num_TextBoxHorizontal += 1  # 水平文本框对象增一# 保存文本内容with open(r'AIout.doc', 'a', encoding='utf-8') as f:  # 生成doc文件的文件名及路径results = x.get_text()f.write(results)f.write('\n')print('对象数量:\n', '页面数:%s\n' % num_page, '图片数:%s\n' % num_image, '曲线数:%s\n' % num_curve, '水平文本框:%s\n'% num_TextBoxHorizontal)if __name__ == '__main__':pdf_path = r'e:\派森教学案例库\AI\new.pdf'  # pdf文件路径及文件名parse(pdf_path)

第二关——小白的华丽转身相关推荐

  1. 无锡农商行王宗:敏态转型,实现科技引领业务的华丽转身

    近日,第四届中国金融科技产业峰会.第三届中新(苏州)金融科技应用博览会在苏州国际博览中心开幕.大会同期举办的博云"云原生应用与实践"分论坛汇集金融行业头部机构与云原生技术领域专家, ...

  2. 揭秘传智播客班级毕业薪资超7k的内幕系列之四----汽车工的华丽转身

    ---不是本科毕业?不是计算机专业?做过电子厂?做过数控?看传智中专生侃项目,"侃晕"项目经理.从流水线上华丽转身,8.5k高薪再就业      系列三承诺写写上海传智Java六期 ...

  3. 我的这10年——从机械绘图 到 炼油 到 微软MVP 的华丽转身

    年底了,各种总结计划满天飞,有空的时候我也一直在思考这么多年,是怎么过来的.也曾经很迷茫,希望经验和经历能给大家一点带来一点正能量的东西.10年很长,10年前说实话我没有思考过现在的样子,但10年前的 ...

  4. Excel基础:开始菜单之字体的华丽转身

    点赞再看,养成习惯:老骥伏枥,志在千里. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  5. 专访“百变”张泉灵:投资活得“像狗”,并非华丽转身

    近期我们会陆续推荐钛媒体用一年时间,深耕产业,挖掘出来的真正具有产业变革意义的独角兽领军者和具有前瞻力的投资人,并且也会把他们请到2017钛媒体 T-EDGE年度国际盛典.今天是特色嘉宾介绍第六期,紫 ...

  6. 从航空界泰斗到“生物力学之父”,47岁,他在科学领域华丽转身

    带上信仰 去寻找属于你自己的国吧 哪怕穷尽一生 - 1966年,47岁的他离开了举世闻名的加州理工大学航空系 来到了刚成立不久的圣迭戈分校 47岁,应该是知天命的年纪 对于大多数人来说,或许在公司里安 ...

  7. SAP 画皮门 从白狐到超人的华丽转身

    SAP 画皮门 从白狐到超人的华丽转身 管理软件行业是个让人有点看不懂的行业,时而象个盛气凌人的巨人,时而象个嗷嗷待哺的婴儿.一个看不懂的行业忽忽悠悠在中国生存了30年.在这30年里,中国的企业有的把 ...

  8. sql 字符串比较大小_SQL简单查询第二关

    第二关目录大纲: 1.基本的查询语句 2.指定查询条件 3.注释和sql语句注意事项 4.运算符 5.字符串模糊查询 一.基本的查询语句 select <列名1>,<列名2>, ...

  9. 华为云MVP付健权:从机械工程师到AI开发者的华丽转身

    摘要:谁说AI开发难,看一个机械工程师是如何转型成为AI工程师的. 付健权,华为云MVP,企业上云导师.软通动力,售前解决方案经理,为制造业讲解华为云产品,为客户提供上云和云上解决方案.为企业提供大数 ...

最新文章

  1. 解决 python pip install安装速度慢| 版本低|跨过个别错误包
  2. 使用java检测网络连接状况
  3. python入门需要多久-目前Python学习需要多长时间?老男孩Python入门培训
  4. 显示lib包_【手把手教你】股市技术分析利器之TA-Lib(一)
  5. 苹果电脑通过密钥对的方式登录linux系统
  6. 请求转发和请求重定向的区别?
  7. oracle怎么以时间排序,oracle指定数据排序在前面怎么处理
  8. WindowsServer2003中Vmware虚拟机与物理机配置FTP文件共享
  9. python读取npy文件 mse_python读取mat或npy文件以及将mat文件保存为npy文件(或npy保存为mat)的方法...
  10. linux 基础知识大全(收藏这一篇就够了)
  11. 昂达v891w可以用u盘linux,拆机小能手——ONDA 昂达 V891w CH 双系统电脑国产平板 拆解清灰!...
  12. 增持风行网 百视通在下一盘很大的棋
  13. 天津奥的斯服务器显示PKS WT,天津奥的斯电梯故障代码大全
  14. uni-app调用android方法,uni-app 调用 jar 包
  15. 主板上集成显卡的计算机在进行显示工作,电脑显卡怎么看
  16. VSCode 配置 python环境 相对齐全 有遇到问题欢迎投稿哈
  17. 艾美捷胆固醇肉豆蔻酸酯说明书和相关研究
  18. 计算机应用会考试题,余杭区2006年职高计算机应用基础会考试题
  19. 微信群红包模拟器-怎样抢最大的红包
  20. 今天睡眠质量记录67

热门文章

  1. PDF图纸怎么转换成CAD图纸
  2. SSM毕设项目酒店餐饮管理系统ls1a2(java+VUE+Mybatis+Maven+Mysql)
  3. 佛山天然文化石,莱福石材,佛山青石板
  4. kiftd个人网盘搭建
  5. 训练神经网络如何确定batch大小?
  6. 仓库管理软件 移动出入库 仓库管理 扫码复核 标签打印
  7. Layui的tag标签
  8. 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员免费试题
  9. python爬虫 获取网页源代码
  10. 计算机绘图二维三维实用教程,计算机绘图二维三维实用教程