第一篇:数据类型

一.运算符

1、算数运算符
+    -    *    /
取余数 %     取商的整数部分 //    幂 **

2、比较运算符
==    不等于!= <>     >    <    >=    <=

3、赋值运算符
=    +=    -=    *=    /=    %=    **=     //=
a=b
a+=c    a=a+c
a-=c    a=a-c
a*=c    a=a*c
a/=c    a=a/c    %=    **=      //=一样

4、逻辑运算符
and和or的运算等级一样,有括号先算括号内部的,再从左到右依次
与    and
或    or
非    not

5、成员运算符
in    
not in 

二.基本数据类型

1、数字(整形int,长整形,浮点型float,复数complex)
int    float    bool    complex
16进制转换成10进制
num = "0011"
v = int(num, base=16)    
print(v)
将10进制转换成2/8/16进制
二进制Binary bin()    八进制Octal oct()    十六进制Hexadecimal hex()

2、字节串    str        不可变元素,一旦修改会重新生成新的字符串
7个基本魔法:join    split    strip    find    upper    lower    replace
注意:len('asdf')    for        索引    切片
age = 20
print(age.bit_length())

test = "aaa"
print(test.capitalize())

test = "AAA"
print(test.lower())
print(test.casefold())

test.lower()    test.islower()
test.upper()    test.isupper()

test = 'ALex'
print(test.swapcase())

test = 'alex'
print(test.center(10,'#'))
print(test.center(10,'*'))
print(test.ljust(10,'*'))
print(test.rjust(10,'*'))

test = 'alexalexalex'
print(test.count('a',0,2))

test = 'alexalexalex'
print(test.find('0'))   #找不到报-1
print(test.index('l'))  #找不到报错

test= 'alex'
print(test.endswith('xe'))
print(test.startswith('al'))

test = 'i am {name}, age {a}'
print('{} {} {}'.format('egon','18','male'))
print('{0} {1} {0}'.format('egon','18','male'))
print(test.format(name = 'alex',a = 18))        #赋值形式
print(test.format_map({'name':'alex','a':18}))  #字典形式

test = 'alex111'
print(test.isalnum())       #字母数字
print(test.isalpha())       #字母汉子

test = '2'
print(test.isdecimal())     #最常用
print(test.isdigit())
print(test.isnumeric())

test = 'aaa111'         #字母、数字和下换线,不能单纯数字
print(test.isidentifier())

# \t制表符   \n换行符
test = 'uertname\tpassword\temail\t\nlaiying\t123\tlai@qq.com'
print(test.expandtabs(10))

test = 'uertname\tpassword\temail\t\n'
print(test.isprintable())       #是否存在不可显示的字符
print(test.isspace())  

test = 'alex alex alex'
print(test.istitle())
print(test.title())

# test = 'asdffgfghjkl'
# print(' '.join(test))   #字符串中的每个元素进行分割
# print('_'.join(test))

# test = ' alexalex '
# print(test.strip())   #去除字符串中的子序列,不填去除开头、结尾空白

v = 'alexlalellflfcmcjjss'
m1 = str.maketrans('al','12')
m2 = str.maketrans('ae','13')
print(v.translate(m1))
print(v.translate(m2))

test = 'alexalexalex'
print(test.replace('al','12'))

test = 'testabjdbdkjd'
print(test.split('j'))
test = 'test\nabjdbdk\njd'
print(test.splitlines(True))    #以换行符进行分割,并是否保留
print(test.splitlines(False))    

test = 'testabjdbdkjd'
print(test[0],test[-1])
print(test[0:1])
print(test[::2])
for item in test:
    print(item)
    
3、列表    list    元素可以被修改/删除        可变元素
列表中的元素可以是:数字、字符串、列表、布尔值。可以嵌套任何格式
基本魔法:append、extend     copy、clear、pop、remove、del    count、index、insert
          reverse、sort、sorted
注意:切片、索引、for循环    列表和字符串相互转换
l = ['111','222','aaa']
print(' '.join(l))        #列表(元素均是字符串)转换成字符串
print(*l)                #把列表中的内容取出来

li = [11,22,333,55]
li.append(66)
li.append([9898,[333,5555]])            #追加
li.extend([9898,[333,5555],'444'])        #拓展
print(li)

li = [111,22,33]
li.clear()  
v = li.pop(1)                 #默认最后位置,并获取删除的值
li.remove(111)
del li[1]
print(li,v)

print(li.copy())
print(li.count(22))

li = [11,22,33,44]
print(li.index(22))

li = [11,22,33,44]
li.insert(1,'haha')                        #插入元素
print(li)

li = [11,33,22,55,44]
li.reverse()
li.sort(reverse=False)               #排序,升序
print(sorted(li,reverse=False))
print(li)

4、元组    tuple        元素不可被修改、增加、删除
注意:索引、切片、for循环、字符串和列表<=>元组
tu = ('11','22','33','44')
s = ''.join(tu)                                #元组中的元素全部是字符串
print(s)
print(*tu)

5、字典    dict    元素可以被修改、增加和删除    无序(不能索引下标,只能索引key)    
键值对形式存在    dic = {'k1':v1,'k2':v2}
key可以是:数字、字符串、元组和布尔值,不能是列表和字典;value可以是任何值。
基本魔法:keys()、values()、items()、get()、update()
dic = {
    'k1':1,
    2:'3',
    (11,22):[11,'22'],
    True:{'K1':1,'K2':2}
}
del dic['k1']
print(dic)
v1 = dic.pop(2)                        #删除并获取字典的value
print(dic,v1,sep='\n')
k,v = dic.popitem()                 #随机删除,并获取删除的key和value
print(dic,k,v,sep='\n')

for item in dic:
    print(item)                     #字典的key
for k,v in dic.items():                
    print(k,v)
for k in dic.keys():                #dic.keys()/dic.values()
    print(k)
for v in dic.values():
    print(v)
for i,j in enumerate(dic):          #i序号,j字典的key
    print(i,j)
    
k = ['11',22,33]
v1 = 123
dic1 = dict.fromkeys(k,v1)            #创建字典,并指定统一的值,没有值默认None
v2 = ['a','b']
dic2 = dict.fromkeys(k,v2)
print(dic1,dic2)

#get和setdefault用法一样
dic = {'k1':'v1','k2':2}
print(dic.get('k1'))                #存在,获取value值
print(dic.get('kkkkk'))                #不存在,不设默认值,输出None
print(dic.get('kkkkk','不存在'))    #不存在,设置默认值,输出默认值
print(dic.setdefault('k1'))            
print(dic.setdefault('kkkkk'))        
print(dic.setdefault('kkkkk','不存在'))    

dic = {'k1':'v1','k2':2}
dic.update({'k3':'v3','k4':4})        #字典形式
dic.update(k3='v3',k4=4)            #赋值形式
print(dic)

6、集合    {}
不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key
条件:不同元素组成、无序、集合中的元素必须是不可变类型
可变集合set()                能够增删不能修改
不可变集合frozenset()        不能增删和修改
基本魔法:copy、clear、pop、remove、discard        update、add        isdisjoint、issubset
交集:intersection &、并集:union |、差集:difference -、交叉补集:symmetric_difference

s = {'aaa',22,333,555}
v = s.copy()
print(v)
s.clear()
s.pop()                            #随机删除
s.remove(22)                    #移除,不存在报错
s.discard(555)                    
s.discard(222)                    #移除,不存才,不报错
print(s)

l_s = {'szw', 'lcg', 'sdd'}
print(p_s.intersection(l_s))    #交集
print(p_s&l_s)
print(p_s.union(l_s))            #并集
print(p_s|l_s)
print(p_s.difference(l_s))        #差集
print(p_s-l_s)
p_s.difference_update(l_s)    
print(p_s)
print(p_s.symmetric_difference(l_s))#交叉补集
print(p_s^l_s)

p_s = {'szw', 'lcg', 'zjw'}
l_s = {'szw', 'lcg', 'sdd'}
print(p_s.isdisjoint(l_s))        #两个集合的交集为空则返回True
print(p_s.issubset(l_s))        #p_s是否为l_s的子集

s1 = {11,22}
s2 = {33,44}
# s1.update(s2)                    #放可迭代对象
s1.update([33,44])
s1.add(55)                        #可hash类型
s1.add((55,66))
print(s1)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值