基本的な内容は全体像を把握しておけば十分です。不安な場合は実装時に確認すればよく、練習を重ねることで自然と覚えるようになります。特に時間を無駄にすることなく、深く掘り下げすぎないようにしましょう。
1.Pythonの予約語
import keyword
print(keyword.kwlist)
print(len(keyword.kwlist))
result: ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
2.Pythonにおけるインデント
Pythonではコードブロックをインデントによって区別します。理論的には任意のスペースが使用可能ですが、一般的には4つのスペースまたは1つのタブが推奨されます。
3.Pythonでの改行
教材では「\」が改行のマークとして紹介されていますが、現在のPyCharmでもこれは非効率な記号として警告が出るようになりました。必要に応じてEnterキーを使用し、問題が発生した場合は確認するようにしてください。多くの実践を通じて、注意すべきポイントを理解できます。
4.Pythonの文字列リテラル
シングルクォートとダブルクォートはどちらも文字列を表します。これらのクォート内では改行が自動的に分割されますが、実際には一つの文字列として扱われ、改行表示されることはありません。
トリプルクォートを使用すると複数行の文字列を定義でき、出力時も複数行で表示されます。さらに、トリプルクォートはコメントとしても利用可能です。
5.Pythonの入出力関数
result = print('hello_') # result = None
result = input("カード番号を入力してください:") # result = 000000
6.Pythonの変数
ここはしっかりと理解しておく必要があります。ポインタや参照という概念がないとはいえ、変数とメモリとの関係を把握することは重要です。
命名規則:
- 英字、数字、アンダースコアから構成される
- 大文字と小文字を区別し、先頭は数字にできません
- 予約語を使用してはいけません
代入方法: 単一の値を代入:a = 100 複数の値を同時に代入:a, b, c = 100, None, "hello"
定数:慣習的に大文字の変数名を使用します。これは実際には変数であり、人為的に変更すべきではありません。
7.Pythonのデータ型
(1)数値型 int float bool
a = 2
b = 5
算術演算子: 加算(+): a + b = 7 減算(-): a - b = -3 乗算(*): a * b = 10 除算(/): a / b = 0.4 (浮動小数点へと変換) 整数除算(//): a // b = 0, b // a = 1 剰余(%): a % b = 2 (小数に対する剰余は自身になる) べき乗(**): b ** a = 25
8.Pythonの比較演算子
>, <, >=, <=, !=, == は他の言語と同じです。
9.Pythonの論理演算子
論理積(and) 論理和(or) 否定(not) # 論理演算結果はbool型(True or False)
10.PythonのNone型
他の言語と似たようなもので、特別な予約領域や変数の型として考えられます。
練習コード:
from pyzbar.pyzbar import decode
from PIL import Image
import cv2
import keyword
"""
Pythonの予約語を出力
変数命名規則:
1. 数字、英字、アンダースコア_で構成
2. 大文字と小文字の区別あり、先頭は数字不可
3. 予約語不可
"""
print(keyword.kwlist)
print(len(keyword.kwlist))
multi_line_text = """
今テストしてみましょう
インストールが正常に完了しているか確認します
始めましょう
"""
another_text = ("追加のコメント"
"うん 何もありません")
print(multi_line_text)
ans = print(another_text)
# ライブラリ関数の戻り値は?
print(ans)
image, num = Image.open('../img/barcode1.png'), 21
# 定数として大文字の変数を使用する慣習。実際には変数だが、意図的に変更しない
print(num)
# 加減乗除、整数除算、剰余、べき乗
print(7 + num)
print(7 - num)
print(7 * num)
print(7 / num) # 結果は浮動小数点型。計算時にfloatに変換
print(7 // 3) # C++の整数除算と同等
print(7 % num) # 商が0の場合は元の値を返す
print(7 ** 2)
if image is not None:
decoded_objects = decode(image)
for obj in decoded_objects:
print('Type:', obj.type)
result = obj.data.decode('utf-8')
print('Data:', result)
img = cv2.imread('../img/barcode1.png')
org = (50, 50) # テキストの左下位置
fontFace = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 1
color = (0, 0, 255)
thickness = 2
lineType = cv2.LINE_AA
cv2.putText(img, result, org, fontFace, fontScale, color, thickness, lineType)
cv2.imshow('Image with Text', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
このコードではpyzbarライブラリを使用し、QRコードやバーコードを読み取ります。QRコードの結果は複雑な文字列になりやすく、バーコードの結果は通常数値となります。実行結果は以下の通りです: