python-基础篇-字符串、列表、元祖、字典-字符串

2.3字符串、列表、元祖、字典

2.3.1字符串

2.3.1.1字符串介绍
2.3.1.1.1python中字符串的格式:

如下定义的变量a,存储的是数字类型的值
a = 100
如下定义的变量b,存储的是字符串类型的值
b = “hello itcast.cn”
或者
b = ‘hello itcast.cn’

小总结:
双引号或者单引号中的数据,就是字符串

2.3.1.1.2字符串在内存中的存储方式

在这里插入图片描述

在python中,字符串以字符形式存在内存中,一个字符占1个字节。字符串“100”在内存中占3个字节和一个”\0”共四个字节(其中“\0是底层c语句的知识”)。数字在内存中占1个字节(1个字节可以存储0-255的任意一个数值)。

2.3.1.2字符串的输入输出
2.3.1.2.1字符串输出
    name = 'xiaoming'
    position = '讲师'
    address = '北京市昌平区建材城西路金燕龙办公楼1层'

    print('--------------------------------------------------')
    print("姓名:%s"%name)
    print("职位:%s"%position)
    print("公司地址:%s"%address)
    print('--------------------------------------------------')
结果:
    --------------------------------------------------
    姓名: xiaoming
    职位: 讲师
    公司地址: 北京市昌平区建材城西路金燕龙办公楼1--------------------------------------------------
2.3.1.2.2字符串输入

注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

    userName = input('请输入用户名:')
    print("用户名为:%s"%userName)

    password = input('请输入密码:')
    print("密码为:%s"%password)
结果:(根据输入的不同结果也不同)
    请输入用户名:dongGe
    用户名为: dongGe
    请输入密码:haohaoxuexitiantianxiangshang
    密码为: haohaoxuexitiantianxiangshang
2.3.1.2.3组字符串的方式

“+”直接拼接
给字符串格式化

# Author:csz
a='lao'
b='wang'
c=a+b
print(c)  #字符串拼接

A=100
B=200
C=A+B
print(C)  #数值相加

conlecttionStr1="======"+a+b+"======"
print(conlecttionStr1)  #字符串拼接1

conlecttionStr2="======%s======"%(a+b)
print(conlecttionStr1)  #字符串拼接2
结果:
laowang
300
======laowang======
======laowang======

2.3.1.3下标和切片
2.3.1.3.1下标索引

所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
字符串中"下标"的使用:
列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。
如果有字符串:name = ‘abcdef’,在内存中的实际存储如下:
在这里插入图片描述

如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

# Author:csz
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
运行结果: 
a
b
c
2.3.1.3.2切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
如果取出一部分,则可以在中括号[]中。

name = 'abcdef'
print(name[3:5])    # 取下标为3、4 的字符
print(name[2:])     # 取下标为2到最后一个的字符
print(name[1:-1])   #取 标为1开始 到 最后第2个之间的字符
print(name[-1])     #取最后第一个字符
print(name[1:5:2])  #第一个为起始位置,第二个为终止点,第三个参数为步长

结果:

de
cdef
bcde
f
bd

demo:给定一个字符串aStr, 请反转字符串
方式一:

name = 'abcdef'
i = len(name)-1
while i>0:
    ch1 = str(name[i])
    print("%s\t"%ch1,end="")
    i-=1
结果:
f	e	d	c	b	

方式二:

name = 'abcdef'

print(name[-1:0:-1])
print(name[-1::-1])
print(name[::-1])
print(name[-1:-3:-1])
结果:
fedcb
fedcba
fedcba
fe
2.3.1.4字符串常见操作

如有字符串mystr = ‘hello world itcast and itcastcpp’,以下是常见的操作
根据一下操作,可以查处字符串的方法
在这里插入图片描述

2.3.1.4.1find

检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr.find(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.2rfind

类似于 find()函数,不过是从右边开始查找.
mystr.rfind(str, start=0,end=len(mystr) )

2.3.1.4.3index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr.index(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.4rindex

类似于 index(),不过是从右边开始.
mystr.rindex( str, start=0,end=len(mystr))

2.3.1.4.5count

返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.6replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, mystr.count(str1))
在这里插入图片描述

数字、字符串、元组为不可变类型,替换后不会改变原字符串的值,只会重新生成一个变量的值。
在这里插入图片描述

2.3.1.4.7split

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ", 2)
在这里插入图片描述在这里插入图片描述

2.3.1.4.8capitalize

把字符串的第一个字符大写
mystr.capitalize()

2.3.1.4.9title

把字符串的每个单词首字母大写
在这里插入图片描述

2.3.1.4.10startswith

检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
mystr.startswith(obj)
在这里插入图片描述

2.3.1.4.11endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.
mystr.endswith(obj)
在这里插入图片描述

2.3.1.4.12lower

转换 mystr 中所有大写字符为小写
mystr.lower()

2.3.1.4.13upper

转换 mystr 中的小写字母为大写
mystr.upper()

2.3.1.4.14ljust

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
mystr.ljust(width)

2.3.1.4.15rjust

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
mystr.rjust(width)

2.3.1.4.16center

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
mystr.center(width)
在这里插入图片描述

2.3.1.4.17lstrip

删除 mystr 左边的空白字符
mystr.lstrip()

2.3.1.4.18rstrip

删除 mystr 字符串末尾的空白字符
mystr.rstrip()

2.3.1.4.19strip

删除mystr字符串两端的空白字符
在这里插入图片描述

2.3.1.4.20partition

把mystr以str分割成三部分,str前,str和str后
mystr.partition(str)
在这里插入图片描述

2.3.1.4.21rpartition

类似于 partition()函数,不过是从右边开始.
mystr.rpartition(str)
在这里插入图片描述

2.3.1.4.22splitlines

按照行分隔,返回一个包含各行作为元素的列表
mystr.splitlines()
在这里插入图片描述

2.3.1.4.23isalpha

如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()

2.3.1.4.24isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.
mystr.isdigit()

2.3.1.4.25isalnum

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr.isalnum()
在这里插入图片描述

2.3.1.4.26isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()
在这里插入图片描述

2.3.1.4.27join

mystr 中每个字符后面插入str,构造出一个新的字符串
mystr.join(str)
在这里插入图片描述

面试题:(面试题)给定一个字符串aStr,返回使用空格或者’\t’分割后的倒数第二个子串

在这里插入图片描述
在这里插入图片描述

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fo安方

觉得俺的文章还行,感谢打赏,爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值