首页 文章 精选 留言 我的

精选列表

搜索[图形化操作],共10000篇文章
优秀的个人博客,低调大师

在python中不要所有操作都用列表

云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 学习新事物时,我们常常对所有可能发生的情况都不了解。通过反复试错,我们会总结出一个方法或一个规律来应对新事物可能发生的问题,一旦某个方法十分有效,我们就会一直使用这个方法…… 在Python中,这个方法就是使用列表。 列表十分方便、它的结构清晰灵活。而且学习列表推导有着一种纯粹的乐趣,就像是中了数据类型中的头奖。 使用列表的感觉就像是在《火影死神大乱斗》游戏中一直使用自己最爱的特殊招式。 和许多东西一样,Python也有一些藏得并不隐蔽的“宝石”,这些“宝石”能够为Python的爱好者们提升技能等级,其中有两个宝石,它们分别是:元组和集合。 现在,让我们来看一看这些特殊的数据类型,并探讨为什么应该使用这些数据类型而不用列表。 元组 元组是不可变的有序项序列。“不可变”——是它的秘密武器。一旦定义了元组,它就不能被更改。 使用元组的规则与列表几乎相同,不同之处只是使用圆括号而不是方括号。另外,还可以获取列表并将其转换为元组。 # how to define a list num_list = [1,2,3,4]# how to define a tuple num_tuple = (1,2,3,4)# use tuple() to convert num_convert = tuple(num_list) 不可变有什么特别之处?乍一看似乎很不方便;但是,每次恰当地使用元组而不是用列表的时候,其实是在做两件事。 · 编写更多有意义的安全代码。当变量被定义为元组时,就是在告诉自己和代码的任何其他查看器:“这不会改变”。为了防止遗漏备忘录,任何修改变量的尝试都将出现错误。 · 提高性能。迭代元组比迭代列表更快。元组比列表更节省内存。由于元组中的项目数不变,因此其内存占用更为简洁。 如果列表的大小未经修改,或者其目的只是用于迭代,那么可以尝试用元组替换。 集合 集合是一个无序的、唯一的数据项组合。一个集合不能有重复值,这就是它与列表的区别。 若要定义集合,就要用大括号括起逗号分隔的项列表。不要和创建具有键值对的词典相混淆。与元组一样,可以通过转换另一种数据类型来创建集合。 # how to define a list num_list = [1,2,3,4]# how to define a set num_set = {1, 2, 3, 4}# use set() to convert num_convert = set(num_list) 那么如果两项完全相同会如何呢? nums = {1,2,3,4,4} print(nums) # 1,2,3,4 如你所见,第二个“4”被移除了。如果原始值是一个重复项列表,也会发生同样的情况。 那么,为什么要使用集合而不是列表呢?首先,转换为集合是删除重复值的最简单方法。此外,集合和任何数据类型一样都有自己的方法集。 当比较多个集合时,集合是非常有用的,想想维恩图便可知。还有union()、intersection()和difference()函数将分别告诉你两个集合之间的组合值、共享值和不同值。 列表用起来很舒服可靠,但可能还有更好的工具,我们不能停止探索的脚步。 使用元组可以更快地处理并保护开发者声明的数据结构。使用集合可以确保唯一值并利用比较方法。 Python就是要为每个问题都找到合适的工具。 云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 原文发布时间:2020-02-12本文作者:读芯术本文来自:“读芯术”,了解相关信息可以关注“读芯术”

优秀的个人博客,低调大师

入门Python(数据库操作及网络访问)

前沿 Python的强大已经在AI领域早已展现,作为一个高级语言,它的简洁性无语言表,爬取一个网页只需要一行代码就可以搞定,为我们节约了大量的编码工作 门槛 当然,只要你有编程经验和懂点计算机的原理,学习任何一门计算机语言都会很快。就Python来说,它本身的基本语法并不难,只要你注意代码的缩进,再会使用几个常用的函数,就可以基本入门Python了。如果你没有编程经验,我相信只要你肯花时间,学习它也不会花多少时间的 安装 可以参考https://www.liaoxuefeng.com/,当然,这个只是python的基本包的安装;如果你需要其他库的话,请注意python2.x和python3.x的区别,它们不兼容,因此遇到坑的时候,就多百度,谷歌一下了(我就是为了安装pymssql这个库,花费了很多时间,主要是本机的工具版本各种不兼容) 使用 基本语法我就不班门弄斧了,很简单。下面就是我写了一个简单的脚本 实战 目的:将数据库中的地址信息中有问题的经纬度,转换成正确的经纬度(输入地址,获取经纬度,也就是地理编码) 步骤: 1.读取Sqlserver中的有问题行的数据 2.通过高德的地理编码restful接口,获取正确的经纬度 3.最后,正确的经纬度更新到数据中 import pymssql import requests import json #Judge the String is "String" def is_String(s): try: float(s) return False except ValueError: pass try: import unicodedata unicodedata.numeric(s) return Flase except (TypeError, ValueError): pass return True #Get AddressInfo from AMap def getLonLat(s): url = 'https://restapi.amap.com/v3/geocode/geo' url = url + '?address='+s url = url + "&output=json&key=填写你的key" response = requests.get(url) obj=json.loads(response.text) return obj.get("geocodes")[0].get('location') #Connect SqlServer conn = pymssql.connect(host="填写你的IP",port=1433,user="用户名",password="数据库密码", database="数据库名称",charset="utf8",tds_version="7.0") cursor = conn.cursor() # execute The Query cursor.execute("SELECT scanId,longitude,ScanAddress FROM ScanData") row = cursor.fetchone() sqlArr = [] #下面这个i,不用管它,拿来计数的,因为我不想等太久了,只想处理1000次以下就可以了 i = 0 # 也可以使用for循环来迭代查询结果 # for row in cursor: # print("ID=%d, Name=%s" % (row[0], row[1])) while row: if i < 1000: if is_String(row[1]): i = i+1 arr = getLonLat(row[2]).split(',') print("lon=%s, lat=%s" % (arr[0], arr[1])) sql = "update scanData set longitude='"+arr[0]+"',latitude='"+arr[1]+"' where scanId='"+str(row[0])+"'" sqlArr.append(sql) row = cursor.fetchone() for sql in sqlArr: print(sql) cursor.execute(sql) conn.commit() # 关闭连接 conn.close() 说明 请注意,一定要注意代码的缩进,上面的代码可能由于排版的问题,会导致无法运行的。 总结 上面的代码,我只用了半天就搞定了,还包括弄环境之类的,并不是我有多么厉害,而是编码的经验多了,各类计算机语言都是相通的,并且Python的门槛真的很低,部分地方上的中小学都开始教Python的课程了(以后可能会全民编码了,哈哈哈)。当然上面的代码也是入门而已,和真正做项目还有很大的差距。Python的强大不仅是做爬虫而已,而且滴滴,Uber等巨头公司直接用它来做后台服务。

