python基礎-第二篇-基本數據類型


一.運算符

 

  1、算數運算:

  算數運算符相信大家都不陌生吧,尤其是加減乘除,好!那我就帶着大家看看最后三個,這三個到底是干什么玩意的?

  • %,取兩數相除的余數,看圖:

      

  • **,x的多少次冪,看圖:

      

  • //,取整除,你可以理解為向下取整,看圖:

       

 

  2、比較運算:

  注意:當為一個等號時,多為賦值,兩個等號為比較,另外不等於常用是!=

 

  3、賦值運算:

 

  4、邏輯運算:

  邏輯運算符里,and和or好理解,那我就講一下not:這家伙就是唱反調的--看圖

      

 

  5、成員運算:

  成員運算符,從字面上意思去理解,問誰是不是某組織里的一份子,好!例子說話

     

 

 二.基本數據類型

 

  • 對象是基於類創建的,對象的功能或方法都在類里
  • python里的基本數據類型--int,str,list,dict,tuple都是類
  • 類是抽象的,對象則是具體的,所以只有類-對象化,才可使用類的方法
  • 查看類或對象的所有方法:dir(對象)--查看功能,  help(類)--詳細,  ctrl + 左鍵(pycharm里)

 

  1.int(整型)

  • 在32位機器上,整數的位數為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647
  • 在64位系統上,整數的位數為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~922337203685477580
    class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number or string to an integer, or return 0 if no arguments are given. If x is floating point, the conversion truncates towards zero. If x is outside the integer range, the function returns a long instead. If x is not a number or if base is given, then x must be a string or Unicode object representing an integer literal in the given base. The literal can be preceded by '+' or '-' and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int('0b100', base=0) 4 """
        def bit_length(self): """ 返回表示該數字的時占用的最少位數 """
            """ int.bit_length() -> int Number of bits necessary to represent self in binary. >>> bin(37) '0b100101' >>> (37).bit_length() 6 """
            return 0 def conjugate(self, *args, **kwargs): # real signature unknown
            """ 返回該復數的共軛復數 """
            """ Returns self, the complex conjugate of any int. """
            pass
    
        def __abs__(self): """ 返回絕對值 """
            """ x.__abs__() <==> abs(x) """
            pass
    
        def __add__(self, y): """ x.__add__(y) <==> x+y """
            pass
    
        def __and__(self, y): """ x.__and__(y) <==> x&y """
            pass
    
        def __cmp__(self, y): """ 比較兩個數大小 """
            """ x.__cmp__(y) <==> cmp(x,y) """
            pass
    
        def __coerce__(self, y): """ 強制生成一個元組 """ 
            """ x.__coerce__(y) <==> coerce(x, y) """
            pass
    
        def __divmod__(self, y): """ 相除,得到商和余數組成的元組 """ 
            """ x.__divmod__(y) <==> divmod(x, y) """
            pass
    
        def __div__(self, y): """ x.__div__(y) <==> x/y """
            pass
    
        def __float__(self): """ 轉換為浮點類型 """ 
            """ x.__float__() <==> float(x) """
            pass
    
        def __floordiv__(self, y): """ x.__floordiv__(y) <==> x//y """
            pass
    
        def __format__(self, *args, **kwargs): # real signature unknown
            pass
    
        def __getattribute__(self, name): """ x.__getattribute__('name') <==> x.name """
            pass
    
        def __getnewargs__(self, *args, **kwargs): # real signature unknown
            """ 內部調用 __new__方法或創建對象時傳入參數使用 """ 
            pass
    
        def __hash__(self): """如果對象object為哈希表類型,返回對象object的哈希值。哈希值為整數。在字典查找中,哈希值用於快速比較字典的鍵。兩個數值如果相等,則哈希值也相等。"""
            """ x.__hash__() <==> hash(x) """
            pass
    
        def __hex__(self): """ 返回當前數的 十六進制 表示 """ 
            """ x.__hex__() <==> hex(x) """
            pass
    
        def __index__(self): """ 用於切片,數字無意義 """
            """ x[y:z] <==> x[y.__index__():z.__index__()] """
            pass
    
        def __init__(self, x, base=10): # known special case of int.__init__
            """ 構造方法,執行 x = 123 或 x = int(10) 時,自動調用,暫時忽略 """ 
            """ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number or string to an integer, or return 0 if no arguments are given. If x is floating point, the conversion truncates towards zero. If x is outside the integer range, the function returns a long instead. If x is not a number or if base is given, then x must be a string or Unicode object representing an integer literal in the given base. The literal can be preceded by '+' or '-' and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int('0b100', base=0) 4 # (copied from class doc) """
            pass
    
        def __int__(self): """ 轉換為整數 """ 
            """ x.__int__() <==> int(x) """
            pass
    
        def __invert__(self): """ x.__invert__() <==> ~x """
            pass
    
        def __long__(self): """ 轉換為長整數 """ 
            """ x.__long__() <==> long(x) """
            pass
    
        def __lshift__(self, y): """ x.__lshift__(y) <==> x<<y """
            pass
    
        def __mod__(self, y): """ x.__mod__(y) <==> x%y """
            pass
    
        def __mul__(self, y): """ x.__mul__(y) <==> x*y """
            pass
    
        def __neg__(self): """ x.__neg__() <==> -x """
            pass @staticmethod # known case of __new__
        def __new__(S, *more): """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
            pass
    
        def __nonzero__(self): """ x.__nonzero__() <==> x != 0 """
            pass
    
        def __oct__(self): """ 返回改值的 八進制 表示 """ 
            """ x.__oct__() <==> oct(x) """
            pass
    
        def __or__(self, y): """ x.__or__(y) <==> x|y """
            pass
    
        def __pos__(self): """ x.__pos__() <==> +x """
            pass
    
        def __pow__(self, y, z=None): """ 冪,次方 """ 
            """ x.__pow__(y[, z]) <==> pow(x, y[, z]) """
            pass
    
        def __radd__(self, y): """ x.__radd__(y) <==> y+x """
            pass
    
        def __rand__(self, y): """ x.__rand__(y) <==> y&x """
            pass
    
        def __rdivmod__(self, y): """ x.__rdivmod__(y) <==> divmod(y, x) """
            pass
    
        def __rdiv__(self, y): """ x.__rdiv__(y) <==> y/x """
            pass
    
        def __repr__(self): """轉化為解釋器可讀取的形式 """
            """ x.__repr__() <==> repr(x) """
            pass
    
        def __str__(self): """轉換為人閱讀的形式,如果沒有適於人閱讀的解釋形式的話,則返回解釋器課閱讀的形式"""
            """ x.__str__() <==> str(x) """
            pass
    
        def __rfloordiv__(self, y): """ x.__rfloordiv__(y) <==> y//x """
            pass
    
        def __rlshift__(self, y): """ x.__rlshift__(y) <==> y<<x """
            pass
    
        def __rmod__(self, y): """ x.__rmod__(y) <==> y%x """
            pass
    
        def __rmul__(self, y): """ x.__rmul__(y) <==> y*x """
            pass
    
        def __ror__(self, y): """ x.__ror__(y) <==> y|x """
            pass
    
        def __rpow__(self, x, z=None): """ y.__rpow__(x[, z]) <==> pow(x, y[, z]) """
            pass
    
        def __rrshift__(self, y): """ x.__rrshift__(y) <==> y>>x """
            pass
    
        def __rshift__(self, y): """ x.__rshift__(y) <==> x>>y """
            pass
    
        def __rsub__(self, y): """ x.__rsub__(y) <==> y-x """
            pass
    
        def __rtruediv__(self, y): """ x.__rtruediv__(y) <==> y/x """
            pass
    
        def __rxor__(self, y): """ x.__rxor__(y) <==> y^x """
            pass
    
        def __sub__(self, y): """ x.__sub__(y) <==> x-y """
            pass
    
        def __truediv__(self, y): """ x.__truediv__(y) <==> x/y """
            pass
    
        def __trunc__(self, *args, **kwargs): """ 返回數值被截取為整形的值,在整形中無意義 """
            pass
    
        def __xor__(self, y): """ x.__xor__(y) <==> x^y """
            pass denominator = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
        """ 分母 = 1 """
        """the denominator of a rational number in lowest terms""" imag = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
        """ 虛數,無意義 """
        """the imaginary part of a complex number""" numerator = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
        """ 分子 = 數字大小 """
        """the numerator of a rational number in lowest terms""" real = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
        """ 實屬,無意義 """
        """the real part of a complex number"""
  • 你不用擔心數值超過int的長度,python會自動轉化long(長整)
