Python100本ノック 7本目~10本目
Python100本ノック、7本目から10本目までをやりました。
7本目:FizzBuzz問題の内、整数nまでの"z"の個数を計算し表示せよ
条件:if文
とfor文
を使用してはいけない。
for文とif文を使わないっていう条件が、やっぱり難しかったです。
//演算子
小数点以下を切り捨てた割り算を行う(割り算の整数部分の結果を出す)
8本目:為替自動換算クラスの作成
問題:日本円をドルとユーロに換算するクラスを作成せよ。
条件:
- 1ドル=109円、1ユーロ=129円で換算(2018年5月8日時点)
- クラスの引数に日本円を入力して、その後その値を各通貨に換算できるようにする。
Pythonのクラス:継承無しの場合は、class a()のように末尾に()を付けなくてOK。
付けても動作はする模様。
Pythonのコンストラクタ:def __init__(self)
※markdownだと、「_」は「\_」と書かないとダメなんですね...。
※インラインのコード表示なら、「_」で良いんですねー。
9本目
問題:キャラクターのステータスを登録し、互いに攻撃することができるクラスを作成せよ。
条件:
- キャラクターは名前、体力の現在値、体力の最大値、攻撃力、防御力の
5つのパラメータを持っており、いつでも参照することができる。 - キャラクターは別のキャラクターを攻撃して、相手の体力を
自分の攻撃力(-相手の防御力)分だけ減らすことができる。
特に詰まるところなく進められました。
10本目
問題:整数Xの各桁の数字の和をf(X)としたとき、Xがf(X)で割り切れる場合、
X はハーシャッド数である。整数Nが与えられるので、ハーシャッド数かどうか判定せよ。
記事では、str(整数N)
の後、list()
やmap()
を組み合わせてsum()
を使っていました。
map()
の存在を知らず、思いつきませんでした・・・。
list([sequence])
引数にとったシーケンス型のオブジェクト(range(10), "ABC", (20, 18)など)を
リストに変換する。
シーケンス型のオブジェクトからリストを作成(list関数) - リスト - Python入門map(function(or lambda), sequence_object)
1つの要素に対する処理をリスト全体に対して行なってくれる。
Python の map, filter, reduce とリスト内包表記 | すぐに忘れる脳みそのためのメモ
【Pythonステップアップ!】高階関数mapの便利な使い方 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
コツコツ進めていきたいと思います・・・!