Python学习记录——구 字符串

目录

1、输入

2、输出

3、表达

4、下标

5、常用操作方法

1、查找

2、修改

3、判断

4、切割和替换


1、输入

使用input()来接收

password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))

请输入您的密码:123
您输入的密码是123
<class 'str'>
input输入的内容会当做字符串处理

2、输出

有三种方式,在之前的笔记中提过:

print('hello world')

name = 'SFD'

print('我的名字是%s' % name)

print(f '我的名字是{name}')

3、表达

python中用单双三引号引起字符串,C语言是双引号。三引号中三个为单为双都可。

对于三引号:

s = '''asd'''
print(type(s))
print(s)


g = """dfg"""
print(type(g))
print(g)

<class 'str'>
asd
<class 'str'>
dfg


而如果改变字符串:

s = '''a
sd'''
print(type(s))
print(s)

g = """d
fg"""
print(type(g))
print(g)

<class 'str'>
a
sd
<class 'str'>
d
fg

这与单双引号不同

s = 'as' \
    'd'
print(type(s))
print(s)

g = "df" \
    "g"
print(type(g))
print(g)

<class 'str'>
asd
<class 'str'>
dfg

如果要输出的字符串含有单引号,用双引号括起来还可以正常用,但是用单引号就会出错

c = "asd'asd"
print(c)
print(type(c))

asd'asd
<class 'str'>

如果要用单引号,则需求转义字符串中的单引号

c = 'asd\'asd'
print(c)
print(type(c))

这样就能正常打印。

4、下标

下标就是索引。print(str[0]),与C语言相同,从0开始。下标用来查找具体的数据

切片则是截取一部分。公式为序列[开始位置下标:结束位置下标:步长],从开始到结束下标是左闭右开。步长默认为1,正负都可

不写开始位置,表示从0开始

不写结束位置。表示截取到最后

开始和结束不写,表示截取所有

步数为负,表示倒叙截取,从右向左。为正则是从左向右

下标-1表示倒数第一个数据,然后向前类推

s = "abcdefg"
print(s[2:4])
print(s[:4])
print(s[4:])
print(s[:])
print(s[-3:-1])
print(s[-1:-3])#即使用负号来指定位置,也还是只能从左到右做切片。最后一个没结果,也不会报错
print(s[4:1:-1])#第三个参数为步长,默认为1,设定为-1就可以从右到左,如果给的头尾无法满足从右到左提取字符串,就什么也不输出,也不报错

cd
abcd
efg
abcdefg
ef

edc

5、常用操作方法

对字符串做操作,不会影响原字符串,而是生成一个新字符串来表示结果。包括切片。

1、查找

查找子串在字符串的位置和出现次数。运用三个函数

find()

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。

语法:字符串序列.find(子串,开始位置下标,结束位置下标),两个下标可省略

rfind()功能相同,查找方向从右侧开始。不过下标还是从左开始。比如print(str.rfind('wart', 10, 11))还是-1

str = "sfasda asdwart gjtyj"
print(str.find('wart'))
print(str.find('wart', 15, 20))
print(str.find('wart', 2, 11))
print(str.find('wart', 2, 14))
print(str.find('wart', 10, 11))
print(str.find('wart', 10, 14))
print(str.find('wart', 11, 14))
print(str.find('qqq'))

10
-1
-1
10
-1
10
-1
-1

index()

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则报错。

语法同find

rindex()功能相同,查找方向从右侧开始

str = "sfasda asdwart gjtyj"
print(str.index('wart'))
print(str.index('wart', 15, 20))
print(str.index('wart', 2, 11))
print(str.index('wart', 2, 14))
print(str.index('wart', 10, 11))
print(str.index('wart', 10, 14))
print(str.index('wart', 11, 14))
print(str.index('qqq'))

find显示-1的行,index会直接报错。

count()

返回某个子串在字符串中出现的次数

str = "sfasda asdwart gjtyj"
print(str.count('asd', 2, 12))
print(str.count('asd', 4, 12))
print(str.count('asd', 2, 8))
print(str.count('asd', 5, 9))

2
1
1
0

2、修改

replace()

语法:字符串序列.replace(旧子串,新子串, 替换次数),如果替换次数不写,则全部替换

str = "sfasda asdwart gjtyj"
str1 = str.replace('asd', 'lku')
print(str)
print(str1)

sfasda asdwart gjtyj
sflkua lkuwart gjtyj

