字符串函数

替换空格

独自空忆成欢 提交于 2020-03-22 10:56:32
题目要求 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 算法实现 这个题比较简单,基本不会出现在面试手撕代码环节,直接拆分字符串再合并即可。 代码 # -*- coding:utf-8 -*- class Solution: # s 源字符串 def replaceSpace(self, s): ss = s.split(' ') s = ss[0] for i in ss[1:]: s = s+'%20'+i return s 来源: https://www.cnblogs.com/isshpan/p/12544372.html

Javascript高级编程学习笔记(17)—— 引用类型(6)基本包装类

♀尐吖头ヾ 提交于 2020-03-22 09:41:55
基本包装类 基本包装类这个概念或许有的小伙伴没有听说过 但是小伙伴们有没有想过,为什么基本数据类型的实例也有方法呢? 其实这些方法都来自基本包装类型 这是JS为了方便操作基础数据类型而创建的特殊引用类型 基本包装类有三种 1. Boolean类型 2. Number类型 3. String类型 执行过程 这三种基本包装类型的生命周期很短,只存在于代码执行的一瞬间 当这三种基本数据类型调用其基本包装类的方法时: 1.读取以上三种类型的基本数据类型时 2.创建一个基本包装类的实例 3.调用该实例上的方法,调用完成后销毁该实例 注意事项 1.不要显示地调用基本包装类的构造函数构建实例,因为很容易和基础数据类型混淆 2.对基本包装类调用 typeof 时返回 object 3.使用 Object 构造函数时,如参数传入三种基本类型则会返回一个该基础类型对应的基本包装类的实例 4.基本包装类,和同名的转型函数是有区别的,转型函数返回的是基础类型的值,基本包装类返回的是该值的实例 原理 在前面的文章中,我介绍了JS中没有重载,那么Number函数是怎么同时实现转型函数,以及基本包装类型的呢? 难道是 Number 的实现就是底层语言实现的重载吗? 答案显然不是 这里就涉及到 new 操作符的实现原理 new 操作符主要步骤是: 1.创建一个新的对象 2.将构造函数的执行环境设置为这个新对象

模块和常用内置模块

故事扮演 提交于 2020-03-22 07:31:07
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 模块的导入和使用 模块的导入应该在程序开始的地方。 常用语法 我们可以在py文件中按照如下方式导入模块: import a from xx import b 当然还可以再导入模块的时候给模块起别名 from xx import heiheihei as yue __name__ 当做脚本运行: __name__ 等于'__main__' 当做模块导入: __name__= 模块名

MySQL学习(5)

血红的双手。 提交于 2020-03-21 09:35:29
三 触发器   对某个表进行某种操作欠货(如:增删改查),希望触发某个动作,可以使用触发器。   1.创建触发器 create trigger trigger1_before_insert_tb1 before insert on tb1 for each row begin ... endbefore可以换成after, insert可以换成delete,update.      在想tb1插入数据后,tb2结果:      触发器获得用户提交的数据: create trigger tri_after_insert_tb1 after insert on tb1 for each row begin NEW.nid (为用户新提交过来的 tb1.nid的值) NEW.name(为用户新提交过来的tb1.name的值) insert into tb2(num) values(NEW.nid); end create trigger tri_after_delete_tb1 after delete on tb1 for each row begin OLD.nid (为删除的tb1.nid的值) OLD.name(为删除的tb1.name的值) insert into tb2(num) values(OLD.nid); end create trigger tri_after

strtok和strtok_r

我们两清 提交于 2020-03-21 08:59:18
strtok和strtok_r 原型:char *strtok(char *s, char *delim); 功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。 strtok在s中查找包括在delim中的字符并用NULL('/0')来替换,直到找遍整个字符串。 返回值 :从s开头開始的一个个被切割的串。当没有被切割的串时则返回NULL。 全部delim中包括的字符都会被滤掉,并将被滤掉的地方设 为一处切割的节点。 举例: #include < string .h > #include < stdio.h > int main( void ) { char input[ 16 ] = " abc,d " ; char * p; /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input, " , " ); if (p) printf( " %s " , p); /* A second call to strtok using a NULL as the first parameter returns a pointer to the character following

前端-js-长期维护

牧云@^-^@ 提交于 2020-03-21 08:14:47
############### JS简介和JS引入 ################ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- js简介 英文:javascript 这是一门编程语言, 要学习什么? 1,js的核心语法: 1,基础语法 2,数据类型 3,函数 4,面向对象(ES6) 2,BOM:这是操作浏览器的,比如浏览器弹窗 3,DOM:这是操作浏览器上面html内容的, 就是这三部分 js是一个解释性语言,是需要一个解释器的,但是解释器比较特殊,只要有浏览器就可以解释js, --> <!-- 如何引入js文件 --> <!--第一种方式,通过script标签--> <!--<script>--> <!--alert(121212)--> <!--</script>--> <!--第二种方式,写一个js文件,--> <script src="1.js"></script> <div id="d1">sss</div> </body> </html> ############### JS的基本语法和数据类型(数字和字符串) ################ /* js基础语法: 1,注释: 单行注释:// 多行注释:

python常用模块之re模块

三世轮回 提交于 2020-03-21 07:09:35
一、re模块的作用 python中的re模块是跟正则表达式相关的一个模块,当你导入了re模块之后就可以进行正则匹配了。那么在说re模块的用法之前我们先要来说一下正则表达式的一些规则,不会正则有了re模块也没有用。 二、正则表达式 首先,正则表达式是干什么的呢?正则表达式就是按照你规定的一个匹配规则从给定的字符串中取出符合规则的部分。比如一个简单的正则匹配的例子如下: 1 import re 2 s='alex' #待匹配的字符串 3 r='a' #你定义的匹配规则 4 print(re.search(r,s).group()) 5 -------------------------------------------------------------------------------------- 6 a View Code 例子中的s变量中的值就是我们需要去匹配筛选的字符串,而变量r中的值就是我们定义的正则表达式中的匹配规则,正则表达式的匹配规则大多数就是一些元字符和量词的组合,另外就是一个.*?的用法以及re模块中findall、split模式对分组的优先级问题。 首先我们来了解一下正则表达式中的元字符有哪些,正则表达式的所有元字符如下: 元字符 匹配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n

python小数据池,代码块的最详细、深入剖析

泪湿孤枕 提交于 2020-03-21 04:30:48
一,id,is,==   在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是有一个唯一标识的,就好比是身份证号,标识这个空间的叫做内存地址,也就是这个数据(对象)的id,那么你可以利用id()去获取这个数据的内存地址: name = '太白' print(id(name)) # 1585831283968 那么 is 是什么? == 又是什么? == 是比较的两边的数值是否相等,而 is 是比较的两边的内存地址是否相等。 如果内存地址相等,那么这两边其实是指向同一个内存地址。 可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。 二,代码块。 根据官网提示我们可以获知: 根据提示我们从官方文档找到了这样的说法: A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are blocks: a module, a function body, and a class definition. Each command

数组、字符串和指针

感情迁移 提交于 2020-03-21 01:28:33
1.如何使用数组   数组就是一组名为数组元素或简称元素的内存位置,各个内存位置可以存储相同数据类型的数据项,而我们可以用相同的变量名引用所有内存位置。 2.如何声明和初始化不同类型的数组   声明数组:例如 long height[6];   初始化数组:例如 int engine_size[5] = {200, 250, 300, 350, 400};   C++11标准定义了一种表示一组初始值的新的统一方式,对于用这种方式初始化的所有对象,这些初始值都是相同的,包括标准模板库容器和数组。   例如:int value[]{2,3,4}; 有了这种语法,=操作符就是不必要的。 3.如何对数组使用基于范围的for循环   例如: double temperatures[] = {65.5, 68.0, 75.0, 77.5, 76.4, 73.8, 80.1};       double sum = 0.0;       int count = 0;       for(double t : temperatures){         sum += t;         ++count;       }       double average = sum/count;   还可以使用auto关键字来编写该循环:     for(auto temperature :

python——open()函数打开文件和读写

自闭症网瘾萝莉.ら 提交于 2020-03-20 23:43:16
注意:Windows系统文件路径中的斜线符号为'\'调用open()函数打开相应文件路径调用读写函数写入数据1、教程示例: 2、实战示例: 运行结果为: 3、总结 →python用反斜杠'\'转义字符,所以错误案例中的'\'被用作转义,导致解释器解释文件路径错误。 →路径书写有两种方法: 第一、将'\'的方向反向为'/',即文首正确的写法; 第二、在含有转义符的字符串前加 ‘r' 表示字符串内按原始含义解释,不做转义处理。(推荐!) 来源: https://www.cnblogs.com/xzxgiser/p/12535580.html