Paiza Python 入門編1プログラミングを学ぶ

PaizaでPython3の基本文法が完全無料なのでまとめました。

<a href=https://paiza.jp/works/python3/primer>Paiza Python3入門編</a>


##01Pythonとは?
・Pythonとは
素早く効果的にシステムを開発できるように用に作られた
汎用プログラミング言語

・Pythonで、なにができるのか
本格的なWebサービスの開発
機械学習・AI、科学計算、統計解析

・採用例
Google,Youtube,Instagram,Dropboxなど

・pythonの特徴
スクリプト言語で開発しやすい
様々な分野のライブラリがある。
-機械学習 -ビックデータ解析
誰が書いても、同じような書き方になる

<a href="https://ja.wikipedia.org/wiki/Python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E8%A3%BD%E5%93%81%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E4%B8%80%E8%A6%A7">Pythonの導入事例、採用事例</a>

<a href="https://docs.python.org/ja/3/reference/index.html">python言語リファレンス</a>

##02Pythonでプログラミングを書いてみよう

```lssson.py
#hello worldを表示する
print("hello")

```

<strong>間違いやすいポイント</strong>
- スペースが全角文字になっている。
- ダブルクォーテーションが全角文字になっている。
- 関数名が、全て半角小文字で記述されていない。
- （× Print、　○ print）

<strong>関数とは</strong>
Pythonでは、この「print」のような命令を「関数」と呼んでいます。

プログラミングでは、「print」のような関数で、コンピュータに対して動作を指示していきます。「print」と書くと、文字を表示するのだなとPythonが理解して、そのとおり動いてくれるのです。

プログラミング言語は、このような関数をたくさん持っています。各関数がどのように動作をするか、プログラミング言語ごとに決まっています。

##演習
1〜４「エラー箇所を正しく修正しよう」
5「指定された文字を出力しよう」

