python基本数据类型

运算符

(1)“+”,两个对象相加

(2)“-”,两个对象相减

(3)“*”、两个对象相乘

(4)“/”,两个对象相除

(5)“%”,相除返回商的余数

(6)“//”,返回商的整数部分

(7)“**”,返回x的y次方幂结果

比较运算

(1)"=",等于,用于比较两个对象是否相等

(2)“>”,大于,用于比较大于号左边的对象是否大于右边的对象

(3)“<”,小于,用于比较小于号左边的对象是否小于右边的对象

(4)“!=”,不等于,用于比较两个对象是否不相等

(5)“<>”,不等于,同!=

(6)“>=”,大于等于,用于比较左边对象是否大于等于右边对象

(7)“<=”小于等于,用于比较左边对象是否小于等于右边对象

布尔值>>>>bool

(1)True:表示结果成立,为真,用“1”表示

(2)False:表示结果不成立,为假,用“0”表示

     注意:以下(None ,"",  () ,[] ,{} ,0 )用bool判定都为False

逻辑运算

(1)“和”》》》》》用"and"表示,and两边条件都成立则返回true,只有一个成立或两个都不成立则返回False

(2)“或”》》》》》用“or”表示,or两边两件至少有一边条件成立则返回True

      注意:and 与or运算没有先后顺序,在python中遵循从左往右的顺序做判断,如果有括号,括号里的运算优先

(3)“in”》》》》表示在,  a in b,表示a在b里

(4)"not in">>>>>表示不在,a not in b,表示a不在b里

 

基本数据类型

(1)数字>>>>int类型

      注意:数字不可进行迭代

1.int(x, base=10)表示将X字符串转换为十进制数字表示

     

num=a
v=int(num,base=16)#int(x, base=10)表示将X字符串转换为十进制数字表示
print(v)#>>>>>11

  

2.bit_length(self)表示当前数字用二进制表示需要多少位数

num=11
v=num.bit_length()   #bit_length(self)表示当前数字用二进制表示需要多少位数
print(v)>>>>#4

(2)字符串》》》》》str类型

#######字符串一旦创建,不可修改

#######可以迭代,有序

字符串用法:

 1.capitalize(self)表示将字符串首字母变大写

 n1="aaabbbccc"
 n2="apple"
 v=n1.capitalize()#capitalize(self)表示将字符串首字母变大写
 print(v)>>>>>>#Aaabbbccc

 2.casefold(self)表示将字符串中的大写字母全部转换为小写

n1 = "aaabBBccc"
n2 = "apple"
v=n1.casefold()#casefold(self)表示将字符串中的大写字母全部转换为小写
print(v)#》》》》》aaabbbccc

3.center表示设置宽度,并将内容居中

n1 = "aaabBBccc"
n2 = "apple"
v=n1.center(20,"*")#center表示设置宽度,并将内容居中,20代表字符串总位数,*表示空位用它表示
print(v)#>>>>>>*****aaabBBccc******

4. count表示统计字符串中有多少子序列

n1 = "aaabBBccc"
n2 = "apple"
v=n1.count("a",1,7)#count表示统计字符串中有多少子序列,后面参数表示起始位置与结束位置
print(v)#>>>>>2

5.endswith表示以什么结尾,参数表示起始位置与结束位置,若存在,返回true,否则返回false

  同理,startswith表示以什么开始

n1 = "aaabBBccc"
n2 = "apple"
v=n1.endswith("c",1,8)#endswith表示以什么结尾,参数表示起始位置与结束位置,若存在,返回true,否则返回false
print(v)#>>>>True

6.find表示字符串从开始往后找,找到第一个之后,获取其位置,参数表示起始位置与结束位置,若没找到返回“-1”

n1 = "aaabBBccc"
n2 = "apple"
v=n1.find("b",1,7)#find表示字符串从开始往后找,找到第一个之后,获取其位置,参数表示起始位置与结束位置,若没找到返回“-1”
print(v)#>>>>>>3