class int(object):
    """
    int(x=0) -> int or long
    int(x, base=10) -> int or long
    
    Convert a number or string to an integer, or return 0 if no arguments
    are given.  If x is floating point, the conversion truncates towards zero.
    If x is outside the integer range, the function returns a long instead.
    
    If x is not a number or if base is given, then x must be a string or
    Unicode object representing an integer literal in the given base.  The
    literal can be preceded by '+' or '-' and be surrounded by whitespace.
    The base defaults to 10.  Valid bases are 0 and 2-36.  Base 0 means to
    interpret the base from the string as an integer literal.
    >>> int('0b100', base=0)
    4
    """
    def bit_length(self): 
        """ 返回表示該數字的時占用的最少位數 """
        """
        int.bit_length() -> int
        
        Number of bits necessary to represent self in binary.
        >>> bin(37)
        '0b100101'
        >>> (37).bit_length()
        6
        """
        return 0

    def conjugate(self, *args, **kwargs): # real signature unknown
        """ 返回該復數的共軛復數 """
        """ Returns self, the complex conjugate of any int. """
        pass

    def __abs__(self):
        """ 返回絕對值 """
        """ x.__abs__() <==> abs(x) """
        pass

    def __add__(self, y):
        """ x.__add__(y) <==> x+y """
        pass

    def __and__(self, y):
        """ x.__and__(y) <==> x&y """
        pass

    def __cmp__(self, y): 
        """ 比較兩個數大小 """
        """ x.__cmp__(y) <==> cmp(x,y) """
        pass

    def __coerce__(self, y):
        """ 強制生成一個元組 """ 
        """ x.__coerce__(y) <==> coerce(x, y) """
        pass

    def __divmod__(self, y): 
        """ 相除,得到商和余數組成的元組 """ 
        """ x.__divmod__(y) <==> divmod(x, y) """
        pass

    def __div__(self, y): 
        """ x.__div__(y) <==> x/y """
        pass

    def __float__(self): 
        """ 轉換為浮點類型 """ 
        """ x.__float__() <==> float(x) """
        pass

    def __floordiv__(self, y): 
        """ x.__floordiv__(y) <==> x//y """
        pass

    def __format__(self, *args, **kwargs): # real signature unknown
        pass

    def __getattribute__(self, name): 
        """ x.__getattribute__('name') <==> x.name """
        pass

    def __getnewargs__(self, *args, **kwargs): # real signature unknown
        """ 內部調用 __new__方法或創建對象時傳入參數使用 """ 
        pass

    def __hash__(self): 
        """如果對象object為哈希表類型,返回對象object的哈希值。哈希值為整數。在字典查找中,哈希值用於快速比較字典的鍵。兩個數值如果相等,則哈希值也相等。"""
        """ x.__hash__() <==> hash(x) """
        pass

    def __hex__(self): 
        """ 返回當前數的 十六進制 表示 """ 
        """ x.__hex__() <==> hex(x) """
        pass

    def __index__(self): 
        """ 用於切片,數字無意義 """
        """ x[y:z] <==> x[y.__index__():z.__index__()] """
        pass

    def __init__(self, x, base=10): # known special case of int.__init__
        """ 構造方法,執行 x = 123 或 x = int(10) 時,自動調用,暫時忽略 """ 
        """
        int(x=0) -> int or long
        int(x, base=10) -> int or long
        
        Convert a number or string to an integer, or return 0 if no arguments
        are given.  If x is floating point, the conversion truncates towards zero.
        If x is outside the integer range, the function returns a long instead.
        
        If x is not a number or if base is given, then x must be a string or
        Unicode object representing an integer literal in the given base.  The
        literal can be preceded by '+' or '-' and be surrounded by whitespace.
        The base defaults to 10.  Valid bases are 0 and 2-36.  Base 0 means to
        interpret the base from the string as an integer literal.
        >>> int('0b100', base=0)
        4
        # (copied from class doc)
        """
        pass

    def __int__(self): 
        """ 轉換為整數 """ 
        """ x.__int__() <==> int(x) """
        pass

    def __invert__(self): 
        """ x.__invert__() <==> ~x """
        pass

    def __long__(self): 
        """ 轉換為長整數 """ 
        """ x.__long__() <==> long(x) """
        pass

    def __lshift__(self, y): 
        """ x.__lshift__(y) <==> x<<y """
        pass

    def __mod__(self, y): 
        """ x.__mod__(y) <==> x%y """
        pass

    def __mul__(self, y): 
        """ x.__mul__(y) <==> x*y """
        pass

    def __neg__(self): 
        """ x.__neg__() <==> -x """
        pass

    @staticmethod # known case of __new__
    def __new__(S, *more): 
        """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
        pass

    def __nonzero__(self): 
        """ x.__nonzero__() <==> x != 0 """
        pass

    def __oct__(self): 
        """ 返回改值的 八進制 表示 """ 
        """ x.__oct__() <==> oct(x) """
        pass

    def __or__(self, y): 
        """ x.__or__(y) <==> x|y """
        pass

    def __pos__(self): 
        """ x.__pos__() <==> +x """
        pass

    def __pow__(self, y, z=None): 
        """ 冪,次方 """ 
        """ x.__pow__(y[, z]) <==> pow(x, y[, z]) """
        pass

    def __radd__(self, y): 
        """ x.__radd__(y) <==> y+x """
        pass

    def __rand__(self, y): 
        """ x.__rand__(y) <==> y&x """
        pass

    def __rdivmod__(self, y): 
        """ x.__rdivmod__(y) <==> divmod(y, x) """
        pass

    def __rdiv__(self, y): 
        """ x.__rdiv__(y) <==> y/x """
        pass

    def __repr__(self): 
        """轉化為解釋器可讀取的形式 """
        """ x.__repr__() <==> repr(x) """
        pass

    def __str__(self): 
        """轉換為人閱讀的形式,如果沒有適於人閱讀的解釋形式的話,則返回解釋器課閱讀的形式"""
        """ x.__str__() <==> str(x) """
        pass

    def __rfloordiv__(self, y): 
        """ x.__rfloordiv__(y) <==> y//x """
        pass

    def __rlshift__(self, y): 
        """ x.__rlshift__(y) <==> y<<x """
        pass

    def __rmod__(self, y): 
        """ x.__rmod__(y) <==> y%x """
        pass

    def __rmul__(self, y): 
        """ x.__rmul__(y) <==> y*x """
        pass

    def __ror__(self, y): 
        """ x.__ror__(y) <==> y|x """
        pass

    def __rpow__(self, x, z=None): 
        """ y.__rpow__(x[, z]) <==> pow(x, y[, z]) """
        pass

    def __rrshift__(self, y): 
        """ x.__rrshift__(y) <==> y>>x """
        pass

    def __rshift__(self, y): 
        """ x.__rshift__(y) <==> x>>y """
        pass

    def __rsub__(self, y): 
        """ x.__rsub__(y) <==> y-x """
        pass

    def __rtruediv__(self, y): 
        """ x.__rtruediv__(y) <==> y/x """
        pass

    def __rxor__(self, y): 
        """ x.__rxor__(y) <==> y^x """
        pass

    def __sub__(self, y): 
        """ x.__sub__(y) <==> x-y """
        pass

    def __truediv__(self, y): 
        """ x.__truediv__(y) <==> x/y """
        pass

    def __trunc__(self, *args, **kwargs): 
        """ 返回數值被截取為整形的值,在整形中無意義 """
        pass

    def __xor__(self, y): 
        """ x.__xor__(y) <==> x^y """
        pass

    denominator = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """ 分母 = 1 """
    """the denominator of a rational number in lowest terms"""

    imag = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """ 虛數,無意義 """
    """the imaginary part of a complex number"""

    numerator = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """ 分子 = 數字大小 """
    """the numerator of a rational number in lowest terms"""

    real = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """ 實屬,無意義 """
    """the real part of a complex number"""
