py04-python基础-字符串
1、字符串
作用:名字,性别,国籍,地址等描述信息。
定义:在单引号、双引号、三引号内,由一串字符组成
字符串只存储一个值。
name='egon' #name=str('egon') print(type(name))
打印字符,0代表第一个字符
name='egon' print(name[0])
2、字符串的常用操作
1、移除空白strip
name=input('>>>: ') name=name.strip() print(name)
简写为:
name=input('>>>: ').strip()
print(name)
等价于:
name=input('>>>: ')
print(name.strip())
2、移除* strip,默认是移除空格
name='***yangxutao******' print(name.strip('*')) #移除所有*
name='***yangxutao******'
print(name.lstrip('*')) #移除左边的*
name='***yangxutao******'
print(name.rstrip('*')) #移除右边的*
name='###old#####'
print(name.strip('#')) #移除所有#,同理
3、切分 split
user_inof='root:x:0:0::/root:/bin/bash' print(user_inof.split(':')) #以:号切分,切割成一个列表
user_inof='root:x:0:0::/root:/bin/bash'
print(user_inof.split(':')[5])
name='my name is xtyang' print(name.split()) #默认以空格或者多个空格切分
cmd_info='get|a.txt|33333' print(cmd_info.split('|')[0]) #提取get
或者
cmd_info='get|a.txt|33333'
print(cmd_info.split('|',1)[0]) #1代表切割一次,后面的不进行切割,最多切割一次,再取值
4、切割:指定步长切割
name='hello world' print(name[1:3]) #顾头不顾尾
5、长度len
name='xtyang' print(len(name)) #字符的长度
6、替换:replace
name='zhangsan have a car,my name is zhangsan' print(name.replace('zhangsan','sb')) #把所有的zhangsan替换成sb
name='zhangsan have a car,my name is zhangsan'
print(name.replace('zhangsan','sb',1)) #只替换第一个,后面的不替换
7、字符串的其他操作
#startswith,endswith,判断的标准是布尔值,True or False
name='this is my girl friend' print(name.startswith('this')) #判断以什么开始
name='this is my girl friend'
print(name.endswith('friend')) #判断以什么结尾
8、format的三种方法
方法1:
print('{} {} {}'.format('egon',18,'male')) #一一对应
方法2:
print('{0} {1} {1}'.format('egon',18,'male')) #下标一一对应
方法3:
print('{name} {age} {sex}'.format(age=18,name='egon',sex='male')) #定义的变量名一一对应,位置可以变换
print('Name:{name} Age:{age} Sex:{sex}'.format(age=18,sex='male',name='egon')) #添加上描述信息
9、字符串的其他操作
#find,rfind,index,rindex,count
name='sysgit.com' print(name.find('g')) #查看字符串的下标,从左到右,一旦查询到就终止,查询不到不会报错,会打印-1
print(name.rfind('s')) #从右到左查找
print(name.index('s')) #从左到右,索引下标查询,查询不到会报错
print(name.rindex('s')) #从右到左,索引下标查询,查询不到会报错
name='sysgit.com'
print(name.count('s')) #统计字符出现的个数
name='sysgit.com'
print(name.count('s',1,3)) #指定范围查找字符出现的个数
10、字符串拼接 join
msg=['egon','18','male'] print(':'.join(msg)) #以冒号分割,进行拼接,迭代对象必须都是字符串
11、大小写转换
name='SG' print(name.lower()) #转换为小写
name='sg'
print(name.upper()) #转换为大写
12、#captalize,swapcase,title
name='egon hello' print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='egon say hi' print(msg.title()) #每个单词的首字母大写
13、判断是不是数字 isdigit
age='18' print(age.isdigit())
14、数字系列
#在python3中 num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='四' #中文数字 num4='Ⅳ' #罗马数字
num1=b'4' num2=u'4' num3='四' num4='Ⅳ' print(num1.isdigit()) #判断是否是数字 ,True print(num2.isdigit()) #判断是否是数字 ,True print(num3.isdigit()) #判断是否是数字 ,False print(num4.isdigit()) #判断是否是数字 ,False
因此:
#isdigit: bytes unicode
print(num1.isdigit())
print(num2.isdigit())
#isnumberic: unicode,汉字,罗马数字 银行程序大写
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
14、例子:猜年龄
xtyang_of_age=27 while True: age=input('请输入您要猜的年龄?').strip() if len(age) == 0: continue if age.isdigit(): age=int(age) if age > xtyang_of_age: print('您输入的年龄太大了') elif age < xtyang_of_age: print('您输入的年龄太小了') else: print('恭喜您答对了!') break
www.sysgit.com