06-字符串类型*****

字符串类型(不可变类型)
‘hello‘,‘world‘
转换方法:str()
-整个字串被当作一个序列,可通过索引来引用某一个元素

-转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\;
-如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r‘‘表示‘‘内部的字符串默认不转义

查看一个变量类型
type(a), id(a)

可使用参数
总结:
str.join()
str.upper()
str.lower()
str.split()
str.find()
str.strip()
‘str‘.join()
str.format()
str.startswith()
str.replace()

-创建
a = ‘jack‘
b = str(a)
print(b)
print(type(b))

-转换
a = ‘123‘
b = str(a)
print(b)
print(type(b))

运行结果:
<class ‘str‘>

-拼接
a = ‘name‘
b = ‘jack‘
c = a + b
print(c)

运行结果:
name jack

-格式化(占位符)
mes = ‘My name is %s, today is %s years old, gender is %s.‘ % (‘jack‘, 25, ‘man‘)
print(mes)

运行结果:
My name is jack, today is 25 years old, gender is man.
%c : ASCII
%s : 字符串
%d : 整数
%u : 无符号整型
%o : 无符号八进制数
%x : 无符号十六进制数
%X : 无符号十六进制数(大写)
%f : 浮点数字
%e : 科学计数法格式化浮点数
%g : %f 和 %e 的简写
%p : 用十六进制数格式化变量的地址

可操作的方法:
-移除空白,包括\n,\t,还有自定义移除
val.strip() :移除所有
val.lstrip() :移除左边
val.rstrip() :移除右边
a = ‘jack ‘
a_new = a.strip()
print(a)
print(a_new)

-分割且不保留分隔符
val.split()
a = ‘user1sbuser2‘
v = a.split(‘sb‘)
print(v)
运行结果:
[‘user1‘, ‘user2‘]

-分割且保留分隔符
.partition(‘string‘)
a = ‘user1sbuser2‘
v = a.partition(‘sb‘)
print(v)
运行结果:
(‘user1‘, ‘sb‘, ‘user2‘)

-长度
val.len()
val = "jack,25,man"
val_new = len(val)
print(val)
print(val_new)
运行结果:
jack,25,man
11

-索引
val[0]
val = "jack,25,man"
val_new = val.split(‘,‘)
val_new1 = val_new[0]
print(val)
print(val_new)
print(val_new1)

运行结果:
jack,25,man
[‘jack‘, ‘25‘, ‘man‘]
jack

-切片
val[index1:index2:walk]
val = "我叫jack,今年25岁了,是个man."
print(val[0])
print(val[0:5])
print(val[7:])
print(val[7:-2])

运行结果:

我叫jac
今年25岁了,是个man
今年25岁了,是个m

-填充
name = ‘alex‘
v1 = name.ljust(20, ‘*‘)
v2 = name.rjust(20, ‘*‘)
v3 = name.center(20, ‘*‘)
print(v1, v2, v3)
运行结果:
alex****************
****************alex
********alex********

-首字母大写
capitalize
name = ‘alex‘
v = name.capitalize()
print(v)
输出结果:
Alex

-忽略大写,转换所有字母为小写
casefold(英文和德文), lower(仅对英文转换)
name = ‘XiaoFei‘
v1 = name.casefold()
v2 = name.lower()
print(v1)
print(v2)
输出结果:
xiaofei
xiaofei

-转换所有字母为大写
.upper()
a = ‘alex‘
b = ‘ALex‘
v1 = a.upper()
v2 = b.upper()
print(v1)
print(v2)
输出结果:
ALEX
ALEX

-大小写换转,遇到小写变大写,大写变小写
.swapcase
a = ‘aaaBBBcccDDD‘
v = a.swapcase()
print(v)
运行结果:
AAAbbbCCCddd

-判断是否全小写
.islower()
a = ‘alex‘
b = ‘AlEx‘
v1 = a.islower()
v2 = b.islower()
print(v1, v2)
运行结果:
True False

-判断是否全大写
.isupper()
a = ‘alex‘
b = ‘ALEX‘
v1 = a.isupper()
v2 = b.isupper()
print(v1, v2)

-文本居中,定义长度,填充
center(参数1, 参数2)
参数1:表示总长度(包含字符串本身的长度)
参数2:表示空白处填充的字符
name = ‘xiaofei‘
v = name.center(20, ‘*‘)
print(v)
输出结果:
******xiaofei*******

-左对齐,右对齐,且定义长度,用户指定字符填充
.ljust(weight, ‘string‘)
.rjust(weight, ‘string‘)
a = ‘alex‘
v1 = a.ljust(20, ‘*‘)
v2 = a.rjust(20, ‘*‘)
print(v1)
print(v2)
运行结果:
alex****************
****************alex

-统计,计数
count(参数1, 参数2, 参数3)
参数1:要查找的子值
参数2:起始位置(索引)
参数3:结束位置(索引)
name = ‘aaaaa121dfdfqqqweeeedfdf45555qqq‘
v1 = name.count(‘a‘)
print(v1)
v2 = name.count(‘df‘)
print(v2)
v3 = name.count(‘df‘, 0, 15)
print(v3)
输出结果:
5 #统计name变量中,包含多少个‘a’
4 #统计name变量中,包含多少个‘df’
2 #统计name变量中,从第0个元素到第15个元素之间,包含多少个字符串‘df’

