Python数据类型 — 字符串

基本法则:

  1. 单引号和双引号对于字符串都是一样的效果,但是不能单、双引号混用;
  2. 三引号(’’’或”””)能够把一个多行的字符串格式原封不动地保留;
  3. 有且仅有字符串才使用引号(单引号或双引号),具体数字是不使用任何引号,即使用引号就表明它是字符串;

判断某个变量是否是字符串类型:

m = '123'
print(isinstance(m,str))  # 判断变量m是否是字符串这种数据类型;

特性:不可修改,常量

功能:移除空白、分割、长度、索引、切片、美化操作

str = "kyle shawe"
print(str.capitalize())  # 首字母大写capitalize(大写化,资本化)
str.casefold()  # 大写全部变小写(case案例;fold折叠)
print(str.count('e'))  # 统计字符的个数
print(str.center(50, "-"))  # 表示这行一共需要的打印50个字符,如果不够的用“-”填充;并把str放在中央;
                            # 输出  --------------------kyle shawe--------------------
print(str.ljust(50,"*"))  # 这行共要的打印50个字符,把str放在左边,右边用“*”填充; 
print(str.rjust(50,"*"))  # 表示这行一共需要的打印50个字符;把str放在右边,左边用“*”填充;

print(str.endswith("we"))  # 判断是否是以“we”结尾;返回true、false

print(str.find('y'))  # 查找A,找到返回其索引, 找不到返回-1
print(str[str.find("le"):])  # 切片

s = "hello,{k}"
print(s.format(k="kyle"))  # 对参数进行赋值

str.index('a')  # 返回a所在字符串的索引

判断字符串类型

共性:都含isis表判断

'9aA'.isalnum()  # True
'9'.isdigit()  #
是否整数
name.isidentifier()   # 是否一个合法的标识符


name.isnumeric  # 是否只是由数字组成,不能有其他字符,如小数点;
name.isspace  # 是否是个空格
"My Name Is".istitle  # 是否是标题(每个单词首字母大写)

"AA".isupper  # 是否大写
"aa".islower  # 是否小写


字符串切片(取值)

str12 = "to day is a good day"
print(str12[5:10])  # 从给定下标开始截取到给定下标之前,顾头不顾尾
print(str12[:4])   # 从头截取给定下标之前
print(str12[14:])  # 从给定下标处开始截取到结尾
print(str12[:])    # :号前后都省略,则表示全取列表所有的值;但这样写比较怪,不如直接print(str12)
print(str12[::2])  # 第一个:号前后都省略,表示全取,第二个:号后的数字2表示步长(和循环里的步长一致)
print(str12[::-1]) # 列表反转,类似os.reverse()


字符串方法

abc = "Hello,nice to meet you"
print(len(abc))                 # 打印字符串的长度
print(abc.__len__())            # 打印字符串的长度


print(abc.lower())              # 转换字符串中大写字母为小写字母
print(abc.upper())              # 转换字符串中小写字母为大写字母
print(abc.swapcase())           # 转换字符串中大写字母为小写字母,小写字母为大写字母
print(abc.capitalize())         # 整个字符串中首字母大写,其他全部小写
print(abc.title())              # 每个单词的首字母大写


print(abc.center(50, "*"))      # 一共50个字符,字符串放中间,不够的两边补*
print(abc.ljust(50, "*"))       # 一共50个字符,字符串放左边,不够的左边补*
print(abc.rjust(50, "*"))       # 一共50个字符,字符串放右边,不够的右边补*
print(abc.zfill(50))            # 一共50个字符,字符串放右边,不够的右边补0


print(abc.count("t"))           # 统计字符串里t出现了多少次
print(abc.find("to"))           # 找出to在字符串中的第几位
print(abc.rfind("to"))          # 找出最后一个to在字符串中的第几位
print(abc.index("to"))          # find一样的查找,只不过如果to不存在的时候会报一个异常
print(abc.rindex("to"))         # rfind一样的查找,只不过如果to不存在的时候会报一个异常


print("  haha\n".split())       # 删除字符串左边和右边的空格或换行
print("  haha\n".lstrip())      # 删除字符串左边的空格或换行
print("  haha\n".rstrip())      # 删除字符串右边的空格或换行


print(abc.endswith("you"))      # 判断字符串是否以you结尾
print(abc.startswith("Hello"))  # 判断字符串是否以hello开始


print(abc.isalnum())            # 判断字符串中是否只有字母或数字
print(abc.isalpha())            # 判断字符串是否都是字母
print(abc.isdecimal())          # 判断字符串中是否只包含十进制字符
print(abc.isdigit())             # 判断字符串中是否只有数字
print(abc.islower())            # 判断字符串中的字符是否都是小写的英文字母
print(abc.isnumeric())          # 判断字符串中是否只有数字
print(abc.isspace())            # 判断字符串中是否只包含空格

详见:Python数据类型


字符串与列表、集合、元组互相转化

str = 'I_Love_Python.'
for i in str:
    print(i,end='')  # 以空来表示每次执行完print后的操作,也就是去除自动换行;
print('\n字符串是:',str)  # 自带换行
list_str = list(str)  # 把字符串转换为列表;
print('转换为列表是:',list_str)  # 输出:['I', '_', 'L', 'o', 'v', 'e', '_', 'P', 'y', 't', 'h', 'o', 'n', '.']

set_str = set(str)
print('转换为集合是:',set_str)

tuple_str = tuple(str)
print('转换为元组是:',tuple_str)

列表转字符串

mylist = ['a','b','c']
str = ''.join(mylist)  # 原理:在一个空串上不断加入一个列表中的元素
print(str)  # 输出:abc

元组转字符串

mytuple = ('a','b','c')
str = ''.join(mytuple)  # 原理:在一个空串上不断加入一个列表中的元素
print(str)  # 输出:abc

串运算符

  1. +:字符串连接。
  2. *:重复输出字符串。
  3. []:通过索引获取字符串中字符
  4. [ : ]:截取字符串中的一部分
  5. in:成员运算符 - 如果字符串中包含给定的字符返回 True
  6. not in:成员运算符 - 如果字符串中不包含给定的字符返回 True
  7. r/R:原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
//示例代码
a = 'hello'
b = 'world'
print(a+b)  #helloworld,+号连接字符串
print(a*2)   #hellohello,*号重复字符串
print(a[1])  #e,[]索引字符
print(a[1:4])  #ell,[:]截取字符串
print("h" in a)  #True,in是否包含
print("M" not in a) #True,not in是否不包含
print(r'\n')   #\n,r原始字符串(不解析转义字符)

'''output:
helloworld
hellohello
e
ell
True
True
\n
'''

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值