ペイの技術MEMO

文系大学生の技術メモ

Python3学び直してみる

私について

人生ではじめて本気で学び始めた言語はJavaなので割と型がないと気持ち悪いです。

そんな静的型付け言語しかやってこなかった私でも、ノリでPHPやJS、Pythonは触っていました。

この記事を書いている意味

最近趣味でもインターンでもPythonを触る機会が多くなってきたので初心に戻り、学び直すというかしっかり学びましょうということでこの記事を書き始めました。

参考にする教科書は新・明解Python入門です。

www.bohyoh.com

Pythonとは

  • プログラミングパラダイム

  • スクリプト言語である

  • ライブラリが豊富
  • プログラミングの実行は高速ではない
  • 習得は簡単ではない
    • 記述性が高い = 短い記述の中に深い意味が潜んでいる
    • 内部はポインタ(参照)だらけ

Python基本

インタラクティブシェル(基本対話モード)

macはターミナルでpython3と入力して起動

起動すると>>>このように表示されるのでこの後にコマンドを入力する(基本プロンプト)

終了するにはquit()もしくはexit()

演算子オペランド

  • 演算子
    • +-などの演算を行うための記号のこと
  • オペランド
    • 演算の対象になる数字のこと
    • 1 + 1の場合左側を第一オペランド,左オペンラドという。右側も同様

四則演算子の優先順位などは他の言語や算術演算と同じ

入れ子にすることをネストするという ex)7 * ((3 + 5) % 2)

  • 7*+3など場合は7 * (+3)のこと

優先順位

x ** y > +x,-y > x*y, x/y, x//y, x%y, > x+y, x-y

数値型

Pythonの数値を表す型は三種類の数値型がある

  • int型
    • 整数を表す整数型
    • 値の制限はない <-まじか!
  • float型
  • complex型
7 + 3 # int + int = int
7.0 + 3 # float + int = float
7 + 3.0 # int + float = float 
7.0 + 3.0 # float + float = float
  • 数値を表す表記のことを数値リテラル
    • 7は整数リテラル
      • 整数リテラルは10進数,2進数,8進数,16進数がある
    • 3.0は浮動小数点数リテラル

10進数以外の整数リテラルは前置きが必要

0b10 #2進数の10 結果は10進数の2
0o10 #8進数の10 結果は10進数の8
0x10 #16進数の10
010 #10進数の前に0を書くとエラー

演算子を書かずに数値リテラルのみを書くと、その値が表示される。

  • 数字リテラルの途中に_下線を入れることができる
    • 桁が多くなることで見づらくなるのを防ぐ, 結果は下線が抜ける

文字列リテラルエスケープシーケンス

文字の並びは文字列と呼ばれる,その綴りを表記するのが文字列リテラル

'A' #'A'
'Hiyajo' #'Hiyajo'
'比屋定' #'比屋定'
'比' + '屋' + '定' #'比屋定'
'比屋定' * 3 #'比屋定比屋定比屋定'
3 * '比屋定' + 'です。' #'比屋定比屋定比屋定です。'
3 * '比屋定' * 2 #'比屋定比屋定比屋定比屋定比屋定比屋定'

文字列リテラルの型はstr型

文字列 + 数値の演算はできない

  • エスケープシーケンス

    • \を先頭にした、2個、あるいは、それ以上の個数の文字で、単一の文字を表す表記方法がエスケープシーケンス
    • 例えば'(単一引用符)を表記したい場合は'\''と書く
  • 文字列リテラルの表記方法

    • 単一引用符で囲む 'hoge'
    • 二重引用符で囲む "hoge"
    • 3個の単一引用符で囲む  '''hoge'''
    • 3個の二重引用符で囲む """hoge"""
      • ''' """を使うと基本プロンプトで改行してかける。その際に表示される・・・は補助プロンプトが表示される

基本的には''で囲み,単一引用符が含まれる時に""で囲む

  • 現文字列リテラル
    • rもしくはRを文字列の前にかくことでエスケープシーケンスが、その綴りのまま解釈されるもの
hoge = r'改行\nコード'
print(hoge)
# 改行\nコード (エスケープシーケンスがそのまま解釈されている)

変数と型

  • 変数

    • 値を格納する箱
    • 型を確認する方法はtype()で式の型が得られる
>>> x = 10
>>> type(x)
<class 'int'>

>>> x = 10.5
>>> type(x)
<class 'float'>

>>> x = 'hello'
>>> type(x)
<class 'str'>
  • 変数名の規則

    • つける文字はアルファベットと数字,下線
    • アルファベットは大文字と小文字は区別される
    • 先頭に数字は書けない
  • 式と文

    • x = 17は文
    • x + 17は式
  • 代入文

    • =演算子ではなく、代入文
    • 複数の変数へ同じ値を一括代入
      • x = y = 1 結果はxもyも1
    • 複数の変数へ異なる値を一括代入
      • x, y, z = 1, 2, 3 xは1,yは2,zは3
    • 応用 
>>> x= 6
>>> y=2
>>> x, y = y + 2, x + 3 # xは4 yは9

同時にxとyに代入されています。

最後に

インタラクティブシェルにてimport thisと入力すると Tim Peters氏がまとめたThe Zen of PythonというPythonプログラミングの指針が表示されるので読んでみましょう