IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python字符串 -> 正文阅读

[Python知识库]python字符串

1.字符串

' '? ? ? ? 单引号? ? ? ? " "? ? ? ? 双引号的地址相同

''' '''? ? ? ? 三引号代表原格式输出,地址和单双引号不同

==? ? ? ? is? ? ? ? 的区别:

==是比较内容,is是比较地址

input为底层内置函数,地址不同

s1 = 'abc'
s2 = "abc"
s3 = '''
abc'''
print(s1, s2, s3, id(s1), id(s2), id(s3))  # '''三引号占用的空间与单双引号不同('''三引号不在一行)

print(s1 == s2)  # 比较的是内容
print(s1 is s2)  # 比较的是地址
print(s2 == s3)
print(s2 is s3)

s4 = input()  # input 内置函数,地址不同,输入123
s5 = input()
print(s4 == s5)  # ture
print(s4 is s5)  # false
# 常量赋值is为Ture,input输入底层做了处理所以地址不同

运行结果:?

abc abc 
abc 2458593807304 2458593807304 2458594768408
True
True
False
False
123
123
True
False

?运算符

+????????相当于拼接

*????????相当于倍数

in?????????在...里面

not in? ? ? ? 不在...里面

# 字符串的运算符:+ *
s1 = 'abc'
s2 = 'def'
s3 = s1 + s2  # +相当于拼接
s4 = s1 * 5  # *倍数
print(s3)
print(s4)

# in 在...里面
name = 'hello'
result = 't' in name  # 返回值为布尔类型 Ture False
print(result)

# not in 不在...里面

运行结果:

abcabc
abcabcabcabcabc
False?

字符串的格式化:

%? ? ? ? 格式化表示

r? ? ? ? 保留原格式,有r不发生转义

\n换行  \r回车  \'单引号  \"双引号  \t制表位4空格
# % 字符串的格式化
print('%s说:%s' % (name, '大家好好学习'))

# r 保留原格式 有r则不发生转义,没有则转义(例如:\')
print(r'%s说:\'hahaha\' ' % name)  


# 运行结果:
# hello说:大家好好学习
# hello说:\'hahaha\' 

2.字符串的下标

# []  [:]
filename = 'picture.jpg'
print(filename[5])  # 通过[] 结合位置 获取字母 特点:只能获得一个字母,从0开始,包前不包后
# range(1,10)  类似[1:10] 包前不包后
print(filename[0:9])
# 省略
print(filename[3:])  # 省略后面,取到结尾
print(filename[:7])  # 省略前面,从0取值
# 负数
print(filename[7:-2])
print(filename[:-2])
print(filename[-2:-3])  # 从左往右取值,从左往右是-1,-2...
# [::]
print(filename[::-1])  # 倒叙输出,第三个数值的正负情况代表方向

str1 = 'abcdefg'
print(str1[-1:-5:-1])  
print(str1[0:-5:-1])
print(str1[5:0:-1])  # -1代表方向
print(str1[-1:-5:-1])
print('---', str1[-7:-2:2])

# str[start:end:方向和步长]

运行结果:?

r
picture.j
ture.jpg
picture
.j
picture.j
        空的
gpj.erutcip
gfed
        空的
fedcb
gfed
--- ace

3.字符串的内建函数

声明一个字符串,默认可以调用的

1)第一部分:大小写相关的

capitalize()? ? ? ? ?将字符串的第一个字母大写

title()? ? ? ? 将字符串的每个单词首字母大写

upper()? ? ? ? 将字符串的每个字符都大写

lower? ? ? ? 将字符串的每个字符都小写

istitle()? ? ? ? 判断字符串的每个单词是否是大写,返回值为布尔类型

message = 'zhangsan is a beautiful girl !'
message1 = message.capitalize()  # 将字符串的第一个字符改为大写
print(message1)

message2 = message.title()  # 将字符串每个单词首字母大写
print(message2)

message3 = message.upper()  # 将字符串每个字母转为大写
print(message3)

message4 = message3.lower()  # 将字符串每个字母转为小写
print(message4)

运行结果:

