「オブジェクト」を含む日記 RSS

はてなキーワード: オブジェクトとは

2023-09-27

anond:20230919141733

純粋プログラミング勉強したいだけならJavaでもC++でもRubyでもオブジェクト志向取り入れられてる言語なら何でもいいと思う。

潰しが効く云々でいうなら、一番求人数が多い言語勉強すればいいんじゃないか。

2023-09-22

Project Mugen とかいうただのクソカスゴミパクリゲーについて

『Project Mugen』という新作ゲームの開発情報が公開された。

https://m.youtube.com/watch?v=ZhdXubIXA-U&feature=youtu.be

これを見て俺は驚愕した。ワイヤーアクションビル街の空中を飛び回るモーションはただの『Marvel's Spider-Man』のパクリじゃないか

こんなパクリゲーで勝負するなんて中華企業自分アイデアを生み出す発想力がないのだろうか。終わっている。

でもよく思い出すとワイヤーアクションで移動するゲームは『SEKIRO: SHADOWS DIE TWICE』やコーエーテクモゲームスが公開した『進撃の巨人』があったな。

SEKIRO の公開は 2019 年、Marvel's Spider-Man は 2018 年、進撃の巨人は 2016 年、ということはつまり……

なんてこった!

オリジナル進撃の巨人で、スパイダーマンもSEKIROもProject Mugenも全部ただのパクリゲーだった!じゃあゲーム業界のもの自分アイデア勝負しないクソカスパクリ泥棒社会だったってことか!見損なった!

しかもProject Mugen の罪はそれだけではない。このゲーム、なんと『オープンワールドアクションRPG』なのである

ヤバすぎる……オープンワールドは全部 GTA Ⅲ のパクリだ。スカイリムも、今流行っている原神もゼルダティアキンも、ポケモンSV も GTA Ⅲ をパクっているんだ…… 

あの任天堂ですらパクリに手を染めているなんて、ゲーム業界の闇は深すぎる…… マジで終わっているのかもしれない……。

しかもだ。Project Mugen はオープンワールド都市マップ自動生成で作ったらしい。

これは罪が深すぎる!

オープンワールドマップ自動生成は『No Man's Sky』で1800京個の惑星を作るために開発された技術だ。あるいは、『The Matrix Awakens:An Unreal Engine 5 Experience』でも都市自動生成を開発していた。

こんなものまでパクるなんて、他人努力馬鹿にしているのか……。

いやまてよ、そもそもマップ自動で作るというアイデアは、ポケモン不思議のダンジョンシリーズのような「ローグライクゲームで使われる技術だ。そのオリジナル名前の通り1980年代からある『Rogue』だ。

ということは、ポケモン不思議のダンジョンも、Epic Gamesも Rogue をパクってんのか…… こいつら全員カス過ぎる…… ゲーム業界は本当に人格破綻しかいないらしい。

そしてRPG1981年の『ウルティマ』や『ウィザードリィ』のパクリだ。そもそもコンピュータRPGってのは、TRPGパクリだ。呆れてもう言葉が出ない。

Project Mugen の罪はまだまだある。Project Mugen ではシーンに配置されてるオブジェクトを掴んで動かしたり、敵にぶつけたりする機能があるらしい。

これは『ゼルダ冒険 ティアーズ オブ ザ キングダム』のウルトラハンドパクリだし、『SCARLET NEXUS』の念力のパクリだ!

そんでもって、物理演算エンジンゲームに組み込むアイデアは『リトルビッグプラネット』のパクリだ!ゼルダSCARLET NEXUSパクリ泥棒だ!

だいたい、Project Mugen はキャラクターセルルック(トゥーンシェーディング)な見た目からして、もう既にパクリだ。

最近ゲームだと原神も『BLUE PROTOCOL』もキャラクターの 3D モデルセルルック描写されているが、これは『GUILTY GEARシリーズパクリだ。

ていうかセルルックとは「アニメ画のような」という意味なのだからゲームなのにアニメをパクっている!

これは文化盗用だ!ゲーム業界の内部だけじゃなくて外からもパクってくるなんて、社会の悪だ!ゲームならゲームビジュアル勝負しろよ!

そんでもって、GUILTY GEAR とかスマブラとかの格ゲーって言われるジャンルは全部ストリートファイターパクリだ。

はあ。俺はゲームっていうのはどこを見てもパクリだらけの最悪の肥溜めなのが分かった。

こんなのは間違っている。ゲーム会社他人努力をパクらないで、オリジナリティ勝負しろ

ワイヤーアクションも、オープンワールドも、アクションRPGも、物理演算も、プロシージャル生成も、セルルックも、クロスプラットフォームも、レイトレーシングも、3Dアニメーションも、全部先駆者がいる。

オリジナルに敬意を払ってパクるのをやめろ!

みんなもパクリゲーをプレイするのはやめてくれ!

2023-09-19

anond:20230919114042

もうこのやりとりの時点でダメやん?

ダメじゃねえよ。要件を正確に記述できないならコードなんて書けるわけない。

空気読んでいい感じに読み取ってよというのを求めてるなら、仕様書すら書けないダメプログラマーってことだろ。

コンピューターの中では数字で日付は管理されててそれはJavaでは日付のオブジェクトとして表されるんだけど、「今週=現在の週の水曜日」を表すオブジェクトが欲しい

やったぞ

Javaの日付オブジェクトとして「今週の水曜日」を表すオブジェクトを返す関数を示してください。

java.time パッケージの LocalDate クラスや TemporalAdjusters クラス使用して、「今週の水曜日」の日付オブジェクトを取得できます

以下のコードは、現在の日付に基づいて今週の水曜日の LocalDate オブジェクトを返す Java関数です。

import java.time.DayOfWeek;

import java.time.LocalDate;

import java.time.temporal.TemporalAdjusters;

public class Main {

public static void main(String[] args) {

System.out.println(getThisWeeksWednesday());

}

public static LocalDate getThisWeeksWednesday() {

LocalDate today = LocalDate.now();

return today.with(TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY));

}

}

この関数現在の日付を取得し、それを TemporalAdjusters.nextOrSame(DayOfWeek.WEDNESDAY) メソッドに渡して、今週の水曜日の日付を取得します。今日水曜日である場合、それが返されます。それ以外の場合は、次の水曜日の日付が返されます

今日が週内のどの日であったとしても(木曜日金曜日であったとしても)その週の水曜日を表すオブジェクトを返す関数を示してください。

それには、今週の最初の日を求め、そこから水曜日までの日数を加算するアプローチ使用します。以下のコードでは、週の最初の日を月曜日仮定しています

import java.time.DayOfWeek;

import java.time.LocalDate;

import java.time.temporal.TemporalAdjusters;

public class Main {

public static void main(String[] args) {

System.out.println(getThisWeeksWednesday());

}

public static LocalDate getThisWeeksWednesday() {

LocalDate today = LocalDate.now();

LocalDate monday = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

return monday.plusDays(2);

}

}

このコードは、まず今日の日付を取得し、それから TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY) メソッド使用して今週の月曜日の日付を取得します。そして、月曜日から2日後の日付(水曜日)を取得するために plusDays(2) メソッド使用します。

anond:20230919113704

もうこのやりとりの時点でダメやん?

コンピューターの中では数字で日付は管理されててそれはJavaでは日付のオブジェクトとして表されるんだけど、「今週=現在の週の水曜日」を表すオブジェクトが欲しい

2023-09-14

医学部13浪目のとある一日

・起床(12時ごろ)

母親と飯を食う。

勉強(13時〜14時半過ぎ)

午後から勉強。演習をやる予定だったがなんとなくだるくなり、大森徹の最強講義を読む

ドラマ(15時半過ぎ〜16時半過ぎ)

母と科捜研遺留捜査相棒などを視聴する。普段相棒が終わったらコンビニに行き副業勉強に移るのだが、今日ニュース番組を見てダラダラした後孤独のグルメ再放送まで視聴してしまった。

コンビニ17時頃)

ドラマを見終えたタイミングコンビニに行くのがルーティンコーヒーオールドファッションドーナツを購入し腹ごしらえ。

副業(18時〜3時ごろ)

Mayaキャラクターゲーム内のオブジェクト作成したり、UEでステージや背景を製作する。酷いとアイデアだけ提示されてキャラクターオブジェクト作成ゲームシステム自体全て丸投げという案件もある。

影廊やFNAFがヒットしたこともあり、個人ゲームを開発したい、Steamリリースしてあわよくば稼ぎたいという人は多い。しかし、開発するためのスキルを全員が持ち合わせているわけではなく、この仕事は割と需要がある。正直、俺だってUEのチュートリアルから始めて必要な所はその都度ググったり本を参照して開発しているため飛び抜けたスキルがあるわけではないが、それすらやらずに一攫千金を夢見るアホは沢山いる。そしてそのようなアホが俺の客だ。

四年前から始めて、現在年収税金年金保険を取り除いて500万円にギリギリ届かないくらい。社会人の妹より稼げているので受験勉強に身が入らない。

・夜飯(4時ごろ)

親が寝静まったリビング岡田斗司夫の切り抜きなどを視聴しながら飯を食う。

勉強明け方

演習をやる予定だったが、副業疲れたため大森徹の最強講義単語帳の鉄壁ペラペラ。眠気に襲われたため就寝する。

anond:20230914165740

プレゼンのなかでもアピールされてたけどレイトレはまずはゲームに使われる。

バイオハザードヴィレッジiPhoneへの移植が予定されてるらしいし

前回の発表でWinゲームMacへの移植が簡易化されてデスストが移植されるという話もあったけど

Apple最近グラフィックに力を入れてゲーム方面を強化しようとしている感はある。

ニューラエンジンはいまでもiOSの各機能バリバリ使われていて、その精度の向上に繋がるだろう。

あと個人的願望だが、レイトレはAR3Dオブジェクトを表示するのとかにも使われそう。

となればApple Visionとの連携なんかも見据えているんじゃないかな。

2023-09-12

anond:20230912114305

キャラゲーである事と、コストの安さってのは大きいだろうな。

格ゲーに限らず、キャラクターを操るアクションゲームプレイヤーキャラクターになりきるという楽しさがあって、

ボタンひとつ押せば好きなキャラクターダイレクトアクションするという点で、コマンドゲームよりもなりきり感が圧倒的に高い。

また1対1というスタイル無駄情報量が少なく、より没入感が高くなるし、なにより自分の好きなキャラが常に画面で見えるというのもポイント高い。

コストの低さは、言わずもがな広大なフィールドを用意しなくてもいい、という部分でかなり有利。

極端な話、背景は真っ黒でも成立するのが格ゲーであって、それじゃあさすがに寂しいから各キャラ事にステージを用意はするけど、

別にそこにオブジェクトがあってそれを利用する必要もないから、ホントにただの壁紙的な物でしかない。

2023-08-25

test

https://chat.openai.com/share/c80d83ea-752b-4561-a162-7ea0bd116d56

CSVVBAエクセル

Option Explicit

Dim objExcel, objWorkbook, objWorksheet

