Pythonデータ型の可変オブジェクト

10636 ワード

データ型
可変オブジェクト
  • デジタルNumber
  • 文字列Strring
  • ブール値Bloon
  • 可変オブジェクトとは、データ型自体がいくつかの組み込みメソッドまたは属性を呼び出すと、その値は変更されず、新しいオブジェクトが生成されることを意味します.
    デジタルNumber
    #   
    a = 123
    print(a)
    

    結果:
    123
    

    int整数
    int()メソッドは、文字列タイプデータを数値タイプに変換できます.Input()ユーザが入力した値の変換がよく用いられる.
    # int()  
    bNum = input("    :")
    
    print("        :", type(bNum))
    
    print("     :", int(bNum))
    print("        :", type(int(bNum)))
    

    結果:
        :10
            : 
         : 10
            : 
    

    浮動小数点数float
  • 整数部と小数部
  • は科学計数法
  • を採用することができる.
    #    
    b = 3.141592
    print(b)
    
    #      
    b = 3.14e2
    print(b)
    
    #   1 ,  0
    c = .7
    print(c)
    

    結果:
    3.141592
    314.0
    0.7
    

    float()メソッド
    数値タイプを文字列タイプに変換します.
    #         
    cFlo = 123
    
    print(float(cFlo))
    print(type(float(cFlo)))
    

    結果:
    123.0
    
    

    ブール値
  • は真偽の2つの値を表します:TrueとFalse
  • ブール値を数値とする場合:Trueは1、Falseは0
  • 数値をブール値とした場合:0はFalse、残りはTrue
  • #        
    a = 1 + True
    print(a)
    print(True)
    
    #        
    b = 1 + False
    print(b)
    
    # True
    if -1:
        print("-1 True")
    else:
        print("-1 False")
    

    結果:
    2
    True
    1
    -1 True
    

    注:Pythonでは、0以外の数字はTrueとして扱われます.
    文字列タイプStr
  • 文字列定義
  • 一般的な方法、組み込み方法
  • 文字列フォーマット(%、format()、f-string、モジュール)
  • 一重引用符'、二重引用符'、または三重引用符で囲まれたテキスト.文字列では、1つのスペースも1つの文字として計算されます.
    #    
    str1 = 'Tom'
    print(str1)
    
    #   
    str2 = "Bob"
    print(str2)
    
    #    
    str3 = """
    I am
    Jon
    I love my home!
    """
    print(str3)
    

    結果:
    Tom
    Bob
    
    I am
    Jon
    I love my home!
    

    注意:単一引用符と二重引用符は同じ意味で、単行文字列を表し、三重引用符は複数行文字列を表します.
    文字列で一般的なメソッドとプロパティ
    遍歴とアクセス
    文字列の各文字はfor......in......ループで巡回できます.str[start:end:step]メソッドで文字列にアクセスして変更します.
    #         
    str1 = "hello world!"
    for i in str1:
        print(i)
        
    #         
    str2 = "I love python!"
    
    print(str2[2 : 6])
    

    結果:
    h
    e
    l
    l
    o
     
    w
    o
    r
    l
    d
    !
    love
    

    スライス操作
    スライスはPythonで最も一般的な操作方法で、1つのオブジェクトから一部の値を抽出することを意味します.スライスとは?文字列のサブストリングを抽出して返します.一般的なスライス操作「[start:end:step]」.
  • start:スライスの開始位置で、メソッドがインデックス(本インデックスビットを含む)であることを示します.0の場合は、文字列の先頭からスライスすることを示します.startを省略すると、デフォルトでは先頭からスライスします.
  • end:スライスの最終インデックスビットで、抽出された文字はstartからend-1までの文字です.0の場合、デフォルトのスライスstartから文字列の末尾までのすべての文字.
  • step:スライスのステップ長は、スライスの長さを決定する.正の場合は、左から右にスライスを開始します.負の場合は、右から左にスライスを開始します.

  • start,end,stepの正負はスライスの方向に影響する.
    以下、スライスstr 1="I am Tom,I love Python!"例として,スライスに関する操作を詳細に述べる.
    個々の文字を切り取る
    #    
    str1 = "I am Tom, I love Python!"
    
    #       
    print(str1[0]) #       
    
    print(str1[-1])#       
    

    結果:
    I
    !
    I am Tom, I love Python!
    I am Tom, I love Python!
    !nohtyP evol I ,moT ma I
    

    startが負数の場合,文字列の末尾から前方にスライスすることを示す.
    完全な文字列の切り取り
    #        
    print(str1[ : ]) #      
    
    print(str1[ : : ]) #      
    
    print(str1[ : : -1]) #      
    

    結果:
    I am Tom, I love Python!
    I am Tom, I love Python!
    !nohtyP evol I ,moT ma I
    

    startとendがともに正(+)の場合
    #   start end - 1       
    print(str1[1 : 7]) #    1   6         
    
    # 
    print(str1[3 : 4])
    
    # start   end 
    print(str1[7 : 3]) #    
    
    #step   
    print(str1[2 : : -1]) #       
    

    結果:
     am To
    m
    
    a I
    

    startとendがともに負(-)の場合
    #     ,         
    print(str1[-8 : -1])
    
    #    -7       
    print(str1[ : -7 : -1])
    
    #           ,start = -2  end=-7       ,    ,    
    print(str1[-2 : -7])
    
    #     
    print(str1[-5 : -11 : -1])
    
    # 
    print(str1[-8 : ]) #  -8           
    
    #
    print(str1[ : -8]) #       -8       
    

    結果:
     Python
    !nohty
    
    tyP ev
     Python!
    I am Tom, I love
    

    startとendが正負(+-)を混合した場合
    # start=2,step=1,        ,end           7    
    print(str1[2 : -7])
    
    # start=-2,   2     ,step=1,        ,      5,    。
    print(str1[-2 : 5])
    

    結果:
    am Tom, I love 
    

    一般的な組み込み方法
    分割方法str.split(str,num)と"".join(str)
    str.split(str 1,num)は、文字列strで指定された文字str 1を分割子(カンマ",")として文字列全体を分割し、listとして出力することを表す.numはnum+1サブ文字列に分割され、numが-1またはタイミングを指さない場合、文字列全体を分割することを表す.
    #      
    str1 = "I am Tom, I love hello world!"
    
    #  m     ,        
    print(str1.split("m", 2)) #    ,           ,m       “,”
    
    #  l     ,      3 
    print(str1.split("l", 3)) #        l,num 3,     3 
    
    #        
    print(str1.split(" "))
    

    結果:
    ['I a', ' To', ', I love hello world!']
    ['I am Tom, I ', 'ove he', '', 'o world!']
    ['I', 'am', 'Tom,', 'I', 'love', 'hello', 'world!']
    

    "".join(str)は、「」の内容を分割子として、文字列strをすべて分割し、list形式で出力することを表す.上記str 1を例にとると、
    #         
    print(",".join(str1)) # str1         ,     
    
    #  |     
    print("|".join(str1)) #
    
    #          
    print("l".join(str1))
    

    結果:
    I, ,a,m, ,T,o,m,,, ,I, ,l,o,v,e, ,h,e,l,l,o, ,w,o,r,l,d,!
    I| |a|m| |T|o|m|,| |I| |l|o|v|e| |h|e|l|l|o| |w|o|r|l|d|!
    Il lalml lTlolml,l lIl lllolvlel lhlelllllol lwlolrllldl!
    

    str.split(str 1)と「」、join(str)の違い:
  • splitは、元の文字列の文字を分割子とし、分割の回数を規定することができる.指定された文字は消え、分割子
  • になります.
  • joinは、文字列内の文字をすべて分割する分割子をカスタマイズできます.**指定した分割子が文字列の文字と同じであっても、文字列の文字は消えません.

  • str.replace(oldStr,newStr,num)置換方法
    str.replace(oldStr,newStr,num)はstr中のoldStr文字列をnewStr文字列で置換することを表し、numは置換回数を表し、結局重複する文字が現れる.
    #
    str2 = "Hello worlD!"
    
    #  g  l
    print(str2.replace("l", "g", 2)) #      2 
    print(str2.replace("l", "w", -1)) #num -1 ,       
    

    結果:
    Heggo worlD!
    Hewwo worwD!
    

    その他の一般的な組み込み方法
    #      
    print(str2.lower())
    
    #      
    print(str2.upper())
    
    #      ,     
    print(str2.swapcase())
    
    #       
    print(str2.title()) #   ,            
    
    #         ,        
    print(len(str2))
    
    #            
    print(max(str2))
    
    #            
    print(min(str2)) #      
    
    #     l     
    print(str2.count("l"))
    

    結果:
    hello world!
    HELLO WORLD!
    hELLO WORLd!
    Hello World!
    12
    w
     
    3
    

    del str削除文字列
       #      
    
    del str2 #           ,        
    

    削除した変数に再アクセスすると、メモリにこの変数がないことを示すエラーが表示されます.
    文字列のフォーマット(%、format()、f-string)
    フォーマット:あるデータ型を別のタイプに変換します.≪アクション|Action|emdw≫:ユーザーが入力したデータのセキュリティを検出できます.
    %()旧式フォーマット
    テキスト内または出力が必要な場所で%(s,d,r)を用いて変換が必要なタイプを表し,その後%(str 1[num[list]])に続く.などのデータを出力します.
    #   %()   
    str3 = "Tom"
    age = 25
    
    print("I am %s, I %d years old today, I vervy love %r!" %(str3, age, "Python"))
    

    結果:
    I am Tom, I 25 years old today, I vervy love 'Python'!
    

    入力するデータ型を%s,%d,%rでそれぞれ表し,%()の中のものをタイプ別に置き換えて出力することがわかる.ここで,%sは文字列,%dは数字,%rは元のデータオブジェクトを表すため,出力時に二重あだ名を付けて元のデータオブジェクトであることを示す.
    特に注意:二重引用符の%で表される記号の数は、%()のデータの数と同じでなければなりません.そうしないと、プログラムがエラーになります.
    format()新しいフォーマット
  • は関数形式でフォーマットされ、代わりに%パーセントフォーマットされた
  • インデックスパラメータを使用してフォーマットされます.
  • は、名前付きパラメータを使用してフォーマットされます.
  • は、辞書dictを使用してフォーマットされます.

  • format()はPythonの最新の文字列フォーマット関数です.そのフォーマットは「{}.format()」であり、{}は後ろの括弧内のデータに対応している.
    format関数は「{}」を用いてビットを占め,「{}」のある場所ではformat内のパラメータを用いることができる.
    # format()   
    print("I am {}, I {} years old today, I vervy love {}!".format(str3, age, "Python")) #{} ()       。
    
    #  {}             
    print("I am {1}, I {2} years old today, I vervy love {0}!".format("Python", age, str3))
    
    #          
    s = "  {name},   {age}  ,   {Object}!"
    print(s.format(name = "Tom", age = 25, Object = "Python"))
    
    #    dict     
    dict_s = {"name" : "Tom", "age" : 25, "Object" : "Python"} #    age            
    s = s.format(**dict_s) # **   。
    print(s)
    

    結果:
    I am Tom, I 25 years old today, I vervy love Python!
    I am 25, I Tom years old today, I vervy love Python!
      Tom,   25  ,   Python!
      Tom,   25  ,   Python!
    

    format()は%と同じ機能を実現できることがわかる.さらにformat()は、インデックス、ネーミングパラメータ、dict方式で文字をフォーマットできます.ただし、「**」は解包を表す
    #  format         ,         
    s = "{}{}{}{}{}{}!"
    
    print(s.format("hello ", "world", ",", "I ", "love ", "Python"))
    

    結果:
    hello world,I love Python!
    

    f-stringフォーマット
    書式:f"{}".{}では、渡す必要があるパラメータ値です.
    #f-string   
    obj = "Python"
    print(f"I am {str3}, I {age} years old, I vervy love {obj}!")
    

    結果:
    I am Tom, I 25 years old, I vervy love Python!
    

    f-stringフォーマットは、主にユーザが入力したデータのセキュリティを検出するために使用される.
    付加:r""""""""""""は改行入力を実現し、その中のエスケープ文字も機能せず、普通の文字出力に相当する.
    #     
    print(r"""I am Tom, I 
    25 years old
    """) # , 。

    結果:
    I am Tom, I 
    25 years old

    inとnot in
    in文字が文字列に属するかどうかを検出し、文字列にTrueが返された場合、Falseが返されます.not inは、文字列にTrueが返されない場合に逆効果です.
    # in、not in   
    str4 = "hello python!"
    
    print("h" in str4)
    print("w" in str4)
    
    print("w" not in str4)
    print("l" not in str4)
    

    結果:
    True
    False
    True
    False
    

    エスケープ文字(t,,,r")
    エスケープ文字は、特殊な意味を持つ文字シリーズです.改行を表す場合、tはタブを表し、はスラッシュを表します.引用符にエスケープ文字がある場合、一般的には特殊文字として扱われ、r""は普通文字と見なすことができる.
    #            
    print(r"

    \t\\")

    結果:


    \t\\

    一般的なエスケープ文字:
    \:      ,       
    
    : \r: \t: \000: \': \"": \\:

    例:
    # 
    print("I love Python!")
    
    #     
    print("I love 
    Python!") print(r"I love \\ Python!") # , print("I love \ Python!")

    結果:
    I love Python!
    I love 
     Python!
    I love \\ Python!
    I love Python!
    

    noneタイプ
    noenは空の値を表し、何もありません.一般的には、関数で返すために使用されます.関数にreturnがない場合はデフォルトでreturn noneになります.
    #     
    def a():
        return none