四方显神

导航

Python(三) 字符串定义切片

字符串定义切片
1.字符串切片
2.字符串常用操作方法
3.列表及其使用场景
4.列表的循环遍历
5.列表嵌套
6.元组及其使用场景

 

1.python中字符串类型就是str
定义字符串
str1 = 'hello'
str2 = 'hello'
str3 = '''hello'''
# 三引号定义字符串 支持换行

python中的转义字符
引号必须成对出现,不能单独出现,而且python解析器在解析引号的时候采用就近原则
两种方式解决:①转义字符②外面双引,里面单引
str4 = 'i\'m tom'
str5 = "i'm tom"

2.字符串的输入
①input()可以阻断当前正在执行的代码,让系统处于等待状态
②input()方法接收到的所有数据,返回的数据类型都是字符串

3.字符串的输出
Ⅰ普通输出
Ⅱ格式化输出
# 普通输出
print('hello', 'china')
# 格式化输出:①百分号%s %d %f ②format方法 ③f形式
name = '檀健次'
age = 18
add = '广西'
print('我的名字是%s,今年%d岁,我家在%s' % (name, age, add))
print('我的名字是{},今年{}岁,我家在{}'.format(name, age, add))
print(f'我的名字是{name},今年{age}岁,我家在{add}')

4.字符串在计算机底层的存储粗类型
python中字符串属于序列结构。所以底层存储占用一段连续的内存空间。

推荐使用for循环遍历
# 遍历 用for循环或者while循环
str1 = 'hello'
for i in str1:
print(i)

print('-------------')
i = 0 #while循环的初始化计数器
while i < len(str1):
print(str1[i])
i += 1

 

5.字符串切片
切片是对操作对象截取其中一部分的操作。
实际工作中,切片也可以应用于列表、元组等数据序列
语法:
序列[开始位置下标:结束位置下标:步长]
①不包含结束位置下标对应的数据
②步长任意下标
口诀:切片其实很简单,只顾开头不管尾,步长为正,正向移动,步长为负,负向移动。
numstr = '0123456'
print(numstr[0:6:2])
print(numstr[:6:2])
print(numstr[:]) # 只有冒号的情况相当于负数的操作
print(numstr[::4]) # 只有步长从头取到尾,按步长取
print(numstr[:-1]) # 结尾位置是一个负数,-1表示倒数第一个数字
print(numstr[-4:-1]) # 起始位置# 和结束位置都是负数(要求:如果步长为正,必须起始位置与结束位置是从左向右)
print(numstr[-1:-4]) # 这样取不出任何数字,步长是正,但起始位置到结束位置是从右到左
print(numstr[-1:-4:-1]) # 这样就可以咯
print(numstr[::-1]) # 字符串翻转的一种手段


6.字符串的操作方法
str1 = '树树皆秋色,山山唯落晖'
# 字符串修改
# replace() 返回替换后的字符串
str2 = str1.replace('树', 'shu')
print(str2)
# 只想替换一次,也就是替换第一个‘树’
str3 = str1.replace('树', 'shu', 1)
print(str3)

# splip() 返回切割后的列表序列
str4 = str1.split(',')
print(str4) # 运行结果:['树树皆秋色', '山山唯落晖']因此这也是一种字符串转列表的一种方法

# join()用一个字符或者子串合并字符串,即是将多个字符串合并成一个新的字符串
list1 = ['初要专一', '次要广大', '三要脱化']
print(','.join(list1)) # 运行结果:初要专一,次要广大,三要脱化

str6 = 'i aM tom,niCe to mEet u'
# upper()和lower() 返回全部大写或者小写的字符串
print(str6.upper(), str6.lower())
# 字符串首字母大写
print(str6.title()) # 这里居然把中间不合适的大小写也调整过来了:I Am Tom,Nice To Meet U


7.字符串的判断语句
str1='伯仲之间见伊吕'
#startswith()检查字符串是否以指定子串开头,是则返回ture,否则返回false,如果设置了开始和结束下标,则在指定范围内检查
print(str1.startswith('伯仲'))
print(str1.startswith('伯仲',1,4))
#endswith()同理
print(str1.endswith('伊吕'))


8.练习题
'''
给定一个字符串,使用所学知识,从字符串中随机取出四个字符,生成验证码
'''
import random

mystr = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ123456789'
len = len(mystr)
code = ''
for i in range(4):
index = random.randint(0, len - 1) # randint取值是前后都是闭区间
code += mystr[index] # 这里字符串可以直接拼接
print(code)

posted on 2023-09-07 14:25  szdbjooo  阅读(476)  评论(0)    收藏  举报