【入門】Python基本的な構文一覧【初心者向け】
こんにちは、ノムノムです。
今回は、Pythonを学ぶにあたって変数や条件文などを説明していこうと思います。
ではいきましょう。私も勉強しながらなので細かい説明などはとりあえず省きます。
変数
変数 = 値
型の宣言はありません。値の型を自動で設定します。つまり文字列を入れれば文字列型に、数値を入れれば数値型になります。
a = 'あいうえお' #文字列型
b = 4 #数値型
c = a + str(b) #文字列結合 → "あいうえお4"になる
条件文
if 条件1:
条件1が真(Treu)の場合の処理
elif 条件2:
条件2が真(Treu)の場合の処理
else:
条件1と条件2に当てはまらない場合の処理
ポイントは2つまずは条件文の末尾に「:」を入れること、処理を書く時は行頭をインデント(字下げ)することです。
私はelseの後ろに「:」入れ忘れてよくエラー出してます。
if 'いう' in a:
#aに文字列'いう'が含まれている場合、'きく'置き換える
a = a.replace('いう', 'きく')
c = True
elif b < 0:
#bがマイナスの場合、0にする
b = 0
c = True
else:
#上記の条件にどれも当てはまらない場合、cにfalseを入れます。
c = False
繰り返し文
for文
for 変数 in リストや配列などの変数:
繰り返し行いたい処理
複数の値をもった変数を一つずつ取り出し処理を行います。
なので繰り返し回数は、配列の個数だけ繰り返すということです。
for i in range(5): #0~4までを繰り返す。つまり5回繰り返します。
print(i)
words = ['りんご', 'にんじん', 'みかん']
for w in words:
print(w) #'りんご', 'にんじん', 'みかん'が順番に変数wに渡される
While文
while 条件式:
繰り返し処理
条件式が真(True)の場合、繰り返し処理を行います。偽(False)になるとループから抜けます。
無限ループにならないように気を付けてください。
i = 0
#iが100になるまで繰り返す
while i < 100:
print(i)
i += 1
コメント
# コメント
プログラムに影響しないコメントを入れたい場合は、行頭に「#」を書く
関数
def 関数名(引数1, 引数2=初期値):
処理
return 戻り値
戻り値が必要のない関数の場合、returnだけで大丈夫です。
個人的には関数の最後にreturnがある方がここで関数お終りがハッキリするので好きです。なくても大丈夫。
関数の主な目的は、何回も同じ処理が出てきたときに関数化しておくことで1度の記述で済む他、複雑になったソースコードを見やすくすることもできます。
def isNurmeic(i)
if type(i) in str
if i.isnumeric() == true
return True
else
return False
elif type(i) in int:
return True
else:
return False
クラス
class クラス名
def クラス関数名(引数1, 引数2=初期値):
処理
return 戻り値
クラス化の主な目的は機能をカプセル化することです。
例えばクラス名を「Robot」としたときにロボットに関する変数や関数を集約しておくことで一つの意味のあるオブジェクトが出来上がるということです。
class Robot:
name = 'robo' #名前
battery = 100 #バッテリー残量
val1 = 0
val2 = 0
#コンストラクタ(オブジェクトが作成されたときに呼び出します。引数もセットできる)
def __init__(self, val1, val2):
# 初期化
self.battery = 0
self.val1 = val1
self.val2 = val2
#デストラクタ(オブジェクトが破棄されるときに呼び出されます。)
def __del__(self):
print('del:デストラクタ')
#(例)あいさつする関数を作成(クラスの関数の第1引数はselfにする)
def Greeting(self):
print('こんにちは、ぼく「' + self.name + '」です。')
#呼び出し(使ってないけどval1,val2を適当にセット)
my_robot = Robot(1, 2)
#名前紹介
my_robot.name = 'ぽち'
my_robot.Greeting() #こんにちは、ぼく「ぽち」です。自動でmy_robot自身がselfとして渡されます。
#バッテリー取得(コンストラクタで0になっているはず)
print('バッテリー残量「' + str(my_robot.battery) + '」です。')
#オブジェクトの破棄
del my_robot
インポート
import モジュール as 別名
from モジュール import オブジェクト as 別名
すべてを一つのファイルに記載すると膨大なソースコードになり、コーディングする際に目的のコードを探すことが難しくなります。
そこで機能を集約し他のファイルに映しておくことで、ファイルごとに機能の集合として扱うことができるようになり、見やすくなったり、他のプロジェクトで使えたりといろいろ役に立つことができます。
class Robot:
name = 'robo' #名前
battery = 100 #バッテリー残量
val1 = 0
val2 = 0
#コンストラクタ(オブジェクトが作成されたときに呼び出します。引数もセットできる)
def __init__(self, val1, val2):
# 初期化
self.battery = 0
self.val1 = val1
self.val2 = val2
#デストラクタ(オブジェクトが破棄されるときに呼び出されます。)
def __del__(self):
print('del:デストラクタ')
#(例)あいさつする関数を作成(クラスの関数の第1引数はselfにする)
def Greeting(self):
msg = 'こんにちは、ぼく「' + self.name + '」です。'
print(msg)
return msg
import tkinter as tk # Tkinterライブラリのインポート
import Robot as robo # ロボクラスのインポート
from tkinter import messagebox as msgbox
#*****************************************
#GUIフォームの作成
root = tk.Tk()
# 常に最前表示
root.attributes("-topmost", True)
#フォームのタイトル
root.title("ロボ")
#フォームのサイズ
root.geometry("800x600")
#*****************************************
#フレームの作成
frame = tk.Frame(root, width=200, height=100, borderwidth=10, relief='groove')
frame.pack(anchor='nw', padx=10)
#*****************************************
#ラベルの作成
label = tk.Label(frame, text = "ロボットの名前入力")
label.pack(anchor='nw', padx=10)
#*****************************************
#テキストボックスの作成
robo_name = tk.StringVar()
txt = tk.Entry(frame, width=65, textvariable=robo_name)
txt.pack(anchor='nw', padx=10)
#*****************************************
#ボタンクリック時の処理
def robo_call():
robot = robo.Robot(1, 2)
robot.name = robo_name.get()
msg = robot.Greeting()
msgbox.showinfo('タイトルです。', msg)
#*****************************************
#ボタンの作成
btn = tk.Button(frame, text="送信", command=robo_call)
btn.pack()
#*****************************************
# エンターでも行えるようにする
def robo_call2(self):
robot = robo.Robot(1, 2)
robot.name = robo_name.get()
msg = robot.Greeting()
msgbox.askquestion('問い合わせ', msg)
root.bind('<Return>', robo_call2)
root.mainloop()
まとめ
とりあえず駆け足で行きました。
今回は自分で使う用に作りましたので、忘れたときにパッと見返せるというのを念頭に書いています。
なので、ここは加筆する可能性があります。
ここまで読んで頂いてありがとうございます。