调用replace函数后,原有字符串并没有做到修改,修改后的数据是replace函数的返回值,需要另设变量来存储。这样说明str这个字符串是不可变数据类型。数据可分为可变类型和不可变类型。

替换次数即使多了,也没有关系,会替换完所有对象。

split()

按照指定字符分割字符串

语法:字符串序列.split(分割字符, num)。num表示的是分割字符出现的次数,即将来返回数据个数为num+1个

str = "sfasda asdwart gjtyj asdfgbtyh fghasdfhty"
list1 = str.split('asd')
print(list1)
list2 = str.split('asd', 2)
print(list2)
list3 = str.split('asd', 3)
print(list3)

['sf', 'a ', 'wart gjtyj ', 'fgbtyh fgh', 'fhty']
['sf', 'a ', 'wart file:/E:/codes/gjtyj asdfgbtyh fghasdfhty']
['sf', 'a ', 'wart gjtyj ', 'fgbtyh fghasdfhty']
 

join()

用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串

语法:字符或子串.join(多字符串组成的序列)

list = ['sd', 'tf', 'yh']
new_list = '...'.join(list)
print(new_list)

sd...tf...yh

capitalize()

将字符串第一个字符转换为大写。

str = "rygfbhgzs"
print(str.capitalize())

Rygfbhgzs

title()

将字符串每个首字母都转换成大写

str = "rygfbhgzs thynhu ukoqlkn"
print(str.title())

Rygfbhgzs Thynhu Ukoqlkn

lower()

大写转小写

str = "rYgFbHGzs thynhU ukOQLkn"
print(str.lower())

rygfbhgzs thynhu ukoqlkn

upper()

小写转大写

str = "rygfbhgzs thynhu ukoqlkn"
print(str.upper())

RYGFBHGZS THYNHU UKOQLKN

lstrip()

删除字符串左侧空白字符

rstrip()

删除字符串右侧空白字符

strip()

删除字符串两侧空白字符

str = "    rygfbhgzs thynhu ukoqlkn    "
str1 = str.lstrip()
str2 = str.rstrip()
str3 = str.strip()
print(str1)
print(str2)
print(str3)

rygfbhgzs thynhu ukoqlkn    
    rygfbhgzs thynhu ukoqlkn
rygfbhgzs thynhu ukoqlkn
 

ljust()

返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

语法:字符串序列.ljust(长度,填充字符)

rjust()

返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

center()

返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

str = 'hello'

str
'hello'
str.ljust(10)
'hello     '
str.ljust(10, '.')
'hello.....'
str.rjust(10)
'     hello'
str.center(10)
'  hello   '
str.center(11)
'   hello   '
str.center(10, '.')
'..hello...'
str.center(11, '.')
'...hello...'

3、判断

返回的结果是布尔型数据类型:True或False

startswith()

检查字符串是否以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

语法:字符串序列.startswitch(子串,开始位置下标,结束位置下标)

str = "fiwegh2sfv asd  kjvbdop sfio"
print(str.startswith('f'))
print(str.startswith('fiw'))

True
True

endswith()

检查字符串是否以指定子串结尾,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查

str = "fiwegh2sfv asd  kjvbdop sfio"
print(str.endswith('i'))
print(str.endswith('fio'))

False
True

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False

isdigit()

如果字符串只包含数字则返回True,否则返回False

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

isspace()

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

str = "fiwegh2sfvasdkjvbdopsfio"
print(str.isalpha())
print(str.isdigit())
print(str.isalnum())
str1 = ""
print(str1.isspace())
str2 = " "
print(str2.isspace())

False
False
True
False
True
 

4、切割和替换

strip()函数,可以去掉字符串左右两端的空白符,包括空格,\t,\n。如果去掉字符串中间的空白符的函数,可以用replace()函数,两个参数,把所有第一个参数都替换成第二个参数。

切割函数split(),用括号中的参数来切割,用谁切割,字符串中谁就会消失,剩下的部分一个个都放在列表中。

s = "ab_cde_fg"
print(s.split("_"))
print(s.split("_cd"))
print(s)

['ab', 'cde', 'fg']
['ab', 'e_fg']
ab_cde_fg

原字符串不会发生变化

如果想把一个列表中的所有字符串给连接起来,用join函数。join括号里带上要连接的列表,前面加上连接用的字符,比如"_".join(list),也可以不加,直接s = join(list)就把拼接好的字符串给了s。

结束。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值