Dim strFolderPath, strSourceFile, strTargetFile, strSearchString, strReplaceString

Dim intLastRow, intRow, intColumn

' Excelオブジェクト作成

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True

' フォルダパスファイル名の設定

strFolderPath = ".\" ' スクリプトと同じフォルダにあることを仮定

strSourceFile = "変更一覧.xlsx"

strTargetFile = "変更一覧.xlsx"

' Excelファイルを開く

Set objWorkbook = objExcel.Workbooks.Open(strFolderPath & strSourceFile)

' シートのコピー名前の変更

objWorkbook.Sheets("1月").Copy , objWorkbook.Sheets("1月").Index

objWorkbook.Sheets("1月 (2)").Name = "2月"

' セルの値の置換

Set objWorksheet = objWorkbook.Sheets("2月")

objWorksheet.Cells(1, 1).Value = Replace(objWorksheet.Cells(1, 1).Value, "1月", "2月")

objWorksheet.Cells(2, 7).Value = Replace(objWorksheet.Cells(2, 7).Value, "2023/2/14", "2023/3/14")

' 最終行の取得

intLastRow = objWorksheet.Cells(objWorksheet.Rows.Count, 1).End(-4162).Row ' xlUp

' 値のクリア

For intRow = 8 To intLastRow

For intColumn = 1 To 6

objWorksheet.Cells(intRow, intColumn).ClearContents

Next

Next

' テキストファイルの読み込み

Dim objFSO, objTextFile, strContents, arrLines, arrFields, strNewContents

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile(strFolderPath & "変更一覧.txt", 1)

strContents = objTextFile.ReadAll

objTextFile.Close

' フィールド区切り文字カンマに設定してデータを分割

arrLines = Split(strContents, vbNewLine)

For Each strContents In arrLines

arrFields = Split(strContents, ",")

For Each strContents In arrFields

If IsNumeric(strContents) Then

strNewContents = strNewContents & "'" & strContents & ","

Else

strNewContents = strNewContents & strContents & ","

End If

Next

strNewContents = Left(strNewContents, Len(strNewContents) - 1) & vbNewLine

Next

' データをシートに貼り付け

Set objWorksheet = objWorkbook.Sheets("2月")

objWorksheet.Cells(1, 8).Value = strNewContents

' セルの値の置換

objWorksheet.Cells(123, 1).Value = Replace(objWorksheet.Cells(123, 1).Value, "F", "FH")

' Excelファイルを保存して閉じる

objWorkbook.Save

objWorkbook.Close

objExcel.Quit

' オブジェクト解放

Set objWorksheet = Nothing

Set objWorkbook = Nothing

Set objExcel = Nothing

Set objFSO = Nothing

Set objTextFile = Nothing

WScript.Echo "スクリプトの実行が完了しました。"

2023-08-16

AIによる創作システムってまだ全然発展してないよな

俺、頭の中でオリジナルジョジョ連載してるのよ。

思いつきですげーチョットずつしか進まないんだけどさ。

一応ある程度の話の流れは書き出してるんだけど、あらすじだけを読み直してもスッカスカで読み応えがないんだよね。

から思いついたタイミングでそれをAIで出力できたらなと思うわけさ。

脳内ではあんなに盛り上がっていたあの名バウトの数々が全て記憶の彼方に消えて言ってるのが悲しすぎる。

こんなので「AIがあれば誰でもポチポチ創作できる簡単時代になった」とは片腹痛いね。

つーか人間が2人以上画面に入ったらちゃん作画できなくなるなら、本体2人+スタンド2体が基本のスタンドバトルなんて全然お話にならないじゃん。

チーム戦とかも結構あるんですけど?

スタンドも入れたらオオゴマに8体ぐらい骨折してちゃ駄目なオブジェクトが配置されてたりもあるんですけど?

今のAIでそれ出力するの何時間かかるねん

2023-08-15

Python学習の中級編カリキュラム案 その3

順番の見直し

GUIアプリは、Pygameゲームを作ってみることを検討

Webアプリは、TCP/IPHTMLなどの知識必要になってくるので、Python以外の学習時間を取られてしまう。

 

ChatGPTの提案

 

Pygameとは何ですか?

Pygameパイゲーム)は、Pythonプログラミング言語使用して2Dゲームマルチメディアアプリケーションを開発するためのオープンソースクロスプラットフォームライブラリです。

Pygameは、ゲーム開発や対話的なメディアアプリケーションの作成簡単にするためのツールとして使用されます

 

主な特徴や機能には以下のようなものがあります

 

2Dグラフィックス:

Pygame2Dグラフィックスを描画し操作するための豊富機能提供します。

画像の表示、アニメーション、図形の描画などが含まれます

 

イベント処理:

キーボード入力マウス入力ウィンドウの閉じるなどのイベントを処理するための仕組みがあります

 

サウンド音楽:

サウンドファイル再生BGMの追加が簡単にできます

ゲーム音響効果を追加するのに便利です。

 

アニメーション:

スプライト画像の断片)を使用してアニメーション作成し、オブジェクトの動きや変化を表現できます

 

衝突判定:

ゲーム内のオブジェクト同士の衝突を検出し、対応するための機能提供します。

 

ゲームループ:

メインのゲームループ簡単に設定し、ゲームの進行を管理できます

 

簡単API:

シンプルAPI豊富ドキュメンテーションにより、初心者でも扱いやすいです。

 

Pygameは、教育個人プロジェクト学習目的に利用されることが多く、Pythonを学んだりゲーム開発を学びたい人々にとって魅力的なオプションとなっています

また、簡単2Dゲームからより複雑なアプリケーションまで、幅広いプロジェクト適用できる柔軟性も持っています

 

Pygameゲームを作る場合、どのようなカリキュラムだと分かりやすいですか?

Pygame使用してゲーム作成するための分かりやすカリキュラムの一例を以下に示します。このカリキュラムは、Pygameの基本から始めて、徐々に難易度を上げながら具体的なゲームプロジェクトを進めるものです。

 

ステップ 1: Pygameの基本

  1. Pygameの導入とセットアップ方法学習
  2. ウィンドウ作成と表示、基本的な描画と色の設定。
  3. イベント処理とキー入力の取得。

 

ステップ 2: ゲームオブジェクト操作

  1. ゲームキャラクターの表示と移動の実装
  2. ユーザー入力によるキャラクター操作
  3. 背景画像の表示とスプライト使用

 

ステップ 3: 衝突判定とアニメーション

  1. 衝突判定の導入と処理。
  2. キャラクターアニメーション実装
  3. オーディオの追加と音楽再生

 

ステップ 4: ゲーム要素の拡張

  1. キャラクターの追加とAI実装
  2. アイテムパワーアップの導入。
  3. スコアライフ管理

 

ステップ 5: 最終プロジェクトと発表

  1. 学習した内容を活用して、自分オリジナルゲーム制作
  2. ゲームテストバグ修正
  3. ゲーム友達家族プレイしてもらい、改善点を収集
  4. ゲームプレゼンテーションや共有方法学習ウェブサイトプレゼンなど)。

 

このカリキュラムは、Pygame基本的機能から始めて、ゲーム開発における重要な要素を段階的に学ぶことを目指しています

ステップごとに実際にコードを書きながら学習を進め、プロジェクトを通じて実践的な経験を積むことが大切です。

また、オンラインリソースチュートリアルコミュニティでの質問なども活用して、より深い理解を得ることができます

最終的に、自分アイデアを実現するためのプロジェクトに挑戦することで、より高度なスキルを身に付けることができます

 

AnacondaでPygameインストールする方法を教えてください。

Anacondaを使用してPygameインストールする手順は以下の通りです:

 

  1. Anaconda Navigatorを開きます。これはAnacondaのGUIツールで、簡単環境パッケージ管理できます
  2. 左側のメニューから、「Environments」(環境)を選択します。
  3. 右上の「Create」ボタンクリックして、新しい仮想環境作成します。適切な名前入力し、Pythonバージョン選択します。例えば、名前を「pygame_env」、Pythonバージョンを3.7以上に設定できます
  4. 仮想環境作成されたら、その環境アクティブします。アクティブにするには、環境名前クリックし、画面下部の「Open Terminal」ボタンクリックして仮想環境ターミナルを開きます
  5. ターミナルで、以下のコマンドを実行してPygameインストールします:
    pip install pygame
  6. インストール完了したら、Pygame使用する準備が整いました。

 

これでAnacondaを使用してPygameインストールし、環境セットアップすることができます

新しく作成した仮想環境Pygame使用するためには、この環境アクティブにした状態プログラムを実行してください。

2023-08-12

文化祭で某チェーン店再現して失敗した話

https://qiita.com/NaYuA/items/1cda0211ec44fb25d422


みんな大絶賛してるけど、これやばいやつよね

いわゆる「学生チート」ってやつで、社会人が言ったら全力全方位で駄目だしされるやつ

この「手放し称賛」が人を伸ばすんだと言う話をするなら、そのへんの大人も手放し称賛されるべきよね


さておき

POSの時【POSPoint of Saleの略です】と説明してるのに対して

サーバー書き込みなので、当然Promiseを返します。

このPromiseをAwaitして、その後注文を作成します。

みたいなのが、非常に「わかってない感」を出しちゃってるよね

いや多分、脳内ではわかってるんだろうけど

説明口調で書くなら

Promise は非同期処理の結果が格納されるオブジェクトで、awaitはPromiseを待つ演算子です

まりトランザクションで注文番号に排他制御を行い注文は非同期で処理しています

みたいになる

技術用語として「await 演算子プロミス(Promise)を待ち」みたいに直訳でドキュメンが出回ってるし

非同期で行うサーバーサイドの処理ではPromiseを使いましょうみたいなのが

サーバー書き込みなので、当然Promiseを返します、になってるんだろうけど

新人とかの、「わかってないけど書けます」連中が、大体こういう理解の仕方をしてるから

Promiseを返すのはなんでだ?サーバー処理だから(キリッ)

すげぇ、もやもやする説明になってる


もちろん、学生なんだから良いじゃん、良いじゃん、すげぇじゃん

というのもアリなんだけども

このわかってない感満載の文章を、手放しで称賛して、「考えて行動するだけでスゴイ」みたいになってるの

「みんながあんまり誉めたりするから私自分が優秀な人間だって勘違いしちゃったじゃない!!」を思い出させる

まぁ、学校自体はスゴイ進学校らしいから、当人はそんなんならずに大成するんだろうが

このノリで大学とかで、個人情報扱うベンチャーとかやられちゃうと、炎上案件待ったなしって感じ

2023-08-10

映画クレヨンしんちゃんTHE MOVIE 超能力大決戦 とべとべ手巻き寿司

・泣いた

 オトナ帝国とか天カス学園位のレジェンドではないけど「クレヨンしんちゃん」というコンテンツ大人から子供まで読み手に寄り添って励ましてくれるというメッセージ勝手に感じて泣いた

・視聴理由→試写の感想で「けっこうシビア」と聞いて気になった

OP粘土アニメが無くて驚いた

