python基础三之字符串

时间:2023-03-09 20:56:02
python基础三之字符串

Python的数据类型

  数字(int),如1,2,3,用于计算。

  字符串(str),如s = 'zxc',储存少量数据,进行操作。

  布尔值(bool),True和False,用于进行判断。

  列表(list),如l = ['zxc', '213', [1, 23, 4], '张新潮'],可以储存大量的数据,用于操作。

  元祖,如(1, 2, 3, 'zxc'),只读,不能进行其他的操作,用于储存一些重要的不能被随意修改的数据。

  字典(dict),如d = {'name': 'zxc', 'age': 24},按对应关系储存数据,方便进行一些关系对应的数据处理。

数据类型转换

  int 转换为 str,使用str(int)即可将数字转换为字符串。

  str 转换为 int,使用int(str)可将字符串转换为数字,但前提是这个字符串必须全部由数字组成。

  int 转换为 bool

# int转换为bool   零为False 非零的为True
print(bool(0))
print(bool(1))
print(bool(54))

  bool 转换为 int

# bool转换为int   True为1  False为0
print(int(True))
print(int(False))
"""
while True:
pass
while 1: # 效率高
pass
"""

  str 转换为 bool

# str转换为bool   字符串空为False  非空为True  可用于判断输入的内容是否为空
print(bool(''))
print(bool('zxc'))

  bool 转换为 str,将字符True和False转换为了字符串,没有什么意义!

不同类型数据的操作方法

  int 的bit_length方法,不常用。

# bit_length 获取数字转换为二进制后的最少位数
i = 100
j = 2
print(bin(i), bin(j)) # bin()将十进制数字转换为二进制
print(i.bit_length(), j.bit_length())

  str 的索引,根据索引可以任意取出字符串中的某个元素。

# 字符串的索引   索引从0开始从左往右计数
s = 'zxcWER134'
print(s[2])
# 获取最后两个字符 索引从后往前数从-1开始之后是-2,依次计数
print(s[-1])
print(s[-2])

  

  str 的切片,根据“顾头不顾尾”的规则可以取出不同的元素组合。

# 字符串的切片  规则:顾头不顾尾
s = 'zxcWER134'
# 获取zxc
print(s[0:3])
# 获取134
print(s[6:])
print(s[-3:])
# 获取全部
print(s[:])
print(s[0:]) # 跳步切片 格式:[首:尾:步长]
s = 'z2xrc'
print(s[::2])
# 从后往前 步长为负数
print(s[::-2])

  str 的多个内置方法

    1,使字符串首字母大写

# capitalize首字母大写
s = 'zxc'
print(s.capitalize())

    2,使字符串居中显示

# center 字符串居中两边默认用空白填充 格式:(填充单位,填充符号)
s = 'zxc'
print(s)
print(s.center(8))
print(s.center(20, '-'))

    3,使字符串完成补全排版

# expandtables 将字符串中的\t(Tab键)前面自动填充为8位,8位或8位以上的按8的倍数来填充
s = 'zxc\tgood'
print(s.expandtabs())
s = '12345678\tgood'
print(s.expandtabs())

    4,使字符串大小写翻转

# swapcase大小写翻转
s = 'zxcZXCzxc'
print(s.swapcase())

    5,使字符串中特定的字母大写

# title 每个被特殊字符和数字隔开的单词的首字母大写
s = 'zxc is%good2boy'
print(s.title())

    6,使字符串全部大写或全部小写

# upper全部大写 lower全部小写
s = 'zxcZXC'
print(s.upper())
print(s.lower()) # 可用于验证码不区分大小写
v_code = 'zxc4LU'
you_input = input('输入验证码,不区分大小写:')
if you_input.upper() == v_code.upper():
print('验证码输入正确!')
else:
print('验证码不正确,重新输入!')

    7,获取字符串,列表,字典的长度

# len 获取字符串,列表,字典的长度
s = 'zxcisgood'
l = ['zxc', 'is', 'good']
d = {'name': 'zxc', 'age': 24}
print(len(s))
print(len(l))
print(len(d))

    8,判断字符串是否是由某个元素开头或结尾

# startswith或endswith 判断字符串是否是由某个元素开头或结尾
s = 'zxcisgood'
print(s.startswith('zxc'))
print(s.endswith('good'))

    9,查找一个元素是否在字符串中

# find 通过元素找到索引,找不到返回-1
# index 通过元素找到索引,找不到报错
s = 'zxcisgood'
print(s.find('zxc'))
print(s.find('zxf')) print(s.index('zxc'))
# print(s.index('zxf')) # 会报错

    10,删除字符串前后的指定元素

# strip 删除字符串前后的指定元素,默认删除空格
s = ' zxc '
print(s.strip())
s = '%zxc&%&'
print(s.strip('%&'))
s = '2222zxc111'
print(s.strip(''))
# rstrip 只删除右边的
print(s.rstrip(''))
# lstrip 只删除左边的
print(s.lstrip(''))
# 可以用于避免用户输入账号时不小心加空格引起的错误
username = 'zxc'
name = input('输入你的账号:').strip()
if name == username:
print('正确!')

    11, 判断某个元素在字符串或列表中出现的次数

# count 用于判断某个元素在字符串或列表中出现的次数
s = 'zxcisgoodis'
l = ['zxc', 'is', 'good', 'is']
print(s.count('is'))
print(s.count('z'))
print(l.count('is'))

    12,以一定的规则将字符串转换为列表

# split 字符串转换为列表 默认以空格为依据来分割
s = 'zxc is good'
s1 = 'zxc,is,good'
print(s.split())
print(s1.split(','))

    13,format 格式化输出

# format 格式化输出
# 按顺序前后对应
s = '我叫{},今年{},爱好是{},我是{}我为自己代言'.format('zxc', 24, '读书', 'zxc')
print(s)
# 只要索引对应即可
s = '我叫{0},今年{1},爱好是{2},我是{0}我为自己代言'.format('zxc', 24, '读书')
print(s)
# 顺序无需对应
s = '我叫{name},今年{age},爱好是{hobby},我是{name}我为自己代言'\
.format(hobby='读书', age=24, name='zxc')
print(s)

    14,字符串中的元素替换

# replace 用新的元素替换字符串里面的某元素  格式:(old,new,替换个数)默认替换全部
s = 'zxcisgoodzxcisbad'
print(s.replace('zxc', 'zxf'))
print(s.replace('zxc', 'zxf', 1))

    15,判断某个字符在或者不在这个字符串,列表,字典里

# in (not in) 判断某个字符在或者不在这个字符串,列表,字典里
s = 'zxcisgood'
l = ['zxc', 'is', 'good']
d = {'name': 'zxc', 'age': 24}
if 'zxc' in s:
print('含有zxc')
if 'zxc' in l:
print('含有zxc')
if 'name' in d:
print('含有zxc')
if 'zxf' not in s:
print('不含有zxf')

    16,遍历字符串,列表,字典里的元素

# for i in 字符串,列表,字典 遍历其中的元素
s = 'zxcisgood'
l = ['zxc', 'is', 'good']
d = {'name': 'zxc', 'age': 24}
for i in s:
print(i)
for i in l:
print(i)
for i in d:
print(i)

    17,判断字符串是否是以数字组成

s = ''
s1 = '12d34'
print(s.isdigit()) # True
print(s1.isdigit()) # False