「print」を含む日記 RSS

はてなキーワード: printとは

2022-05-12

ひっさびさにPython触った

Windowsマシンでしてるゲームツール作るかーってなったかゴミ溜めあさったらPython環境が出てきたからそれで作ることにした。

むっかし~んに落としたやつだからバージョンは当然2.7。

別に誰が困るわけでも無しにまあいいかよろしくなあ!と書きはじめたんよ。

んでいろいろやりたいことが出てきてそのライブラリを探す。

当然ほとんどみんな3.x系のみサポート

しかたなしにリリースタグを辿って2系をサポートしてたバージョン探して落とすの。

あ、pipとか使ってないしね。

誰も困らないと書いたけど環境的に自分が困るんだわ。でもべっつにーそれで3に上げる気になるわけでもない。

しか海外ライブラリ、かな。すごくリリースノートとかchangelogが書かれてるんだよね。

勝手な印象だけど日本人ライブラリリリースノートとか書かない人が多い印象ある。

あと日本人バージョンを下に刻みすぎて2.xになってるのが稀とか多い。0.0.1で初リリースとか何年経っても0.1.10とか。

まあだから困ったけどどれもサポート切りを明記してくれてたか全然手間取らなかった。

良いヤツは最新版でも2.7以下はこのバージョン使えってれあどに書いてくれてるし。


そんでうーんうーん言いながらなんとか手で作業していた部分をすこし自動化できるツールができた。

コンソール日本語文字化けして出ちゃうからそこはこっちがローマ字で書いてやる妥協もあったけど。

毎回、かなり時間を書けてプログラムを書いて、これペイするのかなとモチベーションが上がらないんだけど完成したらすごい便利になるんだよね。

重い腰を上げる。プログラミングをするときにはギリギリできるんだけど、プログラミング言語のバージョンを上げるときには腰が上がらないんだよなー。

このまま俺は一生Python3ができない腰重おっさんとして生きていく気がする。手癖はprint hogeだぜー。

ぱいぱい。

2022-04-30

ITmedia「家庭用プリンタ世界がなかなかの荒れ具合な件」が雑な件

やあ。年末場末家電量販店プリンタを売るバイトをしている者だよ。

ITmedia さんのプリンタ記事ちょっと雑だったんでツッコミを入れてみるね。 https://www.itmedia.co.jp/news/articles/2204/29/news070.html

 一方家庭用として、年賀状やラベル印刷活躍したプリンタは今やほとんど需要がなくなっている。筆者宅でも、月1回、部活動練習計画プリントアウトするぐらいで、出番がほとんどない。ほとんどない割にはかなりの重量と場所をとっている。

 先日、久しぶりに東京に行くので名刺を刷ろうと思ってプリンタを起動したところ、黄色印刷されない。これまでモノクロプリントしかしてこなかったので気がつかなかったのだ。何度ヘッドクリーニングをかけても全然出ない。ヘッド自体がもうダメなのかもしれない。

これはインクジェットプリンタあるあるだね。売り場では「故障を避けるために月1回は印刷してくださいね〜」と案内しているよ。小寺さんはモノクロがメインということだったから、黄色が詰まっちゃったんだね。

こうなるとインクを替えてもだめだから、買い換えるしかいねインクがヘッド一体型のやつか、インクヘッド交換型だったらなんとかなったんだけどね。

 最初は1万円内のシンプルプリンタ専用モデル検討した。ドキュメントスキャナーは別途ScanSnapがあるので、複合機でなくてもいい。ただ、妻が時々スマホからプリントしたいという要望があるので、スマホから直接プリントするという機能必須である

 エプソンにもキヤノンにも、1万円以下のエントリーモデルはあるが、スマホからプリントに非対応ということで早々に断念。もうちょっと上位のクラスでないと、その手の機能は搭載されないようだ。

これはちょっと語弊があるね。というのも、家庭用プリンタの主戦場複合機で、プリンタ専用モデルそもそも種類が少ないんだ。

価格コムで調べたけど、1万円以下のプリンタ専用モデルスマホ対応してなさそうなのは "TS203" "PX-150" "PX-105" の3種類。そのうち PX シリーズビジネス向け、 TS203 はそもそも Wi-Fi対応していないね

複合機だと "TS3530" とか "EW-052A" は1万円未満かつアプリ対応しているよ。

 展示機はそこそこ、おそらく30台近くあるが、ほとんどのモデルに「コロナウィルスの影響で在庫なし」の札が下げられていた。

これはもう1年以上こんな感じだね。

 真ん中の島に、今年発売の新モデル、それも3万円以上の複合機が決め打ちで山積みされている。つまり急ぐ客には全部それで対応、というわけである。ポップに値段を記しておらず、値段で引かないようにということだろう。

これは店舗さんによって差異があるからなんとも言えないけど、値札の貼り忘れなんじゃないかな? 写ってるのは TS8530 だから、だいた3〜4万円の主力商品だね。

 店員さんを捕まえて、スマホから印刷できるカラー機で、複合機じゃなくていいんだけど、と伝えると、1台だけエントリー機で在庫があると出してくれたのが、EpsonEP-714A」だった。2022年2月発売、値段は税込み2万円ちょっとだったので、ネット最安値と700円ぐらいしか違わない。

"EP-714A" は複合機だよ。そもそもプリンタ専用モデル在庫がなかったのかもね(増田が働いていた12月も常にそうだった)。家電量販店ネットプリンタの値段はほぼ変わらないのは確かだよ。

 「EP-714A」は最大がA4なので、サイズ的には以前の「EP-976A3」より一回り小さく、軽い。10年ぶりの新プリンタなのですっかり浦島太郎状態なのだが、セットアップPC接続することなく、ディスプレイ部に表示されるQRコードを読み取って、スマホを使ってオンライン可能である

 よって電源コードは付いてくるが、USBケーブル付属しない。スマホセットアップできない、要するにネットがない環境の人向けに、ドライバソフトウェア等が入ったCD-ROM付属するが、今どきTypeBのでっかい端子のケーブルなんてなかなか持ってないのではないだろうか。

ちょっと意味不明な内容になっているね。USB ケーブルは前使っていたプリンタから流用できるから、高級機種でもついてこないよ。むしろ CD-ROM がついてこない機種もあるよ。CD ドライブのないパソコンも今や多いからね。

 以前Epsonプリンタは、Epson Printというアプリからスマホ印刷対応した。だが本機はEpson Printは使えず、LINE特定アカウントに対してファイルを送るとそれが印刷されるようになっている。メール添付でも同様だ。コンビニ向けのネットワークプリントサービスを利用した方はご存じかもしれないが、やってることはそれと同じである

 印刷するのに専用アプリを使わないので、スマホバリエーションOSバージョンに逐一対応する必要もない。プリンタ全盛の頃は開発もメンテナンスコストもかける意味があったのだろうが、今となってはすべてクラウドにまとめられた。

