質問記載場所
Atom *Atomはテキストエディタです
Python
機械学習を使った人工知能の開発
自動データ処理や分析などの業務効率化
スクレイピングによるWEB上の画像データ・テキストデータの自動収集
WEBサービス・WEBアプリケーション制作
スマホアプリ(Android) デスクトップアプリ制作
フィンテック・ブロックチェーン技術の開発
人工知能(AI)エンジニア
WEBアプリケーションエンジニア
データサイエンティスト
etc...
それは、私も今模索中。
でも・・
間違いなく
初心者にも優しい言語だと思います!
オブジェクト指向とは、
クラスを基準としたプログラムを設計する方法論の1つ。
クラスの変数を属性。動作をメソッド。
動作だけを記載した関数で構成されています。
1つ1つのデータ型、全てがオブジェクトです。
この話は、様々な人が様々な意見を持っているようです。
# 文字も入る
a = "疲れてきた?大丈夫?"
# 数値も入る
b = 123
# そのほか色々入れられます。
Macの方
[アプリケーション]→[ユーティリティ]→[ターミナル]を選択しましょう。
Windowsの方
[スタート]→[Windowsシステムツール]→[コマンドプロンプト]を選択しましょう。
Macの方Python3 と入力しエンター
Windowsの方Pythonと入力しエンター
こんな感じになっていればOK
*Pythonあとの数字とかは違っていても大丈夫です
実際に使ってみましょう。
int型 | 整数 |
---|---|
float型 | 小数点 |
str型 | 文字列 |
bool型 | 真偽値 |
list型 | リスト |
tuple型 | タプル |
dict型 | 辞書 |
set型 | セット |
文字列や浮動小数点数などをint型オブジェクトで整数に変換できます。
この2つは整数の2となります。
int("2")
int(2.123)
float型同士の計算では微妙なずれが生じます。
x = 0.1
y = 0.2
print(x + y)
>>>0.30000000000000004
from decimal import Decimal
x = Decimal("0.1")
y = Decimal("0.2")
print(x + y)
>>>0.3
print(str(1) + "+" + str(0.1) + "=" + str(1+0.1))
>>> 1 + 0.1 = 1.1
print("Hello")
len("Hello")
>>>5
"A A".lower()
>>>'a a'
小文字に変換するメソッド
文字数を調べる組込関数
bool1 = True
if bool1 == True:
print ("処理を実行")
# if bool1:
# と==から右を省略する事も可能です。
このように[ ]でくくったデータの集合体をリストと言います。
リストには箱番号がついています。箱と箱は , で区切ります。
部屋番号は0から始まります。
各部屋の情報を取り出したい時は以下のように書きます。
li1 = ["A","B","c",1,2,3,["cc","dd"]]
# リストの0番目を取り出したい
print (li1[0])
>>> A
このように( )でくくったデータの集合体をタプルと言います。
リストと同じように箱番号が0からついています。
箱と箱は , で区切ります。 リストと異なるのは、
更新が出来ないという事です。
li1 = ("A","B","c",1,2,3,["cc","dd"])
# リストの場合
li1 = ["A","B","c",1,2,3,["cc","dd"]]
li1[0] = "Change"
print(li1)
>>> ["Change","B","c",1,2,3,["cc","dd"]]
# タプルで同じ事をやると・・
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
このように{ } でくくって
Key: Value で記載された集合体を辞書と言います。
英語辞書をイメージしてください。appleというKeyを調べると、
りんごというvalueが確認できます。
Keyを使って、Valueを確認したいときは以下のように使います。
d1 = {"apple": "りんご","B": 2,"C": 3}
print (d1["apple"])
>>> りんご
・重複した要素がない ・要素に順番がない
myset1 = {1, 2, 3}
myset2 = {1, 2, 2, 3, 3}
print(myset1)
print(myset2)
>>>
{1, 2, 3}
{1, 2, 3}
二番目に作成したmyset2は重複した要素を含みます。出力されるときは重複された要素は無視されているため、両方とも同じ内容が表示されます。
要素の追加は出来ますが、
すでに存在している要素を
追加した場合は、無視されます。
ここまではターミナルもしくはコマンドプロンプトを使ってPythonとたわむれてきました。
ここからは一度書いたプログラムを繰り返し実行できる方法をご紹介します。
テキストエディターを使って記載し、そのファイルを実行する事でプログラムを動かす事が出来ます。 ターミナルやコマンドプロンプトは一回書いて、閉じたら終わり。それではアプリなど作れないので・・
適切なテキストエディタを利用します。
かつ、プログラミングを書くのに適したエディタが無料で色々あります。
色々試して自分の使いやすいものを探すと良いでしょう。 私はAtomもしくはKomodoEditを使う事が多いです。
今日は単純にデスクトップにフォルダをつくって、そこにファイルを入れてきましょう。
ターミナルもしくはコマンドプロンプトに戻りましょう。
先ほど使ったままにしている方はおそらく↑のようになっていると思います。
なっている方は exit() と入力してpythonの環境から抜けましょう。
*なっていない方は無視してください。
>>>|
ターミナルやコマンドプロンプトは、デフォルトでは基本ご自身のパソコンの
ホームディレクトリと呼ばれる場所にいます。
せっかくなのでコマンドでプログラマーっぽく、作りましょう。
デスクトップに移動します。
デスクトップにelvpythonというディレクトリ(フォルダのことです)を作成します。
作成したディレクトリ内に移動します。
cd Desktop
mkdir elvpython
cd elvpython
先ほどインストールしたAtomもしくは
お好きなテキストエディタを開きます。
と書いて、先ほど作ったディレクトリに test.py
という名前で保存しましょう。
print ("Hello World")
コマンドプロンプトもしくはターミナルに戻りましょう。
Macの方
Windowsの方
と入力してエンターキーを押下!!
Hello World
python3 test.py
python test.py
ifという言葉の通り、「もし〜だったら」を想定して書きます。
こんな記事が少し前に海外で人気になったそうです。
ある妻がプログラマの夫に「買い物にいって牛乳を1つ買って
きてちょうだい。卵があったら6つお願い」と言った。
妻は聞いた「なんで牛乳を6パックも買ってきたのよ!」
夫いわく「だって、卵があったから……」
こんな感じですかね・・
if egg in store:
milk_buy(6)
else:
milk_buy(1)
条件が1つの場合それ以外は何もしない
条件が複数ある場合
必ず条件指定の下はインデントを下げます(半角スペース4つ分)
インデントが下がっている間がその条件の有効範囲となります。
if 条件を記載します:
条件を満たしたときはここに記載の実行内容を実行
if 最初の条件を記載します:
最初の条件を満たした時に実行したい内容を記載
elif 最初の条件を満たさなかったものの中から次の条件を記載します。:
二個目の条件を満たした時に実行したい内容を記載
else:
全ての条件を満たさなかった場合に記載
比較演算子
# xとyが等しい場合はYes等しくない場合はNoを表示する
x = y = 2
'''
xが10より小さければ xは10より小さいと表示
xが10と等しければ xは10ですと表示
xが10よりも大きければxは10より大きいと表示
'''
x = 6
if_study.pyというファイル名で
先ほど作成したディレクトリに
保存しましょう。
自分で出来てからみてね!
# xとyが等しい場合はYes等しくない場合はNoを表示する
x = y = 2
if x == y:
print("Yes")
else:
print("No")
'''
xが10より小さければ xは10より小さい と表示
xが10と等しければ xは10です と表示
xが10よりも大きければ xは10より大きい と表示
'''
x = 6
if x < 10:
print("xは10より小さい")
elif x == 10:
print("xは10です")
else:
print("xは10より大きい")
例えば、一桁の数字を書き出すときには、
このように書きます。
このように書きます。
for の後に 変数 in 順番に取り出したい集合体を指定します。
ただ・・9までなので、このようにもかけますが・・
数字の羅列であれば、
range()を利用して書く方が簡単です。
num_list = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in num_list:
print(i)
for i in range(0,10):
print(i)
#もしくはfor i in range(10):
1~100までの数値を表示し、
3で割り切れる数の時だけ
その数字と Hello
という文字、
それ以外は数字のみを書き出してみよう。
ヒント:
●まずは1〜100までの数字を書き出してみる
●3で割り切れる は 数字 % 3 == 0 がTrueとなるので条件を入れてみる
●数字と文字列の組み合わせを作るときは・・
"%d Hello"%変数 を使うと便利。
カンニングはなしよ♪
for i in range(1,101):
if i % 3 == 0:
print("%d Hello"%i)
else:
print(i)
for index, i in enumerate(range(1,101)):
print("%d %d"%(index, i))
--実行結果
0 1
1 2
2 3
・
・
・
ネストしたforループ
多重ループとはfor文の中でfor文をまわす事をいいます。
l1 = [1, 2, 3]
l2 = [10, 20, 30]
for i in l1:
for j in l2:
print(i, j)
>>>
1 10
1 20
1 30
2 10
2 20
2 30
3 10
3 20
3 30
#条件が満たされるまでくり返す
while True:
#条件が満たされた場所で
break
num = 0
while num < 2:
print("num = " + str(num))
num += 1
print("End")
1) 変数 num に 0 を代入
2) while 文の条件式を評価。変数 num は 2 より小さいので条件式は真
3) 変数 num の値を出力
4) 変数 num に 1 を加算 (num は 1)
5) ブロックの最後まで達したので再度 while 文の条件式を評価
6) 変数 num は 2 より小さいので条件式は真
7) 変数 num の値を出力
8) 変数 num に 1 を加算 (num は 2)
9) ブロックの最後まで達したので再度 while 文の条件式を評価
10) 変数 num は 2 より小さくないので条件式は偽
11) while 文を終了し次の処理へ
12) "End" を出力
1.ファイルを実行したら今何時かを0-24時の間で答えるように質問される
2.入力された数字を受け取って、5時から10時以前なら おはよう と表示する
3.入力された数字を受け取って、11時から18時以前なら こんにちは と表示する
4.2と3の条件に合致しなければ こんばんは と表示する
#エラー処理
try:
#実行してみたい内容を記載する
except:
#エラーの場合の処理を記載する
入力を求める方法(質問される方法)
input("質問事項を記載する")
頑張りましょ〜
while True:
try:
time = int(input("何時ですか?(0〜24): "))
except:
continue
if 0 <= time <= 24:
break
if 5 <= time <= 10:
print("おはよう")
elif 11 <= time <= 18:
print("こんにちわ")
else:
print("こんばんわ")
1日が月曜日で31日までを
日にち 曜日 で書き出そう。
1 月曜日
2 火曜日
3 水曜日
・
・
●曜日はリストにしちゃうと良いかも。
リストの情報は list[0]とかlist[1] などで取り出せる。
●1週間は7日だから、7で割り切れる
●早速enumarate()を使ったりしてみても・・
頑張れぇ
day_list = ["月曜日",
"火曜日",
"水曜日",
"木曜日",
"金曜日",
"土曜日",
"日曜日"
]
count_no = 0
for index, i in enumerate(range(1,32)):
if index % 7 == 0:
count_no = 0
else:
count_no += 1
print("%d %s"%(i, day_list[count_no]))