見出し画像

python 学習2日目メモ【pythonの基本】

python 学習2日目メモ

2日目は主にpythonの基本です。

詳しくみていきます。

変数宣言

用語メモ

変数には型(タイプ)があります。

int型・・・整数のこと
str型・・・文字列のこと

こんな感じ javascriptとかのようにvar とかをつける必要はない。画像2


typeも自動で認識してくれてる。

何のタイプか分からないときは、type関数を使ってprintを実行すれば、型も出してくれる。

画像3


例えばここにint型のnumが存在する。その中にnameというstr型のものを入れて出力すると、画像4

str型に変わる。画像5


型変換もかんたんにできる。

例えば

画像6

nameをint型ではなく文字列の’1’とします。


nameを文字列としてではなくて、int型にしてから
新しい new_num という変数に入れてくださいとやってタイプを見てみると、

画像7

int型で出力される。
このように型変換も簡単。

pythonは変数を宣言する前に
これはint型だよとかstr型だよとか宣言しなくていい

 デメリット バグになりやすい
 メリット 融通が効くのでプログラム開発がやりやすい

型の宣言方法

python3.6からは、コロンを置いてint型とか宣言することはできるが、書かなくてもいい。

型の記述があってもなくても一緒。型ほとんど宣言せずに使われていく。

画像8

変数宣言するときに、初めに数字を使うことはNG。SyntaxErrorとなる

ちなみにpycharmでは赤の波線はエラーのこと。

if文とかfor文とか、pythonがすでに予約している言葉に対しては、変数としては使えない

画像9

このようにif文に値を入れようとしても、エラーになる。

print

出力はこんな感じ。

画像10

カンマで区切ると、スペースで区切られて出力される。

数値

画像11

毎回毎回printを書いて計算式書くのは面倒なので、

terminalを使っていく。

terminalを開いて python と打つと、対話型シェルになる。

例えばこれで 2+2 とやってEnterを押すと、

画像12

4と表示される。
なのでいちいちprintを書かなくていいのでこれで進めていく。

画像13

数学と一緒で、()内を優先して計算したいときは()をつける。

割り算は / 。

画像14

割り切れないときはこうなる。

画像16

商の部分だけを求めたいときは // 。

画像15

割った余りを求めたいときは %。

画像17

掛け算はこう。

画像18

アスタリスク2つは冪乗(べきじょう)。**の後にかける回数をかく。

画像19


このように短くできる。

画像20

型を知りたいときはこう。
例えば整数の1の型が知りたいときはこうする。

画像21


1.6の型は float となる。
floatは浮動小数型なので1.何〜とかになる。

画像22


0.6は .6 と省略化できる

画像23


対話型シェルで変数に入れてみる。

対話型シェルでは、変数に入れてenterを押してもすぐには出力されない。

画像24

次の行で x と打ってenterを押すと このように変数の中身が5と表示される

画像25


変数同士の掛け算

今xに5が入っているので、yに10とやってみる。

画像28

x * yは50と表示される。


何も値を入れてないとき

今何も値を入れていないaを入力してenterを押してみる。すると

画像28

exceptionとして、aは定義されていませんと出る。

対話型シェルの場合は、すぐにこのようなエラーが出るので

トライアンドエラーしやすい。


round関数

下二桁で丸めてくれる関数もある。

画像29

対話型シェルを抜けるとき

exit() でenter 。または ctrl + D

画面を綺麗に消したいときは clear


数学関数(★★★これは便利★★★)


便利な数学関数というものがある。

terminalタブではなく、pythonファイルに記述する。

import math
これでmathというpythonのライブラリをインストールしますということ。

画像30

math.と打つ。.はmethodという。

ドットを押すと色々と数学関数がたくさん出てくる。

例えばこれは平方根
平方根なので、何と何をかけたら25になるか?というもの。

画像31

これをresultに入れてprintしてみると、

画像32

5と表示される。

logとかもできる。

画像33

log2をyに入れて、こちらをprintすると

画像34

このようにlog2の解なんかもすぐに出せる。

pythonはすでに数学関数が用意されているので自分で数学関数を作る必要がないので

mathをインポートすれば、mathのメソッドがあるので、使える。


logの問題を苦戦しながら紙で解いていた高校時代が懐かしい。これ使えば宿題は一瞬で終わりますな🤗

help関数

mathにどんなものがあるかはpythonのドキュメント見ればわかるけれども、
このようにhelp関数を出力してみると、

画像35

いろいろ出てくる。

画像36

コマンド上でわからなくなったらhelp関数で見てみるのもオススメ。

文字列

例えば変数にtestと入れてこれをprintするとtestと出ますが、
いちいち変数に入れると面倒なので、

画像36

例えばprintにhelloと入れても一緒。画像37

今’’で括ったけれども、これを””にしても大丈夫。

画像38

“”の中に’’を入れても出力可能。

画像39

‘ ’の中に’を入れる(例:don’tの’)のはNG。SyntaxError となる。

この場合どうするかというと、

画像40

「この’は文字列を囲むものではないですよ」という意味で’の直前に「 \ 」を入れる。するとエラーが消える。

画像41

また、この状況で例えば「say “I don’t know”」と出力したいときは

外側を’   ’で囲む。


