python数据类型——字符串类型
字符串(string)
字符串,就是字符连成一串,是由字符组成的序列。字符串有编码问题,在之前我已经讲过。本节主要讲字符串的使用。
创建字符串,不用多说:
a='123abcd'
b='diamond'
print(a,b)
字符串也是序列,所以也可以向列表一般切片和成员运算:
print(a[2:])#字符串切片
print('ab' in a)#成员运算
重复输出:
print(a*4)#重复输出字符串
字符串拼接:
d= a+b#字符串拼接
print(d)
字符串的格式化
在之前的文章中,字符串的格式化有所提及,再此具体整理一下:
字符串的格式化大致分有两种方法,一种是用以前提到的“%”,一种是用python的.format方法。
在编辑此文章时参照了田小计划的https://www.cnblogs.com/wilber2013/p/4641616.html和benric的https://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 是小数点后的位数(如果可用的话) |
例:
num = 100 print "%d to hex is %x" %(num, num)
print "%d to hex is %X" %(num, num)
print "%d to hex is %#x" %(num, num)
print "%d to hex is %#X" %(num, num) # 浮点数
f = 3.1415926
print "value of f is: %.4f" %f # 指定宽度和对齐
students = [{"name":"Wilber", "age":27}, {"name":"Will", "age":28}, {"name":"June", "age":27}]
print "name: %10s, age: %10d" %(students[0]["name"], students[0]["age"])
print "name: %-10s, age: %-10d" %(students[1]["name"], students[1]["age"])
print "name: %*s, age: %0*d" %(10, students[2]["name"], 10, students[2]["age"]) # dict参数
for student in students:
print "%(name)s is %(age)d years old" %student
运行结果为:

2.字符串内建函数format()
1、使用位置参数
要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

>>> li = ['hoho',18]
>>> 'my name is {} ,age {}'.format('hoho',18)
'my name is hoho ,age 18'
>>> 'my name is {1} ,age {0}'.format(10,'hoho')
'my name is hoho ,age 10'
>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
'my name is hoho ,age 10 hoho'
>>> 'my name is {} ,age {}'.format(*li)
'my name is hoho ,age 18'

2、使用关键字参数
要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
3、填充与格式化
:[填充字符][对齐方式 <^>][宽度]
>>> '{0:*>10}'.format(10) ##右对齐
'********10'
>>> '{0:*<10}'.format(10) ##左对齐
'10********'
>>> '{0:*^10}'.format(10) ##居中对齐
'****10****'
4、精度与进制

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

5、使用索引
>>> li
['hoho', 18]
>>> 'name is {0[0]} age is {0[1]}'.format(li)
'name is hoho age is 18
字符串的其他内建函数
字符串中插入相关:
e='----'.join([a,b,c,d])#在列表的字符串之间插入‘----’
print(e)
x='daadijf\tdakidn'
print(x.expandtabs(tabsize=10))#设字符串x中tab中的空格数
print(a.center(50,'-'))#字符串a放中间,两边放50个‘-’
print(a.ljust(50,'-'))#字符串放左边,右边放50个‘-’
print(a.rjust(50,'-'))#字符串放右边,左边放50个‘-’
字符串索引相关:
print(a.count('b'))#数出字符串a中字母b的个数
print(a.find(''))#查找到第一个元素,并将索引值返回,类似列表中的index()若找不到返回-1
print(a.rfind('b'))#从右往左找字符串'b',返回找到的第一个的索引值,若找不到返回-1
print(a.index(''))#查找到第一个元素,并将索引值返回,找不到就报错
字符串中内容判断相关,返回布尔值:
print(a.endswith('cd'))#以某个内容结尾?T/N
print(a.startswith(''))#以某个内容开头?T/N
print('djandaklfbjadf'.isalnum())#判断字符串中是否没有符号,返回布尔值(不常用)
print('\xab'.isdecimal())#是否为10进制数,返回布尔值(不常用)
print('dasnd'.isdigit())#是否为整数,返回布尔值
print(a.isidentifier())#是否为合法标识符(不常用)
print(a.islower())#是否全小写
print(a.isupper())#是否全大写
print(a.isspace())#是否为空格
print(a.istitle())#是否每个单词都大写
字符串大小写转换相关:
print(a.lower())#所有大写变成小写
print(a.upper())#所有小写变大写
print(a.swapcase())#所有大写变小写,小写变大写
print(b.capitalize())#首字母大写
print(a.title())#将字符串中每个单词第一个字母大写
字符串替换分割相关:
print(a.strip())#去掉字符串中的空格和换行
print(a.lstrip())#去掉字符串左边的空格和换行
print(a.rstrip())#去掉字符串右边的空格和换行
print(a.replace('','jdia',1))#替换字符串中第一个参数为第二个参数的字符串。替换第三个参数次,不加默认全部替换 print(c.split('的',2))#用字符串'c'将字符串分割成列表。第二个参数为分割次数,不加默认全部替换
print(c.rsplit('的',2))#从右往左用字符串'c'将字符串分割成列表。第二个分割为替换次数,不加默认全部替换
python数据类型——字符串类型的更多相关文章
- python之字符串类型的格式化
python之字符串类型的格式化 要点:python字符串通过format()方法进行格式化处理.(Python语言同时支持两种字符串格式化方法,一种类似C语言中printf()函数的格式化方法,支持 ...
- redis数据类型-字符串类型
Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...
- python学习笔记(5-1)-基本数据类型-字符串类型及操作
五.字符串处理函数 len(x):字符串x的长度.如len("12345")结果为5 str(x):任意类型x所对应的字符串形式. >>> str(123) ...
- Python数据类型——字符串
概论 字符串顾名思义就是一串字符,由于Python中没有“字符”这种数据类型,所以单个的字符也依然是字符串类型的.字符串可以包含一切数据,无论是能从键盘上找到的,还是你根本都不认识的.与数一样,字符串 ...
- Python 数据类型--Bytes类型
一.Bytes类型 在Python3以后,字符串和bytes类型彻底分开了.字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用甚至内置方法上和字 ...
- 6 Python 数据类型—字符串
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = ...
- Delphi 常用数据类型 字符串类型 数据类型等等
字符串类型 Delphi有三种类型的字符: ●AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. ●WideChar这是2字节的Unicode字符. ●Char在目前Delphi早 ...
- python之字符串类型及其操作
1.1字符串类型的表示 字符串是字符的序列表示,可以由一对单引号('). 双引号(")或三引号(’")构成.其中,单引号和双引号都可以表示单行字符串,两者作用相同.使用单引号时,双 ...
- python将字符串类型改成日期类型
将字符串类型的'2019-03-14'改成date类型,如下: import datetime b = datetime.date(*map(int,'2019-03-14'.split('-'))) ...
随机推荐
- Arbiter 系统使用说明
Arbiter 系统使用说明 Overview Arbiter是NOI系列赛事的官方评测软件, 由北航的相关人员开发. 在OIer会经历的几场大型比赛中, 除了省选和PKUSC/THUSC不使用Arb ...
- Java经典编程题50道之四十六
编程实现两个字符串的连接. public class Example46 { public static void main(String[] args) { addString( ...
- 修长城 (区间DP)
Time Limit: 1000 ms Memory Limit: 256 MB Description 大家都知道,长城在自然条件下会被侵蚀,因此,我们需要修复.现在是21世纪,修复长城的事情当 ...
- Linux定时及mysql远程
(1)crontab crontab使用方法: (1)使用命令 crontab -e 然后直接编辑定时脚本. 这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个 ...
- rpm检验是否被改动过
参考原文http://vbird.dic.ksu.edu.tw/linux_basic/0520rpm_and_srpm.php#rpmmanager_verify rpm -qVa (当然可 ...
- 项目使用EntityFramework需要做的几项工作
1..新项目引用创建好的其他项目,比如实体类库.数据库业务.实体数据模型等需要用到的项目进行引用. 2.新项目使用NuGet获取AutoMapper和EntityFramework程序包进行安装引用, ...
- android自定义Notification通知栏实例
项目有个需求,需要在发送Notification的时候动态给定url的图片.大概思路如下:自己定义一个Notification的布局文件,这样能够很方便设置View的属性. 首先加载网络图片,使用Bi ...
- Linux下搭建SVN服务器遇到的问题及解决方法,
1.checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist... 奇怪,怎么会提示库不存在呢?肯定是哪里配置问题.后来尝试了半天,也在网上搜 ...
- 动手制作属于你自己的WIN PE3.0
最近想要更新公司的网Ghost系统,所以小研究一下win pe ,在网上看见一个很不错的教程,在这里分享给大家! 并非原创,纯属转载!!O(∩_∩)O~天缘的作品,很是佩服这个哥们啊..... 一.W ...
- Linux显示历史记录
Linux显示历史记录 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ history 1 uname -a 2 lsusb 3 df -h 4 ps -A 5 ...