Python字符串

字符串定义

  • 在Python中可以使用一对双引号或者一对单引号定义一个字符串,双引号里面嵌套双引号需要转义,而在单引号里面就可以直接嵌套了

字符串常用操作

  • 统计长度: len(str)
  • 统计某个小字符串出现的次数:str.count(tmp_str)
  • 取某个子字符串出现的位置: str.index(tmp_str) # 返回第一次出现tmp_str的位置 ,如果不存在则报错
  • 截取字符串: str[begin:end:num] 在指定范围内每隔num个字符截取一个字符

Python内置提供的方法

  • 判断类型
    str.isspace()   # 如果字符串中只包含空白,则返回 True,否则返回 False.
    str.isalnum()   # 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
    str.isalpha()   # 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
    str.isdigit()   # 如果字符串只包含数字,1或者(1)或者半角字符,则返回 True 否则返回 False.
    str.isdecimal()   # 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
    str.islower()   # 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
    str.isnumeric()   # 如果字符串中只包含数字字符比如(1)或者半角字符或者零一之类,则返回 True,否则返回 False
    str.isupper()   # 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
    str.capitalize()   # 将字符串的第一个字符转换为大写
    str.lower()    # 转换字符串中所有大写字符为小写
    str.upper()    # 转换字符串中所有大写字符为小写
    str.swapcase()   # 将字符串中大写转换为小写,小写转换为大写
    
  • 查找和替换
    str.startswith(substr, beg,end)  #检查字符串是否是以指定子字符串 substr 开头,是则返回 True。如果beg 和 end 指定值,则在指定范围内检查,也可以缺省
    str.endwith(substr, beg,end)  # 和上述类似
    str.find(str, beg=0, end=len(string))  # 注意和index方法的区别
     #检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含则返回开始的索引值,否则返回-1
    str.replace(old, new [, max]) # 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次,返回替换后的字符串,原字符串并不会改变
    
  • 文本对齐
    str.ljust(width,fillchar)   # 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
    str.rjust(width,fillchar)   # 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
    str.center(width, fillchar)  # 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
    
  • 去除空白字符
    str.lstrip()    # 截掉字符串左边的空格或指定字符,即把以指定(默认为空格)开头的去掉再输出
    str.rstrip()    # 删除字符串末尾的空格.
    str.strip()     # 删除字符串两边的空白字符.
    
  • 拆分和拼接字符字符串
    string.pattition(str)   # 把字符串string 分成一个3元素的元组(str前面,str,str后面)
    string.split(str,num)   # 以str为分隔符拆分string,如果num有指定值则拆分num次(str至少出现num次), 返回列表
    string.join(seq)   # 以string作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串返回
    

eval函数

eval函数十分强大 – 将字符串当成有效的表达式来求值并返回计算结果

1
2
3
4
5
6
7
8
9
# 基本数学运算
print(eval('1+1'))
print(eval('2*3'))
# 字符串重复
print(eval("'*'*10"))
# 将字符串转换成列表
print(type(eval('[1,2,3,4,5]')))
# 将字符串转换成字典
print(type(eval("{'name':'xiaoming','age':'18'}")))

案例 - 计算器
1
2
3
4
5
6
input_str=input("请输入算术题: ")
print(eval(input_str))

- - - - - - - - -
请输入算术题: 2*3
6
不要滥用eval

在开发时不要使用eval直接转换input的输出结果
存在安全隐患

1
2
3
4
5
__import__('os').system('ls')

# 等价于
import os
os.system('终端命令')

执行成功返回0,否则返回错误信息