字符串(string)

字符串,就是字符连成一串,是由字符组成的序列。字符串有编码问题,在之前我已经讲过。本节主要讲字符串的使用。

创建字符串,不用多说:

  1. a='123abcd'
  2. b='diamond'
  3. print(a,b)

字符串也是序列,所以也可以向列表一般切片和成员运算:

  1. print(a[2:])#字符串切片
  2. print('ab' in a)#成员运算

重复输出:

  1. print(a*4)#重复输出字符串

字符串拼接:

  1. d= a+b#字符串拼接
  2. print(d)

字符串的格式化

在之前的文章中,字符串的格式化有所提及,再此具体整理一下:

字符串的格式化大致分有两种方法,一种是用以前提到的“%”,一种是用python的.format方法。

在编辑此文章时参照了田小计划https://www.cnblogs.com/wilber2013/p/4641616.htmlbenrichttps://www.cnblogs.com/benric/p/4965224.html

1.格式化操作符(%)

该方法和c语言的格式化输出字符串是相同的:

格式化符号

说明

%c

转换成字符(ASCII 码值,或者长度为一的字符串)

%r

优先用repr()函数进行字符串转换

%s

优先用str()函数进行字符串转换

%d / %i

转成有符号十进制数

%u

转成无符号十进制数

%o

转成无符号八进制数

%x / %X

转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

%e / %E

转成科学计数法(e / E控制输出e / E)

%f / %F

转成浮点数(小数部分自然截断)

%g / %G

%e和%f / %E和%F 的简写

%%

输出% (格式化字符串里面包括百分号,那么必须使用%%)

格式化操作辅助符

辅助符号

说明

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号(+)

#

在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X")

0

显示的数字前面填充"0"而不是默认的空格

(var)

映射变量(通常用来处理字段类型的参数)

m.n

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

例:

  1. num = 100
  2.  
  3. print "%d to hex is %x" %(num, num)
  4. print "%d to hex is %X" %(num, num)
  5. print "%d to hex is %#x" %(num, num)
  6. print "%d to hex is %#X" %(num, num)
  7.  
  8. # 浮点数
  9. f = 3.1415926
  10. print "value of f is: %.4f" %f
  11.  
  12. # 指定宽度和对齐
  13. students = [{"name":"Wilber", "age":27}, {"name":"Will", "age":28}, {"name":"June", "age":27}]
  14. print "name: %10s, age: %10d" %(students[0]["name"], students[0]["age"])
  15. print "name: %-10s, age: %-10d" %(students[1]["name"], students[1]["age"])
  16. print "name: %*s, age: %0*d" %(10, students[2]["name"], 10, students[2]["age"])
  17.  
  18. # dict参数
  19. for student in students:
  20. print "%(name)s is %(age)d years old" %student

运行结果为:

2.字符串内建函数format()

1、使用位置参数

要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

  1. >>> li = ['hoho',18]
  2. >>> 'my name is {} ,age {}'.format('hoho',18)
  3. 'my name is hoho ,age 18'
  4. >>> 'my name is {1} ,age {0}'.format(10,'hoho')
  5. 'my name is hoho ,age 10'
  6. >>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
  7. 'my name is hoho ,age 10 hoho'
  8. >>> 'my name is {} ,age {}'.format(*li)
  9. 'my name is hoho ,age 18'

2、使用关键字参数

要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

  1. >>> hash = {'name':'hoho','age':18}
  2. >>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
  3. 'my name is hoho,age is 19'
  4. >>> 'my name is {name},age is {age}'.format(**hash)
  5. 'my name is hoho,age is 18'

3、填充与格式化

:[填充字符][对齐方式 <^>][宽度]

  1. >>> '{0:*>10}'.format(10) ##右对齐
  2. '********10'
  3. >>> '{0:*<10}'.format(10) ##左对齐
  4. '10********'
  5. >>> '{0:*^10}'.format(10) ##居中对齐
  6. '****10****'

4、精度与进制

  1. >>> '{0:.2f}'.format(1/3)
  2. '0.33'
  3. >>> '{0:b}'.format(10) #二进制
  4. '1010'
  5. >>> '{0:o}'.format(10) #八进制
  6. '12'
  7. >>> '{0:x}'.format(10) #16进制
  8. 'a'
  9. >>> '{:,}'.format(12369132698) #千分位格式化
  10. '12,369,132,698'

5、使用索引

  1. >>> li
  2. ['hoho', 18]
  3. >>> 'name is {0[0]} age is {0[1]}'.format(li)
  4. 'name is hoho age is 18

字符串的其他内建函数

字符串中插入相关:

  1. e='----'.join([a,b,c,d])#在列表的字符串之间插入‘----’
  2. print(e)
  3. x='daadijf\tdakidn'
  4. print(x.expandtabs(tabsize=10))#设字符串xtab中的空格数
  5. print(a.center(50,'-'))#字符串a放中间,两边放50个‘-’
  6. print(a.ljust(50,'-'))#字符串放左边,右边放50个‘-’
  7. print(a.rjust(50,'-'))#字符串放右边,左边放50个‘-’

字符串索引相关:

  1. print(a.count('b'))#数出字符串a中字母b的个数
  2. print(a.find(''))#查找到第一个元素,并将索引值返回,类似列表中的index()若找不到返回-1
  3. print(a.rfind('b'))#从右往左找字符串'b',返回找到的第一个的索引值,若找不到返回-1
  4. print(a.index(''))#查找到第一个元素,并将索引值返回,找不到就报错