View Code

  我們會看到有好多方法,還好多帶兩下划線的方法,你可能會想,這些我們都會經常用嗎?

  那我告訴這些帶兩下划線的方法基本不用,這些方法是python私有方法,讓我們來看一個小例子就知道python怎么私有化的

str1 = 'you are '
str2 = 'very nice'
result1 = str1.__add__(str2)
print(result1)  #結果為you are very nice
result2 = str1 + str2
print(result2)  #結果為you are very nice

  好,兩種方式的結果都是一樣的,不過在python里,卻是在執行第二種方式時調用了第一種方式

n1 = 123
print(n1)  #結果為123
n2 = int(123)
print(n2)  #結果為123

  看着上面的代碼,我們可以知道根據int類,創建一個對象有兩種方式,而本質上是在執行方式一時調用了方式二,然后方式二又去int的特有功能里找到__init__並執行了它(后面講的基礎數據類型都是這兩種創建方式,內部調用原理也一樣)

  bit_length() 獲取表示的二進制最短位數(什么?你看不懂?我講的這么通俗易懂,你居然不懂?好吧,我講的太官方了,看個小例子吧)

x = 2
result1 = x.bit_length()
x = 15
result2 = x.bit_length()
print(result1,result2,sep='---')  #結果為2---4

  看完例子懂了吧?2用二進制只要占兩位,所以結果為2

  剛才我們簡單的提了一下__init__,其實它還有第二參數--設置進制的

a1 = int('0b101',2)
print(a1)  #結果為5

  來,讓你看一張奇圖,id()查看內存地址的方法

    

  看到沒有?怎么會有這樣的結果?

  結論就是:不同變量同一個數字要開辟兩份內存空間,python對此進行了優化,讓同一數字指向同一內存空間,節省內存,不過這也只適用-5-257,否則要用兩份內存,另外,變量賦值給變量,拿n8 = n7說,這個賦值過程其實是n8先找到n7,在順着n7找其對應2345的內存地址,所以它們的內存地址是一樣的

 

  2.布爾值

    真或假

    1 或 0

 

  3.str(字符串)

class str(basestring):
    """
    str(object='') -> string
    
    Return a nice string representation of the object.
    If the argument is a string, the return value is the same object.
    """
    def capitalize(self):  
        """ 首字母變大寫 """
        """
        S.capitalize() -> string
        
        Return a copy of the string S with only its first character
        capitalized.
        """
        return ""

    def center(self, width, fillchar=None):  
        """ 內容居中,width:總長度;fillchar:空白處填充內容,默認無 """
        """
        S.center(width[, fillchar]) -> string
        
        Return S centered in a string of length width. Padding is
        done using the specified fill character (default is a space)
        """
        return ""

    def count(self, sub, start=None, end=None):  
        """ 子序列個數 """
        """
        S.count(sub[, start[, end]]) -> int
        
        Return the number of non-overlapping occurrences of substring sub in
        string S[start:end].  Optional arguments start and end are interpreted
        as in slice notation.
        """
        return 0

    def decode(self, encoding=None, errors=None):  
        """ 解碼 """
        """
        S.decode([encoding[,errors]]) -> object
        
        Decodes S using the codec registered for encoding. encoding defaults
        to the default encoding. errors may be given to set a different error
        handling scheme. Default is 'strict' meaning that encoding errors raise
        a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
        as well as any other name registered with codecs.register_error that is
        able to handle UnicodeDecodeErrors.
        """
        return object()

    def encode(self, encoding=None, errors=None):  
        """ 編碼,針對unicode """
        """
        S.encode([encoding[,errors]]) -> object
        
        Encodes S using the codec registered for encoding. encoding defaults
        to the default encoding. errors may be given to set a different error
        handling scheme. Default is 'strict' meaning that encoding errors raise
        a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
        'xmlcharrefreplace' as well as any other name registered with
        codecs.register_error that is able to handle UnicodeEncodeErrors.
        """
        return object()

    def endswith(self, suffix, start=None, end=None):  
        """ 是否以 xxx 結束 """
        """
        S.endswith(suffix[, start[, end]]) -> bool
        
        Return True if S ends with the specified suffix, False otherwise.
        With optional start, test S beginning at that position.
        With optional end, stop comparing S at that position.
        suffix can also be a tuple of strings to try.
        """
        return False

    def expandtabs(self, tabsize=None):  
        """ 將tab轉換成空格,默認一個tab轉換成8個空格 """
        """
        S.expandtabs([tabsize]) -> string
        
        Return a copy of S where all tab characters are expanded using spaces.
        If tabsize is not given, a tab size of 8 characters is assumed.
        """
        return ""

    def find(self, sub, start=None, end=None):  
        """ 尋找子序列位置,如果沒找到,返回 -1 """
        """
        S.find(sub [,start [,end]]) -> int
        
        Return the lowest index in S where substring sub is found,
        such that sub is contained within S[start:end].  Optional
        arguments start and end are interpreted as in slice notation.
        
        Return -1 on failure.
        """
        return 0

    def format(*args, **kwargs): # known special case of str.format
        """ 字符串格式化,動態參數,將函數式編程時細說 """
        """
        S.format(*args, **kwargs) -> string
        
        Return a formatted version of S, using substitutions from args and kwargs.
        The substitutions are identified by braces ('{' and '}').
        """
        pass

    def index(self, sub, start=None, end=None):  
        """ 子序列位置,如果沒找到,報錯 """
        S.index(sub [,start [,end]]) -> int
        
        Like S.find() but raise ValueError when the substring is not found.
        """
        return 0

    def isalnum(self):  
        """ 是否是字母和數字 """
        """
        S.isalnum() -> bool
        
        Return True if all characters in S are alphanumeric
        and there is at least one character in S, False otherwise.
        """
        return False

    def isalpha(self):  
        """ 是否是字母 """
        """
        S.isalpha() -> bool
        
        Return True if all characters in S are alphabetic
        and there is at least one character in S, False otherwise.
        """
        return False

    def isdigit(self):  
        """ 是否是數字 """
        """
        S.isdigit() -> bool
        
        Return True if all characters in S are digits
        and there is at least one character in S, False otherwise.
        """
        return False

    def islower(self):  
        """ 是否小寫 """
        """
        S.islower() -> bool
        
        Return True if all cased characters in S are lowercase and there is
        at least one cased character in S, False otherwise.
        """
        return False

    def isspace(self):  
        """
        S.isspace() -> bool
        
        Return True if all characters in S are whitespace
        and there is at least one character in S, False otherwise.
        """
        return False

    def istitle(self):  
        """
        S.istitle() -> bool
        
        Return True if S is a titlecased string and there is at least one
        character in S, i.e. uppercase characters may only follow uncased
        characters and lowercase characters only cased ones. Return False
        otherwise.
        """
        return False

    def isupper(self):  
        """
        S.isupper() -> bool
        
        Return True if all cased characters in S are uppercase and there is
        at least one cased character in S, False otherwise.
        """
        return False

    def join(self, iterable):  
        """ 連接 """
        """
        S.join(iterable) -> string
        
        Return a string which is the concatenation of the strings in the
        iterable.  The separator between elements is S.
        """
        return ""

    def ljust(self, width, fillchar=None):  
        """ 內容左對齊,右側填充 """
        """
        S.ljust(width[, fillchar]) -> string
        
        Return S left-justified in a string of length width. Padding is
        done using the specified fill character (default is a space).
        """
        return ""

    def lower(self):  
        """ 變小寫 """
        """
        S.lower() -> string
        
        Return a copy of the string S converted to lowercase.
        """
        return ""

    def lstrip(self, chars=None):  
        """ 移除左側空白 """
        """
        S.lstrip([chars]) -> string or unicode
        
        Return a copy of the string S with leading whitespace removed.
        If chars is given and not None, remove characters in chars instead.
        If chars is unicode, S will be converted to unicode before stripping
        """
        return ""

    def partition(self, sep):  
        """ 分割,前,中,后三部分 """
        """
        S.partition(sep) -> (head, sep, tail)
        
        Search for the separator sep in S, and return the part before it,
        the separator itself, and the part after it.  If the separator is not
        found, return S and two empty strings.
        """
        pass

    def replace(self, old, new, count=None):  
        """ 替換 """
        """
        S.replace(old, new[, count]) -> string
        
        Return a copy of string S with all occurrences of substring
        old replaced by new.  If the optional argument count is
        given, only the first count occurrences are replaced.
        """
        return ""

    def rfind(self, sub, start=None, end=None):  
        """
        S.rfind(sub [,start [,end]]) -> int
        
        Return the highest index in S where substring sub is found,
        such that sub is contained within S[start:end].  Optional
        arguments start and end are interpreted as in slice notation.
        
        Return -1 on failure.
        """
        return 0

    def rindex(self, sub, start=None, end=None):  
        """
        S.rindex(sub [,start [,end]]) -> int
        
        Like S.rfind() but raise ValueError when the substring is not found.
        """
        return 0

    def rjust(self, width, fillchar=None):  
        """
        S.rjust(width[, fillchar]) -> string
        
        Return S right-justified in a string of length width. Padding is
        done using the specified fill character (default is a space)
        """
        return ""

    def rpartition(self, sep):  
        """
        S.rpartition(sep) -> (head, sep, tail)
        
        Search for the separator sep in S, starting at the end of S, and return
        the part before it, the separator itself, and the part after it.  If the
        separator is not found, return two empty strings and S.
        """
        pass

    def rsplit(self, sep=None, maxsplit=None):  
        """
        S.rsplit([sep [,maxsplit]]) -> list of strings
        
        Return a list of the words in the string S, using sep as the
        delimiter string, starting at the end of the string and working
        to the front.  If maxsplit is given, at most maxsplit splits are
        done. If sep is not specified or is None, any whitespace string
        is a separator.
        """
        return []

    def rstrip(self, chars=None):  
        """
        S.rstrip([chars]) -> string or unicode
        
        Return a copy of the string S with trailing whitespace removed.
        If chars is given and not None, remove characters in chars instead.
        If chars is unicode, S will be converted to unicode before stripping
        """
        return ""

    def split(self, sep=None, maxsplit=None):  
        """ 分割, maxsplit最多分割幾次 """
        """
        S.split([sep [,maxsplit]]) -> list of strings
        
        Return a list of the words in the string S, using sep as the
        delimiter string.  If maxsplit is given, at most maxsplit
        splits are done. If sep is not specified or is None, any
        whitespace string is a separator and empty strings are removed
        from the result.
        """
        return []

    def splitlines(self, keepends=False):  
        """ 根據換行分割 """
        """
        S.splitlines(keepends=False) -> list of strings
        
        Return a list of the lines in S, breaking at line boundaries.
        Line breaks are not included in the resulting list unless keepends
        is given and true.
        """
        return []

    def startswith(self, prefix, start=None, end=None):  
        """ 是否起始 """
        """
        S.startswith(prefix[, start[, end]]) -> bool
        
        Return True if S starts with the specified prefix, False otherwise.
        With optional start, test S beginning at that position.
        With optional end, stop comparing S at that position.
        prefix can also be a tuple of strings to try.
        """
        return False

    def strip(self, chars=None):  
        """ 移除兩段空白 """
        """
        S.strip([chars]) -> string or unicode
        
        Return a copy of the string S with leading and trailing
        whitespace removed.
        If chars is given and not None, remove characters in chars instead.
        If chars is unicode, S will be converted to unicode before stripping
        """
        return ""

    def swapcase(self):  
        """ 大寫變小寫,小寫變大寫 """
        """
        S.swapcase() -> string
        
        Return a copy of the string S with uppercase characters
        converted to lowercase and vice versa.
        """
        return ""

    def title(self):  
        """
        S.title() -> string
        
        Return a titlecased version of S, i.e. words start with uppercase
        characters, all remaining cased characters have lowercase.
        """
        return ""

    def translate(self, table, deletechars=None):  
        """
        轉換,需要先做一個對應表,最后一個表示刪除字符集合
        intab = "aeiou"
        outtab = "12345"
        trantab = maketrans(intab, outtab)
        str = "this is string example....wow!!!"
        print str.translate(trantab, 'xm')
        """

        """
        S.translate(table [,deletechars]) -> string
        
        Return a copy of the string S, where all characters occurring
        in the optional argument deletechars are removed, and the
        remaining characters have been mapped through the given
        translation table, which must be a string of length 256 or None.
        If the table argument is None, no translation is applied and
        the operation simply removes the characters in deletechars.
        """
        return ""

    def upper(self):  
        """
        S.upper() -> string
        
        Return a copy of the string S converted to uppercase.
        """
        return ""

    def zfill(self, width):  
        """方法返回指定長度的字符串,原字符串右對齊,前面填充0。"""
        """
        S.zfill(width) -> string
        
        Pad a numeric string S with zeros on the left, to fill a field
        of the specified width.  The string S is never truncated.
        """
        return ""

    def _formatter_field_name_split(self, *args, **kwargs): # real signature unknown
        pass

    def _formatter_parser(self, *args, **kwargs): # real signature unknown
        pass

    def __add__(self, y):  
        """ x.__add__(y) <==> x+y """
        pass

    def __contains__(self, y):  
        """ x.__contains__(y) <==> y in x """
        pass

    def __eq__(self, y):  
        """ x.__eq__(y) <==> x==y """
        pass

    def __format__(self, format_spec):  
        """
        S.__format__(format_spec) -> string
        
        Return a formatted version of S as described by format_spec.
        """
        return ""

    def __getattribute__(self, name):  
        """ x.__getattribute__('name') <==> x.name """
        pass

    def __getitem__(self, y):  
        """ x.__getitem__(y) <==> x[y] """
        pass

    def __getnewargs__(self, *args, **kwargs): # real signature unknown
        pass

    def __getslice__(self, i, j):  
        """
        x.__getslice__(i, j) <==> x[i:j]
                   
                   Use of negative indices is not supported.
        """
        pass

    def __ge__(self, y):  
        """ x.__ge__(y) <==> x>=y """
        pass

    def __gt__(self, y):  
        """ x.__gt__(y) <==> x>y """
        pass

    def __hash__(self):  
        """ x.__hash__() <==> hash(x) """
        pass

    def __init__(self, string=''): # known special case of str.__init__
        """
        str(object='') -> string
        
        Return a nice string representation of the object.
        If the argument is a string, the return value is the same object.
        # (copied from class doc)
        """
        pass

    def __len__(self):  
        """ x.__len__() <==> len(x) """
        pass

    def __le__(self, y):  
        """ x.__le__(y) <==> x<=y """
        pass

    def __lt__(self, y):  
        """ x.__lt__(y) <==> x<y """
        pass

    def __mod__(self, y):  
        """ x.__mod__(y) <==> x%y """
        pass

    def __mul__(self, n):  
        """ x.__mul__(n) <==> x*n """
        pass

    @staticmethod # known case of __new__
    def __new__(S, *more):  
        """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
        pass

    def __ne__(self, y):  
        """ x.__ne__(y) <==> x!=y """
        pass

    def __repr__(self):  
        """ x.__repr__() <==> repr(x) """
        pass

    def __rmod__(self, y):  
        """ x.__rmod__(y) <==> y%x """
        pass

    def __rmul__(self, n):  
        """ x.__rmul__(n) <==> n*x """
        pass

    def __sizeof__(self):  
        """ S.__sizeof__() -> size of S in memory, in bytes """
        pass

    def __str__(self):  
        """ x.__str__() <==> str(x) """
        pass
