python入门二: 字符串1

关于字符串

数字类型转换:

print(bin(100)) #转成2进制
print(oct(100)) #转成8进程
print(hex(100)) #转成16进制

#结果
0b1100100     
0o144
0x64

# 0b 0o 0x 分别代表2 8 16 进制

字符串类型

msg='hello xx'
print(msg[-3],msg[3])
print(type(msg))
print(msg[:3])     #第0,1,2 (顾头不顾尾)
print(msg[5:0:-1]) #部分倒排
print(msg[-1::-1]) #倒排
#字符串类型可以像列表一样来取值
#结果
x l
<class 'str'>
hel
 olle
 xx olleh
#-1代表着倒数第一个

成员运算(判断一个字符串是否在一个大的字符串里面)

msg='hello'
msg1='hello world'
print(msg in msg1)
print(msg not in msg1)

#结果
True
False

去除空白strip

#调用方法,字符串类型下面的strip方法
x='  kong ge '
print(x.strip()) #默认是空格
y=' xxxxkong+gexxx'
print(y.strip(" x"))
#结果
kong ge
kong+ge
#这个方法是去除左右两边的,中间的不予处理(碰到第一个“”外的字符,自动跳过)
###
方法lstrip 去除左边的
方法rstrip 去除右边的

切分spilt

方法spilt
msg='root:x:0:0:/root/bin:x'
print(msg.split(":")[1])
#结果
x
#可以配置解压赋值来使用,分别赋值给各个变量

字符串处理方法

lower 转换为小写
upper 转换为大写
startswith 开头,返回布尔值
endswith 结尾
rspilt 从右切 和指定个数-1是一样的
lspilt 从左切


msg='hello World'
print(msg.lower())
print(msg.upper())
print(msg.startswith('he'))
print(msg.endswith('ld'))
print(msg.endswith('he'))
#结果
hello world
HELLO WORLD
True
True
False

字符串的格式化format

name='dhc'
age=18
print('my name is %s , my age is %s'%(name,age))#常见的
print('mys name is {} , my age is {}.'.format(name,age)) #按照顺序传变量
print('my name is {age},my age is {age}'.format(age=age,name=name))#指定传入
#结果
my name is dhc , my age is 18
mys name is dhc , my age is 18.
my name is 18,my age is 18

合并join

#有拆分spilt,自然就有合并join
msg='logstash:x:987:985:logstash:/usr/share/logstash:/sbin/nologin'
l=msg.split(':')
print(l)
print(':'.join(l))

#结果
['logstash', 'x', '987', '985', 'logstash', '/usr/share/logstash', '/sbin/nologin']
logstash:x:987:985:logstash:/usr/share/logstash:/sbin/nologin

替换replace

msg='i have a pen , i have two pen'
print(msg.replace('pen','haha'))
print(msg.replace('pen','haha',1))
#结果
i have a haha , i have two haha
i have a haha , i have two pen

判断字符串是否为数字isdigit

msg='i have a pen , i have two pen'
age='18'
print(msg.isdigit())
print(age.isdigit())
#结果
False
True
#可以用来判断用户输入的内容

# print('abc你'.isalpha()) # 字符串中包含的是字母或者中文字符

# 字符串中包含的是字母(中文字符)或数字
# print('ab'.isalnum())
# print('123123'.isalnum())
# print('ab123'.isalnum())

find,rfind,index,rindex,count

msg='hello, this is a test,dhc is a man,test'
print(msg.find('test')) 
print(msg.find('test',0,6))
print(msg.rfind('test'))
print(msg.index('test'))
print(msg.count('test'))

#结果
17   #如果有的花,第一个在什么位置
-1   #没有的话,报-1
35	 #如果有的话,从右边第一个的位置
17   #index如果存在的情况下,和find一样,但是没有的话就报错
2    #统计一共出现几处

center,ljust,rjust,zfill

msg='hello, this is a test,dhc is a man,test'
print(msg.center(50,'*'))
print(msg.ljust(50,'*'))
print(msg.rjust(50,'*'))
print(msg.zfill(50))
#格式化填充
#结果
*****hello, this is a test,dhc is a man,test******
hello, this is a test,dhc is a man,test***********
***********hello, this is a test,dhc is a man,test
00000000000hello, this is a test,dhc is a man,test

列表的追加和插入

msg=['a','b','c']
print(msg)
msg.append('d') #在后面追加一个值
print(msg)
msg.insert(1,'e')  #在第3位后插入
print(msg)

列表值的删除

msg=['a','b','c']
msg.remove('c') #必须指定要删除的值
print(msg)
del msg[1]  #单纯的删除值
print(msg)

#结果
['a', 'b']
['a']

列表值的mv

msg=['a','b','c']
res=msg.pop(2)
print(msg)
print(res)
print(msg[::-1]) #反过来
#pop的方法是删除了,但是返回值赋值给了一个变量,没有丢,相当于linux中的吗v
#结果
['a', 'b']
c
['b', 'a']

队列:先进先出

#先进去的先出来
#入队
msg=[]
msg.append('first')
msg.append('second')
msg.append('thread')
print(msg)
#出队
print(msg.pop(0))
print(msg.pop(0))
print(msg.pop(0))

#结果
first
second
thread

堆栈:先进后出

#堆栈: 先进后出
print(msg.pop())
print(msg.pop())
print(msg.pop())
#先进后出

#结果
thread
second
first
posted @ 2020-01-19 14:37  大葱丁  阅读(190)  评论(0编辑  收藏  举报