パスワードを忘れた? アカウント作成
15652432 journal
日記

masakunの日記: 第6章 オブジェクト(すっきりPython 243~278頁) 2

日記 by masakun

〇すべての値はオブジェクト

「データ」と「データに関する処理を行う関数」をひとかたまりにしたものをオブジェクトという。Pythonにおけるあらゆる値はオブジェクトである。

オブジェクト.メソッド名(引数…)
print('{}さん、こんにちわ'.format('山田'))

オブジェクトが従える関数は型で決まる(今まで型が違うからその関数は使えないって散々怒られたからそこは分かる)。

それぞれの型がどのようなメソッドを持つかは公式サイトにドキュメントがある。

strオブジェクトをメソッドに活用した血液型占い
userinfo = input('名前と血液型をカンマで区切って1行で入力>>')
[name, blood]=userinfo.split(',')
blood = blood.upper().strip()
print(f'{name}さんは{blood}型なので大吉です')
実行結果
名前と血液型をカンマで区切って1行で入力>> 名無し,大
名無しさんは大型なので大吉です

( ゚д゚)ハッ!これのどこが占いなの?編集者呼び出して小一時間問い詰めたい

関数さえオブジェクト
「関数定義とは、関数名と同じ名前の変数を準備し、そこに関数オブジェクトを代入する行為なのです。また関数名()による関数の呼び出しは、変数内のオブジェクトを取り出し、処理を起動して、戻り値に化ける動作です」

def add(x, y): #関数オブジェクトを定義し、変数 add に代入
        return x + y

type(add) #変数 add の型を調べる
newadd = add #変数に代入されたオブジェクトは別の変数にコピーできる
print(newadd(4,5)) #コピーされた関数オブジェクトを起動
実行結果
9

型によってメソッドは決まっているが、これは設計図(クラス)に基づいている。

変数名=クラス名()

int_value1 = 0
int_value2 = int()
int_value3 = int(9)
list_value1 = []
list_value2 = list()
list_value3 = list(('松田','麻木'))

このクラスも自分で定義することができるが、すべての人に必要となる知識ではないため省略します。

6-7章はざっと紹介しただけで授業は終わって(7章にいたってはモジュールの呼び方と例外処理のフォーマットだけ)、いきなり練習問題の数当てゲームを作らされ、そのあとCUIの双六ゲームの課題が出たのだが、双六にいたってはまったくやる気がでない。ゲームを作って喜ぶのガキだけじゃなくて?回想録としてどういう問題だったのか、ここで紹介しておきたいのだが課題のプリントを忘れてきたようだwww

  • by Anonymous Coward on 2022年05月15日 11時08分 (#4249271)

    社会復帰後のリハビリだと思ってやるといい。
    でもすごろくゲームってフルオートでもいいからやる気おきんな。

    ここに返信
  • by Anonymous Coward on 2022年05月15日 17時11分 (#4249362)

    それのみでモノとして完結してて、インタラクティブで、
    何するモノかわかりやすく、必要な言語機能を使用していれば良い。
    子供に学ばせる必要もある。課題としちゃ便利なんだろ、こういうのは。

    本当に必要な物なら大概は既存品があるし車輪の再生産でもっとやる気でねぇだろ?どうせ。
    あと実用に寄せると本題じゃない部分の作り込みも問題になってしまう。
    明らかに練習用の課題であればこそ雑な物でも許される。
    ゲームとしちゃ子供にとっても子供騙しだろこの手の課題って。

    ここに返信
typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...