Python(19)-字符串、Unicode字符串


字符串-不变性,不能通过索引对其做任何修改

1.字符串的定义

字符串用于存储多个字符,可以用单引号双引号来定义字符串,大多数编程语言都是使用双引号,为了和其他语言接轨,建议使用双引号进行字符串定义。

str1=“python”

使用单引号定义字符串的情形:字符串中带双引号,那么字符串用单引号定义

Str2='我的名字是"大西瓜" ’

字符串元素访问:[]+索引。
循环遍历,对其中元素进行相同的操作

2.字符串的长度、计数、Index

子字符串:字符串中的一部分元素组成的字符串

hello_str=“hello hello”

1.计算字符串包含的字符数,即字符串的长度。

print(len(hello_str))

2.计算字符串中包含的子字符串的数目。如果子串不存在,计数结果为0。

print(hello_str.count(“llo”))

3.输出子字符串出现的位置(第一个字符的位置),子串不存在会报错。

print(hello_str.index(“abc”))

3.字符串常用方法

字符串有四类常用的方法:判断类型、查找和替换、文本对齐、去除空白字符
在平常应用需求中,明确方法类别,查找方法,查看参数,使用方法,不用死记硬背,编写测试方法。

3.1判断类型

判断方法返回一个True或者False.

1判断是不是只有空白字符,空白字符包括:空格,\t, \n ,\r。回车\r回到本行的开始,Linux:\n换行,win:\r+\n 实现换行。

space_str=" \n \t"
print(space_str.isspace())
输出:True

2.判断是否只包含数字

num_str="\u00b2"
print(num_str)
print(num_str.isdecimal())
print(num_str.isdigit())
print(num_str.isnumeric())

以上三个方法都不能判断小数,能判断的范围越来越大

print(num_str.isdecimal()),能力最小,只能判断一般的数字

print(num_str.isdigit())能判断unicode字符串(不能直接在键盘中输出的数字(1)) (这个版本的好像还是不行Python2.7)

print(num_str.isnumeric())能判断中文数字一、二、等,这个版本的好像还是不行Python2.7)

3.Isalpha()是不是只有字母组成
Istitle()是否首字母大写
Isup()是否全部都大写
Islow()是否全部都小写

3.2查找和替换

hello_str=“hello world”

1.判断以指定字符串开头(区分大小写哦)

print(hello_str.startswith(“Hello”))
输出:False

2.判断以指定字符串结尾(区分大小写哦)

print(hello_str.endswith(“world”))
输出:True

3.查找是否存在某一个子串;如果存在,输出对应索引;如果不存在,输出-1。与index方法很相似,区别:如果子串不在原来字符串中,find方法返回-1,并不会报错。

print(hello_str.find(“llo”))
输出:2
print(hello_str.find(“123”))
输出:-1

4.替换:用指定的子串替换原串内容,执行完成后返回一个新的字符串,不会修改原来的字符串。

print(hello_str.replace(“world”,“pyhton”))
输出hello pyhton
print(hello_str)
输出hello world

3.3文本对齐

支持输出字符串左对齐,右对齐,居中对齐

poem=[
    "草",
    "白居易",
    "离开原上草"
]

for poem_str in poem:
    print("|%s|"%poem_str.center(30,"*"))
 

所有的字符串有一个固定的内容,输出就能够居中了
居中的数值也是需要调整的(本例子中用30),默认使用英文的空格进行居中处理,但是效果不太好,filchar中填入一个全角中文空格,即可实现完全对齐,(Python2.7版本的没有实现对齐呢)
在这里插入图片描述

左对齐:

print(poem_str.ljust(30))

右对齐:

print(poem_str.rjust(30))

3.4去除空白字符.strip()

.strip()方法可以去除空白符,包括换行符号。

poem=[
    "\t\n草",
    "白居易",
    "\t离开原上草"
]
for poem_str in poem:
    #输出原来字符串,有空白符,很不整齐
    print("|%s|"%poem_str)

在这里插入图片描述

for poem_str in poem:
    #直接居中输出
    print("|%s|"%poem_str.center(30,"*"))
 

没去除空白符在居中输出的结果(原谅我居中效果不是很好)
在这里插入图片描述

for poem_str in poem:
    #先使用strip方法去除前后两边的空白字符,再居中输出
    print("|%s|"%poem_str.strip().center(30,"*"))
 

去除空白符后的输出结果:
在这里插入图片描述

4.字符串的拆分和拼接

poem_str="\t\n草 白居易,\n离开原上草\t一岁一枯荣"
print(poem_str)

poem_list=poem_str.split()

for poem_list_str in poem_list:
    print(poem_list_str)

result=" ".join(poem_list)

print(result)

1.poem_str.split()方法去拆分一个字符串,如果不指定分隔符,方法默认以空白符作为分隔符;也就是说,有空白符的地方都会被分隔;拆分后返回一个字符串列表

2." ".join(poem_list) 方法使用“ “作为分隔符拼接一个整齐的字符串,方法执行完成后返回一个字符串
在这里插入图片描述

5.字符串的切片

切片操作适用于字符串,列表,元组

语法:字符串[开始索引:结束索引:步长] ,不包含结束索引对应的内容

步长:有间隔的进行切片。

结束索引不指定,就可以切到最后一个元素。

顺序索引:第一个元素对应的索引为0,其后依次递增
倒序索引:最后一个元素的索引为-1,其前依次是-2,-3,-4

原序列:
在这里插入图片描述
步长为负可以从右向左进行切片,对应的索引顺序也应该由大到小。
在这里插入图片描述
正序索引的例子:
在这里插入图片描述
在这里插入图片描述

温馨提示:只有精通,才会思变,因为,简便是驱动力,截图工具的更换

6.跨行字符串

# 跨行字符串用三引号定义,(且别python的多行注视)
# 行尾添加\去除换行符号
s1 = '''你好
明天'''
s2 = '''你好\
明天'''
print(s1)
print(s2)

输出

你好
明天
你好明天

7.包含转义字符r

# 字符串包含转义字符,用r表示不转义的字符
print('E:\note\Python')
print(r'E:\note\Python')

输出

E:
ote\Python
E:\note\Python

8.字符串的分割与连接

str1 = "Zootopia"
print(str1.find("to"))  # 返回第一个to的索引
str2 = "Z o o t o p i a"
print(str2.split(" "))  # 以" "分割原字符串,返回一个list,['Z', 'o', 'o', 't', 'o', 'p', 'i', 'a']
print("".join(str2.split(" ")))  # 将字符串,List,元组中的元素以指定的字符连接一起。
str3 = ">".join(str1)   # Z>o>o>t>o>p>i>a

9.Unicode字符串

# Unicode 更多了是一种编码规则
# 优点是:为现代和古代每一个字符提供了一个统一的序号
# 创建:在字符串前面加u
unicode_str = u'\u4f60\u597d'
print(unicode_str)     # 输出:你好
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值