1.ダブルクォーテーション(")が全角

```lesson.py
print(”hello paizaラーニング”)

print("hello paizaラーニング")

```
2.1つ目のダブルクォーテーションが全角

```lesson.py
print(”hello paizaラーニング")

print("hello paizaラーニング")
```

3.2つ目がシングルクォーテーションになっている

```lesson.py
print("hello paizaラーニング')

print("hello paizaラーニング")
```

4.Printが大文字になっている

```lesson.py

Print("hello paizaラーニング")

print("hello paizaラーニング")

```

5.自分で書いてみよう

```lesson.py
print("ハロー、paizaラーニング")
```

##03コメントでプログラムを見やすく!

・「#」を使ってコメントを書こう!

・プログラムをコメントにすることをコメントアウトという

・shift + 7 = シングルクォート (')

・シングルクォート３つで、囲むことで、複数行のコメントアウトができる

```lssson.py
#コメント(この行は無視されます)
print("hello world")

#プログラムをコメントにすることを「コメントアウト」という
#print("hello world")

#シングルクォート３つで、囲むことで、複数行のコメントアウトができる
'''
print("hello world")
print("hello world")
print("hello world")
'''

```

##演習
1.「コメントアウトしてみよう」
最初の行をコメントアウトして。2番目の行だけ表示されるようにする

```lesson.py
#print("勇者は、荒野を歩いていた")
print("モンスターがあらわれた")
```

2.「コメントアウトしてみよう」
期待する出力値だけ、出力しよう

```lesson.py

print("勇者は、荒野を歩いていた")

#print("A:モンスターがあらわれた")

print("勇者は、すごい剣を手にいれた")

'''
print("A:ドラゴンがあらわれた")
print("A:魔王があらわれた")
'''

print("勇者は、世界を救った")

```

##04HTMLを表示してみよう

・html表示をする

```lesson.py

print("<h1>hello world</h1>")
print("<p><世界の皆さん")
print("<b>こんにちは</b></p>")

```

・複数行でprint関数を扱う
シンングルクォーテーション(')3個で、複数行を扱うことができます。

```lesson.py

print('''<h1>hello world</h1>
<p>世界の皆さん、
<b>こんにちは</b></p>''')

```

・print関数で改行したくない場合
文字列を「,」で区切ります。
この場合、出力された文字列は、スペースで区切られます。

```lessson.py
print("<h1>hello world</h1>", "<p>世界の皆さん、", "<b>こんにちは</b></p>")
```

もうひとつの方法は、カッコの中に「, end=""」を追加します。

```lesson.py
print("<h1>hello world</h1>", end="")
print("<p>世界の皆さん、", end="")
print("<b>こんにちは</b></p>", end="")

```

・「,end="%"」とすると、「%」で文字が区切られる

```lesson.py
print("<h1>hello world</h1>", end="%")
print("<p>世界の皆さん、", end="%")
print("<b>こんにちは</b></p>", end="%")
```

##演習
1.「HTMLとして出力してみよう」

 ```lesson.py
print("<p>勇者は、荒野を歩いていた</p>")
````

2.モンスターを太字にしてみよう

```lssson.py
print('''勇者は、荒野を歩いていた
<b>モンスター</b>があらわれた''' )
```

##05変数を使えるようになろう

```lesson.py
player="勇者"
#変数にデータを代入した

print(player)
```

```lesson.py
player="戦士"
print(player + "は、荒野を歩いていた")
print(player + "は、モンスターと戦った")
print(player + "は、モンスターを倒した")

```
<strong>変数の名前のつけ方</strong>
Pythonで変数(ローカル変数)の名前は、次のルールに従って付けます。

・最初の1文字目：英文字または、「_」(アンダーバー)
・2文字目以降　：英文字・数字「_」(アンダーバー)

変数名の例：
○ player　 1文字目が、英小文字
○ _weapon　 1文字目が、「_」(アンダーバー)
○ player01 2文字目以降に数字
○ redDragon 2文字目以降に英大文字

× 1player 1文字目に数字は使えない
× class 重複

なお、「print」のように、Pythonで使われる関数名などは、
あらかじめ予約されている言葉なので変数名には利用できない

<strong>文字列の中で変数を利用する方法</strong>
文字データを格納した変数と文字列は、「+」記号で連結できます。

```lesson.py
player = "戦士"
print(player + "は、荒野を歩いていた")
```

##演習

1.演習課題「変数の文字列を連結してみよう」

```lesson.py
player = "勇者"
print(player+"は、レベルアップした")
````

2.演習課題「間違いを修正してみよう」

```lesson.py
player1 = "勇者"
print(player1 + "の体力が回復した")
```

3.演習課題「間違いを修正してみよう Vol.2」

```lesson.py
team = "勇者と戦士" 
print(team + "の体力が回復した")
```

4.演習課題「変数の文字を出力する」

```lesson.py
player = "勇者"
print(player + "は、荒野を歩いていた")
print(player + "は、モンスターと戦った")
print(player +"は、モンスターをたおした")
```

##06サイコロを作ろう

・str()：数値を、数を表す文字に変換する関数です
https://docs.python.org/ja/3/library/functions.html#func-str


```lesson.py
number = 300
print("スライムが" + number + "匹現れた")
#これだと、表示されない
print("スライムが" + str(number)+"匹現れた")
#nnumberをstrで数字を文字データに変換する
```

<strong>ランダム関数を使おう</strong>
・random関数：0から1までの間で、ランダムな数値を返す

・randomモジュール <br>https://docs.python.org/ja/3/library/random.html

```lesson.py
import random
#ランダムモジュールをインポート
number=random.random()
print("スライムが" + str(number) + "匹現れた")
```

・randint関数：指定した引数の範囲で、ランダムな整数の値を返す


```lesson.py
#１〜100までの数値でランダムに表示されるようにしたい
import random
number=random.randint(1,100)
print("スライムが" + str(number) + "匹現れた")

#10〜２0までの数値でランダムに表示されるようにしたい
import random
number=random.randint(1,20)
print("スライムが" + str(number) + "匹現れた")

```

<strong>引数とは</strong>
関数の引数(ひきすう)とは、関数に与えるデータです。
引数は、関数に続くカッコの中に記述します。引数が複数ある場合は、「,」(コンマ)で区切ります。

<strong>引数の例</strong>
print(data)のdata 
str(number)のnumber 

<strong>戻り値とは</strong>
関数の戻り値(もどりち)とは、関数の処理結果のデータです。返り値と呼ぶ場合もあります。

random.randint(0, 10)という関数を呼び出すと、0から10までのランダムな数が戻り値となります。

##演習
1.「１〜６のサイコロを作る」

```lesson.py
import random
number=random.randint(1,6)
print("サイコロの目は"+ str(number) + "です。")
```
2.「モンスターに与えるダメージを出力」
55〜99のランダムな数字の範囲

```lesson.py
import random
number=random.randint(50,99)
print("モンスターに、"+ str(number) + "のダメージを与えた。")
```

##07演算子で計算してみよう

```lesson.py
number = 100 + 20 
print(number +30)
print(number)

+ たす
* 掛ける
/ 割る
% 余り

```

##演習
1.計算してみよう

```lesson.py
number = 1234*5678/2 
print(number)
```

2.変数で計算してみよう

```lesson.py
a = 31
b = 17
# 以下に、aとbのかけ算し、結果を出力するコードを書いてください
print(a*b)
```

3.余りを計算してみよう

```lesson.py
x = 8
y = 5
# 以下に、xをyで割ったときの余りを計算し、結果を出力するコードを書いてください
print(8%5)
```

4.カッコをつけて計算してみよう

```lesson.py
number=(1234+5678)*3
print(number)
```

##値段の計算をしてみよう

```lesson.py
apple_price=350
apple_num=5
print("りんごの単価" + str(apple_price) + "円")
print("りんごを買う数" + str(apple_num) + "個")
total=apple_price*apple_num
print("合計金額" + str(total) + "円")

#個数を１〜１０にしたいのでrandom関数をインポートする
import random
apple_num=random.randint(1,10)
print("りんごを買う数" + str(apple_num) + "個")
total=apple_price * apple_num
print("合計金額" + str(total) + "円")

#単価を100〜300にしたい
apple_price=random.randint(1,3)*100
print("りんごの単価" + str(apple_price) + "円")
total=apple_price * apple_num
print("合計金額" + str(total) + "円")
```

##演習

strで囲むの忘れていた

```lesson.py
# coding: utf-8
import random
number = random.randint(1, 10)	# 匹数 1 ～ 10
print("体重100キロのスライムが" + str(number) + "匹あらわれた")
# 合計体重 = 匹数 x 100
total=number*100
print("スライムの合計体重は"+str(total)+"キロです")
```

#09データの型を覚えよう

```lesson.py
number = 100 		#数値
strings = "paiza"	#文字列(ダブルクォーテーションで囲む)
print(number)
print(strings)

#文字同士を連結するときも + が使える

```lesson.py
strings ="ハロー" + "paiza"
print(strings)

#number = "100" + "30"
#print(number)

#str関数でnumber変数を文字列に変える
print(str(number)+strings)

#string型で一次的に変わっただけ
print(number + 20)
```

##演習
1.エラー箇所を正しく修正しよう

```lesson.py

x = 50
print(x - 10)

```

2.エラー箇所を正しく修正しよう2

```lesson.py
a = "モンスターが"
b = "あらわれた"
print(a + b)
```

3.エラー箇所を正しく修正しよう3

期待する値
0123456789

```lesson.py
a = "01234"
b = "56789"
print(a + b)
```