Day2--------字符串

目录

一、基础知识

1、表示: 单引号 双引号 三引号

2、下标

3、切片 变量[start:end:step]

4、字符串查找相关操作

4、字符串替换、切割、拼接

5、其他方法

二、训练

题目1 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目2 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目3 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目4 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案

题目5 [加强训练]

题干

训练目标

训练提示

参考方案

操作步骤

参考答案


一、基础知识

1、表示: 单引号 双引号 三引号

2、下标

my_str='hello'
# 变量[下标]
print(my_str[0])
# len() 字符串长度
print(len(my_str))
# 获取最后一个元素
print(my_str[-1])
print(my_str[len(my_str)-1])

3、切片 变量[start:end:step]

# 获得到新字符串
# 不包含end对应下标
# step默认为1,可以不写
print(my_str[2:4:1])
# end不写,表示len(),可以取到最后一个元素
print(my_str[2:])
# start不写,表示0
print(my_str[:3])
# :不能一个都不写
print(my_str[:])
# 步长可以是负数
print(my_str[3:1:-1])
# 逆置
print(my_str[::-1])
# 其他
print(my_str[-4:-1])
print(my_str[::2])

4、字符串查找相关操作

my_str='hello world itcast and itcastcop'

# find() 查找是否存在某个字符串  返回下标 没找到返回-1
# find(要查找的内容,开始位置,结束位置)
print(my_str.find('hello'))
print(my_str.find('hello',3)) # 没找到返回-1
print(my_str.find('itcast'))
print(my_str.find('itcast',15))
# rfind() 从右边开始查找 返回正下标
print(my_str.rfind('itcast'))

# index() 查找是否存在某个字符串  返回下标 没找到报错
print(my_str.index('hello'))
# print(my_str.index('hello',5)) 没有找到报错

# rindex() 从右边开始查找

# count() 统计出现次数
print(my_str.count('aaa'))
print(my_str.count('hello'))
print(my_str.count('itcast'))
print(my_str.count('itcast',20))

4、字符串替换、切割、拼接

# 字符串替换
# replace(old_str,new_str,count)
# count 替换次数 默认全部替换
# 返回: 得到一个新字符串,不改变原来字符串
print(my_str.replace('itcast','itheima'))
print(my_str.replace('itcast','itheima',1))

# 字符串切割
# split(sub_str,count)  将原字符串按照指定的字符串切割,count表示切割次数
# sub_str 默认空格
# 返回一个列表 不包含切割的字符
# partition() 包含切割的字符
print(my_str.partition('itcast'))
print(my_str.split())
print(my_str.split('itcast'))
print(my_str.split('itcast',1))
# rsplit() 从右边切割

# 字符串拼接
# join(可迭代对象) 不改变原字符串
# 可迭代对象 字符串,列表(字符串类型)
# 将字符串添加到可迭代对象的两个元素之间
print('**'.join('hello'))
my_list=['hello','ly','adfs']
print('*_*'.join(my_list))

5、其他方法

my_str.capitalize() # 字符串首字符大写
my_str.title() # 字符串所有首字符大写
my_str.upper() # 字符串全部大写
my_str.lower() # 字符串全部小写
my_str.islower() # 字符串是否小写
my_str.startswith('hello') # 是否以..开头
my_str.endswith('aa')   # 是否以..结尾
my_str.center(30)  #在某段长度居中
my_str.ljust(30)    #左对齐
my_str.rjust(30)    #右对齐
my_str.lstrip()     #去除左边空格
my_str.rstrip()     #去右边空格
my_str.strip()      #去除两边空格
my_str.isspace() #判断是否有空格
my_str.isalnum() #是否字母或数字
my_str.isdigit() #否纯数字

二、训练

题目1 [加强训练]

题干

如果需要使用变量保存以下字符串,我们该如何书写代码

鲁迅说:"我没有说过这句话"

训练目标

让学员知道含有字符串嵌套的方式

训练提示

在python中,有两种表现形式都可以定义为字符串类型,是哪两种方式,是否可以混合使用呢

参考方案

使用 " " 和 ' ' 都可以对字符串进行定义

操作步骤

  1. 想要在在一个字符串中包含双引号"", 字符串可以使用单引号定义
  2. 想要在在一个字符串中包含单引号'', 字符串可以使用双引号定义

参考答案

