zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

私のPython学習ノート

Python を学ぶ理由は、ブラウザで自分が欲しいテキストや画像などの資料をスクレイピングするためのスクリプトのようなプログラムを書きたいと思ったからです。これらのプログラムは実際に GitHub にたくさんありますが、残念ながら私はバックエンドの言語について全く知識がなく、直接持ってきても使いこなせません。

そこで、まず Python の基礎知識を学ぶことを考えました。廖雪峰の Python チュートリアルが良いと聞いていたので、この機会にしっかりと学びたいと思います。あまりすごいことは考えていませんが、少なくとも自分の薄っぺらな技術スタックに少しでも光を加えられればと思っています。結局、私は全栈開発者になることを夢見ていたこともありますから。

Python 環境をインストールしたら、さっそく学び始めましょう!

私の最初の Python プログラムを実行する#

print('hello,world')

データ型#

Python では、直接扱えるデータ型はいくつかあります。整数、浮動小数点数、文字列、ブール値、空値、変数です。

これは他の言語とあまり違いはなく、データ型は基本的に似ています。おそらく変数だけが独自の特性を持っているので、特別に記録しておきます。

変数#

Python は動的言語であり、代入時に値を変更することができます。例えば:

a = 123
print(a) # ターミナルに出力される値 123
a = 'abc'
print(a) # ターミナルに出力される文字列 abc

これは許可されていますが、Java ではそうではありません。Java は静的言語であり、複数回の代入はエラーになります。相対的に、動的言語はより柔軟です。もちろん、それぞれに利点と欠点があります。

また、代入には論理的な順序があります。例えば、a = 'a'という変数を定義する場合、Python では実際に 2 つのステップを踏んでいます。まず文字列aを作成し、その後この文字列を変数 a に代入します。

実際、これは数学的には少し逆論理的です。x = x + 2という計算は数学的には成り立ちませんが、コンピュータではまずx + 2を計算し、その後左側のxに代入します。これがコンピュータの論理です。

x = 1
x = x + 2
print(x) # 3

多くのプログラミング言語も同様です。例えば、私たちがよく知っている js などです。

複数の変数が相互に代入される場合、すべて行ごとに実行されます。

a = 1
b = a
a = 2
print(a)
print(b)

最後に出力される結果はそれぞれ2, 1です。

Python は多様なデータ型をサポートしており、コンピュータ内部では、すべてのデータを「オブジェクト」として扱うことができます。そして、変数はプログラム内でこれらのデータオブジェクトを指し示すために使用されます。変数に値を代入することは、データと変数を関連付けることを意味します。変数 x に y を代入することは、変数 x が実際のオブジェクトを指し示すことを意味し、そのオブジェクトは変数 y が指し示すものです。その後、変数 y に値を代入しても、変数 x の指し示す先には影響しません。
注意:Python の整数にはサイズ制限がなく、特定の言語の整数はそのストレージ長に応じてサイズ制限があります。例えば、Java の 32 ビット整数の範囲は - 2147483648 から 2147483647 までです。
Python の浮動小数点数にもサイズ制限はありませんが、一定の範囲を超えると直接 inf(無限大)として表示されます。---《廖雪峰の公式ウェブサイト》

文字列とエンコーディング#

Python はエンコーディングを処理するための 2 つの属性、ordchrを提供しています。

ord('舒')
# 33298
# 文字列を整数表現に変換

chr(33298)
# '舒'
# 整数表現の内容を文字列に変換

リスト#

listは js のArrayに似ており、複数のデータのリストです。書き方は以下の通りです。

>>> classmates = ['a', 'b', 'c']
>>> classmates
['a', 'b', 'c']

この時、変数classmatesはリストであると言えます。

len()を使うとリストの要素数を出力できます。

>>> len(classmates)
>>> 3

同時にリストにはインデックスがあり、0 から始まり、最後のインデックスはlen(classmates)-1です。また、最後の要素を直接出力したい場合は、classmates[-1]を使用できます。

>>> classmates[-1]
>>> 'c'

すでに-1で最後の要素を表せるので、-2で倒数第二の要素を表すことはできるのでしょうか?答えはできます。

>>> classmates[-2]
>>> 'b'

インデックスを使用する際は、範囲を超えないように注意してください。そうしないと、以下のエラーが発生します。

>>> classmates[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

listは可変の順序付きリストであり、要素を追加したり削除したりできます。

  1. append で末尾に要素を追加
>>> classmates.append('d')
>>> classmates
['a', 'b', 'c', 'd']
  1. insert で指定した位置に要素を追加

ここで1はインデックスを示し、インデックス 1 の位置に要素を挿入します。後の要素は自然に後ろにずれます。

>>> classmates.insert(1, 'd')
>>> classmates
['a', 'd', 'b', 'c']
  1. pop で末尾の要素を削除
>>> classmates.pop()
'c' # 出力時に削除された要素

>>> classmates
['a', 'b']
  1. pop (i) で指定した位置の要素を削除
>>> classmates.pop(1)
'b' # 削除された要素を出力

>>> classmates
['a', 'c']
>>> 
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。