Python まったく足りてない文法入門

プログラミング

概要

このページは、プロになりたい方は見ないでください。

変なことを覚えると正しい知識に入れ替えるのが大変ですから。

ツールとして、ちょっと使いたい的な人にはこんなかんたんな入門があっても良いのではないでしょうか。

詳しい文法の書籍やHPは、たくさんありますのでもう本当にこのページを読めばかろうじてプログラミングできるような内容の文法を説明します。
Windowsの場合を想定して説明しています。

基本は、このページ1ページにまとめます。
そこからもっと詳しい内容は、リンクをつくって少しづつ拡充していく予定です。
つまり、最終的にはこのページは目次的に使えるようになるように作っていくつもりです。

インストールする

これって画面がゴチャついてて失敗作なんですがまぁ使えるのでどうぞ。

Pythonのvenv仮想環境サポートツール GoroVenvManager
I've created a tool to easily set up Python venv virtual environments. Pyhtonのインストールと仮想環境のための補助ツールの説明です。

そのうち気が向きましたら作り直しますのでご勘弁を。

実行する

以下は、script.pyの内容。


# -*- coding:utf-8 -*-
print("こんにちは、パイソン!!")

下のコマンドをターミナルで実行。


python script.py

で”script.py”が実行できます。

使いやすい実行方法は、複数あって何に使うかでいろんな場合が考えられます。
今回は、ターミナルで実行します。

画面に書く


print("こんにちは、パイソン!!")

これで画面には、”こんにちは、パイソン!!”と表示されます。

ファイルに書く


fp = open("test.txt", "w")
fp.write("こんにちは、パイソン!!")
fp.close()

これでファイルに”こんにちは、パイソン!!”と書き込めます。
“fp”は、開いたファイルを指しています。
“w”は、書き込みモード(上書き)で開きますということです。
モードは、何種類かあって”a”にすると追記です。
“fp.close()”で、必ずファイルは閉じます。


with open("test.txt", "w") as fp:
    fp.write("こんにちは、パイソン!!")

全く同じ意味ですがこちらが主要な書き方です。
これならファイルの閉じ忘れがありません。

ファイルの開き方も書き込み方も何種類かバリエーションが有ります。

変数を使う


python = "パイソン"
print(f"こんにちは、{python}!!")

これで、”こんにちは、パイソン!!”と表示されます。

“”の前に’f’を付けると{}の中に、変数や式を書くことができます。

文字を連結する


hello = "こんにちは、"
python = "パイソン"
print(hello + python + "!!")

これで、”こんにちは、パイソン!!”と表示されます。

いろんな文字の連結方法があります。
連結方法によって見やすさも変わりますが効率なども変わってきます。

“xxx”と’xxx’

ダブルクォーテーション “”とシングルクォーテーション ”は、どちらも文字列を囲みますが使い方が多少違います。

計算する


a = 10
b = 100
print(a + b)

これで、”110″と表示されます。

色々な計算ができます。


print(sum([1,2,3]))

こんな風に関数で計算もできるし、演算子”+ – / *”でも計算ができます。

判断する


a = 5
if a > 0 :
    print("0より大きいです。")
else :
    print("0より小さいです。")

これで”0より大きいです。”と表示されます。
“if”の後ろの “a > 0” で比べて正しければそれ以下の”コードブロック”を実行します。
“:”は、判断部分の区切りです。
“else”は、それ以外のときつづく”コードブロック”を実行します。

字下げ と コードブロック

Pythonには、PEP8というコーディング規約があります。
正確な書き方は、こちらに有ります。
https://peps.python.org/pep-0008/

前の章での”コードブロック”とは、プログラムのまとまりのことです。
Pythonでは、前の行より行の先頭が字下げされているもので同じレベルのものを一つのコードブロックと判断します。

繰り返す


a = 0
while True:
    print("こんにちは、パイソン!!")

    if a >= 2:
        break

    a = a + 1

これで、”こんにちは、パイソン!!”を3回表示します。
“while”は、続く条件式が正しいとき以下のコードブロックを実行します。