-是否以XX结尾
endwith(‘string‘)
name = ‘alex‘
v = name.endswith(‘ex‘)
print(v)
运行结果:
True

-是否以XX开头
startwith(‘string‘)
name = ‘alex‘
v = name.startswith(‘al‘)
print(v)
输出结果:
True

-以制表符\t为分隔符,填充替换为指定长度
expandtabs(weight)
name = ‘name\tage\tgender\nalex\t25\tman‘
v = name.expandtabs(20)
print(v)
运行结果:
name age gender
alex 25 man

-查找关键字的索引位置,不存在则返回-1而不会报错
find(‘string‘)
---与index()不同,index如果查找的关键字不存在,则会报错
name = ‘alex‘
v = name.find(‘e‘)
print(v)
v1 = name.find(‘o‘)
print(v1)
运行结果:
2
-1

-字符串格式化
.format(‘str1‘, ‘str2‘, ‘str3‘)
a = ‘name:{0}, age:{1}, gender:{2}.‘
v = a.format(‘alex‘, 25, ‘man‘)

a = ‘name:{name}, age:{age}, gender:{gender}.‘
v = a.format(name=‘alex‘, age=25, gender=‘man‘)
运行结果:
name:alex, age:25, gender:man.

-字符串格式化
.format_map({字典})
a = "我是:{name};年龄:{age};性别:{gender}"
v = a.format_map({‘name‘:"李杰",‘age‘:19,‘gender‘:‘中‘})
print(v)
运行结果:
我是:李杰;年龄:19;性别:中

-判断是否是数字、字母、汉字,特殊符号不行
.isalnum()
a = ‘123aa‘
b = ‘你好‘
v1 = a.isalnum()
v2 = b.isalnum()
print(v1)
print(v2)
运行结果:
True
True

-判断是否包含数字,包含则False
.isalpha()
a = ‘alex‘
b = ‘alex123‘
v = a.isalpha()
v1 = b.isalpha()
print(v)
print(v1)
运行结果:
True
False

-判断是否是数字,用于判断是否可以转换为数字类型
.isdecimal() #‘1‘
.isdigit() #‘1‘,‘①‘
.isnumeric() #‘1‘,‘①‘,‘一‘
a = ‘1‘
b = ‘1①‘
c = ‘1①一‘
v1 = a.isdecimal()
v2 = a.isdigit()
v3 = a.isnumeric()
v4 = b.isdecimal()
v5 = b.isdigit()
v6 = b.isnumeric()
v7 = c.isdecimal()
v8 = c.isdigit()
v9 = c.isnumeric()
print(v1, v2, v3, v4, v5, v6, v7, v8, v9)
运行结果:
True True True False True True False False True

-判断变量的值是否允许作为标识符,即是否允许作为变量名,注意,不能识别关键字类型
.isidentifier()
a = ‘name‘
b = ‘1name‘
c = ‘class‘
v1 = a.isidentifier()
v2 = b.isidentifier()
v3 = c.isidentifier()
print(v1, v2, v3)

运行结果:
True False True

-判断是否全部是空格
.isspace()
a = ‘nam e‘
b = ‘ ‘
v1 = a.isspace()
v2 = b.isspace()
print(v1, v2)
运行结果:
False True

-判断是否是标题格式,即只要包含英文单词,其首字母均大写
.istitle()
a = ‘aaa, bbb, ccc‘
b = ‘Aaa, Bbb, Ccc‘
v = a.istitle()
v2 = b.istitle()
print(v)
print(v2)
运行结果:
False
True

-全部变成标题格式,首字母全部变成大写
.title()
a = ‘aaa, bbb, ccc‘
v = a.title()
print(v)
运行结果:
Aaa, Bbb, Ccc

-对元素通过自定义的字符来循环分割(需要能被循环且元素中不能有数字)
‘string‘.join()
a = ‘alex‘
v = ‘_‘.join(a)
print(v)
运行结果:
a_l_e_x
##############################
a = [‘你‘, ‘我‘, ‘他‘]
v = ‘好‘.join(a)
print(v)
运行结果:
你好我好他

-对应关系替换,翻译
a.maketrans(‘key‘, ‘val‘)
.translate(a)
m = str.maketrans(‘abcde‘, ‘12345‘)
name = ‘siodfuioweurflkdsjflkadsjlfxc,q‘
v = name.translate(m)
print(v)
运行结果:
sio4fuiow5urflk4sjflk14sjlfx3,q

-替换,将旧的值替换为新的值,n表示从左往右替换几次
.replace(‘old’‘, ‘new‘, n)
a = ‘张三SB李四SB王五SB陈六‘
v = a.replace(‘SB‘, ‘md‘, 2)
print(v)
运行结果:
张三md李四md王五SB陈六