# 在python中,''可以嵌套在""中,用以表示字符串中的字符串
words = "鲁迅说:'我没有说过这句话'"
print(words)

# 还可以使用三引号
words = """鲁迅说:'我没有说过这句话'"""
print(words)

题目2 [加强训练]

题干

做一个简单的用户信息管理系统: 提示用户依次输入姓名,年龄和爱好 并且在输入完成之后,一次性将用户输入的数据展示出来

训练目标

字符串的声明 字符串的输入 字符串的输出

训练提示

  1. 在python中,通过 "" 或者 '' 声明一个字符串类型的变量
  2. 使用input()函数从键盘获取数据
  3. 通过%s 的格式化操作符来输出字符串类型

参考方案

  1. 通过input函数进行字符串数据的录入
  2. 使用 string 类型保存录入的数据
  3. 使用 %s 格式化输出保存的数据

操作步骤

  1. 通过input函数进行字符串数据的录入
  2. 使用 string 类型保存录入的数据
  3. 使用 %s 格式化输出保存的数据

参考答案

# 录入数据,并保存在变量中
name = input("请输入姓名:")
age = input("请输入年龄:")
hobby = input("请输入您的爱好:")

# 格式化输出数据
print("您的姓名是%s, 您的年龄是%s, 您的爱好是%s" % (name, age, hobby))
# 使用 f-string
print(f"您的姓名是{name}, 您的年龄是{age}, 您的爱好是{hobby}")

题目3 [加强训练]

题干

现有字符串如下,请使用切片提取出ceg words = "abcdefghi"

训练目标

字符串的切片使用

训练提示

1, 切片的语法:[起始:结束:步长] 2, 选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身), 3, 步长表示选取间隔,默认步长是正值,即从左到右选取,如果步长为负值,则从右向左选取

参考方案

1,使用切片进行截取,起始位置是-7,结束位置是-1 2,反向选取,步长为2

操作步骤

  1. 起始位置为-7,结束位置是-1,步长为2

参考答案

a = "abcdefghi"

b = a[-7:-1:2]
print(b)

题目4 [加强训练]

题干

james有一个关于爬虫的项目,他需要在一个字符串中查找python这个关键字, 当前他通过index()函数进行查找,虽然可以实现查找的需求,但是总会在 没有查找到关键字的时候报错,为什么会报错,如何优化?

训练目标

  1. 理解find函数和index函数的区别

训练提示

  1. find函数如果查找到则返回索引值,如果查不到,则返回-1
  2. index函数如果查找到则返回索引值,如果查不到,则报错

参考方案

  1. 通过使用find函数的方式替换掉index

操作步骤

  1. 通过使用find函数的方式替换掉index

参考答案

只需要使用find函数替换掉index函数即可,在功能上, find函数index函数完全一致,不同的是index函数在没有查找到关键字的情况下会报ValueError的异常,因此在一般开发环境下通常都会使用find函数

题目5 [加强训练]

题干

1,判断单词great是否在字符串words中,如果在,则将每一个great后面加一个s, 如果不在则输出 great不在该字符串中 2,将整个字符串的每一个单词都变成小写,并使每一个单词的首字母变成大写 3,去除首尾的空白,并输出处理过后的字符串

words = " great craTes Create great craters, But great craters Create great craters "

训练目标

  1. 字符串的相关操作

训练提示

  1. 字符串的相关操作来解决上述问题
  2. 使用判断语句来判断语句成立的条件

参考方案

  1. 使用in判断某一个子字符串是否在母字符串中
  2. 使用replace函数替换子字符串
  3. 使用lower函数将字符串变为小写
  4. 使用title函数将单词的首字母大写
  5. 使用strip函数去除字符串首尾的空白

操作步骤

  1. 使用in判断某一个子字符串是否在母字符串中
  2. 使用replace函数替换子字符串
  3. 使用lower函数将字符串变为小写
  4. 使用title函数将单词的首字母大写
  5. 使用strip函数去除字符串首尾的空白

参考答案

words = " great craTes Create great craters, But great craters Create great craters "

# 判断单词great是否在这个字符串中
if 'great' in words:
	# 将每一个great替换成greats
    words = words.replace("great", "greats")

    # 将单词变成小写
    words = words.lower()

    # 将每一个单词的首字母都大写
    words = words.title()

    # 去除首尾的空白
    words = words.strip()

    # 最后进行输出
    print(words)

else:
    print("great不在该字符串中")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小步调LLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值