"EP-714A" はスマホアプリ "Epson Smart Panel" に対応しているね。プリンタによって OS 対応が違ったりするから、売るときは気を遣うよ。

 コロナ直前まで、家にPCがない、あっても古いという家庭が増えて、PTA子供会などの活動に支障が出るようになった時期があった。なぜ支障が出るかというと、紙の書類更新や手直しができないかである

 だがコロナ禍でテレワークが主流になると、そこそこ新しいPCが家にあるという状況が戻ってきた。ところがプリンタ立ち位置は、前と同じポジションはいられなくなった。今どき紙の書類保護者に配付する方法がなく、PDFを作ってLINEで流して終わりになったからだ。

しろコロナ禍で学校や塾のプリント印刷する機会が増えた、という理由で買うケースが増えたよ。それまではプリンタの買い替え需要が多いのは12月だったんだけど、コロナ禍でそれ以外の月でもよく売れるようになったんだ。だからプリンタ各社はインク大容量モデルエコタンクギガタンク等)を売り出しているんだね。

 今回のプリンタは、名刺印刷するために買ったようなものだが、その習慣もいつまで残るだろうか。このプリンタもあと10年使うと考えたら、もはや人生最後プリンタがこれ、なのかもしれない。

在庫がなかったから仕方ないけど、名刺を刷るならブラック顔料インクモデルにしたほうがよかったね。染料インクは発色はいいけど、水ぬれに弱いよ。

最後

最近給湯器みたいに「故障したら数ヶ月入ってこない」みたいなものが増えたけど、プリンタもそんな感じだね。長く使いたいなら定期的な印刷を、そうでなかったらもう割り切ってコンビニプリンタにしちゃうのがいいかもね。12月プリンタを買いに来るお客さんの半分以上は「しばらく使ってなかったら壊れてた」だよ。いっそ大容量モデルにして、付属するインクで元取っちゃうのもありだね。

あと店員さんには優しくね。

そんじゃーね

2022-01-07

経験から1ヶ月!Pythonで観る将ライフを向上させた話(プログラム編)

まとめ

プログラミング経験から1ヶ月ほどで、将棋評価値の新たな方法でのグラフ化を行うPythonツールを作った。

https://github.com/k-the-p/notherscore

この記事は2本立てです。プログラミングより結果のグラフ将棋に興味がある方はもう一方の将棋から読むことをおすすめします。

未経験から1ヶ月!Pythonで観る将ライフを向上させた話(将棋編)

目標

評価値以外の観る将の楽しみとして、手の広さの可視化提案する

AIはわれわれアマチュア将棋への親しみを大幅に向上させてくれた一方で、棋士が悩みに悩んだ結果として評価値が下がる手を指してしまったときに、「悪手きたwwww」と騒ぐ主にABEMAのコメント欄には忸怩たる思いがあった。

とはいえ、もう評価値を知らなかった時代に後戻りするなんてことは誰にもできないだろう。そして、電王戦から将棋にハマった自分自身としても、AI否定はしたくない。

であるなら、AIを用いた新しくよりよい将棋の楽しみ方を探っていくしかないのではないか

以前から私は、「AIの手を指せるなら人間も苦労しないんだよなあ」と思っていた。あるとき藤森哲也先生Youtubeチャンネルで言っていたことを聞いて得心がいった。「AIの一手は最強の一手なんです。確かにプラス1000点になるけど一手間違えた瞬間にマイナス何百点になるような綱渡りの手。それよりもアマチュアの皆さんにはプラス数百点で得は少ないけど安全な道、最善の一手を学んで欲しい」(大意)と。

ここで言う「最強の一手」に人間にして最も近いのは紛れもなく藤井聡太四冠であろう。藤森先生アマチュアに向けて喋っていたが、その葛藤は間違いなくプロの中でもあるはずである渡辺明三冠が言うように「藤井くんと全く同じスタイルを今から目指しても絶対藤井くんより強くなれない」のは自明であるからして。

私はここにドラマがあると思う。また、最強の一手と最善の一手が等しく「いい手」に見えてしまうわれわれアマチュアとしては、そこを機械に教えてもらえるのであれば、棋力向上にも繋がりそうである

具体的目標

第1候補手と第2候補手の評価値の差を取ってグラフ化すればよさそう?

(差が小さければ手が広い、差が大きければ絶対手に近い、綱渡り

目指すのはあくまで便利な将棋ツール将棋AIを作りたいわけではないので、将棋AI自体局面を入れたら評価値を吐く謎の箱という扱いでよい。

手法

Python一択

グラフ化や数値の扱いだけでなく、将棋AIとのやりとりをやってくれるあれこれもあるようなので。

あと習得が楽だと聞いた。その話を教えてくれた人はもう10年間英語学習法をブクマし続けてるけど。

あと「読みやすコードじゃないと動かない」って設計思想がかっこいい。ついでに言うといわゆる「おまじない」が少なそうなのも魅力。(CのHello world挫折した経験あり。studio.hって何……)

何をしたか

詳しい人に聞く

プログラム講師をやっている?方が音楽制作を初歩からやってみる、という(残念ながら)リアルタイム視聴者が俺だけしかいないような配信があったので、音楽の基礎(についての知識は持っていた)を教えてあげたお返しのような形で、「pythonでこういうことがしたくてこういうライブラリがあるのはわかった。経験HTML+CSS変数導入前、Bootstrapなんてなかった)のみ。どうしたらよいか」という質問をしたら、「progateは簡単すぎると思うのでPaizaが丁度いいのではないか」というアドバイスを頂き、比較もせずに即登録したのだが結果的にはこれがドンピシャだった。

Paizaラーニング

最近流行りの、環境構築不要で講座の内容を書いて覚えるタイプサイト

無料で入門講座の序盤を受けていたらふと目に入ったのが、「対象者:これからプログラミングを学びたい方。HTMLがどのようなものかを知っている方。」でYoutuber先生オススメ完璧か?と思った。そして実際に完璧だった。

基本的に1講座3分+演習1~2問+やりたければ問題集たくさんという形式なのだが、これが簡単すぎることなく難しすぎることもなく、俺の知識レベルベストマッチだった。基本的に毎回何か書くことになるので、変数とは~みたいな解説だけで終わる回がほぼ無いのも飽きなくてよい。

Python入門(と言ってはいるがまだこれだけで発展編はない)の見出しは「プログラミングとは」「条件分岐比較演算子」「ループ処理」「リスト」「辞書」「多次元リスト」「関数」「クラス」「クラス発展」「例外処理」に各5~8講座*3分+演習、という感じ。クラス発展の途中で行けそうだと思ったのでドロップアウトして実製作に移った。実際関数まで理解していれば、この程度の小さなツールには十分だった(もしかしたらクラスを使えば多少楽になった場面はあったかもしれないけど)。

