江湖秘籍与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循环
必杀技:字符串一旦创建就不可修改。
一旦修改或者拼接都会重新生成新的字符串。

浙公网安备 33010602011771号