
python 学習2日目メモ【pythonの基本】
python 学習2日目メモ
2日目は主にpythonの基本です。
詳しくみていきます。
変数宣言
/
用語メモ
変数には型(タイプ)があります。
int型・・・整数のこと
str型・・・文字列のこと
\
こんな感じ javascriptとかのようにvar とかをつける必要はない。
typeも自動で認識してくれてる。
何のタイプか分からないときは、type関数を使ってprintを実行すれば、型も出してくれる。
例えばここにint型のnumが存在する。その中にnameというstr型のものを入れて出力すると、
str型に変わる。
型変換もかんたんにできる。
例えば
nameをint型ではなく文字列の’1’とします。
nameを文字列としてではなくて、int型にしてから
新しい new_num という変数に入れてくださいとやってタイプを見てみると、
int型で出力される。
このように型変換も簡単。
pythonは変数を宣言する前に
これはint型だよとかstr型だよとか宣言しなくていい
デメリット バグになりやすい
メリット 融通が効くのでプログラム開発がやりやすい
型の宣言方法
python3.6からは、コロンを置いてint型とか宣言することはできるが、書かなくてもいい。
型の記述があってもなくても一緒。型ほとんど宣言せずに使われていく。
変数宣言するときに、初めに数字を使うことはNG。SyntaxErrorとなる
ちなみにpycharmでは赤の波線はエラーのこと。
if文とかfor文とか、pythonがすでに予約している言葉に対しては、変数としては使えない
このようにif文に値を入れようとしても、エラーになる。
print
出力はこんな感じ。
カンマで区切ると、スペースで区切られて出力される。
数値
毎回毎回printを書いて計算式書くのは面倒なので、
terminalを使っていく。
terminalを開いて python と打つと、対話型シェルになる。
例えばこれで 2+2 とやってEnterを押すと、
4と表示される。
なのでいちいちprintを書かなくていいのでこれで進めていく。
数学と一緒で、()内を優先して計算したいときは()をつける。
割り算は / 。
割り切れないときはこうなる。
商の部分だけを求めたいときは // 。
割った余りを求めたいときは %。
掛け算はこう。
アスタリスク2つは冪乗(べきじょう)。**の後にかける回数をかく。
このように短くできる。
型を知りたいときはこう。
例えば整数の1の型が知りたいときはこうする。
1.6の型は float となる。
floatは浮動小数型なので1.何〜とかになる。
0.6は .6 と省略化できる
対話型シェルで変数に入れてみる。
対話型シェルでは、変数に入れてenterを押してもすぐには出力されない。
次の行で x と打ってenterを押すと このように変数の中身が5と表示される
変数同士の掛け算
今xに5が入っているので、yに10とやってみる。
x * yは50と表示される。
何も値を入れてないとき
今何も値を入れていないaを入力してenterを押してみる。すると
exceptionとして、aは定義されていませんと出る。
対話型シェルの場合は、すぐにこのようなエラーが出るので
トライアンドエラーしやすい。
round関数
下二桁で丸めてくれる関数もある。
対話型シェルを抜けるとき
exit() でenter 。または ctrl + D
画面を綺麗に消したいときは clear
数学関数(★★★これは便利★★★)
便利な数学関数というものがある。
terminalタブではなく、pythonファイルに記述する。
import math
これでmathというpythonのライブラリをインストールしますということ。
math.と打つ。.はmethodという。
ドットを押すと色々と数学関数がたくさん出てくる。
例えばこれは平方根
平方根なので、何と何をかけたら25になるか?というもの。
これをresultに入れてprintしてみると、
5と表示される。
logとかもできる。
log2をyに入れて、こちらをprintすると
このようにlog2の解なんかもすぐに出せる。
pythonはすでに数学関数が用意されているので自分で数学関数を作る必要がないので
mathをインポートすれば、mathのメソッドがあるので、使える。
logの問題を苦戦しながら紙で解いていた高校時代が懐かしい。これ使えば宿題は一瞬で終わりますな🤗
help関数
mathにどんなものがあるかはpythonのドキュメント見ればわかるけれども、
このようにhelp関数を出力してみると、
いろいろ出てくる。
コマンド上でわからなくなったらhelp関数で見てみるのもオススメ。
文字列
例えば変数にtestと入れてこれをprintするとtestと出ますが、
いちいち変数に入れると面倒なので、
例えばprintにhelloと入れても一緒。
今’’で括ったけれども、これを””にしても大丈夫。
“”の中に’’を入れても出力可能。
‘ ’の中に’を入れる(例:don’tの’)のはNG。SyntaxError となる。
この場合どうするかというと、
「この’は文字列を囲むものではないですよ」という意味で’の直前に「 \ 」を入れる。するとエラーが消える。
また、この状況で例えば「say “I don’t know”」と出力したいときは
外側を’ ’で囲む。
この時、外側も”” ””で囲ってしまうと、どこからどこまでが文字列かわからなくなってしまうので、その場合は「 ”I don’t 」の「I」の 前に「 \ 」を入れて、don’tの’ の前にあった「 \ 」を消す。
改行
改行は「\n」。
※改行の注意点
例えばここにWindowsのパスのようなものがある。
これをこのまま出力すると、改行されて表示されてしまう。
これを防ぐには「r」を手前につける。
このrは、中の文字列を生のデータ(raw data)として扱ってくださいということ。
次。
改行を自動的に入れたいときは「””” “””」で囲む。
空白行を消したい時。
\を使うことで、次に書くコードはすぐ次の行から書いてくださいとすることもできる。
例えば一番上と下に##########と入れてみると、上と下に空白行が出てくる。
こうすれば空白行は消えるが、ちょっと左側のプログラムが読みづらい。
そういう時は、「\」を入れる。これは「次の行からすぐ初めてください」という意味。
次。
文字列を演算子を使って連続で表示することもできる。
例えばHi.を書いて*3と書けば、 Hi.Hi.Hi.と表示される。+で連結表示もできる。
+なしでこのようにしても連結表示できる。
‘ ’で囲うものを「リテラル」と呼ぶ。このリテラルは、一旦変数に入れたら、連結表示できない。例えば、変数とリテラルを連結することはできない。SyntaxError となる。
このエラーを解消して連結表示させたい時は「+」を必ず入力する。
このように+なしで使う場面としては、長い文字列をリテラル同士このように表示して、見やすく表示する場面など。
()は中身が文字列ですよということなので、()をなくして、すぐ次の行から初めてくださいという「\」を入れると、こちらも並んで表示される。
\を使わずに、()に入れて綺麗に書いたほうが見やすいので人気。
文字列のインデックスとスライス
変数内の文字のうち、先頭の文字だけを出力したい時とかに使う。
indexは0から始まる。word[0]と書く。最後の文字だけを出力したい時はword[-1]
スライス
pythonにはスライスというものがある。スライスとは省略のこと。
:を使う。
例えば0:2 ゼロから2とやると0,1,2の2の手前まで出力される。
2:5とやるとthoとなる。
0を省略することもできる。
最後までというのも省略できる。2番目から最後までとやりたい場合にはこうする。
100とするとindexがありませんよとエラーが出る。
書き換え
今wordにpythonと入っているけれど、一番初めの文字を例えばjにして、jythonにしたいとき。
こうするとエラーになる。
文字列のインデックスには代入できない。
この場合どうするかというと、
j + 2番目から最後までをコピーしてから新たにまた代入する、という方法でやる。
ちなみに省略(スライス)する時は:を使ったけど、[:]とすると全てを出力する
len()関数
indexの長さを求めることができる。このようにすると6と出力される。
文字のメソッド
例えばこれはこのように出力される。
メソッドとは、この、宣言したsにドット.をつけると、pycharmの場合だとこのように
便利なメソッドがありますよ、というのを表示してくれる。
例えばこれは「Myから始まっているかどうか」ということを調べるメソッド。
これをis_startという変数に入れてあげて、printを実行してみると「True」と返ってくる。
他のメソッドの紹介
これは「Mike」がどこにあるかを調べてくれるメソッド。
元の文字列から数えて、11番目にMikeという文字列があるということがわかる。
文章のなかにMikeが2つあるので、後ろから探してほしい時は、rをつける。
これは「Mike」が何個あるかを調べてくれるメソッド。
これは1番初めだけ大文字になるメソッド。
これは全てを大文字にするメソッド。
これは全てを小文字にするメソッド。
文字列のリプレイス
これは「Mike」を「Nancy」に変えてくれるメソッド。
文字の代入
文字の代入方法は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といれると、
このようになるが、文字列の1を表示させたい場合は、このようにシングルクオートで表示させればOK。
またはstr()で囲ってもOK。
例えば変数に入れて、typeでxのタイプを調べてみるとt、strつまり文字列型で出てくる
そのほかにもfloatで3.14というものを文字列にしたい場合も、このようにやってあげればOK。
例えばboolean型のTrueも、str型に変更することもできる。
以上で2日目終了です。
続きは3日目で!