在python中使用字符串应该注意什么_Python字符串的基本用法及正则表达式学习注意事项,使用,方法,与,笔记...

1. 数值与布尔型

数值类型

整型int

浮点型float

布尔型

True

False

# 查看数据类型用type()

a = 1

b = 1.1

c = True

d = False

print(type(a),type(b),type(c),type(d))

# 判断时返回的是布尔值

print(a == b)

False

数值运算可以使用加减乘除等运算,布尔型也可以进行数值运算,进行运算的时候True=1,False=0。

print(a + c)

print(a + d)

print(c + d)

2

1

1

2. 字符串

2.1 字符串的创建

用双引号" "和单引号’ ,两者作用基本一致,当引号中套引号的时候,可以混合使用。

三引号用于有回车的文本(单双引号都可以用作三引号)。

str1 = 'Hello'

str2 = "python"

str3 = """

人生苦短,

我用Python"""

print(str1,str2,str3,type(str1),type(str2),type(str3))

Hello python

人生苦短,

我用Python

2.2 字符串与数值的相互转换

数值转字符串

str()强制转化

repr()转化

a = 1

b = str(a)

c = repr(a)

print(type(b),type(c))

字符串转数值

int()强制转化为整形

float()强制转化为浮点型

eval()转化

import string

a = '1.1'

b = '2'

# 强制转化注意不能将浮点转换为int

e = float(a)

f = int(b)

# eval 可以自动转为整型和浮点型

c = eval(a)

d = eval(b)

print(e,f,c,d,type(e),type(f),type(c),type(d))

1.1 2 1.1 2

2.3 字符串的连接、复制和转义

连接与复制

a = '人生苦短'

b = '我用Python'

# 字符串连接:用"+"将字符串进行连接

c = a + b

print(c)

# 字符串复制:用"*"将字符串进行复制

d = c * 3

print(d)

人生苦短我用Python

人生苦短我用Python人生苦短我用Python人生苦短我用Python

转义:用转义字符‘\’进行转义,

更多转义字符应用参考链接

如果字符串中需要多个转义字符,可在前面添加一个r

string = 'I'm ok !'

print(string)

File "", line 1

string = 'I'm ok !'

^

SyntaxError: invalid syntax

# 不加转义字符则会出错

string = 'I\'m ok !'

print(string)

# 或者用双引号来区分

print("I\'m ok !")

I'm ok !

I'm ok !

string =r"\n\n\t I'm ok !"

string

"\\n\\n\\t I'm ok !"

2.4 字符串的替换、分隔与合并

字符串的替换

str.replace(old, new,[count])

old是需要替换的老字符串,

new是要换成的新字符串,

count是设置需要替换几次,默认为全部替换。这不是必须参数。

# 举例1

st1 = '我不不不喜欢学Python!'

# 默认全部替换

st2 = st1.replace('不','超',2)

print(st2)

# 设定替换几次

st3 = st1.replace('不','超')

print(st3)

我超超不喜欢学Python!

我超超超喜欢学Python!

字符串的分隔(分隔结果为列表)

string.split(str, num)

以str为标记来分隔

num设置需要分隔的次数,默认全部

a = '上海,123,321'

b = a.split(',')

c = a.split(',',1)

print(b,c)

['上海', '123', '321'] ['上海', '123,321']

字符串的合并

string.join(sequence)

string是需要以什么字符来连接,可以为空字符

sequence是需要连接的内容,数据格式可以是字符串或序列

lst1 = ['poi', '116.48295868847654', '39.888609210224466']

mark = ''

#连接字符串

st2 = mark.join(lst1)

print(st2)

poi116.4829586884765439.888609210224466

2.5 Python的字符串常用内建函数

指定范围内 str 出现的次数

string.count(str, beg=0, end=len(string))返回 str 在 string 里面出现的次数,beg 或者 end 指定则返回指定范围内 str 出现的次数

a = '1asdad asda'

a.count('s',0,len(a))

2

指定字符串的编码

string.encode(encoding=‘UTF-8’, errors=‘strict’)以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’

a = '1asdad asda'

a.encode(encoding='UTF-8', errors='strict')

b'1asdad asda'

len(string)返回字符串长度

b = 'absfas'

len(b)

6

大小写转化

全部变为大写str.upper()

全部变为小写str.lower()

大小写字符反转str.swapcase()

c = 'aBc'

print("全变为大写",c.upper())

d = 'aBc'

print("全变为小写",d.lower())

f = 'aBc'

print("大小写反转",d.swapcase())

全变为大写 ABC

全变为小写 abc

