👻

Python3のノート

2020/11/28に公開

はじめに

  • OS
    • Windows10 Pro
  • Version
    • Python 3.7.3

参考資料

Pythonエンジニア育成推進協会監修 Python 3スキルアップ教科書

公式ドキュメント Python 3.7.8


最初のプログラム

print('Hello,World')

基本ルール


変数の宣言

  • ハッシュ記号は変数名に利用できない
  • ドルマークは変数名に利用できない
  • 数字で始まる変数名は宣言できない
  • Pythonのキーワードに使われている文字列は変数に利用できない
  • 文字列リテラルはシングルクォーテーションを扱う
  • 文字列リテラルはダブルクォーテーションを扱う

データ型

  • 文字列型
  • 数値型
  • 組み込み型
HelloStr = 'Hello,World'
print(HelloStr)
# Hello,World

型変換

  • 暗黙的型変換
    • 変数初期化時に代入演算された値に基づいてデータ型を変換すること(一般的な解釈)
    • Pythonでは厳密には型変換ではない
    • 各データ型のインスタンスオブジェクトを生成して名前を付ける感じ
name = 'Yamada'
print(type(name))
# <class 'str'>

age = 18
print(type(age))
# <class 'int'>

文字のエスケープ

表示文字 エスケープ文字
改行 \n
タブ \t
" "
バックスラッシュ \|

文字列リテラル

  • 複数行にまたがる文字列
    • 3回のシングルクォートで括る
  • 複数行にわたるコメント
    • 3回のシングルクォートで括る

使い方

sentence = '''
これは文章です。
入力したとおりに
改行も認識されます。
'''
print(sentence)

# ここからコメント
'''
出力内容

これは文章です。
入力したとおりに
改行も認識されます。
'''
# ここまでコメント

文字列の連結

  • 文字列の連結には「+」を使います。
    • 数値を結合する場合
      • str関数を使って文字列に変換すること

使い方


age = 999
firstName = 'Yamada'
message = 'Hello ' + firstName + str(age)
print(message)

# Hello Yamada999

中間に変数を挟まない方法

age = 999
firstName = 'Yamada'
greeting = 'Hello '
print(greeting + ' ' + firstName + str(age))

# Hello Yamada999


文字列補間

  • 文字列内で変数の中身を展開する方法

firstName = 'Yamada'
greeting = 'Hello {}'.format(firstName)
message = 'Your name is {} '.format(firstName)

print(message)
print(greeting)

'''
Your name is Yamada
Hello Yamada
'''

f文字列

Python 3.6 から使える機能
文字列内で変数展開が可能

PHPでダブルクォーテーションでくくった変数が
展開されるのと動きは似てる。
ていうか、それっぽい。(PHPer脳)

firstName = 'Yamada'
greeting = f'Hello {firstName}'
message = f'Your name is {firstName} '
 
print(message)
print(greeting)

# Your name is Yamada 
# Hello Yamada


組み込み関数


int関数

指定された文字を数値に変換する。
このとき第2引数に進数Nを入れておくと
進数Nに対応する値Xを 10進数に変換する。

基数として指定できる値は 0 か 2 から 36


print(int(17.58))
print(int("1011", 2))
print(int("A4", base=16))

# 17
# 11
# 164

float関数

float 関数は引数に指定した数値または文字列を
浮動小数点数に変換して取得する。


print(float(17.58))
# 17.58

iter関数

文字列やリストなどの順番に並んだデータをイテレータとして返す関数

nextを使うと先頭から順番にデータを取り出します。


firstName = 'Yamada'
firstName_iter = iter(firstName)

print(next(firstName_iter))
print(next(firstName_iter))
print(next(firstName_iter))
print(next(firstName_iter))
print(next(firstName_iter))
print(next(firstName_iter))

# Y
# a
# m
# a
# d
# a

# 7文字目はないのでStop Iteration
# print(next(firstName_iter))
'''

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
StopIteration

'''

関数・メソッド・組み込み関数

関数

変数x,yがあって,xの値を定めるとそれに対応したyが
ただ一つに定まるとき,yはxの関数であるという。

要するに自動販売機

\110 を投入すると缶コーヒーが出てくる的な話

メソッド

メソッドは、クラスにおける動作、処理(手続き)を表す要素です。
オブジェクト指向における「ふるまい」

関数と同じ関数であるもののメソッドは
あるクラスに属する「メンバ関数」のことを指す


組み込み関数

組み込み関数とは、プログラミング言語などの仕様に
あらかじめ用意され、標準で使用できる関数のこと。

ビルトイン関数や標準関数ともいう
言語構造上、用意されている関数のこと


ユーザ定義関数(user-defined function)

組み込み関数に対してプログラマが
コード上で定義・実装した関数を「ユーザー定義関数」という。

自分で作った関数のこと(メソッドではない)


ファイル入出力

ファイルオブジェクトでwriteメソッドを使うと
テキストを書き込めるが
実はprint関数でもテキストを書き込める。

正確には
標準入出力から作成したファイルオブジェクトを
print関数に渡す。


おわり

print('to be continued !!')

Discussion