数据类型

3.1 整型(int)

3.1.1 整型的长度

py2中有:int/long

py3中有:int (int/long)

3.1.2 整除

py2和py3中整除是不一样。

3.2 布尔(bool)

布尔值就是用于表示真假。True和False。

其他类型转换成布尔值:

  • str

  • ...

对于:None / "" / 0 .... -> false

3.3 字符串(str)

字符串是写代码中最常见的,python内存中的字符串是按照:unicode 编码存储。对于字符串是不可变。

字符串自己有很多方法,如:

  1. 大写: upper

    v = 'ALEX'
    v1 = v.upper()
    print(v1)
    v2 = v.isupper() # 判断是否全部是大写
    print(v2)
  2. 小写:lower

    v = 'alex'
    v1 = v.lower()
    print(v1)
    v2 = v.islower() # 判断是否全部是小写
    print(v2)


    ############ 了解即可
    v = 'ß'
    # 将字符串变小写(更牛逼)
    v1 = v.casefold()
    print(v1) # ss
    v2 = v.lower()
    print(v2)
  3. 判断是否是数字: isdecimal

    v = '1'
    # v = '二'
    # v = '②'
    v1 = v.isdigit()  # '1'-> True; '二'-> False; '②' --> True
    v2 = v.isdecimal() # '1'-> True; '二'-> False; '②' --> False
    v3 = v.isnumeric() # '1'-> True; '二'-> True; '②' --> True
    print(v1,v2,v3)
    # 以后推荐用 isdecimal 判断是否是 10进制的数。

    # ############## 应用 ##############

    v = ['alex','eric','tony']

    for i in v:
       print(i)

    num = input('请输入序号:')
    if num.isdecimal():
       num = int(num)
       print(v[num])
    else:
       print('你输入的不是数字')
  4. 去空白+\t+\n + 指定字符串


    v1 = "alex "
    print(v1.strip())

    v2 = "alex\t"
    print(v2.strip())

    v3 = "alex\n"
    print(v3.strip())

    v1 = "alexa"
    print(v1.strip('al'))
  5. 替换:replace

    a = 'kn,ig,ht'
    b = a.replace(',','')  #'knight'  
  6. 开头 / 结尾 :startswith / endswith

    a = 'knight'
    if a.startswith('k'):        #前几位也可以
    print(a)                #endswith用法相同    
  7. 编码,把字符串转换成二进制 :encode

    a = 'knight'
    b = a.encode('utf-8')
    print(b)        
  8. 格式化:format

    info = {'name':'骗子','age':18,'gender':'性别'}
    a = []
    for k,v in info.items():
       a.append('{}|{}'.format(k,v))
    print(a)          #append只能追加一个值,使用格式化 可以追加俩甚至更多
    • 使用'{name}.format{name:'alex'}的格式

    v1 = "我是{0},年龄{1}".format(('alex',19,))print(v1)
                               
    v2 = "我是{name},年龄{age}".format(**{'name':'alex','age':18})print(v2)
  9. 以字符连接目标每个字符:join

    a = 'kngi'
    b = '_'.join(a)
    print(b)        # b ='k_n_g_i'
  10. 分割 :split

    a = 'kn|ig|ht'
    b = a.split('|')  #['kn','ig','ht'] 字符串分割得到列表类型
  11. 其他【可选】

3.4 列表(list)

  • append(追加)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.append('hello')
    print(a)     #直接追加到a后
  • insert(插入)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.insert(0,'nb')
    print(a)     #['nb', 'kngiht', 'kevin', 'qaz', 1, 2, 3] 0表示在哪个索引位置之前插入
  • remove(删除元素,按元素删除)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.remove('qaz')
    print(a)      #['kngiht', 'kevin', 1, 2, 3]
  • pop(删除元素,按索引删除)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.pop(2)
    print(a)      #['kngiht', 'kevin', 1, 2, 3]
  • del(按索引删除,可以切片删除)

    a = ['kngiht','kevin','qaz',1,2,3]
    del a[2:4]
    print(a)     #['kngiht', 'kevin', 2, 3] 按索引切片删除
  • clear(清楚)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.clear()
    print(a)     # [] 空字符串
  • reverse(反转)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.reverse()
    print(a)     #反转
  • sort(排序)

    a = ['kngiht','kevin','qaz']
    a.sort()
    print(a)    #sort无法同时对字符串和整型进行排序
  • extend(拼接)

    a = ['kngiht','kevin','qaz',1,2,3]
    a.extend(['wsx','edc'])
    print(a)      #extend一般完成列表与列表的拼接, 如果目标是字符串,则会将字符串拆解拼接