また、これは書いてる今気づいたことだが、上のコースで学んだことで、実際に役立たなかったものほとんどなかった(強いて挙げれば辞書くらい?使えてないだけかも)。このこともコース構成の優秀さを示している。

ここまででだいたい2週間くらい。

Google colab

もともとこのサービスは知っていたのと、谷合先生が実際に使っていたように、便利そうなライブラリのcshogiが主にcolab(jupyter)上で動かすことを意図しているようだったので、まずここから入った。最初はcshogiが列挙してくれる特定局面での合法手をリストに入れて、そのリストの項目数=その局面での合法手の数を出力することから始めた。これは本当に簡単にできて興奮した。

学習と好きなことが直結してると、こんなサンプルコードみたいな簡単なことで喜べるのでコストパフォーマンスがよい。

cshogiとやねうら王をusi連携する

cshogiのチュートリアルで紹介されているレサ改というAIがどうもmultipv(有望な候補手を2手以上挙げる)に対応してないらしく、強さ的な問題でいずれ手を出すつもりだった予定を繰り上げてやねうら王との連携を試みる。

makeって何?あー、もりかしてMakefileが無いと動かない?(これを書いている今もこんな理解である)みたいな人間でもなんとかやねうら王をビルド?することはできた。レサ改をcshogiに読ませる数行のサンプルコードがとても役に立った。今でもあの完成品らしき拡張子が無いファイルがなんなのか分かってない。(なお、評価関数nn.binが無いと怒られたのでどこのご家庭にもある水匠4のそれをぶち込んだら動いた。評価関数とやねうら王の分担は今もって理解あやふや)(また、途中でAyane[やねうらお謹製ライブラリ]も使おうとしたがcolab上では上手く動かす方法が分からなかった)

一応これでcshogiで局面の最善手と次善手およびそれらの評価値を呼び出せるようになったのだが、単にdebugでずらずらと余計なものまで出力するのではなく、重要な指し手周りのinfoだけ出力するようにしようとしたが、上手いやり方がわからず、結局こうなった。

sys.stdout = open('out.txt', 'a')
engine.go(listener=print)

ここは絶対もっとマシなやり方があるはずなので、識者の教えを請いたい。

ようやくWindowsPythonVSCodeを入れる

Colab上でまあまあ目処がついたので、この辺りでPython環境を作った。ここまでそれをやっていなかった理由は、「おま環」トラブル可能性をなるだけ遠ざけておきたかたかである環境が悪いのか俺が悪いのか分からない、というのは初心者にとって限りなきストレスである。あーネットが繋がらなくてルーターの設定や接続とか支払いとか文字通り部屋をひっくり返しながら調べてたら実はフレッツ自体が落ちてた件を思い出してイライラしてきた。cshogiはJupyter上で動かすことを意図しているようなので、それで動かなければ自分の書き方が間違っているのだとほぼ確実にわかる。

まあこの辺りはいろんなサイト見ながら仮想化などしつつ普通に仮想化が何か分かってないんですけど。

Jupyter notebook

これまでColab上で書いてきたものは多少の書き換えで動いたので、ローカルにJupyter notebookをインストールして、数字計算グラフ化を試みる。

ちなみにこの時点で得られているデータはこんな感じ。

go
info depth 1 seldepth 1 score cp -47 multipv 1 nodes 483 nps 241500 time 2 pv 3c3d
info depth 1 seldepth 1 score cp -86 multipv 2 nodes 483 nps 241500 time 2 pv 4a3b
info depth 2 seldepth 2 score cp -53 multipv 1 nodes 847 nps 423500 time 2 pv 3c3d 9g9f
info depth 2 seldepth 2 score cp -68 multipv 2 nodes 847 nps 423500 time 2 pv 8c8d 7g7f
info depth 10 seldepth 17 score cp -78 multipv 1 nodes 100163 nps 1963980 time 51 pv 8c8d 2f2e 4a3b 7g7f 3c3d 2e2d 2c2d 2h2d 8d8e 6i7h 8e8f 8g8f
info depth 10 seldepth 17 score cp -111 multipv 2 nodes 100163 nps 1963980 time 51 pv 3c3d 7g7f
bestmove 8c8d ponder 2f2e
go
info depth 1 seldepth 1 score cp 117 multipv 1 nodes 206 nps 206000 time 1 pv 2f2e
info depth 1 seldepth 1 score cp 78 multipv 2 nodes 206 nps 206000 time 1 pv 7g7f
...

今回の小目標は、goで区切られた中からから2行目と3行目のcpほにゃららを取得していい感じのリストにする、というものだ。この辺りは正規表現でなんとかなるだろうと見通しを立てたが、実際そうなった。

ただ、後手が見たとき評価値が後手目線なので、それだけにマイナスをかけるのはどうするか(そうしなければ、先手+3000点の次が「後手から見て」-2900点だったりして綺麗にグラフにならないのだ)を調べるのに結構時間が掛かった。

また、詰み周りでまたプラスマイナスカンストの絡む計算をしたくないのもあり、数値にNaNを入れてグラフ表記を省略することにしたのだが、そうするとnumpyの関係整数(とNaN)しか扱わないのに浮動小数点で計算しなければいけなくなって若干気持ち悪かったり。まあ動くのでヨシ!

中間報告

この時点で、ローカルにKIFファイルを保存し、pyファイルでcshogiと水匠を動かし、Jupiter notebookを開き評価グラフと手の広さのグラフを重ねて表示する、というそれなりのものは出来上がった。

簡単に言えばpyファイルで1手10局面(森内チャンネルに出てたHEROZの方が使ってた数字をそのまま使っているので特に意味は無い)探索させ、最善手と次善手についての生の評価データを吐き出させ、ipynbでそれを整形し、グラフ化している。

基本的に全部VSCode上でできるので、慣れれば計算時間も含めて10数秒で結果が出るのだが、このワークフローはいかにも美しくない。

なので、Flaskという簡単らしいフレームワークを使ってローカルWebアプリとして使えるようにしようと思った。inputとoutputをどうにかするだけだから余裕やろ。

Google colabを触り始めてからここまで1日。圧倒的成長!

ローカルWebアプリを作る

Flaskを学ぶ

Paizaラーニング再び。後半ではデータベースとか本格的な話もあるようなのだが、txtに書き込む一行掲示板を作るまでの前半部を高速で履修(演習は全部飛ばした)。なるほどー、こうやってやりとりするのね、と最低限は完全に理解した

モジュール