7.index表示字符串从开始往后找,找到第一个之后,获取其位置,参数表示起始位置与结束位置,若没找到会报错

n1 = "aaabBBccc"
n2 = "apple"
v=n1.index("b",1,8)#index表示字符串从开始往后找,找到第一个之后,获取其位置,参数表示起始位置与结束位置,若没找到会报错
print(v)#>>>>>>3

8.format表示格式化,将将一个字符串中的占位符替换为指定的值

test = 'i am {name}, age {a}'
v = test.format(name='alex',a=19)#format表示格式化,将将一个字符串中的占位符替换为指定的值
print(v)#>>>>>i am alex, age 19
test = 'i am {0}, age {1}'
v = test.format('alex',19)#用下标也可替换为指定的值
print(v)#>>>>>>>i am alex, age 19

9.format_map表示格式化,将指定的值替换为字符串中的占位符

test = 'i am {name}, age {a}'
v2 = test.format_map({"name": 'alex', "a": 19})#format_map表示格式化,将指定的值替换为字符串中的占位符
print(v2)#>>>>>>i am alex, age 19

10.isalnum表示字符串中是否只含有字母和数字或汉字,若结果为真则返回True,否则False

test = "123"
v = test.isalnum()#isalnum表示字符串中是否只含有字母和数字或汉字,若结果为真则返回True,否则False
print(v)#>>>>>>True

11.isalpha判断字符串中是否只含有字母

n1="aaa"
v=n1.isalpha()#isalpha判断字符串中是否只含有字母
print(v)#>>>>>>>True

12.isdecimal判断当前输入字符串是否是数字

    isdigit判断字符串是否为二进制数字及特殊符号表示的数字,但不能识别文字形式数字

    isnumeric判断字符串是否为数字,可以识别各种形式表示的数字

n1="二"
n2="2②"
n3="2②二"
v1=n1.isdecimal()#isdecimal判断当前输入字符串是否是数字,只能判断是否是十进制形式数字
v2=n2.isdigit()#isdigit判断字符串是否为二进制数字及特殊符号表示的数字,但不能识别文字形式数字
v3=n3.isnumeric()#isnumeric判断字符串是否为数字,可以识别各种形式表示的数字
print(v1)#>>>>>>>>False
print(v2)#>>>>>>>True
print(v3)#>>>>>>>>True

  

13.isprintable判断是否存在不可显示的字符,若存在返回False,否则True,("\n"为换行符,“\t”为制表,都为不可显示字符)

n1="fjkajfk\nafkfj"
v1=n1.isprintable()#isprintable判断是否存在不可显示的字符,若存在返回False,否则True
print(v1)#》》》》False

14.isspace判断是否全是空格

n1="   "
v1=n1.isspace()#isspace判断是否全是空格
print(v1)#>>>>>>>True

15.istitle判断是否是标题,即每个子序列是否是大写字母开头

    title将字符串转换成标题,即每个子序列都是大写字母开头 

n1="Afjkdjf ejfiejf mkejfkejfk"
v1=n1.istitle()#istitle判断是否是标题,即每个子序列是否是大写字母开头
v2=n1.title()#title将字符串转换成标题,即每个子序列都是大写字母开头
print(v1)#》》》》False
print(v2)#》》》》Afjkdjf Ejfiejf Mkejfkejfk

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

n1="今天是星期几"
v1="*".join(n1)#join将字符串中的每一个元素按照指定分隔符进行拼接
print(v1)#>>>>>>今*天*是*星*期*几

17.islower判断字符串是否都是小写

    lower将字符串全转换成小写

    isupper判断字符串是否全为大写

    upper将字符串全部转换成大写

test = "Apple"
v1 = test.islower()#islower判断字符串是否都是小写
v2 = test.lower()#lower将字符串全转换成小写
print(v1, v2)#>>>>>>>>>False apple
v1 = test.isupper()#isupper判断字符串是否全为大写
v2 = test.upper()#upper将字符串全部转换成大写
print(v1,v2)#》》》False APPLE

  

18.lstrip从左边移除指定字符串,有限最多匹配,可以移除空白

    rstrip从右边移除指定字符串,有限最多匹配

    strip从两边边移除指定字符串,有限最多匹配

test = "aexxxxaxa"
v1= test.lstrip('xa')#lstrip从左边移除指定字符串,有限最多匹配
v2 = test.rstrip('axx')#lstrip从右边移除指定字符串,有限最多匹配
v3 = test.strip('xa')#lstrip从两边边移除指定字符串,有限最多匹配
print(v1)#》》》》》exxxxaxa
print(v2)#>>>>ae
print(v3)#》》》》》e

19.maketrans创建对应关系  

v = "asidufkasd;fiuadkf;adfkjalsdjf"
m = str.maketrans("aeiou", "12345")#maketrans创建对应关系
new_v = v.translate(m)
print(new_v)

20.partition从左边以指定字符将字符串分割三部分

    rpartition从右边以指定字符将字符串分割三部分

test = "testasdsddfg"
v = test.partition('s')#partition从左边以指定字符将字符串分割三部分
print(v)#》》》》》('te', 's', 'tasdsddfg')
v = test.rpartition('s')#rpartition从右边以指定字符将字符串分割三部分
print(v)#》》》》》('testasd', 's', 'ddfg')

21.split以指定字符将字符串从左往右分割为几部分,输出结果不包含分割字符,为列表形式

    rsplit以指定字符将整个字符串分割,不包含分割字符

test = "testasdsddfg"
v = test.split('s',2)#split以指定字符将字符串从左往右分割为几部分,输出结果不包含分割字符,为列表形式
print(v)#>>>>>['te', 'ta', 'dsddfg']
v2=test.rsplit("s")#rsplit以指定字符将整个字符串分割,不包含分割字符
print(v2)#》》》》》['te', 'ta', 'd', 'ddfg']

22.splitlines分割,只能根据,true,false:是否保留换行

test = "asdfadfasdf\nasdfasdf\nadfasdf"
v = test.splitlines(False)#splitlines分割,只能根据,true,false:是否保留换行
print(v)#>>>>>['asdfadfasdf', 'asdfasdf', 'adfasdf']

23.swapcase大小写转换

test = "appLE"
v = test.swapcase()#swapcase大小写转换
print(v)#>>>>>APPle

24.isidentifier判断字符串是否以字母、下划线开头

a = "a_ajajf"
v = a.isidentifier()#isidentifier判断字符串是否以字母、下划线开头
print(v)#>>>>True

25.replace表示将指定字符串替换,参数表示要替换的数量,默认从左往右全部替换,参数表示需要替换的数量

test = "appleppal"
v = test.replace("pp",'www')#replace表示将指定字符串替换,参数表示要替换的数量,默认从左往右全部替换,参数表示需要替换的数量
print(v)#>>>>>awwwlewwwal

26.expandtabs表示断句,以参数为宽度从头到尾开始断句,遇到"\t"则空格补全一段宽度,没有出现"\t"则继续开始下一段

n1="ajkajkajk\tjkjqiqjijqi"
v=n1.expandtabs(13)#expandtabs表示断句,以参数为宽度从头到尾开始断句,遇到"\t"则空格补全一段宽度,没有出现"\t"则继续开始下一段
print(v)#》》》》》》ajkajkajk    jkjqiqjijqi,结果说明后一段j前面一段长度为13,k后用空格补全

(3)列表》》》》》list

######列表用[]表示,里面的每个元素用",'隔开,列表创建完可以进行修改,列表元素在内存中以链表形式存在

######列表中的元素可以是 数字,字符串,列表,布尔值..所有的都能放进去

######列表有序,元素可以被修改,删除,增加

列表用法:

(1)循环  for

li = ["a","faaaa",11132,["jfakjfkalj","jfkjfk",454545],44444]
for i in li:
    print(i)#循环输出列表中每一个元素
print(li[2:3] )#切片输出的结果是列表

(2) 索引取值,对象.[下标]

(3)索引修改,对象.[下标]=新值

(3)索引删除  del.对象[下标]

(4)切片取值,对象.[下标:下标]

(5)切片删除,对象.[下标:下标]

(6)切片修改,对象.[下标:下标]=[新值,新值]

  in用法v="a" in li#判断元素在不在列表里面,注意元素指用逗号隔开的整个元素

列表内置方法

(1)append追加,表示将值作为一个元素追加到列表最后一个元素后面

li = [11, 22, 33, 44, 55]
li.append(33)#append追加,表示将值作为一个元素追加到列表最后一个元素后面
print(li)#》》》》》[11, 22, 33, 44, 55, 33]

(2)clear清空列表

li = [11, 22, 33, 44, 55]
li.clear()#clear清空列表
print(li)#》》》》》[]

(3)copy拷贝(浅拷贝)

li = [11, 22, 33, 44, 55]
v=li.copy()#copy拷贝(浅拷贝)
print(v)#>>>>>[11, 22, 33, 44, 55]

(4)count计算元素出现的次数

li = [11, 22, 33, 44,33,.55]
v=li.count(33)#count计算元素出现的次数
print(v)#>>>>>>>2

(5)extend拓展原列表,拓展元素必须可以迭代,且对象会以元素形式添加到原列表后面

li = [11, 22, 33, 44,33,.55]
li.extend("abcd")#extend拓展原列表,拓展元素必须可以迭代,且对象会以元素形式添加到原列表后面
print(li)#>>>>>>>>.[11, 22, 33, 44, 33, 0.55, 'a', 'b', 'c', 'd']

(6)index查找对象并输出对象在列表中的下标,从左边开始,参数代表起始位置与结束位置

li = [11, 22, 33, 44,33,.55]
v=li.index(33)#index查找对象并输出对象在列表中的下标,从左边开始,参数代表起始位置与结束位置
print(v)#>>>>>>>2

(7)insert在指定位置插入元素

li = [11, 22, 33, 44,33,.55]
li.insert(2,123)#insert在指定位置插入元素
print(li)#>>>>>>>>>[11, 22, 123, 33, 44, 33, 0.55]

(8)pop删除指定下标对应的元素,默认删除最后一个元素

li = [11, 22, 33, 44,33,.55]
li.pop(3)#pop删除指定下标对应的元素,默认删除最后一个元素
print(li)#>>>>>>>>>>[11, 22, 33, 44, 33]

(9)remove删除指定元素,从左边开始

li = [11, 22, 33, 44, 33, .55]
li.remove(33)#remove删除指定元素,从左边开始
print(li)#》》》》》》》[11, 22, 44, 33, 0.55]

(10)reverse反转列表

li = [11, 22, 33, 44, 33,55]
li.reverse()#reverse反转列表
print(li)#>>>>>>>>>>[55, 33, 44, 33, 22, 11]

(11)sort将列表排序,默认从小往大排,在参数位置加入reverse=True,列表将从大往小排

       注意,列表中各元素为同一类型时候才可以排序

li = [11, 22, 33, 44, 33,55]
li.sort()#sort将列表排序,默认从小往大排,在参数位置加入reverse=True,列表将从大往小排
print(li)#>>>>>>>>[11, 22, 33, 33, 44, 55]

(4)元组》》》》》tuple

#########元组由()组成,各元素由“,”隔开,元素可以是数字,字符串,列表等

#########元组一经创建,一级元素不可修改,增加,删除

#########元组有序,可以迭代

#########元组也可通过索引查找其元素位置,,可切片

tu=(11,22,33,44,["aa",(11,"bb")],123,23)
tu[2]=12
print(tu)
tu[4][0]=11
print(tu)#>>>>>>>>>(11, 22, 33, 44, [11, (11, 'bb')], 123, 23)
tu[4][1]="abc"#元组中一级元素不可被修改、删除、添加
print(tu)#>>>>>>>(11, 22, 33, 44, ['aa', 'abc'], 123, 23)
tu[4][1][0]=123
print(tu)#元组中一级元素不可被修改、删除、添加

元组内置方法:

(1)count统计元组中指定元素的个数

tu=(11,22,33,44,["aa",(11,"bb")],22,123,23)
v=tu.count(22)#count统计元组中指定元素的个数
print(v)#>>>>>>>2

(2)index寻找指定元素的下标,参数表示起始位置与结束位置

tu=(11,22,33,44,["aa",(11,"bb")],22,123,23)
v=tu.index(22,0,-1)#index寻找指定元素的下标,参数表示起始位置与结束位置
print(v)#>>>>>>>>1

(5)字典》》》》》》dict

#########字典是无序的,支持增删改查,key:value一一对应,value可以是任意值,不能用列表,字典做key

#########字典可以迭代

字典内置方法:

(1)clear清空字典

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
dic.clear()#clear清空字典
print(dic)#>>>>{}

(2)copy浅拷贝字典

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
v=dic.copy()#copy浅拷贝字典
print(v)#>>>>{10: 'aaa', 3: '123', 6: {123: [], 222: (), 'abcd': {'a': 123}}}

(3)dict.fromkeys根据序列,创建指定的字典

v=dict.fromkeys([1111,22222])#dict.fromkeys根据序列,创建指定的字典
print(v)#>>>>{22222: None, 1111: None}

(4)get根据key找到对应的value

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
v=dic.get(3)#get根据key找到对应的value
print(v)#>>>>123

(5)keys通过for循环输出所有的key,根据Key获取值,key不存在时,可以指定默认值(None)

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
for i in dic.keys():#>>>>keys通过for循环输出所有的key
    print(i)#>>>>>10
3
6

(6)values通过for循环输出所有的values

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
for i in dic.values():#>>>>values通过for循环输出所有的values
    print(i)#>>>>>aaa
123
{123: [], 'abcd': {'a': 123}, 222: ()}

(7)items通过循环表示输出所有的key及其对应values

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
for i,v in dic.items():#>>>>items通过循环表示输出所有的key及其对应values
    print(i,v)#>>>>>10 aaa
3 123
6 {'abcd': {'a': 123}, 123: [], 222: ()}

(8)pop根据key删除指定的values,若字典中没有,则返回参数值

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
v=dic.pop(15,1111)#pop根据key删除指定的values,若字典中没有,则返回参数值
print(v)#>>>>>1111

(9)popitem随机删除字典中的一组值

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
v=dic.popitem()#popitem随机删除字典中的一组值
print(v)#>>>>>(10, 'aaa')

(10)设置值,已存在,不设置,获取当前key对应的值,不存在,设置,获取当前key对应的值

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
v=dic.setdefault(10,5555)#setdefault设置值,已存在,不设置,获取当前key对应的值,不存在,设置,获取当前key对应的值
print(v)#>>>>>aaa

(11)update,更新,若key已存在,则将values更换,若不存在,则将新组添加到字典中

dic={
    3:"123",
    10:"aaa",
    6:{
        123:[],
        222:(),
        "abcd":{
            "a":123
        }
    }
}
dic.update({10:5555})#update,更新,若key已存在,则将values更换,若不存在,则将新组添加到字典中
print(dic)#>>>>>{10: 5555, 3: '123', 6: {123: [], 222: (), 'abcd': {'a': 123}}}

(6)集合》》》》set.

集合特点:是一个无序且不重复的元素集合,元素不可变

通过内置函数set可将对象转换为集合,会自动去重

1 s = {1,2,3,4,5,5,6,2,2,23}
2 s = set(s)#set将元素转换成集合,会自动去重
3 print(s)#{1, 2, 3, 4, 5, 6, 23}

集合内置函数

s = {1,2,3,4,5,5,6,2,2,23}
s.add("abc")#添加元素到随机位置
print(s)#{1, 2, 3, 4, 5, 6, 23, 'abc'}
s.clear()#清空集合
print(s)#set()
s1 = s.copy()#拷贝集合
print(s1)#{1, 2, 3, 4, 5, 6, 'abc', 23}
s.pop()#随机删除元素
print(s)#{1, 2, 3, 4, 5, 6, 23}
s.remove(8)#指定元素删除,若不存在,会报错
print(s)
s.discard(8)#指定元素删除,若不存在不会报错
print(s)
print(s.union(s2))#union求两个集合并集,用“|"表示,即两个集合相加去重
print(s.intersection(s2))#intersection求两个集合交集,用“&”表示,即求两个集合共有部分
print(s.difference(s2))#difference求两个集合差集,用“-”表示,即求s中有的元素而s2中没有
print(s.symmetric_difference(s2))#symmetric_difference求交叉补集,即减去两个集合共有的元素,剩下的即为交叉补集
s.difference_update(s2)#difference_update差集更新
print(s.isdisjoint(s2))#isdisjoint判断是否有交集,如果没有交集,返回True,否则返回False"
print(s.issubset(s2))#issubset判断是否是子序列
print(s.issuperset(s2))#issuperset判断是否是父序列
s.symmetric_difference_update(s2)#对称差集,并更新到a中

 

数据转换

字符串(str)、列表(list)、元组(tuple)、字典(dict)可通过for循环或者join等方法相互转换

(1)字符串与列表的转换

# 字符串转换列表   li =  list("asdfasdfasdf"), 内部使用for循环
s = "pouaskdfauspdfiajsdkfj"
new_li = list(s)
print(new_li)#>>>>>>>>>>['p', 'o', 'u', 'a', 's', 'k', 'd', 'f', 'a', 'u', 's', 'p', 'd', 'f', 'i', 'a', 'j', 's', 'd', 'k', 'f', 'j']

 列表转换成字符串

# 列表转换成字符串,
# 既有数字又有字符串,需要自己写for循环一个一个处理
li = [11,22,33,"123","alex"]
r = str(li)#如果列表中含数字元素,不能直接转换,会报错,因为数字不可迭代
print(r)#》》》》》》》报错
############################################# li = [11,22,33,"123","alex"] s = "" for i in li:#通过for循环,先将列表中一个个元素单个转换成字符串,再进行字符串的叠加 s = s + str(i) print(s)#112233123alex
#################################################
# 列表中的元素只有字符串,直接使用字符串join方法
li = ["123","alex"]
v = "".join(li)
print(v)#》》》》》》》123alex

(2)字符串、元组、列表间的相互转换

字符串转换元组

字符串转换为元组
s = "asdfasdf0"
v = tuple(s)
print(v)#》》》》》》('a', 's', 'd', 'f', 'a', 's', 'd', 'f', '0')

 列表转换元组

li = ["asdf","asdfasdf"]
v = tuple(li)
print(v)#》》》》》》('asdf', 'asdfasdf')

 元组转换列表

tu = ("asdf","asdf")
v = list(tu)
print(v)#》》》》》》['asdf', 'asdf']

元组转换字符串

tu = ("asdf","asdf")
v = "_".join(tu)
print(v)#》》》》》》asdf_asdf

  

  

 

 


  

 

  

  

  

 

  

  

  

  

  

  

 

  

  

 

  

  

  

  

  

  

  

  

  

  

  

  

 

 

 

 

 

 

 

 

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

 

  

 

posted @ 2016-11-22 21:51  amchen  阅读(352)  评论(0编辑  收藏  举报