python其他知识目录

 

1、for循环遍历字符串中单个字符



s_str="mcw"
for i in s_str:
print(i)
-----------结果:
m
c
w



2、#计算字符串长度



s_str="mcw"
mcw_len=len(s_str)
print(mcw_len)
------------结果:
3



3、#字符串索引



m_str="mcw"
print(m_str[0],m_str[2],m_str[1])
-----------结果:
m w c



4、#让用户输入任意字符串,获取字符串之后并计算其中有多少个数字isdigit()



text=input("请输入内容:")
index_len=len(text)
index=0
while True:
val=text[index]
print(val)
if index==index_len -1:
break
index+=1

text=input("请输入内容:")
index_len=len(text) #输入字符串的长度,
index=0 #字符串的下角标,下角标为[0,index_len-1]
count=0 #对数字个数进行计数
while True:
val=text[index]
if val.isdigit():
print(val)
count+=1
if index==index_len -1:
break
index+=1
print("数字总共有%s个"%(count))
-----------------结果:
请输入内容:mcwff9023ff
9
0
2
3
数字总共有4个



实现步骤思路:

1、用的是while对输入字符串进行循环打印(while循环字符串需要统计字符串长度,开
头和结尾数字)
2、判断字符是否为数字,打印出数字来
3、初始化一个计数变量,多一个数字就自增一对个数进行统计。

5、#索引取值,从前向后,从后向前取。

6、#切片和索引



-----------------
         01234 
mcw_str="mcwhr"
------------------
print(mcw_str[0],mcw_str[2],mcw_str[4])
m w r
-------------------
print(mcw_str[-1],mcw_str[-2],mcw_str[-3],mcw_str[-4],mcw_str[-5])
r h w c m
------------------
print(mcw_str[2:4],mcw_str[3:-1],mcw_str[2:],mcw_str[:-1],mcw_str[:3])
wh h whr mcwh mcw
自我注解:[2:4]取下标2,3,不包含4;[3:-1],取指定下标3到最后一个,-1为倒数第一个,不包含最后一个;[2:],从指定下标到最后一个,包含最后一个;[:-1],取下标从0到
         最后一个,不包含最后一个;[:3],从开头到下标2做操作,不包含下标3
--------------------
[::]取所有 [::-1]倒着取,步长为1



取最后两个字符[-2:],或者[字符总长度-2,字符总长度],len().



mcw_str="mcwhr"
print(mcw_str[-2:])
hr

mcw_str="mcwhr"
total_len=len(mcw_str)
v=mcw_str[total_len-2:total_len]
print(v)
hr



错误:IndexError: string index out of range

原因:索引超出范围了。

mcw="sfsf"
print(mcw[7])

7、#字符串操作split,#有时间添加awk的切割做对比

split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

1、split()函数
语法:str.split(str="",num=string.count(str))[n]

参数说明:
str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列
表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给
新的变量
[n]:表示选取第n个分片

注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略

string = "www.mcw.com.cn"
1.以'.'为分隔符              #指定分隔符切割
print(string.split('.'))
['www', 'mcw', 'com', 'cn']
 
2.分割两次         #指定分隔符,指定切割次数
print(string.split('.',2))
['www', 'mcw', 'com.cn']
 
3.分割两次,并取序列为1的项     #指定分隔符,指定次数切割并取指定下标的元素。
print(string.split('.',2)[1])
mcw
 
4.分割两次,并把分割后的三个部分赋值给三个变量。    #指定分隔符,指定次数分割。分割结果赋值给(次数+1)个变量(疑问,赋值变量个数可以少点吗?)
u1, u2, u3 =string.split('.',2)
print(u1)—— www
print(u2)—— mcw
print(u3) ——com.cn
-----------------------------
5、一个复杂的切割案例:
mcwstr="hello mcw<[www.baidu.com]>byebye"

 

1)print(mcwstr.split("[")[1])
   www.baidu.com]>byebye

 

2)print(mcwstr.split("[")[1].split("]")[0])
         www.baidu.com
    3)print(mcwstr.split("[")[1].split("]")[0].split("."))
   ['www', 'baidu', 'com']

