<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>錦蛇愛好倶樂部のブログ</title>
<link>https://ameblo.jp/pyclub/</link>
<atom:link href="https://rssblog.ameba.jp/pyclub/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ブログの説明を入力します。</description>
<language>ja</language>
<item>
<title>Python3のprint()函數</title>
<description>
<![CDATA[ <p>Python2.XからPython3.Xに移る過程で、printの仕樣が變つた。文から函數になつて、文字列の扱ひ方も變化した。そこらへんを細かく説明してゐる本があまり無いので、キモを簡單に説明しよう。</p><br><br><p><font color="#0000ff">&gt;&gt;&gt; print u"%03d: %s" % (21, u'珈琲')</font></p><p><font color="#0000ff">021: 珈琲</font></p><br><br><p>Python2では、こんな感じでprint文を使ふ。これをPython3でどう書けば良いのかについて、あまり情報がない。僕も結構、調べるのに時間が掛かつた。以下がそれである。</p><br><p><font color="#0000ff">&gt;&gt;&gt; print ("{0:03d}: {1:s}".format (21, '珈琲'))</font></p><p><font color="#0000ff">021: 珈琲</font></p><br><br><p>これで良いのである。Python3の文字列はデフォルトでユニコードだから、<font color="#ff0000">u""</font>と<font color="#ff0000">u</font>を付ける必要がない。<font color="#ff0000">"%</font><font color="#ff0000">03</font><font color="#ff0000">d"</font>は<font color="#ff0000">"{0}"</font>だとフォーマットが指定できないのでコロン(:)の後に指定する。</p><br><br><p>あとは％ではなくformat()函數でデータを流し込む。％方式はPython3でも現在のところ動作するが、これはいづれは使へなくなる。早くfotmat()函數に慣れた方が良い。</p><br><br><p>Python3方式のprint()函數と文字列のフォーマットは、Python2でも使用可能である。その時は<font color="#00bfff">おまじなひ</font>で前方に以下の宣言をしておけば良い。</p><br><br><p><font color="#0000ff">from __future__ import division, print_function, unicode_literals</font></p><br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-11758496029.html</link>
<pubDate>Sun, 26 Jan 2014 21:36:18 +0900</pubDate>
</item>
<item>
<title>printf_s ()で'Hello, world'</title>
<description>
<![CDATA[ <p>以前、「<span style="WHITE-SPACE: pre-wrap; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FLOAT: none; COLOR: rgb(0,0,0); FONT: 12px arial, sans, sans-serif; DISPLAY: inline !important; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px" target="_blank"><a href="http://ameblo.jp/pyclub/entry-10844360674.html">printf()で'Hello, world'</a> </span>」といふ記事を書いた事がある。WindowsでC言語のprintf ()函數をPythonから呼び出す方法について述べた。</p><br><br><p>その後、VC++には、printf()をより安全に書き直したprintf_s()といふ函數がある事を知つた。今囘はこれをPythonから呼び出してみよう。IronPython でもCPythonでも、動作可能である（但し、Windowsに限る）</p><br><br><p><font color="#0000ff">from __future__ import division, print_function, unicode_literals<br></font></p><p><font color="#0000ff">if "__main__" == __name__:</font></p><p><font color="#0000ff"><br></font></p><p><font color="#0000ff">　　msvcrt = cdll.msvcrt<br>　　msvcrt.printf (b"Hello, World !\n")<br>　　msvcrt.printf_s (b"Hello, World !\n")</font></p><p><font color="#0000ff"><br></font></p><p>どちらもちやんと、Hello, World ! と表示される。このプログラムは、半角の空白で始まる文は空白が削除されるので、全角の空白を用ゐてゐる。</p><br><br><p>コピペされるときはご注意のこと。</p><br><br><p>それと文字列をバイナリ指定（b"文字列"）しないと、IronPythonでは「Ｈ」しか表示されなかつた。</p>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-11749288421.html</link>
<pubDate>Mon, 13 Jan 2014 18:50:37 +0900</pubDate>
</item>
<item>
<title>IronPythonでLinq to Objects</title>
<description>
<![CDATA[ <p>最近、「C#プログラムの効率的な書き方」といふ本を讀むで、LINQ to Objectsに嵌まつてゐる。といつても、僕はC#ではなくIron Pythonでプログラムするのだが。<br><br><br>といふ訣で、これからしばらくIron PythonでLINQプログラムを書くためのテクを公開する。興味のある方は、Iron Pythonを導入の上で御覽ください（CPythonでは動作しません）<br></p><p><br>まつ゛AllメソッドをC#で使ふとかうなる。プログラムの意味は今後に少しづつ説明していく。けふは雰囲気だけ。<br><br></p><p><font color="#00bfff">using System;<br>using System.Linq;</font></p><p><font color="#00bfff">class Program<br>{<br>    static void<br>    Main (string[] args)<br>    {<br>        int[] a = {2, 1, 0, -1, 2};<br>        Console.WriteLine (a.All (c =&gt; 0 != c) ? "Safe:": "Danger:");<br>        foreach (var item in a)<br>        {<br>            if (0 != item)<br>            {<br>                Console.WriteLine (100/item);<br>            }<br>        }<br>    }<br>}</font></p><br><p>これをIronPythonで書くとかうなる。</p><br><p><font color="#ee82ee">import clr<br>clr.AddReference ("System.Core")</font></p><p><font color="#ee82ee">from System import Console<br>import System<br>clr.ImportExtensions (System.Linq)</font></p><p><font color="#00bfff"><br></font></p><p><font color="#00bfff">a = [2, 1, 0, -1, 2]</font></p><p><font color="#00bfff">if a.All (lambda c: True if 0 != c else False):</font></p><p><font color="#00bfff">    Console.WriteLine ("Safe:")<br>    for item in a:<br>        Console.WriteLine (100/item)<br>else:<br>    Console.WriteLine ("Danger !")</font></p><br><p>今囘のキモはプログラムではなく宣言にある。<font color="#ff0000">Iron PythonでLINQ to Objectsを使ふには、ピンクの部分を宣言する事。</font></p><br><br><p>あとの細かい事は、これから順次、記事として公開していく。</p><br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-11748941978.html</link>
<pubDate>Mon, 13 Jan 2014 07:07:10 +0900</pubDate>
</item>
<item>
<title>低水準入出力</title>
<description>
<![CDATA[ Pythonで電子書類を入出力するときには、ビルトインされたopen()等の函數を使用する。これは皆樣、御存知の通り。<br><br><br>しかし、これらの函數は、Ｃ言語でいふところの高水準入出力である。Pythonのopen()は、Ｃ言語のfopen()と大差ないのだ。Ｃ言語のやうな低水準入出力の方法はないものだらうか。<br><br><br>實はPythonには、低水準入出力も用意されてゐる。電子書類（ファイル）記述子を使用したプログラミングが可能なのだ。以下は、その例である。<br><br><br><font color="#0000FF"><br>    import os<br><br>    try:<br>        fd = os.open ("file.txt", os.O_WRONLY|os.O_CREAT|os.O_APPEND)<br>        print (u"[DEBUG] 電子書類記述子： %d" % fd)<br>        os.write (fd, "Hello, worls!\n")<br>        os.close (fd)<br>    except IOError:<br>        print (u"電子書類の入出力で不具合が發生した。")<br><br></font><br><br><br>見れば明らかなやうに、osライブラリのopen(), write(), close()などは低水準入出力なのである。<br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-11069342779.html</link>
<pubDate>Sat, 05 Nov 2011 13:02:49 +0900</pubDate>
</item>
<item>
<title>MessageBoxで'Hello, world'</title>
<description>
<![CDATA[ <a href="http://ameblo.jp/pyclub/entry-10844360674.html" target="_blank">前囘のprintf()の記事</a>で、錦蛇(Python)でＣ言語のライブラリが呼び出せるなら、諸窗(Windows)のAPIも呼び出せるのでは、と氣づいた方、正解です。試しに傳言箱(MessageBox)を呼び出してみませう。<br><br><br><font color="#0000FF">from ctypes import *<br>user = windll.user32<br>user.MessageBoxA(0, 'Message', 'Title', 0)</font><br><br><br>たつたこれだけ。<strong>鋼鐵の錦蛇(IronPython)</strong>を使はなくても、<strong>普通の錦蛇(CPython)</strong>でちやんと<font color="#FF0000">諸窗のプログラミングが可能</font>です。勿論、この臺本はマツクでは動作しませんよ。<br><br><br>現在、<strong>PyObjC</strong>について書かれた洋書を取り寄せてゐる最中なので、マツクについては別の機會に書きます。勿論、<font color="#FF0000">錦蛇だけでマツクのプログラミングも可能</font>です。<br><br><br>錦蛇についての興味が湧いて來ましたか。<font color="#FF0000">たつた三行で、最勝の諸窗プログラミングが出來てしまひました</font>ね。次囘は、<strong>ctypes</strong>について少し詳しく説明します。<font color="#FF0000">これが錦蛇とＣ言語の糊（のり）</font>なんです。<br><br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-10845059375.html</link>
<pubDate>Tue, 29 Mar 2011 18:51:09 +0900</pubDate>
</item>
<item>
<title>printf()で'Hello, world'</title>
<description>
<![CDATA[ 前回は錦蛇(Python)でHello, world!を表示させました。print()函數を使用したのでしたね。C言語のやうにprintf()函數は使へないのでせうか。實は出來るんです。まづは諸窗(Windows)から。<br><br><br><font color="#0000FF">from ctypes import *<br>vcrt = cdll.msvcrt<br>vcrt.printf("Hello, world!")</font><br><br>これをテキスト・ファイルで保存すれば終りです。假にpoi.pyと保存したとします。コマンド・プロンプトから例によつて&gt; python poi.pyで實行されます。<br><br><br>一應、説明しときますね。最初の二行はＣ言語のライブラリの讀込みです。この部分は環境によつて異なります。因みに林檎社のマツク基本ソフト十(MacOS X)だと以下のやうになります。<br><br><br><font color="#0000FF">from ctypes import *<br>vcrt = CDLL("libc.dylib")<br>vcrt.printf("Hello, world!")</font><br><br><br>これはprintf()函數だけではありませんよ。<font color="#FF0000">Ｃ言語のライブラリは、基本的に錦蛇で呼び出す事が可能</font>です。その爲の仕組が一行目のfrom ctypes import *です。<br><br><br>僕はC言語のプログラマーですが、最近は自宅でのプログラミングでＣ言語を使用する事がなくなりました。<font color="#FF0000">Ｃ言語で出來る事は錦蛇で出來る</font>し、<font color="#FF0000">錦蛇の方が御手輕</font>です。
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-10844360674.html</link>
<pubDate>Mon, 28 Mar 2011 23:13:06 +0900</pubDate>
</item>
<item>
<title>御約束の'Hello, world!'から</title>
<description>
<![CDATA[ 正字正假名遣によるプログラミング入門講座です。折角なので、片仮名言葉なども無理矢理漢字に直す事にします。そんな訣で、當賦錄（ブログ）ではPythonも錦蛇と書きます。<br><br><br>Iron Pythonは取敢ず鋼鐵の錦蛇といふ事で、しばらく出て來ませんが。ところで、プログラムの紹介記事は大抵、Hello, world!と表示する處から始まりますので、我が錦蛇愛好倶樂部でも同樣に。<br><br><br>print('Hello, world!')<br><br><br>たつたこれだけです。メモ帖などにコピペして適當な名前で保存してださい。擴張子は.pyとするやうに。錦蛇はすでに導入濟ですよね。保存したときの書類の名前を假にpoi.pyとします。<br><br><br>コマンド・プロンプトかTerminal.app（皆樣の環境に合はせて）を起動してください。僕はマツク派なので、Terminal.appを起動します。諸窗(Windows)の方はPowerShellでも構ひませんよ。<br><br><br>python poi.py<br><br><br>たつたこれだけでHello, world!が表示されます。本によつては print 'Hello, world'と書いてありますが、かうすると錦蛇參式(Python 3.X)以降では動作しません。<br><br><br>錦蛇は貳式(2.X)から參式(3.X)に履歴を上げたときに、幾つかの仕樣の見直しを行ひました。そのため貳式では問題なく動作する臺本（スクリプト）が參式で動作しない、といふ事があります。<br><br><br>printも參式からは文ではなく函數になりました。だから貳式を使用してゐる場合でも、なるべくprintには括弧()をつけませう。<br><br><br>皆さんは貳式と參式のどちらを導入されましたか。參式を導入された方は次のやうに打ち込む必要がありました。ごめんなさい。<br><br><br>python3 poi.py<br><br><br>參式の錦蛇の方が仕樣は合理的なのですが、世に出囘つてゐるツールやフレームワークのほとんどは參式の文法に對應してをりません。<br><br><br>でも、御心配無く。貳式と參式の兩方を導入すれば良いのです。貳式と參式は共存が可能です。ついでに鋼鐵の錦蛇も共存可能なのですが、それはまた別の機會に説明します。<br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-10843209974.html</link>
<pubDate>Sun, 27 Mar 2011 21:19:19 +0900</pubDate>
</item>
<item>
<title>正字正假名遣で書かれたプログラミングの入門講座を始めます</title>
<description>
<![CDATA[ これから、正字正假名遣で書かれたプログラミングの入門講座を始めます。何故、正字正假名遣かといふと、僕の趣味です。讀みにくいとか讀めないといふ方は讀まなくて結構です。まあ、讀めなければ讀まないか。<br><br><br>何故、「錦蛇愛好倶樂部」でプログラミングの入門かといふと、使用する言語がPythonだからです。錦蛇の飼育情報等は、この賦錄（ブログ）では御覽になれません。<br><br><br>プログラミング入門とか書きましたが、Pythonの導入方法とかは書きませんので必要ならググつてください。僕は基本的にマツクユーザなので、Pythonは標準で這入つてました。<br><br><br>入門と言つてもどんな本にも書いてあるやうな事は書いても面白く無いので書きません。Pythonは標準のCPythonだけでなくIronPythonやPyObjなどの特殊な環境についても話題にします。<br><br><br>實はmonoを入れたので、僕のマツクではC#やIronPythonが動作可能です。まあ、一寸使つてみたけど、普通のPythonのフレームワークの方が使ひやすいですね。<br><br><br>體系的に講義をしようといふ氣はありませんので、思ひつきで書いて後で適當にジャンル分けします。もう今日は疲れたので、Pythonの實際のプログラミングは次囘から。では、御樂しみに。<br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/pyclub/entry-10842028821.html</link>
<pubDate>Sat, 26 Mar 2011 17:40:15 +0900</pubDate>
</item>
</channel>
</rss>