优秀的个人博客,低调大师

Java之生成Pdf并对Pdf内容操作

虽说网上有很多可以在线导出Pdf或者word或者转成png等格式的工具,但是我觉得还是得了解知道是怎么实现的。一来,在线免费转换工具,是有容量限制的,达到一定的容量时,是不能成功导出的;二来,业务需求,特别是OA方面的项目,报表不单单只是在线通过浏览器登录对应的站点浏览还需有时导出Pdf格式(pdf格式为通用格式,无论是浏览器还是其他工具都能打开,因此特别是做项目实施的,除了用word编写文档之外,通常还导出一下pdf,这样一来保证给老板看时,不会因为某种原因打不开文件看不到对应的实质内容。 直接开门见山: 一、导入Maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>site.duanzy</groupId> <artifactId>study_pdf</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>study_pdf</name> <description /> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.54</version> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>javax.servlet.jsp.jstl</artifactId> <version>1.2.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration> <version>3.1</version> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project> 二、编写Java代码 package site.duanzy.pdf.demo; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class TestPDFDemo1 { public static void main(String[] args) throws FileNotFoundException, DocumentException { // 1.新建document对象 Document document = new Document(); // 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。 // 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E://Pdf//test.pdf")); writer.flush(); writer.close(); // 3.打开文档 document.open(); // 4.添加一个内容段落 document.add(new Paragraph("Hello World!")); // 5.关闭文档 document.close(); } } package site.duanzy.pdf.demo; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class TestPDFDemo2 { public static void main(String[] args) throws FileNotFoundException, DocumentException { // 创建文件 Document document = new Document(); // 建立一个书写器 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E://Pdf//test2.pdf")); // 打开文件 document.open(); // 添加内容 document.add(new Paragraph("Some content here")); // 设置属性 // 标题 document.addTitle("this is a title"); // 作者 document.addAuthor("Mr You"); // 主题 document.addSubject("this is subject"); // 关键字 document.addKeywords("Keywords"); // 创建时间 document.addCreationDate(); // 应用程序 document.addCreator("hd.com"); // 关闭文档 document.close(); // 关闭书写器 writer.close(); } } package site.duanzy.pdf.demo; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; public class TestPDFDemo3 { public static void main(String[] args) throws DocumentException, IOException { // 创建文件 Document document = new Document(); // 建立一个书写器 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E://Pdf//test3.pdf")); // 打开文件 document.open(); // 添加内容 document.add(new Paragraph("HD content here")); // 图片1 Image image1 = Image.getInstance("E://Demo//workspace//java_pdf//src//main//webapp//images//test.png"); // 设置图片位置的x轴和y周 image1.setAbsolutePosition(100f, 550f); // 设置图片的宽度和高度 image1.scaleAbsolute(200, 200); // 将图片1添加到pdf文件中 document.add(image1); // 图片2 Image image2 = Image.getInstance(new URL("https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D220/sign=bda2ad09277f9e2f74351a0a2f31e962/0b46f21fbe096b63ea0d41bf0c338744eaf8accc.jpg")); // 将图片2添加到pdf文件中 document.add(image2); // 关闭文档 document.close(); // 关闭书写器 writer.close(); } } 以上值列举三个测试代码,更多可以参考我的github:https://github.com/youcong1996/study_simple_demo.git 记住该示例代码在我的侧分支,分支名为java-pdf。 三、运行测试代码的最后结果(结果最后是生成pdf,一般控制台不报错,就表示OK) 全面示例运行后生成的文件如下图所示:

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册