自学python 进击之路 - 字符串

171 阅读5分钟

src=http___pic3.zhimg.com_v2-2c39f6d63e0f0062ecda5918786576e7_1200x500.jpg&refer=http___pic3.zhimg.jpg 本人是个前端的无名小卒,为了自己的更好的机遇,努力自学python,望有志同道合的大佬可以交流一下

字符串

1.1字符串的定义

如果有的同僚学习前端的知识,都会接触的是JavaScript上的字符串,在定义变量为字符串的时候,变量带引号就是字符串呢

 let name =  '我是好男人' ;  //那么这个我是好男人就是字符串

在 python 中, 带引号的内容就是字符串. 在python 中, 字符串可以乘上一个整数

 # 单引号 
 name = 'isaac' 
 print(type(name), name) # <class 'str'> isaac
 
 # 双引号 
name = "isaac"
print(type(name), name) # <class 'str'> isaac

# 三引号
my_str = """hello world hello python"""
print(type(my_str), my_str)  # <class 'str'> hello world hello python

my_str1 = '''hello world hello python'''
print(type(my_str1), my_str1)  # <class 'str'> hello world hello python

# 如果字符串本身包含单引号,使用双引号定义 ,如果包含双引号可以使用单引号定义,或者统一使用三引号引号
my_str2 = "my name is 'good man'"  # <class 'str'> my name is 'good man'
print(type(my_str2), my_str2) 


# 字符串乘上一个整数
my_str3 = 'good' * 5 # <class 'str'> goodgoodgoodgoodgood
print(type(my_str3), my_str3)

1.2 字符串的输入与输出

输入

# 输入 input()
# python中提供了input()函数可以用于接收字符串的输入,并且会将输入内容转化为字符串类型,如需将其转化为整型等数据类型,可以使用数据类型转化函数。除此之外,可以使用变量对用户输入的信息进行保存
# 字符串的输入
a = input('请输入你的名字')  # 老铁
print(type(a), a)

age = int(input('请输入你的年龄'))   # 输入num 18
print(type(age), age)  # class ’int‘ 18

输出

  # 字符串的输出可以是使用 print() 函数
print('hello python')
# 常用字符串格式化
# 格式化字符串用%s
# 格式化整数用%d
# 格式化浮点实数%f
name = '老帅了'
age = 18
position = '学生'
score = 78.5
address = '上海科技城'

print("姓名:%s" % name)
print("年龄:%s" % age)
print("职业:%s" % position)
print("成绩:%f" % score)
print("地址:%s" % address)

输出的结果

Snipaste_2021-05-14_20-10-50.png

1.3 下标

#  下标也称为是索引 ,是一个整形数字,可以是正数,也可以是负数
#  正数下标是从0开始的,表示第一个字符,-1表示最后一个字符
my_str = 'hello'
# 下标的用法 变量[下标]
print(my_str[0])  # h
print(my_str[1])  # e

print(my_str[-1])  # o
print(my_str[-3])  # l

# len() 函数可以得到字符串的长度
print(len(my_str))  # 5
# 使用正数下标书写字符串中的最后一个元素
print(my_str[len(my_str)-1])   # o

print(my_str[len(my_str)-3])  # l

Snipaste_2021-05-14_20-23-06.png

1.4 切片

# 切片可以获取一段数据,多个数据,下标
# 切片的语法 : 变量[start:end:step],会得到一个新的字符串
# start 开始位置的下标
# end 结束位置的下标 不包含end 对应的下标
# step 步长,下标之间的间隔 ,默认是1
my_str = 'hello'
my_str1 = my_str[2:3:1]
print(my_str1)
# step 如果是1,即默认值。可以不写
my_str2 = my_str[2:4]
print(my_str2)
# end 位置不写,表示是len(),即可以取到最后一个元素
my_str3 = my_str[2:]
print(my_str3)
# start 位置也可以省略不写,表示为0
my_str4 = my_str[:3]
print(my_str4)
# start 和 end 都不写,但是冒号需要写-
my_str5 = my_str[:]
print(my_str5)

1.5 查找方法