大小写反转 AbC

删除空格

str.lstrip()删除字符串前端的空字符

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

a = ' sasad s a '

print(a.lstrip())

print(a.rstrip())

sasad s a

sasad s a

判断是否为空字符

isspace()如果字符串中只包含空白,则返回 True,否则返回 False

a = ' '

a.isspace()

True

判断str是否包含在string中

string.find(str, beg=0, end=len(string))检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

string.index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在 string中会报一个异常

g = 'asdsdafasa dsasxa'

h = 'asa'

gg = g.find(h,0,len(g))

hh = g.index(h,0,len(g))

print(gg,hh)

7 7

判断是否全为数字

string.isdecimal()如果string只包含十进制数字则返回 True 否则返回 False.

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

string.isnumeric()如果 string 中只包含数字字符,则返回 True,否则返回 False

a = '18453'

print(a.isdecimal())

a = 'as23'

print(a.isdigit())

a = 'sdf'

print(a.isnumeric())

True

False

False

判断全为字母

string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

a = 'sdsfsds'

print(a.isalpha())

a = 'as23s'

print(a.isalpha())

True

False

2.6 字符串截取

str[起始位置:终止位置:间隔],取值为左闭右开,即取不到右边的值

d3643e66dfacd7e1c703da6c17da0745.png

# 遍历字符串

for i in 'acsahfnia':

print(i,end='\t')

acsahfnia

# 字符串截取

a = 'PYTHON'

b = a[0:2]

c = a[2:]

d = a[:3:2]

print(b,c,d)

PY THON PT

3. 正则表达式

3.1 正则表达式基础知识

fdde8addf82ea930568aca2df8af073b.png

571d71cdf8439561197223b4707a7ca4.png

40e2ef4dd86186351cf1c113a7fe7b23.png

2714b97a126ca249a680e1f42deec485.png

3.2 正则表达式实例

正则表达式:字符串模式中判断字符串是否符合一定的标准

search方法,进行比对查找,

创建匹配对象pattern

创建匹配字符串string

匹配方法

pattern.search(string)

re.search(pattern,string)

import re

# 创建模式对象

pattern = re.compile('AA') # 此处的AA,为正则表达式,用来验证是否在其他的字符串中

str1 = 'AdasdaHAA'

str2 = 'Asahdjksda'

str3 = 'AAAAAnasfAAdn'

res1 = pattern.search(str1)

res2 = pattern.search(str2)

res3 = pattern.search(str3)

print(res1,'\n',res2,'\n',res3)

None

import re

# 创建模式对象

pattern = re.compile('AA') # 此处的AA,为正则表达式,用来验证是否在其他的字符串中

str1 = 'AdasdaHAA'

str2 = 'Asahdjksda'

str3 = 'AAAAAnasfAAdn'

# 简写

res1 = re.search(pattern,str1)

res2 = re.search(pattern,str2)

res3 = re.search(pattern,str3)

print(res1,'\n',res2,'\n',res3)

None

findall( )方法,返回匹配的所有的匹配对象,结果为列表

# 匹配特定字母a

pattern1 = "a"

# 匹配A-Z中的所有大写字母

pattern2 = "[A-Z]"

# 匹配A-Z中的所有大写字母,连续的多个大写字母为一个字符输出

pattern3 = "[A-Z]+"

string = "AHjsadfjaHsd"

res1 = re.findall(pattern1,string)

res2 = re.findall(pattern2,string)

res3 = re.findall(pattern3,string)

print(res1,'\n',res2,'\n',res3)

['a', 'a']

['A', 'H', 'H']

['AH', 'H']

sub(匹配对象,替换目标对象,需要进行替换的字符串,替换次数,编译时匹配的模式),替换所有字符

string = 'ashsdjajsa'

# 把所有a换为A

re.sub('a','A',string,2)

'AshsdjAjsa'

re.match(pattern,string,flags=0)

pattern匹配的正则表达式

string要匹配的字符串

flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

group(num) 或 groups() 匹配对象函数来获取匹配表达式,在几个地方提取就有(0,num-1)个提取的数据。

import re

a = "CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、\

精品问答、职业培训、技术论坛、资源下载等产品服务,\

提供原创、优质、完整内容的专业IT技术开发社区."

pattern = 'CSDN'

print(re.match(pattern, a).span()) # 在起始位置匹配

print(re.match(pattern, a)) # 不在起始位置匹配

(0, 4)

pat = r"建于"

res = re.match(pat, a)

res

** 建议在正则表达式中,被比较的字符串前面加上r,就不用担心转义字符的问题了。**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值