Jupyter向けのコード普通Pythonに直してあっちで数字を出してこっちでそれを受けて元に戻して……とかやってると循環参照か何かで怒られることに。その対策に細かく部分を分けて関数にしたのだが、その場合ってもしかしてdefの内部しかまれない?(共通部分も読まれると思ってた)(いや、共通部分は読まれるけど他のdef内が見えないのか?何も分からん)なるほど。こうなると関数の内部から上に戻るためにクラスとか欲しくなるのかなーという感想

最終的にWebに公開しようとこの時点では思ってたので、txtに一旦出力するのが安全性的にどうかとか考えてたのだが、テキストの読み取り周りでハマる。結局抜け出せず諦めた。

以降は、HTMLダブルクオートが抜けてるのに一時間気づかないとか、FlaskのXSS対策対策をするとか、ファイル書き込み設定をミスって2万手くらい蓄積されて評価グラフが大変なことになったが、原因に気づかずひたすらグラフ生成部を調べ続けるなど、非本質的問題にかかずらっていたので書くことは特にない。

GithubVSCodeとなら連携がらくらく

なので、最初にgitignoreしてなかったせいで1万ファイルくらい上げそうになったけど、それ以外は特に問題も無く。中間報告からここまで2日ほど。結局1ヶ月かけずにプログラミングをそれなりに身につけることが出来た。「プログラムを覚えたければ作りたいものを見つければいい」というのは本当だな、と改めて思った。

で、どうなったの?

については将棋編の方で詳しく書いています

https://anond.hatelabo.jp/20220107060727

どれくらい書けるようになったのか、を見たい方は主にvalue_output.py(将棋AI思考させてデータを取り出す)とgraph.py(データを整形してグラフを書き出す)を見ていただければいいかと思います

謝辞

最初にPaizaを教えてくださったYoutuberの方、cshogiを初心者でも使いやすいように作って展示してくださったTadaoYamaoka様、水匠開発者のたややん様、水匠含めこんにちの将棋AIの基盤を作ってくださったやねうらお様、cshogiを通して利用したpython-shogiのKIFパーサーを書いてくださったTasuku SUENAGA様に、厚く御礼申し上げます

最後

私は現在仕事Twitterフォロワー募集しています

30歳無職よろしくお願いいたします。

https://twitter.com/k_the_p

2021-12-27

楽天モバイルの圏外をモニタリングする

これは楽天モバイルアドベントカレンダー出遅れ記事です。嘘です。すいません。

インディアンス楽天モバイルネタ最高だったのでこの記事を書きました。

皆さん、楽天モバイルを知っていますか。

1プランでわかりやすい料金体系、最低金額無料契約して1年間無料というすごい携帯キャリアです。

私は今年の3月から使っており、その品質には概ね満足していました。ところが11月中頃(曖昧から楽天モバイルの圏外が頻発するようになりました。

ローミング終了に伴い一部エリアでは使えなくなるかもという話は知っていましたが、私がいるのは都内の3線利用できる駅前エリアで今ままでもパートナー回線を使ったことがありません。

おかしいなーと思いつつちゃんログを取ろうと思い、楽天モバイル端末のWiFiアクセスポイントONにして手元のノートPCから疎通確認をしてログをとることに。

楽天モバイルDNSが落ちたことはあった時はDNS設定いじればどうにかなったけど、そもそも圏外はどうしようもありません。

crontabもないし、shじゃないし、tail,awk,uniqもないし面倒でした。

5分に一回 1.1.1.1 にping飛ばしてその結果をログに残しました。

以下はbatで書いた処理

@echo off
ping -n 1 1.1.1.1 | findstr /i "TTL" > nul
if %ERRORLEVEL% equ 0 (
  set ret=success
) else (
  set ret=failure
)
echo %date% %time% %ret% >> %~dp0check_net.log

ログ確認、集計

-- tail -3 相当のps
type .\check_net.log | select -last 3
2021/12/27 22:20:02.44 success 
2021/12/27 22:25:06.00 failure
2021/12/27 22:30:05.99 failure

-- awk '{print $1, ":", $3}' | uniq -c 相当のps
type .\check_net.log | %{$tmp=($_.toString() -split("\s+"));echo ($tmp[0] + ":" +$tmp[2])} | group -NoElement

Count Name
----- ----
  143 2021/12/19:success
    6 2021/12/19:failure
  208 2021/12/20:success
   81 2021/12/20:failure
  279 2021/12/21:success
    9 2021/12/21:failure
  221 2021/12/22:success
   67 2021/12/22:failure
  101 2021/12/23:failure
  188 2021/12/23:success
  277 2021/12/24:success
   12 2021/12/24:failure
  144 2021/12/25:success
   69 2021/12/25:failure
  287 2021/12/26:success
    2 2021/12/26:failure
   43 2021/12/27:failure
  225 2021/12/27:success

-- 時間ごと
type .\check_net.log | sls failure | %{echo $_.toString().Substring(11,2)} | group -NoElement | sort Name 

Count Name
----- ----
   21  0
   17  1
   19  2
   20  3
   40  4
   47  5
   42  6
   41  7
   21  8
    9  9
   17 10
   14 14
   18 15
    8 16
   23 17
   14 18
    6 19
    1 20
    6 21
    7 22
    5 23

ログが不十分なのは途中でログファイル消しちゃったのと、ノートPCを閉じちゃってタスクスケジューラが止まってたタイミングがあるため

途中まで `findstr /i "TTL"` がなかったのでsuccessだけど実際は疎通できてないものがあります(pingの宛先ホストに到達できませんはsuccess扱いだった)

12/23がひどい。1日の35%繋がらない。「日本スマホ代は高すぎる」けど繋がらないんじゃ意味ないんよ。

11~13時台は落ちてない。逆に何故。

5分に一回の計測なのでたまたまそのタイミングだけ疎通したりしなかったりってのはあるけど、その割合は落ち具合の体感と一致します。

テザリング利用では1日10GBの制限があるらしいですが、制限には引っかかっていません。

楽天モバイルの圏外をモニタリングすることで私が学んだこと

解決しなかったこと・教えてもらえたらうれしいこと

今も利用しているのは無料間中なのと、楽天モバイル回線Youtubeとかネットサーフィンとか止まっても許せる範囲で使っているからです。

これをメイン回線にしてたら緊急の連絡とか取れないだろうし、だいぶ困りそう。

書き込もうとしたけど、楽天モバイル回線は圏外で書き込めないので別の回線で書き込んでます

追記

楽天ハンドLTE回線状況チェッカーを入れてみたところ

RSRQは-15でした、どいひー

2021-12-17

教員免許を取るために必要費用を調べてみた

はじめに

はじめましてUEC18のExit(@ExitBowie)です.普段はゆ虐を嗜む鬼威惨としてTwitterにおります

この記事UEC Advent Calendar 2021の16日目の記事です.昨日の記事はしらたきさんによる「pwndbgについて」でした .

無限printデバッグばかりやってる自分から見ると雲の上の記事でした.


さて,開始1行でAnonymous Diaryの特徴をふいにしてしまいました.アドベントカレンダーの参加は初めてですが,その初めてを増田に捧げることにしました.

他のAdvent参加者ドメインを見るとnoteはてなブログ独自ドメインサイトなど個性がでていいですね.


ありそうな質問

Q. なんで増田なの?

A. 新規性がありそうだったか


と,思ってたんですが...サーベイの結果,先行研究が見つかってしまいました...

増田(2015)による先行研究こちらです.


Q. なんで遅れたの?

A. 増田の下書きがサーバーに保存されているものと思って,自宅PCで下書き書いたままラボ泊してました...

(ガチの「やったけど持ってくるの忘れた」です)


Q. ゆゆっ!

A. ビキィ!!

Abstract

本稿では,卒業さえできれば教員免許取得が確実となった私(ExitBowie)が教員免許を取るために追加で必要となった出費について調査した.

筆者の先行研究(【電通大新入生へ】教職はいいぞ - 未ざらし紀行)では,教職課程の履修に追加料金が必要ないとしているが,実際に免許を取る際には細々とした出費も多くある.

そこで,それらの合計を計算し,免許のための出費を明らかにした.

方法

出費を頑張って思い出した.思い出せなかった分はTwitterやGooglePhotoの記録やAmazonメルカリヤフオク購入履歴確認した.

本稿における出費の対象教員免許取得を目指したしたことによる追加の支出とする.したがって教育憲法やコンネトのような,教員免許取得には必須だが卒業所要単位に含まれる科目の教科書への出費は対象外とする.

結果

内容出費備考
図書
スタンダード教育心理学\496中古教育心理学の教科書.aoym先生教育心理学はマジで面白いので免許取る気ない人にもおすすめ
教育制度歴史\200酉(@FIREd146)と町田ブックオフ行ったときに見つけた教育原理Aの教科書
社会を結びなおす\562新品.一部ではシャカムスと呼ばれる教育制度論Bの参考図書.「わかっていたはずのことがわからなくなる楽しさ経験できる」
自ら学び考える教職教養\780ブックオフで買った教育課程編成論Aの教科書.この本の内容を輪講プレゼンテーションした.
情報科教育改訂3版\900ヤフオクで買った情報化教育法Ⅰの教科書.筆者はなんと,久野靖(@ykuno)
実践マルチメディア\333マルチメディア処理の教科書.明らかにメルカリの外れ値価格で買えた(けど使わなかった)
数学Ⅱ Advanced\300教育実習先の教科書メルカリで買った.
図書小計\3571
その他費用
介護体験費用\11098特別支援学校へ2日,福祉施設(だいたい高齢者施設)へ5日間赴きます.そのための費用体験ノート(強制購入)を合わせた価格だったはず.
教育実習費\12000実習校への上納金学校によって価格差あると思う.本当は2万だったけど,電通大が上限8000円を払ってくれるので差額の12000のみ支払った.
免許発行手数料\9900免許1件あたり3300円必要.私の場合中学数学高校数学高校情報の三種のチーズ免許特盛に温玉付きだったので9900円.
その他費用小計\32998 
    
合計\36569


教科書画像こちら

以上.

ほとんどが事務手数料じゃねーか!

考察

教科書中古でそろえたので安かったですが,事務手数料などはバカにならないですね.免許はいらないけど教職科目は履修したいという人は安上がりで済むと思います

ただ,教科書を新品でそろえても5万程度で中高数学高校情報教員免許が取れるのは魅力的と言えるのではないでしょうか.

特に教員免許更新制度が終了確定演出きているのでアツいと思います.とりあえず取っておきましょう.

教職課程履修のメリットについては(ここ)にまとめています.1,2年生の方は今から始めても間に合うと思うのでいかかでしょうか?

結論

タダで免許わとれない!!(ワザップ並みの結論)

おわりに

卒研がヤバすぎてクソ記事になってしまいました...

せめて卒業はできるように頑張ります...

あと本当はもっと画像URLモリモリだったんですけど,スパム判定になるらしく泣く泣く消しています...


明日はおか(@oka_0429)くんの記事iPadだけで大学生活を乗り切る。」です.彼はFF外ですが,ときどきツイートが流れてくるのを拝見しています..


教育実習校でiPadの貸し出しがありましたが,なかなか便利でしたね.私的には価格から考えると買いたいとは思えませんでした...

2021-12-07

プログラミングスクールに1ヶ月通った45歳無職童貞でもマイナビ就活できますか?

maru9 = ["大東文化大学", "東海大学", "亜細亜大学", "帝京大学", "国士舘大学"]

def mynavi_filter(students):
    return filter(lambda x: x not in maru9, students)

print(list(mynavi_filter(["東京大学", "東海大学"])))

2021-10-23

初心者向けPython教材・資料おすすめ

※随時更新、本記事は、親記事anond:20211018163759 」も合わせて読むことを推奨しております


色々なぶくまで紹介される Python 等の資料について、一応初心者は脱している身として、私見を元に初心者に向けたおすすめ度を紹介していく。

★~★★★★★ で個人的おすすめ度も示している。

ゼロからPython入門講座:★★★★

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

Python 情報サイトの老舗である Python Japan初心者向けコンテンツ。若干覚える量が多いので挫折心配になる分量ではあるが、普通初心者意識した内容であり、初学者にもおすすめできる範囲の内容と考える。

勿論、有償書籍のほうが充実したものも多いだろうが、無償の中では比較初心者向け。

paiza ラーニング:★★★★

URLhttps://paiza.jp/works/python3/primer

動画で学べるのとそこそこの範囲網羅しているのと、環境サービス提供しているのでインストール周りを気にしなくていいのがメリットとなる。

逆にいうと説明が音声のみなので自分のペースで進めたい人には少しもどかしいかも知れない。

有料サービスに申し込むとエンジニア質問ができるということなので詰まった時にいいのかも知れない

とはいえ初心者質問であれば、teratail 等で訊けばいいと思う。世話になった分のチップ的な課金ならアリかも知れない)

@IT Python入門:★★★★

URLhttps://atmarkit.itmedia.co.jp/ait/subtop/features/di/pybasic_index.html

他の言語をかじったことがある人が詳細を知りたい時には便利だが、初心者にはちょいちょい分かりづらいところがある。

特に第一回目はわからないところは無視してスルーしないと、難しそうな資料だと勘違いされそうなので、構成もう少し考えればいいのにと思う。

このレベル情報無料公開されているのは純粋に素晴らしいと思える。