3Dアニメ違和感心配だったけど、オープニングの追いかけっこシーンから3Dアニメの「すごさ」を感じさせて頂いた 超能力波動?とかオブジェクト?が浮く影の感じとか車の逃げるシーンとかが3Dアニメにピッタリで良かった

ネタバレ極力回避して観たからみつる君の造形が色々生々しくてビビった 眼鏡とかもだけど尖った唇とか細い顎とか生っ白い肌の色とか的確にチー牛すぎ

あと生きにくさを推しに縋ってるとことか自分じゃん…とかスマホ爆破の「見せる幸せがない」とか他人事じゃなさすぎて痛ェ…ってなった

幼稚園立て籠もりの中継画面の生々しさ

・みつる君、エスパーお姉さんと安易恋愛フラグたたんでよかった 「やはり恋愛救済エンドか」ってならんでよかった エンディング手巻き寿司ちょっと顔を赤らめる位がいいんじゃ

・「食うに困らない大人」のメッセージ性が読み取りきれず己の読解力の不足を感じる

よしなが先生エロ同人がはかどり過ぎだろ

・着地点とかはネットで言われてたみたいな「モニョり」は無くはなかったけどまあ子供向けやしこんなもんやろ むしろ子供向け映画で「景気が悪い」とか「少子高齢化」「上の世代は逃げ切ることしか考えてない」とかあたりに触れたのが「こんなしんしちゃんたこと無い」ってなった

子連れ多いわりに上映中に子供の笑い声とかあんまりしなくて「子供的にはつまらいか…?」と勝手にひやひやした でも見終わった小学生の子供が「楽しかった〜」って言ってたからホッとした

・みつる君に感情移入する心とひろしは「今の尺度で見るとかなりの強者」だけどそもそもファーストコンタクトでみのる君に手を差し伸べられる「いい人」だなあという心と心がいっぱいあった

東京郊外×うさんくさい団体×超能力モブサイコ少し思い出した

・あの遊園地ガリバー王国思い出した

・池ちゃんウソちゃん関係、これは萌えです

オカ研のムーを読んで共に高校時代を過ごして50〜60位のあの関係のおじさん2人、萌えでしょ…

画面の端っこでちょいちょいお互い助けあってるの良

・オトナ帝国の逆襲の令和レスポンスやりたいんだろうなのわりに着地点が「がんばれ」「人を幸せに〜」なのはちょっとそこはレスポンスとしては弱くない?と思わなくは無いけどまあ結局は自分人生自分で奮起してやってくしかねえもんな…となった

・ちょいちょいガンダムがよぎってた

 ガンダム未履修だが間接接種の頻度が高くガンダムの偉大さを感じさせられる

エンディング、良すぎる

 動画×漫画が好きなんじゃ

 あの絵柄のサンボマスター、良

 みのる君の年代テーマサンボマスターは刺さる

・次の映画3Dじゃないんか

 テーマドラえもんかとおもた

2023-08-05

コナンアニメきもちわるくて仕方がない話

予防線を貼りますが、動画とかアニメとか特に専門でもなんでもないずぶの素人意見です。

テレビコナンアニメがついててたまに流し見するのだけど、映像気持ち悪くてむず痒くなる。

アニメって絵をパラパラ漫画みたいな感じで動かして、それに加えてあとから動画処理(エフェクトカメラ移動等)を入れるふうになってると思う(そうだよね?)。

で、そのパラパラ漫画フレームレートと動画処理のフレームレートが合ってないのがもう気持ち悪くて無理。絵は30fpsだか24fpsだかで動いてるのに、カメラのxy移動だったりアップルーズだったりは(おそらく)60fpsで超ヌルヌルなんだ。(ここで挙げた具体的な数字特に検証していません。フレームレートが合ってないことを言いたいだけ。)

これがもう本当に気持ち悪い。でもこんなこと言ってるとそういうのにうるさい人みたいの思われるから誰にも言えない。誰かこれわかりませんか。

こういうのコナンアニメ以外にもわりとあって、手描きアニメを仕込んだMVとかでありがち。最近でいうと「寝起きヤシの木」の0:36あたりがそうだった。なんでオブジェクトの移動だけそんなヌルヌルやねーん!いやMVも歌も可愛くて好きなんだけどどうしても気になって……。

誰かわかってほしい。

あと筆がのったから追加で言うと、これは手描きアニメではなく動画編集ソフトでつくる動画の話なんですけど、MVとかつくるとき特に理由とか自信がなければ60fpsはやめたほうがいいと思う。30とか24にするだけで一気に見栄えが良くなると思うよ。なんていうかこう、緩急がさ……(個人的宗教)

60fpsは扱いが難しいってだけでそっちじゃないとできない表現もいっぱいあるとは思ってます

お目汚し失礼しました。

2023-08-01

神仏ジャンケンの話

 暮らしているアパートの裏に神社がある。

 神社は割と人通りの多い小道に面しているため、静謐、といった雰囲気はないが、左右に砂利が敷かれた短い参道を抜けて、背の高い木々に囲まれた昼でも暗い拝殿の前に来ると、「ほぼ現世、少しだけ異界」ぐらいの空気はある。

 境内に一本、御神木なのか、ひときわ大きい樹が立っている。木には人の胸ぐらいの高さに縄が巻かれていて、汚れ一つない純白の紙がそこから垂れている。

 夏になると、境内の地中から蝉が出てきて、この木に登る。羽化するために現れて木を登っていく。

 蝉、しめ縄をよじ登って越えていくか、反対に縄の下であきらめて羽化すればいいのに、わざわざ縄に下げられた白い紙を羽化ポイントに定めるやつが何匹かいる。真っ白な紙の上に点々と、透明で茶色い抜け殻が残る。

 しめ縄というのは、どっしりとした円柱の大木に風雪で少しささくれた縄が巻かれ、そこから新しくぱりっとした純白の紙が垂れている、そういう宗教的かつ美的意匠なんだと思うが、まあ蝉には関係ないもんな、と思う。蝉にとっては、ちょうどいい高さにあるちょうどいい場所しかない。

 神社を出て100mほど、道なりにいって曲がると、今度はだいぶ由緒あるらしい寺が建っている。高名な僧が数百年前に開いた名刹らしい。

 俺が住んでいるのはある有名な地方都市で、住民も多いし、観光客大勢行き来している。しかし、この寺のお堂へと向かう広葉樹と苔だけの道を1分ほど歩いて境内に入ると、まったく何の音も気配もしなくなる。聴こえるのは、それこそ蝉の声ぐらいだ。

 俺はときどき、お堂の廊下に座って、物を考えないで風景を見る。廊下南側北側があって、南だと境内に植えられた木、北だと目の前にそびえる岩壁を清水が伝うのが見えて、両方飽きない。

 この前、南側に座っていたときのこと、でかい羽音を立てて蜂が一匹飛んできた。

 虫が好きな人間の固有スキルの一つに、蜂が刺すやつか刺さないやつか瞬時に判断できる、というものがある。そのときも、クマバチ=刺さない、とすぐにわかったので、むしろ観察するぐらいのつもりで様子を見ていた。

 蜂はぶんぶん言いながら、お堂の庇に近づいていった。

 お堂の庇は木を組んだ複雑なアミアミになっている。蜂は庇のどこかの一点が気になるらしく、決まった範囲ホバリングしていたが、急にふっといなくなってしまった。

 「?」と思ったが、少し観察を続けてみて、さらに驚いた。

 庇に直径1cm強ぐらいの穴が空いている。ある種の蜂は木に穴を開けてそこに住むが、どうも、クマバチが巣を作るためにお堂に穴を開けてしまったらしいのである

 美しい建築も、あるいは宗教的に洗練された意匠も、生き物としてあるがままにやっている存在には太刀打ちできない。物体であることの限界というか、この場合、お堂<蜂、もしくはご神木<蝉、そういう力関係と言える。

 風情的には少しあれかもしれないが、寺社建築をよく見ると火災報知器がついていることがある。安全面もそうだが、文化的にも重要ものから、火には注意しているのだろう(法律的必須なのかは知らない)。

 同じことが蜂に穴を開けられた場合にも言えるはずで、歴史ある建物としては損なわれない方がいいに決まっている。

 俺は寺務所に言いに行こうかと思ったが、少し考えてよした。

 主な理由は「お堂に蜂が穴を開けてますよ」というところから会話を始めるのが我ながら気色悪く、億劫だったからだが、もう一つ挙げると、そもそも仏教的に、「かたちあるものが虫によって損なわれようとそれがなんだろうか」というノリなのでは、とも思ったためである

 皮相な理解だが、一切皆空の世界だし、悉有仏性世界である(と聞く。宗派的に色々あるのかもしれないけど)。

 人がつくったお堂に蜂が穴を開けようが、それでお堂が朽ちようが、お堂につくった巣で蜂が栄え、その蜂もいつか滅びようが、すべてが等価というか、はじめからそういう、かたちを結んで消えていくのを織り込んでいる世界観が仏教なんだっけ、と思った。

 それで考えると、神道もいわゆる「八百万」の世界観であって、序列はあるのかもしれないが、蝉にも蝉の神…というか、「土中で数年暮らしたあと地上に出てきて飛んだり鳴いたり(オスだけ)したあとあっけなく死ぬ」神性? みたいなものがあるのかもしれない。

 どういう神性だよ、という気もするが、ヨモツラサカに生えた桃の木とか岩とかを神と見なすのから、蝉の神がいてもおかしくはない(おかしくはないのだけど、実際のところ、虫の神を日本神話で見た覚えはなくて気になっている。アゲハの幼虫を信仰していた宗教が大昔にあったみたいだけど)。

 そういう意味では、自然界の営みによってシンボル物質的に損なわれたり、上手く機能しなくなったりしても、一部の宗教システムとしてあらかじめ、そういう破壊や変質をうまく組み入れているのかもしれない。これは生命よりも宗教の法理の方が、包括的という意味で上位ということで、生命<法理であると言える。

 で、最後にどこに着地するかというと、信仰もただの理念言葉ロジックだけでは生き延びたり広がったりしていくのは相当難しい、やっぱりモノ・カタチにする必要がありますな、というところに着地する。

 心を寄せるためのシンボルや、目で見て手で触れられるオブジェクトがあった方がいいし、大衆の政として考えても、建築やでっけえ像とかがあった方が広めやすい。

 仏像でもピラミッドでも教会でも、最低限、紙の聖典でも、とにかく、教えとして生き残り広まっていくためにはブツ必要だ。水を汲んで運むのに器がいるように、信仰にはどうしても、ブツが要る。その点では信仰<モノである

 ただ、モノはいずれ、壊れるか変形するかするわけで、俺なんかはもう、「物質を伴わなければ存立・拡大できない宗教は、戦略として物質化を伴うがゆえに、滅んだり変化することも許容し、あきらめることをどこかに織り込まないと理屈破綻してしま宿命でもあり、拡大と必滅の板挟み」なのでは? とさえ思う。まあ考えすぎかもしれない。

 いずれにしても、これでお堂<蜂<信仰<お堂の三すくみが完成した。ありがたいことである

 正しいかは知らない。

 何年か前に泊まった旅館山寺のふもとにあって、せっかくだから登っていったら、と宿の人に言われ、お遍路でつくような杖をわたされた。

 要らねえけどなあ、と思って登り始めたら、山道というレベルを超えて文字通りのマジ崖であり、むしろ杖あっても登れねえよ、と思ったが、どうも引っ込みがつかなくなり、気合いで登り続けた。

 道がどんどん狭くなって、「落ちたら普通に死ぬなこれ」と思っていると、やがて、ほとんど空中にかかったような、ひと回りするのに10秒かからないほど小さいお堂にたどりついた。

 当たり前だが、誰もいなかった。辺りは静寂に支配されていて、青い空が近くて、山の中が一望できた。

 厳密に言うと誰もいなかったわけではなく、小さめのスイカぐらいあるスズメバチの巣が完全に完成してお堂の庇からぶら下がっており、スズメバチが「竣工式でーす」と言って飛び回っていた。

 俺はふもとに降りてから、「蜂です」と宿の人に言った。さすがにスズメバチは言う。

 ただ、蜂には当然、あれがお堂かどうかは関係のない話である。また、お堂サイドも、まあ仏教の法理に人格のようなものがあるとして、「こういう世界からしょーがねえな」と言って苦笑する感じというか、空の近くにある静かな山中のちんまりした古刹で蜂が生命を躍動させているのに、なんかすげえ調和しか言いようのないものを感じたのを覚えているので、書いておく。🦑

