Python学习【第2篇】:基本数据类型(详解)
1.数字
2.字符串中的方法
str
test = "xiaoxing"
#首字母大写
v = test.capitalize()
print(v)
运行后结果如下
Xiaoxing
test = "xiAoxing"
#所有变小写,但是cacasefold更厉害,能将我们很多未知的对应关系进行转换,如其它语言(非英语)
v1 = test.casefold()
v2 = test.lower()
print(v1,v2)
运行结果如下
xiaoxing xiaoxing
#判断是否全部为大小写,并转换为大小写
test = "Xiaoxing"
v1 = test.islower()
v2 = test.lower()
print(v1,v2)
v3 = test.isupper()
v4 = test.upper()
print(v3,v4)
test = "xiaoxing"
#设置宽度
#20 代指总长度
#* 空白处位置填充,一个字符,可有可无
v = test.center(20,"*")
print(v)
运行结果如下:
******xiaoxing******
test = "xiaoxing"
#设置宽度
#20 代指总长度
#* 在左边空白处位置填充,一个字符,可有可无
v = test.ljust(20,"*")
print(v)
运行结果如下:
xiaoxing************
test = "xiaoxing"
#设置宽度
#20 代指总长度
#* 在右边空白处位置填充,一个字符,可有可无
v = test.rjust(20,"*")
print(v)
运行结果如下:
************xiaoxing
test = "xiaoxingxiaoxing"
#去字符串中寻找,寻找子序列出现的次数
#7代表查找的起始位置,14代表查找的终止位置
v = test.count('xi',7,14)
print(v)
运行结果如下
2
test = "xiaoxing"
#表示以什么开始或者结尾
#0代表查找的起始位置,8代表查找的终止位置
v1 = test.endswith("ng",0,8)
v2 = test.startswith("xi",0,8)
print(v1,v2)
运行结果如下:
True True
test = "xiaoxing"
#从开始往后找,找到第一个后,获取其位置,后面不再进行查找
#0代表查找的起始位置,8代表查找的终止位置,记住字符串都是从0开始计数,原本g结束的序号为7,但是要想定位到这里需向后一位,到8才可以
v = test.find("ao",0,8)
print(v)
运行结果如下:
2
test = 'i am {name}, age:{a}'
#格式化,将一个字符串中的占位符替换为指定的值
v = test.format(name="xiaoxing",a=21)
print(v)
运行结果如下:
i am xiaoxing, age:21
或者这么写
test = 'i am {0}, age:{1}'
#格式化,将一个字符串中的占位符替换为指定的值
v = test.format("xiaoxing",21)
print(v)
运行结果如下
i am xiaoxing, age:19
test = 'i am {name}, age:{a}'
#格式化,传入的值{"name":'xiaoxing','a':19}
v=test.format_map({"name":'xiaoxing','a':19})
print(v)
运行结果如下:
i am xiaoxing, age:19
test = "xiaoxing"
#index找不到,报错
v = test.index('ao')
print(v)
运行结果如下:
2
test = "xiaoxing123"
#判断字符串是否只包含,字母和数字,出现下划线或者特殊符号都不行
v = test.isalnum()
print(v)
运行结果如下:
True
test ="username\temail\tpassword\nxiaoxing\t123@qq.com\t123"
#expandtabs断句20,遇到\t保证字符串后补空格到20个字符,遇到\n进行换行
v = test.expandtabs(20)
print(v)
运行结果如下:
test = "asdf"
#判断字符串中是否只包含字母,如果只有字母即为true
v = test.isalpha()
print(v)
运行结果如下:
true
test = "2"
#判断当前输入是否为数字
v1 = test.isdecimal()
v2 = test.isdigit()
v3 = test.isnumeric()
print(v1,v2,v3)
运行结果如下:
True True True
test = "xiaoxing\n123"
#判断是否存在不可显示的字符,如果存在即为false,像\n或者\t都为false
v = test.isprintable()
print(v)
运行结果如下:
False
test = " "
#判断字符串内是否全部为空格
v = test.isspace()
print(v)
运行结果如下:
True
test = "Tom is very beautful girl"
#判断是否为标题,并且可以将它转换为标题
v1 =test.istitle()
print(v1)
v2 = test.title()
print(v2)
v3 = v2.istitle()
print(v3)
运行结果如下:
False
Tom Is Very Beautful Girl
True
视频看到day11,字符串魔法5,21:52
test = "我是小星"
#将字符串中的每一个元素按照指定分隔符进行拼接(特别重要)
s = ' '
t = s.join(test)
print(t)
运行结果如下:
我 是 小 星
解释:s等于一个空格的字符串,s.join相当于不断取test字符串中的值,并加上空格。
test = " xiaoxing "
test1 ="admin"
#xiaoxing左右两边分别有两个空格
#去除左右空格,去除\t,\n,也可以去除指定字符
#移除指定字符串,优先最多匹配
v1 = test.strip() #移除字符串两边空格
v2 = test.rstrip() #移除字符串右边空格
v3 = test.lstrip() #移除字符串左边空格
v4 = test1.rstrip('in') #移除匹配上in的字符串
print(v1)
print(v2)
print(v3)
print(v4)
运行结果如下:
xiaoxing
xiaoxing
xiaoxing
adm
v = "adffhajsdgaskgajdsglahsdhkaglaksdghk"
#找到对应关系,并进行替换
m = str.maketrans("asfdg","12345")
new_v = v.translate(m)
print(new_v)
运行结果:
1433h1j24512k51j425l1h24hk15l1k245hk
test = "adsfadskjfgdasghasddskafj"
#按照s对字符串进行分割成三部分,这里partition(),括号内部可填写任意字符串
v1 = test.partition('s')
v2 = test.rpartition('s')
print(v1,v2)
#按照s对字符串进行分割,但不包含s
v3 = test.split('s')
#按照s对字符串进行分割成两部分
v4 = test.split('s',2)
print(v3,v4)
运行结果如下
('ad', 's', 'fadskjfgdasghasddskafj') ('adsfadskjfgdasghasdd', 's', 'kafj')
['ad', 'fad', 'kjfgda', 'gha', 'dd', 'kafj'] ['ad', 'fad', 'kjfgdasghasddskafj']
test = "ashf\nfadfsd\nsdfdsaf\ndffds"
#根据换行符进行分割,true保留换行符,false不保留换行符
v1 = test.splitlines()
v2 = test.splitlines(True)
v3 = test.splitlines(False)
print(v1,v2,v3)
运行结果如下:
['ashf', 'fadfsd', 'sdfdsaf', 'dffds'] ['ashf\n', 'fadfsd\n', 'sdfdsaf\n', 'dffds'] ['ashf', 'fadfsd', 'sdfdsaf', 'dffds']
test = "backend 1.1.1.1"
#是否以ba开始或者结束的
v1 = test.startswith("ba")
v2 = test.endswith("1.2")
print(v1,v2)
运行结果:
True False
test = "XIaOXING"
#大小写转换
v = test.swapcase()
print(v)
运行结果:
xiAoxing
test = "xiaoxingxiaoxing"
#替换匹配的字符串
#只替换第一个匹配的字符串
v1 = test.replace("ao","zz")
v2 = test.replace("ao","zz",1)
print(v1,v2)
运行结果:
xizzxingxizzxing
xizzxingxiaoxing
###############七个基本魔法################
join
split
find
strip
upper
lower
replace
################4个灰魔法#####################
test = "xiaoxing"
#索引,下标,取字符
v1 = test[3]
print(v1)
运行结果:
o
v2= test[0:-1] #取值范围大于等于0,小于-1
#切片
print(v2)
运行结果:
xiaoxin
v3 = len(test)
#len获取当前字符串由几个字符组成
print(v3)
运行结果:
8
test = "今天的天气很好"
#利用循环每次输出一个值
index = 0
while index < len(test):
v = test[index]
print(v)
index+=1
#或者这么写
for x in test:
print(x)
运行结果:
今
天
的
天
气
很
好
#注意:
#len("asdf")
#for循环
#索引
#切片
################################10个魔法###########################################
###############################一个深灰魔法####################################
name = "xiaoxing"
age = "20"
#字符串一旦创建不可修改
#一旦修改或者拼接都会生成新的字符串
info = name + age
print(info)
运行结果:
xiaoxing20
v = range(0,100)
#帮助创建连续的数字
for i in v:
print(i)
运行结果:
0
1
2
.
.
99
v1 = range(0,100,5)
#帮助创建根据规律间隔的数字
for x in v1:
print(x)
运行结果:
0
5
10
.
.
95
#将输入的文字按照索引进行打印
#分解操作
test = input(">>>")
print(test)
l = len(test)
print(l)
r = range(0,l)
for intem in r:
print(intem,test[intem])
总的运行结果(用户输入qwe)
qwe
3
0 q
1 w
2 e
将两个进行汇总写
test = input(">>>")
for intem in range(0,len(test)):
print(intem,test[intem])
运行结果(用户输入qwe)
0 q
1 w
2 e