View Code
  • str_name.join(可迭代數據)
str1 = 'alex'
s = '-'.join(str1)
print(s)  #結果為a-l-e-x
li1 = ['alex','eric','wu']
s = '-'.join(li1)
print(s)  #結果為alex-eric-wu
dict1 = {'k1':'alex','k2':'eric'}
s = '-'.join(dict1)
print(s)  #結果為k1-k2
  • str_name.strip() 去兩邊空格 和lstrip 去左邊空格、rstrip 去右邊空格
str1 = '  a lex  eric   '
x1 = str1.strip()
x2 = str1.lstrip()
x3 = str1.rstrip()
print(x1,len(x1))
print(x2,len(x2))
print(x3,len(x3))
結果為:
a lex  eric 11
a lex  eric    14
  a lex  eric 13
  • str_name.partition(sub) 以某個子串把前后兩側分開,而且匹配第一個  返回元組
  • str_name.split(sub)  以某個子串分后,並提出這個子串,匹配所有的     返回列表
str1 = 'alexshaobingalexshaobingalex'
x1 = str1.partition('shaobing')
print(x1)   #結果為('alex', 'shaobing', 'alexshaobingalex')
x2 = str1.split('shaobing')
print(x2)  #結果為['alex', 'alex', 'alex']
  • str_name.replace() 替換
str1 = 'ericshaobingericshaobingeric'
x1 = str1.replace('shaobing','**')
print(x1)  #結果為eric**eric**eric
  • str_name.title()  可以理解為對每個單詞進行首字母大寫處理
str1 = 'Alex'
x1 = str1.istitle() 
print(x1)  #結果為True
str2 = 'alex'
x2 = str2.istitle()
print(x2)  #結果為False
x3 = str2.title()
print(x3)  #結果為Alex
  • str_name.startswith()  以什么開頭 和endswith() 以什么結尾
s = 'eric'
result1 = s.startswith('e')
print(result1)   #結果為True
result2 = s.endswith('c')
print(result2)   #結果為True
result3 = s.endswith('a')
print(result3)   #結果為False
  • str_name.find() 找到子串並返回索引位置,找不到返回-1,而index()就會報錯
s1 = 'alex'
x1 = s1.find('e')
print(x1)  #結果為2
x2 = s1.find('c')
print(x2)  #找不到返回-1
  • str_name.upper() 變大寫
s1 = 'alex'
result = s1.upper()
print(result)  #結果為ALEX
  • str_name.is..類型   判斷是不是什么類型,返回Ture或Fulse
s1 = '123'
result1 = s1.isdigit()
print(result1)  #結果為True
s2 = '245x'
result2 = s2.isdigit()
print(result2)  #結果為False
  • len() 統計字符個數
s1 = 'alexeric'
x = len(s1)
print(x)  #結果為8
  • 索引 str_name[num]  獲取一個字符(語言程序給每個元素按從左往右,第一個為0開始,編排一個位置,這個位置我們就叫做索引位置)
str1 = 'alex'
x1 = str1[2]
print(x1)  #結果為e
  • 切片 str_name[start_num:end_num] 獲取從start_name到end_name - 1項字符
str1 = 'jixjidngisdgnsjci'
x1 = str1[:]   #獲取整個字符串
x2 = str1[1:6]
print(x1)     #結果為jixjidngisdgnsjci
print(x2)     #結果為ixjid
  • for循環 字符串里的字符可以用來循環的
s = 'alex'
for i in s:
    print(i)
結果為:
        a
        l
        e
        x

 

    4.list(列表)

