Python文章为基础篇,主要提供给基础生查看资料学习使用!本博主的主要方向为网络安全,讲解黑客技术。后期在制作黑客工具时,会用到Python这门语言。所以,在此提供一些基础的Python知识!
1、字符串的基本操作
字符串的基本操作包含索引、切片、乘法、检查成员、长度、最大值最小值。其特点为字符串是不可变的,所以不能进行元素赋值以及切片赋值。
索引:
索引第一个字符从0开始
name = 'honker-Cybersecurity'
print(name[3])
切片:
name = 'honker-Cybersecurity'
print(name[0:6])
乘法:
name = 'honker-Cybersecurity\n'
print(name*3)
检查成员:
name = 'honker-Cybersecurity'
if 'honker' in name : print('Fi
长度:
name = 'honker-Cybersecurity'
print(name.__len__())
最大值最小值:
name = ['51','32','95']
print(max(name))
print(min(name))
字符串的不可变及不能赋值的特性:
name = 'honker-Cybersecurity'
name[-3:] = 'ion'
二、设置字符串的格式
如果你学过C语言,那么对%d,%s,%f,%lf,%c肯定不陌生吧,接下来Python的这个功能和C类似。看下面示例:
demo = "Hello,%s. Welcome %s ,I'm %d"
values = ('friend','Honker',21)
print(demo % values)
除此之外,还有另外一种常见用法,替换上面的%s,%d,一样的效果:
from string import Template
demo = Template("Hello,$name. Welcome $what ,I'm $age")
result = demo.substitute(name="friend",what="Honker",age=21)
print(result)
现在Python新时代出现的另一种替换字段的方法format也比较好用,见示例:
要好好观察下面示例2和3的区别
demo1 = "Hello {},Welcome {}".format("friend","Honker")
print(demo1)
demo2 = "Hello {0},Welcome {1}".format("friend","Honker")
print(demo2)
demo3 = "Hello {1},Welcome {0}".format("friend","Honker")
print(demo3)
再看以下示例:
from math import pi
demo1 = "{name} is approximately {value:.2f}".format(name="pai",value=pi)
print(demo1)
demo2 = "{name} is approximately {value}".format(name="pai",value=pi)
print(demo2)
三、基本转换
指定要在字段中包含的值后,就可添加有关如何设置其格式的指令了。首先,可以提供一个转换标志:
demo = "{pi!s} {pi!r} {pi!a}".format(pi="π")
print(demo)
s即代表函数str创建字符串,r为函数repr创建给定值的Python表示。a为ascii字符。
下面还有更多类型转换:
demo1 = "This is a number ,it is {num}".format(num=21)
print(demo1)
demo2 = "This number is {num:f}".format(num=21)
print(demo2)
demo3 = "This number is {num:o}".format(num=21)
print(demo3)
demo4 = "This is number {num:x}".format(num=21)
print(demo4)
下面将给出各种类型及其含义:
类型 含义
b 将整数表示位二进制数
c 将整数解读为Unicode码点
d 将整数视为十进制数进行处理,默认的使用说明符
e 使用科学表示法来表示小数(用e来表示指数)
E 与e相同,但使用E来表示指数
f 将小数表示为定点数
F 与f相同,但对于特殊值(nan和inf),使用大写表示
g 自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数
G 与g相同,但是用大写来表示指数和特殊值
n 与g相同,但插入随区域而异的数字分隔符
o 将整数表示为八进制数
s 保持字符串的格式不变,这是默认用于字符串的说明符
x 将整数表示为十六进制,并用小写字母
X 与x相同,但是用大写字母
% 将数表示为百分比值
四、宽度,精度,千位分隔符
宽度是使用整数指定的,观察下面示例:
demo1 = "{num:10}".format(num=3)
print(demo1) #数字靠右显示
demo2 = "{name:10}".format(name="Honker")
print(demo2) #字符靠左显示,空格在后面
精度也是使用整数指定的,但需要在它前面加上一个表示小数点的句点:
from math import pi
demo1 = "Pi is {pi:.2f}".format(pi=pi)
print(demo1)
demo2 = "{pi:10.2f}".format(pi=pi)
print(demo2)
对于字符串,一样可以使用精度来指定长度:
demo = "{:.6}".format("HonkerCybersecurity")
print(demo)
千位分隔符:
demo = 'One google is {:,}'.format(10**100)
print(demo)
五、字符串常用方法
center:将字符串位于长度中间
demo = "HonkerCybersecurity".center(50)
print(demo)
find:查找字符串中的值
demo1 = "Hello HonkerCybersecurity ,We are family!".find("Honker")
print(demo1) #找到指定字符返回索引
demo2 = "Hello HonkerCybersecurity ,We are family!".find("Hello")
print(demo2) #索引从0开始
demo3 = "Hello HonkerCybersecurity ,We are family!".find("You")
print(demo3) #找不到返回-1
find还有一种写法,指定开始索引:
demo = "Hello HonkerCybersecurity ,We are family! welcome Honker!".find("Honker",10)
print(demo) #打印结果是第二个Honker的索引
当然也可以指定终点,这个时候需要有起点。
.find("Honker",0,21) #0为起点索引,21为终点索引
join:向一个字符串中加入另一个字符
demo1 = ['1','2','3']
str1 = '+'
result1 = str1.join(demo1)
print(result1)
demo2 = '','usr','bin','go'
str2 = '/'
result2 = str2.join(demo2)
print(result2)
demo3 = 'C:','usr','bin','go'
str3 = '\\'
result3 = str3.join(demo3)
print(result3)
lower、upper:将字符改变大小写
demo1 = 'Honker'.lower()
print(demo1)
demo2 = 'Honker'.upper()
print(demo2)
replace:替代字符
demo1 = "This is a Honker".replace("a"," ")
print(demo1)
demo2 = "We is family!".replace("is","are")
print(demo2)
split: 与join相反的功能,拆分字符串
demo1 = '1+2+3'.split('+')
print(demo1)
demo2 = '/usr/bin/go'.split('/')
print(demo2)
demo3 = 'We are family!'.split()
print(demo3)
strip:删除字符串头尾空格,不删除中间空格,也可指定字符。
demo1 = " Welcome honker ! ".strip()
print(demo1)
demo2 = "@@@ Welcome honker ! @@@".strip('@')
print(demo2)
demo3 = "@@@ Welcome honker !!! @@@".strip(' @!')
print(demo3)
translate:替换指定部分字符
与replace一样替换字符串的指定部分,但不同的是它只能进行单字符替换。优势在于能够同时替换多个字符,所以要比replace效率高!
首先需要创建一个转化表,需要用到str中的maketrans方法,这个方法需要接收两个参数:两个长度相同的字符串,它们指定要将第一个字符串中的每个字符都替换为第二个字符串中的相应字符。
第三个参数用于删除某个字符,可选写:
table1 = str.maketrans('os','ke') #创建转换表
print(table1)
demo1 = "this is Honker!".translate(table1)
print(demo1)
table2 = str.maketrans('os','ke',' ') #创建转换表,并有第三个参数删除空格
demo2 = "this is Honker!".translate(table2)
print(demo2)
另一些方法及其功能:
方法 功能
count(sub[,start[,end]]) 计算子串sub出现的次数,可搜索范围限定为string[start:end]
index(sub[,start[,end]]) 返回找到的第一个子串sub的索引,如果没有找到这样的子串,就返回-1;还可将范围限制为string[start:end]
isalnum() 检查字符串中的字符是否都是字母或数
isalpha() 检查字符串中的字符是否都是字母
isdecimal() 检查字符串中的字符是否都是十进制数
isdigit() 检查字符串中的字符是否都是数字
isidentifier() 检查字符串是否可用作Python标识符
islower() 检查字符中的所有字母都是小写的
isnumeric() 检查字符串中的所有字符是否都是数字字符
isprintable() 检查字符串中的字符是否都可以打印
isspace() 检查字符串中的字符是否都是空白字符
istitle() 检查字符串中位于非字母后的字母都是大写的,且其他所有字母都是小写的
isupper() 检查字符串中的字母是否都是大写
partition(sep) 在字符串中搜索sep,并返回元祖(sep前面的部分,sep,sep后面的部分)
splitlines([keepends]) 返回一个列表,其中包含字符串中的所有行;如果参数keepends为True,将包含换行符
startswith(prefix[,start[,end]]) 检查字符串是否以prefix打头;还可将匹配限制在索引start和end之间
swapcase() 将字符串中所有字母的大小写反转,并返回结果
title() 将字符串中所有单词的首字母都大写,并返回结果
zfill(width) 在字符串左边填充0,使其长度为width
到这里,Python字符串章节就差不多讲完了,还有一些个别的知识没讲到,欢迎留言补充!
往期推荐: