python基础 2 字符串的操作

  • 1 字符串

    • 1.1字符串的概念

    字符串是一个容器,包含若干个字符并按照一定的顺序组织成一个整体。字符串支持索引操作。
    
    • 1.2创建字符串基本语法

      变量名 = “字符串信息”
      变量名 = ‘字符串信息’
      变量名 = “”“字符串信息”""
      变量名 = ‘’‘字符串信息’’’

    • 1.3注意事项

      字符串定义过程中如出现"匹配问题,使用"进行转义
  • 2. 字符串切片

    • 2.1字符串切片概念

      字符串切片指获取字符串中的某一部分,形成新的字符串对象。
      
    • 2.2字符串切片基本语法

      字符串[开始索引:结束索引]
      字符串[开始索引:结束索引:步长]	
      
  • 3. 字符串操作

    • 3.1基本操作

操作格式/函数名称 功能 参数 返回值
变量名[idx]
关键词: 获取单个字符
获取字符串中指定索引位置的字符 idx:要获取的索引位置 结果是包含了单个字符的字符串
str1 in str2
关键词: 包含
判断一个字符串str2是否包含另一个字符串str1 str1:比对字符串对象
str2:原始字符串对象
结果是True或False
str1 not in str2
关键词:不包含
判断一个字符串str2是否不包含另一个字符串str1 str1:比对字符串对象
str2:原始字符串对象
结果是True或False
len(str)
关键词:长度
本操作是一个函数,无须用字符串对象调用,
用于获取一个字符串中所包含的字符数量
str:字符串对象 结果是一个int整数
max(str)
关键词:长度
本操作是一个函数,无须用字符串对象调用,
用于获取字符串中排序最大的字符
str:字符串对象 结果是一个包含了单个字符的字符串
min(str)
关键词:最小值
本操作是一个函数,无须用字符串对象调用,
用于获取字符串中排序最小的字符
str:字符串对象 结果是一个包含了单个字符的字符串
  • 3.2 状态获取操作

方法名 功能 参数 返回值
islower()
关键词:是否全小写
判断字符串是否是全小写字母组成 结果是True或False
isupper()
关键词:是否全大写
判断字符串是否是全大写字母组成 结果是True或False
isdigit()
关键词:是否全数字
判断字符串是否是由纯数字组成 结果是True或False
isalpha()
关键词:是否全字母
判断字符串是否是由纯字母组成 结果是True或False
isalnum()
关键词:是否全数字字母
判断字符串是否是由纯字母组成 结果是True或False
istilte()
关键词:是否单词首字母大写
判断字符串是否是满足单词首字母大写格式 结果是True或False
startswith(str)
关键词:判定前缀
判断字符串是否以指定字符串开始 str:用于作为判定条件的字符串对象 结果是True或False
endswith(str)
关键词:判定后缀
判断字符串是否以指定字符串结束 str:用于作为判定条件的字符串对象 结果是True或False
  • 3.3 字符转换操作

方法名 功能 参数 返回值
lower()
关键词:转小写
字符串中所有字母转小写字母,支持英文字母 结果是一个字符串
casefold()
关键词:转小写
字符串中所有字母转小写字母,支持各种语言 结果是一个字符串
upper()
关键词:转大写
字符串中所有字母转大写字母 结果是一个字符串
swapcase()
关键词:大小写互换
字符串中字母大写转小写,小写转大写 结果是一个字符串
title()
关键词:单词首字母大写其他小写
字符串中每个单词首字母大写,其余字母小写(区分单词以空格区分) 结果是一个字符串
title()
关键词:单词首字母大写其他小写
字符串中每个单词首字母大写,其余字母小写(区分单词以空格区分) 结果是一个字符串
capitalize()
关键词:字符串首字母大写其他小写
字符串首个字母大写,其余字母小写 结果是一个字符串
  • 3.4格式转换

