基本数据类型之字符串

字符串类型str

用来表示名字、年龄等描述性的信息(数据)
定义方式:
str:包含在引号内的一串字符
# 字符串拼接(+,*)是开辟一个新的内存空间,将你拼接之后的值存进去
s1 = 'hello '
s2 = 'world'
print(s1 + s2)

print(s1*10)
常用操作+内置方法:

优先掌握的操作:
#1、按索引取值(正向取+反向取): 只能取不能改
name = "baohan"
print(name[0])    #正向取
print(name[-1])   #反向取
print(name(type(name[-1]))

#2、切片(顾头不顾尾,默认步长为1)
msg = "my name is Bob"
print(msg[0:6])
print(msg[0:6:2])  #m a
#了解:
#print(msg[0:5:1])
#print(msg[3:1,-1])
#print(msg[-1:-5:-1])
msg = 'alex is sb'
print(msg[0:])  #取全部
print(msg[::-1])  #顺序全部倒过来

#3、长度len():获取当前数据中元素的个数
msg = 'my name is Bob'
print(len(msg))   #字符的个数 

#4、成员运算in 和 not in
msg = 'my name is Bob'
print("my"in msg)  #True
print("name" not in msg)   #False

#5、循环  for循环只适用于字符串,列表,字典
msg = 'alex is sb'
#for i in msg:
    #print(i)
i = 0
while i < len(msg):
    print(msg[i])
    i+=1

#6、strip():移除空白 
name = input ('你的用户名:').strip()
print(name)

#7、split():对字符串进行切分,可以指定切分的分隔符,返回的是一个列表
info = 'bob:123:admin'
res = info.split(':')
print(res,type(res))  #切完是列表类型
print(res[0])    #bob


    
需要掌握的操作:
#1、 strip,lstrip,rstrip
print('**sss*****'.strip("*"))
print('**sss*****'.lstrip("*"))

#2、lower,upper:转字符串里字符的大小写
name1 = "egon"
name2 = "ALEX"
print(name1.upper())
print(name2.lower())

#3、startswith,endswith  判断字符串是否以括号内指定的字符开头、结尾,返回的是布尔值True或False
info = "my name is bob"
print(info.startswith('m'))
print(info.startswith('my'))
print(info.endswith('b'))

#4、format的三种用法
#1)类似于%s的用法,传入的值与{}一一对应
s1 = "my name is {},my age is {}".format("bob",18,19)
print(s1)

#2)把format传入的多个值当作一个列表,然后用{索引}取值
s2 = "my name is {0},my age is {1}".format("bob",18)
print(s2)

#3)format括号内传参数可以完全打乱顺序,但根据键值对传入指定参数
s3 = "my name is {name},my age is {age}".format(name="bob",age=18)
print(s3)

#5、split,rsplit 
info = "get|bob|hobby"
print(info.split("|"))
print(info.split("|",1))   #可以指定切分的次数
print(info.rsplit("|",1))

#6、join 将(列表)中每个元素按照""里的内容为分隔符号进行拼接(传入的列表内只能是字符串)
info = "get|bob|hobby"
l1 = info.split("|")
print("".join(l1))

#7、f-string:通过大括号接受变量,在字符串前面一定要加一个小写的f,在python3.6以后才有

#8、replace 将字符串中的元素进行替换
info = "my name is egon,egon is handsome"
print(info.replace('egon','bob'))
print(info.replace('egon','bob',1))  #语法:replace('旧内容','新内容',修改的个数)

#9、isdigit 判断字符串是否是数字组成,返回结果为布尔值
age = "18"
print(age.isdigit())
age = "19.1"
print(age.isdigit())

print('sdaw'.isdigit())

age = 10
inp = input(">>>:")
if inp.isdigit():
    inp = int(inp)
    if inp == 10:
        print("right")
else:
    print("输入格式错误")

了解的知识点:
# 1、find:查找当前字符串中某个元素的位置,返回索引,找不到返回-1
msg='tony say hello'
msg.find('o',1,3)  # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
# 2、index:同find,但在找不到时会报错
msg.index('e',2,4) # 报错ValueError
# 3、rfind与rindex:略
# 4、count:统计当前字符串中某一个元素出现的次数
msg = "hello everyone"
msg.count('e')  # 统计 e 出现的次数
# 5、center居中对齐,ljust左对齐,rjust右对齐,zfill填充0
name='tony'
name.center(30,'-')  # 总宽度为30,字符串居中显示,不够用-填充
>>>-------------tony-------------
name.ljust(30,'*')  # 总宽度为30,字符串左对齐显示,不够用*填充
>>>tony**************************
name.rjust(30,'*')  # 总宽度为30,字符串右对齐显示,不够用*填充
>>>**************************tony
name.zfill(50)  # 总宽度为50,字符串右对齐显示,不够用0填充
>>>0000000000000000000000000000000000000000000000tony
#6、expandtabs 
msg='abc\tdef' #制表符
print(msg.expandtabs(3))
#7、captalize():只有首字母是大写
#8、swapcase():大小写反转
#9、title():每个单词的首字母大写

#10、is数字系列
#在python3中
num1 = b'4' #bytes
num2 = u'4' #unicode,python3中无需加u就是unicode
num3 = '' #中文数字
num4 = '' #罗马数字

num1.isdigit()  #True
num2.isdigit()  #True
num3.isdigit()  #False
num4.isdigit()  #False

总结:
    最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
    如果要判断中文数字或罗马数字或unicode,则需要用到isnumeric
    isdecimal:只能用来判断unicode
#11 is其他
name = 'tony123'
name.isalpha(): #字符全由字母组成
>>> True
name.isalnum(): #字符由字母或数字组成
>>> True
name.islower()  # 字符串是否是纯小写
>>> True
name.isupper()  # 字符串是否是纯大写
>>> False
name.isspace()  # 字符串是否全是空格
>>> False
name.istitle()  # 字符串中的单词首字母是否都是大写
>>> False

字符串中的转义字符:

字符串前面加一个小写的r,代表转义
print(r'hello\n world')
\t   输入一个 制表符,协助在输出文本时垂直方向保持对齐
print("1\t2\t3")
print("10\t20\t30")
\n   换行符
\"   可以输出一个"  
\\   就表示一个 \ 

 

猜你喜欢

转载自www.cnblogs.com/baohanblog/p/11807394.html