先来介绍些在Python中常用的5个基本数据类型:
1.数字: 包括整数、浮点数(概括的讲就是带有小数点)、复数(很少用)
基本用法就是做数学运算:比如 +、-、*、/、**(幂) :
比如2**3 == 2*2*2 ---->8
还有些于数字表达式相关联的就是数字模块:下面指出一些常用的数字处理模块
import math
math.pi = 3.1415926....... 求 pai
math.sqrt(9) = 3.0 对指定得数值开平方 == ∫2
math.pow(2,3) == 2 ** 3 求2的3次幂
abs(-2) 求绝对值
....................还有些就不一一列出来了
2.字符串:
字符串是属于序列的一种,所以想当然就可以切片,下面介绍常用的切片方式:
与下面变量相对于的索引下标:0,1,2,3,4,5,6
比如定义变量name = "abcdefg" ------->切片的样例: name[start:end:buchang]
其中start:起始位置 end:结束位置 buchang:步长,就相当于跨多少步 默认是1
注意:其中start可以不写,默认是从0开始算 ,end也可以不写,默认是到最后的位置
所以说勒 name[:] ===> "abcdefg" 会从0位置开始截取,一直到最后还有 name[2:4] ===> "cd" ---->正常逻辑来看应该不会大于"cde"吗 ,这是为啥呢,这里值得注意的是python其他数据类型只要能切片都是遵循包前不包后的元则,所以到下标为4,起始只到3.........
或者说还有name[:-1] ===>是的,切片也支持从后面,不过始终原则是从左往右取,所以说name[-1:-3] 是取不到滴,因为是从左往右,name[-3:-1] == > ef 。
不过呢,如果想从右到左也不是不可以滴,,不是还有个步长嘛,name[-1:-3:-1]===>"gf",这样就是从右开始取值。差不多切片就介绍到这了。下面该介绍些字符串中常用的函数方法咯!!!!!
2.1:常用内置函数:
2.1.1 "abcd".copitalize()---->"Abcd" ===>将内容的第一个数转为大写
2.1.2 "abcdefb".count(str,start,end)--->"abcdefb".count("b")---->2 ===> 计算指定数据在内容中个数,其中b在数据中出现了2次》》》start:从哪里开始算,end:从哪里介绍====>所以"abcdefb".count("b",2,4)---->0 ===>在索引为2,4(c,d)之间查找是否有"b" ,count函数如果没有找到则会返会0.。。。。
2.1.3 "abcde".endswith(str,start,end) ---->"abcde".endswitch("e")--->True ===>判断字符"e"是否在数据中的结尾,如果存在返回True,否则返回Flase
其中start,end和上面的count函数一样,也是指定从哪里开始算,到哪里结束。。。 当然还有个类似的函数:
2.1.4 "abcde".startswith("ab",start,end) --->True====判断数据内容是否以"ab"开头,是则返回True,否则返回False 其他和上面一致.......
2.1.5 "abcde".find("a",start,end)----->"abcde".find("a",0,4)---->0 ==>从下标0,4("abcd")中查找是否存在"a",如果存在返回该字符的索引位置,否则返回-1......
2.1.6 "abcdefd".rfind("d",start,end)---->"abcdefd".rfind("d")--->7 ===>注意的是rfind就当与rightfind,也就是优先算右边的,什么意思呢:
就是查找还是依次从左至右一个个查,但是比如"d",在内容出现了2次,第一次索引为3,第二次出现的位置是6,正常情况下用find()则是从左致右找到一个,就立马返回出来,所以rfind和find的区别就是如果出现2次或2次以上则选择右边下标,同样未查到则返回-1
2.1.7 "abcdefgb".index("d",start,end)---->和find()操作方法,返回结果一样,也是找到则返回索引。唯一不同的是find()未找到返回-1,
而index()未找到则直接抛异常:ValueError: substring not found
2.1.8 "ABCabc".lower() ---->"abcabc" ===>将所有数据字符转换为小写
与上面类似的是 "abcabc".upper() ---->"ABCABC" ==>将所有数据字符转换为大写
注意: 上面所述的转换不是讲原来的变量替换掉,而是重新生成一个变量,所以可以用新的变量保存即可==>
比如content = "abc".upper()
2.1.9 "abc12".isalnum()---->True 和 "abc12@&".isalnum() ---->False ====>判断字符数据中是否都是数字(不包括小数或负数,因为-1中的-是符号)或者字母,是则返回True,否则返回False........
2.3.1 "abc12".isalpha()---->False 和 "abcdeABC".isalpha() ---->True ===>判断字符数据中是否都是字母(大小写都行),是则返回True,否则返回False.......
2.3.2 "abc12".isdigit() ---->False 和 "122324".isdigit()---->True ===>判断字符数据中是否是纯数字,是则返回True,否则返回False........
2.3.3 "a@#!$%:^182".islower()--->True 和 "aA@sda#!$%:^182".islower()--->False ===> 1.至少有一个小写字母 2.不能有一个大写字母 。满足上述两个条件则返回True,否则返回False
2.3.4 "a@@$ABC".isupper()--->False 和 "@@$A".isupper()--->True ====> 1.至少有一个大写字母 2.不能有小写字母 。满足上述两个条件则返回True,否则返回False
2.3.5 有三种去空格方式 ------》左边去空格:" 张三".lstrip()--->"张三" 右边去空格:"张三 ".rstrip()--->"张三" 以及两边去空格:" 张三 ".strip()
2.3.6 len("abcde") ----->5 ===>计算字符串的长度
2.3.7 "abcd".replace(old,new,count)--->"abcd".replace("a","c",2)===>该方法是将字符a替换成c,其中old:代表想要替换的值,new:代表剃替换的新值,count代表替换几个,默认是全部替换,也就是说如果字符串里面有两个a,指定count=1,则只替换前面一个a,后面不替换。。。。。。。
2.3.8 "abcd cd ef".split(" ")---->['abcd', 'cd', 'ef'] ====>该方法是分割,也就是通过空格来分割字符,以列表的形式返回,所以还可以这样写:
"abc,aa,s,d".split(",")---->['abc', 'aa', 's', 'd'] ===>根据逗号分割。。。。。。
3.最后来讲几个关于字符串格式化拼接的方式:
3.1使用"+",当然这个是最low的方法===>"a" + "b" ---->"ab"
3.2使用%号,比如"my name is %s" % "tig"-----> "my name is tig" ====>%s就相当于一个占位符一样,然后通过%号后面的参数传入到占位符中。
如果有一个以上则需要用()包起来,比如 "my %s is %s" % ("zhang","12") ----> "my zhang is 12" 目前至少我最常用的就是%s 和%d,其中%d代表数字
3.3 还可以使用format函数---->"my {0} is {1}".format("name","zhang")----> "my name is zhang"===>其中0或者1可写可不写
还有种就是"my {content} is {name}".format(content="name",name="zhang") --->"my name is zhang" ==>注意,这个变量名得一致对应。