Python ゼロからはじめるプログラミング サポート:★★★

URLhttps://mitani.cs.tsukuba.ac.jp/book_support/python/

Python ゼロからはじめるプログラミング 」の著者が、著書の副読本的にまとめたPDFスライド)が公開されたページ。網羅性も高く、図解もありそれなりにわかやすい。

ただし、著書を教科書として授業する際に便利な資料として想定したものと思われ、詳細な解説は著書を参照という内容になっているため、初心者向けかと言われると少し悩んでしまう。

プログラムに関する知識がまったくない人であれば、先に紹介している paiza ラーニング@ITコンテンツで基本を押さえて、その後で振り返りとしてスライドを参照するのが良いかと思う。

あるいは、著書を買うかどうか参考にするためのサマリーとして割り切って読み進めるのが良いかも知れない。

高等学校における「情報II」のためのデータサイエンスデータ解析入門:★★★

URLhttps://www.stat.go.jp/teacher/comp-learn-04.html

VIA:b.hatena.ne.jp/entry/s/twitter.com/tankazunori0914/status/1451365384238428161

これは Python というよりAI関連の話が中心となった資料で、7章におまけ程度にPythonの基礎も扱われている。

機械学習をやりたくて Pythonを始めようという方も一定数居るだろうからPythonをある程度押さえた上であれば有意義コンテンツと思われる。

コメント時は軽く眺めた程度だが、後でちゃんと精読しようと思える程度にはまとまっている。

Pythonプログラミング入門@東京大学:★★

URLhttps://utokyo-ipp.github.io/

既に元増田に書いた通りだが、東京大学学生向けの資料であり、遊びがなく、万人向けとは言い難い人を選ぶ資料である

よって、最初の講座としてこの資料を選ぶのは、学校教科書学業が大好きで、読むのが苦にならないという人だけが推奨で、それ以外の人は避けよう。

とはいえ、よくまとまっているいい資料なので、ステップアップの際に復習を兼ねて目を通す分には悪くない。

プログラミング演習 Python 2021@京都大学:★★

URLhttps://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/265459/1/Version2021_10_08_01.pdf

例の3000ブクマ2019年資料だったが2021年資料掲載されているので、掲示こちらを採用した。

イラスト等も交えて丁寧に解説しているが、本題の前にコンピュータ史のようなコンテンツがあったりするのがアカデミック資料だけあるなという印象。

