3.20学习内容,字符串与列表

一、字符串类型:

作用:名字,性别,国籍,地址等描述信息

定义:在单引号\双引号\三引号内,由一串字符组成。

需要掌握的方法:

1、strip  去除指定字符
lstrip 去除左边指定字符
rstrip 去除右边指定字符
print('**sss****'.lstrip('*'))
print('**sss****'.rstrip('*'))

2、lower 所有字符全部小写
upper 所有字符全部大写
print('Egon'.lower())
print('egon'.upper())

3、startswith 检查是否以某字符开头
endswith 检查是否以某字符结尾
print('alex is sb'.startswith('alex'))
print('alex is sb'.endswith('sb'))


4、format的三种玩法 关键字参数可以代替格式化里的%s
第一种:{}
s1='my name is %s my age is %s' %('egon',18)
s2='my name is {} my age is {}'.format('egon',18)
s2='my name is {} my age is {}'.format('egon',18,19)
第二种
s2='my name is {0} my age is {1} {1} {1} {0} {1}'.format('egon',18,19)
print(s2)
第三种
s2='my name is {name} my age is {age}'.format(age=18,name='egon')
print(s2)

5、split 以指定字符字符切割为列表
rsplit 从右边以指定字符切割
cmd='get|C:\a.txt|3333'
print(cmd.split('|',1))
print(cmd.rsplit('|',1))

6、join 使用指定字符将列表内的字符连接成一个字符串
cmd='egon:123:admin:rwx'
l=cmd.split(':')
res=''.join(l)
res=':'.join(l)
注意:':'.join([1,2,3]) # join方法传入的列表必须只包含str类型的元素

7、replace 替换:将指定字符替换成另一个字符
msg='wupeiqi say my name is wupeiqi'
print(msg.replace('wupeiqi','SB'))
print(msg.replace('wupeiqi','SB',1))

8、isdigit 判断是否为数字类型
print('10'.isdigit())
示例:
age=10
inp=input('>>: ').strip()
if inp.isdigit():
inp=int(inp)
if inp > age:
print('too big')
else:
print('输入数据非法')

其他操作(了解即可)
1、find 查询指定字符
rfind 从右查询指定咨询
index 检测字符串中是否包含子字符串 str
rindex 从右检测字符串中是否包含子字符串 str
count 用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
msg='my egon hegon 123'
print(msg.find('sb'))
print(msg.find('egon'))
print(msg.find('egon',8,20))
print(msg.rfind('egon'))

print(msg.index('sb'))
print(msg.index('egon'))

2、center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
ljust 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
rjust 返回一个原字符串右对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
print('========================egon=======================')
print('egon'.center(50,'*'))
print('egon'.ljust(50,'*'))
print('egon'.rjust(50,'*'))
print('egon'.zfill(50))

3、expandtabs 将字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
msg='abc\tdef'
print(msg.expandtabs(3))

4、captalize 将字符串的第一个字母变成大写,其他字母变小写
swapcase 将字符串的大小写字母进行转换
title() 返回"标题化"的字符串,就是说所有单词都是以大写开始
print('abeCdEF'.capitalize())
print('abeCdEF'.swapcase())
print('my name is egon'.title())

5、is数字系列 总结最常用的是 .isdigit() 就足以满足日常需求,如果有关钱的使用 .isnumeric() 命令。
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3=u'肆' #中文数字
num4=u'Ⅳ' #罗马数字

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('asdfasdfasdfaAsfd'.isalpha()) #字符全由字母组成

print('asdf'.isalnum()) #字符由字母或数字组成
print('I Am Egon'.isnumeric())
print(' '.isspace())
print('print'.isidentifier())



总结字符串类型:

1 存一个值
只能存一个值

2 有序or无序
有序

3 可变or不可变
!!!不可变:值变,id就变。不可变==可hash

列表类型

一:基本使用
1 用途:存放多个值

2 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制
l=['a','b','c'] #l=list(['a','b','c'])
l1=list('hello')
print(l1)

3 常用操作+内置的方法
优先掌握的操作:
1、按索引存取值(正向存取+反向存取):即可改也可以取
l=['a','b','c']
print(id(l))
print(l[-1])
l[0]='A'
print(id(l))
print(l)
l[3]='d' # 报错

2、切片(顾头不顾尾,步长)
stus=['alex','egon','wxx','yxx','lxx']
print(stus[1:3])

3、长度
stus=['alex','egon','wxx','yxx','lxx']
print(len(stus))

4、成员运算in和not in
stus=['alex','egon','wxx','yxx','lxx']
print('alex' in stus)

5、追加
stus=['alex','egon','wxx','yxx','lxx']
stus.append('wupei')
stus.append('peiqi')
print(stus)
插入
stus=['alex','egon','wxx','yxx','lxx']
stus.insert(1,'艾利克斯')
print(stus)

6、删除
stus=['alex','egon','wxx','yxx','lxx']
del stus[1]
print(stus)
stus.remove('alex')
print(stus)

stus.pop(1)
stus.pop() # 默认删除末尾
print(stus)

res1=stus.remove('alex') # 单纯的删除
print(res1)
res2=stus.pop(0) # 取走一个值
print(res2)

7、循环
stus=['alex','egon','wxx','yxx','lxx']
依赖索引
i=0
while i < len(stus):
print(stus[i])
i+=1

for i in range(len(stus)):
print(i,stus[i])

不依赖索引
for item in stus:
print(item)


补充for循环
for i in range(0,5,2): #0 2 4
print(i)
for i in range(10):#默认从零起始
print(i)

for i in range(10,-2,-1):
print(i)


需要掌握的操作
stus=['alex','egon','alex','wxx','yxx','lxx']
print(len(stus)) # stus.__len__()

print(stus.count('alex'))
stus.extend(['a','b','c'])
print(stus)
stus.append(['a','b','c'])
print(stus)


print(stus.index('alex',1,5))

stus.reverse()
print(stus)

l=[1,10,3,12]
l.sort(reverse=True)
print(l)


大前提:只能同类型直接比较大小,对于有索引值直接的比较是按照位置一一对应进行比较的
s1='hello'
s2='hf'
print(s1 > s2)

l1=[3,'a','b','c']
l2=['xxx','d']
print(l1 > l2)


英文单词大小定义:
print('Z' > 'a')
A-Za-z
print('a' > 'B')


 

posted @ 2018-03-20 18:37  yangweiwe  阅读(166)  评论(0编辑  收藏  举报