🐍

Python基礎

2023/05/10に公開

[!Important]+ Goals

  • 複数の値を持つタイプ、関数、クラスについて理解する。
  • 効果的なコードが記述できる

[!abstract]+ Curriculum

  1. はじめに
  2. 複数の値を持つタイプ
  3. リストタイプ
  4. 辞書タイプ
  5. for 文によるループ処理
  6. for 文
  7. for 文の応用例
  8. 関数
  9. 関数とは
  10. 関数を作って理解しよう (独自関数) > 3.
  11. 内蔵関数
  12. クラス
    1.クラス
    2.クラスを作って理解しよう
  13. よく使うメソッド
  14. ライブラリ
  15. 添削問題

はじめに

複数の値を持つタイプ

リストタイプ

  • del list[index] : 要素の削除
  • list.append(), list.expend() : シングル、マルチ要素を追加します。

辞書タイプ

  • del dic[key] : 要素の削除
  • dic['new key'] = 'value'

For 文によるループ処理

For 문

For お問い合わせの応用例

  • リスト内ループ
  • ループウィズディック: キールル취득해앙

関数

関数とは

関数を作って理解しよう (独自関数)

組み込み関数

  • print 함수 : sep, end
print(出力させる値1, 出力させる値2, ... ,  sep=' ', end='\n')
# sep은 출력하는 값을 무엇으로 나눌 것인가.
# end는 마지막에 출력하는 값
  • enumerate : リストのインデックスと要素を同時に返します。
list_ = ["a", "b"]
for index, value in enumerate(list_): # listのインデックスと値を取得する
    print(index, value)

クラス

クラス

クラスを作って理解しよう

# 自動販売機クラスの定義
class VendingMachine :
    def __init__(self, name, price) :
        # ジュースの名前
        self.juice_name = name
        # ジュースの価格
        self.price = price
        # 投入金額
        self.deposit_money = 0
        
    # お金を投入した時のメソッド(動作)
    def input_money(self, money):
        #投入した金額をdeposit_moneyに反映させてください
        self.deposit_money += money
        
    # ボタンを押した時のメソッド(動作)
    def push_button(self):
        # 投入金額がジュースの価格より大きいならジュースを購入します
        # 購入時には、投入金額をジュースの価格分減らしてください
        if self.deposit_money >= self.price:
            self.deposit_money -= self.price
            
            return self.juice_name + "を購入しました。残金" + str(self.deposit_money)+"円です"
        # 購入できない場合は、不足金額をdiff変数に代入します
        else:
            diff = self.price-self.deposit_money
            return str(diff) + "円不足しています"


# インスタンス作成(コーラの自販機を作成)
coke = VendingMachine("コーラ", 160)

# お金を投入します
coke.input_money(100)
# ボタンを押します
result = coke.push_button()
print(result)

# お金を投入します
coke.input_money(100)
# ボタンを押します
result = coke.push_button()
print(result)

よく使うメソッド

  • str 型のメソッド
    • .upper() : 文字列を全て大文字で出力します。
    • .count(' 要素 ') : 文字列内の要素の数を出力します。
    • .format(argument 1, argument 2, ...) : 文字列に変数を入れることが可能。引数は文字列でなくても OK。
fruit = "banana"
color = "yellow"

# 「banana is yellow.」と出力してください
print("{} is {}.".format(fruit, color))
  • リスト型メソッド
    • .index(element) : 要素のインデックスを出力します。要素が重複している場合、indexが早いものだけを表示。
    • .sort()
    • .reverse()
  • 辞書型メソッド
    • .items() : キーと値、両方を格納します。

ライブラリ


添削問題

倍数と最小公倍数

# 関数Ai_demyの中を作成してください

def Ai_demy(numbers):

    # ここに処理を記述してください

    for number in numbers:

      if number % 7 == 0 and number % 5 == 0:

        print(str(number)+':Aidemy')

      elif number % 5 == 0:

        print(str(number)+':Ai')

      elif number % 7 == 0:

        print(str(number)+':demy')

      else:

        print(number)

  

# データの定義

numbers = list(range(1,36))

# 関数の実行

Ai_demy(numbers)

バイナリサーチ

# 関数binary_searchの中を作成してください

def binary_search(numbers, target_number):

  find_index = 0

  while True:

    mid_index = len(numbers) // 2

    # mid_indexが正解の場合

    if numbers[mid_index] == target_number :

      find_index += mid_index

      print('{}は{}番目にあります'.format(target_number, find_index+1))

      break

    # 小さい場合

    elif numbers[mid_index] < target_number :

      numbers = numbers[mid_index:]

      find_index += mid_index

    else :

      numbers = numbers[:mid_index]

  

# 探索するデータ

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

# すべての要素に対してバイナリーサーチの実行

for number in numbers:

  binary_search(numbers, number)

Discussion