• python 备选


    4.1 Number  数字

      数据类型是不允许改变的

      整数:int   通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,布尔(bool)是整型的子类型。

      浮点数:float  浮点型由整数部分与小数部分组成

      复数:complex   复数由实数部分和虚数部分构成

        主要用计算,使用不多,记住以下就行:

          加:+  减:-   乘:*   除: /    取余:%   整除://  幂:**

        取值范围:

          在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

          在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    i= 5.8    # 浮点数
    print(int(i)) # 转换位 整数 精度损失
    s = str(i)         # int 转换为字符串
    b = bool(i)         # int 转换为布尔值    只有0是False  非0都是True
    

      

      

     

    bool :布尔型 ,如:True、False

        True    真     1

        False   假     0

    注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加 True==1,False==0 是会返回 Ture,但可以通过 is 来判断类型。

    # 同上  布尔值转换为int  只 能输出 0 和 1    
    
    i = int(True)   
    b = int(False)      
    
    while True:
      pass
    while 1:   # 这个效率更高,因为电脑只识别0101二进制,True还要转换以下
      pass

      

     

    4.2 字符串 String:一般用英文:'内容' , "内容" , ''' 内容:多行'''  ,

        可以相加,可以数字加乘,存放少量数据

    同上 字符串转换为 int 或布尔值
    
    c = "123"
    b = int(c)      # 注:字符串转换为int 前提条件必须是 数值类型
    
    字符串转换为布尔值
    
    s = ""   --> False
    #非空字符串都是True   
    
    s
    if s:
      print('你输入的为空,请重新输入')
    else:
      pass

      

    # 字符串的索引与切片
    
    s = 'ASDFGHJKL'
    
    #索引  字符串有一定顺序,且从0开始
    s1 = s[0]     # 新的s1与上面的s已经没有任何关联
    print(s1)
    >> A
    
    s3 = s[-1]    # 如果字符串很长,我又去最后几位 就可以倒着取
    print(s3)
    >> L
    
    # 切片  取前不取后
    s2 = s[0:4]   # 不影响s哦
    print(s2)
    >> ASDF
    
    s4 = s[0:] # 全部取,你以为是 = [0:-1]  你会发现最后一位没取,记得取后不取前
    s5 = s[:]   # 也可以这样写哦!
    print(s4,s5)
    >> ASDFGHJKL ASDFGHJKL
    
    # 跳这取 s[首:尾:步长]
    s6 = s[0:6:2]
    print(s6)
    >> ADG
    
    # 倒着切
    s7 = s[4:0:-1]
    print(s7)
    >> GFDS
    s8 = s[4::-2]  # 倒着跳取 到最前面那位
    print(s8)
    >> GDA
    s9 = s[-1::-1]  # 倒着取完
    print(s9)
    >> LKJHGFDSA
    s10 = s[::-1]  # 倒着取完另一种方法
    print(s10)
    >> LKJHGFDSA
    

      

     

    # 字符串的操作
    s = 'asdfghj'
    
    # capitalize       首字母大写
    s1 = s.capitalize()
    print(s1)
    >> Asdfghj
    
    # upper   全部大写
    s2 = s.upper()
    print(s2)
    >> ASDFGHJ
    '''
    # 一道题 请输入验证码的题
    s21 = 'sdFG'
    s22 = input("请输入验证码,不区分大小写 ")
    if s21.upper() == s22.upper():
        print('验证码正确')
    else:
        print('验证码错误')
    '''
    
    # lower       全部小写
    s3 = s.lower()
    print(s3)
    >> asdfghj
    
    # swapcase   大小写翻转
    s4 = s.swapcase()
    print(s4)
    >> ASDFGHJ
    
    # title    每个隔开(特殊字符或数字)单词首字母大写
    s5 = 'asd vbn fgh'
    s51 = s5.title()
    print(s51)
    >> Asd Vbn Fgh
    
    # center  填充
    s6 = s.center(20)     # 居中填充 不写默认空白填充
    s61 = s.center(10,'*') # 可以跟参数 10是算字符串总的为 不满用参数填充
    print(s6,s61)
    >>       asdfghj        *asdfghj**
    
    # \t     加上前面所占不到8位补8位,超过8位不足16位补16位
    s7 = 'fg\tkl'
    s71 = s7.expandtabs()
    print(s71)
    >> fg      kl
    
    # len   计算字符串长度
    s8 = len(s)
    print(s8)
    >> 7
    
    # startswith    判断字符串是否以什么开头只能返回 True和False  ,后面不加条件 就判断整体
    s9 = 'asdDFG'
    s91 = s9.startswith('a')
    s92 = s9.startswith('d',2,5)  # 可以切片判断
    print(s91,s92)
    >> True True
    
    # find   通过元素 找元素所占的索引,找不到就返回-1
    s9 = 'asdDFG'
    s10 = s9.find('D')
    s101 = s9.index('D') # 另一种方法  找不到会报错 ,首选find
    print(s10,s101)
    >> 3 3
    
    # strip   删除前后元素 默认删除前后空格
    s11 = '  hjkl  '
    s111 = s11.strip()
    s112 = '$%kljflk*'
    s113 = s112.strip('*$%') # 可以加参数,里面不按顺序
    s114 = s112.rstrip('*$%')  # 从右删,左边不动,同理 lstrip:从左删 右边不动
    print(s111,s113,s114)
    >> hjkl kljflk $%kljflk
    
    # 附一道小题
    # username = input('请输入你的名字:')
    # if username.strip() == '小米':
    #     print('答对了')
    
    # count 计数
    s12 = s.count('a') # 数字符串所有的元素,也可以两个一起'as'
    print(s12)
    >> 1
    
    # split  分割 也是字符串转换成列表的一种方式
    s13 = 'kjh jkjhk kjhjk'  
    s131 = s13.split()  # 括号里是参数,分隔后参数是不显示的
    print(s131)
    >> ['kjh', 'jkjhk', 'kjhjk']
    str.split(str="", num=string.count(str)) 
    # 第一个是以哪个参数分割 ,num这个字符串里有多个参数 分割次数,num有指定值则分割num+1,默认为-1,即分割所有
    s = 'alexwusirlex'
    li = s.split('l',1) # 以l分割第一个
    print(li)
    
    #>> ['a', 'exwusirlex']
    #format 格式化输出
    s14 = '我叫{},今年{},喜欢{}'.format('huang',25,'girl')
    s141 = '我叫{0},今年{1},喜欢{1}'.format('huang',25,'girl')
    s142 = '我叫{name},今年{age},喜欢{hobby}'.format(name='huang',age=25,hobby='girl')
    print(s14,s141,s142)
    >> 我叫huang,今年25,喜欢girl 我叫huang,今年25,喜欢25 我叫huang,今年25,喜欢girl
    
    # replace 替换
    s15 = '我来看你了你知道吗你知道吗'
    s151 = s15.replace('知道','haha',1) # 替换 目标,值 ,有相同的第几个
    print(s151)
    >> 我来看你了你haha吗你知道吗
    

      

      

      

     

      tuple:元组,元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。

        例:(1,2,3)("a","b","c")

    # 元组 只读列表 可循环查询 可切片  儿子不能改 孙子可能可以改
    
    ts = ('name','age','column',[1,2,'hello'],'man')
    print(ts[3][2])  # 查
    >> hello
    
    ts[3][2] = ts[3][2].upper()  # 改孙子元素
    print(ts)
    >> ('name', 'age', 'column', [1, 2, 'HELLO'], 'man')
    
    ts[3].append('ha')  # 添加
    print(ts)
    >> ('name', 'age', 'column', [1, 2, 'hello', 'ha'], 'man')
    # python range() 函数可创建一个整数列表,一般用在 for 循环中。
    #
    #  函数语法
    #  range(start, stop[, step])
    #  参数说明:
    #  start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    #  stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    #  step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
    
    for i in range(0,10):  # (开始,结束,步长)
        print(i)
    >> 0 1 2 3 4 5 6 7 8 9
    for s in range(10,0,-2):
        print(s)
    >> 10 8 6 4 2
    for d in range(3,-10,-2):
        print(d)
    >> 3 1 -1 -3 -5 -7 -9

      

    # 一道题 两种方法参考
    li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds']  # 都打印出来 包括里面的列表元素
    # for i in li:
    #     if type(i) == list:
    #         for k in i:
    #             print(k)
    #     else:print(i)
    
    for i in range(len(li)):
        if type(li[i]) == list:
            for j in li[i]:
                print(j)
        else:print(li[i])
    

      

      

      

      list:列表:[] 括起来,每个元素以逗号隔开,可以存储大量数据,而且他里面可以存放各种数据类型比如:

        li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

        列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

        而且列表是有序的,有索引值,可切片,方便取值。

    # 列表 增删改查
    
    # 增加 append          还在基础上增加 没有创建新的
    p.append('happy,new year')
    print(p)
    
    # HR 输入名字 持续增加 当输入Q的时候 就退出
    # while 1:
    #     username = input('>>>')
    #     if username.strip().upper() == 'Q':
    #         break
    #     else:
    #         p.append(username)
    #         print(p)
    
    # insert 插入
    p.insert(4,'老铁')
    print(p)
    
    # extend 插入可迭代的元素
    p.extend('你好')
    p.extend([1,2])
    print(p)
    
    # 删 pop
    p2 = p.pop()  # 有返回值 不填参数 默认删最后一个
    p21 = p.pop(4)  # 指定索引位删
    print(p,p2,p21)
    
    # remove 按元素删
    p.remove('i love you')
    print(p)
    
    # clear 清空列表 但不删列结构
    p.clear()
    print(p)
    
    # del
    del p[0:2]  # 切片删
    del p   # 全删包括列
    print(p)   # 你会发现报错 ,因为没有了,所以他肯定报错
    
    # 改
    p[0] = '你好'   # 直接对应的 索引位改
    p[0] = [4,5,6]    # 也可以直接改列表
    p[0:3] = '你好' # 把前三个删了 划分到最小的元素添加
    p[0:3] = ['hao','ba'] # 添加列表里每一个元素
    print(p)
    
    # 查
    print(p[0:4])  # 直接查
    l = len(p)  # 查列表长度
    print(l)
    
    # count 查一个元素的次数
    print(p.count('ba'))
    
    # index  查元素在列表中的索引位
    print(p.index('hao'))
    
    # sort 排序
    s = [1,6,5,9,10]
    s.sort()      # 正向排序
    print(s)
    
    s.sort(reverse = True)  # 倒向排序
    print(s)
    
    s.reverse()  # 翻转
    print(s)
    # 列表的嵌套
    
    t = ['xiaomi','haha','happy new year',1,2]
    print(t[1][1]) # 找里面元素的元素
    name = t[1].capitalize()  # 所选的元素的首字母大写,但里面本质没有改变
    print(name)
    print(t)
    t[0] = name # 这样里面元素已经改变
    print(t)
    print(t[2].replace('h','好')) # 里面元素替换
    t[2] = t[2].replace('h','好')
    print(t)
    
    
    
    # 列表转换成 字符串 join 字符串转换成列表 split
    s ='huang'
    s1 = '+'.join(s)  # 可以对可迭代对象任何操作
    print(s1)
    
    #>> h+u+a+n+g
    
    # ''.join()
    li = ['alex','wusir','rain']
    s2 = ''.join(li)
    print(type(s2))
    print(s2)
    
    #>> <class 'str'>
    #>> alexwusirrain

     

     

     

      dict:字典,用{ } 括起来,key不存在重复

    '''
    # dict
    # 数据类型划分:可变、不可变
    # 不可变 :元组、bool、int、str  可哈希
    # 可变:list、dict、set         不可哈希
    
    # dict key 必须是不可变得数据类型   可哈希
           value  任意数据类型。
    dict 优点:二分查找去查询、存储大量的关系型数据
         特点:3.5版之前是无序的
                
           
    '''
    
    dict = {
        'name':'小米',
        'age':'18',
        'p1':[{'xuexi':15},20]
    }
    
    # 增
    dict['hello'] = 'world'
    print(dict)
    # >> {'name': '小米', 'age': '18', 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}
    
    # 如果有了 会直接覆盖掉
    dict['age'] = 25
    print(dict)
    # >> 'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}
    
    # setdefault
    dict.setdefault('身高') # 没有vlaue会填充None
    print(dict)
    # >> {'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}
    dict.setdefault('age','20') # 对里面有键值对,不做任何改变,没有参会添加
    print(dict)
    # >> {'name': '小米', 'age': 25, 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}
    
    # 删
    # pop
    print(dict.pop('age')) # 有返回值
    print(dict)
    # >> 25
    # >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}
    print(dict.pop('age',None))  # 如果字典里没有你要删除的键值对,你就要加个返回值,可自定义 防止报错飘红
    print(dict)
    # >> None
    # >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world', '身高': None}
    
    # popitem
    print(dict.popitem()) # 删除最后一个,3.5以前随机删除 ,返回值 删除的键值对
    print(dict)
    # >> ('身高', None)
    # >> {'name': '小米', 'p1': [{'xuexi': 15}, 20], 'hello': 'world'}
    
    # del
    del dict['name']  # 所在键值对不在时会报错
    print(dict)
    # >>{'p1': [{'xuexi': 15}, 20], 'hello': 'world'}
    
    dict.clear()  #     清空字典
    print(dict)
    # >> {}
    
    # 改
    # 直接改
    dict['age'] = 18
    print(dict)
    # >> {'age': 18}
    
    # update
    dict1 = {'name':'xiaomi','hello':'world'}
    dict.update(dict1) # 把dict1的全部键值对 添加到 dict ,相同的覆盖
    print(dict1)
    print(dict)
    # >> {'name': 'xiaomi', 'hello': 'world'}
    # >> {'age': 18, 'name': 'xiaomi', 'hello': 'world'}
    
    # 查
    print(dict.keys())
    print(dict.values())
    print(dict.items())
    # >> dict_keys(['age', 'name', 'hello'])
    # >> dict_values([18, 'xiaomi', 'world'])
    # >> dict_items([('age', 18), ('name', 'xiaomi'), ('hello', 'world')])
    
    v1 = dict['name'] # 输出是值,没有就会报错
    print(v1)
    # >> xiaomi
    
    # get
    print(dict.get('name'))  # 有就会直接返回值 没有就会返回None
    print(dict.get('name2','没有这个值')) # 也可以自定义
    # >> xiaomi
    # >> 没有这个值
    
    a,b = 1,2
    a,b = [1,2]
    a,b = [1,2],[3,4]
    print(a,b)
    # >> 1 2
    # >> 1 2
    # >> [1,2] [3,4]
    # 用一行代码把 a b 值交换
    a = 1
    b = 2
    a,b = b,a
    print(a,b)
    # >> 2 1
    
    # 一一对应,接受值
    for k,v in dict.items():
        print(k,v)
    
    # 嵌套
    dic = {
        'name':['xiaomi','zhangsan','lisi'],
        'jihe':{
            'time':'123',
            'learn_money':19800,
            'leader':'huang'
    
        },
        'age':18
    }
    # 改
    dic['age'] = 25
    print(dic)
    #>> {'name': ['xiaomi', 'zhangsan', 'lisi'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}
    dic['name'].append('leader')
    print(dic)
    # >> {'name': ['xiaomi', 'zhangsan', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}
    dic['name'][1] = dic['name'][1].upper()  # 其中一个值改大写
    print(dic)
    # 》{'name': ['xiaomi', 'ZHANGSAN', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang'}, 'age': 25}
    dic['jihe']['gou'] = 8
    print(dic)
    # >> {'name': ['xiaomi', 'ZHANGSAN', 'lisi', 'leader'], 'jihe': {'time': '123', 'learn_money': 19800, 'leader': 'huang', 'gou': 8}, 'age': 25}
    
    
    # 一道题
    f = input('>>>')
    for i in f:
        if i.isalpha():
            f = f.replace(i,'')
    o = f.split()
    print(o)
    print(len(str(o)))
    

      

     

      set:集合,用{ } 括起来,集合是无序的,不重复的数据集合,里面的元素是不可变类型

     # is 比较,比较的事内存地址
    
    '''
    # 集合:可变的数据类型,它里面的元素必须是不可变得数据类型,无序,不重复,{}
    set = {1,'sdfsd',2,3,'hello'}
    
    # add 增加
    set.add("name")
    print(set)
    # >> {1, 2, 3, 'name', 'sdfsd', 'hello'}
    
    # update
    set.update('leader')
    print(set)
    # >> {1, 2, 3, 'hello', 'a', 'd', 'name', 'l', 'r', 'sdfsd', 'e'}
    
    #  pop 删除
    set.pop()
    print(set.pop())  # 随机删除 有返回值
    print(set)
    # 》 1
    # 》 {2, 3, 'd', 'r', 'l', 'sdfsd', 'hello', 'a', 'e'}
    
    # remove
    set.remove(2) # 按元素去删
    print(set)
    # 》{'sdfsd', 1, 3, 'hello'}
    
    # clear  清除集合
    set.clear()
    print(set)
    # >> set()
    
    # del 删除整个集合
    del set
    print(set)
    # >> <class 'set'>
    
    # 查
    for i in set:
        print(i)
    
    # 求交集
    set1 = {1,2,3,4,"hello"}
    set2 = {1,4,2,5,"world"}
    
    set3 = set1 & set2      # 第一种
    print(set3)
    # >> {1, 2, 4}
    print(set1.intersection(set2))       # 第二种
    # 》 {1, 2, 4}
    
    # 求并集
    print(set1 | set2)
    # 》 {1, 2, 3, 4, 5, 'world', 'hello'}
    print(set1.union(set2))
    # >> {1, 2, 3, 4, 5, 'world', 'hello'}
    
    # 反差集
    print(set1 - set2)
    # 》 {'hello', 3}
    print(set1.difference(set2))
    # >> {3, 'hello'}
    
    # 子集 超集
    print(set1 < set2)
    print(set1.issubset(set2))   # 这两个相同,若返回True 则set1是set2子集
    
    print(set2 > set1)
    print(set2.issuperset(set1))     # 这两个相同,若返回True 则set2是set1超集
    '''
    # set 本身是可变数据类型,但可以让他变成不可变数据类型,冻住
    s = frozenset('barry')
    print(s,type(s))
    # >>frozenset({'b', 'r', 'a', 'y'}) <class 'frozenset'>
    
    
    # 一道小题 去重
    li = [11,22,33,33,44,55,66,66,77]
    set5 = set(li)
    print(set5)
    li = list(set5)
    print(li)
    

      

      complex:复数 

      float:浮点型 ,如:12.20

      注:

        type():查看数据类型的方法

        字符串转换成数字:int(str)    ,条件str必须是数值组成

        同样数字转换成字符串:str(int)

        用户交互input输出的全部是 str

  • 相关阅读:
    李白—烂尾楼题记
    [原创]网络图片延迟加载实现,超越jquery2010年3月26日
    利用反射,泛型,扩展方法快速获取表单值到实体类
    断点续传 到底是很么
    认识LINQ
    Gridview控件用法大总结
    网站性能优化总结。
    JQ小技巧
    自己写的jq_3个小插件
    MOSS中SPuser类的使用
  • 原文地址:https://www.cnblogs.com/niunai/p/10147621.html
Copyright © 2020-2023  润新知