🐍
Python基礎
[!Important]+ Goals
- 複数の値を持つタイプ、関数、クラスについて理解する。
- 効果的なコードが記述できる
[!abstract]+ Curriculum
- はじめに
- 複数の値を持つタイプ
- リストタイプ
- 辞書タイプ
- for 文によるループ処理
- for 文
- for 文の応用例
- 関数
- 関数とは
- 関数を作って理解しよう (独自関数) > 3.
- 内蔵関数
- クラス
1.クラス
2.クラスを作って理解しよう- よく使うメソッド
- ライブラリ
- 添削問題
はじめに
複数の値を持つタイプ
リストタイプ
- 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