1. ホーム
  2. Python

Pythonを学んだ後、このまとめを整理するために夜更かしすることに...。

2022-02-14 05:20:17
<パス <ブロッククオート

前置きが長くなりました。Pythonの学習、夜更かししてまとめることにしました...。

目次

Pythonの理解

  • Pythonの生みの親 グイド・ヴァン・ロッサム 1989年のクリスマスにPyhon言語を書いたオランダ人プログラマー。
  • 1991年、C言語で書かれた最初のPythonインタプリタが作成された
  • 2000年 Python 2.0が誕生 Python 3.0誕生(2008年
  • Python 2.0は2020年にメンテナンス終了、Python 3.0はより簡潔な構成に
  • Pythonは高水準のオブジェクト指向プログラミング言語であり、エレガントな構造と明確な構文で習得しやすい動的インタープリタ型言語である。サードパーティライブラリの豊富なセットが提供されています。pythonはまた、他の言語からのコードを呼び出すことができます。 <フォント グルー言語 .
  • Pythonは、人工知能、データサイエンス、システムツールの作成、APP、自動化スクリプト、WEB開発など、幅広い分野で使用されています...

Pythonの基本構文

  • コメント
  1. 使用方法 # コメント内容番号で一行コメントを実現
  2. 使用方法 """ コンテンツにアノテーションを付ける """ 複数行のコメントには三重引用符を使用
  • ライブラリのインポート
  1. モジュールのインポート インポート os
  2. モジュール内のオブジェクトをインポートする from os import getcwd
  3. モジュールのインポートとエイリアスの付与 pdとしてpandasをインポートする
  • を使用した変数
  1. Pythonの変数名(識別子)は次のように与えられます。 英数字のアンダースコア で、数字で始まることはできず、キーワードと重複することはできません。
  2. Pythonでキーワードを見る キーワード.kwlist または ヘルプ("keywords")
  3. Pythonの変数は、スコープによって分類されます。 <フォント グローバル変数 (モジュール全体で使用される)と ローカル変数 (定義されたメソッドや関数内で使用されます)
  • 実行順序
    Pythonステートメント トップダウンで実行する
  • インデントの書式設定
    Python はコードのブロックを区別するためにインデントを使用し、インデントは n >=1 とすることができ、グローバルな整合性があります
  • 基本関数
<テーブル 機能名 ファンクション機能 ヘルプ() ヘルプ情報を表示する、help(print) dir() 関数のプロパティとその関数が持つメソッドを表示する、dir(print) <フォント id() 識別子のメモリアドレスを表示 a = 1 print(id(a)) タイプ() ビューデータタイプ <フォント del() オブジェクトの削除 <フォント input() 入力を受け付ける、入力タイプは文字列 <フォント len() ビューオブジェクトの長さ

Pythonのデータ構造

<ブロッククオート

Pythonには6つの組み込みデータ構造があります。 Number(数値)、String(文字列)、List(リスト)、Tuple(タプル)、Dictionary(辞書)、Set(コレクション)。 . さらに、配列、行列、その他の構造体があり、使用するためにはツールキットにインポートする必要があります。

数値

Python3はint、float、bool、complexの値をサポートしています。

  • print(a / b) : aをbで割った浮動小数点値を取得する。
  • print(a // b) : aをbで割った整数値を取得します。
  • print(a ** b) : aのb乗の値を取得します。

文字列

Pythonにおける文字列とは、1つ以上の文字の並びであり、その文字数が文字列の長さになります。ただし Pythonには文字型がありません。 で、1文字は長さ1の文字列として認識されます。

  • 文字列を作成する。シングルクォートまたはダブルクォートを使用して作成された文字列は同一であり、トリプルクォートされた文字列は以下のように複数行の文字列を作成することができる。
  • エスケープ文字:シングルクォートまたはダブルクォートで複数行の文字列を作成するときにエスケープ文字 \n を使用することができ、また、特殊記号をマスクするために使用することができます。
  • 生の文字列。文字列の前にrを付けると、生の文字列が表示されます。 S = r"Pathython"
  • 文字列要素へのアクセス:添え字でアクセスする、文字列は順序付けされた不変の構造体である
  • 文字列の加算と乗算:加算は継ぎ足しに、乗算は繰り返しに使用される
  • 文字列の切断操作。 <フォント str.split(str1) str1をセパレータとする文字列の分割
  • 文字列の置換操作。 str.replace(str1, str2) 文字列中のstr1をstr2に置き換えて、新しい文字列を生成する
  • 文字列の大文字・小文字を変換します。 str.lower() 文字列中の大文字を小文字に変換します。 str.upper() 文字列中の小文字を大文字に変換します。
  • 文字列のスプライシング str.join(iter) 与えられたiterの各要素と指定された文字列strを結合し、新しい文字列を作成します。
  • 書式付き出力:書式演算子 % を使って、次のような出力の書式設定を支援します。 print("My name is %s, age is %d." %('Python', 31))

リスト

リストとは、任意のデータ型を持つ要素で構成され、いつでも追加や削除が可能な配列のことである。

List = [1, 2, 3] #Create a list
List[1] # Access the elements
List[1] = 0 #Modify elements
print(List) #Print [1, 0, 3]


  • リスト演算子
    リスト内の演算子は、文字列と同じで、次のようなコードになります。
a = [1, 2, 3]
b = [4, 5]
print(a * 2) # print [1, 2, 3, 1, 2, 3]
print(a + b) # print [1, 2, 3, 4, 5]



  • リストデータ操作
<テーブル クラスメンバ関数 機能一覧 <フォント list.append(obj)を実行します。 新しいオブジェクトをリストの末尾に追加する l <フォント ist.remove(obj) リスト内の値の最初のマッチを削除する list.insert(index, obj) 指定されたオブジェクト obj を指定された位置 index に挿入する。 list.pop([index = -1]) 添え字の位置に対応するリスト内の要素を削除します。デフォルトは最後の位置です。 list.reverse() リスト内の要素を反転させる list.sort(cmp=None, key=None, reverse=False) cmpはオプションのパラメータで、指定するとそのパラメータのメソッドでソートされます。 <フォント enumerate(list) 繰り返し処理を行い、要素とそれに対応するインデックスを取得します。 squares = [x*2 for x in list] (リスト内のxについて ルールに合致する要素のリストを一括生成するリスト誘導体
# Iterate through and get the elements and corresponding indexes
animals = ['dog', 'cat', 'fish']
for i in enumerate(animals):
    print(i)


<ブロッククオート

(0, '犬')
(1, 'cat')
(2, '魚')

# List derivation
squares = [x*2 for x in animals]
print(squares)


[ドッグドッグ」「キャットキャット」「フィッシュフィッシュ」]。

  • リストのインデックス作成とスライス
    インデックス作成 を使えば、すべての順序付き配列に対して0からn-1までアクセス可能です。
    スライシング List[start : end : step]で、startが0の時は省略、endがn-1の時は省略、stepが1の時は省略。 <マーク 注意事項 stepが負の値を取るときは、その逆を取る

タプル

タプルは不変の順序付きシーケンスで、文字列に似ていますが、タプル内のオブジェクトは任意のオブジェクトであることができる点が異なります。

Tuple = (1, ['a', 'b'], "Python") #Create a tuple
print(Tuple) # print (1, ['a', 'b'], 'Python')
print(type(Tuple)) #Print 

  • 単一のタプルを作成するためには タプルであることを示す "," があります。
  • タプルは不変であり、データを変更するとエラーが報告されるため、タプルのデータを偽装して変更することは推奨されません
t1 = (1)
t2 = (1,)
print("t1 type: ", type(t1), "\n" "t2 type: ", type(t2))


t1 type: <class 'int'>
t2 type: <class 'tuple'>

辞書

Pythonの辞書の各要素は、キーと値のペアのセットで構成され、ここで キーは唯一の不変の で、辞書に同じキーがあれば、後の値が前の値を上書きする。辞書はデータ量が多い場合、リストよりも高速にアクセスすることができる。

  • 辞書の定義
# The three assignment operations for the dictionary
x1 = {'name':'Caso', 'age':18, 'sex':'man'}
x2 = dict(name = 'Caso', age = 18, sex = 'man')
x3 = dict([("name", "Caso"), ("age", 18), ("sex", "man")])
print(x1)
print(x2)
print(x3)


{'name': 'Caso', 'age': 18, 'sex': '男'}.
{'name': 'Caso', 'age': 18, 'sex': 'man'}.
{'name': 'Caso', 'age': 18, 'sex': 'man'}.

  • 辞書データの取得
# 1. Get the value directly using the key, an error will be reported if you enter a key that does not exist
print(x1['name'])
# 2. Use the get(key, ["str"]) method to get the data
print(x1.get("age"))
# 2.1 When using get to get a value, a key that does not exist returns None or the specified value
print(x1.get("school"))
print(x1.get("school", "school not exist"))
# 3. View all keys
print(x1.keys())
# 4. View all values
print(x1.values())
# 5. View all key-value pairs
print(x1.items())


上記のコードの出力は次のようになります。

カソ
18
なし
学校が存在しない
dict_keys(['名前', '年齢', '性別'])
dict_values(['Caso', 18, 'man'])
dict_items([('name', 'Caso'), ('age', 18), ('sex ', 'man')])

  • 辞書にデータを挿入する
x1["school"] = "Edinburgh"
print(x1)


{'name': 'Caso', 'age': 18, 'sex': 'man', 'school': 'Edinburgh'} (名前): 'カソ', (年齢): 18, (性別): '男', (学校): 'エジンバラ'

  • 辞書のデータを修正する
x1["age"] = 25
print(x1)


{'name': 'Caso', 'age': 25, 'sex': 'man', 'school': 'Edinburgh'} {'name': 'Caso', 'age': 25, 'sex': 'man', 'school': 'Edinburgh'}.

セット

のPythonコレクション 要素は、唯一の と重複する要素は削除されます。

  • コレクションを定義する
keyset = {'name', 'age', 'sex', 'school'}
# Use in to check if an element exists
print("score" in keyset)


  • 要素の追加
# set.add(obj) adds an element to the set, or does nothing if the element already exists
keyset.add('name')
keyset.add('score')
print(keyset)


{'score', 'name', 'school', 'sex', 'age'}.

  • 要素の削除
# set.remove(obj) removes the specified element from the set
keyset.remove('name')
print(keyset)


<ブロッククオート

{点数」、「学校」、「性別」、「年齢」}。

  • 一意性の設定
Test = [1, 2, 3, 2, 3, 5]
# De-weight the list using the uniqueness of the set
print(list(set(Test)))


[1, 2, 3, 5]

Pythonの制御フロー

Pythonにおける制御フローのキーワード <フォント if, elif, else, for, while, break, continue.

if判定文

Pythonの条件制御は、条件文の結果が(TrueかFalseか)を判断して、どのブロックのコードを実行するかを決定します。if - elif - elseで実行できるコードのブロックは、以下のように複数存在します。

# Is it a dog?
game = input("Please enter: ")
if game == 'Dog':
    print("Oh, you're True Dog! ")
elif game == 'not Dog':
    print("hh, you're not Dog! Congratulation!")
else:
    print("Ok, you are man? ")


<イグ
ひとつだけ注意点があります。 Pythonでは0、None、nullはすべてFalseがデフォルトで、それ以外はすべてTrueになります

forループ文

Pythonのforループが他の言語のforループと異なる点は、反復可能なオブジェクト(シーケンスなど)を引数として受け取り、一度に1つずつ反復処理できることです。
また、forループの後にはelseを付けることができ、ループの最後で正常に実行される。

for i in ['you', 'are', 'true', 'dog']:
    print(i)
else:
    print("Forget it, not with dogs! ")


あなた


ドッグ
もういいや、犬には手を出すな!

Pythonのネストされたループ、例:乗算表の出力

for i in range(1, 10):
    for j in range(1, i+1):
        print("%dX%d=%-2d"%(j, i, j*i), end=" ")
    print()


1X1=1
1X2=2 2X2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

while ループ文

Pythonのwhile文は、ループの条件が成立すればループの本体を実行し、else文を追加することも可能です。
Pythonにはdo-while文はありません。

game = ['life', 'is', 'True']
i = 0
while i < 3:
    print(game[i])
    i += 1
else:
    print("Unfinished... ")


ライフ


続きはこちら...

ブレーク&コンティニュー

Pythonはbreakで現在のループから飛び出し、continueで現在のループをスキップします。

while True:
    game = input("Please admit you're a dog! \n")
    if game == "You're a real dog":
        print("Well, indeed dog! ")
        break;
    else:
        print("Don't admit it, do you? Until you admit it! ")
        continue
    print("You won't get here anyway! ") # Either break or continue


<イグ

Pythonの関数

カスタム関数def

数列の各数が最初の2つの数の和になるような数列を返す関数をカスタマイズする(フィボナッチ数列)。

def fibs(nums):
    result = [0, 1];
    for i in range(2, nums):
        val = result[i-1] + result[i-2]
        result.append(val)
    return result
print(fibs(5))


[0, 1, 1, 2, 3]

Pythonの関数でパラメータを渡すいくつかの方法。

<テーブル パラメータの種類 入力方法 必須パラメータ は正しい順序で関数に渡されなければならず、 その数は宣言されたときと呼び出されたときで同じでなければなりません。 キーワード引数 関数呼び出しは等号の代入で渡される デフォルトのパラメータ 関数が呼び出されたとき,パラメータ値が渡されなければデフォルト値とみなされる 不定形引数 は宣言時に名前を付けません。例えば args, **kwargs, *印のついたargsはタプル、 **印のついたkwargsはkey=value引数のような形の名前付き引数、 kwargsは辞書です。
def func(a=1, b=2, *args):
    print(a, b)
    print(args)
# 1. pass the required arguments
func(0, 4)
# 2. pass keyword arguments
func(b=4, a=0)
# 3. pass default arguments
func()
# 4. pass indefinite arguments
func(1, 2, 3, 4, 5)


<ブロッククオート

0 4
()
0 4
()
1 2
()
1 2
(3, 4, 5)

匿名関数 lambda

Pythonのラムダは匿名関数を作成するために使用されます。これは通常の関数と比較してdefよりもシンプルな関数ボディを持つ単なる式であり、限られたロジックのみをカプセル化することが可能です。

max = lambda x,y : x + y
max(2, 3)


5

Pythonオブジェクト

Pythonでクラスを作成するには、キーワードclassを使用し、カプセル化、ポリモーフィズム、継承を特徴とします。

class Person(object):
    def __init__(self, age, name): # self refers to the object instantiated
        self.__age = age;
        self.name = name
    def show(self):
        print("My name is %s"%(self.name))
        print("age: %d"%(self.__age))
# Instantiate the object
p1 = Person(age=18, name="dog")
p1.show() 
# Python inheritance
class Man(Person):
    pass
# Subclass instantiation
man = Man(age=25, name="Caso")
man.show()


私の名前は犬です
年齢 18
私の名前はCasoです
年齢 25

Pythonのデフォルトでは、プロパティはpublicで、そのクラスが含まれるモジュールや、そのクラスをインポートしている他のモジュールからアクセスすることが可能です。クラスの特定のプロパティを外部からアクセスされたり、継承されたりしたくない場合は、privateにすることができます。

  • 属性やメソッドの前にアンダースコア_を付けると、他のモジュールにインポートされなくなり、現在のモジュールでのみ使用されます。
  • プロパティやメソッドの前にアンダースコア __ を 2 つ付けると、 完全にプライベートな状態になり、クラスの外からアクセスできなくなります。

Pythonファイルの読み出しと書き込み

Pythonにはファイルを読み書きするための組み込み関数があります:openはファイルオブジェクトを返します。
よくある使い方 open(filename, mode, encoding)

<テーブル パラメータ値 パラメータの説明 ファイル名 アクセスするファイル名の文字列値を渡す モード ファイルを開く際のモードを設定します(r:読み込み専用、w:書き込み、a:追記、*b:バイナリ形式)。 エンコーディング ファイルを開く際のエンコード形式、デフォルトはutf-8
f = open("text.txt", 'w') # open the file text.txt, a new one will be created when the file does not exist
str = input("Enter what you want to write: ")
f.write(str) # write the contents of str to the file
f.close() # Close the file descriptor


<ブロッククオート

E:>タイプ text.txt
カソカソ

f = open("text.txt", 'r')
print(f.read(6)) # read 6 characters and move the cursor back 6 characters
print(f.read()) # read the cursor location to the end
f.close()


カソカード
ソル

# File writes using the with statement
with open("test.txt", 'w') as f:
    f.write("File write/read with with statement")
# Read the contents of the file using the with statement
with open("test.txt", 'r') as f:
    print(f.read())


withステートメントを使ったファイルの書き込み/読み出し

Pythonの例外処理

プログラムの例外とは、一般に実行時のエラー(ゼロによる除算、リストの添え字の範囲外、文字列の変更など)を指しますが、Pythonではtry, except, finalなどのキーワードで例外を処理します。

# Exception catching with try, except, final example programs
try:
    print(1/0)
except Exception as e: # Base class for Exception regular errors
    print(e)
finally: # always executed when exiting try
    print("The statements in finally are executed at the end")


ゼロ除算
最後に、finallyの中のステートメントが実行されます

Python共通ツールライブラリ

この項は、共通の標準ライブラリ、サードパーティライブラリ、そして特定のライブラリの利用を前提としたまとめ、最後にまとめリンクに分けて、別ブログでまとめていきます。

標準ライブラリ

Pythonにはos、sys、timeなどのライブラリとその他のモジュールが付属していますが、これらは別のブログでまとめることを想定しています。
Python標準ライブラリの-timeモジュール
Python標準ライブラリ - osモジュール

サードパーティライブラリ

自分でインストールする必要があるサードパーティライブラリです。numpy(科学計算)、pandas(データ処理)、その他のサードパーティライブラリなど。

クローラー実習

CSDN個人ブログデータを解析するPythonクローラー


<ブロッククオート

著者 カソカソ
ブログ:https://blog.csdn.net/xiaoma_2018
著作権について この記事の無断転載を禁じます

気に入ったら、「いいね!」を押して応援してください。