-转换成字节形式
.encode(encoding=‘utf-8‘)
name = ‘理解‘
v1 = name.encode(encoding=‘utf-8‘)
v2 = name.encode(encoding=‘gbk‘)
运行结果:
b‘\xe7\x90\x86\xe8\xa7\xa3‘
b‘\xc0\xed\xbd\xe2‘

时间: 2024-08-10 23:19:07

06-字符串类型*****的相关文章

Redis命令拾遗一(字符串类型)

文章归博客园和作者“蜗牛”共同所有 .转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/ Redis有五种基本数据类型.他们分别是字符串,散列,列表,集合,有序集合.实际上,后四种,在我们表面上理解看来,是以不同的形式来组织字符串键值. 你可以用其存储任何你所希望的一块整体数据,是整体数据哟.如果是文章的标题,标签,内容,评论这样的数据,虽然你可以将其对象序列化为Json存储,但是不建议使用字符串.因为作为一个整体存储,当你想获得

20160421字符串类型;日期时间类型数学类型

第13天 2016-04-21 一.字符串类型   string Trim() - 去头尾的空格,中间的空格不能去. ToUpper() - 把字符串的字母全变成大写. ToLower() - 把字符串的字母全变成小写. StartsWith("子串") - 是否以“子串”开头,是-true EndsWith("子串") - 是否以“子串”结尾,是-true Contains("子串") - 是否包含“子串”,是-true Substring(起

第二篇:数字和字符串类型

一.数字和字符串类型 1.x.strip:去除两边字符,如(*)默认去除空格 2.x.capitalize:首字母大写 3.x.upper:所有字母大写 4.x.center:居中显示 5.x.count:统计字符串中某个字符的个数 6.x.endswith/ x.startswith:以什么作为结尾,以什么作为开头 7.x.find: 8.x.format:格式化字符串 9.x.index:查看字符的索引 10.x.isdigit:取整数 11.x.replace:替换 12.x.split:

jquery把int类型转换成字符串类型的方法

jQuery中把获取的number类型数据转换成字符串类型 var val=$("#id).val(); If(typeof val=="number"){ val+=' '; }

php字符串类型讲解

PHP 支持八种原始类型(type). 四种标量类型: string(字符串) integer(整型) float(浮点型,也作 double ) boolean(布尔型) 两种复合类型: array(数组) object(对象) 两种特殊类型: resource(资源) NULL(空) 字符串类型  一个字符串是一串字符的序列,就像 "Hello world!". 定义字符串有 3 种方法: 单引号(') 双引号(") 定界符(<<<) 1.单引号定义 将

java 字符串类型String

在本质上,字符串实际上一个char类型的数组,由java.lang.String类来表示,该类具有一系列的属性和方法,提供对字符串的一些操作.除此之外,java还提供了StringBuffer类来处理可变长度的字符串. 1.字符串的声明.创建及初始化 a.String a=“hello”: b.String a = new String(): //创建空字符串 c.String a = new String(char[] a)://使用字符数组中的所有元素作为字符串的值 d.String a =

022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)

给定一个字符串类型(string)表示的小数,打印出它的二进制表示. 这个题注意字符串的合法性. 不过下面的代码没有处理那种无限循环的小数, 当出现无限循环小数时,while(other>0)可能永久为true 代码: #include <iostream> #include <string> std::string to_binary_string(const std::string& vNumStr) { std::string::size_type Pos =

PHP两个字符串比较(人为出错),两字符串类型和数据表面相等,但strcmp()结果不为0

PHP中,比较两个字符串是否相等用:strcmp(): PHP strcmp() 函数 PHP String 函数 定义和用法 strcmp() 函数比较两个字符串. 该函数返回: 0 - 如果两个字符串相等 <0 - 如果 string1 小于 string2 >0 - 如果 string1 大于 string2 语法 strcmp(string1,string2) 参数 描述 string1 必需.规定要比较的第一个字符串. string2 必需.规定要比较的第二个字符串. 提示和注释 注

深入.Net字符串类型 Join方法

.Net的字符串其实还是有很多东西可以写的.但是最近在学习SQL Server,只好先做下最近学习到的一些巧用,妙用之类的东西. 巧用String.Join拼接字串数组,字符串集合为字符串.如果在之前,一个foreach早就敲上去了.虽然效率差多,但是少了个foreach,还是美观不少的. class Program { static void Main(string[] args) { List<string> listStr = new List<string>(); list

Redis学习之字符串类型详解

本文和大家分享的主要是Redis中字符串相关内容,一起来看看吧,希望对大家学习redis有所帮助. 字符串类型是最基本的数据类型,能够存储所有的字符串,包括二进制数据 json 化对象, 一个字符串类型的键的数据的最大容量是 512 MB 字符串类型是其他几种类型的基础,如列表类型是以列表的形式组织字符串,集合类型是以集合的形式组织字符串 获得符合规则的键名列表 keys pattern # ? 匹配一个字符 # *  匹配任意一个字符 # [] 匹配括号中的任意一个字符.可以使用 - 表示范围