• python基础2


    一.作用域
    变量只有在内存中存在,我们才可以应用这个变量。换句话说,只要声明即可使用

    二.三元运算 : name = 值1 if 条件 else 值2
    eg1:

    name = "jachy"
    if true:
      name = "sd"
    else:
      name = "2d"
    

      

    eg2:
    name = 值1 if 条件 值2 (如果条件为真,name=值1,否则,name=值2)
    即:name = "sd" if true else "2d"

    value = raw_input("plz input :")
    name = "sd" if value == "jachy" else "good people"
    print name
    

     

    三 进制
    1.二进制,01
    2.十进制,0-9
    3.八进制,0-7
    4.十六进制,0123456789ABCDE


    四.字符串、列表、集合
    1.查看列表功能的方法1

    >>> li=[11,12]
    >>> type(li)   #通过type()查看对象类型
    <type 'list'>
    >>> dir(li)    #查看列表类的所有的功能
    
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
    
    >>>help list #查看列表类的所有的详细功能 
    >>>help(list.append) #查看指定列表类的append的功能的详细

      

    2.查看列表功能的方法2

    >>>dir(list)	
    _方法_ #带下划线的,表示内置方法,其执行方法有多种或一种:
    方法: #不带下划线的,非内置方法,其执行方式只有一种:对象.方法
    

      

    3.创建数

    >>> int('11',base=2) #创建二进制的数'11'
    3 
    >>> int('11',base=10) ##创建十进制的数'11'
    11
    >>> int('11',base=16)  #创建一个16进制的数'11'
    17

      

    4.数据类型的犯法

    整型和浮点型 :int 和 float
    x.__cmp__(y) <==> cmp(x,y) #比较两个数x和y的大小

    >>> cmp(1,2) -1
    或
    >>> x=1
    >>> y=2
    >>> x.__cmp__(y)  #这里是双下划线
    -1
    

      

     
     
    x.__add__(y) <==> x+y #用于返回x+y的和
    >>> x.__add__(y)
    3
    >>> x+y
    3

    x.__abs__() <==> abs(x) #用于返回x的绝对值

    >>> z=-3
    >>> abs(z)
    3
    或
    >>> z.__abs__()
    3

    x.__divmod__(y) <==> divmod(x, y) #将x/y得到商和余数,用于web网页分页使用

    >>> x=6
    >>> y=4
    >>> x.__divmod__(y)
    (1, 2)     #返回一个元组,其中1为商,2为余数
    >>> divmod(x,y)
    (1, 2)

    x.__float__() <==> float(x) #将整型x转化为float类型

    >>> x.__float__()
    6.0
    >>> float(x)
    6.0

    x.__coerce__(y) <==> coerce(x, y) #强制生成一个元组

    >>> x
    6
    >>> y
    4
    >>> x.__coerce__(y)
    (6, 4)


    x.__hash__() <==> hash(x) #如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数。在字典查找中,哈希值用于快速比较字典的键。两个数值如果相等,则哈希值也相等。

    x.__hex__() <==> hex(x) #返回当前数的 十六进制 表示 

    >>> x 6 >>> hex(x) '0x6'

    >>> age=18
    >>> age.__hex__()
    '0x12'

    x.__oct__() <==> oct(x) #返回改值的 八进制 表示

    >>> oct(x)
    '06'

    x.__int__() <==> int(x) #转换为整数

    >>> int(2.0)
    2
    >>> int(2.3)
    2
    

      

    x.__str__() <==> str(x) #转换为人阅读的形式,如果没有适于人阅读的解释形式的话,则返回解释器课阅读的形式


    x.__repr__() <==> repr(x) #转化为解释器可读取的形式 """

    str---字符串:

    S.capitalize() -> string #首字母变大写

    >>> s='jachy'
    >>> s.capitalize()
    'Jachy'


    S.center(width[, fillchar]) -> string #内容居中,width:总长度;fillchar:空白处填充内容,默认无

    >>> s='jachy'
    >>> s.center(10,'-')  #分配10个位,并将jachy居中,空位用-填充
    '--jachy---'
    

      

    S.count(sub[, start[, end]]) -> int # 子序列个数(也可以指明start、end--开始、结束位置,不包括结束位置,类似于切片)

    >>> s='hello jachy'
    >>> s.count('l',0)
    2
    >>> s.count('l',3)
    1
    >>> s.count('l',4)
    0
    >>> s.count('l',4)
    0
    >>> s.count('l',3)
    1
    >>> s.count('l',2,3)
    1
    

    S.expandtabs([tabsize]) -> string #将tab转换成空格,默认一个tab转换成8个空格 ,tabsize可以指定空格数量

    >>> s='jachy            '
    >>> s.expandtabs(2)
    'jachy   '


    S.find(sub [,start [,end]]) -> int #寻找子序列位置并返回该位置,如果没找到,则返回-1

    >>> s='hello jachy'
    >>> s.find('e')
    1
    >>> s.find('j',8,9)
    -1
    

      

    S.format(*args, **kwargs) -> string #字符串格式化,动态参数,将函数式编程时细说

    """ 子序列位置,如果没找到,则就报错 """
    S.index(sub [,start [,end]]) -> int

    >>> s='hello jachy'
    >>> s.index('ll')
    2
    >>> s.index('he')
    0

    """ 是否是字母和数字 """
    S.isalnum() -> bool


    """ 是否是字母 """
    S.isalpha() -> bool

    """ 是否小写 """
    S.islower() -> bool

    """ 连接 """
    S.join(iterable) -> string

    """ 内容左对齐,右侧填充 """
    S.ljust(width[, fillchar]) -> string


    """ 分割,前,中,后三部分 """
    S.partition(sep) -> (head, sep, tail)

    """ 替换 """ 找到所有的进行转换
    S.replace(old, new[, count]) -> string

    """ 分割, maxsplit最多分割几次 """
    S.split([sep [,maxsplit]]) -> list of strings

    >>> a='hello world,jachy'
    >>> a.split(' ')
    ['hello', 'world,jachy']
    
    >>> s='i love china'
    >>> s.split(' ')
    ['i', 'love', 'china']

    >>> s='iphone,and,ipad'
    >>> s.split(',')
    ['iphone', 'and', 'ipad']

     

    S.translate(table [,deletechars]) -> string

    """"转换,需要先做一个对应表,最后一个表示删除字符集合
    intab = "aeiou"
    outtab = "12345"
    trantab = string.maketrans(intab, outtab) 
    str = "this is string example....wow!!!"
    print str.translate(trantab, 'xm') #先去str中'xm'删除,完了以后再做转换
    """

    >>> import string
    >>> itab='aeiou'
    >>> outtab='12345'
    >>> trantab=string.maketrans(itab,outtab)  #使用之前需要导入string包
    >>> str='this is string example .....wow!!!' 
    >>> print str.translate(trantab,'xm')  #先去str中'xm'删除,完了以后再做转换
    th3s 3s str3ng 21pl2 .....w4w!!!

    注意:
    import string
    string.maketrans(xx,xx)

    ===>unicode经过编码可以变成utf-8,utf-8经过解码可以变成unicode
    ===>unicode经过编码可以变成GBK,GBK经过解码可以变成unicode
    编码用===>.encode('utf-8')或.encode('gbk')
    解码用===>.decode('utf-8')或.

    >>> "无"
    '\xe6\x97\xa0'
    >>> str1 = "'\xe6\x97\xa0'"
    >>> str1.decode('utf-8') #将utf-8的解码成Unicode
    u"'\u65e0'"
    >>> str1.decode('utf-8').encode('gbk') #再将其编码成gbk格式的码
    "'\xce\xde'"
    >>> print str1.decode('utf-8').encode('gbk')
    'Ϟ'
    

     

    ============================

    字符串格式化

    >>> name = "i am {0},age {1}"
    >>> name.format("jachy",21)
    'i am jachy,age 21'
    或
    >>> name = "i am {a},age {b}" #指定参数名{a},{b}
    >>> name.format(a="jachy",b=21) #给定的参数名赋值
    'i am jachy,age 21'
    或
    >>> name = "i am {0},age {1}"
    >>> li = ["jachy",21] #可以构造列表/元组,向里面传参数
    >>> name.format(*li) #但是列表/元组名上面必须加*
    'i am jachy,age 21'
    或
    >>> name = "i am {ss},age {dd}"
    >>> dic = {'ss':"jachy",'dd':21} #也可以使用字典,向里面传参数
    >>> name.format(**dic) #但是字典必须在字典名前面加2个*
    'i am jachy,age 21'

    ===========================

    大小写转换

    >>> name = "HAHAHHA"
    >>> name.lower() #让大写变小写
    'hahahha'
    >>> name.lower().upper() #让小写变大写
    'HAHAHHA'
    或
    >>> name = "Hello"
    >>> name.swapcase() #将大小写相互转换
    'hELLO'
    字符串分割
    >>> name
    'Hello'
    >>> name.partition('e')
    ('H', 'e', 'llo')
    

      

    =================================

    字符串拼接

    >>> 'jachy'*5
    'jachyjachyjachyjachyjachy'

    ===================================


    list:

    #返回value在L列表中出现的次数
    """ L.count(value) -> integer -- return number of occurrences of value """

    #在源列表扩展
    """ L.extend(iterable) -- extend list by appending elements from the iterable """
    =====================

    >>> li
    [11, 33, 44]
    >>> li.extend([99,22])
    >>> li
    [11, 33, 44, 99, 22]

    ======================

    #返回第一个出现的值的下标,不出现就返回异常
    L.index(value, [start, [stop]]) -> integer -- return first index of value.

    >>> li
    [11, 12]
    >>> li.index(12)
    1
    

      

    #在指定位置插入元素
    """ L.insert(index, object) -- insert object before index """

    >>> li
    [11, 12]
    
    >>> li.insert(1,14)  #在第1个位置插入10
    >>> li
    [11, 14, 12]
    

      

    #删除并且返回指定下标的值,
    L.pop([index]) -> item -- remove and return item at index
    =====================================

    >>> li
    [11, 44, 99, 22]
    >>> age = li.pop()
    >>> print age
    22
    

      


    ==================================

    #移除列表中的某一项(若有重复的的value,就移除第一个)
    L.remove(value) -- remove first occurrence of value.

    >>> li
    [11, 14, 12]
    >>> li.remove(14)
    >>> li
    [11, 12]
    

      

    #将原来的列表进行翻转
    """ L.reverse() -- reverse *IN PLACE* """

    >>> li
    [11, 12]
    >>> li.reverse()
    >>> li
    [12, 11]
    

      

    #数字按从小到大排序,字母按ASCII码排序
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;

    >>> li
    [12, 11]
    >>> li.sort()
    >>> li
    [11, 12]
    

    dict:

    #移除字典里面的所有项
    "" D.clear() -> None. Remove all items from D.

    # 根据key获取值,d是默认值 。若key存在就返回value,否则返回none
    """ D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. """
    ========================

    >>> dic = {1:'hello',2:'world'}
    >>> dic.get(1)
    'hello'
    >>> dic.get(2)
    'world'
    

    =========================

    #浅copy()只能copy第一层 ,用于修改字典多层里使用
    """ D.copy() -> a shallow copy of D """

    # 深copy
    import copy
    f = copy.deepcopy(c) #在字典的多层

    #按列表中的值为键,返回一个字典
    dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
    =================

    >>> a = {}
    >>> a.fromkeys([1,2,3],'t') #以列表中的值为键,NEW一个字典
    {1: 't', 2: 't', 3: 't'}
    
    >>>c = {}

    ================

    #
    """ 返回所有项的列表形式 """
    """ D.items() -> list of D's (key, value) pairs, as 2-tuples """

    >>> dic.items()
    [(1, 'hello'), (2, 'world')]
    

      

    #如果key不存在,则创建,如果存在,则返回已存在的值且不修改 """
    """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """

    >>> dic
    {1: 'hello', 2: 'world'}
    >>> dic.setdefault(1) #存在则返回
    'hello'
    
    >>> dic
    {1: 'hello', 2: 'world'}
    >>> dic.setdefault(3,'jachy')  #不存在则创建
    'jachy'
    >>> dic
    {1: 'hello', 2: 'world', 3: 'jachy'}
    

      

    #更新
    {'name':'alex', 'age': 18000}
    [('name','sbsbsb'),]
    """
    """
    D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
    If E present and has a .keys() method, does: for k in E: D[k] = E[k]
    If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
    In either case, this is followed by: for k in F: D[k] = F[k]
    """

    """ 所有的值 """
    """ D.values() -> list of D's values """

    >>> dic
    {1: 'hello', 2: 'world', 3: 'jachy'}
    >>> dic.values()
    ['hello', 'world', 'jachy']
    

      


    #判断是否是字典

    >>> type(dic) is dict
    True
    

      


    set:

    >>> a=[1,2,3]
    >>> c=set(a)
    >>> c
    set([1, 2, 3])

    c & d #取两个集合的交集

    >>> c
    set([1, 2, 3])
    >>> b=set([2,3,4])
    >>> b
    set([2, 3, 4])
    >>> b & c
    set([2, 3]
    

     

    c | d #去两个集合的并集

    >>> b | c
    set([1, 2, 3, 4])
    

    c ^ d #取两个的集合的非交集

    >>> b
    set([2, 3, 4])
    >>> c
    set([1, 2, 3])
    >>> b ^ c
    set([1, 4])
    

      


    c -d #取c里面有 ,d里面没有的
    d -c #取d里面有,c里面没有的

    >>> c
    set([1, 2, 3])
    >>> b
    set([2, 3, 4])
    >>> c-b
    set([1])
    >>> b-c
    set([4])
    

      

    c.issubset(d) #判断c是否是d的子集
    c.issuperset(d) #判断c是否是d的父集

    >>> b.issubset(c)
    False
    >>> d=set([2,3])
    >>> d
    set([2, 3])
    
    >>> d.issubset(c)
    True

    >>> c.issuperset(d)
    True

      

  • 相关阅读:
    汇编语言
    离散数学:每条边的权重均不相同的带权图有唯一最小生成树
    android源码如何起步与阅读方法
    linux内核——会话、进程组、线程组
    ubuntu系统——增加磁盘空间
    Android系统源代码——所需工具
    android源码相关网站
    git——分布式版本控制系统
    linux内核——进程,轻量级进程,线程,线程组
    Android系统源代码学习步骤
  • 原文地址:https://www.cnblogs.com/jachy/p/4944678.html
Copyright © 2020-2023  润新知