shinoblog-manabu

Progate(プロゲート)を使って初歩の初歩からプログラミング勉強をはじめました。無料から有料バージョンへ以降しつつ、自分辞書として活用しています。なるべく私と同じ初心者目線を使い、各プログラミング内容を説明したいです。

【Python】スコープの例外

例外パターン1

f:id:shinoblog-manabu:20210506093555j:plain

関数内にて定義された変数。この変数に関数外からのアクセスをした結果・・。

 

 

例外パターン2

ローカルスコープの中からグローバル変数に書き込む方法

 

⤵️追加手段として・・

グローバルキーワードを使ってはっきりと変数を指定する事です

 

-注意点-

・関数の中でxを指定するとき

・関数の外で定義されている値を誤って変更しないようにする

 

 

 

関数内からグローバル変数に書き込む

f:id:shinoblog-manabu:20210506100859j:plain

スコープがない言語はプログラム内のあらゆる変数にアクセス可能。しかし・・!?

 

 

スコープがない言語には危険が伴う

プログラム内のxの値を誤って変更する可能性があり、エラー・予期しない結果を招くこともある。

 

今回は以上になります。お疲れ様でした。

 

 

参考:

Python超入門その14〜意外と重要なスコープを理解しておこう〜

Python超入門その14〜意外と重要なスコープを理解しておこう〜 | プログラミング教育ナビ

 

 

 

 

 

 

 

 

 

 

 

 

 

【Python】スコープという性質

スコープ

スコープの性質

 

変数を定義する。

すると、変数を読み書きできる範囲が決まる。

この範囲のことをスコープと呼ぶ。

 

スコープを理解するポイント1

変数を読む = その変数をスコープ内にて探すこと。

 

スコープを理解するポイント2

変数を書く = 変数の値を変更する、ということ。

 

つまり、、

読み書きができる範囲(スコープ)は、プログラミング内のどこで定義されているかによってニュアンスが変わってくる

上記理解する必要すると分かりやすい。

 

 

グローバルスコープ

関数の外に変数を定義した場合

スコープは変数はグローバルスコープに定義される

 

 

グローバルスコープの特性

プログラムのどこからでも読み書きができる

 

f:id:shinoblog-manabu:20210505174303p:plain

 グローバルスコープの簡単な例

 

上記3つの変数(x,y,z)は関数の内部を含めたどこからでも読み書きできる。それがグローバルスコープ。

f:id:shinoblog-manabu:20210505180129p:plain

 

f:id:shinoblog-manabu:20210505180133p:plain

 

 

 

--

ローカルスコープ

ローカルスコープとは

関数内のスコープ(範囲)を指

 

ローカルスコープを理解するポイント1

ローカルスコープにある変数をローカル変数

 

ローカルスコープを理解するポイント2

 プログラムはその変数が定義された関数内でしか変数を読み書きできない。

この概念を覚えておく。

 

参考:

docs.pyq.jp

 

 

 

今回は以上です。お疲れ様でした。

 

>>参考:【Python入門】スコープを理解してコードの読解力を上げよう

非常に参考になりました。Pythonにてコードを書くときは必須なんですね。了解しました。書きつつ慣れていこう。

blog.codecamp.jp

【Python】必須引数とオプション引数

必須引数とオプション引数

 

1.必須引数とオプション引数の違い

必須引数は今まで書いてきたコードのように
規定の値が設定されていること。
必須引数は指定しないとコンパイルエラーが起こる。
(独学プログラマーでは”例外を発生させる”という抽象的な文章になっているため注意)

 

 

2.オプション関数

オプション関数は関数を呼び出すとき省略できる。
その際、デフォルト値をしようする。

オプション引数の構文は下記の通り。

関数名 引数名=引数値

 

#例

f:id:shinoblog-manabu:20210505163950p:plain

必須引数とオプション引数

 

上記例の解説

  • 引数を渡さずに関数を呼び出した。
  • xはデフォルトの2を使用し、関数は5を返した。
  • 関数呼び出し時に引数として5を渡した。
  • 関数はデフォルト値ではない。xに渡された5が使われた。
  • 関数は3125を返した。

 

 

,必須引数とオプション引数両方の関数を定義できる

 

