pythonの特徴
- スクリプト言語
- 可読性が高い
- ライブラリが豊富
- オブジェクト指向言語
1. スクリプト言語
コンパイルをしない、コンパイラーがいらない
2. 可読性が高い
少ない行数でプログラムがかける
3.ライブラリが豊富
ライブラリ(便利道具セット)がネット上に沢山ある
4. オブジェクト指向言語
操作手順より操作対象に重点を置く
pythonの計算演算子
演算子 | 解説 | 利用例 | 例の結果 |
---|---|---|---|
x + y | xとyの足し算 | 3+5 | 8 |
x - y | xとyの引き算 | 5-2 | 3 |
x * y | xとyの掛け算 | 2*3 | 6 |
x / y | xとyの割り算 | 10/5 | 2 |
x // y | xとyの割り算で 小数点以下切り捨て |
10//3 | 3 |
x % y | xをyで割ったときの余り | 10%3 | 1 |
x**y | xのy乗 | 2**3 | 8 |
abs(x) | 絶対値 | abs(-8) | 8 |
int(x) | xの整数に変換 | int(3.14) | 3.0 |
float(x) | xを浮動小数点数に変換 | float(x) | 3.0 |
round(x[,n]) | xをnの位で四捨五入 | round(3.6) | 4 |
スクリプトから計算を行う時の注意点
以下のようなファイルを作ったとする
30 + 5
python3 calc-ng.py
何も表示されない
理由
計算処理はしたが出力処理はしていない
->print()を使って出力する必要がある
print(30 + 5)
python3 calc-ng.py
35
コメント
人間だけが読む文章
主にメモ書きとして使われる
pythonはコメントの部分は何も実行しない
# 先頭に[#]をつけるとその行がコメント扱いになる
# ここの部分がコメントです
# print(2*2)
print(4+4)
print('abc')
python3 comment.py
8
abc
変数
メモリの中に好きな(若干のルールあり)
名前をつけてデータ(文字とか数字とか色々)
を記憶しておくための領域
->よくなんか入れておくための箱
という説明をされる
変数のルール
1.数字から始まる名前はng
2.アンダースコア(_)から始まる名前はng
3.特別な意味を持つ予約語単体はng
3についての補足
特別な意味を持つ予約語
既にプログラムとして使われている言葉
for True False or if whileなど
変数に関する個人的な補足
個人で開発なら別に問題ないけどできるなら変数名は長くてもわかりやすい名前に(長いの面倒という気持ちはわかるよ!)
例:税込み価格を計算するプログラム良くない例x = 1.1 <-税率のつもり f = 100 <-花の単価のつもり cf = 5 <-花の個数のつもり ta = f*cf*x <- 合計金額のつもり
できたらこうしたほうが良いtax = 1.1 flower = 100 countOfFlower = 5 totalAmount = flower*countOfFlower*tax
シングルクォートとダブルクォート
基本的な違いは特になし
print('hello,world')
print("hello,world")
hello,world
hello,world
使い分けるタイミング
出力したい文章のうちどちらかが使われている時
print(" I'm tanaka ") <-ダブルで囲む
print('he said "come on"') <-シングルで囲む
じゃあ、どっちも文章に含んでいたらどうすればいいの
↓
エスケープシーケンス
\
や¥
を記号の前に置けば良い
" He said \" I can\'t play piano \" "
He said " I can't play piano "
変数、定数をいれて文章を出力
- カンマ区切りのprint()
-
+
を使う方法 -
.format
を使う方法
1.カンマ区切りのprint()
print(値1,値2,値3.....)
値のところに文字列とか変数とか入れる
old = 18
print("私は",old,"歳です")
私は 18 歳です
間があくのは仕様。英語なら特に問題ないが、日本語だと少し困る
2.+
を使う方法
old = 18
print("私は" + str(old) + "歳です")
私は18歳です
変数、定数が数字だったらstr()を使う必要がある
3. .format
を使う方法
"文字列".format(値0,値1,値2...
)
値0,値1に変数とか定数とか入れてみる
とにかく使ってみる!
per_inch = 2.54
inch = 24
cm = inch * per_inch
print("{0}インチ={1}センチ".format(inch,cm))
24インチ= 60.96インチ
名前付き引数
こっちのほうがわかりやすいと思う
name = "田中"
age = 22
job = "プログラマー"
print("私は、{name}です。{}歳で{}をやっています。".format(name = name,age = age, job = job))
私は田中です。22歳でプログラマーをやっています。
ユーザーからの値を受け取ろう
input("待機画面に表示する文
")
name = input("what's your name? ")
print("hello,{0}!".format(name))
待機画面が表示される
what's your name?
入力する
what's your name? 田中
入力が完了したら、Enter
をおすと次の処理に行く
hello,田中!
注意点
input()で受け取った値は全部文字列
として受け取る
計算とかで使う場合はint(),もしくはfloat()を使う必要がある
per_inch = 2.54
user = input("何インチ?:")
inch = float(user)
cm = inch * per_inch
#結果を表示
desc = "{0}インチ = {1}インチ".format(inch,cm)
print(desc)
何インチ?:30
30 インチ = 76.2センチ
制御構文
何かしらの条件によってプログラムの流れを変えることのできる機能
条件分岐 IF文
if(比較式):
#比較式が成り立つ時の処理
else:
#比較式が成り立たない時の処理
#elseは別に書かなくてもプログラムは動く
score = 90
if(score >=80):
print("合格")
else:
print("不合格")
合格
scoreが80以上
だったので合格と表示された
演算子 | 説明 |
---|---|
a == b | aとbが等しい |
a != b | aとbが等しくない |
a > b | aがbより大きい |
a >= b | aがb以上 |
a < b | aがbより小さい |
a <= b | aがb以下 |
論理演算
AかつB
,AまたはB
とかそういうの
用語 | 論理演算 | 説明 |
---|---|---|
AかつB | A and B | A,Bどちらも成り立つ |
AまたはB | A or B | A,B少なくともどちらが成り立つ 要するにどっちか成り立てばok |
Aではない | not A | Aが成り立たない |
score
が50点以上かつ79点以下か
->scoreは50点以上79点以下か
score = 60
if ((50 <= score) and (score <= 79)):
print("rank b")
rank b
両方成り立つのでrank b
と表示される
weather = "cloudy"
rainyPercent = 80
if(weather == "rain" or rainyPercent >=60):
print("傘を持つ")
else:
print("傘を持たない")
傘を持つ
片方が成り立つので傘を持つ
と表示される
Classification = "child"
if(not (Classification=="adult")):
print("子供料金:1000")
else:
print("大人料金:2000")
子供料金:1000
Classification
はadult
ではないので子供料金:1000
ifの中にifを入れることができる
if(条件式1):
#条件式1が成り立つ時
if(条件式2):
#条件式2が成り立つ時
else:
#条件式2が成り立たない時
else:
#条件式1が成り立たない時
number = 80
if(number % 2 == 0):
if(number >=50):
print("numberは50以上の偶数")
else:
print("numberは50より小さい偶数")
else:
print("numberは奇数")
numberは50以上の偶数
順に条件を判定していくelif
ifの中のifと似ているとすこし違う
if(条件式1):
#条件式1が成り立つ時の処理
elif(条件式2):
#条件式2が成り立つ時の処理
:
else:
#すべての条件式に当てはまらなかった時の処理
今はいい感じの例が浮かばないのでまた後日編集
pass
条件式が成り立つ時に何もしない場合はpassと書かないとエラーが起きる
havingPassport = "no"
if (havingPassport == "yes"):
pass
else:
print("注意する")
パスポートもっていなかったら注意する
繰り返し while構文
条件を満たすまでずっと同じ処理を繰り返す
while(条件式):
# 繰り返し処理
else:
# 繰り返し処理後の処理
# elseは書かなくても動く
count = 1
while(count <= 10):
print(count)
count += 1
else:
print("もういいかい?")
1
2
3
4
5
6
7
8
9
10
もういいかい?
ずっと繰り返したい
条件式が成り立つ -> trueである時にwhileの中の処理が動く
つまり、ずっと条件式がなりたてばずっと繰り返す
例は別の場所で書きます
繰り返し中止break
,継続continue
break
繰り返しの処理をやめて別の処理に行く elseの部分にはいかない
count = 0
while(True):
if(count == 10):
break
print(count)
count += 1
print("countが10になったので数えるのやめます")
0
1
2
3
4
5
6
7
8
9
countが10になったので数えるのやめます
count = 0
while(count < 10):
count+=1
if(count % 2 == 0):
continue
print(count)
1
3
5
7
9
繰り返し for構文
for ループ変数 in 範囲:
# 繰り返す処理
else:
# 繰り返し
ループ変数
変数のルールに従っていればなんでもok
大体i
とかが使われる
範囲
色々あるから実際に見ていこう
for i in range(10):
print(i)
0
1
2
3
4
5
6
7
8
9 #0~9まで
for i in range(0,10):
print(i)
0
1
2
3
4
5
6
7
8
9 #0~9まで
i+=1なんてどこにも書いてないけど、コンピューターが勝手にやってくれる
for i in range(0,10,1):
print(i)
0
1
2
3
4
5
6
7
8
9
for i in range(0,10,2):
print(i)
0
2
4
6
8
ステップ値はループ変数iにいくつ数を足すかということ
range(開始値,終了値)の書き方だとステップ値が勝手に1になってるということ
elseが動く時
主に以下の2つ
- そもそもwhileを動かさなかった時
- breakで繰り返しを抜けなかった時(つまりbreakを使うとelseの部分は動かない)
number = 8
while(number < 8):
print("ご飯を食べる")
i+=1
else:
print("お腹いっぱいです")
お腹いっぱいです <-そもそもnumberが8以上だったのでelseの部分が表示される