Code Archive Skip to content Google About Google Privacy Terms
はじめに 伝統的なスタイルを卒業して、OOPを習得するときに、越えなければならない壁の一つが配列です。2次元配列を扱った事例は多数ありますが、ともすると、配列が主役になり、その中身が脇役になる場面も少なくありません。そこで、発想を転換して主客逆転させると、新しい世界、オブジェクト指向の世界が開けてきます。 その効用は、冗長な条件判定や例外処理が不要になり、例外が発生するのを防ぐだけではありません。コードの見通しをよくし、バグの発見が容易になる、強力な処方箋となります。 今回は、第2回に続いて、伊藤が担当します。先の連載で紹介した2つのゲームから、共通するフレームワークを抽出して、それをもとにオセロゲームを作成します。前回の復習を兼ねて、初心に還ったつもりで解説しますので、よろしくお願いします。
はじめに 過去に作成したコードを眺めると、プログラミングを始めた頃には気付かなかった欠陥(必ずしもバグとは言えないもの)が見えてきます。リサイクルと同様、あるソフトウェアを設計する際に、後の再利用を考慮した場合とそうでない場合では、メンテナンスに伴うコストが激変します。同じ教訓は「西暦二千年問題」からも学べます。 今回は、先の連載で紹介した3つのゲームから共通する部分をフレームワークとして抽出し、再考します。対象読者 こんな症状を抱えているなら……。コーディングよりデバッグ/メンテナンス作業に時間を割かれる仕様の変更に柔軟かつ迅速に対処できない 前にも同じことが 先の連載で紹介した15パズル/ライフゲームには、重複する部分があります。これらのコードを作成しているときに、デジャビュにも似た「何度も同じようなコードを書いた」感覚がしませんでしたか。実際にオセロゲームは、15パズルゲームの改良
はじめに クライアントにデータを操作させる必要がある場合には、Excelのスプレッドシートを用意するのが最も簡単です。スプレッドシートはPythonを使って簡単に作成できますし、スプレッドシートをWebからダウンロードさせることも、DjangoというWebフレームワークを使えば簡単です。この記事ではスプレッドシートの進化の歴史について簡単に触れた後、この2つの操作方法について説明します。スプレッドシートの進化の歴史 サメは何百年もの間、あまり進化していません。その最大の理由は、野生で十分に生きていけるからです。獲物を実に上手く捕らえることができるので、サメは自らを適応させる必要も、変化する必要もなかったのです。これ以上進化させるところはないというほどに、サメは完璧な恐怖のフィッシュハンターです。 サメと同様に、スプレッドシートも数十年の間、あまり進化してきませんでした。サメの例と同じく、ス
PythonにおけるWebフレームワーク 数年前にPythonでWebアプリケーションを書こうとした人たちは、選択肢の多さに戸惑ったことでしょう。一群のWebフレームワークの中からどれかを選び、アプリケーションをプロダクション環境にデプロイする妥当な方法を考えなければならなかったはずです。そういうわけで、Pythonは千個のフレームワークを持つ言語だというジョークが流布することになったのです。 Pythonコミュニティには、この問題の解決策として、フレームワークの数を絞るか、それとも多様性を良しとするかという選択がありました。コミュニティの性格上、フレームワークを絞り込むのは魅力的なオプションに見えなかったので、Webの開発にPythonを使用するための障壁を低くする方法としてPEP 333が書かれ、Web Server Gateway Interface(WSGI)が生まれました。WSG
pywinauto (c) Mark Mc Mahon 2006 Released under the LGPL licence What is it pywinauto is a set of python modules to automate the Microsoft Windows GUI. At it's simplest it allows you to send mouse and keyboard actions to windows dialogs and controls. Installation Download pywinauto from https://sourceforge.net/project/showfiles.php?group_id=157379 Unzip the pywinauto zip file to a folder. Run pyth
Ãø¼Ô: Steve Purcell, <stephen_purcell at yahoo dot com> Project website: http://pyunit.sourceforge.net/ ÆâÍÆ ³µ´Ñ ¥·¥¹¥Æ¥àÍ×·ï PyUnit ¤ò»È¤Ã¤Æ¥Æ¥¹¥È¤ò½ñ¤¯¤Ë¤Ï ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡ TestCases ¤Î¾Ò²ð ñ½ã¤Ê¥Æ¥¹¥È¡¦¥±¡¼¥¹¤òºî¤ë Á°½àÈ÷¥³¡¼¥É¤ÎºÆÍøÍÑ: ¡Öºî¤êÉÕ¤±¡×¤òºî¤ë Ê£¿ô¤Î¥Æ¥¹¥È¡¦¥á¥½¥Ã¥É¤ò¤â¤Ã¤¿ TestCase ¥¯¥é¥¹ ¥Æ¥¹¥È¡¦¥±¡¼¥¹¤ò¥Æ¥¹¥È¡¦¥¹¡¼¥Ä¤Ë¤Þ¤È¤á¤ë ¥Æ¥¹¥È¡¦¥¹¡¼¥Ä¤òÆþ¤ì»Ò¤Ë¤¹¤ë ¥Æ¥¹¥È¤ò¤¹¤ë¥³¡¼¥É¤ÎÃÖ
>>> from random import * >>> m = {} >>> for e in range(100): ... k = randint(0,9) ... m[k] = m.get(k,0) + 1 >>> reduce(lambda acc,e:acc+e, m.values(), 0) 100 >>> for k,v in m.items(): print "%d: %s %d"%(k,"*"*v,v) 0: ******** 8 1: ********** 10 2: ******** 8 3: ******** 8 4: ************* 13 5: ******** 8 6: ********* 9 7: ************ 12 8: ************ 12 9: ************ 12 これは
何を今さらC言語? K&Rと言えば、C言語のバイブルとされ、世界中で愛読されています。一般書と肩を並べて、専門書がロングセラーを続けるという、希有な事例の一つです。特に、hello worldを出力するコードの断片は、世界で最も有名なプログラムになりました。最近では「K&Rを読んだことがない」という新人に遭遇しますが、新しいプログラミング言語を学ぶときには、なぜかhello worldの事例を繰り返し引用します。 これから、Pythonを学ぼうとするときに、まるで「寝てる子を起こすな」とでも言われんばかりに「何を今さらC言語」という声が聞こえてきそうです。極論すると、Javaに限らず、Ruby/Pythonさえも「C言語で書かれたアプリケーション」の一つにすぎません。プログラミング言語Objective-Cの開発者でもあるBrad Coxさんは、ソフトウェアICという概念を提唱しました。機
はじめに 連載2回目は、プログラミング歴2年余の伊藤が担当します。今回のパズルゲームは、プログラミングを始めたばかりの半年に満たない頃に作成したものです。当時を振り返りながら、初心に還ったつもりで解説しますので、よろしくお願いします。 伝統的なスタイルを卒業して、OOPを習得するときに、越えなければならない壁の一つが配列です。2次元配列を扱った事例は多数ありますが、ともすると配列が主役になり、その中身が脇役になる場面も少なくありません。そこで、発想を転換して主客逆転させると、新しい世界が見えてくるかもしれません。
はじめに こんにちわ、hirataraです。 本稿では、オブジェクト指向のスクリプト言語であるPythonの紹介をしたいと思います。と言っても、実は私がPythonを勉強し始めたのは数ヶ月前のことで、まだPythonに関してさほど詳しいとは言えません。それでもこの記事を書こうと思い立ったのは、ある言語が他の言語に比べて面白い部分と言うのは、その言語にどっぷり漬かってその言語を使うことが当たり前になっている人間よりも、その言語を好きになり始めたくらいの人間の方が見つけやすいのではないかという思いからです。 そのような事情で、もしかすると本当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。この記事で、少しでもPythonに興味を持ってくれる方が増えることを願っています。対象読者他言語でのプログラミング経験者Pytho
世界の中心でモデルを叫ぶ 最初に、アブリケーションの中核となるモデルを規定します。ここでは、サイクロイドを表現することが目的なので、そのために必要な情報を管理するクラスCycloidを規定します。 from math import * class Cycloid: def __init__(self, radius, cycle, step): self.path = self._path(radius, cycle, step) self.context = radius, cycle, step def _path(self, radius, cycle, step): s = [] for i in range(step+1): t = i*cycle/step x = radius*(t-sin(t)) y = radius*(1-cos(t)) s.appe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く