数据类型:数字 、字符、列表、字典、集合
字符串: 要用引号引起来 单引号 双引号 三引号
字符串只能存一个值,没有单独字符一说
取字符串值 print(name[0]) 中括号表示
常用操作:
1、移除空白 strip()
name = input('nm:')
print(name)
nm: ww #当输入空格后
ww #会显示空白,需要移除空白
用到name.strip() ,括号里不加参数就是指去除左右两边的空格,如果去除*号,则 name.strip('*')
去除左边的 用 lstrip 去除右边的 rstrip
name = input('nm:').strip()
print(name)
nm: ww
ww
2.切分split() split(‘’分隔符‘, 最大切割次数)
如 user_info = 'root:x:0:0::/root:/bin/bash'
user=user_info.split(':')
print(user[5])
/root
3、统计字符串长度 len 或者 __len__()
4、切片 name[2:5:3] 通过下标2--5访问,步长为3, 顾头不顾尾,算头不算尾
5、索引 name[0] 0指的是字符串下标,表示字符串第一个字节
#strip()
name='*egon**'
print(name.strip('*'))
print(name.lstrip('*'))
print(name.rstrip('*'))
#lower,upper 改变字符串大小写
name='egon'
print(name.lower())
print(name.upper())
#startswith,endswith 多用于条件判断,以以什么结尾,以什么开头
name='alex_SB'
print(name.endswith('SB'))
print(name.startswith('alex'))
#replace(‘A’,‘B’,2) 替换 把A换成B,替换2次
name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','SB',1))
#format 格式化的三种玩法
res='{} {} {}'.format('egon',18,'male')
res='{1} {0} {1}'.format('egon',18,'male')
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
#split
name='root:x:0:0::/root:/bin/bash'
print(name.split(':')) #默认分隔符为空格
name='C:/a/b/c/d.txt' #只想拿到顶级目录
print(name.split('/',1))
name='a|b|c'
print(name.rsplit('|',1)) #从右开始切分
#join
tag=' '
print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串
#isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
age=input('>>: ')
print(age.isdigit())
示例
===不常用
#find,rfind,index,rindex,count 查找方式
name='egon say hello'
print(name.find('o',1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
# print(name.index('e',2,4)) #同上,但是找不到会报错
print(name.count('e',1,3)) #顾头不顾尾,如果不指定范围则查找所有
#center,ljust,rjust,zfill 对齐方式
name='egon'
print(name.center(30,'-'))
print(name.ljust(30,'*'))
print(name.rjust(30,'*'))
print(name.zfill(50)) #用0填充
#expandtabs 指定空格数
name='egon\thello'
print(name)
print(name.expandtabs(1))
#captalize,swapcase,title 字符串大小写
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写
#is 判断数字系列
#在python3中
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字
#isdigt:bytes,unicode
print(num1.isdigit()) #True
print(num2.isdigit()) #True
print(num3.isdigit()) #False
print(num4.isdigit()) #False
#isdecimal:uncicode
#bytes类型无isdecimal方法
print(num2.isdecimal()) #True
print(num3.isdecimal()) #False
print(num4.isdecimal()) #False
#isnumberic:unicode,中文数字,罗马数字
#bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True
#三者不能判断浮点数
num5='4.3'
print(num5.isdigit())
print(num5.isdecimal())
print(num5.isnumeric())
'''
总结:
最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric
'''
#is其他
print('===>')
name='egon123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isidentifier())
print(name.islower())
print(name.isupper())
print(name.isspace())
print(name.istitle())
示例
=======+++++++++++++++++++++++============
小练习
name = " abelX" # 1) 移除 name 变量对应的值两边的空格,并输出处理结果 # 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果 # 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果 # 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果 # 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。 # 6) 将 name 变量对应的值变大写,并输出结果 # 7) 将 name 变量对应的值变小写,并输出结果 # 8) 请输出 name 变量对应的值的第 2 个字符? # 9) 请输出 name 变量对应的值的前 3 个字符? # 10) 请输出 name 变量对应的值的后 2 个字符? # 11) 请输出 name 变量对应的值中 “e” 所在索引位置? # 12) 获取子序列,去掉最后一个字符。如: abcde 则获取 abcd。
=====
name = " abelX"
n1 = name.strip()
n2 = name.startswith('al')
n3 = name.endswith('X')
n4 = name.replace('l','p')
n5 = name.split('l')
n6 = name.upper()
n7 = name.lower()
n67 = name.swapcase() #大小写互转
n8 = name[1]
n9 = name[0:3]
n10 = name[-2:]
n11 = name.find('e')
n12 = name[:-1]
print(n1, n2, n3, n4, n5, n6, n7,n67, n8 ,n9, n10, n11, n12)