1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「実践力を身につけるPythonの教科書 」 まとめ chapter1 chapter2

Posted at

pythonの特徴

  1. スクリプト言語
  2. 可読性が高い
  3. ライブラリが豊富
  4. オブジェクト指向言語

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

スクリプトから計算を行う時の注意点

以下のようなファイルを作ったとする

calc-ng.py
30 + 5
実行
python3 calc-ng.py
結果

何も表示されない

理由

計算処理はしたが出力処理はしていない
->print()を使って出力する必要がある

calc-ok.py
print(30 + 5)
実行
python3 calc-ng.py
結果
35

コメント

人間だけが読む文章
主にメモ書きとして使われる
pythonはコメントの部分は何も実行しない

comment.py
# 先頭に[#]をつけるとその行がコメント扱いになる
# ここの部分がコメントです
# 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 " 

変数、定数をいれて文章を出力

  1. カンマ区切りのprint()
  2. +を使う方法
  3. .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文の書き方
if(比較式):
  #比較式が成り立つ時の処理
else:
  #比較式が成り立たない時の処理
  #elseは別に書かなくてもプログラムは動く
score = 90
if(score >=80):
  print("合格")
else:
  print("不合格")

Untitled Diagram.drawio (1).png

結果
合格

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点以下か

AかつB
score = 60
if ((50 <= score) and (score <= 79)):
  print("rank b")

名称未設定ファイル.drawio.png

結果
rank b 

両方成り立つのでrank bと表示される

AもしくはB
weather = "cloudy"
rainyPercent = 80
if(weather == "rain" or rainyPercent >=60):
  print("傘を持つ")
else:
  print("傘を持たない")

名称未設定ファイル.drawio (2).png

実行
傘を持つ

片方が成り立つので傘を持つと表示される

Aではない
Classification = "child"
if(not (Classification=="adult")):
  print("子供料金:1000")
else:
  print("大人料金:2000")

名称未設定ファイル.drawio (3).png

結果
子供料金:1000

Classificationadultではないので子供料金:1000

ifの中にifを入れることができる

こんな感じ
if(条件式1):
  #条件式1が成り立つ時
    if(条件式2):
      #条件式2が成り立つ時
    else:
      #条件式2が成り立たない時
else:
    #条件式1が成り立たない時

名称未設定ファイル.drawio (4).png

number = 80
if(number % 2 == 0):
  if(number >=50):
    print("numberは50以上の偶数")
  else:
    print("numberは50より小さい偶数")
else:
  print("numberは奇数")

名称未設定ファイル.drawio (5).png

結果
numberは50以上の偶数

順に条件を判定していくelif

ifの中のifと似ているとすこし違う

書き方
if(条件式1):
  #条件式1が成り立つ時の処理
elif(条件式2):
  #条件式2が成り立つ時の処理
:
else:
  #すべての条件式に当てはまらなかった時の処理

elifはいくら書いてもok
名称未設定ファイル.drawio (6).png

今はいい感じの例が浮かばないのでまた後日編集
pass

条件式が成り立つ時に何もしない場合はpassと書かないとエラーが起きる

havingPassport = "no"
if (havingPassport == "yes"):
  pass 
else:
  print("注意する")

パスポートもっていなかったら注意する

繰り返し while構文

条件を満たすまでずっと同じ処理を繰り返す

書き方
while(条件式):
  # 繰り返し処理
else:
  # 繰り返し処理後の処理
  # elseは書かなくても動く
10まで数える
count = 1
while(count <= 10):
  print(count)
  count += 1
else:
  print("もういいかい?")

名称未設定ファイル.drawio (9).png

結果
1
2
3
4
5
6
7
8
9
10
もういいかい?

ずっと繰り返したい

条件式が成り立つ -> trueである時にwhileの中の処理が動く
つまり、ずっと条件式がなりたてばずっと繰り返す
例は別の場所で書きます

繰り返し中止break,継続continue

break

繰り返しの処理をやめて別の処理に行く elseの部分にはいかない

countが10になったらやめる
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になったので数えるのやめます
1から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とかが使われる
範囲
色々あるから実際に見ていこう

range(回数)
for i in range(10):
  print(i)
結果
0
1
2
3
4
5
6
7
8
9 #0~9まで
range(開始値,終了値)
for i in range(0,10):
  print(i)

名称未設定ファイル.drawio (10).png

結果
0
1
2
3
4
5
6
7
8
9 #0~9まで

i+=1なんてどこにも書いてないけど、コンピューターが勝手にやってくれる

range(開始値,終了値,ステップ値)の例1
for i in range(0,10,1):
  print(i)
結果
0
1
2
3
4
5
6
7
8
9 
range(開始値,終了値,ステップ値)の例2
for i in range(0,10,2):
  print(i)
結果
0
2
4
6
8 

ステップ値はループ変数iにいくつ数を足すかということ
range(開始値,終了値)の書き方だとステップ値が勝手に1になってるということ

elseが動く時

主に以下の2つ

  1. そもそもwhileを動かさなかった時
  2. breakで繰り返しを抜けなかった時(つまりbreakを使うとelseの部分は動かない)
そもそもwhileを動かさなかった時の例
number = 8
while(number < 8):
  print("ご飯を食べる")
  i+=1
else:
  print("お腹いっぱいです")
結果
お腹いっぱいです <-そもそもnumberが8以上だったのでelseの部分が表示される
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?