両方の関数を定義するにはルールがある。

必須引数を先に定義、その後にオプション引数を定義する。

 

f:id:shinoblog-manabu:20210505170050p:plain

順序を覚えよう

f:id:shinoblog-manabu:20210505170146p:plain

必須引数定義時にyに数値を代入、オプション引数定義時に2をリターン

 

 参考:オプション引数と必須引数|teratail

すっごく分かりやすくまとめられていた。

私の見ている参考書は無駄に言葉が省かれている。ネット検索し、ある程度言葉の補足をしないと理解できなかった。非常に助かりました。ありがとうございました。

teratail.com

 

 

 

 

今回は以上です。お疲れ様でした。

【Python】関数を再利用する

f:id:shinoblog-manabu:20210504164156j:plain

関数なしで記述されたプログラムの例

⬆️

xが偶数(even) もしくは奇数(odd)を出力する例

 

 

f:id:shinoblog-manabu:20210504165850j:plain

3回繰り返していることが問題だ

 

上記機能を改善するためには関数にまとめる必要がある。

同時に3回呼び出す、これをコードにてまとめると簡潔、そして読みやすくなる。

それが下記のコードになる。

 

 

f:id:shinoblog-manabu:20210504171008j:plain

短く読みやすいコードになった

 

 

 

短く綺麗なコードを書こう!

 

 

続く。

 

 

 

 

 

 

 

 

 

【Python】int float input

 

                         len関数はオブジェクトの長さを返してくれる

f:id:shinoblog-manabu:20210501100653j:plain

 

 

int,floatそれぞれの数値に注目

f:id:shinoblog-manabu:20210501101341j:plain

⤵️

 

f:id:shinoblog-manabu:20210501102122j:plain

 

 例外

f:id:shinoblog-manabu:20210502155614j:plain

Pythonが例外を発生させるパターン


 int もしくはfloat 関数にて、整数・浮動小数点数に変換できない引数を渡すとき

 右のコンソールにエラー表示されているのがわかる。

 

 

 

 

input関数

f:id:shinoblog-manabu:20210502160044j:plain

情報を集める組み込み関数、それがinput.

 

input関数は、文字列を引数として受け取り、それをシェル内でプログラムを使っている人に表示される。

 

1.ユーザーは、シェルに返事(レスポンス)を入力

2.レスポンスを変数(この場合は変数age)に保存

3.int関数を使用して変数ageを文字列から整数に変更

4.input関数は、ユーザーの入力をstrデータ型として受け取る。

5.受け取った文字列をintで変換し、ほかの整数と比較する

 

整数を取得した後どうなるか?

if-else文で決定される

 

どのメッセージをユーザー向けに表示するかをシェルに入力した内容に応じて、

 

ユーザーが21未満の数字を入力した場合、You are young!が出力カされる

ユーザーが21以上の数字を入力した場合、Wow,you are adult! が出力される

 

 

 

【Python】関数の戻り値【独学プログラマー】

前回の続きから・・

 

f:id:shinoblog-manabu:20210427102117j:image

 

関数の戻り値を変数に保存。

その変数をprint関数に渡した図。

 

ちなみに・・

※fは関数名

 

 

1.defキーワードを使う

defキーワードとは

note.nkmk.me

 

2.関数に名前をつける

defの後ろに関数名をつける

関数名を付ける際、複数の文字列の場合はアンダーバー※_ をつけるようにすること。

 

3.関数名に続くまるかっこ()の中には関数が受け取りたい引数を定義する。

 

重要

  • ()の後にコロンを付ける
  • 改行する
  • インデントを4つ付ける

 

上記の3つを達成し、その後のコードが関数定義とみなされる

 

f:id:shinoblog-manabu:20210427102117j:plain

もう一度画像を確認する。

 

上記の関数定義は下記。

return x * 8

 

 

戻り値

関数が呼ばれたときに

 

 

本書よりも上記サイトの方が、圧倒的な理解を得ることができた。

言っていることは同じなんだろうけど、時間をかけつつなんとか理解できました・・(^◇^;)

 

 

 

とりあえずは続く・・。。

 

 

 

 

 

 

 

 

 

 

 

続く。