2023-07-30

anond:20230730022134

SCP-5000の財団世界メタ的にも滑稽なんだよな

実際にオブジェクトによって滅ぶ世界自体は描かれている

http://scp-jp.wikidot.com/scp-280-jp

このオブジェクトネタバレ無しに見てほしいが

オブジェクトによって世界が滅んでも創作世界はなくならないという示唆になる

とすると、あの世界の「勝利」とは、自分たちの手による世界の閉鎖、になるんだろうか

あの世界の「敗北」は、SCP-5000によって物語が持ち出され、存続してしまたことだが

創作世界が、創作内の存在によって、消失するなどということがあり得るのだろうか?

そいうことを考えるのも楽しさと言えるかもしれない

SCP-5000 感想

http://scp-jp.wikidot.com/scp-5000

手垢の付きまくったSCPで、そのメタ構造賛否両論あるやつ

SCPでは並行して存在するいくつもの財団世界」があり

その一つとして描かれるSCP-5000の世界では、自分たち虚構作品登場人物である、と気づいたというもの


自分たち活動は上位存在によって作られたものであり

その収容対象物無限創作され尽きることはない

その「気付き」を受け入れられないもの発狂

処置によって受け入れたもの世界を終わらせようとする


直接的な核戦争や、天変地異などで終わらせることは出来ない

創作世界なのだから、なんらかのアノマリーで「救われて」しま

終わらせるには、彼らの作ったルールに従わなければならない

K-クラスシナリオ世界終末シナリオ


SCP財団世界宣戦布告

Thaumielクラスオブジェクト破壊され

絶対に殺せない怪異」や「瞬く間に感染する病原体」などが開放される


SCP-5000は、そんな財団世界で、一人「気付き」もなく特殊技能もない、ただの一般職員の目線で語られる話だ

たまたま着込んだパワードスーツ「SCP-5000」の認識阻害能力活動維持能力によって彼は災禍を生き延び

存在意義と真逆の行動を取る財団に対して問いかける

Why?」


作品内では、メタ構造であることや、「気付き」の内容は明かされないが

辻褄の合う解釈をすると、そういう解釈にたどり着くことになる

印象的なものは「痛み」だ

財団兵士が「生存者」を判別するのに痛みを利用する

処置によって創作世界の住人との認識があれば痛みなど感じない

痛みを感じるというのは、すなわちその世界の住人として生きている、「生存者」なのだ


流石にキリ番コンペだけあって、よく出来た作品だなと思う

普通に読むだけでも、なんかすごいことが起きていると感じることが出来るし

過去に発表されたオブジェクトが様々登場し、それが開放されたifが描かれるお祭り感もある

どちらかと言えば世界の敵のように描かれる要注意団体が、世界を守る側として描かれるのも良い

Why?」の答えを想像するのも楽しい

からか、この話にはいろんな「解釈」がネットには存在する


読後感として

この状況を簡単にひっくり返せるだろうアノマリーも沢山投稿されていると感じたりもしたが

それを言うのは無粋だろう

メタ構造であるかどうかというのも、ギミックの一つではあるが、作品目的ではないような気がしている

これはそう、お祭りSCPなのだ

オブジェクト収容義務放棄したらどうなるのか

数多のオブジェクトで何が出来るのか

描きたいのはそっちだろうなと言うもの

そういう意味では、これは純粋には「SCP」(確保、収容保護)の話では無いのかもしれない

「別の並行世界から現れたパワードスーツ」をSCP-5000として収容するという体でSCPの体系を満たしてるとし

SCP-5000の記録データとして「お祭り」を描く

まぁ、この構造忌避感を覚えるものがいてもしょうがないな、と思う作品ではあるが


私は好きだ

2023-07-24

これからはじめるPython入門講座

これからはじめる Python入門講座 —— 文法から機械学習までの基本を理解 2022/12/23 鶴長 鎮一 (著)

https://www.amazon.co.jp/dp/4297132001

https://gihyo.jp/book/2023/978-4-297-13200-2

 

目次

Chapter 1 Python概要と開発環境の導入

  1-1 Pythonの基本

  1-2 主なPython実行環境IDE

  1-3 Anacondaの導入と利用方法

Chpater 2 Pythonプログラミングの基礎

  2-1 基本変数(数値/四則演算

  2-2 コレクションリスト/タプル/セット/ディクショナリ)

  2-3 条件判断処理(if文)

  2-4 繰り返し処理(for文/while文)

Chapter 3 オブジェクトクラス文字列操作

  3-1 Pythonスクリプトの実行方

  3-2 オブジェクトクラスマルチバイト文字列ファイル入出力)

  3-3 文字列操作オブジェクトイテレータ/ジェネレーター)

  3-4 正規表現

Chpater 4 関数モジュール

  4-1 関数の基本

  4-2 関数定義

  4-3 モジュールの基本

  4-4 モジュールの探し方/インストール方法

Chpater 5 DjangoによるWebアプリケーション開発

  5-1 Webアプリケーションの仕組み

  5-2 Djangoインストール

  5-3 DjangoによるWebアプリケーション作成

  5-4 データベース操作

  5-5 Templateの利用

  5-6 Modelの利用

Chpater 6 データサイエンス(解析/分析)の基礎

  6-1 データサイエンスとは

  6-2 データサイエンスPython

  6-3 NumPyの利用

  6-4 Pandasの利用

Chpater 7 機械学習ディープラーニングの基礎

  7-1 AI機械学習ディープラーニングとは

  7-2 scikit-learnとTensorFlow

  7-3 scikit-learnの利用

  7-4 TensorFlowの利用

2023-07-22

OW2のスマーフ批判記事適当過ぎる

こんな記事が出ていたが、本当にクソ記事


オーバーウォッチ2』に低ランクストリーマー大量発生ブリザードスマーフやめて」 配信者「コーチングだ」 一般プレイヤー通報

https://fpsjp.net/archives/457789


まず、俺自身も「スマーフはクソだ」と思っている。

ゲームランクにおいて、上のランクの奴らが低ランクを虐めるのがいいはずがない。

ここは共通認識


しかし、今回の「ストリーマーによるGMチャレンジ(最低ランクから最高ランクにあがるチャレンジ)」(と、それに伴ってどうしてもスマーフになってしまうこと)が問題だとは思えない。


そもそもOverWatch2は、

キャリー(一人の強い人がゲーム支配する)がめちゃくちゃし辛いゲーム性で有名なのだ

(流石に彼らの場合は低ランク帯ならキャリーできてしまうが)


記事中に出てくるValorantというゲームは、

ヘッドショット一発で相手を殺せて、リスポーンなしのラウンド形式のため、

一人の強者が5人全員を殺すというキャリーが物凄くしやすい。

(だからValorantはスマーフに厳しい)


また、日本でも有名なApexでは、

某有名プレイヤーが「平均キルレート30以上をたたき出す」のが普通だったりしたが、これもまた「スマーフがしやすゲームであることがわかると思う。

(Apexはロビーに60人いる。つまりロビーの「半分以上」をたった一人で殺し続けている)

(もちろん、彼の場合スマーフでキルレ30以上を出したわけではない点は断っておく)



しかしOverWatch2は、

FPSでもトップクラスに敵の体力が多く、敵もリスポーンし続け、さらには「共通オブジェクトを保持し続けるのが目的」というゲーム性のため、

「5人のチームプレイ」が他ゲームよりも圧倒的に重要視される。

よほどのランク差がないと、スマーフによるキャリーしづらいである


さらにValorantは1試合が30分~40分かかるが、OW2は1試合10分。

OW2はそもそもランクを開始するまでに「カジュアルで50試合する必要がある」。

この時点で内部レートは変動する。

その上で5勝でランクが変動し、さら飛び級もあるので、Valorantよりも短時間ランクが上がってしまうため、

逆に言えばスマーフによる初心者狩りに向かないゲームなのだ


記事中にも「2時間GM達成」の例がある通り、ストリーマーによるGMチャレンジは、一瞬で低ランクを駆け抜けるのが特徴でもある


本来スマーフ問題になるのは、

「繰り返し低ランク狩りを楽しむ(そのために、低ランクにい続けるためにわざとトロール負けをしてランクを下げる)」スマーフプレイヤーであって

正直、ストリーマーによる害そのものはあまり存在しないのではないかと思う。

チャレンジ中のストリーマーに当たった低ランクプレイヤーはもちろん文句を言ったり通報していいと思うが)

運営懸念しているのは、

ストリーマーという有名人による一般プレイヤー(でスマーフする奴)への影響であって、チャレンジ動画によるスマーフ行為のものではないはず。


そもそも、「多くの(ほぼ全ての)OW2コミュニティが常に不満を表明している」のは、「運営によるゴミ格差マッチングである


ダイヤモンド帯にGMプレイヤースマーフがいる」ことを問題視している人がいるが、

ダイヤ帯がGM帯と一緒になるゴミマッチ常態化している」のだ。

どう考えても、そちらの方が遥かに問題に決まっている。

最近は少し改善されたが)


この記事では「なぜかその点には一切触れず」、ストリーマーだけを批判する構図になっている。

異様に偏った記事だということが理解されていない。



さらにこの記事問題なのは

ストリーマーによる「教育」という言葉についても、誤解を与える書き方しかしていない点。

たかも強プレイヤーに轢き殺されることを「それも勉強だ」と煽っているかのように書いているが、実際には全く違う。


記事のなかで槍玉にあがっているAwkwardというストリーマーは、

チャレンジ動画中は本当にずっと(例えば8時間なら延々8時間)、「どうやったらそのランクから上がれるのか」のコツを低ランクプレイヤー向けに解説しながらプレイしている。