find() & rfind

my_str = 'hello world itcast and itcastcpp'

# find() 在字符串中查找是否存在某个字符串
# sud_str : 要在字符串中查找的内容类型 str
# start : 开始位置 ,从哪里开始查找.默认是0
# end : 结束的位置,查找到哪里结束 ,默认len()
# 返回值:即方法执行的结果是什么.如果找到sub_str ,返回的sub_str 在 my_str 中的位置的正数下标
# 如果没有找到返回-1
index = my_str.find('hello')
print(index)  # 0
# 从下标为3 的位置.开始查找字符串 hello
print(my_str.find('hello', 3))  # -1
print(my_str.find('itcast'))  # 12
print(my_str.find('itcast', 15))   # 23
# rfind()=> right find() 从右边(后面) 开始查找
print(my_str.rfind('and'))   # 23

index & rindex()

my_str = 'hello world itcast and itcastcpp'

# index() 在字符串中查找是否存在某个字符串
# my_str.index(sub_str, start , end)
# sud_str : 要在字符串中查找的内容类型 str
# start : 开始位置 ,从哪里开始查找.默认是0
# end : 结束的位置,查找到哪里结束 ,默认len()
# 返回值:即方法执行的结果是什么.如果找到sub_str ,返回的sub_str 在 my_str 中的位置的正数下标
# 如果没有找到,会报错
print(my_str.index('hello'))  # 0
# print(my_str.index('hello', 3))  # 没有找到,代码报错
#  rindex() 从后边开始查找
print(my_str.index('itcast'))  # 12
print(my_str.rindex('itcast'))  # 23

count

my_str = 'hello world itcast and itcastcpp'

# count(sub_str , start , end) 统计出现的次数
print(my_str.count('aaa'))   # 0
print(my_str.count('hello'))   # 1
print(my_str.count('itcast'))   # 2
print(my_str.count('itcast', 20))   # 1

1.6 字符串替换方法

# my_str.replace(old_str,new_str,count) 字符串的替换 ,将my_str种的old_str中的old_str 替换成new_str
# old_str:将要被替换的字符串
# new_str: 新的字符串,替换成的字符串
# count : 替换的次数,默认是全部的替换
# 返回值: 得到一个新的字符串,不会改变原来的字符串
my_str = 'hello world itcast and itcastcpp'

my_str1 = my_str.replace('itcast', 'itheima')
print('my_str:', my_str)  # my_str: hello world itcast and itcastcpp
print('my_str1:', my_str1)  # my_str1: hello world itheima and itheimacpp

my_str2 = my_str.replace('itcast', 'itheima', 1)
print('my_str2:', my_str2)  # my_str2: hello world itheima and itcastcpp

1.7 字符串分隔 split()

my_str = 'hello world itcast and itcastcpp'

#  my_str.split(sud_str, count) 将my-str字符串sub_str 进行切割
# sub_str: 按照什么内容来切割字符串,默认是空白字符 ,空格 ,tad键
# count :切割几次,默认是全部切割
# 返回值:列表[]
result = my_str.split()  # 按照空白字符,全部切割
print(result)  # ['hello', 'world', 'itcast', 'and', 'itcastcpp']


print(my_str.split('itcast'))  #  ['hello world ', ' and ', 'cpp']
print(my_str.split('itcast', 1))  # ['hello world ', ' and itcastcpp']
print(my_str.rsplit('itcast', 1))  #  ['hello world itcast and ', 'cpp']

1.8 字符串链接 join()

# my_str.join (可迭代对象)
# 可迭代对象,str 。列表(需要列表中的每一个数据都是字符串类型)
# 将my_str 这个字符串添加到迭代对象的两个元素之间
# 返回值 : 一个新的字符串,不会改变原字符串的值


my_str = '_'.join('hello')
print(my_str)  # h_e_l_l_o


#  定义列表
my_list = ['hello', 'cpp', 'python']

print('_'.join(my_list))   # hello_cpp_python
print('_*_'.join(my_list))   # hello_*_cpp_*_python

学习路还很长,一步步增强自己