あと例えば以下のようなコードがある。(資料92ページより引用

# x の平方根を求める

x = 2

#

rnew = x

#

diff = rnew - x / rnew

if (diff < 0):

  diff = -diff

while (diff > 1.0E-6):

  r1 = rnew

  r2 = x/r1

  rnew = (r1 + r2)/2

  print(r1, rnew, r2)

  diff = r1 - r2

  if (diff < 0):

    diff = -diff

コードのインデントがうまく働いてくれなかったので仕方がなく全角スペースで表現している。不等号も全角に変えている。コピペなどの際には注意されたし。増田記法よくわからんMarkdownで書かせて!

Python の初学者平方根計算という問題を与えてもなぁと。元々は現役の大学生に渡す資料なので普通に解けるでしょうけども。人を選ぶというのはこういうところを加味しての発言である

Python早見帳 + 機械学習帳@東京工業大学:★★

URLhttps://chokkan.github.io/python/index.html

   chokkan.github.io/mlnote/index.html

Python 早見帳も必要ものを一通りまとめたコンテンツになっていて東大コンテンツに近い。既に東大コンテンツを試した人であれば新しく試す必要性は薄いと感じる。

機械学習コンテンツはそれなりにボリュームがあるが、やはリファレンス的な使い方がおすすめで、別の資料で基礎を学んだ後に、知識の定着度を確認するために使うと良いだろうと思う。

データ分析のための統計学入門:★

URLwww.kunitomo-lab.sakura.ne.jp/2021-3-3Open(S).pdf

VIA: b.hatena.ne.jp/entry/s/twitter.com/tankazunori0914/status/1451365384238428161

自分は公開されたという話があった時に読んだが速攻で挫折した。Python学者には必要のない資料と考えてOK

分析をやっていきたいという人も取り敢えず P14 の練習問題を読んでみて、こういう資料で学んで行きたいと思えなかったら素直に積読しておけばいいと思うの。

ある程度分析問題をこなしたあとのステップアップに使用するのが良いかなと思える資料である

終わりに

ひやかし程度にぶくましてるだけなら別にいいのだけども、本当に Python習得したいのであれば、ある程度「初学者」のためのコンテンツをあたって挫折しないように学習するべきだと思っている。

Python 自体習得やすさとかライブラリの充実度とか結構バランスがいい言語だと思ってるので、沢山の人に普及するといいなという思いから、このようなコンテンツをまとめてみた。

誰かの役に立てばいいなぁ。

2021-10-20

Hyper Specloopマクロの項を読んでいたら

http://www.lispworks.com/documentation/lw51/CLHS/Body/m_loop.htm

for-as-in-list::= var [type-spec] in form1 [by step-fun]

http://www.lispworks.com/documentation/lw51/CLHS/Body/m_loop.htm

type-spec::= simple-type-spec | destructured-type-spec

simple-type-spec::= fixnum | float | t | nil

destructured-type-spec::= of-type d-type-spec

d-type-spec::= type-specifier | (d-type-spec . d-type-spec)

とあったので「simple-type-spec の所。nil? nil型とは何ぞや!?」と思い、さっそく打ち込んでみたところ

CL-USER> (loop 
           for x nil in '(nil nil nil))

NIL is an unknown keyword in FOR or AS clause in LOOP.
Current LOOP context: FOR X NIL IN '(NIL NIL NIL).
   [Condition of type CCL::SIMPLE-PROGRAM-ERROR]

nilkeyword認識されてエラー

だよねえ。

nilはNull型だった希ガス

CL-USER> (type-of nil)
NULL

うんうん。

T型はわかるんだ。戦前フォードベストセラーだ。

結局わからずじまいだったが、ひとつ収穫があって destructured-type-spec に基づき of-type を使えば

CL-USER> (loop 
           for (x . y) of-type (fixnum . fixnum) in '((1 . 2)(2 . 3))
           do (print (+ x y)))

3 
5 
NIL

このように書けるのだと初めて知った。

いや、どこかで読んだ記憶あるぞ?

それはそれとして、 of-type を使わなくてもこのように

CL-USER> (loop 
           for (x . y)(fixnum . fixnum) in '((1 . 2)(2 . 3))
           do (print (+ x y)))

3 
5 
NIL

書けてしまえるのでまだ少し混乱している。

あと、増田のpre記法、難しい。

2021-10-18

Pythonちゃんと学びたいなら

まずは10分試してみよう

Python無言ブクマをよく見かけるのでネットワークに続いてちょっと書いてみることにしました。

東大京大コンテンツ初心者向けでおススメという言説を見かけるのだけど、これは本当だろうか。私は人を選ぶのではないかと考えています

あれは確かによくまとまっているし、初心者向けに制作されてはいるのだとは思うのですが「大学学生に向けた授業で用いる」内容だということを失念して手放しで称賛しているきらいがあるなと。

私としてはあの資料は以下の前提で用意されていると考えています



とはいえ資料を読んだ時の理解度など人それぞれですから、私が勝手にそう思っているだけなのかもしれません。

あの資料が本当に初学者である自分に向いた資料であるのか。挫折せずに続けられそうか。それは10分やってみたらわかると思います

なのでまずは10分だけでもいいので実際に試してみて欲しいです。

なお、10分というのは、Google アカウントをお持ちの方限定で、AndroidGmailなど、Googleアカウントなんて持ってないぜという方は、アカウント作成プラス10分割くか、Googleに与したくないということであれば似たような環境であるAnacondaを導入してJupyterNotebookを起動させるかのいずれかで試してください。

後者はnotebook立ち上げる前にめんどくさくて嫌になる可能性があるけど、ポリシー問題から仕方ないよね。

google clab 触ってみる

Pythonの実行環境は色々なパターンが増えましたが、2021年現在で一番お手軽に試せる環境Google Colab です。異論は認めない。そしていまんとこ無料なので安心して欲しい。

Google Colab:https://colab.research.google.com/

アクセスすると「Colaboratory へようこそ」というページにたどり着きます

タイトル直下メニューが並んでおり、そこからファイル」⇒「ノートブックを新規作成」と選ぶだけで新しいノートブックが開きます。このノートブックというのが Python を実行するための環境になります

もしGoogleアカウントログインしていない場合、ここでログイン処理が間に挟まるので、その場合粛々とログインするだけでOKです。

再生ボタンのようなアイコンと、その横にテキストボックスが表示されたと思います。このテキストボックスは「セル」と呼称します。Excelと同じですね。

これは所謂Jupyter Notebookというもので、Google Colabのカスタマイズが施された専用バージョンです。

では、このテキストボックスにまず「1+1」と書いて実行してみましょう。

実行は再生アイコンクリックするか[Shift]+[Enter]キーを押下するかのいずれかで行なえます

結果として2と出れば完璧です。

下にもう1個セルが出てきたと思います。今度は次の2行書いて実行してみましょう。

msg_text = "Hello World!"

print(msg_text)



所謂Hello Worldですね。文字列が表示されたと思います

ここでお気づきかも知れませんが、最初の1+1print()を省いても結果が出力されました。

実はGoogle Colab(とその元になったJupyter Notebook)では、print()を書かなくてもセル最後の結果を表示してくれる機能があります

これはPython標準機能ではありませんので、その点にはご注意ください。基本的にはprint()などの表示するための関数必要で、セルで実行する際には例外であると覚えておいてください。

さて、これでPythonを実行する環境が整いました。多分ここまで5分も掛からずに実践できたと思いますいかがでしょうか。

Python 入門 @ 東大資料

ではあらためて東大Python資料をみてみましょう。

Pythonプログラミング入門: https://utokyo-ipp.github.io/

この中から以下の2つをGoogle Colabに写経しつつ実施いただきたいと思います。残り時間でぎりぎり終わるところまででひとまずいいかなと思います10分頑張ってみましょう。



いかがでしょう。Python楽しそうだと思えたでしょうか。このまま学習を進められそうでしょうか。

10分のお試しを終えて

まず、このまま続けられそうであれば、この資料は向いている(素養がある)のだと考えます上記飛ばした以下の項番も含めて順番に項目をやってください。



私見ですが、この資料学習順序も考えてまとめられた資料と思われるので、つまみ食い的に興味があるところだけというのは余りおすすめしません。

一歩ずつ進めていきましょう。それだけでPythonの入門は可能です。がっつり時間を割けるなら1週間もあれば入門できてしまうでしょう。

一方で、ちょっと無機質すぎて読みすすめるのに飽きてきたという方もいるのではないでしょうか。必要最低限の情報だけずっと読みすすめるって意外としんどいものです。

そんな人は、少しお金はかかりますが、やはり教科書の類を購入することをおすすめします。

体系的にまとめつつコラムなどを挟むことで読み進めやすいように配慮されたもので、挫折せずに最低限の知識を得るための最初の一歩としては、やはり書籍が良いでしょう。

初心者向けに漫画形式にした入門書もありますし、網羅的にまとまった教科書系も人気があります

まずは最初の一歩だけ、必要最小限の知識を得るための電子書籍であればこんな本もあります

https://amzn.to/3lOodKFPythonに興味はあるけれどもはじめの一歩をなかなか踏み出せないでいる人のためのPython「超基礎編」

Kindle Unlimited 対象なのでPrime Reading 加入者であれば無料で読めるのでお手に取ってみませんか。

これで駄目そうなら「マンガでざっくり学ぶPython」が良いのではないかなと思います

https://amzn.to/3aL0819マンガでざっくり学ぶPythonパイソン)

追記 2021/10/21

京都大学資料も拝見しました。こちらも内容としてはそれなりの網羅性があり、脱・初心者にむけた内容にまとまっているとは思います

難点はやはりアカデミックすぎるかなというところです。

https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/245698/1/Version2020_02_13_01.pdf

東大京大も「一般的な初学者」向けかというところに疑問符をつけたいのです。2冊目、3冊目辺りの知識強化として用いるのが良いかなというのが個人的見解で、1冊目はもう少しやさしい内容から始めるというのが良いと考えています

京大資料東大資料であれば京大資料おすすめします。

また、ゼロから知識習得というものWeb の1ページをつまみ食いしつつ覚えるというのは結構難しくて、それなりに体系化されたまとまった情報を順番に辿るのが近道だという風に私は考えています

ですので以下のような学習方法が良いかなと考えています

1. 初学者向けのかんたんな Python 本を買う(変数関数辺りが理解でき、イラストなども交えているのが理想的

2. 知識補強として京大資料 または東大資料を参照し、復習しつつ 項番1 の本では得られなかった知識の補強を行う(ここで脱・初心者を果たせる)

3. 自分が本当に目指したい分野の知識習得にあたる(項番 2 までで得られるのは汎用的な基礎知識である画像編集機械学習深層学習などはほぼ含まれていない)

そして、項番 1 の候補で挙げた本も250円Kindle Unlimited対象)と、1,574円です。時給換算で2時間分程度の費用で、右往左往せずに目的地に目指して進むことができると考えたら、そこまで高い買い物でもないのではないかなと考えています

投げ出したくなるような学習方式に敢えて挑んで、その通り放置してしまうのが一番勿体ないなと思い、この記事作成いたしました。

追記 2021/10/23

なんとなくググったらたどり着きました。Python Japanという老舗のサイト初心者向けコンテンツ掲載しています京大/東大資料より先にこちらを試したほうが良いかなと考えます。試しに覗いてみてください。

ゼロからPython入門講座:https://www.python.jp/train/index.html

他にも有益コンテンツが出てくるでしょうからコンテンツ個人的評価anond:20211023221206記事にまとめることにしました。

2021-06-12

下手くそなassert()書くなボケ

お前のassert()全部print()に書き換えろ。

2021-06-04

よくあるPythonの話

file = open('helloworld.py', 'r')
line = file.readline()
while line:
    print line
    line = file.readline()
  1. file.readable()を使ったらreadlineが1個になるからシンプルだよ=わざわざ判定してから読み込み待ちと2回にしなくても、こっちのほうが1回で判定してくれる
  2. file.closeがないよ= ガーベッジコレクタ自動Closeで十分

https://github.com/kokorohamoe/OpenProfile/blob/simple/700_sample/python/helloworld.py

2021-06-03

入力が7の自乗 つまり49 である場合に1 7である場合に0 それ以外の数字である場合-1を表示するプログラムを作れ

#!/usr/bin/python
i = input('#')
if i==7*7:
    print 1
elif i==0:
    print 0
else:
    print -1

https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/python.2/input.py

簡単には こうなんだけど

じゃぁ なにがいじわるって

文字列がきたら?

いきなり改行コードだったら?

全角で49だったらなどなど

想定外の処理というのが追加になる

 

言い方を変えれば 正解のときパターンは1つしかない

しかし、異常な入力をきちんと処理できるか?というパターンは無数にある

これがプログラムの難しさ

 

最低限落ちないから始まって49ではなく49って入力されても 間違っているとはいいずらいよなぁ

2021-06-02

file = open('helloworld.py', 'r')
lineno = None
while lineno != file.tell():
    lineno = file.tell()
    print file.readline()

対して違わないけど数万行だと、すごい違う

ちょっとした例だとおもいね

file = open('helloworld.py', 'r')
line = file.readline()
while line:
    print line
    line = file.readline()

何が違うか?

前のプログラムは、1行読み込んで、行番号が変わっていなければ

もう読むものがないから終了

次のプログラム

読み込みバッファを見て、残りがなければ終了

 

簡単な違いだけど

読み込みバッファってなに?

とか、行数が数万行あったらどうするの?

とか、細かい違いが生まれ

おっきなプログラムだと性能が2倍3倍とかわる

それが、プログラムの怖さ

 

いらない人間プログラマでした

いじめないでほしいよ

file = open('helloworld.py', 'r')
lwhile True
    line = file.readline()
    if not line:
        break
   print line

こうかくと、ダサいけど 行がなくなったら終わりってわかりやすいね

Python記法

>|Python

Pythonコード

||<

を半角でかくとPythonコードがきれいにかけるぜ

print "Hello"

アバロンの術

アンプシールドさせよ

https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/python/helloworld.py

file = open('helloworld.py', 'r')
no = None
while no != file.tell():
    no = file.tell()
    print file.readline()

これをわかりにくくはなるがPython的にシンプルに書くとこうなる 

 ↓

https://github.com/kokorohamoe/OpenProfile/blob/simple/700_sample/python/helloworld.py

file = open('helloworld.py', 'r')
line = file.readline
while line:
    print line
    line = file.readline()

管理者として記名はするがコードソングウェアとする(なんか作業中に聞いている音楽のために1曲買って)

 

tellってのは、行番号取得だから行番号が変わらなくなったら全部表示したから終わる というのが初心者向けコード

Pytonの機能を使って while line 行がある間ループ って書いちゃえるのが差分 ちょっと覚えることは増えるがPythonファイル操作に便利な機能が入っているよ

 

初心者向けに話すのがプロ おぼえとけよ じゃない 感じろ シールドを アンプにさせよ それがアバロンの術 

 

シールドアンプに挿したお前は おれより かっこいい! ぐぎゃぁ(やられたおと)

anond:20210602082449

with open("helloworld") as f:
    for line in f:
        try:
            x = int(line)
            if x >= 0:
                line = "*"
        except ValueError:
            pass
        print(line.strip())

anond:20210602081628

ワイも初心者やが、ファイルの内容表示するだけならこれでいいのではないかな。

with open('helloworld', 'r') as f:
    print(f.read())

よく考えると 正しいプログラム

https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/Java/Jurina/test2.py

f = open('t', 'r')

line = f.readline();

while line:

print line

line = f.readline()

f.close忘れてるよ

 ↑

いらねーよ

この短さで、終わるんだから自動でCloseされるよ

 

print lineの前にはタブがあるが

技術者まれ増田がかってに改行やスペースを削ることがいかGeekではないかを示すために

あえてそのままとしたPython 記法を使えばいいのだろうが、 デフォルトPythonおかし

2021-05-31

https://github.com/kokorohamoe/OpenProfile/blob/master/700_sample/Java/Jurina/reader.cpp

とてもシンプルコード

int main(int argc,const char*argv[]){

int v;

char buffer[1024];

while(1){

printf("input\n");

scanf("%s%d",buffer,&v);

if(strcmp(buffer,"print")==0)

fprintf(stderr, "public class base{\n"

"public static void main(String[] args){\n"

"int i = %d;\n"

"System.out.println(i);}}\n",v);

}

return 0;

}

anond:20210531222147

もっと簡単なJurinaは

print 1

一番最初仕様print のあとに数字を1つ受け取って それを出力せよ

scanf("%s %d",&name,&v);で処理できる内容とし

char name[1024];

int v;

程度とする

これ簡単に作れるよね?

jurina

cat filename.jurina

print "Hello world";

という命令ファイルから受け取ったら

public class filename{

public static void main(String[] args){

System.out.println("Hello world");

}

}

と出力するプログラムをjurinaと名付けるとする

cat filename.jurina

int i=1;

print i;

public class filename{

public static void main(String[] args){

int i=1;

System.out.println(i);

}

}

ものすごく単純なPythonっぽい独自言語

Javaに置き換えて出力するだけのJava プリプロセッサである

さて、このJurina言語JAVA VMで動くと思うか?

   

言いたいことVMを解析して、OPコードを吐くコンパイラを作ろうとしていたが

そもそもコンパイラが作れるならJavaソースコードを吐いてしまえば良いことに気がついた

2021-05-20

anond:20210520113055

print('増田には自分の事頭がいいと思ってる馬鹿IT技術者が沢山いるしニートでもSESなら平気じゃない?')

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