本当に「初心者教育する動画」のためにプレイしているのだ。


リスナーから「お前のエイムがいいだけ」と批判されたときには、

エイム感度を何倍にもあげたり、逆に何分の一にも下げて、「エイム力がない状態でも立ち回りで上達できる」ことを動画解説している。

また、実際に低ランク帯にコーチングするアカデミー主催しており、それを動画化したものもある。


OW2はチームプレイ重要であるがゆえに「味方プレイヤーのせいにしがち」なのだが、

Awkwardは「他人のせいにせず、自分の力だけでランクを上がる重要性」を強調するのも特徴。

「強いプレイヤーと戦うことに喜びを感じるべき」という彼の言葉も、それを含めた文脈なのである

(元々、誤解されやす発言を切り取られがちな人ではある)


OW2でマジのトップブトッププレイヤーでありながら、Awkwardはきちんと初心者のことを考え、必要なことを「教育」し続けているストリーマーなのだ

コミュニティ初心者にとって大事な働きをしている彼を悪質配信者のように記事にすることに対して、本当に怒りを感じる。

最悪のゴミ記事である


加えて、Dafranというプレイヤーについても「元はスマーフ否定していたのに寝返った」かのような書き方をしているが、

彼がチャレンジをしていることが「そもそもOW2において、GMチャレンジによるスマーフの影響が少ない」ことの証明だと思う。

そして彼の場合、単なるGMチャレンジではなく、

さらにその上の「トップ500(その名の通り上位500人)を目指すチャレンジ」が特徴である

「低ランク狩り」の部分には、彼もリスナーも興味がないのだ。


こうした誤解を与えるように情報を作り上げているのが、あの記事の悪質さである

背景事情も知らずに批判しているコメントも酷い有様だ。



ランクのあるゲームにおいて、「スマーフ」が大きな問題であることに異論はない。

しかしその中でもOverWatch2のようにスマーフがしにくいゲーム槍玉にあげ、

格差マッチング」の実情は伏せてストリーマー叩きを目的にした批判記事掲載することには、大きな疑問がある。

2023-07-18

君たちはどう生きるか」の好きなシーン7選

まり同じような感想レビューが無かったので共感できる人を探している。

この作品からは、幻想理想の世界から現実に引き戻そうというメッセージ性を感じた。「意味がありそうなことも重要ではなかったりする」、「価値観は人それぞれ正義も悪もない」、「個人想像力努力世界に大きな影響を与えることはない」。こんなメッセージが散りばめられているのに、重く押し付けるわけでもない。そんな雰囲気がとても心地よかった。私が好きだったシーンを挙げる。

1. 我を学ぶものは死す

門と墓があり、墓には「我を学ぶものは死す」と書かれている。ファンタジー世界では危険オブジェクトであるペリカンという不可抗力に巻き込まれて門を開けてしまった。門を開けてしまったがゆえに何か恐ろしい者が目覚め命からがら逃げ出す、という鉄板な流れを期待するものの、そうはならない。キリコが炎を使った謎の儀式をして、墓を見た方向のまま後退する。結局何も起こらない。

ここで最初メッセージを感じた。

「門を開けてはならない」、「怒りを鎮めるには儀式必要」、「儀式には細かい作法がある」、現実にもこんな類の知らない人には全く理解できないルールが沢山ある。守ってもいいし守らなくてもいい。世の中には様々な価値観がある。眞人は肯定否定もない。そんな世界で生きていくことを考えさせられる。

2. 触れてはいけない人形

眞人は何故か机の下で寝ている。自分の周りには人形が置かれていて、何故か触れてはいけないというルールがある。しかし眞人はルールを破って触れてしまう。この時点で薄々勘付く。何も起こらないと。

これは子供1人遊びだ。

何故か自分自分によくわからない制約を課す。理由はない、面白いからだ。狭い空間人形に触れないで外に出られたら面白い成功したら自分を褒める。失敗したら悔しがる。それだけ。

墓のシーンと似ている。子供1人遊び大人儀式も根は同じか。そんな感覚を持った。

3. ヒミ対ペリカン

ワラワラという赤ちゃんの源である可愛いキャラクターペリカンに食べられそうになる。そこにヒミがやってきてワラワラもろとも焼き尽くす。全滅するより誰かが助かった方がいい。ペリカンは生きるためにワラワラを食べるしかない。

小学生の授業でやるような道徳的なシーンだ。

ありきたりな童話のシーンといえばそうなのだが、個人的に好きだったのは焼き尽くしているのが母親のヒミということだ。

戦争で言えば爆撃機もしくはアメリカイメージするその役割を、空襲死ぬ予定の母親がやっているのだ。本人に悪気は無い。良かれと思ってやっている。将来の生命のために、今ある生命を焼いている。その先には因果応報のような結末が待っている。このバランス面白い

4. 裂けた羽根

アオサギの弱点は羽根であるアオサギ自身がそう言っていた。羽根を見せられると慌てた雰囲気になる。そんな中唐突羽根が裂けてしまう。しかし何も起こらない。心の中で突っ込んだ人は多いんじゃないだろうか。

「それも嘘なんかーい!」

弱点が本当だったのか嘘だったのかはよくわからない。眞人もアオサギもそれに言及しない。そう、この時点で2人はすでに仲良くなっていて、弱点ゲームをずっとやっていたのだ。懐かしい気持ちになった。

5. 理不尽な産屋不可侵ルール

ここまではフラグが立ったのに何も起こらなかったというものだが、産屋に入ってはいけないという制約は、入った後に知らされた。今度は過剰な罰を受ける。もはや謎なレベルだ。このシーンは最も現実に近い。よくわからない知らない人が考えた謎ルールで特大の罰を受けてしまう事が現実にはたくさんある。

「知らんがな」

眞人はそんかセリフを心で叫んだかもしれない。眞人には同情するが、そうやって大人になっていくんだよ、頑張れ!と応援したくなる。これは眞人の成長ストーリーだ。現実というファンタジーの中でどう生きていくのかを考えさせる。構造面白い

6.意味の無い努力をしている叔父さん

この叔父さんは可哀想だ。理想的世界自分が維持していると思っている。私のおかげであと1日保つ事ができる。そう言う使命感を持って積み木をしてたらしい。しかし、彼の努力誰も知らないし、現実世界には何も影響を与えていない。そのことに本人は気がついているのだろうか。ぶっちゃけ小学生でも悪意のない積み木を積み上げても理想的世界にはならないことは容易にわかるだろう。

その後、ファンタジー世界崩壊しても、世の中は変わらなかった。戦争が始まりやがて終戦する。1人の想像力努力だけでは世界は変わらない。そんな世界でどう生きるか。そんな事を考えさせられる。眞人の目にはどう映ったのだろうか。尊敬軽蔑、哀れみ、複雑な感情があっただろう。

7. 無駄のないエンディング

ファンタジー世界崩壊してからの流れは早い。

ファンタジー世界崩壊と、終戦後の家族の様子を見れば、メッセージは全て受け取った気持ちになった。もうこれ以上のメッセージはいらない、そんなタイミングでのエンドロール。たまらん!

皆さんはどのシーンが好きでしたか

2023-07-05

anond:20230630185828

54ページに参考文献が掲載されていた。

京都大学Python入門講座の補助教材として推奨されているようだ。

本講座が難しいと感じる初心者向けの副読本なのだろう。

 

参考文献

Python に関する書籍は近年,数多く出版されていて,どれを買っていいのか迷うかと思います

以下,いくつか挙げておきます

このほかの書籍図書館などで探される際には Python Version 3 を扱っていることを確認してください.

 

[2] Bill Lubanovic 著,鈴木 駿 監訳,長尾 高弘 訳:入門 Python3 第2版, オライリー・ジャパン (2021)

[asin:4873119324] 2021/3/22

データサイエンスウェブ開発、セキュリティなど、さまざまな分野で人気を獲得してきているPython

本書は、ベストセラー『入門 Python 3』の6年ぶりの改訂版で、プログラミング初級者を対象としたPython入門書です。

プログラミングおよびPythonの基礎からウェブデータベースネットワーク、並行処理といった応用まで、実践を見据えたPythonプログラミングをわかりやすく丁寧に説明します。

Python 3.9に対応し、f文字列などの新機能も追加され大幅にボリュームアップしました。

Python機能をひと通り網羅し、リファレンスとしても便利です。

 

この本は、薄い入門書じゃなくて、わりと厚めの詳細な説明が書かれている本。

リファレンス的に使うような本でもあるので、まったくプログラミングをやったことがない本当の初心者だと、この本を読んで理解するのは大変なんじゃないかと思う。

すでに他のプログラミング言語習得しているプログラマーで、Python言語仕様を1冊の本で把握した人には、本書は向いていると思う。

 

1冊目にこれを持ってくるあたり、受験勉強知識の丸暗記に長けたガリ勉ならOKかもしれないが、勉強が得意じゃない人にはちょっといじわるなチョイスではないか?と穿ってしまった。

一応持っておいて普段本棚の飾りにしつつも、必要とき辞典的に使えばいいのではないか?と思う。

自分なら、この本は2冊目以降に推奨するだろう。(1冊目には勧めない)

  

[3] 柴田淳:みんなの Python 第 4 版,SB クリエイティブ (2017)

[asin:479738946X] 2016/12/22

Python入門書デファクトスタンダードが4年ぶりに大改訂

近年、Pythonの利用が、機械学習AIなどの科学技術分野へ大きく広がっている現状を踏まえて、すべてのパートに手を入れいくつかの新章を追加しました。

次の10年を担うPythonプログラマ養成するための一冊。

 

Chapter01 プログラミング言語Python

Chapter02 Pythonプログラミングをはじめよう

Chapter03 Pythonの基礎をマスターする

Chapter04 組み込み型を使いこなす

Chapter05 Python関数型プログラミング

Chapter06 クラスオブジェクト指向開発

Chapter07 クラス継承と高度なオブジェクト指向機能

Chapter08 モジュール

Chapter09 スコープオブジェクト

Chapter10 例外処理

Chapter11 標準ライブラリを使う

Chapter12 Pythonデータサイエンス

Chapter13 Pythan2

 

・AnacondaやJupyter Notebookなど、Pythonの最新開発環境対応

・NumPy、matplotlibなどの科学技術ライブラリ対応

WindowsmacOSLinux対応

 

イラストや図解を多用しているので、一見すると初心者向けのように見えるけど、1冊目としてはどうだろうか?

やはり、この本も2冊目以降に読んだ方が良い本になってしまうだろうか?

悪くはないと思うけど、自分なら読まないかもしれない。

Amazonレビューでも、結構酷評されてるね?

買いたい人は、本屋で内容を確認してから買った方が良いと思う。

 

[4] 大津真:基礎 Pythonインプレス (2016)

[asin:484438015X] 2016/3/4

本書で解説するPython現在もっとも注目を集めているプログラミング言語ひとつです。

プログラミング言語の人気度の目安となるPYPLでは、2016年1月の時点でJavaに続いて2位に位置していることからも、その人気のほどが伺えるでしょう。

その大きな理由として、Pythonがパワフルなオブジェクト指向スクリプト言語でありながら、わかりやすく、すっきりしたプログラム作成可能であることがあげられます

文法シンプルで、これからプログラミングを始める方にとっても最適な言語です。

現在Pythonは、Python 2.x系からPython3.x系への移行時期にあります

Python 3.xでは、さまざま機能強化が行われ、さらに標準の文字コードユニコードベースに変更され、日本語も容易に扱えるようになったこから日本においてもさらなる普及が期待されるでしょう。

 

本書は、プログラミング初心者対象にしたPython 3の入門書です。

変数の取り扱いから、リスト、タプルといったPython固有のデータ操作制御構造関数などについて具体的でかつ短いサンプルを多数提示しながら、初心者でも基礎から学んでいけるように拝領したつもりです。

また、インデントブロック表現する点などなど、他のメジャー言語と比べてユニークな部分も丁寧に説明しています

前半部分で基本を説明した後は、ファーストクラスオブジェクトとしての関数活用方法オリジナルクラス作成などといった多少高度な項目を丁寧に説明していきます

 

Chap1 Pythonプログラミングをはじめるための予備知識

Chap2 Pythonの基礎について学ぼう

Chap3 プログラムの流れを変えたり処理を繰り返したりする

Chap4 組み込み型の活用方を理解しよう

Chap5 オリジナル関数作成する

Chap6 テキストファイルの読み書きを理解しよう

Chap7 オリジナルクラス作成する付録 開発ツールとの連携設定

 

Amazonサンプルページを見たら、お勧めエディターとして「Atom」が紹介されていた。

から7年前ならAtomでも良かったのかもしれないけど、今ならVisual Studio Codeの方が使い勝手が良いのではないだろうか?

7年前の情報という点を考慮して、検討したい。

Python文法説明に関しては悪くないと思うけど、自分なら読まないかもしれない。

 

[5] 松浦健一郎,司ゆき:はじめての Python エンジニア入門編,秀和システム (2019)

[asin:4798058327] 2019/5/25

■きちんと学びたい人のための最短教科書。■

Python開発者に求められる言語ツールライブラリなどの知識を、1冊で素早く学べます。■

 

「はじめて」でも「よくわかる」5つの必達ポイント

(1) Python言語効率よく習得できる文法入門。

(2) 豊富な例題で頭と手を刺激しながら学べる。

(3) 数多くの定番ライブラリや必携ツールを1冊で体験

(4) 人気のAIデータ分析Webフレームワークにも対応

(5) 開発したプログラムPyPIGitHubで公開できる。

 

可もなく不可もなくというかんじで、ありがちな入門書であるように見えた。

同じ著者の本なら、[asin:4815607648] Python[完全]入門 (2021/1/22) の方が良いのではないか

発売年もこっちの方が新しいし、受験参考書っぽい作りで、各項目の要点が頭に入ってきやすい。

Amazonサンプルページを見て、自分の好みの方を選んだら良いと思う。

この本なら1冊目でもお勧めできそうだ。

(ただし、自分場合はすでにオンライン教材を入門を済ませてしまったので、今さら読む必要はないけど)

時間があったら、図書館で借りてレビューしてみたい。(買うとは言ってない)

 

[6] 大澤文孝:いちばんやさしい Python 入門教室ソーテック社 (2017)

[asin:4800711592] 2017/4/8

はじめは誰でも未経験者!

Pythonプログラミングの基礎を身につけよう!

 

本書はプログラミング言語Python」の「いちばんやさしい」入門書です。

 

○「興味はあるけど、難しそう」と尻込みしている人

○「そもそもプログラミングって何?」という未経験

○「一度試したが、挫折してしまった」という初級者

○「スキルアップのためにPythonを学びたい」という経験

 

そんなPythonビギナーに向けて、プログラム根本概念、基礎知識、基本文法をきっちり端折らずに説明します!

さらには、「簡単計算」「ゲーム作成」「GUIアプリ」「モジュール活用」など、

実際に手を動かしながらの演習を通して、学んだことがしっかり身につくように構成しました。

 

豊富カラー図解とイラストで、初心者にも分かりやすい!

本書を一通り終えれば、Pythonのみならず、プログラミングの基本がバッチリ学べます

 

さあ、あたなもこの本をきっかけに、Pythonプログラミング世界に飛び込んでみませんか?

 

この著者の本は、他の本なら持っている。

本当に分かりやす説明するのが上手い方だと思う。

簡単な内容しか説明してないけど、他の本なら挫折してしまうようなガチ初心者でも、この本なら理解できるだろう。多分、中学生ぐらいが読んでも理解できると思う。

自分には物足りないような気がするので敢えて読もうとは思わないが、1冊目にお勧めするチョイスとしては間違ってないと思う。

 

[7] コーリー・アルソフ著,清水川貴之訳:独学プログラマー日経 BP (2018)

[asin:4822292274] 2018/2/24

本書は「Pythonだけ」を学ぶ本ではありません。

Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。

 

プログラマになるためのスキルを独学できる本です。

Pythonプログラミングの基本を学べるだけでなく、プログラマとして必要スキル(シェル正規表現パッケージ管理バージョン管理データ構造アルゴリズム仕事の始め方・やり方)もひと通り学べるのが特徴です。

プログラミングを始めたい」「できればその道でプロを目指してみたい」――そんな読者にオススメです。

 

本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。

本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。

プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています

彼の独学プログラマーとしての学び方は、多くの人に支持されています

――訳者あとがきより

 

目次については、日経BOOKプラスの本書のページをご覧ください。

そこでは目次ページだけをまとめたPDFファイルや、本書に登場するリンクをまとめたPDFファイル、補足もご連絡いただけます

 

出た~~~!!!

Python入門の「2冊目」としては鉄板の本だと思う。

しか!!!…敢えて、私は読まないだろう!!!

別にひねくれている訳じゃなくて、もっと他に良い本が出てきたから。

ハズレではないので、この本を進めときゃいいでしょ的な安易さは拭えないが、あえてケチをつけるならば、各項目が「広く浅く」で物足りなさが残るから

中途半端な本という印象が拭えない。

プログラミングを全くやったことがない初心者が、Python文法を覚えた後、脱入門で中級へステップアップするときの足掛かりとしては、本書は良い指南書になるだろう。

鉄板の本なので、時間があれば後で図書館で借りて目を通してみたい。(買うとは言ってない)

 

[8] 増井敏克:基礎からプログラミングリテラシー技術評論社 (2019)

[asin:4297105144] 2019/4/17

プログラミングをはじめる前に読む1冊!

 

プログラミングブームエンジニア不足を背景にプログラミング独習をする方が増えています

いざ、Webで人気の講座を受講してみたり、店頭平積みになっているベストセラープログラミング書籍を手にしたものの、どれも理解できずに挫折してしまった、という方も多いのではないでしょうか。

コンピュータプログラミング解説がわからないのは、次のような知識の不足が要因です。

 

1.コンピュータのしくみがわからない

2.プログラミングのしくみがわからない

3.アプリケーションが動くしくみがわからない

4.開発スタイルエンジニア仕事像がわからない

5.業界の標準やツールが知らない

6.プログラミング書籍の選び方がわからない

 

これらは専門書やインターネット検索上位にくるWeb記事では前提知識として省略されることが多く「読み進めるにはほかの資料必要になった」なんてことがよくあります

そこで、本書ではプログラミング独習者がつまずきやす知識を厳選して取り上げ、初心者の分からなかったをサポートします。

図解を多用し、「サーバークライアント」、「コンパイラインタプリタ」のように用語比較しながら学習することで、いままで曖昧になっていた知識が整理され理解が進みます

プログラミング初心者必携の1冊です!

 

自分記憶に間違いがなければ、この本は1回図書館で借りて読んだことがあるような気がする。(表紙を見ておぼろげに思い出した)

この本は、中学生とか高校生レベル知識しかない人が、学校の「情報」の授業の補助教材として使うようなイメージがある。

京都大学先生京大生に勧める本としては、どうなんだろう?

 

プログラミング以前の疑問として、そもそもコンピューター(電子計算機)って何だろう?というような素朴な疑問を持つ人が、ハードウェアなどの仕組みを知りたいなら、情報処理技術者試験の教科書を読んだ方が手っ取り早いと思う。

  1. ITパスポート試験
  2. 基本情報技術者試験
  3. 応用情報技術者試験

大学受験経験して、知識の丸暗記に慣れている人なら、これらの資格試験教科書の方が、要点がコンパクトにまとまっていて、吸収しやすいのではないか

 

cf. 情報処理技術者試験 - Wikipedia

https://w.wiki/3cnP

https://www.ipa.go.jp/shiken/

 

とりあえず、Pythonとは直接関係なさそうなので、今の私なら読まない。

パソコン自作できるし、ハードウェア知識もある程度あるので、本書を読む時間があったら、他の本を読むだろう。

本書を読みたい人は、自己責任で読んで欲しい。

 

 

https://anond.hatelabo.jp/20230705022129 へ続く)

2023-07-04

Python入門が終わった

Python JapanWebサイトにある入門講座をやってみました。

https://www.python.jp/train/index.html

量は多くなかったので数日あれば学べます。(ゆっくりやって4日ほどかかった)

 

プログラミング学習実証実験

https://anond.hatelabo.jp/20230630172440

 

  1. anond:20230701073304 ゼロからPython入門講座
    1. anond:20230702122813 1. Python初体験
    2. anond:20230702123837 2. Python基礎の基礎
    3. anond:20230702192318 3. 文字列と入出力
    4. anond:20230702204509 4. 条件式と分岐
    5. anond:20230702234709 5. ブール型と論理演算
    6. anond:20230702235936 6. while文による繰り返し
    7. anond:20230703174415 7. 関数定義
    8. anond:20230704011841 8. オブジェクトリスト
    9. anond:20230704032013 9. 辞書オブジェクト
    10. anond:20230704131044 10. タプルとコレクション
    11. anond:20230704175341 11. 演習

 

でも、これはあくまでも入門の段階であり、実用的なプログラムを書くためには、まだまだ必要知識が足りません。

次にどの教材を使ってステップアップするか検討しましょう。

 

元増田プログラミング勉強して、一度プログラマー仕事をやってみてはいかがですか?

そしたら、開発部門の連中が何をやっているのか?何を考えているのか?がよく分かるようになるでしょう。

11. 演習

Python勉強メモ

ゼロからPython入門講座

11. 演習

https://www.python.jp/train/exercise/index.html

 

以下、気になったところ。

 

スイカ割りゲームを作ってみよう

プログラムで実際に実行する手順や処理のことを、よく「手続き」といいます

 

手続き

cf. プロシージャ - Wikipedia

https://w.wiki/6ZsJ

プロシージャ (procedure)とは、プログラミングにおいて複数の処理を一つにまとめたものをいう。

手続きとするのが定訳である

一連の処理を意味を持った一まとまりにすることで、再利用性が高まりプログラム中に繰り返して現れる処理を1ヶ所で記述でき、プログラム保守管理を容易にする。

 

繰り返し利用されることからルーチンとも言う。

呼び出し関係は通常階層構造をなし、その最上位にある、プログラム全体のエントリーポイントを含むルーチンをメインルーチン、呼び出されるものサブルーチンと言う。

また、関数と呼ばれることもある(通常、数学における関数とは違ったものであるので、注意が必要である)。

 

乱数

乱数を生成する

Pythonでは、乱数を生成するときには random モジュールインポート します。

インポートしたモジュール関数は、モジュール名.関数名() の形式で呼び出します。

randrange() は、

 

random.randrange(開始値, 終了値)

 

形式指定すると、開始値以上かつ終了値未満(開始値乱数 < 終了値) となる乱数を生成します。

 

リファクタリング - マジックナンバーを避ける

プログラム機能そのままで、書き方を改善することを リファクタリング といいます

 

cf. リファクタリング (プログラミング) - Wikipedia

https://w.wiki/4iYa

リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである

また、いくつかのリファクタリング手法総称としても使われる。

ただし、十分に確立された技術とはいえず、また「リファクタリング」という言葉に厳密な定義があるわけではない。

 

主なリファクタリング

 

マジックナンバー

Pythonの慣例で、定数値の変数名は小文字のboard_size ではなく、BOARD_SIZE のようにすべて大文字します。

 

プログラム中にいきなり出てくる意味のわからない数字は、一般マジックナンバー といいます

基本的には、マジックナンバーは、値を直接書くのではなく、その値の意味がわかるように、常に 変数に代入してから利用するようにします。

 

マジックナンバー変数に代入せず、あっちこっちで使ってしまうと、あとでその値の意味がわからなくなってしまったり、値を変更するとき修正漏れが発生したりします。

 

cf. マジックナンバー (プログラム) - Wikipedia

https://w.wiki/6xRp

プログラムにおけるマジックナンバー(英: magic number魔法数字)とは、何らかの識別子もしくは定数として用いられる、プログラムソースコード中に書かれた具体的な数値である

そのプログラムを書いた時点では製作者は数値の意図を把握しているが、他のプログラマーまたは製作者本人がマジックナンバー意図を忘れたときに閲覧すると「この数字意味はわからないが、とにかくプログラムは正しく動く。まるで魔法数字だ」という皮肉を含む。

 

次のような理由で、マジックナンバープログラム中に含まれないことが好ましいとされる。

  • その数値の持つ意味がわかりづらい。
  • 数値を変更する場合に、複数の箇所を変更しなければならない可能性がある。

 

マジックナンバーを避けるため、マジックナンバーが書いてある箇所を定数や列挙型に置き換えるといった処置がとられる。

定数は意味のわかりやすいような名前を付けることができるため、一読して数値の意味理解できるからである

ここで、定数の初期化の際に右辺値に書かれる数値までマジックナンバーハードコーディングとは呼ばない。

 

ハードコーディング

cf. ハードコーディング - Wikipedia

https://w.wiki/4kSM

ハードコーディング英語: hard coding)とは、本来プログラム中に記述すべきでないリソースエラーメッセージなど)を、直接ソースコード中に埋め込むことである

これらは本来、外部ソースから取得するか、実行時に生成するべきものであり、これをソフトコーディング英語: soft coding)という。

 

具体例としては、固定された付加価値税が設定された電卓地球重力加速度が設定された体重計がある。

それらは付加価値税率が異なる共同体地球以外の重力場所では正常な値が取得できない。

 

今なら、高機能IDEを使えば、力技でハードコーディングを書き換えることも可能

 

適切なデータ型を使う

元のソースコードでは、スイカプレイヤー位置を、x座標とy座標それぞれ別々の変数として保持しています

しかし、スイカプレイヤーの座標は本来つの情報ですので、x座標とy座標で2つの変数に分ける意味はありません。

こういった場合

(x座標, y座標)

という形式の、2つの整数からなる タプル にするように、リファクタリング するのが良いでしょう。

 

関数活用する

主となる関数(ここでは suika_wari() ) と、

主となる関数が利用する補助的な関数 (ここではgenerate_position()、calc_distance()、 move_position())

を組み合わせて全体を構成する手法は、プログラムの開発でもっとも基礎的で重要テクニックです。

 

プログラムを開発するときには、

ということを考え、それぞれの機能関数として定義するようにしてみましょう。

 

主となる関数とは?

cf. エントリーポイント - Wikipedia

https://w.wiki/6xSV

エントリーポイントとは、プログラムを実行するうえで、プログラムサブルーチンの実行を開始する場所のこと。

プログラム全体のエントリーポイントとなる場所を含むルーチンがメインルーチンである

 

例えば、C言語の標準では、mainという名前関数(の先頭)がエントリーポイントであり、各関数エントリーポイントは、それぞれの関数の先頭である

 

まとめ

 

感想

以上で、Pythonの入門が終わった。

この教材のボリュームなら、数日で学習できる。土日とかに集中してやればサッと通過できるはず?

Python動作は、コード片をColabにコピペして実行すれば確認できるので楽だった。(あまり手を動かさなくても学べる)

次は、実用的なプログラムを書くためのノウハウTipsを学ぶ段階へ進もう!(中級編へ続く)

10. タプルとコレクション

Python勉強メモ

ゼロからPython入門講座

10. タプルとコレクション

https://www.python.jp/train/tuple/index.html

 

以下、気になったところ。

 

タプル

タプル

Pythonでは、複数データの組み合わせから構成されているデータ表現する場合、タプル という種類のオブジェクトを利用します。

タプル(tuple)は、組 などとも呼ばれ、複数の要素が決まった順番にならんだ値を指します。

 

タプルの書き方

タプルオブジェクトは、複数の値をカンマ , で区切って記述します。

 

タプルはカッコで囲む習慣

タプルは、要素となるデータを「 , 」で区切って記述できますが、「, 」だけだとちょっと見にくいので、通常は全体を丸括弧 () で囲んで記述します。

 

ningyocho = (35.686321, 139.782211)

kotoshi = ('平成', 2)

 

この括弧は必須ではありませんが、括弧なしでは読みにくく、間違いの元になる場合もあるので、通常は括弧をつけて記述する慣習になっています

 

タプルオブジェクトの要素を参照する

タプルオブジェクト登録したオブジェクトは、リスト と同じように 要素の順番 を指定して参照できます

 

タプルオブジェクト[要素の順番]

 

要素の順番 として指定する数値のことを、リストオブジェクトと同じように インデックス(添字) と呼びます

 

タプルの比較演算子

タプルは、数値や文字列と同じように、比較演算子 を使って他のタプルと値を比較できます

 

== 演算子でタプル同士を比較すると、同じ値のタプルならTrue を返します。

 

!= 演算子でタプル同士を比較すると、異なる値のタプルなら True、等しい値なら False を返します。

 

<、 <=、>、>= などの演算子で、タプル同士の大小を判定できます

 

タプル同士の値の比較は、先頭の要素から順番に同じインデックス同士の値を比較して、先に小さい値となったタプルが小さい値となります

比較するタプル同士の長さが異なる場合、短いタプルの要素と長いタプルの要素を比較してすべて等しければ、短い要素のほうが小さい値となります

 

タプルオブジェクト操作

タプルオブジェクト場合リストオブジェクトのように要素を変更することはできません。

タプルオブジェクトの要素を変更する場合は、リストオブジェクトのように要素を変更するのではなく、あたらしくタプルオブジェクト全体を作り直す必要があります

 

タプルとリスト

タプルとリストはとてもよく似ています

どちらも他のデータを格納できるコンテナオブジェクトで、格納した要素は数値をインデックスとして参照できます

リストにはデータを追加したり削除したりできますが、タプルは変更できません。

 

リストとタプルはどのように使い分ければよいのでしょうか?

 

タプルは複数データの組み合わせから構成されているデータのためのオブジェクトです。

決まったルール記述した、固定的な形式データです。

複数の要素から構成される独立したデータ をあらわすときは、タプルを使用します。

 

固定的な形式もつ独立したデータではなく、不定個数の独立したデータをたくさん集約してまとめておきたい、という用途には、リストが適しています

 

リストとタプルの使い分け

 

コレクション

コレクション

数値オブジェクトは、物質の重さや長さなど、いろいろなデータの値を直接あらわすオブジェクトです。

一方、 リスト辞書は、直接的なデータではなく、いろいろなデータ登録して、集約しておくために使われるオブジェクトです。

 

リストやタプル、辞書のように、他のオブジェクトを集約することを目的とした種類のオブジェクトのことを、

コレクション (Collection)

と呼びます

 

コレクション操作

コレクションに属するオブジェクトは、どれも同じように使える、共通の処理が用意されています

 

コレクションの要素数

コレクション登録されている要素の数は、len() 関数で調べられます

 

コレクション比較演算子

コレクションは、比較演算子 の == 演算子や != 演算子で、値が等しいかどうかを判定できます

 

in 演算子

in 演算子を使うと、コレクションに値が登録されているかどうかを調べられます

in 演算子は < や == のような 比較演算子一種で、

値 in コレクション

という式は、指定した値がコレクション登録されていれば True を、登録されていなければ False を返します。

 

辞書の in 演算子

辞書オブジェクト場合、in 演算子指定した キー登録されているかどうかを調べます

 

文字列の in 演算子

文字列オブジェクト場合も、in 演算子で中に文字が含まれいるかどうかを確認できます

 

for文

コレクションは、 for 文に指定して、コレクションの要素ごとに、for 文に記述した処理を実行できます

 

辞書とfor文

辞書オブジェクトを for 文に指定すると、辞書のすべての キー を取り出して、for文に指定した処理を行います

 

シーケンス

リスト・タプル・文字列はいずれも コレクション に属するオブジェクトですが、コレクション一種で、整数値のインデックス指定して要素を参照できるオブジェクトのことを、

シーケンス (Sequence)

と呼びます

 

コレクションシーケンスの違い

リストやタプルなどのオブジェクトは、コレクション一種で、他のオブジェクト登録し、集約できるオブジェクトです。

シーケンスとは、コレクションのうちで、集約する要素が一定の順序で並んでいて、その順序(インデックス)を使ってその要素を指定できる種類のオブジェクトのことを指します。

 

コレクションに属するオブジェクトでも、リストやタプルとは違って、辞書 は、順序を指定して要素を指定することはできません。

このため、辞書コレクションですが、シーケンスではありません。

 

 

シーケンス比較演算子

タプルやリスト文字列などのシーケンスオブジェクトは、 <、 <=、>、>= などの演算子で、値の大小を判定できます

シーケンスではない、辞書オブジェクトなどのコンテナオブジェクトは、 < などによる大小の比較はできません。比較すると、エラーとなります

 

コレクションのアンパック

コレクションのアンパック

代入式の右辺がコレクションなどの場合には、左辺に複数変数名を指定して、コレクションの要素を一括して変数に代入できます

コレクションの要素を一括して変数に代入する方法を、アンパック(unpack) といいます

 

(例)

list_obj = [1, 2, 3]

var1, var2, var3 = list_obj # var1, var2, var3 に、list_objの要素を順に代入

print(var1, var2, var3)

 

1 2 3

 

変数 var1、var2、var3 には、右辺のリストオブジェクトの要素が一つずつ順番に代入されます

この場合、var1 には list_obj の最初の要素である 1が、var2、var3 には、それぞれ2番目と3番目になる 2 と 3 が代入されます

 

アンパックを利用した代入は、Pythonプログラミングで頻繁に利用されます

 

アンパックは、複数の値を戻り値とする 関数 でよく使われます

 

関数計算した結果は、return文 を使って、戻り値として返します。

しかし、関数 total_and_average() は合計値と平均値の2つを計算しますが、 return文 に指定できる戻り値は一つだけです。

そこで、return文には (合計値, 平均値) のタプルを指定し、二つの値を一つのタプルにまとめて返り値とします。

 

(例)

def total_and_average(values):

  total = 0 # 合計値の初期値 0 を設定

  for value in values:

    total = total + value

  # データ件数を求める

  num = len(values)

  

  # 合計値 ÷ 件数平均値を求める

  average = total / num

  # 戻り値として (合計値, 平均値) のタプルを返す

  return (total, average)

 

戻り値としてタプルを使い、複数の値を一度に返す関数はとてもよく使われます

テクニックとして覚えておきましょう。

 

まとめ

9. 辞書オブジェクト

Python勉強メモ

ゼロからPython入門講座

9. 辞書オブジェクト

https://www.python.jp/train/dict/index.html

 

以下、気になったところ。

 

辞書

辞書オブジェクト

あるデータ対応する関連データ登録できるような仕組みとして、Python辞書オブジェクト を用意しています

辞書オブジェクトには、appleりんご のような、2つの値を組み合わせた情報登録できます

appleりんご の組み合わせを登録した辞書オブジェクトで、apple検索すると、本物の英和辞典とおなじように りんご が返ってきます

このような機能から辞書オブジェクトは、別名「連想配列」とも呼ばれます

 

 

これらの基本的データ構造は、Pythonだけに限らず、他のプログラミング言語でも用意されている機能である

 

キーと値

辞書オブジェクト検索する時に指定するデータ(この例では apple) を、辞書キー といいます

また、キー対応して、検索の結果となるデータ(この例では りんご)を、辞書の 値 といいます

 

辞書オブジェクト作成

辞書オブジェクトは、波括弧 { と } で作成します。

 

{キー1:値1, キー2:値2, ...}

 

{ と } の間には、登録するキーと値を キー:値 という形式指定し、, で区切って記入します。

 

辞書作成

english_words = {"apple": "りんご", "orange": "みかん", "peach": "もも"}

print(english_words)

 

{'apple': 'りんご', 'orange': 'みかん', 'peach': 'もも'}

 

要素が登録されていない、空の辞書は、{} だけで作成します。

 

辞書の参照

辞書オブジェクト登録した要素は、次のような式で参照できます

 

辞書オブジェクト[キー]

 

print(english_words["apple"])

りんご

 

辞書登録されていない値のキー指定すると、次のようにKeyError というエラーが発生します。

 

english_words['banana']

---------------------------------------------------------------------------

KeyError

 

辞書操作

要素の追加と置き換え

辞書オブジェクトに要素を追加するときは、次のように記述します。

 

辞書オブジェクト[キー] = 値

 

このとき指定したキー辞書登録されていれば、その要素を指定した値で置き換えます

 

要素の削除

辞書オブジェクト登録されている要素を削除するときには、del 文を使います

 

del 辞書オブジェクト[キー]

 

辞書オブジェクトから指定したキーの要素を削除します。

登録されていないキーを削除すると、 KeyError というエラーが発生します。

 

辞書の要素数を求める

辞書登録されている要素の数は、リストオブジェクトと同じ ように、 len() 関数を使って求められます

 

in 演算子

辞書キー登録されているかどうか調べるときは、in 演算子を使います

in 演算子は &lt; や == のような 比較演算子一種で、

 

キー in 辞書オブジェクト

 

という式は、指定したキー値が辞書オブジェクト登録されていれば True を、登録されていなければ False を返します。

 

まとめ

8. オブジェクトとリスト

Python勉強メモ

ゼロからPython入門講座

8. オブジェクトリスト

https://www.python.jp/train/list/index.html

 

以下、気になったところ。

 

Pythonの型とオブジェクト

Pythonでは、整数実数文字列などのデータのことを、オブジェクト(Object) という用語で呼びます

Object英語で「物」とか「対象」とかい意味言葉ですが、Pythonでは、Python操作するいろいろな種類のデータプログラムなどのことを、まとめて オブジェクト と呼びます

 

オブジェクトの種類のことを、型 と呼びます

たとえば、数字の2は、整数型のオブジェクト文字列abc は、文字列型のオブジェクト という呼び方します。

次のプログラムは、関数 foo() を定義していますが、

def foo():

  print("hi!")

この foo も、 関数型のfooオブジェクト です。

import 文を使ってロードした モジュールオブジェクトです。

 

オブジェクト範囲

オブジェクトではないもの

演算子やwhile文 ・ if文 などはPythonに対する実行命令で、実体のあるオブジェクトではありません。

数値などの値のように、変数に代入したり、関数のように関数名を指定したりと、プログラマ名前をつけられるものオブジェクト

whileのようにつけられないものオブジェクトではない、

と考えると良いと思います

 

この説明だけでは、Pythonオブジェクトについて曖昧さが残りスッキリしない。

Python言語仕様で、オブジェクトはどうなっているのか?検索してみた。

 

google:python オブジェクト

 

cf.Python入門]Pythonオブジェクトとは - ITmedia

https://atmarkit.itmedia.co.jp/ait/articles/1907/12/news019.html

Python公式サイトにあるドキュメントオブジェクト、値、および型」では、Pythonにおけるオブジェクトとは「データ抽象的に表したもの」と表現されている。

まりPythonで書いたプログラム操作したり、処理したりするデータのことを「オブジェクト」という。

説明
int 整数」を表現する型
float 浮動小数点数」を表現する型
bool TrueFalseのいずれかの値を取り、真偽値(条件が成立しているかどうか)を表現する型
strUnicodeコードポイント値を任意の数だけ並べた「文字列」を表現する型(変更不可能
list 任意の型の要素を任意の数だけ並べた「リスト」を表現する型(変更可能
tuple 任意の型の要素を任意の数だけ並べた「タプル」を表現する型(変更不可能
dict キーと値の組からなる要素を任意の数だけ並べた「辞書」を表現する型(変更可能
set/frozenset任意の型の要素を任意の数だけ並べた順序のない「集合」を表現する型(setは変更可能。frozensetは変更不可能
function 関数」を表現する型
moduleモジュール」や「パッケージ」を表現する型

 

cf. 3. データモデルPython 3.11.4 ドキュメント

https://docs.python.org/ja/3/reference/datamodel.html#objects-values-and-types

Python における オブジェクト (object) とは、データ抽象的に表したものです。

Python プログラムにおけるデータは全て、オブジェクトまたはオブジェクト間の関係として表されます

(ある意味では、プログラムコードもまたオブジェクトとして表されます。これはフォン・ノイマン: Von Neumann の "プログラム記憶方式コンピュータ: stored program computer" のモデルに適合します。)

 

先に「プログラムデータ+処理」という話を挙げたが、

要するにPythonプログラムの中で処理(操作)できる対象すべてがデータであり、なおかつオブジェクトである」ということらしい。

 

上記の型の表を見ると、Pythonには「function」という関数オブジェクトもあるので、関数それ自体を1つのデータとして扱うことも可能

これを、「第一オブジェクト」という。

 

cf. 第一オブジェクト - Wikipedia

https://w.wiki/6wz4

第一オブジェクトファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数戻り値としての)受け渡しといったその言語における基本的操作制限なしに使用できる対象のことである

ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクト意味しない。

第一オブジェクトは「第一データ型に属す」という。

この言葉1960年代クリストファー・ストレイチーによって「functions as first-class citizens」という文脈で初めて使われた。

 

言語によって異なるが、第一オブジェクトは概ね次のような性質もつ

 

リスト

決まった順番に並んだ値で構成される情報は、Pythonでは リストオブジェクト表現します。

リストオブジェクトは、他のオブジェクトを 要素 として登録できるオブジェクトで、他のプログラミング言語では配列などと呼ばれることもあります

 

リストオブジェクトは、次のように 角カッコ [ と ] で作成します。

 

[要素1, 要素2, ...]

 

[ と ] の間には、リストの要素となるオブジェクトを、, で区切って指定します。

 

要素が登録されていない、空のリストは [] だけで作成します。

 

要素の参照

リストオブジェクト登録した要素は、次のような式で参照できます

 

リストオブジェクト[要素の順番]

 

リストオブジェクト登録した要素を参照するときは、リストオブジェクトに、参照する要素の順番を指定します。

最初の要素を参照するときは 0、その次は 1、のように指定します。

 

インデックス(添字)

ここで指定している要素の順番のことを、インデックス(添字) と言います

リスト最後の要素のインデックスは、リストの要素数 - 1 となります

 

インデックス(添字)は、1から始まるのではなく、0から始まる点に注意が必要

 

リスト操作

要素の挿入

リストに要素を追加するときには、リストメソッド である insert() を使用します。

 

挿入位置として、インデックスの最大値以上の値を指定すると、リストの末尾に要素を追加します。

 

要素の置き換え

登録済みの要素を別の要素に置き換えるときは、次のように記述します。

 

リストオブジェクト[インデックス] = 値

 

変数 の代入文とおなじ形式ですね。

代入文の左辺に指定できるインデックス値は、リストオブジェクト最後インデックス値 までです。

 

要素の削除

リストオブジェクト登録されている要素を削除するときには、del 文を使います

 

del リストオブジェクト[インデックス]

 

リストオブジェクトから指定したインデックスの要素を削除します。

del 文で指定できる要素のインデックスは、要素の置き換え と同じように、リストオブジェクト最後インデックス値 までです。

無効インデックス値を指定すると、エラーになります

 

while文を使ったリストループ処理

リストの長さを測るメソッド len()

リストオブジェクトの要素数を教えてくれる、len() という関数があります

関数 len() は、引数リストオブジェクト指定すると、その要素数を返してくれる関数です。

 

values = [1,2,3,4] # 要素数4のリスト

print(len(values))

4

 

for文によるループ

リストの要素を順番に参照する処理は非常によく行われるため、もっと簡単に書けるように、for 文 という、専用の文法が用意されています

 

for文の書き方

for 文は、次の形式記述します。

 

for 変数名 in リストオブジェクト:

  処理1

  処理2

  ...

 

for 文は、リストオブジェクト から要素を一つずつ順番に取り出し、それぞれの要素ごとに、for 文に続けて記述した処理を、一度ずつ実行します。

変数名 には、リストオブジェクトから取り出した要素を参照する変数名を指定します。

 

まとめ

ログイン ユーザー登録
ようこそ ゲスト さん