Albert-w

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

数据类型:数字 、字符、列表、字典、集合

字符串: 要用引号引起来  单引号 双引号  三引号

字符串只能存一个值,没有单独字符一说

取字符串值  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)

posted on 2019-04-15 15:37  Albert-w  阅读(138)  评论(0编辑  收藏  举报