SlideShare a Scribd company logo
1 of 66
Python講座第一回
この講座の目標
Pythonを通して、プログラミングに
ついてより親しみを持つ
オブジェクト指向型プログラミング
を理解する基礎を作る
講座の資料について
Scrapboxというサービスを使用して提示します
リアルタイム反映なので
ちょくちょく追加&修正するよ
背景が緑色
↓
コードが書いてあるページ
背景が橙色
↓
発展的な内容
きみはPythonをしっているか
授業で触れてそうな内容の確認をするよ
Pythonってなんやねん
マルチパラダイムプログラミング言語
オブジェクト指向型/手続き型etc…
インタプリタによる実行を想定
コンパイルも可能
インデントに依る規則(オフサイドルール)が特徴
あまり他言語では見ない
def factorial(n):
if n == 1:
return 1
elif n > 1:
return factorial(n-1)*n
return 0
int factorial(int n){
if(n == 1) return 1;
else if(n > 1) return factorial(n-1) * n;
return 0;
}
オフサイドルール
def factorial(n):
if n == 1:
return 1
elif n > 1:
return factorial(n-1)*n
return 0
int factorial(int n){if(n == 1) return 1;else if(n > 1)
return factorial(n-1) * n;return 0;}
オフサイドルール
Pythonってなんやねん
マルチパラダイムプログラミング言語
オブジェクト指向型/手続き型etc…
インタプリタによる実行を想定
コンパイルも可能
インデントに依る規則(オフサイドルール)が特徴
あまり他言語では見ない
可読性の面ではプログラミングで理想的な形
開発環境
IDLEが皆さん使えるはず!!
対話モード搭載で初心者向き
しかし行数がなかったりカスタマイズ性に欠けたりと、
ある域を超えるとあまりよくない
★こんなのもあるよ!
Visual Studio Code (Developed by Microsoft)
アドオンが追加できる&多言語に対応しているので、
いろんな言語に触りたい人向け(私はこれです)
PyCharm → タッチ!
☆Pythonのために作られたIDE(統合開発環
境)
☆基本Pythonしかできない代わりにPythonが
動く環境を構築した状態であれば初期設定を
ほとんどすることなく動くので,環境構築に関
する知識がなくても使える!
☆Community Editionは無料,Professionalは
機能が多い分有料ですが,無料版の方で十
分
PyCharm Community Edition
☆標準で英語表記なのが玉に瑕。しかし,日本語化することもできるので英語がダメダメな
人は日本語化するのもよし
☆コンソール画面も表示できるので,今後使うであろうpygameなどの外部ライブラリを「pip
install~」が手軽に利用できる(わざわざファイルをダウンロードしてくるより楽ちんです)
☆JetBrainsというわりかし有名な企業が制作しており,更新もしっかりくるので安心(開発が
止まっていない)
☆背景等を含んだテーマがあり,暗いものから
明るいものまであるので自分にあったエディタに
できる
☆自分でコードカラーやフォントなども変更でき
るので,自分の見やすいエディタにできる
☆変数や関数などを予測で出してくれる
ex. pと打つとprint()やpow(),pass等を表示し
てくれる
⇒少し記憶があいまいな関数なども含まれて
いる文字がわかれば,使える
☆コードのフォーマット(見やすく整形)をしてくれ
るので,自分でいちいちSpaceなどを入れなくて
もよい
☆コードテンプレートを設定しておけば自分
が良く使うものをサクっと使える
まとめ
すぐ使える!
無料!
多機能!
日本語化はめんどくさい…
コードを書くにあたって
ファイルを保存する形でやっていきます!
(課題提出でもうやってる?)
対話型プログラムは基本使いません!
コメントアウト
プログラムを書く上で非常に重要
コード中にメモを残すことができる
x = 100 # xに100を代入
x = 10 + 20 # xに10+20を代入
print(x) # xを出力
# ぷろぐらむおわり
入出力
print([内容]) … 出力
数値なり文字列なりを出力します。
.formatをあわせて使うことも多いかも。
→ 変数の項で詳しくやります。
print(“計算技術研究会”)
# コンソールに「計算技術研究会」と出力されます
# 文字列を入れるときは“(ダブルクオーテーション)
で囲うのを忘れずに
print(100)
# コンソールに100と出力されます
入出力
input() … 入力
ユーザに入力を促します
Pythonにおける最も基本的な入力方法です
x = input()
# xに代入する文字列の入力を要求します
算術演算子
要するに計算で真ん中に入れる記号
多くの言語で同じであることが多い→覚えよう
ってか自然に覚えるわ
今回は加減乗除+剰余(あまり)を紹介
算術演算子―加減
加法(足し算)
+を使うよ!!
減法(引き算)
-を使うよ!!
普通の計算と変わらんやんけ!!!!
算術演算子―乗除
乗法(掛け算)
*を使うよ!!
除法(割り算)
/を使うよ!!
こっちは変わるんやなあ
print(1+3) # 1+3=4で4が出力されます
print(10-9) # 10-9=1で1が出力されます
print(10*5) # 10✕5=50で50が出力されます
print(100/2) # 100÷2で50が出力されます
print((3+12)*5) # 括弧が優先され、15✕5=75が出力
算術演算子―剰余
モジュロ演算と呼ばれたりなんかしたかもね
記号としては%を使います
地味―――に便利なことがあるので
ちゃんと使えるようにしましょう
print(5%3)
# 5÷3=1あまり2で2を出力
コードのきほん
何もなければ上から順に実行
されます!!
基本すぎるけども地味に重要
順次構造と言ったりします
サイコロを持って
くる
サイコロを振って
xに代入する
xを表示する
変数
どの言語でも大切な概念…変数
授業以上に理解を深めよう
変数の基礎
数字や文字列などを格納する
入れ物だと思ってください!
「値を保持する」モノ(オブジェクト)
数学とはちょっと違うよ
数学の変数・情報の変数
数学のイコール・情報のイコール
値を
求めたい
方程式を
立てる
xをある値の
代わりに置く
数学の場合
数学のイコール・情報のイコール
プログラム
を動かす
値同士の
やり取り
xに値を
格納する
情報の場合
情報の変数まとめ
わからないから変数、ではない!!
変化させるデータ、だから変数!!
変数の宣言
[変数名] = [値]
=は代入演算子と言う
Pythonは暗黙の型定義と呼ばれる部類に入る
Terraritto = 114514 # 数値はそのまま
NWaka = “HOMO” # 文字列は「”」か「’」で囲う
Dflag = true # 真偽値→あとでくわしく
変数の型の話
インタプリタさん
変数を扱おう!!!
number = 35
sentence = “億”
print(number + sentence)
# 35億ってでるはず!!(ほんと?)
変数の型の話
インタプリタさん
数字と文字を足せて
たまるか!!!!!
変数の型の話
加減乗除は左右に「整数」もしくは「小数」が来ることを
想定しています
また、文字列の連結として、+の前後に「文字列」が来る
ことも想定されています
しかし、「整数」と「文字列」が来るこ
とは想定されていません!!
いろいろな型
整数型(Integer…intと略される)
その名の通り整数を格納
小数型(Float / Double)
その名の通り小数を格納
「13.0」などの値なら整数っぽくてもこっちに格納
いろいろな型
文字列型(String…strと略されることも)
その名の通り文字列を格納
“13” や “12.0” のように、囲えばそれは文字列
文字型(Char)
Pythonにはないが多くの言語で存在する
文字1文字を格納
‘a’ ‘b’ ‘1’ ‘Z’ ‘-’ ‘=‘
iNumber = 765
fNumber = 9.61
sNames = “Shizuka Mogami”
sSentence = ‘Shizuka “Hello, producer!!”’
int iNumber = 765;
float fNumber = 9.61;
string sNames = “Shizuka Mogami”;
string = “Shizuka ¥“Hello, producer!!¥””;
エラーの車窓から
整数型
文字列型
format
文字列の中に変数の値を代入したいときに使う
[{}を含む文字列].format(変数)
number = 35
number2 = 100
print(“{}億”.format(number)) # 35億と出力
print(“{}億{}万”.format(number, number2))
# 35億100万と出力
問題演習①
(1)inputで入力した値をそのまま出力するプ
ログラムを組んでください(2行)
(2)inputで入力した値を2倍にして出力する
プログラムを組んでください(2行)
(3)inputで値を2つ入力させて、1つ目の値
を2つ目の値で割った余りを出力するプロ
グラムを組んでください(3行)
代入演算子の妙
x = x + 1
この方程式、解けねえよ!!
数学じゃねえ!!!!!!!
代入演算子の妙
x = x + 1
xにx+1を格納する=xの値を1増加させる
このイメージがプログラミングにおいて重要
代入演算子の妙
x = x + 2
x = x - 2
x = x * 2
x = x / 2
x = x % 2
考えてみよう
それを実行するたびに、xの値(初期値0)を
0,1,2,0,1,2,0,1,2,…
と変化させるコードはどんなものか?
こたえ
それを実行するたびに、xの値(初期値0)を
0,1,2,0,1,2,0,1,2,…
と変化させるコードはどんなものか?
x = ( x + 1 ) % 3
# xが0のとき、0+1=1を3で割った余りの1を返す
# xが1のとき、1+1=2を3で割った余りの2を返す
# xが2のとき、2+1=3を3で割った余りの0を返す
加算代入演算子とかとか
いちいち値を増やしたりするときにめんどい…
それを解決するのが
加算代入演算子
減算代入演算子
乗算代入演算子
除算代入演算子
x = x + 1
x = x - 2
x = x * 3
x = x / 4
x = x % 5
x += 1
x -= 2
x *= 3
x /= 4
x %= 5
同義
条件分岐
三大構造のひとつ、条件分岐
しっかり使いこなそう
条件分岐とは?
ここまでは単にprintやら代入やらを
1行ずつ上から実行するだけだった
変数の値などの状況に応じて、
実行するプログラムを変えるのが条件分岐
条件分岐イメージ図
xが1であるか?
プログラム① プログラム②
条件文
if [条件①]:
# 条件①を満たすときに実行するプログラム
elif [条件②]:
# 条件②を満たすときに実行するプログラム
# ifは一つまでだが、elifは何個作ってもOK
else:
# ここまでの条件を満たさなかったときに実行
必
須
任
意
x = 1
if x == 1:
# プログラム①の中身
else:
# プログラム②の中身
条件の書き方
条件 プログラム
aとbの値は等しいか? a == b
aとbの値は等しくないか? a != b
aよりbが大きいか? a < b
aはb以下か? a <= b
aよりbが小さいか? a > b
aはb以上か? a >= b
if x % 3 == 0:
print(“xは3で割り切れます”)
elif x % 3 == 1:
print(“xは3で割ると1余ります”)
else:
print(“xは3で割ると2余ります”)
if x < 0:
print(“xは負です”)
elif x > 0:
print(“xは正です”)
elif x = 0:
print(“xは0です”)
コードを書いた人の意図する
動作を実現するプログラムに
書き換えてください
Scrapbox => if.py
if x < 0:
print(“xは負です”)
elif x > 0:
print(“xは正です”)
elif x = 0:
print(“xは0です”)
1.インデントは揃えよう
オフサイドルール
if x < 0:
print(“xは負です”)
elif x > 0:
print(“xは正です”)
elif x == 0:
print(“xは0です”)
2-A. = ではなく ==
代入と条件の違い
if x < 0:
print(“xは負です”)
elif x > 0:
print(“xは正です”)
else:
print(“xは0です”)
2-B.elseでもいいよね
x<0でもx>0でもないのは
1個しかない
if score < 0:
print(“負の点数はありえません”)
elif score > 100:
print(“100を超える点数はありえません”)
elif score > 70:
print(“あなたの評価はBです”)
elif score > 80:
print(“あなたの評価はAです”)
elif score > 90:
print(“あなたの評価はA+です”)
else:
print(“あなたの評価はCです”)
消しても動作が変わらない
if/elif節はどれでしょうか?
Scrapbox => if2.py
if score < 0:
print(“負の点数はありえません”)
elif score > 100:
print(“100を超える点数はありえません”)
elif score > 70:
print(“あなたの評価はBです”)
elif score > 80:
print(“あなたの評価はAです”)
elif score > 90:
print(“あなたの評価はA+です”)
else:
print(“あなたの評価はCです”)
判
定
も
同
じ
く
上
か
ら
順
if score < 0:
print(“負の点数はありえません”)
elif score > 100:
print(“100を超える点数はありえません”)
elif score > 70:
print(“あなたの評価はBです”)
elif score > 80:
print(“あなたの評価はAです”)
elif score > 90:
print(“あなたの評価はA+です”)
else:
print(“あなたの評価はCです”)
if score < 0:
print(“負の点数はありえません”)
elif score > 100:
print(“100を超える点数はありえません”)
elif score > 90:
print(“あなたの評価はA+です”)
elif score > 80:
print(“あなたの評価はAです”)
elif score > 70:
print(“あなたの評価はBです”)
else:
print(“あなたの評価はCです”)

More Related Content

Recently uploaded

Recently uploaded (8)

MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 

Featured

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn
 

Featured (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

K3Python講座2018 - 第1回資料