class list(object):
    """
    list() -> new empty list
    list(iterable) -> new list initialized from iterable's items
    """
    def append(self, p_object): # real signature unknown; restored from __doc__
        """ L.append(object) -- append object to end """
        pass

    def count(self, value): # real signature unknown; restored from __doc__
        """ L.count(value) -> integer -- return number of occurrences of value """
        return 0

    def extend(self, iterable): # real signature unknown; restored from __doc__
        """ L.extend(iterable) -- extend list by appending elements from the iterable """
        pass

    def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
        """
        L.index(value, [start, [stop]]) -> integer -- return first index of value.
        Raises ValueError if the value is not present.
        """
        return 0

    def insert(self, index, p_object): # real signature unknown; restored from __doc__
        """ L.insert(index, object) -- insert object before index """
        pass

    def pop(self, index=None): # real signature unknown; restored from __doc__
        """
        L.pop([index]) -> item -- remove and return item at index (default last).
        Raises IndexError if list is empty or index is out of range.
        """
        pass

    def remove(self, value): # real signature unknown; restored from __doc__
        """
        L.remove(value) -- remove first occurrence of value.
        Raises ValueError if the value is not present.
        """
        pass

    def reverse(self): # real signature unknown; restored from __doc__
        """ L.reverse() -- reverse *IN PLACE* """
        pass

    def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
        """
        L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
        cmp(x, y) -> -1, 0, 1
        """
        pass

    def __add__(self, y): # real signature unknown; restored from __doc__
        """ x.__add__(y) <==> x+y """
        pass

    def __contains__(self, y): # real signature unknown; restored from __doc__
        """ x.__contains__(y) <==> y in x """
        pass

    def __delitem__(self, y): # real signature unknown; restored from __doc__
        """ x.__delitem__(y) <==> del x[y] """
        pass

    def __delslice__(self, i, j): # real signature unknown; restored from __doc__
        """
        x.__delslice__(i, j) <==> del x[i:j]
                   
                   Use of negative indices is not supported.
        """
        pass

    def __eq__(self, y): # real signature unknown; restored from __doc__
        """ x.__eq__(y) <==> x==y """
        pass

    def __getattribute__(self, name): # real signature unknown; restored from __doc__
        """ x.__getattribute__('name') <==> x.name """
        pass

    def __getitem__(self, y): # real signature unknown; restored from __doc__
        """ x.__getitem__(y) <==> x[y] """
        pass

    def __getslice__(self, i, j): # real signature unknown; restored from __doc__
        """
        x.__getslice__(i, j) <==> x[i:j]
                   
                   Use of negative indices is not supported.
        """
        pass

    def __ge__(self, y): # real signature unknown; restored from __doc__
        """ x.__ge__(y) <==> x>=y """
        pass

    def __gt__(self, y): # real signature unknown; restored from __doc__
        """ x.__gt__(y) <==> x>y """
        pass

    def __iadd__(self, y): # real signature unknown; restored from __doc__
        """ x.__iadd__(y) <==> x+=y """
        pass

    def __imul__(self, y): # real signature unknown; restored from __doc__
        """ x.__imul__(y) <==> x*=y """
        pass

    def __init__(self, seq=()): # known special case of list.__init__
        """
        list() -> new empty list
        list(iterable) -> new list initialized from iterable's items
        # (copied from class doc)
        """
        pass

    def __iter__(self): # real signature unknown; restored from __doc__
        """ x.__iter__() <==> iter(x) """
        pass

    def __len__(self): # real signature unknown; restored from __doc__
        """ x.__len__() <==> len(x) """
        pass

    def __le__(self, y): # real signature unknown; restored from __doc__
        """ x.__le__(y) <==> x<=y """
        pass

    def __lt__(self, y): # real signature unknown; restored from __doc__
        """ x.__lt__(y) <==> x<y """
        pass

    def __mul__(self, n): # real signature unknown; restored from __doc__
        """ x.__mul__(n) <==> x*n """
        pass

    @staticmethod # known case of __new__
    def __new__(S, *more): # real signature unknown; restored from __doc__
        """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
        pass

    def __ne__(self, y): # real signature unknown; restored from __doc__
        """ x.__ne__(y) <==> x!=y """
        pass

    def __repr__(self): # real signature unknown; restored from __doc__
        """ x.__repr__() <==> repr(x) """
        pass

    def __reversed__(self): # real signature unknown; restored from __doc__
        """ L.__reversed__() -- return a reverse iterator over the list """
        pass

    def __rmul__(self, n): # real signature unknown; restored from __doc__
        """ x.__rmul__(n) <==> n*x """
        pass

    def __setitem__(self, i, y): # real signature unknown; restored from __doc__
        """ x.__setitem__(i, y) <==> x[i]=y """
        pass

    def __setslice__(self, i, j, y): # real signature unknown; restored from __doc__
        """
        x.__setslice__(i, j, y) <==> x[i:j]=y
                   
                   Use  of negative indices is not supported.
        """
        pass

    def __sizeof__(self): # real signature unknown; restored from __doc__
        """ L.__sizeof__() -- size of L in memory, in bytes """
        pass

    __hash__ = None

list
View Code
  • 列表屬於序列型數據類型,所以可以通過索引和切片來訪問
  • 語法結構 list_name[index]  切片
li = [1,2,3,6,5,4]
print(li[2])       #結果為3
  • 當然也通過索引刪除數據項  del list_name[index]
li = [1,2,3,6,5,4]
del li[2]
print(li)     #結果為[1, 2, 6, 5, 4],刪除了3
  • 列表的切片  語法結構:list_name[start:end:step]  切片的返回結果也為列表

li = [1,2,3,6,5,4]
print(li[2])       #結
  • 切片刪除del list_name[start;end]  刪除start到end-1項
li = [1,2,3,4,5]
print(li[2:4])  #結果為[3, 4]
del li[1:3]
print(li)       #結果為[1, 4, 5],刪除2,3
  • 加法
li1 = [4,2,6,2,9,3,3]
li2 = range(10,15)     #range函數現在輸出的不是列表
print(li2)             #結果為range(10, 15)
li2 = list(li2)        #轉換為列表,再做加法(python3里range不能和列表直接串接)
li3 = li1 + li2
print(li3)             #結果為[4, 2, 6, 2, 9, 3, 3, 10, 11, 12, 13, 14]
  • 乘法
lis1 = ['that','good','boy']
lis2 = lis1 * 3
print(lis2)  #結果為['that', 'good', 'boy', 'that', 'good', 'boy', 'that', 'good', 'boy']
  • 列表的in和not in運算判斷列表是否包含某個值
lis1 = [2,6,8,9]
if 2 not in lis1:     #條件不成立,所以下面沒有輸出
    print('yes 2 not in lis1')
lis2 = ['that','good','boy']
if 'that' in lis2:
    print('yes that in lis1')  #結果為yes that in lis1
  • 列表的遍歷  for循環
li1 = [1,23,69,452]
li2 = li1 * 2
i = 0            #標記項初始化
for val in li2:
    print('第%d項:'%(i),val)   #格式化控制字
    i +=1
結果為:
    第0項: 1
    第1項: 23
    第2項: 69
    第3項: 452
    第4項: 1
    第5項: 23
    第6項: 69
    第7項: 452
  • 語法[val_expr for val in list_name]   val_expr是變量val的運算表達式,val用於存儲for每次從list_name列表里取出的值,用每個val_expr的值作為構建新列表的元素項
li = [1,5,3,9]
li1 = [x**3 for x in li]
print(li1)  #結果為[1, 125, 27, 729]

li2 = [x for x in range(4)]
print(li2)  #結果為[0, 1, 2, 3]
li3 = [li2 for x in range(4)]   
print(li3)  #結果為[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
li4 = [li2 for x in li]         
print(li4)  #結果為[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

li4 = [2 for x in range(4)]     #當val_expr為常項時,按后面列表項數為重復次數
print(li4)  #結果為[2, 2, 2, 2]   
  • 統計項數  len函數
li = list(range(1,9))
print(len(li))  #結果為8
  • count函數  統計元素項相同的一個有幾個
li1 = ['you','are','beautiful','girl']
li1 = li1 * 2
print(li1)  #結果為['you', 'are', 'beautiful', 'girl', 'you', 'are', 'beautiful', 'girl']
print(li1.count('beautiful'))  #結果為2
del li1[2]                   #刪除beautiful
print(li1)  #結果為['you', 'are', 'girl', 'you', 'are', 'beautiful', 'girl']
print(li1.count(li1[5]))     #刪除一個beautiful后統計beautiful,結果為1
  • insert(index,元素) 指定位置插入
li1 = ['let','is','make','love','everywhere']
li1.insert(2,99)
print(li1)  #結果為['let', 'is', 99, 'make', 'love', 'everywhere']
  • append 指定項添加
li1 = ['let','is','make','love','everywhere']
li2 = []
for val in li1:
    li2.append(val)
print(li2)  #結果為['let', 'is', 'make', 'love', 'everywhere']
li2.append('pai')
print(li2)  #結果為['let', 'is', 'make', 'love', 'everywhere', 'pai']
li2.append(list(range(8)))     #以一個整體項添加到列表的末尾
print(li2)  #結果為['let', 'is', 'make', 'love', 'everywhere', 'pai', [0, 1, 2, 3, 4, 5, 6, 7]]
  • extend函數 擴展函數 擴展列表是拆成單項加入被擴展列表的末尾
li1 = list(range(5))
li2 = list(range(6,9))
li1.extend(li2)
print(li1)  #結果為[0, 1, 2, 3, 4, 6, 7, 8]
  • remove 指定項刪除函數,而且只會匹配第一個刪除
list1 = ['That','is','life','beautiful']
list1 = list1 * 2
print(list1)  #結果為['That', 'is', 'life', 'beautiful', 'That', 'is', 'life', 'beautiful']
list1.remove('is')
print(list1)  #結果為['That', 'life', 'beautiful', 'That', 'is', 'life', 'beautiful']
  • pop 默認最后一項刪除,也可指定位置刪除,並且刪除時有返回值,返回值為即將要刪除的
list1 = ['That','is','life','beautiful'] * 2
list1.pop()
print(list1)  #結果為['That', 'is', 'life', 'beautiful', 'That', 'is', 'life']
return_val = list1.pop(2)
print(return_val,list1)  #結果為life ['That', 'is', 'beautiful', 'That', 'is', 'life']
  •   list_name.reverse()  元素順序反轉

lis = ['alex',55,22,'eric','nice']
lis.reverse()  #結果為['nice', 'eric', 22, 55, 'alex']
print(lis)
  •   list_name.sore()  從小到大排序
li = [25,3,89,24,2541,58,41]
li.sort()  
print(li)  #結果為[3, 24, 25, 41, 58, 89, 2541]

 

 

    5.tuple(元組)

lass tuple(object):
    """
    tuple() -> empty tuple
    tuple(iterable) -> tuple initialized from iterable's items
    
    If the argument is a tuple, the return value is the same object.
    """
    def count(self, value): # real signature unknown; restored from __doc__
        """ T.count(value) -> integer -- return number of occurrences of value """
        return 0

    def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
        """
        T.index(value, [start, [stop]]) -> integer -- return first index of value.
        Raises ValueError if the value is not present.
        """
        return 0

    def __add__(self, y): # real signature unknown; restored from __doc__
        """ x.__add__(y) <==> x+y """
        pass

    def __contains__(self, y): # real signature unknown; restored from __doc__
        """ x.__contains__(y) <==> y in x """
        pass

    def __eq__(self, y): # real signature unknown; restored from __doc__
        """ x.__eq__(y) <==> x==y """
        pass

    def __getattribute__(self, name): # real signature unknown; restored from __doc__
        """ x.__getattribute__('name') <==> x.name """
        pass

    def __getitem__(self, y): # real signature unknown; restored from __doc__
        """ x.__getitem__(y) <==> x[y] """
        pass

    def __getnewargs__(self, *args, **kwargs): # real signature unknown
        pass

    def __getslice__(self, i, j): # real signature unknown; restored from __doc__
        """
        x.__getslice__(i, j) <==> x[i:j]
                   
                   Use of negative indices is not supported.
        """
        pass

    def __ge__(self, y): # real signature unknown; restored from __doc__
        """ x.__ge__(y) <==> x>=y """
        pass

    def __gt__(self, y): # real signature unknown; restored from __doc__
        """ x.__gt__(y) <==> x>y """
        pass

    def __hash__(self): # real signature unknown; restored from __doc__
        """ x.__hash__() <==> hash(x) """
        pass

    def __init__(self, seq=()): # known special case of tuple.__init__
        """
        tuple() -> empty tuple
        tuple(iterable) -> tuple initialized from iterable's items
        
        If the argument is a tuple, the return value is the same object.
        # (copied from class doc)
        """
        pass

    def __iter__(self): # real signature unknown; restored from __doc__
        """ x.__iter__() <==> iter(x) """
        pass

    def __len__(self): # real signature unknown; restored from __doc__
        """ x.__len__() <==> len(x) """
        pass

    def __le__(self, y): # real signature unknown; restored from __doc__
        """ x.__le__(y) <==> x<=y """
        pass

    def __lt__(self, y): # real signature unknown; restored from __doc__
        """ x.__lt__(y) <==> x<y """
        pass

    def __mul__(self, n): # real signature unknown; restored from __doc__
        """ x.__mul__(n) <==> x*n """
        pass

    @staticmethod # known case of __new__
    def __new__(S, *more): # real signature unknown; restored from __doc__
        """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
        pass

    def __ne__(self, y): # real signature unknown; restored from __doc__
        """ x.__ne__(y) <==> x!=y """
        pass

    def __repr__(self): # real signature unknown; restored from __doc__
        """ x.__repr__() <==> repr(x) """
        pass

    def __rmul__(self, n): # real signature unknown; restored from __doc__
        """ x.__rmul__(n) <==> n*x """
        pass

    def __sizeof__(self): # real signature unknown; restored from __doc__
        """ T.__sizeof__() -- size of T in memory, in bytes """
        pass