この時、外側も””   ””で囲ってしまうと、どこからどこまでが文字列かわからなくなってしまうので、その場合は「 ”I don’t 」の「I」の 前に「 \ 」を入れて、don’tの’ の前にあった「 \ 」を消す。


改行

画像42

改行は「\n」。

 ※改行の注意点
 例えばここにWindowsのパスのようなものがある。

これをこのまま出力すると、改行されて表示されてしまう。画像43

これを防ぐには「r」を手前につける。

画像44

このrは、中の文字列を生のデータ(raw data)として扱ってくださいということ。

次。

改行を自動的に入れたいときは「””” “””」で囲む。

画像45


空白行を消したい時。

\を使うことで、次に書くコードはすぐ次の行から書いてくださいとすることもできる。

例えば一番上と下に##########と入れてみると、上と下に空白行が出てくる。画像46


こうすれば空白行は消えるが、ちょっと左側のプログラムが読みづらい。画像47


そういう時は、「\」を入れる。これは「次の行からすぐ初めてください」という意味。画像48

次。
文字列を演算子を使って連続で表示することもできる。

例えばHi.を書いて*3と書けば、 Hi.Hi.Hi.と表示される。+で連結表示もできる。
画像49

+なしでこのようにしても連結表示できる。画像50

‘ ’で囲うものを「リテラル」と呼ぶ。このリテラルは、一旦変数に入れたら、連結表示できない。例えば、変数とリテラルを連結することはできない。SyntaxError となる。画像51

このエラーを解消して連結表示させたい時は「+」を必ず入力する。画像52

このように+なしで使う場面としては、長い文字列をリテラル同士このように表示して、見やすく表示する場面など。画像53


()は中身が文字列ですよということなので、()をなくして、すぐ次の行から初めてくださいという「\」を入れると、こちらも並んで表示される。画像54

\を使わずに、()に入れて綺麗に書いたほうが見やすいので人気。


文字列のインデックスとスライス

変数内の文字のうち、先頭の文字だけを出力したい時とかに使う。


indexは0から始まる。word[0]と書く。最後の文字だけを出力したい時はword[-1]
画像55

スライス

pythonにはスライスというものがある。スライスとは省略のこと。
:を使う。

例えば0:2 ゼロから2とやると0,1,2の2の手前まで出力される。画像56

2:5とやるとthoとなる。画像57

0を省略することもできる。画像58

最後までというのも省略できる。2番目から最後までとやりたい場合にはこうする。画像59


100とするとindexがありませんよとエラーが出る。

書き換え

今wordにpythonと入っているけれど、一番初めの文字を例えばjにして、jythonにしたいとき。画像61

こうするとエラーになる。
文字列のインデックスには代入できない。

この場合どうするかというと、

j + 2番目から最後までをコピーしてから新たにまた代入する、という方法でやる。
画像62

ちなみに省略(スライス)する時は:を使ったけど、[:]とすると全てを出力する画像63

len()関数

indexの長さを求めることができる。このようにすると6と出力される。画像64

文字のメソッド

例えばこれはこのように出力される。画像65


メソッドとは、この、宣言したsにドット.をつけると、pycharmの場合だとこのように
便利なメソッドがありますよ、というのを表示してくれる。
画像66


例えばこれは「Myから始まっているかどうか」ということを調べるメソッド。画像67


これをis_startという変数に入れてあげて、printを実行してみると「True」と返ってくる。画像68

他のメソッドの紹介

これは「Mike」がどこにあるかを調べてくれるメソッド。
元の文字列から数えて、11番目にMikeという文字列があるということがわかる。
画像69


文章のなかにMikeが2つあるので、後ろから探してほしい時は、rをつける。画像70


これは「Mike」が何個あるかを調べてくれるメソッド。画像71


これは1番初めだけ大文字になるメソッド。画像72


これは全てを大文字にするメソッド。画像73


これは全てを小文字にするメソッド。画像74


文字列のリプレイス

これは「Mike」を「Nancy」に変えてくれるメソッド。画像75


文字の代入

文字の代入方法は2つ方法があります。
①formatメソッド・・・記述が少し長くなりがち。
②f-strings(Python 3.6以降)・・・記述が短く、且つ読みやすく書ける

ここでは②f-stringsのみ、ざっくり紹介します。

Python 3.6よりformatではなく、f-stringsが以下のように使えるようになりました。新しいスタイルになり処理も早いのでオススメです。

a = 'a'
print(f'a is {a}')

x, y, z = 1, 2, 3
print(f'a is {x}, {y}, {z}')
print(f'a is {z}, {y}, {x}')

name = 'Taro'
family = 'Tanaka'
print(f'My name is {name} {family}. Watashi ha {family} {name}')


型変換について
例えば1といれると、
画像75


このようになるが、文字列の1を表示させたい場合は、このようにシングルクオートで表示させればOK。画像76


またはstr()で囲ってもOK。画像77


例えば変数に入れて、typeでxのタイプを調べてみるとt、strつまり文字列型で出てくる画像78


そのほかにもfloatで3.14というものを文字列にしたい場合も、このようにやってあげればOK。画像79


例えばboolean型のTrueも、str型に変更することもできる。画像80


以上で2日目終了です。

続きは3日目で!

この記事が気に入ったらサポートをしてみませんか?