6、split默认以空格为分隔符



name="xiao ma guo he"
print(name.split())
--------结果:
['xiao', 'ma', 'guo', 'he']



8、#字符串操作isdigit使用



mcw1="a"
mcw2="2"
mcw3="8b"
n1=mcw1.isdigit()
n2=mcw2.isdigit()
n3=mcw3.isdigit()
print(n1,n2,n3)
---------------结果:
#False True False
#自我注解:只要是数字返回值就是True.由此判定字符是否为数字。



#让用户输入任意字符串,获取字符串之后病计算其中有多少个数字



text=input("请输入内容:")
index_len=len(text) #输入字符串的长度,
index=0 #字符串的下角标,下角标为[0,index_len-1]
count=0 #对数字个数进行计数
while True:
val=text[index]
if val.isdigit():
print(val)
count+=1
if index==index_len -1:
break
index+=1
print("数字总共有%s个"%(count))
------------------结果:
请输入内容:mcwff9023ff
9
0
2
3
数字总共有4个



实现步骤思路:

1、用的是while对输入字符串进行循环打印(while循环字符串需要统计字符串长度,开 
头和结尾数字)
2、判断字符是否为数字,打印出数字来
3、初始化一个计数变量,多一个数字就自增一对个数进行统计。

9、#字符串操作upper和lower



mcw1="MCcI"
mcw2="mKlsM"
print(mcw1.lower(),mcw2.upper())
-----------------结果:
mcci MKLSM


mcw="mCwfeIhAo xIao"
mcwmodify=mcw[0:1].upper()+mcw[1:len(mcw)].lower()
mm=mcw[:-3].lower()+mcw[-3:].upper()
print(mcwmodify)
print(mm)
----------------结果:

Mcwfeihao xiao
mcwfeihao xIAO

#自我注解: 对字符串大小写进行转换,也可以对字符串先切片再转换大小写,用+号拼接起来。

      可指定字符转换大小写,当结合切片的时候



10、#字符串操作strip(),lstrip(),rstrip()

参考:

Python中有三个去除头尾字符、空白符的函数,它们依次为:

strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)
注意:这些函数都只会删除头和尾的字符,中间的不会删除。

用法分别为:
string.strip([chars])
string.lstrip([chars])
string.rstrip([chars])

参数chars是可选的,当chars为空,默认删除string头尾的空白符(包括\n、\r、\t、' ')
当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

它返回的是去除头尾字符(或空白符)的string副本,string本身不会发生改变。

举例说明如下:
1. 当chars为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')

m_str=" xiao ma "
print("---|"+m_str+"|---") #原字符串打印
print("---|"+m_str.strip()+"|----") #删除头尾空格
print("---|"+m_str.lstrip()+"|---") #删除开头空格
print("---|"+m_str.rstrip()+"|---") #删除结尾空格
显示结果:
---| xiao ma |---
---|xiao ma|----
---|xiao ma |---
---| xiao ma|---

2.当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉。

m_str="122xiao12ma2"
print(m_str) #原字符串打印
print(m_str.strip("12")) #删除头尾指定字符串
print(m_str.lstrip("12")) #删除开头指定字符串
print(m_str.rstrip("12")) #删除结尾指定字符串

结果:
122xiao12ma2
xiao12ma
xiao12ma2
122xiao12ma

3、字符串也可以变量代替
a = 'x'
b = 'xiaoma'
print(b.lstrip(a))

iaoma

4、
a="c:\acmacm"
b="c:\a\cmcw"
print(b.strip(a))

\cmcw #去除变量b中与变量a开头相同的部分。

 5、#去制表符,换行符



v1="mcw\nxiaoma"
v2="mcw \t xiaoma"
print(v1)
print("------------------------")
print(v2)
print("---------------------------")
v3="mcw\n"                                   #去制表符,换行符
v4="xiaoma\t"
print(v3.strip(),v4.strip())



 6、默认同时去掉制表符,换行符,空格这些



ss="  \t   mcw\n   "
li=[]
li.append(ss)
li.append(ss.strip())
print(li)
------------------结果:
['  \t   mcw\n   ', 'mcw']