Python と C/C++ と...
プログラ厶とスカートの丈はロングよりショートが好みです。
このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。
以下の文章は注意書きです。
名前はかならず記入してください。ハンドルネームでも構いません。
またパスワードを入力することをお勧めします。
その場合他人による *なりすまし* と区別出来るかもしれません。
さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。
コメントスパム防止のため記事の内容を機械的にモデレート
(スパムである確率を計算)
する処理を通します。
どのような投稿であれ、たまたま計算誤差によりスパムとみなされ
秘密の場所
に収納される可能性があります。
その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。
-
13
owa
2005/10/12 01:21
id: mJs8kxp1Zus
prob: 3.1%
-
-
るびま 10 号発刊
http://jp.rubyist.net/magazine/?0010
-
12
owa
2005/01/24 20:38
id: mJs8kxp1Zus
prob: 1.2%
-
-
Python 2.4 で新しく追加された機能の解かり易い記事。
http://www.itmedia.co.jp/enterprise/articles/0501/24/news034...
集合型、多倍長整数、ジェネレータ、Templateクラス、デコレータ、10進数などどれも便利そう。
-
11
owa
2004/02/04 10:40
id: mJs8kxp1Zus
prob: 6.0%
-
-
Python-2.3.3 の言語リファレンスとチュートリアルの翻訳完了したそうです。ありがたいことです、感謝
http://www.python.jp/Zope/
http://sourceforge.jp/projects/pythonjp/files/?release_id=80...
-
10
owa
2003/12/19 16:04
id: mJs8kxp1Zus
prob: 0.5%
-
-
psycopg 使い易いですね。例えば
---
import psycopg
dsn = 'dbname=bbs user=*** host=*** password=***'
try:
conn = psycopg.connect(dsn)
curs = conn.cursor()
curs.execute("SELECT * FROM chatmaintb ORDER BY mid")
rows = curs.fetchall()
for r in rows:
print '%3d %-20s %s' % (r[0], r[1], r[2][:50])
conn.close()
except:
print 'exception occurred!'
---
などと python でシームレスに使える。
今まで知りませんでした。無駄なコードが必要ありません。
C/C++ だと余計なこと書かされるので、多分この数倍のサイズになってしまう;;
-
9
owa
2003/12/08 00:10
id: mJs8kxp1Zus
prob: 3.0%
-
-
Python2.3 は 2.3.2 で終わりかと思ったら 2.3.3 出るみたい
http://www.python.org/2.3.3/index.html
バグフィックスのみの良品らしい。
早く 2.3 使える状況にならないかなー
-
8
kiyo
2003/11/28 15:58
id: M4qDt4tUHP2
prob: 0.1%
-
-
>>7
充分なテストではないですが、今のところ問題なさそうです。
しかし owa さんすごいなあー
僕のソース消して正解(見なかった事にして下さい)
-
7
owa
2003/11/28 13:57
id: mJs8kxp1Zus
prob: 7.3%
-
-
>>6
すいません必要だったのは表示カラム数分のサイズでしたね;;
---
def columns_in_utf(s, cols):
size = len(s)
cpos = 0
bytes = 0
while (cols > 0) and (cpos < size):
c = ord(s[cpos])
if (c & 0x80) == 0:
bytes = 1
cols -= 1
elif (c & 0xe0) == 0xc0:
bytes = 2
cols -= 1 # 何カラム使うのかなぁ?
elif (c & 0xe0) == 0xe0:
bytes = 3
cols -= 2
else:
break
cpos += bytes
if (cols < 0) or (cpos > size):
cpos -= bytes
return s[:cpos]
---
と直してみました。一ヶ所出来てませんけど。
-
6
kiyo
2003/11/28 13:32
id: M4qDt4tUHP2
prob: 3.8%
-
-
>>4 こんなんじゃどうでしょう
http://fzug.com/fzug_prog/UTF で試してみました。
私の作ったScript
指定された文字及び長さ
--------------
漢1字ひ2らabcがなカ4896タ78901カナ, 20
--------------
返った文字 [ 漢1字ひ2らabcがなカ4 ]
utf-8での文字長さ [ 27 ]
切り取られた長さ [ 27 ]
owa さん作ったScript
呼び出し utfsize("漢1字ひ2らabcがなカ4896タ78901カナ",int(20 / 2 * 3))
指定された文字及び長さ
--------------
漢1字ひ2らabcがなカ4896タ78901カナ, 20
--------------
返った文字 [ 漢1字ひ2らabcがなカ4896 ] <-- len が 23 になる
utf-8での文字長さ [ 30 ]
切り取られた長さ [ 30 ]
呼び出し utfsize("漢1字ひ2らabcがなカ4896タ78901カナ",20)
指定された文字及び長さ
--------------
漢1字ひ2らabcがなカ4896タ78901カナ, 20
--------------
返った文字 [ 漢1字ひ2らabcが ] <-- len が 15 になる
utf-8での文字長さ [ 20 ]
切り取られた長さ [ 20 ]
文字範囲の指定が必要?
-
5
kiyo
2003/11/28 12:22
id: M4qDt4tUHP2
prob: 9.7%
-
-
>>4 こんなんじゃどうでしょう
おお、プロのコード綺麗だあー。
後で試してみます。
-
4
owa
2003/11/28 11:58
id: mJs8kxp1Zus
prob: 22.3%
-
-
とり急ぎ、こんなんじゃどうでしょう
---
def utfsize(s, size):
n = 0
while n < size:
c = ord(s[n])
len = 0
if c & 0x80 == 0:
len = 1
elif c & 0xe0 == 0xc0:
len = 2
elif c & 0xe0 == 0xe0:
len = 3
else:
break
if n + len > size:
break
n += len
return n
---
あとは後程...
|