字符串

字符串

简介
在非注释语句中,凡是用引号括起来的部分都是字符串

一、字符串的运算符

1、is和==的不同

# 字符串:
s1='abc'
s2="abc"
s3='''
abc
'''
#'''三引号占用的内存空间与单双引号的不同(前提:'''的内容不在一行上)
print(s1 == s2)   #比较的是内容
print(s1 is s2)    #比较的是地址

在这里插入图片描述

s1 = input('请输入:')     #'abc'
s2 = input('请输入:')     #'abc'
print(s1 == s2) #True
print(s1 is s2) #False

在这里插入图片描述
(常量赋值is是True,input输入底层做了处理所以最后的地址是不一样的)

2、字符串的运算符 + *

s3 = s1+s2 #+相当于拼接符
s4 = s1*5 #倍数
print(s3)
print(s4)

在这里插入图片描述

3、in 在…里面

name = 'steven'
result = 'tv' in name #返回值是布尔类型
print(result)

在这里插入图片描述

二、字符串的格式化

name = 'steven'
print('%s说:%s' % (name,'大家好好学习!'))
#r 保留原格式 有r 则不发生转义 没有r则发生转义(例如:\')
print(r'%s说:\'哈哈哈!\''%name)
print('%s说:\'哈哈哈!\''%name)

在这里插入图片描述

三、字符串的截取

1、正序

#[]  [:] 索引值从0-N
filename = 'picture.png'
#位置都是从0开始,位置也会称作下标或者索引
print(filename[5]) # 通过[]可以结合位置 获取有字母 特点:只能获取一个

在这里插入图片描述

# range(1,10) --类似-->[1:10]
print(filename[0:7]) #包前不包后
print(filename[3:7]) #截取字符串

在这里插入图片描述

#省略
print(filename[3:])#只要省略的是后面的,表示一直取到字符串的末尾
print(filename[:7])#只要省略的是前面的,表示从0开始取值

在这里插入图片描述

#负数
print(filename[8:-1])
print(filename[:-2])
print(filename[-1:])
print(filename[-5:-1])

在这里插入图片描述

2、逆序

[::-1] 最后一位不仅表示步长还表示方向

str1 = 'abcdefg'
print(str1[-1:-5:-1])     #gfed

在这里插入图片描述

四、字符串的内置函数

简介
声明一个字符串,默认可以调用内建函数(系统准备好的一些函数)

1、大小写相关的

应用:一般用于开发中用户名的输入和验证
capitalize() title() upper() lower()

message = 'zhaorui is a beautiful girl'
msg = message.capitalize() #将字符串的第一个字符转成大写
print(msg)
msg = message.title()#将每个单词的每一个字母都大写
print(msg)
msg = message.upper()#将字符串全部转成大写
print(msg)
msg = message.lower()#将大写全部都转为小写
print(msg)

在这里插入图片描述

2、查找和替换

find() rfind() lfind() index() rindex() lindex() replace()

s1 = 'index lucy lucky goods'
result = 'R' in s1
print(result)  #返回布尔值
position = s1.find('R')  #返回值是-1代表没有找到
print(position)
position =s1.find('l') #如果可以找到则返回字母第一次出现的位置
print(position)
#find('要查找的字符',开始位置,结束位置)
p=s1.find('l',position+1) #根据第一次出现的位置往后继续查找即指定开始的位置查找
print(p)

在这里插入图片描述

#rfind 从右侧开始查找
#index 跟find() 方法一样,只不过如果str不在字符串中会报一个异常
# p = 'hello'.index('x')
# print(p)  #报异常ValueError: substring not found
#替换replace(old,new,[max])
s1 = 'index lucy lucky goods'
s2=s1.replace(' ','',2)
print(s2)

在这里插入图片描述

3、编码

encode编码 decode解码

msg = '上课啦,认真听讲!' #中文的
#gbk中文 #   gb2312简体中文
result = msg.encode('utf-8')
print(result)
#解码
m = result.decode('utf-8')
print(m)

在这里插入图片描述

4、startswith() endswith()

startswith()判断是否是以xxx开头的,或者endswith判断是否是以xxx结尾的,返回值都是布尔类型True False
应用:文件上传 只能上传图片(jpg,png,bmp,gif)

filename ='笔记本.doc'
result = filename.endswith('txt')
print(result)

s = 'hello'
result=s.startswith('he')
print(result)

在这里插入图片描述
补充:在开发中简单的小应用

path = input('请选择文件:')
#分析:要上传的文件路径path--》文件名--》通过文件名再判断是否是图片类型
p = path.rfind('\\')  #\\表示转义之后的一根杠
filename = path[p+1:]  #通过切片截取文件名字
#判断是否是图片类型?
if filename.endswith('jpg') or filename.endswith('png') or filename.endswith('bmp'):
    print('是图片允许上传')
else:
    print('不是图片格式,只能上传图片')

5、isalpha() isdigit()

isalpha()是否是字母 isdigit()是否是数字

s = 'abcd'
result = s.isalpha()
print('result=',result)

s='6688'
result=s.isdigit()
print(result)

在这里插入图片描述
应用

sum = 0
i = 1
while i<=3:
    num = input('请输入数字:')

    if num.isdigit():
        num = int(num)
        sum+=num
        print('第{}个数字累加成功!'.format(i))
        i+=1
    else:
        print('不是数字!')
print('sum=',sum)

在这里插入图片描述
其他:
isnumeric()如果字符串中只包含数字字符,则返回True,否则返回False
isspace()如果字符串中只包含空白,则返回True,否则返回False

6、拼接、分割、去除空格

join(seq)
以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串

new_str ='-'.join('abc') #将abc用-连接构成一个新的字符串
print(new_str)

list1=['a','l','l','o','w']
result=''.join(list1)
print(result)
print(type(result))  #返回一个新的字符串

在这里插入图片描述
split分割字符串,将分割后的字符串保存到列表中

s = 'hello world hello 2021'
result = s.split(' ',2)#表示按照空格作为分割符,分割字符串2次
print(result)
n = s.count(' ')#count(args)求字符串中指定args个数
print(n)

在这里插入图片描述
lstrip去掉左边空格 rstrip去除右边空格 strip()去除左右两侧空格

s = '     hello     '
s = s.lstrip()
print(s+'8')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值