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

 

posted @ 2017-07-18 11:24  sysgit  阅读(212)  评论(0编辑  收藏  举报