復制代碼
View Code
  • tuple的值不可修改,只支持查(切片和索引),另外還有可循環元組里的元素,長度len統計,成員運算,由於這些方法和列表相同,我這里就不贅述了
  • 創建單個元素的元組:tuple1 = (1,)
  • 元組的兒子不能變,但是孫子可以變
t = (11,22,['alex',{'k1':'v1'}])
t[2].append('eric')
print(t)   #(11, 22, ['alex', {'k1': 'v1'}, 'eric'])
del t[2][1]
print(t)  #(11, 22, ['alex', 'eric'])
# del t[2]
# print(t)  #報錯

 

  6.dict(字典)

class dict(object):
    """
    dict() -> new empty dictionary
    dict(mapping) -> new dictionary initialized from a mapping object's
        (key, value) pairs
    dict(iterable) -> new dictionary initialized as if via:
        d = {}
        for k, v in iterable:
            d[k] = v
    dict(**kwargs) -> new dictionary initialized with the name=value pairs
        in the keyword argument list.  For example:  dict(one=1, two=2)
    """

    def clear(self): # real signature unknown; restored from __doc__
        """ 清除內容 """
        """ D.clear() -> None.  Remove all items from D. """
        pass

    def copy(self): # real signature unknown; restored from __doc__
        """ 淺拷貝 """
        """ D.copy() -> a shallow copy of D """
        pass

    @staticmethod # known case
    def fromkeys(S, v=None): # real signature unknown; restored from __doc__
        """
        dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
        v defaults to None.
        """
        pass

    def get(self, k, d=None): # real signature unknown; restored from __doc__
        """ 根據key獲取值,d是默認值 """
        """ D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. """
        pass

    def has_key(self, k): # real signature unknown; restored from __doc__
        """ 是否有key """
        """ D.has_key(k) -> True if D has a key k, else False """
        return False

    def items(self): # real signature unknown; restored from __doc__
        """ 所有項的列表形式 """
        """ D.items() -> list of D's (key, value) pairs, as 2-tuples """
        return []

    def iteritems(self): # real signature unknown; restored from __doc__
        """ 項可迭代 """
        """ D.iteritems() -> an iterator over the (key, value) items of D """
        pass

    def iterkeys(self): # real signature unknown; restored from __doc__
        """ key可迭代 """
        """ D.iterkeys() -> an iterator over the keys of D """
        pass

    def itervalues(self): # real signature unknown; restored from __doc__
        """ value可迭代 """
        """ D.itervalues() -> an iterator over the values of D """
        pass

    def keys(self): # real signature unknown; restored from __doc__
        """ 所有的key列表 """
        """ D.keys() -> list of D's keys """
        return []

    def pop(self, k, d=None): # real signature unknown; restored from __doc__
        """ 獲取並在字典中移除 """
        """
        D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
        If key is not found, d is returned if given, otherwise KeyError is raised
        """
        pass

    def popitem(self): # real signature unknown; restored from __doc__
        """ 獲取並在字典中移除 """
        """
        D.popitem() -> (k, v), remove and return some (key, value) pair as a
        2-tuple; but raise KeyError if D is empty.
        """
        pass

    def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
        """ 如果key不存在,則創建,如果存在,則返回已存在的值且不修改 """
        """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
        pass

    def update(self, E=None, **F): # known special case of dict.update
        """ 更新
            {'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]
        """
        pass

    def values(self): # real signature unknown; restored from __doc__
        """ 所有的值 """
        """ D.values() -> list of D's values """
        return []

    def viewitems(self): # real signature unknown; restored from __doc__
        """ 所有項,只是將內容保存至view對象中 """
        """ D.viewitems() -> a set-like object providing a view on D's items """
        pass

    def viewkeys(self): # real signature unknown; restored from __doc__
        """ D.viewkeys() -> a set-like object providing a view on D's keys """
        pass

    def viewvalues(self): # real signature unknown; restored from __doc__
        """ D.viewvalues() -> an object providing a view on D's values """
        pass

    def __cmp__(self, y): # real signature unknown; restored from __doc__
        """ x.__cmp__(y) <==> cmp(x,y) """
        pass

    def __contains__(self, k): # real signature unknown; restored from __doc__
        """ D.__contains__(k) -> True if D has a key k, else False """
        return False

    def __delitem__(self, y): # real signature unknown; restored from __doc__
        """ x.__delitem__(y) <==> del x[y] """
        pass

    def __eq__(self, y): # real signature unknown; restored from __doc__
        """ x.__eq__(y) <==> x==y """
        pass

    def __getattribute__(self, name): # real signature unknown; restored from __doc__
        """ x.__getattribute__('name') <==> x.name """
        pass

    def __getitem__(self, y): # real signature unknown; restored from __doc__
        """ x.__getitem__(y) <==> x[y] """
        pass

    def __ge__(self, y): # real signature unknown; restored from __doc__
        """ x.__ge__(y) <==> x>=y """
        pass

    def __gt__(self, y): # real signature unknown; restored from __doc__
        """ x.__gt__(y) <==> x>y """
        pass

    def __init__(self, seq=None, **kwargs): # known special case of dict.__init__
        """
        dict() -> new empty dictionary
        dict(mapping) -> new dictionary initialized from a mapping object's
            (key, value) pairs
        dict(iterable) -> new dictionary initialized as if via:
            d = {}
            for k, v in iterable:
                d[k] = v
        dict(**kwargs) -> new dictionary initialized with the name=value pairs
            in the keyword argument list.  For example:  dict(one=1, two=2)
        # (copied from class doc)
        """
        pass

    def __iter__(self): # real signature unknown; restored from __doc__
        """ x.__iter__() <==> iter(x) """
        pass

    def __len__(self): # real signature unknown; restored from __doc__
        """ x.__len__() <==> len(x) """
        pass

    def __le__(self, y): # real signature unknown; restored from __doc__
        """ x.__le__(y) <==> x<=y """
        pass

    def __lt__(self, y): # real signature unknown; restored from __doc__
        """ x.__lt__(y) <==> x<y """
        pass

    @staticmethod # known case of __new__
    def __new__(S, *more): # real signature unknown; restored from __doc__
        """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
        pass

    def __ne__(self, y): # real signature unknown; restored from __doc__
        """ x.__ne__(y) <==> x!=y """
        pass

    def __repr__(self): # real signature unknown; restored from __doc__
        """ x.__repr__() <==> repr(x) """
        pass

    def __setitem__(self, i, y): # real signature unknown; restored from __doc__
        """ x.__setitem__(i, y) <==> x[i]=y """
        pass

    def __sizeof__(self): # real signature unknown; restored from __doc__
        """ D.__sizeof__() -> size of D in memory, in bytes """
        pass

    __hash__ = None

復制代碼
View Code
  • 每一項元素都為一個鍵值對
  • for i in dict_name  默認循環字典的key
dict1 = {'k1':123,'k2':456}
for i in dict1:
    print(i)
結果為:
        k1
        k2
  • dict_name.keys()所有的key鍵  values 所有的值 和 items 所有的鍵值對
dict1 = {'k1':123,'k2':456}
x = dict1.keys()
print(x)  #結果為dict_keys(['k2', 'k1'])

for v in dict1.values():
    print(v)
結果為:
        456
        123

for k,v in dict1.items():
    print(k,v)
結果為:
        k2 456
        k1 123
  • dict_name.get() 根據key獲取值,如果key不存在,則返回一個默認值None,索引對於不存在的鍵報錯
dict1 = {'k1':123,'k2':456}
x = dict1.get('k1')
print(x)     #結果為123
x1 = dict1.get('k3')
print(x1)    #結果為None
# x2 = dict1['k3']
# print(x2)  #報錯
  •  判斷某個鍵是否在字典里
dict1 = {'k1':123,'k2':456}
ret = 'k1' in dict1.keys()
print(ret)  #結果為True
ret2 = 'k3' in dict1.keys()
print(ret2)  #結果為False
  • dict_name.update() 字典更新
dict1 = {'k1':123,'k2':456}
dict2 = {'k1':234,'k3':'hello'}
dict1.update(dict2)
print(dict1)  #結果為{'k2': 456, 'k3': 'hello', 'k1': 234}
  • del dict_name[‘key’] 字典key對應的鍵值對  dict_name.clear() 清空字典
dic = {'k2': 456, 'k3': 'hello', 'k1': 234}
del dic['k2']
print(dic)  #結果為{'k3': 'hello', 'k1': 234}
dic.clear()
print(dic)  #結果為{}
  •  dict_name.fromkeys()  說不清這玩意干啥的,直接看效果吧
dic = {'k2': 456, 'k3': 'hello', 'k1': 234}
n = dic.fromkeys(['k1','k2'],'alex')
print(n)  #結果為{'k2': 'alex', 'k1': 'alex'}
n2 = dic.fromkeys(['k1','k2','k3'],[])
print(n2)  #結果為{'k2': [], 'k3': [], 'k1': []}
n2['k1'].append('nice')
print(n2)  #結果為{'k2': ['nice'], 'k3': ['nice'], 'k1': ['nice']}
  • len函數可以測得字典的數據項個數
dic = {'k2': 456, 'k3': 'hello', 'k1': 234}
n = len(dic)
print(n)  #結果為3
  • 字典元素值得訪問可以通過鍵獲取其對應的值
  • 字典元素值得修改也可以通過鍵修改其對應的值
dic = {'k2': 456, 'k3': 'hello', 'k1': 234}
value1 = dic['k3']
print(value1)  #結果為hello
dic['k2'] = 'nice'
print(dic)     #結果為{'k2': 'nice', 'k1': 234, 'k3': 'hello'}
  • 字典元素項的添加,可以通過dict_name[新鍵] = 新值  的方式來添加
dic = {'k2': 456, 'k3': 'hello', 'k1': 234}
dic['k4'] = 'nice'
print(dic) #結果為{'k3': 'hello', 'k2': 456, 'k4': 'nice', 'k1': 234}
  • enumerate(可迭代的)  自動加上為索引位置的key
li = ['跑車','美女','電腦']
for key,item in enumerate(li,1):
    print(key,item)
inp = int(input('請輸入商品序號:'))
print(li[inp - 1])

結果為:
        1 跑車
        2 美女
        3 電腦
        請輸入商品序號:2
        美女

  

  7.bytes(字節)

  • 字符轉換成字節
name = '小劉'
for i in name:
    print(i)
    bytes_list = bytes(i,encoding = 'utf-8')
    print(bytes_list)
    for b in bytes_list:
        print(b)
        print(bin(b))
結果為:
        小
        b'\xe5\xb0\x8f' #輸出列表時,默認十六進制
        229             #十進制,輸出單個字節時默認十進制
        0b11100101      #bin(十進制)  轉為二進制
        176
        0b10110000
        143
        0b10001111
        劉
        b'\xe5\x88\x98'
        229
        0b11100101
        136
        0b10001000
        152
        0b10011000
  • 字節轉換成字符串
a = '李璐'
b1 = bytes(a,encoding='utf-8')
print(b1)  #b'\xe6\x9d\x8e\xe7\x92\x90'

b2 = bytes(a,encoding='gbk')
print(b2)  #b'\xc0\xee\xe8\xb4'

newal = str(b1,encoding='utf-8')
print(newal)  #李璐
newa2 = str(b2,encoding='gbk')
print(newa2)  #李璐

 

                                                        歡迎大家對我的博客內容提出質疑和提問!謝謝

                                                                             筆者:拍省先生   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM