字符串函数

Python id(x)函数

有些话、适合烂在心里 提交于 2020-02-20 05:52:15
可以用id(x)函数来查看具体的变量在内存中的地址是否一致。 可以发现都来源于同一内存地址,即引用自同一对象 PS:在python 3.x版本里,相同 英文字符串会显示在同一个地址里 ,但是 中文字符串不会显示在同一个地址里 >> > t1 = 'dog' >> > t2 = 'dog' >> > if t1 is t2 : print ( '两只英文狗在同一个地址里' ) >> > t3 = '狗' >> > t4 = '狗' >> > if t3 is t4 : print ( '两只中文狗在同一个地址里' ) else : print ( '两只中文狗不在同一个地址里' ) 来源: CSDN 作者: Heiraten30 链接: https://blog.csdn.net/Heiraten/article/details/104399461

python中的f''、b''、u''、r''

不羁的心 提交于 2020-02-20 04:22:26
f/format() 格式化操作,相当于format()函数 案例如下: name = 'wy' l = f'{name}' print(l) # 打印出的l是 wy b:bytes 二进制 拓展: encode和decode也可以在二进制和字符串之间转换 u/U 表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8 r/R 非转义的原始字符串,原意输出 相对特殊的字符,其中可能包含转义字符,反斜杠加上对应字母,表示对应的特殊含义的, 比如最常见的”\n”表示换行,”\t”表示Tab等 以r开头的字符,常用于正则表达式,对应着re模块。 来源: https://www.cnblogs.com/python-Arvin/p/11749050.html

常用数组、字符串的方法(详解)

≡放荡痞女 提交于 2020-02-20 03:18:11
1、indexOf( 数组 || 字符串 ); 作用:返回数组中某个指定元素的位置 (下标)。 (‘item’,[‘start’]) 两个参数: item: 必选、查找的元素。 start: 可选参数,规定在字符串中开始检索的位置,它的合法取值是StringObject.legth-1如省略该参数,则从字符串首字符开始检索。 返回值: Number类型 元素在数组中的位置,如果没有搜索到则返回 -1 。 兼容:所有主流浏览器都支持 indexOf()方法,IE8及以下不支持该方法。 2、slice( 数组 || 字符串 ); 作用:该方法是对数组的部分截取,并返回一个数组副本; (‘start’,[‘end’]) 两个参数 : start:参数start是截取的开始数组索引 end :可选参数end是你要截取的最后一个字符的 位置值 加上 1 。 (1) :如果传入的参数是一个,那么将从参数一的索引位置开始截取,一直到数组尾; (2) :如果传入的参数是一个,并且是一个负数的话,那么他会从数组的后面开始截取; (3) :如果传入的参数是一个,并且是一个负数的话,并且它的绝对值大于或等于数组的 length ,那么他会截取整个数组。 (4) :如果两个参数都是负数的话,前面的参数小于后面的参数。 注:位置是固定好的,从左往右找,不包含结尾位置的字符。 3、substr(); 作用

KMP算法的next[]数组通俗解释

被刻印的时光 ゝ 提交于 2020-02-20 02:15:20
我们在一个母字符串中查找一个子字符串有很多方法。KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度。 当然我们可以看到这个算法针对的是子串有对称属性,如果有对称属性,那么就需要向前查找是否有可以再次匹配的内容。 在KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符,当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大。 这个next数组的求法是KMP算法的关键,但不是很好理解,我在这里用通俗的话解释一下,看到别的地方到处是数学公式推导,看得都蛋疼,这个篇文章仅贡献给不喜欢看数学公式又想理解KMP算法的同学。 1、用一个例子来解释,下面是一个子串的next数组的值,可以看到这个子串的对称程度很高,所以next值都比较大。 位置i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 前缀next[i] 0 0 0 0 1 2 3 1 2 3 4 5 6 7 4 0 子串 a g c t a g c a g c t a g c t g 申明一下:下面说的对称不是中心对称,而是中心字符块对称,比如不是abccba,而是abcabc这种对称。 (1)逐个查找对称串。 这个很简单

KMP算法的next[]数组通俗解释

一曲冷凌霜 提交于 2020-02-20 02:10:49
KMP算法的next[]数组通俗解释 我们在一个母字符串中查找一个子字符串有很多方法。KMP是一种最常见的改进算法,它可以在匹配过程中失配的情况下,有效地多往后面跳几个字符,加快匹配速度。 当然我们可以看到这个算法针对的是子串有对称属性,如果有对称属性,那么就需要向前查找是否有可以再次匹配的内容。 在KMP算法中有个数组,叫做前缀数组,也有的叫next数组,每一个子串有一个固定的next数组,它记录着字符串匹配过程中失配情况下可以向前多跳几个字符,当然它描述的也是子串的对称程度,程度越高,值越大,当然之前可能出现再匹配的机会就更大。 这个next数组的求法是KMP算法的关键,但不是很好理解,我在这里用通俗的话解释一下,看到别的地方到处是数学公式推导,看得都蛋疼,这个篇文章仅贡献给不喜欢看数学公式又想理解KMP算法的同学。 1、用一个例子来解释,下面是一个子串的next数组的值,可以看到这个子串的对称程度很高,所以next值都比较大。 位置i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 前缀next[i] 0 0 0 0 1 2 3 1 2 3 4 5 6 7 4 0 子串 a g c t a g c a g c t a g c t g 申明一下:下面说的对称不是中心对称,而是中心字符块对称,比如不是abccba,而是abcabc这种对称。 (1

java中05的动手动脑

为君一笑 提交于 2020-02-20 02:00:47
动手动脑 1 : 结果为: 分析: “ = ”判断的是两个对象是否相同(储存的地址和储存的内容) 而 “ equals ”函数判断的是两个对象的值是否相等 String 类的 Length() 、 charAt() 、 getChars() 、 replace() 、 toUpperCase() 、 toLowerCase() 、 trim() 、 toCharArray() 使用说明: 1.string.length() 是用来求字符串的长度,返回值为字符串的长度。 length():public int length()// 求字符串长度 String s=”dwfsdfwfsadf”; System.out.println(s.length()); 2.string.charAt() 为取该字符串某个位置的字符,从 0 开始,例如 string.charAt(0) 就会返回该字符串的第一个字符。 charAt():public charAt(int index)//index 是字符下标,返回字符串中指定位置的字符 String s=”Hello”; System.out.println(s.charAt(3)); 3.string.getChars() 为将这个字符串中的字符复制到目标字符数组。 getChars():public int getChars()//

python文件操作总结

假如想象 提交于 2020-02-19 21:42:20
python 文件操作总结   文件操作对于编程语言的重要性不言而喻,如果数据不能持久保存,信息技术也就失去了意义。   文件操作的内容包括打开文件,操作文件,关闭文件 一,打开文件   python中打开文件的函数为open('filename',mode='r',encode='None'),open函数默认返回文件的句柄,我们可以根据句柄来对文件进行增,删,改,查的操作。将句柄赋给我们定义的变量,假设我们定义变量为f,则f=open('filename',mode='r',encode='utf-8') 或者with open('filename') as f。 注意点:   1.python解释器打开文件时,是对硬盘进行操作,需要内核态才可以操作硬盘,故此时python解释器是调用操作系统的文件读取接口。windows中文版本默认使用GBK编码表,linux默认使用utf-8,所有如果操作的文件在windows下,非GBK编码的,需要在open函数中声明编码类型,使操作系统运用相应的编码规则进行解码读取,防止串码,乱码现象。   2.open主要有三种模式,读(r),写(w),追加(a),其中,默认为读模式。各个模式的详解,见下文。 二,关闭文件 关闭文件有两组方式:   1.使用f.close() ,f为open返回的句柄赋值的变量名。   2.程序结束后,自动关闭

(01)-Python3之--字符串操作

…衆ロ難τιáo~ 提交于 2020-02-19 12:21:35
1.字符串取值 字符串的取值通过索引来读取,从0开始。 取区间值如下:字符串变量名[起始索引:结束索引]。包含起始,但不包含结束。 例如: str_my = "hello,python!我来了!" print(str_my[0:4]) # 取0,1,2,3位 print(str_my[0:5]) # 取0,1,2,3,4位 # 从第6个开始,一直取到最后。 print(str_my[5:]) # 从头开始,取到索引下标为7 print(str_my[:8]) print(str_my[0:8]) 结果: hell hello ,python!我来了! hello,py hello,py 2.字符串长度 获取字符串长度一般用len函数 str_my = "hello,python!我来了!" print(len(str_my)) 结果: 23 3.查找子字符串 语法:字符串变量名.find(子字符串) 如果找到了,返回的是起始索引。如果没有找到了,返回的是-1。 例如: str_my = "hello,python!我来了!" # 查找python print(str_my.find("python")) # 查找ph print(str_my.find("ph")) # 查找! print(str_my.find("!")) 结果: 6 -1 12 4.替换操作 语法:字符串变量

【C++】利用_kbhit()和 _getche()非阻塞持续获取用户输入内容

两盒软妹~` 提交于 2020-02-19 11:39:32
  C++相关输入函数里_kbhit()可以非阻塞检查用户是否有输入,有返回一个非0值,否则返回0。   而想获取用户输入的字符就需要获得键盘上读取到的字符,可以使用 _getche(),与 _getch()的区别是他可以回显用户的显示。 例子   实现以下函数,持续获取用户输入字符串,遇到’Q’或者’q’时退出,每输入完一个字符串以回车结束。 # include <iostream> # include <string> //字符串操作需要 # include <conio.h> //_kbhit()需要 int main ( ) { string sInput ; while ( true ) { if ( _kbhit ( ) ) //非阻塞获取用户输入 { char cTake = _getche ( ) ; //获取输入字符,并回显 if ( cTake == 'q' || cTake == 'Q' ) { break ; } if ( cTake == '\r' ) { cout << endl ; cout << "Input message: " << sInput << endl ; sInput . clear ( ) ; continue ; } sInput = sInput + cTake ; } } return 0 ; } 来源: CSDN 作者:

Go语言基础之基本数据类型

我的未来我决定 提交于 2020-02-19 09:41:40
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。 基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64 其中, uint8 就是我们熟知的 byte 型, int16 对应C语言中的 short 型, int64 对应C语言中的 long 型。 类型 描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 18446744073709551615) int8 有符号 8位整型 (-128 到 127) int16 有符号 16位整型 (-32768 到 32767) int32 有符号 32位整型 (-2147483648 到 2147483647) int64 有符号 64位整型 (-9223372036854775808 到 9223372036854775807) 特殊整型 类型 描述 uint 32位操作系统上就是 uint32 ,64位操作系统上就是 uint64