方法名 功能 参数 返回值
strip (str)
关键词:左右去字符
去掉字符串左右两侧在参数字符串中包含的所有字符 str:包含了若干个字符的字符串 结果是一个字符串
lstrip (str)
关键词:左侧去字符
去掉字符串左侧在参数字符串中包含的所有字符 str:包含了若干个字符的字符串 结果是一个字符串
ljust (len,str)
关键词:右侧补占位符
使用指定字符在原始字符串右侧补充到长度为指定值 len:补充字符后的字符串长度str:补充的字符,如果使用多个字符组成的字符串将报错 结果是一个字符串
rjust (len,str)
关键词:左侧补占位符
使用指定字符在原始字符串左侧补充到长度为指定值 len:补充字符后的字符串长度str:补充的字符,如果使用多个字符组成的字符串将报错 结果是一个字符串
center (len,str)
关键词:左右两侧补占位符
使用指定字符在原始字符串两侧补充到长度为指定值,左侧补充数量≥右侧补充数量 len:补充字符后的字符串长度,str:补充的字符如果使用多个字符组成的字符串将报错 结果是一个字符串
  • 3.5连接操作

方法名 功能 参数 返回值
join(str)
关键词:占位连接
将原始字符串填充到参数的每个字符之间组成新的字符串返回 str:待填充的字符串 结果是一个字符串
str1 + str2
关键词:字符串连接
将两个字符串按照顺序拼接成一个新的字符串返回 结果是一个字符串
  • 3.6 查询操作

方法名 功能 参数 返回值
find(str,begin,end)
关键词:左侧查找
从左侧查找字符串从指定开始位置到指
定结束位置间第一次出现的索引位置
str:要查找的字符串
begin:开始索引,整数,该值要小于end,否则结果为-1
end:结束索引,整数,改制要小于begin,否则结果为-1
结果是一个int整数,
如没有查找到返回-1
index(str,begin,end)
关键词:左侧查找
从左侧查找字符串从指定开始位置到指
定结束位置间第一次出现的索引位置
str:要查找的字符串
begin:开始索引,整数,该值要小于end,否则结果报错
end:结束索引,整数,改制要小于begin,否则结果报错
结果是一个int整数,
如没有查找到报错
count(str)
关键词:字符串数量
查询指定字符串在原始字符串中出现的次数 str:被查询的字符串 结果是一个int整数
  • 3.7 替换操作

方法名 功能 参数 返回值
replace(old_str,new_str,num)
关键词:替换
使用新字符串替换原始字符串中的指定字符串信息 old_str:被替换的字符串
new_str:新字符串
num:替换数量
结果是一个字符串
expandtabs()
关键词:\t换空格
使用空格替换原始字符串中的制表位\t 结果是一个字符串
  • 案例 找出真凶

    字符串操作的题目
"""
案例找出真凶
分析:
1.姓 name                startswith
2.名 name nick_name      find
3.性别 gender            ==
4.血型 blood             ==
5.籍贯 native            find
6.出生日期 idcard        切片,比较运算
"""
db_infos = [{"name": "张三丰","gender": 1, "nick_name": "三爷", "idcard": "110101153808081017", "blood": "b", "native":"湖北省丹江口市武当山玉虚宫"},{"name": "张大彪","gender": 1, "nick_name": "猿仔", "idcard": "130323197711111011", "blood": "b", "native":"河北省秦皇岛市武山海关区鞋拔子路胶水胡同103"}]
# 1. 循环列表,取出个人信息
for person in db_infos:
    # 2.取出个人信息
    name = person["name"]
    nick_name = person["nick_name"]
    gender = person["gender"]
    blood = person["blood"]
    native = person["native"]
    idcard = person["idcard"]
    # 3.判断是否满足条件
    # 3.1 所有条件都满足,打印个人信息
    # 3.2 只要有一个条件不满足,检查下一个人
    if not name.startswith("张") :
        continue
    if name.find("猿") == -1 and nick_name.find("猿") == -1 :
        continue
    if gender != 1:
        continue
    if blood.lower() != "b":
        continue
    if native.find("河北") == -1:
        continue
    # 身份证号: XXXXXX XXXX XX XX XXX X
    if int(idcard[6:10]) < 1975 or int(idcard[6:10]) > 1978 :
        continue

    # 设计字典,做对应关系(映射)
    genders = {1:"男",0:"女",-1:"不详"}

    # 到达此处说明所有条件都已经通过,打印个人信息
    print("姓名:"+name+",曾用名:"+nick_name+",性别:"+genders[gender]+",血型:"+blood+",籍贯:"+native+",身份证号:"+idcard)

猜你喜欢

转载自blog.csdn.net/hhufeiji/article/details/83817575