Zhangsan is a beautiful girl !
Zhangsan Is A Beautiful Girl !
ZHANGSAN IS A BEAUTIFUL GIRL !
zhangsan is a beautiful girl !

2)第二部分:查找替换相关

find()? ? ? ? 查找,返回值为字母第一次出现的位置,返回值为-1则没找到

find('要查找的字符', start, end)? ? ? ? 指定范围查找

rfind()? ? ? ? 从左开始查找

lfind()? ? ? ? 从右开始查找

index()? ? ? ? 用法同find,但是没有找到会报错

rindex()

lindex()

replace()? ? ? ? replace(old, new, 替换次数)

s1 = 'hello money good sha'

result = 'l' in s1
print(result)

position = s1.find('b')  # 返回值为-1则没找到
print(position)

position = s1.find('l')  # 如果可以找到则返回字母第一次出现的位置
print(position)

# find('要查找的字符',start,end)
p = s1.find('a', position + 1, len(s1) - 5)  # 指定开始位置查找
print(p)

ur1 = 'https://img.alicdn.com/imgextra/i4/O1CN01ureDCo1Pr2PUifCqa_!!6000000001893-2-tps-520-280.png'
p = ur1.rfind('/')  # right find 从右开始查找检索
filename = ur1[p:]
print(filename)

'''
index() 与find方法一样,查找没有结果会报异常
s1 = 'hello money good sha'
result = s1.index('b')
print(result)
'''

# 替换
# replace(old,new,替换次数)
s1 = 'hello money good sha'
s2 = s1.replace(' ', '#')
print(s2)

运行结果:

True
-1
2
-1
/O1CN01ureDCo1Pr2PUifCqa_!!6000000001893-2-tps-520-280.png
hello#money#good#sha

3) 第三部分:字符串编码解码

encode()? ? ? ? 编码

decode()? ? ? ? 解码

# 编码:
msg = '开学了,要上学了'  # 中文
# gbk 中文 gb2312 简体中文
result = msg.encode('utf-8')
print(result)

# 解码:
m = result.decode('utf-8')
print(m)


运行结果:
b'\xe5\xbc\x80\xe5\xad\xa6\xe4\xba\x86\xef\xbc\x8c\xe8\xa6\x81\xe4\xb8\x8a\xe5\xad\xa6\xe4\xba\x86'
开学了,要上学了

4) 第四部分:字符串判断开头结尾,是否为数字

startswith()? ? ? ? startswith判断是否为---开头

endswith()????????endswith判断是否为---结尾

isalnum()? ? ? ? 字符串至少一个字符且都是字母数字返回真

isalpha()? ? ? ? 字符串至少一个字符且都是字母返回真

isdigit()? ? ? ? 字符串至少一个字符且都是数字返回真

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

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

s = 'abcd6'
result = s.isalpha()
print(result)

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

'''
运行结果:
True
True
False
True
'''

5) 第五部分:字符串内建函数join等

join()? ? ? ? '+'.join('abc')? ? ? ? 将abc用+连接起来为新的字符串

strip()? ? ? ? 去除字符串空格

split()? ? ? ? 分割字符串,将分割后的保存在列表中

count()? ? ? ? 求字符串中指定检索内容的数量

new_str = '-'.join('abc')
print(new_str)

list1 = ['a', 'v', 'b', 'd']
result = ''.join(list1)
print(result)

# strip 去除字符串空格  lstrip左侧空格   rstrip右侧空格
s = '   hello   '
s = s.strip()
print(s + '8')

# split() 分割字符串,将分割后的字符串保存在列表里
s = 'hello world hello kitty'
s = s.split()
print(s)
# split(' ',2) 按照空格作为分隔符,切割两次

# count 求字符串中指定检索内容的数量   count(abc) 求字符串中abc的个数
s = 'hello world hello kitty'
n = s.count(' ')
print('个数', n)


'''
运行结果:
a-b-c
avbd
hello8
['hello', 'world', 'hello', 'kitty']
个数 3
'''

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:18:30  更:2021-08-05 17:20:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 9:48:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码