“if” で “a”が 3になったら”break”つまり”while”ループから抜け出ます。

“a = a + 1″は、”a”に “a+1″の計算結果を入れます。つまり、”a”に1を足すことになります。

繰り返す方法は、もう一つ”for”がありこちらもよく使われます。

関数


def my_add(a ,b):
    return a + b

answer = my_add(1, 2)
print( answer )

これで、”3″と表示されます。
my_addという関数を引数(a, b)として作ったわけです。
“return”は、関数が返す値です。
my_addの中身は、引数で受け取った値”1″と”2″を合計して値を返します。

便利な”データ型” (コレクション型)

Pythonには、いくつかの基本的なデータの型があって”数値”とか”文字列”とか”ブール”とかですね。

データ型の中にもに便利に使える”コレクション型”と言うものが有ります。
便利に使えるデータを組で扱えるデータ型です。
コレクション型には、ここで紹介したもの以外にも”セット”と言うデータ型があります。

これだけどもかなり便利ですが、ライブラリなどを使ってデータ構造やフォーマットと言われる便利にデータを扱う仕組みがたくさん用意されています。

タプル

かんたんにデータの組を記憶しておく方法です。
例えばですが座標などを渡すときに使ったりします。
他、ともかく数値以外にもなにかの組み合わせを渡すときに使います。


tuple = (1, 2, 3, 4, 5)
print( tuple[1])

これで”2″と表示されます。

タプルは、一度作ったら変更することができません。
なので操作するときは、新しい変数に結果を入れます。


a = (1,) #一つしか無いタプルは","が要ります。
b = (2, 3)
c = a + b
print(c)

これで、”(1, 2, 3)”と表示されます。

他にもいろいろな操作方法が有ります。

リスト

リストは、変更可能なデータ型です。
他のプログラミング言語では、配列を使うところをリストを使うことが多いようです。
配列より操作がかんたんだからでしょうか。
シビアな性能を求められる場合は配列を使うようです。


data_list = [1,2,3,4,5]
print( data_list[0] )

これで、”1″と表示されます。
リストに要素を足したり、削除したり、並べ替えたりと柔軟な操作が可能です。
たくさんの操作用の関数が有ります。

辞書

辞書は、名前を付けたデータの組です。


dic = {"name":"鈴木", "age":21, "like":"りんご"}

answer = dic.get("name","") # よく使う呼び出し方
print(answer)

answer2 = dic["name"] # 基本の呼び出し方
print(answer2)

これは、”鈴木”と2回表示されます。
とても便利な機能でよく使います。
操作用の関数もたくさんあります。


people_dic = [
    {"name":"鈴木", "age":21, "like":"りんご"},
    {"name":"田中", "age":31, "like":"なし"},
    {"name":"山田", "age":41, "like":"みかん"},
]    

for person in people_dic:
    if person.get("name") == "山田":
        print(person.get("like"))

これは、”みかん”と表示されます。
“for”で “people_dic” から一つづつ辞書を取り出して “person”へ入れます。
で、先程の辞書の使い方と同じように”name”が”山田”と同じものであった場合
辞書から”like”の対になるデータを表示します。

このようにメモリ内データベースのような使い方を良くします。

操作方法は、色々有ります。

他の機能

ここまでがホントにホントに基本的な機能の紹介でした。

他にも機能が盛り沢山なので、使いながら少しづつ覚えていくのが良いのではないでしょうか。
必ずしも全部の機能を覚えなくてはならないというわけではなくて、覚えていると便利になると行ったものも多いので興味が湧いたらその都度覚えるのが良いかと思います。

とても大切な機能の”クラス”とかそもそも基本的な”True”と”False”とかまだまだ説明していないことがほとんどなんですがここから理解を深めていけば良いのでは無いでしょうか。

ちょっと手を動かして”こんなことができない。”と思ったときに調べてみるとどんどん知識も増えるかと思います。

この記事も時間とともに詳しくなっていく予定ですのでよろしくおねがいします。

Commnts