day_002 Python中的字符串操作

2018-07-18  本文已影响0人  HavenYoung

一、字符串

1.字符串的基本知识

要点:

示例:

str1 = '锄禾日当午,\n汗滴禾下土。\n谁知盘中餐,\n粒粒皆辛苦。'
print(str1)
print(len(str1))

结果:

锄禾日当午,
汗滴禾下土。
谁知盘中餐,
粒粒皆辛苦。
27

示例:

print(r'\\')

结果:

\\

2.Python中的字符串中的字符是Unicode编码

要点:

示例:
获取一个字符的Unicode码
ord(字符),结果为十进制数,可用hex()转化为十六进制数

name = '我的天'
list1 = []
for word in name:
    print('十进制数:', ord(word))
    print('十六进制数:', hex(ord(word)))
    list1.append(ord(word))

print(list1)

结果:

十进制数: 25105
十六进制数: 0x6211
十进制数: 30340
十六进制数: 0x7684
十进制数: 22825
十六进制数: 0x5929
[25105, 30340, 22825]

同样也可以将Unicode码转换成字符
示例:
将Unicode码转化成字符
chr(编码值),注意:chr()的参数类型为int。可以是十进制数和十六进制数,但是str类型的十六数进制会报错

for num in list1:
    print(num, type(num))
    print(chr(num))

print(chr(0x4E00))

结果:

25105 <class 'int'>
我
30340 <class 'int'>
的
22825 <class 'int'>
天
一

3.字符串比较大小

要点:

示例:

print('abc' > 'b')
print('a' == 'a')

结果:

False
True

二、获取字符串的字符

Python的字符串实质是一个有序的字符序列。

1.获取字符串的长度:(长度 ----- 字符串中字符的个数)

要点:

示例:

length = len('i am Mark')
print(length)

结果:

9

2.通过下标获取字符串中的单个字符

要点:

示例:

str1 = 'abcdefghijk'
a = str1[0]
print(a, type(a))
b = str1[1]
print(b, type(b))

结果:

a <class 'str'>
b <class 'str'>

3.获取字符串中的部分字符

示例:
(1)开始和结束下标都有值时,要求:开始下标对应的字符要在结束下标对应的字符前面(步进为正数)

#正序
str3 = 'hello Python'
python = str3[6:12]
print(python)

#倒序
python = str3[-6:12]
print(python)

结果:

Python
Python

(2)开始下标省略:从字符串的第一个字符取到结束下标前(不包括结束下标对应的字符)

python = str3[:4]
print(python)

结果:

hell

(3)结束下标省略:从开始下标对应的字符取到字符结束

python = str3[4:]
print(python)

结果:

o Python

(4)两个都会省略:获取整个字符串的内容

python = str3[:]
print(python)

结果:

hello Python

(5)设置步进

python = str3[::2]
print(python)

结果:

hloPto

(6)步进为负数

print(str3[3:1:-1])

结束:

ll

(7)倒序

print(str3[::-1])

结果:

nohtyP olleh

三、字符串运算符

1.+:字符串拼接

要点:

示例:

str1 = 'hello' + ' ' + 'Python'
print(str1)

结果:

hello Python

2.*:让字符串重复

要点:

示例:

str2 = '嘤'*3
print(str2)

结果:

嘤嘤嘤

3.in:

要点:

示例:

result1 = 'a' in 'abc'
print(result1)

结果:

True

4.not in:

要点:

示例:

result2 = '123' not in 'abc'
print(result2)

结果:

True

5.格式字符串

要点:

示例:

str3 = 'abc%sABC%d'%('>', 234)
print(str3)

str4 = '%s-%d-%f-%c-%c'%('str', 12, 12.5, 'c',99)
print(str4)

str5 = '金额:%.2f元'%(100)
print(str5)

结果:

abc>ABC234
str-12-12.500000-c-c
金额:100.00元

如果后面没有加%,那么这个字符串就是一个普通的字符串

str6 = '金额:%.2f元'
print(str6)

结果:

金额:%.2f元

四、字符串相关操作方法

字符串相关方法通用格式:字符串.方法()

1.capitalize()

作用:
将字符的首字母大写,返回首字母大写后的新字符串,不对原字符串操作(不对改变原字符串)。
示例:

str1 = 'abc'
str2 = str1.capitalize()
print(str1)
print(str1.capitalize())
print(str2)

结果:

abc
Abc
Abc

2.center(width, fillchar)

作用:
返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格。不对原字符串操作(不对改变原字符串)。

示例:

str3 = str1.center(11, '-')
print(str3)
print(len(str3))

结果:

----abc----
11

3.强转类型

作用:
将变量的类型转换成目标数据类型(int、str等)

示例:

str4 = 123
str5 = str(str4)
print(str4, type(str4))
print(str5, type(str5))

结果:

123 <class 'int'>
123 <class 'str'>

4.rjust(width, fillchar)

作用:
返回一个指定的宽度width右对齐的字符串,fillchar为填充的字符,默认为空格。不对原字符串操作(不对改变原字符串)。

示例:

number = 9
num = str(number).rjust(3,'0')
stu_id = '1805' + num
print(number)
print(num)
print(stu_id)

结果:

9
009
1805009

5.ljust(width, fillchar)

作用:
和rjust(width, fillchar)相对,左对齐

示例:

u_id = '123.1'
u_id_l = u_id.ljust(5,'x')
print(u_id)
print(u_id_l)

结果:

231
231xx

6.isdigit()和isnumeric()

作用:
isdigit()和isnumeric()都是用来判断字符串是否为数字(int类型)字符串,但是isdigit()只能判断阿拉伯数字(如:1,2,3,4),isnumeric()能判断汉字数字(包括大小写,如:一、伍佰),但是不能判断英文数字(如:one,two)

示例:
大写汉字数字

u_id = '伍佰'
print(u_id.isdigit())
print(u_id.isnumeric())

结果:

False
True

小写汉字数字

u_id = '一百二'
print(u_id.isdigit())
print(u_id.isnumeric())

结果:

False
True

整数阿拉伯数字

u_id = '120'
print(u_id.isdigit())
print(u_id.isnumeric())

结果:

True
True

浮点数

u_id = '120.012'
print(u_id.isdigit())
print(u_id.isnumeric())

结果:

False
False

7.join(seq)

作用:
在字符串2中的每一个字符后加入字符串1

示例:

strs = 'abc'
strs2 = strs.join(u_id)
print(strs2)

结果:

1abc2abc0abc.abc0abc1abc2

8.replace(old,new[,max])

作用:
用new替代字符串中的old,[,max]为要操作的次数,不写默认为全部替换。

示例:

string1 = '  jkj jkj jkj  '
print(string1.replace(' ', ''))

结果:

jkjjkjjkj
上一篇下一篇

猜你喜欢

热点阅读