字符串中内容判断相关,返回布尔值:

  1. print(a.endswith('cd'))#以某个内容结尾?T/N
  2. print(a.startswith(''))#以某个内容开头?T/N
  3. print('djandaklfbjadf'.isalnum())#判断字符串中是否没有符号,返回布尔值(不常用)
  4. print('\xab'.isdecimal())#是否为10进制数,返回布尔值(不常用)
  5. print('dasnd'.isdigit())#是否为整数,返回布尔值
  6. print(a.isidentifier())#是否为合法标识符(不常用)
  7. print(a.islower())#是否全小写
  8. print(a.isupper())#是否全大写
  9. print(a.isspace())#是否为空格
  10. print(a.istitle())#是否每个单词都大写

字符串大小写转换相关:

  1. print(a.lower())#所有大写变成小写
  2. print(a.upper())#所有小写变大写
  3. print(a.swapcase())#所有大写变小写,小写变大写
  4. print(b.capitalize())#首字母大写
  5. print(a.title())#将字符串中每个单词第一个字母大写

字符串替换分割相关:

  1. print(a.strip())#去掉字符串中的空格和换行
  2. print(a.lstrip())#去掉字符串左边的空格和换行
  3. print(a.rstrip())#去掉字符串右边的空格和换行
  4. print(a.replace('','jdia',1))#替换字符串中第一个参数为第二个参数的字符串。替换第三个参数次,不加默认全部替换
  5.  
  6. print(c.split('的',2))#用字符串'c'将字符串分割成列表。第二个参数为分割次数,不加默认全部替换
  7. print(c.rsplit('的',2))#从右往左用字符串'c'将字符串分割成列表。第二个分割为替换次数,不加默认全部替换

python数据类型——字符串类型的更多相关文章

  1. python之字符串类型的格式化

    python之字符串类型的格式化 要点:python字符串通过format()方法进行格式化处理.(Python语言同时支持两种字符串格式化方法,一种类似C语言中printf()函数的格式化方法,支持 ...

  2. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

  3. python学习笔记(5-1)-基本数据类型-字符串类型及操作

    五.字符串处理函数  len(x):字符串x的长度.如len("12345")结果为5  str(x):任意类型x所对应的字符串形式. >>> str(123) ...

  4. Python数据类型——字符串

    概论 字符串顾名思义就是一串字符,由于Python中没有“字符”这种数据类型,所以单个的字符也依然是字符串类型的.字符串可以包含一切数据,无论是能从键盘上找到的,还是你根本都不认识的.与数一样,字符串 ...

  5. Python 数据类型--Bytes类型

    一.Bytes类型 在Python3以后,字符串和bytes类型彻底分开了.字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用甚至内置方法上和字 ...

  6. 6 Python 数据类型—字符串

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = ...

  7. Delphi 常用数据类型 字符串类型 数据类型等等

    字符串类型 Delphi有三种类型的字符: ●AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. ●WideChar这是2字节的Unicode字符. ●Char在目前Delphi早 ...

  8. python之字符串类型及其操作

    1.1字符串类型的表示 字符串是字符的序列表示,可以由一对单引号('). 双引号(")或三引号(’")构成.其中,单引号和双引号都可以表示单行字符串,两者作用相同.使用单引号时,双 ...

  9. python将字符串类型改成日期类型

    将字符串类型的'2019-03-14'改成date类型,如下: import datetime b = datetime.date(*map(int,'2019-03-14'.split('-'))) ...

随机推荐

  1. Zabbix Agent active主动模式监控

    zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下: 1.当被监控端到达一个量级的时候,Web操作很卡,容易出现502 2.图 ...

  2. Redis 实践3-操作

    string常用操作 set key1  aminglinux get key1   set key1  aming //一个key对应一个value,多次赋值,会覆盖前面的value setnx k ...

  3. 原码,反码,补码 与(&) 或(|) 非(~) 异或(^) 左移 << 右移 >> 无符号右移 >>>

    原码 数字在计算机中以二进制表示,8位的字长,最高位是符号位, 正数为0,负数为1.比如,3为0000 0011: -3为1000 0011. 注意,Java中int为32位.3的16进制表示为3,- ...

  4. bzoj 1171 大sz的游戏& 2892 强袭作战 (线段树+单调队列+永久性flag)

    大sz的游戏 Time Limit: 50 Sec  Memory Limit: 357 MBSubmit: 536  Solved: 143[Submit][Status][Discuss] Des ...

  5. Visual Studio 2017 Enterprise 发布 15.3.3 版,附离线安装包百度网盘下载。

    Visual Studio 2017 Enterprise 发布 15.3.3 版,附离线安装包百度网盘下载. Visual Studio 2017 Enterprise 更新至 15.3.3 ,本安 ...

  6. java3 - 流程控制

    一.Java 有三种主要的循环结构: 需求:分别使用三种循环将 1 到 100 的整数输出到控制台. 1.for 循环 for(初始化语句; 布尔表达式语句; 更新语句) { //循环体内容 } 示列 ...

  7. Linux常用命令(精选)

    chmod -R 777 文件夹名       // -R表示递归给文件及文件夹内文件更改权限,r(4),w(2),x(1),chmod -a+rwx / chmod -u+w -g+r -o +x ...

  8. Nginx下编译PHP+Mysql

    先说一下PHP在Apache和Nginx下所扮演的角色 apache一般是把php当做自己的一个模块来启动的. 而nginx则是把http请求变量(如get,user_agent等)转发给 php进程 ...

  9. 情景linux—不曾了解的cat用法

    情景 cat是linux命令中最为基础的命令之一,它是"concatenate"(连接)的简写,作用概述是concatenate and print files,即:连接和查看文件 ...

  10. Python基础学习参考(七):字典和集合

    一.字典 字典跟列表一样是一组数据的集合.它的特点是什么呢? 特点一:字典具有键(key)和值(value),其中键必须是唯一的,不可重复的,即键必须可以哈希的.对于值没有要求. 特点二:字典是无序的 ...