本連載は、Pythonの文法について、教科書のように詳細に記載するというよりも、「プログラミングの普遍的な概念を理解した上で、Pythonのコードを実際に書く」という実践的なスタイルで解説していきます。

みなさんはプログラミングは得意ですか。わざわざこのような記事を見ているということは、もしかしたら得意なかたかもしれませんね。ただ、何年もプログラミングを仕事や研究で経験されていないと「得意でない」「わからない」という場合がほとんどではないでしょうか。 本連載ではそのようなプログラミングを得意としていない人を対象に、Pythonと呼ばれるプログラミング言語を使ってプログラミングの概念や文法について学んでもらいたいと考えています。そこで、Pythonの文法について教科書のように詳細に記載するというよりも、「プログラミングの普遍的な概念を理解したうえで、Pythonのコードを実際に書く」という実践的なスタイルで解説していきます。最終的には、Python以外の、CやJavaといった言語を学びたい方でも有用なコンテンツとなるよう、心がけていきます。 なお、本連載はシスコシステムズ Japanの社内で
Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks). Contrary to most other Python modules with similar functionality, the core data structures and algorithms are implemented in C++, making extensive use of template metaprogramming, based heavily on the Boost Graph Library. This confers it a level of performance that is comparable (both in
今回は「Python」について。一般ユーザにはなじみの薄い存在だが、なかなかどうして、かなり"使える"スクリプト言語だ。そのPythonにGUIを追加できる「wxPython」の導入手順など、OS Xで利用するための環境構築法を紹介しよう。 OS XでPythonを使う理由 OS Xはスクリプト言語が充実したOS、と言っていいだろう。UNIX系OSゆえにシェルのサポートは当たり前、shやbashなどBシェル系はもちろん、tcshなどCシェル系のシェルスクリプトまで動作する。PerlやTcl/Tk、PHPのサポートもUNIX系OSならば珍しくはない。一方、OSの基盤はBSDに変わったがMac OSの名を冠するOSだけに、伝統のAppleScriptにも対応する。 開発者目線で気になるのは、「Ruby」と「Python」がサポートされていることかもしれない。どちらもオブジェクト指向で言語仕様が
9月29日、スクリプト言語Pythonのメジャーアップデート版となる「Python 3.3.0」がリリースされた。言語仕様の凍結が解除sれた初のバージョンで、新しい文法やライブラリモジュールが追加されている。 Pythonは言語仕様の互換性を維持したままアップデートが続けられているバージョン2系と、バージョン2系とは互換性のない変更が加えられたバージョン3系という2系統がリリースされており、Python 3.3はバージョン3系の最新版となる。バージョン3系では新機能の追加を積極的に行っているものの、バージョン2系とは互換性がないため、サードパーティによるライブラリの対応などが遅れており、利用がなかなか進んでいないという現状があった。そこでPython開発チームでは3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を設けた。3.3はモラトリアム期間が終了し新機能が追
Eclipse 3.4(Ganymede)からの移行 今までLLはEclipse 3.4に各種プラグインを入れて書いていたのですが、Eclipse 3.5を試してみたくなったので、その過程を記録しておきます。 環境はWindows Vista 32bitです。 Apache 2.2, PHP 5.2.9, Ruby 1.8.7, RubyGems 1.3.4, Python 2.5.2, Perl 5.10.0 がインストール済です(Program Filesの中にインストールするのはやめた方がいいと思います)。 Eclipse 3.5のダウンロード Enabling Open Innovation & Collaboration | The Eclipse Foundationの右上のDownload Eclipseに進みます。 Eclipse for PHP DevelopersのWi
PyDev development PyDev is open source and depends on your contributions! This may be in the form of bug fixes, answers on stackoverflow, new features... Another option is financially supporting it at: Patreon (which provides a way to support it monthly and get rewards starting with $1). Or through 1-time contributions at: Paypal Stripe PyDev Stripe Payments (at brainwy.com) Search PyDev-related c
今回は第3回の冒頭で紹介した、Numpyの導入方法と簡単な使い方について説明します。次回で様々な分布を扱うためにNumpyの準備をしておきましょう。 Numpyの導入 Numpyはオープンソースの拡張モジュールで行列や多次元配列と、それらを操作するための数学関数ライブラリを提供しています。Numpyの内部はC言語で実装されているため、普通にPythonで実装した時と比較するとはるかに高速に実行することが可能です。 ここではインストールの仕方とNumpyの簡単な実行例を確認しておきましょう。 インストール WindowsとMacOSXのPCにNumpyをインストールする場合は、NumpyのサイトのDownloadのページの上の方にあるNumPyのProjectからインストール先のマシンのOSに対応したファイルをダウンロードして実行してください。 しかし、MacOSXにデフォルトでバインドされ
さらに詳細な利用方法が知りたい方は、Yahoo!デベロッパーズネットワークのマニュアルを参照してください。 ベイジアンフィルタの実装 ここから本格的にベイジアンフィルタの実装に入っていきます。 その前に、まずは先程のリスト1のコードを利用して入力された文章をわかち書きし、単語の集合を返す関数を作成しnaivebayes.pyとして保存しましょう。こちらも先程のmorphological.pyと同様にutf-8で保存してください。 リスト2 文章の分割をする関数(naivebayes.py) # -*- coding: utf-8 -*- import math import sys #yahoo!形態素解析 import morphological def getwords(doc): words = [s.lower() for s in morphological.split(doc)
Pythonを使ったプログラミングについて、今回から解説します。PerlやRubyと比べると、Pythonは日本ではまだマイナーな印象がありますが、「Google三大言語」(C++、Java、Pythonのこと)のひとつでもあり、Facebookをはじめとしたメジャーなサイトでの事例が急速に増えていることから、日本でも今後普及する可能性が高いです。私が社長をしているゼロスタートコミュニケーションズという会社では、設立当時(4年ほど前)から自社製品にはPythonを使っており、ここ半年間、周囲でPythonを使用しているケースが増えているのは嬉しい限りです。 Pythonに限らず、プログラミング言語が日本で普及するかどうかの鍵を握っているのは、(幸か不幸か)日本語情報の多寡であると思います。Rubyの事情は正直よくわかりませんが、たとえばPerlがこれだけ日本でメジャーになったのは、Perl
Google検索サービスのインフラストラクチャを基盤にした「Google App Engine」。各種ライブラリやアプリケーション・フレームワークが提供される。データを永続的に保管するサービスがあり,それをデータベースのように利用可能。その一方で,「リクエストの処理は30秒以内」といった制約がある。 米Googleが提供する「Google App Engine(以下,GAE)」は,Webアプリケーションの開発・実行環境を提供するサービスです。基本的にはGoogle検索サービスと同じシステム基盤なので,スケーラビリティに優れた実行環境であるといえるでしょう。GAEの上でアプリケーションを開発する際,何がポイントとなるのでしょうか。その基本を,今回と次回の2回に分けて解説します。 今回はGAEの概要編で,まずGAEの全体像を説明します。そのうえで,開発の手続きと環境,提供されるライブラリとフレ
# Python 3: Fibonacci series up to n >>> def fib(n): >>> a, b = 0, 1 >>> while a < n: >>> print(a, end=' ') >>> a, b = b, a+b >>> print() >>> fib(1000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 Functions Defined The core of extensible programming is defining functions. Python allows mandatory and optional arguments, keyword arguments, and even arbitrary argument lists. More about defining f
このシリーズでは前回に引き続き、Python 2.xとPython 3.0の違いを詳しく比較します。バージョンの変更により、Python 3.0のデータ型に重要な(下位互換性のない)変更が行われました。今回は、Python 3.0における数値、文字列、バイナリデータの基本データ型の処理についての解説をとおして、データ型の変更がどのようにコードに影響するかを説明します。 はじめに このシリーズの第1回では、コア言語と型システムの重要な変更点について解説しました。今回は、Python 3.0における数値、文字列、バイナリデータの基本データ型の処理を中心に説明します。 これまでの連載 Python 3.0開発者ガイド:コア言語の変更点 PEP 237:長整数型と整数型の統合 Python 2.xには、intとlongの2つの整数型がありました。int型は、マシンの「ネイティブ」ワードサイズ(現在
PyScripterとは 最近はEclipseやNetBeansといった統合開発環境でもスクリプト言語がサポートされるようになっている。これらの統合開発環境は高機能ではあるものの、快適に利用するためにはそれなりのマシンスペックが必要だ。 せっかく軽快なスクリプト言語で開発するのに重い統合開発環境を使わなくてはならないのは本末転倒と感じる開発者もいるかもしれない。事実、スクリプト言語向けの高機能な統合開発環境が存在するにもかかわらず、テキストエディタでコーディングを行う開発者も多いのが現状だ。 今回は軽快に動作するPython向けのWindows用統合開発環境、PyScripterを紹介する。 図1 PyScripter なお、本稿執筆時点でのPyScripterの最新版は2009年5月にリリースされた1.9.9.7となっており、本稿の内容はこのバージョンに基づいている。 ソースコードの編集
リスト処理関数の仕様変更 Python3.0では、リスト処理に関わる多くの関数/メソッドに変更が加えられました。また、リスト処理を行う際に非常に便利なリスト内包表記にも追加・変更が加えられています。今回は、それらの関数/メソッド/構文について書きたいと思います。 iteratorへの変更 まずは、リスト1のソースをPython2とPython3で実行してみてください。 リスト1 リスト処理関数 print(range(10)) # range print(map((2).__mul__, range(10))) # map print(filter(lambda x: x % 2, range(10))) # filter print(zip(range(5), range(5, 10))) # zip d = dict(aa=100, bb=300) print(d.keys()) #
関数アノテーションとは 関数アノテーションとは関数の引数と戻り値に付加情報をつける機能です。PEP 3107 -- Function Annotationsで定義されていて、Python 2.6へbackportされていないので、利用するにはPython 3.0以降が必要になります。 まずは、インタラクティブシェルで関数アノテーションの例を見てみましょう。 >>> def foo(a: "a argument", b: int) -> ["return", "value"]: ... return a+b ... >>> help(foo) Help on function foo in module __main__: foo(a: 'a argument', b: int) -> ['return', 'value'] >>> foo.__annotations__ {'a': 'a
文字列操作は、Pythonのようなスクリプト言語の「主戦場」と言えます。Web開発に限らず、バイオインフォマティクスなど幅広い分野で盛んに活用される機能です。中でも文字列のフォーマッティングは、よく使われる機能のひとつです。 Python 3.0では、従来からあった%演算子や、Templateクラスを使った文字列フォーマットに加えて、Pythonic(Python的)でより迷いの少ない文字列フォーマットの仕組みが追加されました。文字列型にformat()というメソッドが追加されたのです。この記事では、format()メソッドの活用方法や利点について解説します。 format()メソッド Python 3.0では、文字列オブジェクトにformat()というメソッドが追加されました。このメソッドを使うと、テンプレート文字列を元にした文字列のフォーマッティングが可能です。なお、このメソッドは2.
SharpDevelopは、オープンソースで開発されている.NETの統合開発環境です。利用できるプログラミング言語としては、C#、VB.NET、F#、IronPython、Boo、ILAsmに対応しており、開発できるアプリケーションの種類としては、Windowsフォーム、WPF、ASP.NE、Compact Framework等に対応しています。 入手方法 SharpDevelopはic#codeとCodePlexからダウンロードできます。執筆時点での最新バージョンは3.0です。SharpDevelop3.0を動作させるには、.NET Framework3.5 SP1が必要です。 インストール方法 インストールするにはインストーラを起動し、Nextボタンをクリックしていきます。 インストーラを起動するとマスコットのカクレクマノミが表示される 途中で拡張子の関連付け画面が出てきますが、Vis
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く