見出し画像

36歳が初めてプログラムを勉強してみる(19日目)

今日もpaizaでPythonの勉強しました。

今日学んだことです。

【学んだこと】

・スコープについて学んだ
・関数とループを合わせて使ってみた

次のようなことをやりました。

【やったこと】

●スコープについて学んだ

今回はスコープについて学びました。
スコープとは、変数の有効範囲が決まっていることです。
関数の中と外では同じ名前の変数は別物として扱われます。

変数の種類は「ローカル変数」、「グローバル変数」があります。
ローカル変数:関数内だけで使用できる変数
グローバル変数:関数内でも関数外でも使用できる変数

【スコープの範囲】

def 関数名():
 変数A = "文字列" ← ローカル変数

変数A = "文字列" ← グローバル変数

※上記の変数Aは、同じ変数Aですが、別物として扱われます。

それでは実際のコードを見ていきましょう。

--コード--
msg = "bye"

def hello():
  msg = "hello"
  print(msg)
  
hello()

print(msg)

--出力結果--
hello
bye

このコードでは、まず「msg」という変数に「bye」という文字列を代入しています。

そして、関数定義で同じ「msg」という変数に「hello」という文字列を代入して出力しています。

結果、関数helloを呼び出した値は、「hello」となり、print関数で呼び出した値は、「bye」が出力されており、スコープによって同じ変数でも異なる結果が出たことが確認できます。

関数とループを合わせて使ってみた

続いては、今まで学んだ関数とループを合わせてみました。

【関数に引数と戻り値を作る方法】

def 関数名(引数):
 処理させたいプログラム

for 変数 in range(繰り返しの回数):
 関数名

それでは実際のコードを見ていきましょう。

--コード--
import random

def kansu():
   num = random.randint(1,10)
   if num < 3:
       print("習慣")
   elif num < 6:
       print("セルフコントロール")
   else:
       print("計画")

list1 = ["習慣", "セルフコントロール", "計画"]

for i in range(0,3):
   kansu()

--出力結果--
セルフコントロール
計画
習慣

このコードでは、関数名「kansu」を作成し、その関数の中でランダムモジュールを使ってランダムな数字を「num」変数へ代入し、if文を使っています。

if文の内容
3以下:習慣を出力
6以下:セルフコントロールを出力
それ以外:計画を出力

その後、for文で3回「kansu」を呼び出しています。
結果、3回ランダムな数字の結果により、出力されるものが変わっています。

本日はここまでです。

以上です。ありがとうございました。

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