Pythonのお勉強 Part ..
577:デフォルトの名無しさん
08/03/10 12:36:32
おまえのレベルが下がったんだよ
578:デフォルトの名無しさん
08/03/10 14:15:21
>>577
ゴメン、意味ワカンネ
579:デフォルトの名無しさん
08/03/10 15:24:25
日本語読解能力レベルも下がったんだな
580:デフォルトの名無しさん
08/03/10 16:49:50
すばらしい
py3.0で日本語識別子試してみたけど、全角記号はちゃんとはじかれる!
これで安心して日本語プログラムできますな
581:デフォルトの名無しさん
08/03/10 17:39:58
>>579
「読解能力レベル」ってデコレータをデコレーションする、みたいなもんか?
582:デフォルトの名無しさん
08/03/10 19:02:05
site-packages/sitecustomize.py で
import sys
sys.setdefaultencoding('utf-8')
ってやればソースコード中にエンコードしていを書かなくても
utf-8 でコメントとか書きまくれるかと思ったんだけど,
だめなんでしょうか.
583:デフォルトの名無しさん
08/03/10 19:18:28
一応対話的に起動した後で
import sys
sys.getdefaultencoding()
とすると utf-8 と表示されるんですが,
python hage.py ←UTF-8なコメントを含んでいる
と実行すると non-ascii が含まれてる癖に
エンコーディング方法が指定されてないぜ!死ね.
と怒られます.
584:デフォルトの名無しさん
08/03/10 19:30:15
>>583
>>570
sys.getdefaultencoding()はunicode(somestring)したときに参照される
なんにしろ相互に変換するときはきちんと把握すること
585:デフォルトの名無しさん
08/03/10 20:40:56
{set/get}defaultencoding とソースの文字コードは無関係
586:デフォルトの名無しさん
08/03/10 20:44:59
たとえば
SJISのファイルを読んでUNICODEでコンソールに出力するプログラムをUTF-8のソースで書くとこのようになります
↓
587:デフォルトの名無しさん
08/03/10 20:47:19
│ ↑
└─┘
おらっしゃあぁぁ!!!
∩∧ ∧
ヽ( ゚Д゚)
\⊂\
O-、 )〜
∪
588:デフォルトの名無しさん
08/03/10 21:01:57
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
sys.setdefaultencoding('cp932')
print unicode(open('日本語.txt', 'rb').read(), 'cp932')
589:デフォルトの名無しさん
08/03/10 21:02:38
ああ、ファイル名の文字コードはUTF-8ね
590:デフォルトの名無しさん
08/03/10 21:25:15
setdefaultencoding は site.py 実行最後で del されるぞ
591:デフォルトの名無しさん
08/03/10 21:30:57
つcodecs.open
592:デフォルトの名無しさん
08/03/10 22:01:56
>>591
俺、自前じゃない他人のを読むときは全部それで開けてるわ。
便利だよな。
593:デフォルトの名無しさん
08/03/10 22:29:04
codecs.openを知らない奴は入門書も読まない文盲か貧乏人。
594:デフォルトの名無しさん
08/03/10 22:36:33
>>580
識別子に使える文字はそれっぽく妥当に決めてる(Unicode.orgが)みたいね
URLリンク(www.python.org)
URLリンク(www.unicode.org)
全角記号が使えなくてちょっと安心した
595:デフォルトの名無しさん
08/03/11 02:13:50
みなさんパイソン歴どんくらい?
596:デフォルトの名無しさん
08/03/11 02:38:59
そういう話はmixiで
597:デフォルトの名無しさん
08/03/11 03:04:18
mixiは見るのが面倒。遅いしfeedも無いし。
598:デフォルトの名無しさん
08/03/11 07:36:36
フィードがないからなんか使わなくなっちゃうんだよな。
たまにマイミクにメッセージ送る程度。
599:デフォルトの名無しさん
08/03/11 07:49:34
python-json 3.4
と
codecs.open
は共存出来ますか?
600:デフォルトの名無しさん
08/03/11 08:50:38
codecs.open て unicode(file(filename).read()) に対してどの程度利点がある?
601:デフォルトの名無しさん
08/03/11 08:51:37
>>596
暇な窓際オッサンがスレを占拠しててウザいからmixiは嫌い
602:デフォルトの名無しさん
08/03/11 09:01:17
>>600
ファイルオブジェクトとして扱える
603:デフォルトの名無しさん
08/03/11 10:06:10
このスレ的には IronPython もおkって人が多い?
それとも IronPython は異端?
604:デフォルトの名無しさん
08/03/11 12:21:46
>>600
後者のほうは Python3 で使えない (unicodeとfile)
605:デフォルトの名無しさん
08/03/11 12:41:44
>>603
異端かは知らんが
専用スレはあるようだ
スレリンク(tech板)l50
606:デフォルトの名無しさん
08/03/11 19:57:43
>>603
文法は一緒なんだがライブラリが別物(.NET Fw使うから)なんで
用途的な意味でほとんど別物だと思う、俺が使った感想だと。
607:デフォルトの名無しさん
08/03/11 20:02:04
>>606
.Net・・・ファイアーウォール?
608:デフォルトの名無しさん
08/03/11 20:11:01
つ、つられないぞっ
609:デフォルトの名無しさん
08/03/11 20:42:19
MSのOSでしか使えないスキルというのが、手を出すのをためらう所かな。
610:デフォルトの名無しさん
08/03/11 21:17:00
monoも忘れないであげてください
611:デフォルトの名無しさん
08/03/11 21:54:00
>>606
そういう人にはFePy
612:デフォルトの名無しさん
08/03/12 07:42:08
unicode(file(filename).read())とか書いちゃう奴は入門書を買えない貧乏人か文盲
open()使うかRubyでもやっとけクソ
613:デフォルトの名無しさん
08/03/12 07:46:37
貧乏人バカにすんなよ
614:デフォルトの名無しさん
08/03/12 08:37:05
巷に出回ってる入門書のすべてでunicode()を扱ってるとでも思ってるんだろうか
615:デフォルトの名無しさん
08/03/12 11:37:06
クソ本はクソ人間にも劣る。
codecs.open()を扱っていない入門書など論外である。
616:デフォルトの名無しさん
08/03/12 11:47:51
おミンパイはどうなの?
617:デフォルトの名無しさん
08/03/12 14:03:28
>>616
書いてあるわけないだろうがボケカス氏ね
618:デフォルトの名無しさん
08/03/12 18:33:06
def func1(a,b,c,d):
中略
関数の呼び出しで第一引数を省略して呼び出すには
どうしたら良いでしょうか?
func1(,"hoge","fuga","piyo")
と書いたら怒られますた。。。
619:618
08/03/12 18:39:06
>>> def func1(a,b,c,d):
... pass
...
>>> func1(,"hoge","fuga","piyo")
File "", line 1
func1(,"hoge","fuga","piyo")
^
SyntaxError: unexpected token ','
>>> def func1(a="nyo",b,c,d):
File "", line 1
def func1(a="nyo",b,c,d):
^
SyntaxError: default value must be specified here
はじめの引数だけ省略したいですと… orz
620:デフォルトの名無しさん
08/03/12 18:42:41
>>618
答えがあるのかもしれないけど、
普通は、関数を定義する時に、
必須の引数を前に持ってきて、オプションは後ろ
def func(arg1, arg2, arg3=None, arg4=True):
return True
こうすると、3と4は省略可能
621:デフォルトの名無しさん
08/03/12 18:44:29
むり
省略は後ろから順
622:デフォルトの名無しさん
08/03/12 18:47:59
それか綺麗じゃないけどその場で適当に何か入れといてから
必要になったときに入れ直したら?
どういうコードが後に続くのかによって何とかなりそうな気もする
623:デフォルトの名無しさん
08/03/12 18:48:23
def func1(a='hoge', b='fuga', c='moge', d='piyo'):
中略
とやって
func1(b='foo', c='bar', d='baz'):
中略
と呼ぶ手もなくはないがめんどい
624:デフォルトの名無しさん
08/03/12 18:53:19
>>618
# python 2.5
import functools
func1p = functools.partial(func1, "第一引数の値")
func1p("hoge","fuga","piyo")
625:618
08/03/12 19:01:30
>>620-621
now = time.strftime("%Y/%m/%d", time.localtime(time.time()))
def res(name, mail, time=now, body):
中略
res("デフォルトの名無しさん","sage",,"本文")
ではなくて、res(,,,"本文")
と書けたら便利そうなのですが、前から省略はできない…
でも引数の順を変えるのは嫌かも…諦めるしかない
d
626:デフォルトの名無しさん
08/03/12 19:09:54
>>623
すべての引数にデフォルトの値を割り当てれば
いいのか…
>>> def res(name="デフォルトの名無し",mail="sage",time="2008/03/12",body=""):
... print name,mail,time,body
...
>>> res(body="本文")
デフォルトの名無し sage 2008/03/12 本文
とりあえず解決しますた。
dd
627:デフォルトの名無しさん
08/03/12 20:11:10
コピペアフィブログの臭いがプンプンだぜ
628:デフォルトの名無しさん
08/03/12 21:04:02
IronPython使ってる人なんていたんか
629:デフォルトの名無しさん
08/03/12 21:14:11
>>> def res(**kwargs):
... print kwargs['hoge'] if kwargs.has_key('hoge') else None
... print kwargs['fuga'] if kwargs.has_key('fuga') else 0
...
>>>
>>> res(fuga=100)
None
100
>>> res(hoge='abc')
abc
0
>>>
630:デフォルトの名無しさん
08/03/12 21:22:30
[] if...else...よりはget
更にhas_keyよりはin演算子
631:デフォルトの名無しさん
08/03/12 21:58:37
def res(**kwargs):
print kwargs.get('hoge', None) if 'hoge' in kwargs
print kwargs.get('fuga', 0) if 'fuga' in kwargs
632:デフォルトの名無しさん
08/03/12 22:30:45
**kwargs 出す場面じゃあない
暗黒面への入り口
633:デフォルトの名無しさん
08/03/12 23:11:23
肛門臭うぞ
634:デフォルトの名無しさん
08/03/12 23:19:05
鼻エスパー?w
635:デフォルトの名無しさん
08/03/12 23:21:17
かわいそうな能力w
636:デフォルトの名無しさん
08/03/13 00:23:13
import os
print [x for x in os.listdir(u"C:/")]
このやりかたって日本語ファイル名だめなの?
637:デフォルトの名無しさん
08/03/13 00:29:17
\x83等のエスケープの事なら避けられない
638:デフォルトの名無しさん
08/03/13 00:55:29
Python3000でprintが関数になれば出来るのかね。
強引だけど、map(print, os.listdir('.'))みたいな
639:デフォルトの名無しさん
08/03/13 01:03:54
>>636の振った話題に付いて行けない。
このコードだとなにが問題なの?
640:デフォルトの名無しさん
08/03/13 01:10:55
それよりみんなさ、引数がたくさんあるメソッドをオーバーライドしたときってどう対処してる?
たとえばGUIクラスがあったとして
class Window:
def __init__(self, parent, width, height):
...
これを継承するでしょ。で、そのとき独自の引数 piyo を追加したい。その時って
class ExWin(Window):
def __init__(self, parent, width, hegiht, piyo, *args, **kwargs):
Window.__init__(self, parent, height, *args, **kwargs)
...
みたいに律儀にやってる?
でもこれだと、基底クラスの受け取る引数が一つ増えたときにややこしいことになる
それとも、..., piyo=None, *args, **kwargs)
って、キーワードとして追加?
なんにしても、基底クラスの仕様が変化すると、渡すパラメータの順番が狂ってしまう
641:デフォルトの名無しさん
08/03/13 02:54:37
日本語コーデックの自動判別モジュール探してたんだけど、よく考えたら
この判定コードで十分じゃね?
jp_codecs = ("euc-jp", "sjis", "utf-8")
jp_patterns = "あいうえお…わをん"
def get_jp_codec(s):
def tryenc(s):
for i in jp_codecs:
try:
u = s.decode(i)
yield i, u
except UnicodeDecodeError:
pass
for enc, u in tryenc(s):
if len(set(jp_patterns) & set(u)) > 0:
return enc
return None
642:デフォルトの名無しさん
08/03/13 05:01:39
>>641
厳密に言うと、完全ではない。
たとえばEUC-JPとShift_JISは完全に区別することはできなくて、
Shift_JIS なのに s.decode('euc-jp') でエラーにならない場合もある。
643:デフォルトの名無しさん
08/03/13 13:08:28
全部試してみてエラーが起きないやつを可能性として
全部候補に挙げて,あとはカン,とかどうよ?
nkf なんかはもっとなんか別の統計的手法をつかってるんだっけ?
644:デフォルトの名無しさん
08/03/13 13:12:57
シフトJISの半角カタカナ2文字か、EUC-Jの漢字1文字か、が
全く同じバイト列になるから判別不可能。
645:デフォルトの名無しさん
08/03/13 19:51:59
Welcome to NISHIO Hirokazu's homepage!
646:デフォルトの名無しさん
08/03/13 23:52:55
[i for i in globals().keys()]
と打ち込むと "_[2]" ていう変な識別子が定義されてるんだが、なんだこれは。
647:デフォルトの名無しさん
08/03/14 00:11:31
ぐぐったらこんなのがみつかった
URLリンク(aspn.activestate.com)
内包表現で使われる一時変数みたいね
>>> def p(x): print x
...
>>> [x for x in range(5) for _ in [p(locals()['_[1]'])]]
[]
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
# トップレベルのlocals()とglobals()は同じだよね・・・
648:デフォルトの名無しさん
08/03/14 00:21:47
>>> dis.dis(compile("[x for x in range(5)]","","eval"))
1 0 BUILD_LIST 0
3 DUP_TOP
4 STORE_NAME 0 (_[1])
7 LOAD_NAME 1 (range)
10 LOAD_CONST 0 (5)
13 CALL_FUNCTION 1
16 GET_ITER
>> 17 FOR_ITER 13 (to 33)
20 STORE_NAME 2 (x)
23 LOAD_NAME 0 (_[1])
26 LOAD_NAME 2 (x)
29 LIST_APPEND
30 JUMP_ABSOLUTE 17
>> 33 DELETE_NAME 0 (_[1])
36 RETURN_VALUE
さっぱりわからんが_[1]が使われてるみたいだ
649:デフォルトの名無しさん
08/03/14 02:21:21
IronPythonだと出ない
650:デフォルトの名無しさん
08/03/14 09:14:55
3.0α3でも出なかった
651:デフォルトの名無しさん
08/03/14 10:35:10
>codecs.open()を扱っていない入門書など論外である。
>おミンパイはどうなの?
書いてあるよ。
工作員お勧めのはじパイには書いてないけど。
652:デフォルトの名無しさん
08/03/14 12:39:53
速pyはどうなの?すごいマイナー臭がするけど。
653:デフォルトの名無しさん
08/03/14 13:19:15
初めてのPythonって、オライリーから出てるのが本物?
654:デフォルトの名無しさん
08/03/14 14:20:31
黄色い方が偽者
655:デフォルトの名無しさん
08/03/14 15:30:10
URLリンク(wanthac.blogspot.com)
656:デフォルトの名無しさん
08/03/14 15:40:40
URLリンク(d.hatena.ne.jp)
657:デフォルトの名無しさん
08/03/14 15:42:33
URLリンク(osksn2.hep.sci.osaka-u.ac.jp)
># 日本語の入った文字は、u'....' のように、頭に"u"をつけて、 この文字列がUTF-8で書かれている事を明言します。
大嘘だ罠
658:デフォルトの名無しさん
08/03/14 15:45:03
URLリンク(d.hatena.ne.jp)
659:デフォルトの名無しさん
08/03/14 16:08:04
>>636
import os
print repr([x for x in os.listdir(u'c:/')]).decode('unicode-escape')
660:デフォルトの名無しさん
08/03/14 18:59:09
工作員お勧めのクソ本のせいで「Pythonは日本語が苦手」という印象が広まってしまっている件。
661:デフォルトの名無しさん
08/03/14 19:48:06
初めて日本語処理を書く人は大抵つまずく、という点では正しい。
662:デフォルトの名無しさん
08/03/14 20:16:36
そこらへんはJAVAやC#に遅れをとっている所だよね
PerlやRubyよりはマシなんだけども
663:デフォルトの名無しさん
08/03/14 20:18:53
>>659
出来ました
激しくありがとうございました
664:デフォルトの名無しさん
08/03/14 20:20:25
PPPの中ではunicode化に関しては一番進んでるよな
665:デフォルトの名無しさん
08/03/14 20:22:09
Java/C#はそんなに優れてるの?
666:デフォルトの名無しさん
08/03/14 20:42:40
特にjavaは秀逸
667:デフォルトの名無しさん
08/03/14 20:46:13
Javaってクラス名や変数名日本語可能?
668:デフォルトの名無しさん
08/03/14 21:10:48
動物が表紙のウンチ本が全部悪いんだぜ
669:デフォルトの名無しさん
08/03/15 00:49:12
フローズンバイナリがよくわかりません。チュートリアルにも
フローズンバイナリに付いて全くといっていいほど情報がないし。。。
なんなの?これ
670:デフォルトの名無しさん
08/03/15 01:00:52
>>669
何が分からんのか分からん。
671:デフォルトの名無しさん
08/03/15 01:19:15
書いたスクリプトの実行時間(0.5秒)のボトルネックがimport文(9割を占める)でした。
importのオーバーヘッドを小さくするtipsなどないでしょうか?(2.4使用)
スクリプトはCGIにしたいと思っているもので、
色々な種類の小さめの処理(各1ファイル)をサクサク実行したいという状況なのです。
672:デフォルトの名無しさん
08/03/15 01:24:55
>>669
サードパーティーモジュールが必要だから
チュートリアルに書いてあるわけがない。
673:デフォルトの名無しさん
08/03/15 01:31:32
>671
まさか関数内で import なんてことないよね?
import はモジュールのトップレベルですべし。
674:デフォルトの名無しさん
08/03/15 02:05:00
ディスクの空き容量が知りたい時は df を popen() して re.search()?
Windowsではどうするの?
675:デフォルトの名無しさん
08/03/15 02:17:29
ctypesでGetDiskFreeSpaceEx呼び出す
676:デフォルトの名無しさん
08/03/15 09:12:45
>>674じゃないけどヒントもらったしせっかくなので
from ctypes import *
dirname = ur'c:\\'
GetDiskFreeSpaceExW = windll.kernel32.GetDiskFreeSpaceExW
freeBytesAvailable = c_ulonglong()
totalNumberOfBytes = c_ulonglong()
totalNumberOfFreeBytes = c_ulonglong()
GetDiskFreeSpaceExW(
dirname,
byref(freeBytesAvailable),
byref(totalNumberOfBytes),
byref(totalNumberOfFreeBytes))
print "free space of %s: %d bytes" % (dirname, freeBytesAvailable.value)
こういうのちょこちょこ書き溜めたら結構なライブラリになるだろうなあ
677:デフォルトの名無しさん
08/03/15 09:40:42
URLリンク(starship.python.net)
678:676
08/03/15 10:02:11
>>677
d
さっそく書き直したよ
>>> import win32file
>>> win32file.GetDiskFreeSpaceEx(u'c:/')
679:デフォルトの名無しさん
08/03/15 11:11:46
おれもやってみたけど
>>676 で帰ってくる値と >>678 で帰ってくる値が微妙に違うw
もちろんその間にdiskは使ってないし
totalNumberOfBytes
の値だけは一緒だから
freeBytesAvailable と totalNumberOfFreeBytes
の値だけが変化してるw
こういうときでも
freeBytesAvailable == totalNumberOfFreeBytes
は常に真なんだな
680:674
08/03/15 14:17:33
みなさんありがとう!
Mac OS X と Windows をターゲットにした客先なので
os.name 見て切り替えるしかないですね。
pywin32 でも ctypes でもいいから標準インストールに含まれるようにならないかなーと思ったら
2.5 から ctypes 入ってたのねorz 知らなんだ...
681:636
08/03/15 22:24:47
>>659
超ありがとう
682:デフォルトの名無しさん
08/03/16 00:01:51
win32com.clientを使いたいんだけど、
'\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x82\xc5\x82\xb7'
なんてエラーメッセージが帰ってきたんです。
これ、何て読むんですか?
683:デフォルトの名無しさん
08/03/16 00:03:52
>>> print '\x83N\x83\x89\x83X\x95\xb6\x8e\x9a\x97\xf1\x82\xaa\x96\xb3\x8c\xf8\x8
2\xc5\x82\xb7'
クラス文字列が無効です
確かに見づらい罠。
684:デフォルトの名無しさん
08/03/16 00:36:41
>>683
シフトJIS?
utf-8な環境だと????だらけで見れない。
685:デフォルトの名無しさん
08/03/16 01:14:11
だな。sjisにdecodeでおk。
686:デフォルトの名無しさん
08/03/16 02:10:23
教えてください!
PyDEVでプログラムを書いています。
書いたプログラムを実行するのに「次を実行ボタン」「ダイアログが開く」
「Python実行を選択する」「OKボタン」の順に操作するのが面倒です。
また、「左のツリーからファイルを右クリック」「右クリックメニュー」「実行→」「Python実行」
とメニューを辿っていくのも面倒です。
なんかボタン一発で今開いているファイルを実行する方法はありませんか?
687:デフォルトの名無しさん
08/03/16 02:13:01
書いたpyファイルダブルクリックが最速かもな
端末から打つより早いだろうし
688:デフォルトの名無しさん
08/03/16 02:44:35
左側のツリー(Pydevパッケージエクスプローラ)で、
開いているファイルをダブるクリックすると、一瞬マウスが砂時計になって、その後何も起こりません。
開いていないファイルをダブるクリックすると、エディタで開きます。
どこでダブルクリック?
689:デフォルトの名無しさん
08/03/16 08:16:44
困ったことがあったら、
>>1にリンクされている
聖書を読むべき
690:デフォルトの名無しさん
08/03/16 08:29:47
聖書ってお民パイのことか?w
691:デフォルトの名無しさん
08/03/16 11:48:19
ITproにPythonの連載がのってた。
URLリンク(itpro.nikkeibp.co.jp)
2回目がSQLObjectだった。
692:デフォルトの名無しさん
08/03/16 11:50:43
気軽といいつつLinuxを例にしてるアレか
693:デフォルトの名無しさん
08/03/16 11:54:01
SQLAlchemyだったら読みに行くんだが・・・
694:デフォルトの名無しさん
08/03/16 13:04:59
datetime.strptime に UnicodeString 渡したらエラーになった…。
str のまま渡すとうまくいく模様。これって変じゃないか?
----
# -*- coding: cp932 -*-
from pprint import pprint
from datetime import datetime
# 成功
pprint( datetime.strptime("2008年3月16日 2:03", "%Y年%M月%d日 %H:%m") )
# 失敗
pprint( datetime.strptime("2008年3月16日 2:03".decode("cp932"), "%Y年%M月%d日 %H:%m".decode("cp932")) )
----
695:デフォルトの名無しさん
08/03/16 13:37:00
datetime.datetime.strptimeがunicodeならsys.getdefaultencoding()でstrに変換、という処理を行ってるからのようだ。
time.strptimeはそんなことをしていないので、バグかな?
$ python -S
Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)] on linux2
>>> import sys, time, datetime
>>> sys.getdefaultencoding()
'ascii'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u5e74' in position 4: ordinal not in range(128)
>>> sys.setdefaultencoding('utf-8')
>>> sys.getdefaultencoding()
'utf-8'
>>> time.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
(2008, 3, 16, 2, 3, 0, 6, 76, -1)
>>> datetime.datetime.strptime(u"2008年3月16日 2:03", u"%Y年%M月%d日 %H:%m")
datetime.datetime(2008, 3, 16, 2, 3)
696:デフォルトの名無しさん
08/03/16 14:10:24
strptimeのメインの処理は_strptime.strptimeなんだけど、
これを呼ぶPyObject_CallMethodの第三引数formatが違うんだな。
datetime.datetime.strptimeは"ss"になってる(strへの変換)。
time.strptimeは"O"でタプルのまま渡してる。
697:デフォルトの名無しさん
08/03/16 16:38:50
>>691
SQLObjectのことをフレームワークと言ってて「ふーん」と思った。
698:デフォルトの名無しさん
08/03/16 22:48:46
>>686
Eclipse + Pydev?
F11やCtrl + F11はどうよ
699:デフォルトの名無しさん
08/03/16 23:11:59
>>698
レスありがとう。
F11すると「次を実行ボタン」を押したときと同じでダイアログがでてきました。
>>686で書いたのと同じです。Ctrl+F11は何も起こりません。
ソースをちょこちょこ変更して実行して、、、ていうことを繰り返してると、
実行するまでの動作がだんだん煩わしくなってきます。
700:デフォルトの名無しさん
08/03/16 23:48:22
どなたか教えてください
t=urllib.urlopen("http://〜〜").read()
print type(t)
とするとstrとなるんですが。
utf-8のサイトの場合 tの型がunicodeになってほしいんです
どうしたらよいでしょうか。
python2.5の場合はstrのままテキストに落としたらutf-8として文字化けせずに表示されるのですが
ironpythonの場合テキストエディタで開いたらASCIIとして認識され文字化けされています。
utf-8としてそのファイルを保存し直しても文字化けしたままです。
解決策ご存じの方いましたらお願いします
701:デフォルトの名無しさん
08/03/16 23:52:27
t=urllib.urlopen("http://〜〜").read().decode("utf-8")
702:デフォルトの名無しさん
08/03/16 23:58:58
>>700
入門書嫁。
703:700
08/03/17 00:39:43
文字化けしない方法自己解決しました。すいません;
ファイルの側をバイナリモードで開いて突っ込むだけでした。
open("hoge","wb")
704:700
08/03/17 02:02:00
>>701
ちゃんとレスが表示されてなくて見てませんでした。
それだとAsciiキャラクタじゃないから変換できませんよーってエラーがでます。
ironpythonではutf-8なんて定義されてないって出ました
僕の環境だけでしょうか・・・・?
705:デフォルトの名無しさん
08/03/17 10:23:43
>704
ところで Python のバージョンは?
706:デフォルトの名無しさん
08/03/17 11:14:09
また文字コードか
707:デフォルトの名無しさん
08/03/17 11:45:17
文字コードの諸問題もテンプラに入れて初心者が醤油と大根おろしで美味しく食せるようにするべき
708:デフォルトの名無しさん
08/03/17 12:33:53
pythonce mobileとpythonce smartphoneってどうちがうんですか?
709:デフォルトの名無しさん
08/03/17 15:04:11
正直文字コードをうまく扱えないやつはPython使うなといいたい。
Rubyのがはるかに先を行っている
710:デフォルトの名無しさん
08/03/17 16:00:43
どう先を行っているの?
煽りじゃなくてマジで知りたい。
しかしRubyを学ぶのは断る!
711:デフォルトの名無しさん
08/03/17 16:11:21
ほんとどの言語使っても文字コード絡みはネックだなー
Pythonに限った話しじゃないけど、文字コードの仕組みというか原理というかを完全に理解してる方たちは、
悩まずプログラミング出来てますか?
なんかいっつも日本人可哀想だなーって思ってしまう俺がアホなだけ??
一回とことん文字コードについて勉強したほうがいいんかなー
712:デフォルトの名無しさん
08/03/17 16:17:39
文字列は基本unicode、strは単なるバイト列(≒I/O用)
なんもややこしいことはない。
713:デフォルトの名無しさん
08/03/17 17:54:59
>>711
unicodeへのエンコードモジュールを自分で作ってみ。
714:デフォルトの名無しさん
08/03/17 18:14:19
u'ほげほげ' を勝手に UTF-8 だと思い込んでいるひとが意外と多い
それがすべての間違いの元
715:デフォルトの名無しさん
08/03/17 19:07:39
>>> a="タ"
>>> if a in "[ぁ-んァ-ン]": print "true"
... else: print "false"
文字列が、ひらがな、もしくはカタカナだと
判定するにはどうしたら良いですか?
上記のだとうまくいかない…
716:デフォルトの名無しさん
08/03/17 19:47:50
if a in [c for c in u'ぁ-んァ-ン']: print "true"
else: print "false"
717:デフォルトの名無しさん
08/03/17 20:02:05
>>716
>>> for e in u"ぁ-ん":
... print e,
...
ぁ - ん
>>> for e in [c for c in u"ぁ-ん"]:
... print e
ぁ - ん
できないジャン
718:デフォルトの名無しさん
08/03/17 20:07:45
print re.match(ur"[ぁ-んァ-ン]", u"タ") is not None
719:デフォルトの名無しさん
08/03/17 20:09:33
>>> for i in unicode('あア亜', 'mbcs'):
print unicodedata.name(i)
HIRAGANA LETTER A
KATAKANA LETTER A
CJK UNIFIED IDEOGRAPH-4E9C
720:デフォルトの名無しさん
08/03/17 20:39:32
c = u'タ'
if u'ぁ' <= c <= u'ん' or u'ァ' <= c <= u'ン': print "true"
else: print "false"
721:デフォルトの名無しさん
08/03/17 21:20:48
見た感じ、unicodedata使うのが綺麗っぽいかな。
722:デフォルトの名無しさん
08/03/17 21:24:56
>>707
おっと、いい天ぷらは塩だけでいけるぜ
723:デフォルトの名無しさん
08/03/17 22:06:51
手元のベンチマークだと一文字だと比較 : 正規表現 : unicodedata = 1 : 2 : 2.5くらい
複数文字の文字列だと長ければ長いほど正規表現が抜群に速い
(PythonのループはCと比べてかなり遅い)
724:デフォルトの名無しさん
08/03/17 22:33:13
py2exe を使った場合、完全にその exe ファイルだけで
動くのでしょうか。それとも何らかの DLL などが必要なんでしょうか。
725:デフォルトの名無しさん
08/03/18 02:03:06
DLLも一緒にパックされる
726:デフォルトの名無しさん
08/03/18 08:15:55
Python的ヒエラルキーは
汚いけど速い<<<綺麗
汚いけど速い>綺麗だけどかなり遅い
だろ
727:デフォルトの名無しさん
08/03/18 13:55:08
URLリンク(www.python.org)
2.6, 3.0の正式リリースは9/3予定だって
728:デフォルトの名無しさん
08/03/18 15:25:07
ひげぽんがPythonのネガティブキャンペーンしてる。
最も todo と fix meが多いプログラミング言語は Python かもしれない
URLリンク(d.hatena.ne.jp)
729:デフォルトの名無しさん
08/03/18 16:06:56
ToDoが明確になっているのはよいことじゃないかな?
何もないままいい加減なコードを書かれるよりずっとまし。
Pythonの人って被害妄想が強すぎる。だからいじめられるんだよ。
730:デフォルトの名無しさん
08/03/18 16:19:40
>>729
同意。ネガキャンというほどの内容でもないよね。
731:デフォルトの名無しさん
08/03/18 18:53:31
>>729-730
そうか。社内のPythonハッカーと抗争を始めたのかと早とちりして
しまったよ。
732:デフォルトの名無しさん
08/03/18 19:01:10
>>731
西尾さんとは仲いいしそんなことはないっしょ
733:デフォルトの名無しさん
08/03/18 19:05:52
>>728
どう見てもなんとなく書いてみました風の記事なんですが
734:デフォルトの名無しさん
08/03/18 19:51:59
早とちりしたのは西尾さん本人説。
735:デフォルトの名無しさん
08/03/18 19:53:26
>>729
TODOは
現時点ではこのコードは書けない
余裕のある時にやろう
汚いコードを書いていることに対する言い訳
と書いてますよ
736:デフォルトの名無しさん
08/03/18 19:56:14
負け犬意識で頭がいっぱいのPython使いに栄光あれ!
737:デフォルトの名無しさん
08/03/18 20:02:41
こんなネタでしか盛り上がれないPythonスレの住人はバカだな。
PHPに帰れよ。
738:デフォルトの名無しさん
08/03/18 20:13:11
いやいや、Pythonにネガティブだったり無視したりけしからんと
言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に
多いので、Pythonに対する態度でその技術者の成長の余地が測れ
るのよ。
739:デフォルトの名無しさん
08/03/18 20:49:51
いやいや、PHPにネガティブだったり無視したりけしからんと
言う奴は、頭でっかちで使えない人とか老害の域に達した技術者に
多いので、PHPに対する態度でその技術者の成長の余地が測れ
るのよ。
740:デフォルトの名無しさん
08/03/18 20:59:36
ToDoって書いてあったらだめって?
あふぉですか?こいつは。
741:デフォルトの名無しさん
08/03/18 21:12:02
誰もだめとは言っていないとおもいますが
あふ(ry
742:デフォルトの名無しさん
08/03/18 21:21:22
>>740
にしおさんにそんなこといってはいけませ〜ん!
743:デフォルトの名無しさん
08/03/18 21:23:01
質問
list=[('apple', 1),('banana',2),('orange',3)]
タプルの一番目の要素をキーにして
ソートするにはどうしたら良いでしょうか?
744:デフォルトの名無しさん
08/03/18 21:26:01
list.sort() でいいじゃん
745:デフォルトの名無しさん
08/03/18 21:31:59
listという名前の変数に代入するなと(ry
汎用的なやり方としては(タプルの二番目の要素でソートする例)
L=[('apple', 3),('banana',2),('orange',1)]
L.sort(key=lambda x: x[1])
746:デフォルトの名無しさん
08/03/18 21:32:28
>>743
ここ辺りが参考になるかも
URLリンク(morchin.sakura.ne.jp)
747:デフォルトの名無しさん
08/03/18 21:39:41
743みたいなネタで引っかかるやつ、いるよな。
基本的なところで引っかかって先に進めないようなやつは、
フレームワークを使いこなせるようになるまで、100年くらいかかったりするのだろうか。
748:デフォルトの名無しさん
08/03/18 22:35:12
作り直した方がマシというフレームワークに
こと欠かさないだろ。
749:デフォルトの名無しさん
08/03/18 22:40:15
>>715-717
そもそも、ぁ-んァ-ンはただの文字列。
750:749
08/03/18 22:41:32
スマソ。途中で書き込んじゃった。
>>715-717
そもそも、ぁ-んァ-ンはただの文字列。
unicodeの平仮名と片仮名全部出力できれば・・・・・・
751:749
08/03/18 22:44:03
>>743
.soat()に第一引数として、関数を与えるとその関数で判定を行います。
判定用関数には二つの引数が渡されるので、
def S:
752:751
08/03/18 22:45:38
またやっちまったorz
インデントの習慣で・・・・・・
.soat()に第一引数として、関数を与えるとその関数で判定を行います。
判定用関数には二つの引数が渡されるので、
def S(A,B):
return cmp(A[1],B[1])
とすればおk
753:デフォルトの名無しさん
08/03/18 22:48:21
Sorting Mini-HOWTO (和訳)
URLリンク(www.python.jp)
関数を渡すって言うのがピンとこなかったら
ここでわかるようになるまで頑張っておく価値あり
754:デフォルトの名無しさん
08/03/18 22:59:32
>>751-753
この方法は旧式。遅い。
>>745-746
こっちが新式。早い。
つうか新式紹介した後に旧式を紹介してるやつはなんなの?
755:753
08/03/18 23:19:38
不勉強でした。許して
756:デフォルトの名無しさん
08/03/18 23:24:14
>>745の状況ではlambda使うよりはoperator.itemgetter(1)が好きだな
757:デフォルトの名無しさん
08/03/18 23:55:07
URLリンク(www.python.org)
2.6 と 3.0 は同時リリースなのか
758:sort ⇒ 整列
08/03/19 09:14:15
soat() ってナニ?
759:751
08/03/19 09:28:55
>>758
sort()だとおもわれ
760:デフォルトの名無しさん
08/03/19 09:59:55
>>749-750
for k in range(0x3040, 0x3100):
try:
print '%04x, %c' % (k, unichr(k))
except:
print '%04x, None' % k
761:デフォルトの名無しさん
08/03/19 11:15:10
こんな関数を作ったらどうだろう
def expand_char(s):
i = 0
_chr = unichr if type(s) is unicode else chr
_len = len(s)
while i < _len:
if s[i] == '\\':
yield s[i+1]
i += 2
elif i + 2 < _len and s[i+1] == '-':
for j in xrange(ord(s[i]), ord(s[i+2])+1):
yield _chr(j)
i += 3
else:
yield s[i]
i += 1
for i in expand_char(u'ぁ-ん'):
print '%x: %s' % (ord(i), i)
762:デフォルトの名無しさん
08/03/19 13:42:50
type() is じゃなくて isinstance 使えっていつも言ってんだろ
素直に unicodedata 使えよ
763:デフォルトの名無しさん
08/03/19 13:55:04
>>762
なんぞそれ
764:デフォルトの名無しさん
08/03/19 13:58:06
ininstanceのほうがいいね。しばらく使ってないと忘れるなあ
765:デフォルトの名無しさん
08/03/19 17:57:01
isinstanceなら継承関係も考慮してくれるしな
766:デフォルトの名無しさん
08/03/19 18:35:41
「入門書も読めないゆとりが集まるスレ」に名前を変更した方がいいな
767:デフォルトの名無しさん
08/03/19 19:33:39
「煽り一行書くだけしかできない生産性の無いゆとりが集まるスレ」に名前変えたほうがいいな
768:デフォルトの名無しさん
08/03/19 19:43:08
人間の頭なんて大差ないんだよ。
やるか、やらないか、それだけの違い。
毎日少しずつでも前進してる奴と、
毎日言い訳を考えて何もしない奴とでは差がついて当然。
たいしたことを思いつこうが、思いつくまいがそんなのどうでもいい。
出来ない奴を馬鹿にする奴はどうせたいした事無いから。
出来ない奴に対して自慢したいだけなんだよ。
やりたい事、目標を見つけて少しでも前進する事。
覚える事がさしあたって100あるなら1つずつ覚えていけばいいだけじゃないか。
一度に100覚えられないから漏れは駄目なんだと思ってるんじゃないのか?
それは天才がやる事であって、凡人は1つずつやっていけば良いんだよ。
努力する癖を習得するんだ。
769:デフォルトの名無しさん
08/03/19 20:06:14
挫折なんかしたことないなあ。分からなくなったことはあるが
色々試したりしてずっとやってたら分かったし。
挫折したとか言ってる人は自分で勝手に挫折したと決めている
だけなのでは? 分かるまでずっとやってりゃそのうち分かるよ。
諦めなきゃ良いだけ。
いつまで経ってもできないという場合は本当は自分のやりたく
ないことなのかも知れないけどな。そういう場合はやめてみれば
いい。だがそれを「挫折」と呼んではいけない。それは単に
やめただけだ。
770:デフォルトの名無しさん
08/03/19 20:19:24
FizzBuzz問題
1から100までの数字を出力する。ただし、
3の倍数のときは数字のかわりにFizz
5の倍数のときは数字のかわりにBuzz
15の倍数のときは、FizzBuzzと出力する。
これはここの人にはどう捉えられるのかちょっと知りたいな。
771:デフォルトの名無しさん
08/03/19 20:21:38
>>770
それ、問題か?
hello, world と同じレベルじゃねえか。
772:デフォルトの名無しさん
08/03/19 20:21:43
>>770
ガイシュツ
773:デフォルトの名無しさん
08/03/19 20:24:04
>>768
1%の才能と99%の努力が大切なのですが
その1%の才能すら持ち合わせていない人が大勢います
あなたもそのうちのひとりであることはほぼ間違いありません
774:デフォルトの名無しさん
08/03/19 20:25:11
>>770
簡単すぎて素直な回答を出したら低能だと言われそうで怖い問題。
出題者がビット演算とかトリッキーな回答を要求してるのではないかと
勘繰ってドツボにはまる。
775:デフォルトの名無しさん
08/03/19 20:26:28
普通に書いたあとググっていかに短くできるか考え続けるだけ
776:デフォルトの名無しさん
08/03/19 20:28:43
>>774
有名なプログラマーもどき除け問題だけどタイプ可能な文字数の制限があったり十進じゃなかったりすると面白いのかな
777:デフォルトの名無しさん
08/03/19 20:38:58
コード書くのが好きで飯もいらないときがある、
別にこれで食っていこうとかは思わないけど趣味の範疇ならほんと楽しい。
素人だし下手糞なりに人に教えもしたけど、大体の奴は途中で飽きてやめていく。
そういう奴らは、読解力とか理解力なんかが足りないというか、
自分で調べる気がないというか。
別に馬鹿にしてるわけじゃないけど、そういうこと好きじゃないなら
無理してプログラムなんてやらなくてもいいんじゃないかな?
778:デフォルトの名無しさん
08/03/19 20:48:30
プログラミングって、実行させてはエラー出して、その度に調べて、って
根気良く続けるのが重要だと思う。
ちょっと上達してきて、エラー出すのが恐くなって、実行させるのが
億劫になったとき、成長が少し止まった気がした。
「とにかくやってみる」ことは武器の一つだと、小学校のときの先生が言っていた。
何つーか、動くコードを知るだけじゃなくて、動かないコードを知ることも
実は重要なんだよな。
要はエラーを恐れるなってこと。
779:デフォルトの名無しさん
08/03/19 21:11:10
なんでID出ないんだろうこの板
780:デフォルトの名無しさん
08/03/19 21:13:05
人間だもの
人間だもの
人間だもの
へびお
781:デフォルトの名無しさん
08/03/19 21:49:38
[[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]
782:デフォルトの名無しさん
08/03/19 21:54:01
for n in [[i,'Fizz','Buzz','FizzBuzz\n'][[3,0,0,1,0,2,1,0,0,1,2,0,1,0,0][i%15]]for i in xrange(1,101)]: print n,
783:デフォルトの名無しさん
08/03/19 21:57:15
print open("answer.txt").read()
784:デフォルトの名無しさん
08/03/19 22:02:51
for i in range(100):print i%3/2*"Fizz"+i%5/4*"Buzz"or-~i
785:デフォルトの名無しさん
08/03/19 22:04:16
python -c "__import__('webbrowser').open('URLリンク(www.google.com)')"
786:デフォルトの名無しさん
08/03/19 22:49:43
「入門書を読めない文盲のゆとりがポエムを貼り付けるスレ」に変更しませんか?
787:デフォルトの名無しさん
08/03/19 22:50:29
アンチスレと交換するだけでいいと思うよ
788:デフォルトの名無しさん
08/03/19 22:56:35
早く恥パイの第3版の和訳だせボケ
もう2.6出てんのに。
789:デフォルトの名無しさん
08/03/19 23:03:21
>>788
だから出ないんだって。
ソースな↓
URLリンク(tinyurl.com)
790:デフォルトの名無しさん
08/03/19 23:06:42
>>770
応用編
「3の倍数と3の付く数字だけアホになり、8の倍数だけ気持ち良くなります」
791:デフォルトの名無しさん
08/03/19 23:10:57
>>789
これは信頼できるソースだな
792:デフォルトの名無しさん
08/03/19 23:16:23
>>790
俺も言おうと思っていたが先越された
793:デフォルトの名無しさん
08/03/19 23:18:58
>>> import urllib2
>>> urllib2.urlopen("URLリンク(tinyurl.com)").url
'URLリンク(www.bulldog.co.jp)'
794:デフォルトの名無しさん
08/03/20 01:01:25
>>792
やっぱり '3' in str(i) がキホン?
795:デフォルトの名無しさん
08/03/20 07:51:38
FizzBuzz問題って色んなバージョンあるんだね
Wikipedia項目リンク
796:デフォルトの名無しさん
08/03/20 11:57:56
問題をアレンジして
3の倍数および3がつく時、アホになる
に変えてみると?
797:デフォルトの名無しさん
08/03/20 12:24:06
for i in range(100):print (i%3/2or(-~i/10==3)or(-~i%10==3))*'Aho'or-~i
798:デフォルトの名無しさん
08/03/20 12:28:04
-~i何度も使うならこっちの方が短いね
for i in range(1,101):print (i%3==0or(i/10==3)or(i%10==3))*'Aho'or i
799:デフォルトの名無しさん
08/03/20 12:40:04
しね
800:デフォルトの名無しさん
08/03/20 14:14:31
x%y==0 は、x%y<1の方が短い
あと、(i/10==3)or(i%10==3)だったら'3'in`i`が短い
801:デフォルトの名無しさん
08/03/20 14:20:56
for i in range(1,101):print(i%3<1or'3'in`i`)*'Aho'or i
802:デフォルトの名無しさん
08/03/20 14:23:20
for i in range(100):print(i%3/2or'3'in`-~i`)*'Aho'or-~i
803:デフォルトの名無しさん
08/03/20 15:10:14
('3'in`-~i`) == ('3'in`~i`)
804:デフォルトの名無しさん
08/03/20 16:02:03
くだらね
805:デフォルトの名無しさん
08/03/20 16:06:33
strと``ってどう違うの?
測ると``の方がだいぶ速いみたいだけど。
806:デフォルトの名無しさん
08/03/20 16:27:25
UNARY_CONVERT と CALL_FUNCTION
807:デフォルトの名無しさん
08/03/20 16:32:14
strじゃなくてreprだな
808:デフォルトの名無しさん
08/03/20 16:57:31
str は、そのオブジェクトを表す適当な文字列
repr は、そのオブジェクトを表すpython 式
>>> `'a'`
"'a'"
>>> str('a')
'a'
>>> `2**32`
'4294967296L'
>>> str(2**32)
'4294967296'
809:デフォルトの名無しさん
08/03/20 18:48:30
>>> [u'ほげ',u'ふが']
[u'\u307b\u3052', u'\u3075\u304c']
>>> `[u'ほげ',u'ふが']`
"[u'\\u307b\\u3052', u'\\u3075\\u304c']"
>>> `[u'ほげ',u'ふが']`.decode('unicode-escape')
u"[u'\u307b\u3052', u'\u3075\u304c']"
>>> print `[u'ほげ',u'ふが']`.decode('unicode-escape')
[u'ほげ', u'ふが']
各行の動作の違いを教えてください
810:デフォルトの名無しさん
08/03/20 19:19:51
>>807>>808
なる、reprと同じだったね。
にしても不思議、何度測ってもrep()より``のが速い。
811:デフォルトの名無しさん
08/03/20 19:54:57
>>810
速度は>>806が書いてあるように
`` が UNARY_CONVERT のバイトコードだけになるから
812:デフォルトの名無しさん
08/03/20 20:23:06
IDLEって完全にPython自身で書かれているのか・・・
ってことは自分のプログラムの途中から IDLE
を起動するなんてこともできるのか?
813:デフォルトの名無しさん
08/03/20 20:57:48
import wx
app = wx.PySimpleApp(0)
frame = wx.Frame(None, -1, "Hello wxPython World!")
app.SetTopWindow(frame)
frame.Show(True)
app.MainLoop()
> AttributeError: 'module' object has no attribute 'PySimpleApp'
環境ubuntu7.10。wxPythonは入れたが上のエラーが出る。なぜ?
814:デフォルトの名無しさん
08/03/20 21:02:57
他にwx.pyがあるんじゃないか?そのスクリプト自体がwx.pyとか
815:813
08/03/20 21:05:27
うわ本当だ。。。
その通りです。ありがとう。>>814
816:デフォルトの名無しさん
08/03/21 01:58:54
>>811
へー、バイトコードなんて調べた事無かったから>>806 は意味不明でしたw
ようするに最終的にreprを呼ぶコードが出来るんだけど、
``から出来たコードの方が速く処理が終わるのかな。
817:デフォルトの名無しさん
08/03/22 01:10:27
wxWidgets にはさ、GUI を XML で記述するってのがあるじゃん。あれと同じ理屈で Tk を YAML で記述するってのは無いかね。。。。yaml がなければせめて XML で。最初は自力で簡単なコーディングしてて
gui_yaml = """
frame1(Frame):
text: "Hello tk!"
button1(Button):
text: Exit
command: quit
"""
て感じの yaml 形式テキストをつくって
import yaml
dict_ = yaml.load(gui_yaml)
すると、
{"frame1(Frame)": {
"text": "Hello tk!",
"button1(Button)": {
"text": "Exit",
"command": "quit"
}}}
ていう辞書になるので、これを適当に解析して name(base_class) という項目を見つけたら指定されたクラスインスタンスを生成して、
command って項目があったら値に対応するメソッドを関連づけて…
みたいな感じで Tk GUI を構築しようとしたんだけど、辞書だと順番が保存されないんで、コントロールを生成する順番に依存する処理の場合に死ぬる事に気づいた。
packするとき、どの順番で pack する?とか。grid 使えば順番非依存になるのかも。
というわけで自分でつくるのあきらめたので、できあいのやつ教えてください。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5382日前に更新/203 KB
担当:undef