python的基本使用之字符串类型
一:基本使用
1 用途: 描述性质的数据,比如人的名字,单个爱好,地址
2 定义方式
name='egon' #name=str('egon')
x=str(1)
y=str(1.1)
z=str([1,2,3])
n=str({'a':1})
print(type(x))
print(type(y))
print(type(z))
print(type(n))
3 常用操作+内置的方法
优先掌握的操作(非常重要):
1、按索引取值(正向取+反向取) :只能取
sg='hello world'
print(type(msg[5]))
print(msg[-1])
msg[2]='A'
2、切片(顾头不顾尾,步长)
msg='hello world'
print(msg[1:5],type(msg[1:5])) #ello <class 'str'>
print(msg[6:-1]) #worl
print(msg[6:11]) #world
print(msg[6:]) #world
print(msg[6::2]) #wrd
了解(**)
msg='hello world'
print(msg[0:]) #hello world
print(msg[::-1]) #dlrow olleh
print(msg[-3:-6:-1]) #row
print(msg[6:9:-1]) #6到9是正方向,-1是负方向的步长,所以输出
3、长度len
msg='hello world' #输出长度为11
print(len(msg))
4、成员运算in和not in
print('SB' in 'my name is alex,alex is SB') #True
print('alex' in 'my name is alex,alex is SB') #True
print('egon' not in 'my name is alex,alex is SB') # 推荐 #True
print(not 'egon' in 'my name is alex,alex is SB') #True
5、移除空白strip
name=' e gon '
print(name.strip(' ')) #e gon 只能移除非空白两边的空格
print(name.strip()) #e gon 默认strip()移除非空白两边的空格
name='****A*e*gon****'
print(name.strip('*')) #A*e*gon 移除非*号字符两边的*号
name='****egon****'
print(name.lstrip('*')) #egon**** 移除非*号字符左边的*号
print(name.rstrip('*')) #****egon 移除非*号字符右边的*号
pwd=input('>>: ').strip() #pwd='123 '
if pwd == '123':
print('login successful') #输入:“空格空格123空格”,(strip()移除两边的空格)输出:login successful
msg='cccabcdefgccccc'
print(msg.strip('c')) #abcdefg 移除了两边的c
print('*-=egon *&^'.strip('-= *&^')) #egon 移除了两边的-= *&^ 号
6、切分split(相同分隔符号分出部分字符串)
msg='egon:18:male:180:160'
l=msg.split(':')
print(l) #['egon', '18', 'male', '180', '160'] 利用冒号切分出字符串组成列表
print(l[3]) #180 取出列表里的'180'
7、循环
msg='hello world'
for x in msg:
print(x) #h
#e
#l
#l
#o 利用for循环取出字符串里的字母
需要掌握的操作(重要)
1、strip,lstrip,rstrip
2、lower,upper
name='EoN'
print(name.lower()) #eon lower()将字符的大写字母改为小写字母
name='egonN'
print(name.upper()) #EGONN upper()将字符的小写字母改为大写字母
3、startswith,endswith
print('alex is SB '.startswith('alex')) #True 判断是否以alex开头
print('alex is SB'.endswith('B')) #True 判断是否以B结尾
4、format的三种玩法
print('my name is %s my age is %s' %('egon',18)) # my name is egon my age is 18
print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 可以打破位置的限制,但仍能指名
# 道姓地为指定的参数传值
print('my name is {} my age is {}'.format('egon',18)) #my name is egon my age is 18 按照先后顺序填入字符串
print('my name is {0} my age is {1} {1} {1} {1}'.format('egon',18))#my name is egon my age is 18 18 18 18
#{0}='egon',{1}=18
5、split,rsplit
info='egon:18:male'
print(info.split(':',1)) #['egon', '18:male'] 以第一个冒号为界限分隔字符串为列表
print(info.rsplit(':',1)) #['egon:18','male'] #['egon:18', 'male'] 以右边的第一个冒号为界限分割字符串为列表
6、join:只能将元素全为字符串的列表拼成一个大的字符串
info='egon:18:male'
l=info.split(':')
print(l) #['egon', '18', 'male'] 以冒号为分割界限分割字符串为列表
new_info='-'.join(l)
print(new_info) #egon-18-male 用'-'替换':'
num=['a','b','c']
print(':'.join(num)) #'a'+':'+'b'+':'+'c' #a:b:c 用冒号代替逗号
num=[1,2,'c']
print(':'.join(num)) #1+':'+2+':'+'c' #报错 原因是列表里不全是字符串
7、replace
msg='my name is xiaoming,xiaoming is a boy'
print(msg.replace('xiaoming','Tom',1)) #my name is Tom,xiaoming is a boy 用Tom将第一个xiaoming替换掉
print(msg) #my name is xiaoming,xiaoming is a boy msg仍然是原内容
8、isdigit 判断是否是纯数字
print('111.1'.isdigit()) #False 引号内不是纯数字,还有点号
print('1111'.isdigit()) #True 引号内是纯数字
AGE=73
age=input('>>: ').strip() #age='asdfasdf'
if age.isdigit(): #判断age是否为纯数字
age=int(age)
if age > AGE:
print('too big')
elif age < AGE:
print('too small')
else:
print('you got it')
else:
print('必须输入数字啊傻叉')
其他操作(了解即可)(**)
1、find,rfind,index,rindex,count
msg='my name is alex,alex is hahaha'
print(msg.find('alex'))
print(msg.find('SB')) #找不到会返回-1
print(msg.index('alex'))
print(msg.index('SB')) # 找不到index会报错
print(msg.find('alex',0,3))
print(msg.count('alex'))
print(msg.count('alex',0,15))
2、center,ljust,rjust,zfill
print('info egon'.center(50,'-'))
print('info egon'.ljust(50,'-'))
print('info egon'.rjust(50,'-'))
print('info egon'.zfill(50))
3、expandtabs
print('a\tb\tc'.expandtabs(1))
4、captalize,swapcase,title
print('my name is egon'.capitalize())
print('my Name Is egon'.swapcase())
print('my name is egon'.title())
1 用途: 描述性质的数据,比如人的名字,单个爱好,地址
2 定义方式
name='egon' #name=str('egon')
x=str(1)
y=str(1.1)
z=str([1,2,3])
n=str({'a':1})
print(type(x))
print(type(y))
print(type(z))
print(type(n))
3 常用操作+内置的方法
优先掌握的操作(非常重要):
1、按索引取值(正向取+反向取) :只能取
sg='hello world'
print(type(msg[5]))
print(msg[-1])
msg[2]='A'
2、切片(顾头不顾尾,步长)
msg='hello world'
print(msg[1:5],type(msg[1:5])) #ello <class 'str'>
print(msg[6:-1]) #worl
print(msg[6:11]) #world
print(msg[6:]) #world
print(msg[6::2]) #wrd
了解(**)
msg='hello world'
print(msg[0:]) #hello world
print(msg[::-1]) #dlrow olleh
print(msg[-3:-6:-1]) #row
print(msg[6:9:-1]) #6到9是正方向,-1是负方向的步长,所以输出
3、长度len
msg='hello world' #输出长度为11
print(len(msg))
4、成员运算in和not in
print('SB' in 'my name is alex,alex is SB') #True
print('alex' in 'my name is alex,alex is SB') #True
print('egon' not in 'my name is alex,alex is SB') # 推荐 #True
print(not 'egon' in 'my name is alex,alex is SB') #True
5、移除空白strip
name=' e gon '
print(name.strip(' ')) #e gon 只能移除非空白两边的空格
print(name.strip()) #e gon 默认strip()移除非空白两边的空格
name='****A*e*gon****'
print(name.strip('*')) #A*e*gon 移除非*号字符两边的*号
name='****egon****'
print(name.lstrip('*')) #egon**** 移除非*号字符左边的*号
print(name.rstrip('*')) #****egon 移除非*号字符右边的*号
pwd=input('>>: ').strip() #pwd='123 '
if pwd == '123':
print('login successful') #输入:“空格空格123空格”,(strip()移除两边的空格)输出:login successful
msg='cccabcdefgccccc'
print(msg.strip('c')) #abcdefg 移除了两边的c
print('*-=egon *&^'.strip('-= *&^')) #egon 移除了两边的-= *&^ 号
6、切分split(相同分隔符号分出部分字符串)
msg='egon:18:male:180:160'
l=msg.split(':')
print(l) #['egon', '18', 'male', '180', '160'] 利用冒号切分出字符串组成列表
print(l[3]) #180 取出列表里的'180'
7、循环
msg='hello world'
for x in msg:
print(x) #h
#e
#l
#l
#o 利用for循环取出字符串里的字母
需要掌握的操作(重要)
1、strip,lstrip,rstrip
2、lower,upper
name='EoN'
print(name.lower()) #eon lower()将字符的大写字母改为小写字母
name='egonN'
print(name.upper()) #EGONN upper()将字符的小写字母改为大写字母
3、startswith,endswith
print('alex is SB '.startswith('alex')) #True 判断是否以alex开头
print('alex is SB'.endswith('B')) #True 判断是否以B结尾
4、format的三种玩法
print('my name is %s my age is %s' %('egon',18)) # my name is egon my age is 18
print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 可以打破位置的限制,但仍能指名
# 道姓地为指定的参数传值
print('my name is {} my age is {}'.format('egon',18)) #my name is egon my age is 18 按照先后顺序填入字符串
print('my name is {0} my age is {1} {1} {1} {1}'.format('egon',18))#my name is egon my age is 18 18 18 18
#{0}='egon',{1}=18
5、split,rsplit
info='egon:18:male'
print(info.split(':',1)) #['egon', '18:male'] 以第一个冒号为界限分隔字符串为列表
print(info.rsplit(':',1)) #['egon:18','male'] #['egon:18', 'male'] 以右边的第一个冒号为界限分割字符串为列表
6、join:只能将元素全为字符串的列表拼成一个大的字符串
info='egon:18:male'
l=info.split(':')
print(l) #['egon', '18', 'male'] 以冒号为分割界限分割字符串为列表
new_info='-'.join(l)
print(new_info) #egon-18-male 用'-'替换':'
num=['a','b','c']
print(':'.join(num)) #'a'+':'+'b'+':'+'c' #a:b:c 用冒号代替逗号
num=[1,2,'c']
print(':'.join(num)) #1+':'+2+':'+'c' #报错 原因是列表里不全是字符串
7、replace
msg='my name is xiaoming,xiaoming is a boy'
print(msg.replace('xiaoming','Tom',1)) #my name is Tom,xiaoming is a boy 用Tom将第一个xiaoming替换掉
print(msg) #my name is xiaoming,xiaoming is a boy msg仍然是原内容
8、isdigit 判断是否是纯数字
print('111.1'.isdigit()) #False 引号内不是纯数字,还有点号
print('1111'.isdigit()) #True 引号内是纯数字
AGE=73
age=input('>>: ').strip() #age='asdfasdf'
if age.isdigit(): #判断age是否为纯数字
age=int(age)
if age > AGE:
print('too big')
elif age < AGE:
print('too small')
else:
print('you got it')
else:
print('必须输入数字啊傻叉')
其他操作(了解即可)(**)
1、find,rfind,index,rindex,count
msg='my name is alex,alex is hahaha'
print(msg.find('alex'))
print(msg.find('SB')) #找不到会返回-1
print(msg.index('alex'))
print(msg.index('SB')) # 找不到index会报错
print(msg.find('alex',0,3))
print(msg.count('alex'))
print(msg.count('alex',0,15))
2、center,ljust,rjust,zfill
print('info egon'.center(50,'-'))
print('info egon'.ljust(50,'-'))
print('info egon'.rjust(50,'-'))
print('info egon'.zfill(50))
3、expandtabs
print('a\tb\tc'.expandtabs(1))
4、captalize,swapcase,title
print('my name is egon'.capitalize())
print('my Name Is egon'.swapcase())
print('my name is egon'.title())
5、is数字系列
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='壹' #中文数字
num4='Ⅳ' #罗马数字
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='壹' #中文数字
num4='Ⅳ' #罗马数字
isdigit():bytes,unicode
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
isdecimal():unicode
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
isnumberic;unicode,中文,罗马
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
6、is其他
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
isdecimal():unicode
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
isnumberic;unicode,中文,罗马
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
6、is其他
print('abasdf123123'.isalnum())
print('asdfasdf'.isalpha())
print('egon'.islower())
print('ABC'.isupper())
print(' '.isspace())
print('My Name Is Egon'.istitle())
#二:该类型总结
1 存一个值or存多个值
只能存一个值
2 有序or无序
有序
3 可变or不可变
不可变
name='egon'
print(id(name))
name='alex'
print('asdfasdf'.isalpha())
print('egon'.islower())
print('ABC'.isupper())
print(' '.isspace())
print('My Name Is Egon'.istitle())
#二:该类型总结
1 存一个值or存多个值
只能存一个值
2 有序or无序
有序
3 可变or不可变
不可变
name='egon'
print(id(name))
name='alex'
print(id(name))