江湖秘籍与python基本数据类型—数字与字符串篇

在python中基本数据类型一共有6种,分别是数字(int)、字符串(str)、列表(list)、元祖(tuple)、字典(dict)、布尔值(bool)。每个数据类型都有自己的功能,就是使用方法。

如何理解?

我们可以参考金庸的武侠小说将这些类型给一一对应。

在金庸先生的武侠世界观中,有几大门派。武当,少林,丐帮,峨眉,华山,崆峒。

我们将其对应下来。

数字(int)>>武当

字符串(str)>>少林

列表(list)>>丐帮

.....

为什么要这样对应。

我们心想一下,假如说你现在要去加入一个门派,比如说加入武当派。好了你现在是武当派的一名弟子,你的师傅要传授本门秘籍给你,比如说武当梯云纵。这门武当功法,只有本门弟子会使用,其他门派弟子就不会。

好了我们回到python的基本数据类型来看,不同的数据类型就相当于不同的门派,而数据类型的用法就相当于是本门的武功秘籍。本门秘籍只有本门弟子会使用,其他门派弟子就不会。有人就会说了可以偷师啊,现实中每个偷师的都会被追杀。用python基本数据来说,数字(int)有自己本门的武功秘籍,这些秘籍也仅限数字(int)使用。

上面是理解,如果还不明白可以参考下面的实例。

数字(int)

在python3版本中数字只用int一个表示。

这里记录了数字(int)的两种用法:

数字(int)功法1:将字符串转化为数字型。

a='123'#'123'是字符串
print(type(a),a)#type显示数据类型
<class 'str'> 123

b=int(a)#int将字符串转换成数值型
print(type(b),b)
c=b+1000
print(c)
<class 'int'> 123
1123

 如果是‘123a’会怎么样?

这就像你想进入武当门派,掌门会先看看你的筋骨适不适合学习武当功法秘籍,而看到你(123a),一看就不适合学习本门功法,如果强行传功那就是白白浪费内力,最后掌门也会内力全失。

在使用int进行转换时,计算机内部会进行计算(具体是什么计算我也不清楚),如果非法就会报错。一看你就不适合学习本门武功,你还是另寻高明吧。

 

数字(int)功法2:将输入的字符串作为某个进制,输出出来(结果是十进制)

num=‘0011’#现在‘0011’是字符串,也不能肯定他是什么进制。
new_num=int(num,base=2)#base的意思就是告诉你‘0011’是什么进制
print(ne_num)

3

这串代码的意思就是,把‘0011’作为二进制转化为十进制。我们以此可以拓展,base=8,base=16.....

讲完武当我们现在来说少林派的武功功法。

在字符串(str),我们要掌握7个基本技能,4个绝技和1个必杀技。

字符串(str)基本功1:

.join  将字符串中的每一个元素按照指定的分隔符进行隔开。

test='少林功夫好呀真的好'
v='_'.join(test)#‘要插入的分隔符’.join(test)
print(v)
少_林_功_夫_好_呀_真_的_好

字符串(str)基本功2:

.split 指定字符串里的一个元素,将这个元素作为分隔符,将字符串分割出来,也可以指定分割次数。

str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
v1=str.split()
print(v1)
v2=str.split('e', 1 )
print (v2)

['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Lin', '1-abcdef \nLine2-abc \nLine4-abcd']



字符串(str)基本功3:

.find 从开始往后找,找到第一个之后获取其准确位置,未能找到返回-1.

text='shaolinggongfuhaoya'
v=text.find('g')#.find会找到这个元素在什么位置,要注意的是是从0开始数的。
print(v)
7

text='shaolinggongfuhaoya'
v=text.find('z')#如果字符串中没有这个元素,就会返回-1
print(v)
-1

text='shaolinggongfuhaoya'
v=text.find('o',9,12)#当然我们也可以给.find规定一个找的范围,数字9,12的意思就是从第9位找到第12位,当然这里包含第9位,却不包含第12位。
print(v)
9

字符串(str)基本功4:

.strip 移除字符串头尾指定的字符元素,返回一个新的字符串。

str = "00000003210Runoob01230000000"
v=str.strip('0')
print(v)#将字符串首位有的0,全部除去。
3210Runoob0123

str2 = "   Runoob      "
v1=str2.strip()
print(v1)#将runoob前后存在的空格全部去除。
Runoob

在strip的使用中也存在.lstrip与.rstrip。前者的意思就是将字符串中前面的元素去除,后者就是将字符串中右边的元素给去除。

字符串(str)基本功5:

.upper 将字符串中的小写字母转为大写字母。

str = "this is string example....wow!!!";
v=str.upper()
print(v)
THIS IS STRING EXAMPLE....WOW!!!

字符串(str)基本功6:

.lower 将字符串中的大写字母转为小写字母。

 

str = "THIS IS STRINg EXAMPLE....WOW!!!";
v=str.lower()
print(v)
this is string example....wow!!!

字符串(str)基本功7:

.replace  方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

str = "shaolingongfudaijing,shaolingongfudaijing,shaolingongfudaijing!!!"
v=str.replace('shaoling','wudang')
print(v)
wudangongfudaijing,wudangongfudaijing,wudangongfudaijing!!!

str = "shaolingongfudaijing,shaolingongfudaijing,shaolingongfudaijing!!!"
v=str.replace('shaoling','wudang',1)
print(v)
wudangongfudaijing,shaolingongfudaijing,shaolingongfudaijing!!!

以上字符串的7个最长用的,就相当于是少林武功里的长拳,练好后才可以修炼后面的绝技。

现在记录的是字符串(str)的四大绝技。

绝技1:索引

使用[]获取字符串中某一个字符。

test='alex,alex,alex'
v1=test[3]#3表示我需要获取字符串中某一个字符
v2=test[4:9]#当然也可以指定一个范围,4:9的意思就是第4位到第9位的元素,同样包含4不包含9
print(v1)
print(v2)
x
,alex

绝技2:切片

test='alex,alex,alex'
v=test[4:-1]#开始的第四位与尾巴的最后一位之间的元素取出
print(v)
,alex,ale

绝技3:len 字符串是由多少个字组成的

test1='woaishaolin'
test2='少林功夫好呀'
v1=len(test1)
v2=len(test2)
print(v1)
print(v2)

11
6

绝技4:range大法,帮助创建连续的数字

使用for循环

必杀技:字符串一旦创建就不可修改。

一旦修改或者拼接都会重新生成新的字符串。

 

posted @ 2018-07-13 00:47  安兹  阅读(93)  评论(0)    收藏  举报