3.5 字典(dict)

  • info/ info.keys()

    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    for key i info:#info.keys()
     print(key)
  • Info.values()

    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    for v in info.values():
       print(v)
  • info.items()

    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    for pair in info.items():
       print(pair)  #键值对的类型是元组
  • Info.get(key, 666)

    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    print(info.get(1, 666))
    print(info.get(4, 666))
    # 有key则取出, 没有则返回指定 值
    # 如果没有指定值,则返回 None
  • info.pop(key)

    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    print(info.pop(1))
    print(info.pop(4))
  • info.update(info1)

    info = {}
    info1 = {1: 'henry', 2: 'echo', 3: 'eliane'}
    info.update(info1)
    print(info)
  • info.setdefalut(key, value)

    # 查询key,有则取出,没有则添加
    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    info.setdefault(4, 'hello')
    print(info)
    # 取出需要赋值给其他变量
    val = info.setdefault(4, 'i hate you')
    print(val)
  • info.popitem()

    # 不能加参数,删除最后一个key值对
    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    v = info.popitem()
    print(v,info)   # v是tuple
  • info.clear()

    # 清空所有元素
    info = {1: 'henry', 2: 'echo', 3: 'eliane'}
    info.clear()
    print(info)
  • {}.fromkeys([1,2,3],'uu')

    #制造新的字典,注意当第二个参数是可变类型的时候,所有的键引用的同一个内存地址
    dic = {}
    dic1 = dic.fromkeys(['a','b','c'],['你好'])
    print(dic1)
    # 结果  {'a': ['你好'], 'b': ['你好'], 'c': ['你好']}
    '''
    fromkeys里第一个参数是可迭代的对象,里边的每个元素就是字典中的健,第二个参数就是值 现在创建的字典中后边的值用的是同一个
    '''
    dic1['a'].append('我好')
    print(dic1)
    # 结果 {'a': ['你好', '我好'], 'b': ['你好', '我好'], 'c': ['你好', '我好']}
    

3.6 集合 (set)

  • s.add('a')

    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.add(5)
    print(s)
    
  • s.update(s1)

    # 可以用str , list, tuple, dict, set, 也可以混合多种类型放入update中
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s1 = {5, 6, 7, 8, 1, 2, 3}
    s2 = [5, 6, 7, 8, 1, 2, 3]
    s3 = (5, 6, 7, 8, 1, 2, 3)
    s4 = {5: 6, 7: 8, 1: 2}
    s.update(s1)
    print(s)
    
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.update(s2)
    print(s)
    
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.update(s3)
    print(s)
    
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.update(s4)
    print(s)  #字典只会加入键
    
  • s.pop()

    # 随机删除,此时pop中不能有任何参数
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.pop()  # 默认删除第一个元素/随机
    print(s)
    
  • s.discard() 删除

    # 必须有一个参数,没有不报错, 不会返回值
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    val = s.discard(3)
    print(s)
    print(val)
    
    • s.remove('a')

    # 必须有一个参数,没有会报错
    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.remove(3)
    print(s)
    
  • s.clear()

    s = {1, 'henry', 2, 'echo', 3, 'eliane'}
    s.clear()
    print(s)
    
  • s.intersection(s1)

    # 取v1 和v2 的交集
    v1 = {1, 'henry', 2, 'echo', 3, 'eliane'}
    v2 = {1, 3, 5, 7}
    v = v1.intersection(v2)
    print(v)
    
  • v.union(v1)

    # 取并集
    v1 = {1, 'henry', 2, 'echo', 3, 'eliane'}
    v2 = {1, 3, 5, 7}
    v = v1.union(v2)
    print(v)
    
  • v.difference(v1)

    v1 = {1, 'henry', 2, 'echo', 3, 'eliane'}
    v2 = {1, 3, 5, 7}
    v = v1.difference(v2)
    print(v)
    
  • v.symmetric_difference(v1)

    v1 = {1, 'henry', 2, 'echo', 3, 'eliane'}
    v2 = {1, 3, 5, 7}
    v = v1.symmetric_difference(v2)
    print(v)
    

3.7 元组(tuple)

  • 除步长,索引,切片,for循环,len无特殊功能

3.8 公共功能

  • len

  • 索引

  • 切片

  • 步长

  • for循环

    intboolstrlisttupledictset 
    len
    index
    切片
    step
    for循环/ iterable
    修改
    删除

3.9 嵌套

  • 可嵌套的数据类型

  • 所有的容器类例如:list,tuple, dict,set 都可以嵌套,但set(), 只能嵌套可hash(int, bool, str, tuple 4种)的数据类型。

3.10 复数

  • 表示复数的语法是real+imag

  • 虚部的后缀必须是j,且必须是小写

a = 1 + 2j
b = 1 - 2j
print(a.imag,a.real)
print(a.conjugate())  #求共轭复数  

 

posted @ 2019-11-02 16:57  Kn19ht  阅读(97)  评论(0)    收藏  举报