导入模块 1.jieba的安装与使用
pip install jieba conda install -c conda-forge jieba Python2.X版
全自动安装:easy_install jieba 或者 pip install jieba半自动安装:先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install手动安装:将jieba目录放置于当前目录或者site-packages目录通过import jieba 来引用 Python3.X版
目前master分支是只支持Python2.x 的
Python3.x 版本的分支也已经基本可用: https://github.com/fxsjy/jieba/tree/jieba3k
git clone https://github.com/fxsjy/jieba.git git checkout jieba3k python setup.py install 使用国人开发的jieba(结巴的拼音)库来进行智能分词,并加入空格,才能被wordcloud库所用。
中文智能分词:‘西安全城下大雨’,应该分成‘西安’,‘全城’,‘下大雨’。而不是‘西’,‘安全’,‘城下’,‘大雨’
(1)jieba分词的三种模式:精确模式、全模式、搜索引擎模式
- 精确模式:把文本精确的切分开,不存在冗余单词
- 全模式:把文本中所有可能的词语都扫描出来,有冗余
- 搜索引擎模式:在精确模式基础上,对长词再次切分
(2)jieba库常用函数
①分词
jieba.cut方法接受两个输入参数: 1) 第一个参数为需要分词的字符串 2)cut_all参数用来控制是否采用全模式jieba.cut_for_search方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细注意:待分词的字符串可以是gbk字符串、utf-8字符串或者unicodejieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list ②词性标注 标注句子分词后每个词的词性,采用和ictclas兼容的标记法
>>> import jieba.posseg as pseg >>> words = pseg.cut("我爱北京天安门") >>> for w in words: ... print w.
很多小伙伴在学习Python的时候应该有时候会发现会出现一些python本身没有的语法或者是关键词,这是因为python的项目之中会大量的使用模块,而iloc就是一个模块中的关键词。下面这一篇文章会来详细的讲解一下iloc是什么,以及该如何去使用iloc。
Python中的iloc是什么?Python中的iloc该怎么去使用
一、iloc是什么
在python的数据处理方面有一个非常好用的模块叫做pandas,在这个吗模块之中可以去声明一个专有的,以行列格式存储数据的数据结构DataFrame。而iloc就是能够对Dataframe这个数据结构进行操作的方法,就像是python列表的sort()一样。不过iloc的作用是从DataFrame对象之中去读取指定行和列的数据。
二、iloc怎么去使用
iloc的使用方式很像是用切片的方法去获取数组之中的数据一样,因为都是要根据指定的行和列才能获取到相对应的数据,语法为fram.iloc[0,0]。这个语法的意思是从这个Dataframe对象之中获取到0行0列的数据,也就是一个单元格的数据。
那么它也可以通过冒号去获取多行多列的数据,例如frame.iloc[0:2,:]这段代码就是获取第0-1行所有列的数据。有冒号时获取的行列数减一,没有则是获取全部的行或者列的数据。
以上就是关于“Python中的iloc是什么?Python中的iloc该怎么去使用”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家。
一、简介 Homebrew是一款包管理工具,目前支持macOS和Linux系统。主要有四个部分组成:brew、homebrew-core 、homebrew-cask、homebrew-bottles
名称说明brewHomebrew源代码仓库homebrew-coreHomebrew 核心源homebrew-cask提供 macOS 应用和大型二进制文件的安装homebrew-bottles预编译二进制软件包 二、官方脚本下载安装及配置环境变量 首先我们可以进入官网地址获取下载链接,如下:
在安装完成后如果遇到command not found: brew的错误,一般是环境变量无效,这里则需要使用之前介绍使用过的echo $SHELL来确认终端类型,如下
以前每个新用户的默认shell是/bin/bash,那么这里我们需要配置文件为~/.bash_profile,从macOS Catalina(10.15.x) 版开始,Mac使用/bin/zsh作为默认Shell,其对应的配置文件为~/.zshrc
另外我们还需确定下我们电脑CPU的型号,这里可以通过uname -m来查看,如下
M1芯片ARM版Homebrew最终会被安装在/opt/homebrew路径下,而之前Intel芯片的Mac则会被安装到/usr/local/Homebrew路径下。
所以综上所述,我们在配置Homebrew环境变量的时候,需要结合不同的情况来进行相应的配置,如下:
M1芯片 echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" bash echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile eval "$(/opt/homebrew/bin/brew shellenv)" Intel芯片 zsh echo 'eval "$(/usr/local/Homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(/usr/local/Homebrew/bin/brew shellenv)" bash echo 'eval "$(/usr/local/Homebrew/bin/brew shellenv)"' >> ~/.bash_profile eval "$(/usr/local/Homebrew/bin/brew shellenv)" 三、GitHub加速 在使用官方脚本进行下载安装时,经常会遇到下面的错误提示:
curl: (7) Failed to connect to raw.
文章目录 Order By(全局排序)Sort By(每个reduce内部排序)Distribute By(指定分区规则)Cluster By(分区字段和排序字段相同时使用)Sort By和Distribute By使用案例1.假设我们有一个名为sales的表,包含以下字段:product_id、sale_date、quantity和revenue。我们想要按照product_id进行排序,并将数据按照product_id进行分区。2.创建一个名为sales的表,并导入数据:3.使用Sort By和Distribute By来查询并排序数据: 总结 Order By(全局排序) Order By 用于结果集的排序。也可以称之为全局排序。对于 MR 任务来说,如果我们使用了 Order By 排序,意味着MR 任务只会有一个 Reducer 参与排序。
在 Hive 中执行脚本时,我们可以通过set mapreduce.job.reduces = 10 来设置 reduce 的个数为 10。但只要使用了 Order By 排序,即使设置了 10 个reduce ,也是不会生效的。Order By 就是一个全局排序,只能用一个 Reduce 进行全局排序。
Sort By(每个reduce内部排序) Sort By:对于大规模的数据集 order by 的效率非常低。在很多情况下,并不需要全局排序,此时可以使用 sort by。Sort by 在每个 Reducer 内部进行排序,即使每个 reduce 内部是有序的,但是对于全局结果集 来说也还是乱序的。
Distribute By(指定分区规则) Distribute by 是用来指定Distribute By 是用来指定分区规则的,它结合 Sort By 一起使用。上文介绍的单独使用 Sort By 对部门编号排序,因为没有指定分区规则,Sort By 则随机分区排序。Distribute By 类似 MR 中 partition(自定义分区),进行分区,结合 sort by 使用。通常是先用 Distribute By 指定分区规则,然后再使用 Sort By 对分区内数据排序。
大家好,今天为大家带来的事2023年 WebStorm 下载、安装教程、附详细图文教程,亲测有效。感兴趣的可以收藏点赞哦。
文章目录 1 简介2 安装步骤3 提高效率的 10 个方法1、webstorm开启es6环境2、新建vue文件的模板设置3、webstorm设置代码自动换行4、webstorm开启代码提示5、面板展示与增加面板展示项6、全局搜索(shift键双击,搜索包括文件,变量,函数等等)7、设置主题样式、字体大小、字体样式、行高(Ctrl + Alt + S)8、文件修改的历史版本对比9、开启代码补全10、多光标选择 4 常用快捷键 1 简介 WebStorm 是JetBrains公司旗下一款JavaScript 开发工具。已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。
2 安装步骤 WebStorm 的安装其实很简单,大概可以分为 8 步。
1、如果之前装有WebStorm版本, 可以先删卸载, 再重新安装
2、到官网下载WebStorm安装包
https://www.jetbrains.com/zh-cn/webstorm/download/other.html
推荐使用2021.2.2版本, 亲测有效
3、双击打开exe程序,点击“Next”
4、选择安装位置,点击“Next”
5、全选所有选项,点击“Next”
6、确认安装界面,点击“Next”
7、等待安装
8、安装完成,选择何时启动,点击“Finish”
如果想了解怎样授权的话,可以看这篇教程,里面有详细介绍 WebStorm 授权教程 https://it1314.top/article/778/ 3 提高效率的 10 个方法 1、webstorm开启es6环境 2、新建vue文件的模板设置 3、webstorm设置代码自动换行 4、webstorm开启代码提示 5、面板展示与增加面板展示项 6、全局搜索(shift键双击,搜索包括文件,变量,函数等等) 7、设置主题样式、字体大小、字体样式、行高(Ctrl + Alt + S) 8、文件修改的历史版本对比 9、开启代码补全 (参考网址:https://jingyan.baidu.com/article/a3f121e4a64767fc9152bb40.html)
10、多光标选择 修改目的:将上述代码的class属性修改item = > item1;修改方法:按住 Alt 键,鼠标便变成了同一位置向下选择。
文章目录 前言一、看懂电力网络图及确定原始数据1.1 所求电力网络图1.2确定形成节点导纳矩阵的原始数据 二、M程序的编写三、修改节点导纳矩阵3.1 增加线路3.2改变变压器变比3.3 改变线路阻抗 前言 本文通过一个简单电力网络图来说明计算机编写形成节点导纳矩阵的具体方法。
一、看懂电力网络图及确定原始数据 1.1 所求电力网络图 1.2确定形成节点导纳矩阵的原始数据 (1)节点数:n=5;
(2)支路数:nl=5;
(3)支路参数矩阵B:包括六个数据[i,j,z,b,t,it],i,j为支路两端节点号,z为支路的阻抗,b为线路电纳,t为变比,it为高低压侧标志(高为1,低为0)。
这里有5条支路故有5组数据
B=[1,2,0.03i,0,1.05,0;2,3,0.08i+0.3i,0.5i,1,1;2,5,0.1+0.35i,0,1,1;3,5,0.04+0.25i,0.5i,1,1;3,4,0.015i,0,1.05,0]
(4)节点对地阻抗矩阵X(由节点号与接地阻抗构成)。图中节点均未接地,没有对地阻抗故为零
X=[1 0;2 0;3 0;4 0;5 0;]
前面的参数为节点编号,后面为对地阻抗。
二、M程序的编写 n=input('n='); nl=input('nl='); B=input('B='); X=input('X='); Y=zeros(n); for i=1:n if X(i,2)~=0; p=X(i,1); Y(p,p)=1./X(i,2); end end for i=1:nl if B(i,6)==0 p=B(i,1);q=B(i,2); else p=B(i,2);q=B(i,1); end Y(p,q)=Y(p,q)-1./(B(i,3)*B(i,5)); Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B(i,3)*B(i,5)*2)+B(i,4)./2; Y(p,p)=Y(p,p)+1./B(i,3)+B(i,4)./2; end disp('Y='); disp(Y) 在matlab编辑器输入上述代码,点击运行,依次输入原始数据。全部输入完成后形成节点导纳矩阵
三、修改节点导纳矩阵 3.1 增加线路 ①②增加一条支路阻抗为j0.05的线路
只需要在B矩阵中添加一组支路参数数据即可,此时支路数为6。
3.2改变变压器变比 ①②之间变比变为0.95
修改B矩阵中①②节点参数的变比,由原来的1.05改为0.95。此时首端变为高压侧,标志位变为1(六个参数中最后一个参数)
3.3 改变线路阻抗 ②⑤节点之间的阻抗变为j0.5
修改B矩阵②⑤节点的参数,由原来的0.1+j0.35变为j0.5。
Spring Boot 3.1.x Spring Boot 3.0.x
Spring Boot 2.7.x
Spring Boot 2.6.x
Spring Boot 2.5.x
Spring Boot 2.4.x
Spring Boot 2.3.x
Spring Boot 2.2.x
Spring Boot 2.1.x
Spring Boot 2.0.x
Spring Boot 1.5.x Spring Boot 1.4.x Spring Boot 1.3.x Spring Boot 1.2.x
按分隔符把字符串拆成多行 引言截取字符串一、left(str,length)二、right(str,length)三、截取特定长度的字符串四、按分隔符截取 分割字符串一、分割成多列二、分割成多行 总结 引言 截取和拆分字符串在编程生涯中是普遍存在的,在sql中也不例外,下面就让我们来一起探索mysql中字符串的截取和拆分吧。
截取字符串 一、left(str,length) 从左边截取字符串,参数str:被截取的字符串,length:截取的长度
SELECT LEFT('中华人民共和国从此站起来了',7); 截取结果:
二、right(str,length) 从右边截取字符串,参数str:被截取的字符串,length:截取的长度
SELECT RIGHT('中华人民共和国从此站起来了',6); 截取结果:
三、截取特定长度的字符串 有两种用法: substring(str,pos)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,直至字符串结束;
substring(str,pos,length)
参数str:被截取的字符串,pos从第几位开始截取,当为正数时从左开始数,当为负数时,从右开始数,从第几位开始截取,向右截取length个字符。
1.从字符串第n个字符开始到结束
SELECT SUBSTRING('abcdefg',3); 截取结果:
cdefg
2.从字符串第3个字符开始,只截取4位
SELECT SUBSTRING('abcdefg',3,4); 截取结果:
cdef
3.从字符串倒数第3个字符开始至结束
SELECT SUBSTRING('abcdefg',-3); 截取结果:
efg
4.从字符串倒数第3个字符开始,只截取2位
SELECT SUBSTRING('abcdefg',-3,2); 截取结果:
ef
四、按分隔符截取 SUBSTRING_INDEX(str,delim,count)
参数str:被截取的字符串;
参数delim:分隔符;
参数count:第几个分隔符,为正数时,截取从左往右第几个分隔符左边的内容,为负数时,截取从右往左第几个分隔符右边的内容。
1.截取第1个 "-"之前的所有字符
SELECT SUBSTRING_INDEX('100-200-300-400', '-', 1); 截取结果:
100
2.截取倒数第1个"-"之后的所有字符
SELECT SUBSTRING_INDEX('100-200-300-400', '-', -1); 截取结果:
400
3.截取中间的某个值
比如说要取100-200-300-400 的第二个,可以先取count为2的,再从右取count为-1
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('100-200-300-400', '-', 2),'-', -1); 截取结果:
说明 java代码通过JDBC访问MySQL数据库,需要MySQL JDBC驱动。
例如,下面这段代码,因为找不到JDBC驱动,所以执行会报异常:
package com.thb; public class JDBCDemo { public static void main(String[] args) throws ClassNotFoundException { String driver = "com.mysql.jdbc.Driver"; Class.forName(driver); } } 新版本驱动jar包的名称跟老的版本不同 例如,下载了8.2.0版本的驱动mysql-connector-j-8.2.0.jar,即以mysql-connector-j开头,老的版本是以mysql-connector-java开头。
下载MySQL JDBC驱动的方法 直接从MySQL 官网下载 https://dev.mysql.com/downloads/
点击进去:
选择:
随便选择一种方式,例如选择zip包的方式:
点击下载,想用账号登录再下载可以,没有账号直接点击下面的"No thanks, just start my download."也可以:
下载下来以后解压,可以得到jar包,例如下面这个jar包,拷贝到工程的类路径下面能找到的地方就行了:
用maven下载 在Maven的pom.xml文件中增加如下依赖:
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.2.0</version> </dependency> 然后就自动下载到maven的本地仓库了:
备注,下面这种依赖的写法是针对老版本的,对于新的版本,不要使用下面这种依赖写法了,因为新的版本groupId和artifactId已经改变了:
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>
数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。
MySQL 允许在开头、中间和结尾处添加字段。
在末尾添加字段 一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下:
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件]; 对语法格式的说明如下: <表名> 为数据表的名字;<新字段名> 为所要添加的字段的名字;<数据类型> 为所要添加的字段能存储数据的数据类型;[约束条件] 是可选的,用来对添加的字段进行约束。 这种语法格式默认在表的最后位置(最后一列的后面)添加新字段。
注意:本节我们只添加新的字段,不关注它的约束条件。
实例1 在 test 数据库中新建 student 数据表,SQL 语句和运行结果如下:
mysql> USE test; Database changed mysql> CREATE TABLE student ( -> id INT(4), -> name VARCHAR(20), -> sex CHAR(1)); Query OK, 0 rows affected (0.09 sec) 使用 DESC 查看 student 表结构,SQL 语句和运行结果如下:
mysql> DESC student; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(4) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.
Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换 Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换 Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换 本文描述Android11中内置第三方应用为Launcher并保住自带的Launcher3,刷机后系统启动时选择内置第三方应用显示并设置为默认Launcher。
添加自定义默认launcher属性,修改文件路径:/device/rockchip/rk356x/rk356x.prop; persist.sys.def_launcher= persist.sys.def_launcher_enable=false 在具体的产品中设置自定义属性,例如在rk3568_r中,修改路径:
/device/rockchip/rk356x/rk3568_r/rk3568_r.mk PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launcher=com.yjz.launcher PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launcher_enable=true 选择并设置为默认launcher,修改路径 /frameworks/base/core/java/com/android/internal/app/ResolverActivity.java; public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing, boolean rebuildCompleted) { if (isAutolaunching()) { return; } //新增 if (rebuildCompleted && hasSetDefLauncher()) { return; } //*******省略代码****** } final boolean postRebuildListInternal(boolean rebuildCompleted) { //*******省略代码****** //添加 if (rebuildCompleted && (hasSetDefLauncher() || maybeAutolaunchActivity())) { return true; } //*******省略代码****** } //添加 private boolean hasSetDefLauncher() { if (SystemProperties.getBoolean("persist.sys.def_launcher_enable", false)) { String defLauncher = SystemProperties.
文章目录 前言一、笔者对算法的理解二、写书的初衷及过程三、主要内容四、本书的内容五、联合推荐六、购买方式七、《算法秘籍》中奖者名单 前言 提示:这里可以添加本文要记录的大概内容:
数据结构和算法是计算机科学的基石,是计算机的灵魂,要想成为计算机专业人员,学习和掌握算法是十分必要的。不懂数据结构和算法的人不可能写出效率更高的代码。计算机科学的很多新行业都离不开数据结构和算法作为基石,比如大数据、人工智能等。底层开发中也需要使用非常多的数据结构和算法知识,以保证底层系统的稳定性和高效性。
提示:以下是本篇文章正文内容,下面案例可供参考
一、笔者对算法的理解 计算机科学家尼古拉斯·沃斯在计算机领域有一句人尽皆知的名言:
“算法+数据结构=程序”(Algorithms+Data Structures=Programs)
所以数据结构和算法是程序员必须掌握的技能。尤其是到一些大公司面试的时候,算法更是一个少不了的环节,熟练掌握数据结构和算法,可以开拓我们的视野,提高我们的逻辑思维能力,在写代码和分析官方源码的时候也非常有帮助。学习数据结构和算法的一个好处就是:学完之后知识基本不会过时,可以永远为我们所用。大家都知道程序员需要不停地学习,因为知识更新太快,记得在笔者(博哥)上大学和后来开始工作的时候,非常喜欢研究官方源码和框架,如痴如醉,但很遗憾,现在很多框架都已被淘汰了,没被淘汰的也被更新得面目全非,然后还要不停地学习其他新的框架。笔者一直在思考,能不能学习一种永不过时的知识。后来就接触了数据结构和算法,这一接触就是好多年,学的那么多知识依然没有过时。比如KMP算法是在1977年被联合发表的,那么多年过去了,这种算法依然没有被淘汰,如果是一个框架,基本上很难保证那么多年还能存在,就算存在也会有大量的更新,还是需要不停地学习。
二、写书的初衷及过程 笔者(博哥)具有10多年的开发经验,2017年开始做算法试题并在公众号发布试题讲解,经常游走在全球30多个算法网站之间,累计做题2000多道,对算法试题有自己独特的解题思路和技巧。
笔者写这本书的初衷是希望能够帮助更多的程序员快速学习算法,我们都知道算法在整个IT行业算是比较难的,之前有很过程序员通过公众号加笔者微信,请教关于算法的题,刚开始笔者一一进行了回复,后来随着咨询量越来越大,笔者意识到大家迫切地需要算法相关知识的系统指导。结合笔者过往的写作和从业经历,便着手写一本算法书籍,希望能欧帮助大家更好地学习算法,于是这本《算法秘籍》就诞生了。
这本书的知识覆盖范围全面,总共分为13个章节,先是详细介绍了常见的八大数据结构。后面都是我们比较常见的算法题,其中包括了二叉树的Morris遍历,KMP算法,马拉车算法等经典题型。
关于数据结构,大家普遍认为难度较大的可能就是图了,本书对图的分类,图的表示方式,图的遍历,以及图的各种经典算法比如迪杰斯特拉算法,普里姆算法,拓扑排序等都有大量介绍。
三、主要内容 数组,链表,队列,栈,散列表,AVL树二叉搜索树,红黑树,字典树,哈夫曼树,线段树,笛卡尔树,堆,图的分类图的表示方式,图的遍历,迪杰斯特拉算法,贝尔曼福特算法,弗洛伊德算法,普里姆算法,SPFA,克鲁斯卡尔算法,博鲁夫卡算法,拓扑排序,冒泡排序,选择排序,插入排序,快速排序归并排序,堆排序,桶排序,基数排序希尔排序,计数排序,牛顿迭代法位运算,有限状态机,二叉树的遍历方式,Morris遍历,递归,回溯算法,回溯剪枝,贪心算法,双指针,滑动窗口,Base64编码深度优先搜索(DFS),广度优先搜索(BFS),前缀和,动态规划,国王与金矿,01背包完全背包,多重背包,组合与排列,并查集KMP算法,马拉车算法,算术表达式转换
四、本书的内容 本书以Java为描述语言,介绍了计算机编程中常用的数据结构和算法,主要内容如下。
第1章:主要介绍了8种数据结构,包括数组、链表、队列、栈、散列表、树、堆、图,然后每种数据结构又有细分,比如介绍树的时候有完全二叉树、满二叉树、二叉搜索树、AVL树、红黑树、字典树、哈夫曼树、线段树、笛卡儿树等。图的介绍中也有一些经典的算法,比如迪杰斯特拉算法、弗洛伊德算法、普里姆算法和克鲁斯卡尔算法等。
第2章:介绍了几种经典排序算法,以及它们的稳定性分析。
第3章:主要介绍了一些位运算和常见操作符,还有一些简单的操作和使用技巧,如有限状态机和相关示例讲解。
第4章:介绍了和树有关的知识,比如树的遍历方式,包括DFS遍历、Morris遍历,以及BFS遍历等。
第5章:分析了递归的原理和示例练习,可以把它看作是对一棵树的DFS遍历。
第6章:主要介绍了回溯算法的使用,然后得出回溯算法的使用模板,以及一些经典示例,还有一些重复问题和不符合条件的修剪分支。
第7章:主要介绍贪心算法的使用和存在的不足。
第8章:分别介绍了相向双指针、同向双指针和快慢双指针的使用技巧,还有滑动窗口的介绍和使用模板,以及大小可变窗口、固定窗口、只增不减窗口等。
第9章:主要介绍了BFS和DFS的使用模板和示例练习。
第10章:主要介绍了一维前缀和与二维前缀和的使用。
第11章:介绍动态规划和一些经典问题的讲解,如背包问题、组合与排列问题等。
第12章:通过三国人物的故事,生动形象地介绍了并查集的使用、并查集优化、并查集路径压缩以及合并优化等。
第13章:介绍了其他一些经典算法,比如KMP算法、马拉车算法、算术表达式的运算、牛顿迭代法求平方根、Base64编码等。
很荣幸,本书在编写过程中得到了业内专家的支持和认可。
五、联合推荐 算法是编程的基石。本书以生动的案例,结合作者的丰富经验,诠释了算法学习的直观与趣味性,对算法感兴趣的开发者具有极高的参考价值。强烈推荐!
思否联合创始人兼CTO 祁宁
算法是学习开发的基础和核心。博哥关注算法讲解多年,笔耕不辍,深得51CTO网友爱戴。本书是他多年经验的结晶,文笔精准、图文并茂,让枯燥的算法生动有趣,是广大初学者全面学习和了解算法的极佳读物!
51CTO首席内容官 杨文飞
这是一本非常实用的算法学习书,书中使用大量插图详细介绍了常见的数据结构和算法,内容全面,代码中也有大量注释,容易理解,值得推荐。
开源中国创始人 红薯
六、购买方式 进入图书购买页面,双十一期间限时五折!
七、《算法秘籍》 王一博 著
算法是编程的基石,开发的核心。
本书包含55个二维码,300多分钟视频,100多个知识点,50多个示例,适合程序员、计算机专业相关师生,以及对算法感兴趣的读者。
这是一本关于数据结构和算法的书,以Java为描述语言,介绍了计算机编程中常用的数据结构和算法。全书共13章,讲述了常见的数据结构、排序算法、位运算、树、递归、回溯算法、贪心算法、双指针和滑动窗口、BFS和DFS、前缀和、动态规划、并查集、其他经典算法等知识。本书内容丰富,实用性强,通过示例练习和问题分析等方式,详细讲解了与算法有关的知识点。本书附赠视频讲解二维码,以及源代码。
中奖者名单 看见后请于三天内联系我,给我私信收件地址等信息
因为中奖者【辣条可好吃了】超过三天半时间迟迟未回,中奖者已换:【鹤冲天Pro】
1. D-ID 网址:https://www.d-id.com/
D-ID是一个数字人AI视频平台,可以将人物的正面图,生成数字人视频。日常需要分享照片或其他形式的个人信息。对于银行、保险公司、政府等多个场合,采用数字化的人物形象成为一种新颖而安全的隐私保护方式。
可以从平台上选择人物,也可以自行上传正面的照片。
视频效果:
DID
2. 度加创作 网址:https://aigc.baidu.com
度加创作工具是一个百度出品的、人人可用的AIGC创作平台。对接百家号很方便,也可以将生成的视频进行下载,发布到其他平台上。
度加平台的一键成片操作很容易,有文案,自动生成的图片,即可一键生成视频。
文案:可以对于热点推荐的话题进行选择,自动生成文案,也可以在输入框中自行撰写或调整,可使用AI润色。
图片:可以选择关键素材中的图片,也可以在自动生成后对于左侧的图片进行调整。
多种朗读音和背景音乐可以选择
每个账号每日会有3次免费的机会,文案自动生成有的时候会崩,不行就换个话题,或者自己再润色一下喽!生成的视频最后会有度加的logo,可以自行使用剪映等软件截取一下。
视频效果:
度加平台生成视频
3. lumen5 网址:https://lumen5.com/
Lumen5是一款基于人工智能技术的在线视频制作平台,旨在让用户能够快速而轻松地将文字内容转化为引人注目的视频,而无需具备专业的技能或复杂的软件操作。该平台的设计使得任何人都能够轻松创建高质量的视频,可广泛用于社交媒体营销、内容推广、教育、培训以及娱乐等多个领域。通过结合创意性和智能化的工具,Lumen5为用户提供了一个便捷而强大的视频制作工具,促进了内容的生动呈现和更广泛的传播。可以免费创建账号,有免费次数。
视频制作简单三步曲:
输入主题或链接,自动提取内容。定制风格、选择媒体素材,包括音乐和字体等。预览编辑后导出,轻松分享。
视频效果:
lumen5
4. rask.ai 网址:https://zh.rask.ai/
Translate video & audio With AI. Fast. Fun.支持130多种语言,可以免费适用。适合于更换语言,多语言输出的视频转换。
在登录后,可以免费尝试生成视频了。
只需要输入想转化的语言文案,
视频效果:
rask平台生成视频
更多精彩内容,请关注公众号:AI生成未来
目录
一、launch.json配置
二、tasks.json配置
三、properties.json配置
一、launch.json配置 指定调试器设置。
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}", //将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 "environment": [], "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台====用true的时候需要在return的上面加getchar(); "MIMode": "gdb", "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "preLaunchTask": "Compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc,与tasks.json中label对应 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": false } ] } ] } 二、tasks.
大家好,给大家分享一下js如何调用api接口数据,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
前端js调用后台API获取数据的三种方法(2022.7.25) 前言需求分析 一个Get实例 浏览器请求SoapUI软件请求一个Post实例 浏览器请求SoapUI软件请求1、Http简介(Browser / Server) 1.1 六个主流的浏览器1.2 HTTP请求(Get & Post)2、JavaScript简介3、前端js调用后端API的三种方法 3.1 XMLHttpRequest(无需引入外部库) 3.1.1 get实例(XHR) 3.1.1.1 xhr-get.html3.1.1.2 xhr-get.html运行结果3.1.2 post实例( XHR) 3.1.2.1 xhr-post.html3.1.2.2 xhr-post.html 运行结果3.2 jQuery或Ajax(引入jQuery库) 3.2.1 jQuery简介 3.2.1.1 get实例(jQuery) 3.2.1.1.1 jQuery-get.html3.2.1.1.2 jQuery-get.html 运行结果3.2.1.2 post实例(jQuery) 3.2.1.2.1 jQuery-post.html3.2.1.2.2 jQuery-post.html 运行结果3.2.2 Ajax简介及使用 3.2.2.1 get实例(ajax) 3.2.2.1.1 ajax-get.html3.2.2.1.2 ajax-get.html 运行结果3.2.2.2 post实例(ajax) 3.2.2.2.1 ajax-post.html3.2.2.2.2 ajax-post.html 运行结果3.3 axios(引入axios库) 3.3.1 get实例(axios) 3.3.1.1 axios-get.html3.3.1.2 axios-get.html 运行结果3.3.2 post实例(axios) 3.3.2.1 axios-post.html3.3.2.2 axios-post.html 运行结果4、总结 前言 随着云计算、分布式微服务技术的发展,现有网络项目大都基于前后端分离的技术手段实施,一方面是便于缓解后台服务器的压力,充分利用各台服务节点的计算和存储资源,尽可能地提高服务器性能;另一方面可提高服务的可靠性、容灾能力,以便在某服务、节点上服务器甚至节点崩溃的情况下得以对该服务快速有效地进行替换或恢复,表现为极强的修复能力(注:先进制造技术的发展和充足的材料供应能力使得时间、价格方面的维修成本不断高于替换成本,让废旧品及时得到回收利用再生产,从而减少繁琐的维修过程,以便缩短维修时间,即能换不修原则)。
在Web项目实施的过程中,后端工程师负责发布Web服务,提供完善的调用接口;而前端开发人员则以后台服务接口的说明文档为基础,按需调用后台API来实现数据的接收,最后利用可视化技术对数据进行炫酷展示,进而提供强大的平台功能python for语句用法。
需求分析 在Web前端开发的过程中,java 工程师和开发人员往往需要调用后台API来获取所需数据(data),之后通过向菜单、列表、表格、文本框、按钮、下拉框等div内部控件中填充显示,从而实现网页系统的展示、查询和动态更新等目标。当然,前端开发者和后台工程师皆可通过Postman、SoapUI等软件来测试接口是否正常和能否返回数据,或者自己编写Java代码来发送http请求,最常用的非DevTools莫属。
更多资料获取 📚 个人网站:ipengtao.com
在当今科技快速发展的时代,为了提供更好的用户体验,许多应用程序都转向了桌面应用的开发。在Python领域,pywebview是一款优秀的库,它使得用Web技术开发桌面应用变得轻而易举。本文将深入探讨如何使用pywebview创建现代化、跨平台的桌面应用,并通过丰富的示例代码演示其强大功能。
安装pywebview 首先,确保已经安装了pywebview。可以通过以下命令进行安装:
pip install pywebview 创建第一个桌面应用 import webview def create_window(): webview.create_window("My First App", "https://www.example.com", width=800, height=600) if __name__ == "__main__": create_window() webview.start() 在这个简单的例子中,导入了webview库,创建了一个名为"My First App"的窗口,并加载了一个Web页面。通过create_window函数,可以指定应用窗口的标题、初始URL以及窗口的大小。
与Python后端通信 import webview def on_button_click(): webview.evaluate_js('changeText("Hello from Python!")') def create_window(): window = webview.create_window("Communication Example", "index.html", width=800, height=600) webview.start() if __name__ == "__main__": create_window() 在这个示例中,在HTML文件中嵌入了一个按钮,并通过on_button_click函数实现了在按钮点击时通过JavaScript调用Python函数的通信机制。这为前后端之间的交互提供了便利。
使用Vue.js进行前端开发 <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue.js App</title> </head> <body> <div id="
Python中的堆(Heap):高级数据结构解析 堆是一种基于树结构的数据结构,具有高效的插入和删除操作。在本文中,我们将深入讲解Python中的堆,包括堆的基本概念、类型、实现方式、应用场景以及使用代码示例演示堆的操作。
基本概念 堆是一种特殊的树形数据结构,其中每个节点的值都小于或等于(最小堆)或大于或等于(最大堆)其子节点的值。堆分为最小堆和最大堆两种类型,其中:
最小堆: 父节点的值小于或等于其子节点的值。最大堆: 父节点的值大于或等于其子节点的值。
堆常用于实现优先队列和堆排序等算法。 堆的实现方式 在Python中,堆可以通过heapq模块实现,该模块提供了对堆的支持,包括插入、删除等操作。
import heapq # 创建最小堆 heap = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] heapq.heapify(heap) # 插入元素 heapq.heappush(heap, 0) # 弹出最小元素 min_element = heapq.heappop(heap) print("Min Heap:", heap) print("Min Element:", min_element) 堆的应用场景 1. 优先队列 堆常用于实现优先队列,其中元素按照优先级顺序排列。在每次插入元素时,堆会自动调整以确保最高(或最低)优先级的元素位于堆的根部。
import heapq class PriorityQueue: def __init__(self): self.heap = [] def push(self, item, priority): heapq.heappush(self.heap, (priority, item)) def pop(self): _, item = heapq.heappop(self.heap) return item # 示例 priority_queue = PriorityQueue() priority_queue.
Android Studio期末复盘 需要资料的,文章末尾免费自提
1、选择题 1、下列不是手机操作系统的是( )。
A Android
B Window Mobile
C Apple IPhone IOS
D Windows Vista
2、下列选项哪个不是 Activity 启动的方法 ( )
A startActivity
B goToActivity
C startActivityForResult
D startActivityFromChild
3、下列哪个不是Activity的生命周期方法之一( )
A onCreate B startActivity C onStart D onResume
4、下列哪个可做 Android 数据存储( )
A SQlite
B MySql
C Oracle
D DB2
5、下列哪个可做EditText编辑框的提示信息()
A android:inputType
B android:text
C android:digits
D android:hint
6、Math.ceil(99.1) 的结果是()
A 99
B 100
C 99.
文章目录 一:问题场景 / 分析二:问题分析三:解决思路 一:问题场景 / 分析 原本用的Python 3,.9 pip 命令存在问题,又换了Python 3.6 查看python路径有两个 C:\Users\HP>where python D:\DEV\python36\python.exe C:\Users\HP\AppData\Local\Microsoft\WindowsApps\python.exe 异常报错信息 E:\WorkContent\Shanghaikaida\Scripts\python.exe "D:/DEV/IdeaTools/Pycharm-professional/PyCharm 2022.3.3/plugins/python/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 60888 --file E:\WorkContent\Shanghaikaida\田晨阳-信号处理\IIRtest.py No Python at 'C:\Users\HP\AppData\Local\Programs\Python\Python39\python.exe' Process finished with exit code 103 二:问题分析 旧项目可能还是关联老的环境变量,
三:解决思路 操作 pycharm
Setting > Project > Python Interpreter > Add Interpreter 点击Existing 配置 interpreter 选择新配置python.exe的路径
可以看到 package 相关模块出现 点击 apply 应用,再次运行可以看到运行成功
该功能时作为H5调起小程序的微信分享
1:小程序方 在webview页面,打开分享的权限
wx.showShareMenu({ withShareTicket:true, menu:['shareTimeline','shareAppMessage'] }) 2:在小程序内写 onShareAppMessage方法,用来获取在哪个页面调起的微信分享,
onShareAppMessage: function(res) { console.log(res) let nowURL = decodeURIComponent(res.webViewUrl) let id = nowURL.split('?')[1].split('&')[0].split('=')[1] let name = decodeURIComponent(nowURL.split('?')[1].split('&')[1].split('=')[1]) let data = { id: id, name: name, } let payData = JSON.stringify(data) let url = `/pages/music/music?data=${payData}` return { title: name, path: url, } }, 3:在2中的这处代码,是用来劫持分享,并自定义分享的,
let payData = JSON.stringify(data) let url = `/pages/music/music?data=${payData}` return { title: name, path: url, } 4:转发出去后,通过用户的点击再次回来时,在webview页面获取是否有参
onLoad: function(e) { console.