くだすれPython(超初心者用) その4
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2009/05/24(日) 19:25:51もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>950 辺りで
前スレ
くだすれPython(超初心者用) その3
http://pc12.2ch.net/test/read.cgi/tech/1232055225/
関連スレ
Pythonのお勉強 Part33
http://pc12.2ch.net/test/read.cgi/tech/1240678081/
0002デフォルトの名無しさん
2009/05/24(日) 19:32:46Python の Home Page
http://www.python.org/
Python 日本語ドキュメント - Pythonistaのお友達
http://www.python.jp/doc/release/
最新版直リン - 2.Xが推奨。3.Xはライブラリやドキュメントが使えないことも
http://www.python.org/download/
Python のコーディングガイド PEP8
http://www.python.org/dev/peps/pep-0008/
Python のコーディングガイド PEP8 - 日本語訳
http://www.oldriver.org/python/pep-0008j.html
日本語文字列コード問題まとめ
http://python.matrix.jp/tips/string/encoding.html
インタラクティブモードのエンコード
http://python.matrix.jp/tips/compatibility/interact_encoding.html
0003デフォルトの名無しさん
2009/05/24(日) 19:34:48これはどう見てもおかしいだろ。 まず、主語が2。で動詞がget。
2が単数形だとしたら、getsにしないとおかしい上に、目的語がない。
直訳すると「2が得る」 何を得るんだよ!!!いいかげんにしろ。
それを言うなら
I get 2. だろ。しかも現在形だし。 過去形、いや現在完了形ぐらいまともに使ってくれよ。
I've got 2. 少しはましになって来たが、まだ気に入らない。その2だ。
いったいお前は何を手に入れたんだ?2という数字か?
違うだろ、手に入れたのは2番目のレスだろ。
どうも日本人は数詞と序数詞の区別がよく分かっていない節がある。
これらを踏まえて、正しくは
I've got the second responce of this thread.
ここでtheにも注目してもらいたい。このスレの2ってのは
特定の、このレスだけなんだから。だからaでも無冠詞でも なく、the second responceなんだ。
もう一度おさらいしてやる。
I've got the second responce of this thread.
0004デフォルトの名無しさん
2009/05/24(日) 19:48:21ここで Python 使っているかたはいらっしゃいますか?
使いやすいですか?何か気をつけることとかありますか?
0005デフォルトの名無しさん
2009/05/24(日) 19:55:23バージョン2.3とか2.4.3とかだけどそれでもよければ
ttp://www.value-domain.com/xreaip.php
0006デフォルトの名無しさん
2009/05/24(日) 19:58:050007デフォルトの名無しさん
2009/05/24(日) 20:01:31ありがとうございます
2.5 以上を想定していたので
とりあえず >>6 さんの方法で出来たひとのサイトとかがみつかるか調べてみます
0008デフォルトの名無しさん
2009/05/24(日) 20:10:29好きなバージョン入れてやってるひとがいたのでこれをまねしてみます〜
ttp://inforno.net/articles/2008/07/29/using-any-version-of-python-on-xrea-servers
ttp://inforno.net/articles/2009/01/25/using-any-version-of-python-on-xrea-servers-part2
0009デフォルトの名無しさん
2009/05/24(日) 20:57:000010デフォルトの名無しさん
2009/05/24(日) 21:14:530011デフォルトの名無しさん
2009/05/24(日) 21:42:040012デフォルトの名無しさん
2009/05/25(月) 10:48:47個人的にはフィトンのほうが簡単だった
ウェブだったらぺへぺのほうがいいけどね
0013デフォルトの名無しさん
2009/05/25(月) 12:15:170014デフォルトの名無しさん
2009/05/25(月) 12:17:04stdin.readlineなど利用して
標準入力からキーボード入力したいのですが
バックスペースで日本語を消すと、半分(1byte)だけ消されて
文字化けします。
1文字は1文字としてバックスペースで消す方法を教えてください。
0015デフォルトの名無しさん
2009/05/25(月) 12:34:260016デフォルトの名無しさん
2009/05/25(月) 19:47:410017デフォルトの名無しさん
2009/05/25(月) 23:00:57def func(self, **kwargs):
super(Foo, self).func(**kwargs)
class B(Foo):
def func(self, **kwargs):
Foo.func(self, **kwargs)
AとBの違いはなんでしょうか??
0018デフォルトの名無しさん
2009/05/25(月) 23:55:020019デフォルトの名無しさん
2009/05/26(火) 00:54:33Foo.func()は明示的な指定
type()で動的にクラスを生成したりするときしか考慮する必要はないと思う
何も考えずにsuper()を使うのが楽
詳しく知りたいならmroでググってみてくれ
0020デフォルトの名無しさん
2009/05/26(火) 01:03:58かっこよすぎ
def Counter(n=0):
Counter.cout = n
def increment():
nonlocal c
c += 1
Counter.increment = increment
return Counter
c = Counter(2)
c.increment()
c.increment()
c.increment()
print(c.cout)
002120
2009/05/26(火) 01:06:09nonlocal cも
なんかに使えますかねこれ
002220
2009/05/26(火) 01:11:340023デフォルトの名無しさん
2009/05/26(火) 01:12:36素直にクラスにしとけ
002420
2009/05/26(火) 01:19:36ところで"\u2020"とかいう表記はusc2ですか?
0025デフォルトの名無しさん
2009/05/26(火) 01:40:170026デフォルトの名無しさん
2009/05/26(火) 03:18:29class Hoge(object):
def __init__(a):
print a
h = Hoge()
これはただのコンストラクタなんだろうけど
そうじゃなくて
h = Hoge()
h() が出来る香具師のことなんですが
0027デフォルトの名無しさん
2009/05/26(火) 04:02:55... def __init__(self):
... print "init"
... def __call__(self):
... print "call"
...
>>> h = Hoge()
init
>>> h()
call
002814
2009/05/26(火) 14:20:57コンソールはlinuxのktermとかxtermとかgnome-terminalとか色々試したけど
どれも同じでした
>>16
エンコーディングはUTF-8です
ぐぐっても解消策が出てこないなぁ
0029デフォルトの名無しさん
2009/05/26(火) 16:08:150030デフォルトの名無しさん
2009/05/26(火) 16:11:360031デフォルトの名無しさん
2009/05/26(火) 16:26:20環境をもっと詳しく。
Linuxのディストリは何?
Python関係なく普通にシェル上で日本語を入力してバックスペース
押したらちゃんと日本語一文字消える?
003214
2009/05/26(火) 16:30:10ディストリはarchとubuntuで試しました
pythonに関係なくシェル上だとBSで日本語一文字消せます
ということは、皆さんは普通に消せてるんですね
0033デフォルトの名無しさん
2009/05/26(火) 16:39:57cat (とか)に何か入力しようとした状態のことを聞いている。
0034デフォルトの名無しさん
2009/05/26(火) 16:41:49import os
print os.name
> posix
a = 'os.%s' % name
print a
> os.name
0035デフォルトの名無しさん
2009/05/26(火) 16:42:27この場合環境として重要、かも。
0037デフォルトの名無しさん
2009/05/26(火) 16:44:28eval('os.name')
0039デフォルトの名無しさん
2009/05/26(火) 19:52:31質問する場所
004014
2009/05/26(火) 22:18:20もう少し調べてLinux板で質問してきます
0041デフォルトの名無しさん
2009/05/28(木) 20:34:35作りたいですがpythonだとwxpythonが
良いですかね?
やはりtkinterからおさえておくべき?
0042デフォルトの名無しさん
2009/05/28(木) 20:43:32004341
2009/05/30(土) 11:33:20python自体を止めておいた方が
良いってことか
0044デフォルトの名無しさん
2009/05/30(土) 12:18:520045デフォルトの名無しさん
2009/05/30(土) 18:05:06無駄な話を嫌う傾向にあると思ふ
0046デフォルトの名無しさん
2009/05/31(日) 11:02:500047デフォルトの名無しさん
2009/05/31(日) 20:21:040048デフォルトの名無しさん
2009/05/31(日) 21:07:22なんかプログラムを作ってるのかな?
0049デフォルトの名無しさん
2009/05/31(日) 21:13:590050デフォルトの名無しさん
2009/05/31(日) 21:22:15あと最近はウェブアプリに挑戦
0051デフォルトの名無しさん
2009/05/31(日) 21:25:070052デフォルトの名無しさん
2009/05/31(日) 22:08:440053デフォルトの名無しさん
2009/05/31(日) 23:12:22blender?
0054デフォルトの名無しさん
2009/05/31(日) 23:35:32例えば�@ファイヤーウォールが反応したら携帯にメールで知らせるとかは?
�Aひとつのフォルダに複数のmp3のデータが入っている。名前はごちゃごちゃ。
それを01.mp3〜0n.mp3にファイル名を変換することは可能ですか?
0055デフォルトの名無しさん
2009/05/31(日) 23:51:000056デフォルトの名無しさん
2009/06/01(月) 00:02:511はどんなファイアウォールを使ってるかによる
ログをテキストで定期的に書き出してくれるFWなら頑張れば出来る
そうでない場合は可能だけどちょっと難しいかな
2は余裕。osやos.path見てみるといいよ
0057デフォルトの名無しさん
2009/06/01(月) 00:26:33ご丁寧にありがとうございます。
見てみますね。
はじめてのpython みんなのpythonあたりを読破すれば�A位は簡単にできますか?
本屋で立ち読みした時に、複雑な電卓をいじってるようで…
いつになったら�A見たいなことができるのかな?って疑問を持ちましたので。
ド素人ですいません。
0058デフォルトの名無しさん
2009/06/01(月) 00:54:52初めてのPythonなら読破しなくても1/3ほど読めば十分じゃないかな
あとは使えそうなライブラリを探してマニュアルを読む
必要な時間については人それぞれ。数時間、数日、数週間・・・
まあ半年かかるなんてことはないから心配いらないよ
0059デフォルトの名無しさん
2009/06/01(月) 01:01:37>>57はきっと「はじめての」なんでしょうな・・・
0060デフォルトの名無しさん
2009/06/01(月) 01:07:37個人的にちょっと読んだだけですが「みんなのpython改訂版」が読みやすかったのですが
(ちょっとだけしか見てませんが…)
これでもOKですか?これでも1/3くらい読めば、ショボイプログラムが作れますか?
明日買ってきます。
0061デフォルトの名無しさん
2009/06/01(月) 01:14:48しょぼいプログラムを作るのが目的でネットの検索と併用すれば十分かと
0062デフォルトの名無しさん
2009/06/01(月) 01:42:36「はじめての」人柱になってもらおうとか思って
似たタイトルの本があるとはあえて言わなかった。反省している
>>60
1/3じゃ足りないかも。でもたいして問題にはならないよ
2を書くとしたら骨組みはこんな感じ
import os
for i, filename in enumerate(os.listdir(u'.')):
if filename.endswith('.mp3')
os.rename(filename, '%03d.mp3' % i)
0063デフォルトの名無しさん
2009/06/01(月) 02:38:56その辺に転がってるコードが多いのはPython2.x系
言語仕様が一部変わってるから気をつけな
新しいものをとるか古いのを選ぶかは趣味の問題ではあるが
標準以外のモジュールは3.0にはまだ対応してなかったりもするから気をつけなよ
まあ、仕様の変更点を把握しとかないといけないのはどちらを学ぶにしても同じだがね
本はちょっとしたプログラムを書きたいってだけなら挫折しないように薄いのにしときなw
あとはオンラインドキュメントとかで適当に調べつつ作りたいもの作ればいいさ
0064デフォルトの名無しさん
2009/06/01(月) 03:06:12元々
03.mp3
02.mp3
01.mp3
というファイルがあったとき
01.mp3
02.mp3
03.mp3
に名前を付け替えるのって簡単?
0065デフォルトの名無しさん
2009/06/01(月) 03:34:230066デフォルトの名無しさん
2009/06/01(月) 03:36:00条件が良く分からないけど、番号を昇順に変えるの?
何とでも出来ると思うよ。
0067デフォルトの名無しさん
2009/06/01(月) 04:03:0764が言ってるのはファイル名の重複でリネームするのに失敗する問題。
0068デフォルトの名無しさん
2009/06/01(月) 04:04:550069デフォルトの名無しさん
2009/06/01(月) 06:48:480070デフォルトの名無しさん
2009/06/01(月) 07:12:580071デフォルトの名無しさん
2009/06/01(月) 07:22:31それが >>64 >>67 の意図する動作になってるかどうかは微妙
>>54 の2ならそれで良さそう
とりあえず >>64 は仕様を明確にすべき
0072デフォルトの名無しさん
2009/06/01(月) 07:59:170073デフォルトの名無しさん
2009/06/01(月) 08:56:03一般のアルゴリズムが分からないって、言語以前の問題だからw
0074デフォルトの名無しさん
2009/06/01(月) 15:17:180075デフォルトの名無しさん
2009/06/01(月) 15:51:51スレ違いですので
こちらへどうぞ
http://pc12.2ch.net/test/read.cgi/tech/1243159710
0076デフォルトの名無しさん
2009/06/01(月) 21:12:23素晴らしいコードありがとうございます。
勉強中でとても参考になります。完全に理解できていないのが申し訳ありませんが(汗
具体的な例をお願いできますか?
例えば、C:\Documents and Settings\user\デスクトップ\新しいフォルダ
の中に、
abc.mp3
def.mp3
ghi.mp3
jkl.mp3という4つのデータがあります。
これらをソートした順に01.mp3〜04.mp3にリネームする。
宜しくお願い致します。
0077デフォルトの名無しさん
2009/06/01(月) 21:36:39その前に自分で書いたコードを貼ってみて
動かなくても全然構わないから
いきなり答え見たら実力つかないよ
0078デフォルトの名無しさん
2009/06/01(月) 21:47:43すいません。
0079デフォルトの名無しさん
2009/06/01(月) 22:16:23指定ディレクトリ内のファイル一覧を取得する
os.listdir、glob.glob等
ファイル一覧を並び替え
list.sort()
ファイル名を変更
os.rename
その他
os.path.join、os.path.abspath
このあたりを調べればいけるんじゃない?
とりあえずosとos.pathモジュールは一通りリファレンスに目を通しましょう。
0080デフォルトの名無しさん
2009/06/01(月) 22:19:21本当にご親切にありがとうございます。
今日さっそく「みんpy」買ってきました。
面白いですね。まだプログラムって感じではないんですが…
とても参考になりました。
またわからない事がありましたら宜しくお願い致します。
0081デフォルトの名無しさん
2009/06/01(月) 22:36:13mp3以外のファイルがあったら番号とばない?
0082デフォルトの名無しさん
2009/06/01(月) 22:52:35飛ぶね。失礼しました
count = 1
for filename in os.listdir(u'.'):
if filename.endswith('.mp3'):
os.rename(filename, '%03d.mp3' % count)
count += 1
0083デフォルトの名無しさん
2009/06/01(月) 22:57:49ちょっと片言の言語で作ってみましたがrenameでのアイデアが…
なにかヒントをお願いします。
#coding: UTF-8
import os
TargetPath = u'C:\Documents and Settings\user\デスクトップ\Mariah.Carey'
a=FileList = os.listdir(TargetPath)
print u"[曲名一覧]"
for f in a:
print f
else:
print u"以上"
b=len(a)
print u"全部で",b,u"曲"
c=range(1,b+1)
print c,u"までのリストを作成"
ここまででギブ…曲数分の数値をリストで作ってみて対応できればと…その後は…
そもそも間違った考え方なんですかね…ネットで調べながらなのですいません。
0084デフォルトの名無しさん
2009/06/01(月) 23:24:31#-*- coding: utf-8 -*-
import os, sys, time, shutil
from math import ceil, log
def rename_to_number(srcdir, ext):
files = filter(lambda x: x[-len(ext):]==ext, os.listdir(srcdir))
tmpdir = os.path.join(srcdir, 'tmp%s_%s' % (os.getpid(), time.time()))
while os.path.exists(tmpdir): tmpdir += '0'
os.mkdir(tmpdir)
for f in files:
src = os.path.join(srcdir, f)
shutil.move(src, tmpdir)
fmt = '%%0%dd%s' % (ceil(log(len(files),10)), ext)
for i, f in enumerate(sorted(files)):
src = os.path.join(tmpdir, f)
dst = os.path.join(srcdir, fmt % i)
shutil.copy(src, dst)
#shutil.rmtree(tmpdir) # この行を有効にすると作業後テンポラリを削除します。
if __name__ == '__main__':
srcdir = sys.argv[1]
ext = sys.argv[2]
if ext[0] != '.': ext = '.' + ext
rename_to_number(srcdir, ext)
# 使い方。このスクリプトを hoge.py と保存(UTF-8)した場合。
# python hoge.py ターゲットディレクトリ 対象拡張子
# と入力
0085デフォルトの名無しさん
2009/06/01(月) 23:35:15すごい。。。
レベルが違いすぎました。
出直してきます。
恥ずかしいですわ
008684
2009/06/01(月) 23:55:00ファイル名の先頭が 0 になるようにする。(12行目)
× fmt = '%%0%dd%s' % (ceil(log(len(files),10)), ext)
○ fmt = '%%0%dd%s' % (1+ceil(log(len(files),10)), ext)
番号を 0からスタートじゃなく、1からにする。(15行目)
× dst = os.path.join(srcdir, fmt % i)
○ dst = os.path.join(srcdir, fmt % (i+1))
0087デフォルトの名無しさん
2009/06/02(火) 00:01:080088デフォルトの名無しさん
2009/06/02(火) 00:19:050089デフォルトの名無しさん
2009/06/02(火) 17:09:47初歩的な質問で申し訳ありません。
.pyのついたファイルをウィンドウズで実行したいのですが、どのように設定をしたらいいでしょうか?
python-3.0.1をインストールしてみたのですが、どうしたらいいのかイマイチよくわかりません;;
0090デフォルトの名無しさん
2009/06/02(火) 17:16:180091デフォルトの名無しさん
2009/06/02(火) 17:32:05Python 3.0 はプログラミングの初学者には今のところ向いてないよ
>>90 の言う通りにしてコマンドプロンプトの使い方も併せて調べておくといいと思う
0092デフォルトの名無しさん
2009/06/02(火) 18:13:352.6.2ですね。
試してみます。
0093デフォルトの名無しさん
2009/06/02(火) 23:50:54素敵だが初心者にやさしくないなぁ
無駄に丁寧だから本質じゃない部分につい目がいってしまう
0094デフォルトの名無しさん
2009/06/03(水) 01:05:17本当にそうだな。
ただ、あそこまでやるなら、テンポラリディレクトリ作るのに何故
tempfile.mkdtemp()を使わないのかが非常に謎。
0095デフォルトの名無しさん
2009/06/03(水) 07:09:58///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0096デフォルトの名無しさん
2009/06/03(水) 18:04:51python2.5.3
try:
getattr(obj, 'undefined_method')
except AttributeError:
pass
だいぶ省略していますが、こんな感じのコードがあり、ここでmain内でエラーが発生すると
UnboundLocalError: local variable 'AttributeError' referenced before assignment
と出てしまいます
AttributeErrorが見つからない理由と、そもそもUnboundLocalErrorがなんなのかよく理解出来ていないのですが、
原因をご存知の方いますでしょうか?
009796
2009/06/03(水) 18:24:44その前に書いてあった
except ImportError, AttributeError:
の括弧忘れでした。
0098デフォルトの名無しさん
2009/06/03(水) 18:27:33NameError: とにかくそんな名前知らんよ
0099デフォルトの名無しさん
2009/06/03(水) 19:14:50エラーが出なくなっただけで
解決はしていないと思うよw
0100デフォルトの名無しさん
2009/06/03(水) 19:19:47社会人になってからは言語は一切触れてません。
インフラ側の人間だったのですが、
言語もかじっておきたくpythonをと考えています。
web上の入門サイトをいくつかやってる最中ですが、
いまいち手応えがありません。
そこで、勉強になるような課題?に適したものってなにかありますでしょうか。
また、Django、Ploneも気になっているのですが、
そうした勉強というのは市販されているテキストを一通りできれば
掴めるものでしょうか。
*正直、業務でも活かせることができるまでを
意識した勉強の仕方がわからないのが困っています、、、
0101デフォルトの名無しさん
2009/06/03(水) 19:48:45まず要点をまとめてわかりやすく説明することを勉強しるw
0102デフォルトの名無しさん
2009/06/03(水) 19:59:080103デフォルトの名無しさん
2009/06/03(水) 22:17:38>>100に明確な目的があるなら別だけど
時間に迫られてないけど面倒な作業を自動化してみる辺りからやってみたら?
0104デフォルトの名無しさん
2009/06/03(水) 22:41:03そして己の無知を自覚して初めてのPythonに取り組む
まあ、業務で即生かせるようにはならないがな!
0105デフォルトの名無しさん
2009/06/03(水) 23:23:42お持ちの方がいましたら、見てみてください。
>>>for cnt in range((len(seq)):
... print seq[cnt]
...
です
0106デフォルトの名無しさん
2009/06/03(水) 23:38:250107デフォルトの名無しさん
2009/06/03(水) 23:52:390108デフォルトの名無しさん
2009/06/04(木) 00:36:510109デフォルトの名無しさん
2009/06/04(木) 02:20:26ここの課題でもやってみれば?
http://pc12.2ch.net/test/read.cgi/tech/1153585095/
Django, Plone は 「Python 自体の勉強」 にはお奨めしない
0110デフォルトの名無しさん
2009/06/04(木) 03:36:56チュートリアルをひととおりやって、それが終わったらライブラリリファレンスを読む。
用途や意味の分からないライブラリがあったら調べて、どういう時使うのか理解する。
目的ありきでもいいのかもしれないけど、道具を徹底的に理解するのも大事だと思う。
標準ライブラリだけでも、かなり実用的なものが揃ってるから分かってくると楽しいよ。
0111デフォルトの名無しさん
2009/06/04(木) 10:01:10ひどい書籍ですね!
ぜひとも買って確かめなければ!!!
0112デフォルトの名無しさん
2009/06/04(木) 12:55:57> web上の入門サイトをいくつかやってる最中ですが、
> いまいち手応えがありません。
手応えがありませんって、
簡単すぎて全部わかっちゃったのか、
基本も理解出来ないのか、
どっちなんだ?
基本がわからないんだったら、何度も読み返して、
くだらない例題だと思っても、
自分で実際にコードを書きまくって理解しろよ。
0113105
2009/06/04(木) 23:00:47... print seq[cnt]
...
でした。でもこれでもおかしいですよね?
len()への引数で文字列を扱う際は""。
結果的にはどうしたいのか謎ですが、これが正解に近いですか?
>>>a="seq"
>>>b=range(len(a))
>>>b
[0,1,2]
>>>for cnt in b:
... print a[cnt]
...
s
e
q
>>>
ではないですか?
ってか単純に文字列に""が足りないだけで
>>>for cnt in range(len("seq")):
... print "seq"[cnt]
...
s
e
q
でしょうか?上記の例は詳しくやってみました。
0114デフォルトの名無しさん
2009/06/04(木) 23:04:44前で代入されてるんでしょ?
0115デフォルトの名無しさん
2009/06/04(木) 23:10:32なによりそれが可哀想だ。
0116デフォルトの名無しさん
2009/06/04(木) 23:11:470118デフォルトの名無しさん
2009/06/05(金) 00:09:14普通にあるだろ。そうでなければタダの誤植。
だいたいseqっていう名前から
何らかのシーケンスを表す変数だって想像しろよ。
"seq"っていう文字列だなんて普通は思わないよ。
0119デフォルトの名無しさん
2009/06/05(金) 00:14:38range(len(seq))はforで添え字アクセスをしたい場合に使う慣用句
こんな感じに使う
>>> lines = [u'1行目', u'2行目', u'3行目']
>>> for linenum in range(len(lines)):
... print '%d: %s' % (linenum + 1, lines[linenum])
...
1: 1行目
2: 2行目
3: 3行目
後々わかる日が来るから深く悩まず先に進むのが吉
0120デフォルトの名無しさん
2009/06/05(金) 00:18:22あ、linenumになってないね。
linenum → i に訂正
0121デフォルトの名無しさん
2009/06/05(金) 00:29:170122デフォルトの名無しさん
2009/06/05(金) 02:17:09ぜったい普通じゃないよね かわいそう
0123デフォルトの名無しさん
2009/06/05(金) 03:11:03で、次のようにコーディングしたらselfが定義されてない、って怒られました。
class A:
def __init__(self):
self.x = []
for i in range(1,4):
self.x.append(i)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
class A:
File "<pyshell#5>", line 5, in A
self.x.append(i)
NameError: name 'self' is not defined
なにがまずいのかわかりません。どなたかご指摘くださるとありがたいです。
0124デフォルトの名無しさん
2009/06/05(金) 03:23:15インスタンスメソッドの第一引数(慣習としてselfを使う)は
インスタンスオブジェクトを指す。
その for 文はインスタンスメソッドの外側にあるので、クラスを
生成するときに実行される。その時にselfは存在しない。
解決するにはインデントを修正する。
class A:
def __init__(self):
self.x = []
for i in range(1,4):
self.x.append(i)
ただし、こちらの方が綺麗
class A:
def __init__(self):
self.x = range(1,4)
0125デフォルトの名無しさん
2009/06/05(金) 10:02:50スペースを全角に変換してもういちどコード張れや>123
0126デフォルトの名無しさん
2009/06/05(金) 11:08:44ありがとうございます。
インデントはつけています。投稿時につぶれてしまいました。すみません。
>>125
インデントは次のようにつけています。
class A:
def __init__(self):
self.x=[]
for i in range(1,4):
self.x.append(i)
0127デフォルトの名無しさん
2009/06/05(金) 11:13:27バロス(wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0128126
2009/06/05(金) 11:31:20for i ...
のインデントは
def __init__ ...
より内側に来なきゃいけないのかな?
どうもselfがよくわからんorz
0129デフォルトの名無しさん
2009/06/05(金) 13:20:52既に別の空間だ
0130デフォルトの名無しさん
2009/06/05(金) 15:50:40$ sed -e "s/ /\ /g" test.py
みたいに正規表現でhtmlの空白に置換するといいよ
0131デフォルトの名無しさん
2009/06/05(金) 19:49:02リストでスライスのことですが、
a=range(10)
a[1:3]
1,2
となります。
なぜ、1,2,3にならないのでしょうか?
0からのインデックスという説明がされているのですが、
0,1,2,3,4,5,6,7,8,9
とするのならば、a[1,3]であれば、1,2,3ではないのですか?
こんなところでつまづいてしまっているのですが、どのように理解すればよいのでしょうか?
0132デフォルトの名無しさん
2009/06/05(金) 19:56:23a[1:3]でした。
0133デフォルトの名無しさん
2009/06/05(金) 19:59:19スライスにおけるインデックスは文字の隙間と考えるのが定番
http://www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000
0134デフォルトの名無しさん
2009/06/05(金) 20:03:08開始点は含み、終了点を含まない範囲を指定している。
記号で書けば、 [begin, end)
こうすると、長さ0の範囲を [n:n] で表せる。
もしくは、長さを end - begin で計算することができる。
C++でも同じ考え方をしているよ。
0135デフォルトの名無しさん
2009/06/05(金) 20:04:16なるほど。文字と文字の隙間にインデックスが付けられているのですね。
文字自体についているわけではなかったのか。
疑問が解けました。ありがとうございました。
0136デフォルトの名無しさん
2009/06/05(金) 20:06:47理由付けやルールなんかは言語作者のもんだしさ…
0137デフォルトの名無しさん
2009/06/05(金) 20:09:47133さんのリンク先の図解で理解できました。
また、計算する際にも利用できるのですね。
今のところ、図解が理解できたので良しとします。
m(_ _)m
0138デフォルトの名無しさん
2009/06/05(金) 20:27:42確かにそうなのかも知れないですけど、モヤモヤしていて理解できないことって、気持ちが悪いです。
しかも難しくて理解できないことじゃなくて、誰でも疑問を持ちそうな初歩的なことでしたから。
インデックスが、文字自体に付いていないということに気付きませんでした。
0139デフォルトの名無しさん
2009/06/05(金) 20:34:200140デフォルトの名無しさん
2009/06/05(金) 20:40:24今の算数は、インデックスが0から始まりそれは文字に割り当てられてのではなく、
隙間に割り当てられているって習うんですか?
私に時には習った覚えはないです。
0141デフォルトの名無しさん
2009/06/05(金) 20:42:15うーん、そうなのですか?
今の算数は、インデックスが0から始まりそれは文字に割り当てられるのではなく、
隙間に割り当てられているって習うんですか?
私の時には習った覚えはないです。
0142デフォルトの名無しさん
2009/06/05(金) 20:46:20釣られなくていいから
0143デフォルトの名無しさん
2009/06/05(金) 20:58:16そっくりそのままお前に返したいw
0144デフォルトの名無しさん
2009/06/05(金) 21:46:27くりそつ
0145デフォルトの名無しさん
2009/06/05(金) 22:37:150146デフォルトの名無しさん
2009/06/06(土) 01:15:510147デフォルトの名無しさん
2009/06/06(土) 09:58:05カウンタが1から始まったりendが含まれる系の言語では
あちらこちらに +1 とか -1 が散らばってて、一旦バグると
どの +1 が間違ってるのか判らないもんな。
0148デフォルトの名無しさん
2009/06/06(土) 11:47:27for (i = begin; i < end; i++)
だな。
for (i = begin; i <= end; i++)
とか書いてるのみるとイラッとする。
0149デフォルトの名無しさん
2009/06/06(土) 12:39:39場合によるね。
タグの値を順番になめる場合とか、結構 <= で比較する場合もあると思う。
for (tid = ID_START; tid <= ID_FINAL; ++tid) とか。
0151デフォルトの名無しさん
2009/06/06(土) 12:54:49ただ
for (double alpha = 0.0; alpha <= alpha_max; alpha += step)
みたいに実数値の範囲みたいなのは<=じゃないとキモいと思う
0152デフォルトの名無しさん
2009/06/06(土) 14:00:30そうでないと斜め読みしてるときにいちいち目がとまって
本当にただしいか確認しないとといけない。
もちろん、>>151みたいなalpha_maxとかINT_MAXみたいに
どうしようもない場合もあるんだが。
郷にいれば郷に従えみたいな感じかなあ。
0153デフォルトの名無しさん
2009/06/06(土) 14:05:25今のなしで。
0154デフォルトの名無しさん
2009/06/06(土) 14:07:10A〜Bなら、i<=Bだな。
0155デフォルトの名無しさん
2009/06/06(土) 14:14:250156デフォルトの名無しさん
2009/06/06(土) 15:42:24なんで?
0157デフォルトの名無しさん
2009/06/06(土) 19:41:220158デフォルトの名無しさん
2009/06/06(土) 22:25:540159デフォルトの名無しさん
2009/06/06(土) 23:25:490160デフォルトの名無しさん
2009/06/08(月) 10:48:32マジすか?
Mac から Microsoft Access データを読み書きする方法教えやがれです。
0161デフォルトの名無しさん
2009/06/08(月) 12:04:12最近、BlackJumboDogを使ってWindowsXPでWEBサーバを立てたのですが
PerlとRubyは動くのにPythonが動きません。
cmdから「perl -v」「python -v」「ruby -v」をやるとエラーの雰囲気は無い応答が帰ってくるので
問題ないとおもうのですが、何か原因がわかるかたいますか?
ちなみに「python -v」を打ち込むとperlやrubyではバージョンとかが出るのですが
pythonだけ対話モードみたいなのに入ります。
cgiの中身は以下のようになってます。
#!/python
# -*- coding: utf-8 -*-
import cgi
import cgitb
cgitb.enable()
print "Content-Type: text/html"
print "hello world."
アクセスすると真っ白です。
どなたかお助け願います。お願いしますよろしくお願いします!
0162デフォルトの名無しさん
2009/06/08(月) 12:17:42かなり特殊なサーバーみたいだね。
http://www.kamezoh.net/bjd-doc/bjd-doc/WebCgi.html
これをみると、拡張子とインタプリタの関連付けを一個一個埋め込みで実装している
ような気がする。で、Pythonには対応していないから実行できなさそう。
0163デフォルトの名無しさん
2009/06/08(月) 12:29:30まま、マジですか!
ありがとうございます。
原因がBlackJumboDogにあるとは考えてなかったので
それを念頭にまたググってみます。
0164デフォルトの名無しさん
2009/06/08(月) 13:15:30python -V (大文字)
0165デフォルトの名無しさん
2009/06/08(月) 15:08:16多分bingoだろうな。どうして--helpとか、-hをまずしないのだろうか。
0166デフォルトの名無しさん
2009/06/08(月) 15:23:13http://6924.teacup.com/kamezoh/bbs
かめぞ〜掲示板
雑談 兼 避難所
げ! 投稿者:かめぞ〜 投稿日:2008年 9月 4日(木)20時34分22秒 返信・引用
勝手に広告なんか入れやがって・・・SPAM業者と変わらんではないか。
掃除掃除。( ´〜`)y-~~
空いた時間を有効活用
バイト探しはお任せ。高時給から短時間バイトまでおすすめ情報を比較。
リフォームしませんか
リフォーム情報が満載。人気のリフォーム会社を徹底比較。
おしゃれ女性かつら情報
ファッションから医療用まで、女性用かつら・ウィッグ情報はコチラ。
0167デフォルトの名無しさん
2009/06/08(月) 17:22:26特別な事情やこだわりがない限り
WebサーバはApache使ったほうがいいんじゃまいか
0168デフォルトの名無しさん
2009/06/08(月) 19:40:31俺はANHTTPDを使ってる
これならPythonだろうがなんだろうが動くぞ
0169デフォルトの名無しさん
2009/06/08(月) 20:20:460170デフォルトの名無しさん
2009/06/08(月) 22:40:41時は再起動しかないですか?(プログラムを)
0171デフォルトの名無しさん
2009/06/08(月) 23:08:550172デフォルトの名無しさん
2009/06/09(火) 00:40:26へえ、と思ってソース(TVWeb.cpp)を見たが、以下のようなロジックなので
pythonインタープリターとパラメーターがちゃんと1行目に書いてあれば
大丈夫っぽい。
1行目が#!で始まっている
→perlという文字があればperl、rubyという文字があればrubyと見なす
どちらでもなければコマンドへのフルパスと見なす(/は\に置換)
1行目が<?で始まっている
→phpと見なす
何がcgiモジュールなのかは、設定ダイアログで設定した拡張子で判断する。
ただし、拡張子と実行コマンドが紐付けされるわけではなく、上記のロジックで
判断される。
0173デフォルトの名無しさん
2009/06/09(火) 03:47:45じゃあ
#!c:/Python26/python.exe
って書かないといけない訳?
0174デフォルトの名無しさん
2009/06/09(火) 07:54:250175デフォルトの名無しさん
2009/06/09(火) 22:11:340176デフォルトの名無しさん
2009/06/10(水) 08:07:17http://pc11.2ch.net/test/read.cgi/php/1163513344/
いつまで板違いの話をしてんの
0177デフォルトの名無しさん
2009/06/10(水) 09:16:420178デフォルトの名無しさん
2009/06/10(水) 11:44:060179デフォルトの名無しさん
2009/06/10(水) 22:56:31他の板に適切なスレがあるからと言って、即スレ違いということにはならん。
誘導自体は否定しないけどね。
0180デフォルトの名無しさん
2009/06/11(木) 16:09:250181デフォルトの名無しさん
2009/06/11(木) 17:10:28次のようなことをしたいと思ってます。
クラスA、クラスB、クラスCがある。
1、クラスBからの出力を、クラスAが入力として受け、クラスAのなんらかのメソッドを実行する。
2、クラスAのメソッド実行終了後、クラスCのメソッド実行に移る。
どうやったらいいか、思考の材料さえ頭の中にない状態です。キーワードだけでも教えてください。
0182デフォルトの名無しさん
2009/06/11(木) 18:00:42http://pc12.2ch.net/test/read.cgi/tech/1153585095/
0183デフォルトの名無しさん
2009/06/11(木) 19:56:01まず、何でもいいから
「クラスを定義してインスタンスを作ってメソッドを実行する」
くらいは出来るの?
0184181
2009/06/11(木) 20:18:11ようやくそれができるようになった段階です。
0185デフォルトの名無しさん
2009/06/11(木) 21:57:35例えばディレクトリ指定はコード内に書く。
フォルダ内のごちゃごちゃ名前のmp3ファイルをa01.mp〜a0n.mp3まで順に書き換える。
参考にさせて頂きたいのですが、サクサク書ける方いましたら宜しくお願い致します。
0186デフォルトの名無しさん
2009/06/11(木) 22:15:48webサーバーのCIとか得意ですか?
0187デフォルトの名無しさん
2009/06/12(金) 00:21:57Pythonは、汎用のプログラミング言語だから、大抵の事に適しているよ。
デスクトップアプリ: BitTorrent, DropBoxクライアントなど
Webアプリ: Zope, Django, TurboGears
埋め込み: 各種ゲーム、CG
サーバー: Webサーバー、FTPサーバー、メッセージングサーバー
0188デフォルトの名無しさん
2009/06/12(金) 03:17:45web板逝けよ
http://pc11.2ch.net/test/read.cgi/php/1163513344
0189デフォルトの名無しさん
2009/06/12(金) 07:28:250190デフォルトの名無しさん
2009/06/12(金) 08:55:150191デフォルトの名無しさん
2009/06/13(土) 22:57:07これってどういう目的で行うんですか?関数によって返されたオブジェクトを変数に代入すれば同じ
効果ですか?
ちょっとわかり難いので、噛み砕いてご説明いただけると幸いです。
プログラミング自体初心者です。宜しくお願いします。
0192デフォルトの名無しさん
2009/06/13(土) 23:31:070193デフォルトの名無しさん
2009/06/14(日) 00:20:460194デフォルトの名無しさん
2009/06/14(日) 01:04:35例えば足し算の関数 add を作ってみる
def add(x, y):
return x + y
これを answer = add(2, 3) と使うと、
add さんに 2 と 3 を足してくれーと頼んで、add(2, 3) はその結果の 5 に置き換わると考えてかまわない
つまり answer = 5 みたいになって、answer には 5 が代入される
answer = add(2, 3) * 3 なら answer = 5 * 3 みたいになって 15 が代入される
0195デフォルトの名無しさん
2009/06/14(日) 09:46:430196デフォルトの名無しさん
2009/06/14(日) 10:38:01おれもよくわからんのですが、forループで書くよりreduceで書いたほうがカッコいいというのは分かる。
つまり結果が一個になるforループはreduceで書いてる…
おなじく結果の個数が変わらないforループは、mapで書いたほうがカッコいいのでそうしてる。
0197デフォルトの名無しさん
2009/06/14(日) 12:08:24とは限らないんだよねぇ
0198デフォルトの名無しさん
2009/06/14(日) 12:30:03えー
教えてくだしあ
0199デフォルトの名無しさん
2009/06/14(日) 12:35:10x1 ⊕ x2 ⊕ ... ⊕ xn
のこと。
リストx1, ..., xnと2項演算子⊕を与えられればこの計算は定義できるでしょ。
0200デフォルトの名無しさん
2009/06/14(日) 12:39:17ありがとうございます!
returnを使わないと、戻り値を変数に代入できないのですが、
それを代入できるようにするのがreturnと考えてもOKですか?
0201デフォルトの名無しさん
2009/06/14(日) 12:49:58Pythonに代入というものはない。
すべてbindingだ。
0202デフォルトの名無しさん
2009/06/14(日) 12:51:45不思議な頭の構造してる人だなぁ。
returnを使わないと、戻り値がそもそも「ない」。
あなた「戻り値」って何だと理解しているわけ?
0203デフォルトの名無しさん
2009/06/14(日) 12:55:10>>returnを使わないと、戻り値がそもそも「ない」。
っていうのがよくわからないんですよね
参考書などではreturnのところがprint文で結果を表示するようになってますよね。
その違いってなんですか
0204デフォルトの名無しさん
2009/06/14(日) 12:56:300205デフォルトの名無しさん
2009/06/14(日) 12:58:55newlist = reduce(lambda x,y: x+y, inputlist) リストの内容を全部連結したリスト作る
たとえばこんなreduceもあるかもしれんけど…
結局どういうとこで使うのが一番カッコいいのか良く分からんのですよ。
逆に正直に言うとですね、「コイツこういうとこではreduce使えよバカ」と思われないためには
どうしたらよいでしょうかw
0206デフォルトの名無しさん
2009/06/14(日) 13:03:18呼び出して任せて何かさせて終わり、なら、戻り値は要らない。
呼び出して結果を報告させるには、戻り値が必要。
0207デフォルトの名無しさん
2009/06/14(日) 13:05:49「関数内部の都合」がごっちゃになってるんじゃね?
関数は作る人と使う人がいる。
0208デフォルトの名無しさん
2009/06/14(日) 13:06:01速度面などで必要ないなら使わなくておk
0209デフォルトの名無しさん
2009/06/14(日) 13:06:39使う意義がよく分からないものは無意味に使わないのが
Python的にはカッコイイ。
0210デフォルトの名無しさん
2009/06/14(日) 13:09:48わざわざlambda でごちゃごちゃと車輪の再発明するのはカコワルイ。
もっともreduceをとる高階関数なんて、見たことないけど。
0211デフォルトの名無しさん
2009/06/14(日) 13:13:29使わなくてよろしい。
0212デフォルトの名無しさん
2009/06/14(日) 13:17:14非常にすっきりしました。
map/reduceの兄弟、兄は本当に便利な子だけど弟は「はっきり言って要らない子なのよね」
とつぶやく母、それを聞いてしまい泣きながら家を飛び出すreduceくんということですね。
0213デフォルトの名無しさん
2009/06/14(日) 13:21:02Pythonの場合、関数型にこだわる意味がないからな。
0214デフォルトの名無しさん
2009/06/14(日) 13:28:54初心者が対話型プロンプトで標準出力への出力と
関数の戻り値が区別つかなくなるのは典型的な落とし穴
print 'hoge' # 'hoge'を標準出力に書き出す。戻り値もへったくれもない
0215デフォルトの名無しさん
2009/06/14(日) 13:29:510216デフォルトの名無しさん
2009/06/14(日) 13:36:31そういう奴に限って、アルゴリズムがさっぱりだったりするw
0217デフォルトの名無しさん
2009/06/14(日) 13:44:190218デフォルトの名無しさん
2009/06/14(日) 13:51:070219デフォルトの名無しさん
2009/06/14(日) 13:56:24>>関数は作る人と使う人がいる。
難しいな
0220デフォルトの名無しさん
2009/06/14(日) 14:24:22Cしか知らない人が「何なのこれ??」っていうから、
このmapってのがfor i = 0 to... のループで、filterってのがループの中のif文ですな、
展開してみるとこんな具合です。と説明したら「SUGEEEE」言ってた。
0221デフォルトの名無しさん
2009/06/14(日) 14:29:03なるほど、式を評価してそのまま表示するから、
かえって分かりにくくなってるってことか。
0222デフォルトの名無しさん
2009/06/14(日) 14:38:50reduceが兄で
mapが弟ですよ
0223デフォルトの名無しさん
2009/06/14(日) 14:40:20printの戻り値は無視ですかそうですか
0224デフォルトの名無しさん
2009/06/14(日) 14:50:580225デフォルトの名無しさん
2009/06/14(日) 15:09:590226デフォルトの名無しさん
2009/06/14(日) 15:12:15少なくとも>>214のprintは誰が見ても文
0227デフォルトの名無しさん
2009/06/14(日) 21:56:200228デフォルトの名無しさん
2009/06/14(日) 21:58:27pythonは処理の構造を抽象化するオツムなんかプログラマに期待していなくて
バカでもちょっとだけ賢い人も同じ処理を書くと同じようなコードになるよう
誘導する言語だから、ループ書けという方向になってる。
reduceとかは、初期に有能なプログラマを魅きつけるためのプログラマホイホイ
みたいなもので、十分普及した今となってはいらん子扱い。
0229デフォルトの名無しさん
2009/06/14(日) 22:10:57ネタだよね
0230デフォルトの名無しさん
2009/06/14(日) 23:38:37forを書くプログラマは馬鹿
0231デフォルトの名無しさん
2009/06/14(日) 23:47:000232デフォルトの名無しさん
2009/06/15(月) 01:02:07なくなっちゃったらなんか味気ないよねえ
リスト内包表記がなかったら少し困るけどね
0233デフォルトの名無しさん
2009/06/15(月) 02:44:240234デフォルトの名無しさん
2009/06/15(月) 10:33:27ベクトルの加算みたいな
+をoperator.addとかタイプせなあかんのはウザいが
0235デフォルトの名無しさん
2009/06/15(月) 10:38:540236デフォルトの名無しさん
2009/06/15(月) 10:59:500237デフォルトの名無しさん
2009/06/15(月) 11:07:23の真ん中あたりに。
バージョン 時間(秒)
基本的なループ 3.47
ドットを取り除いたもの 2.45
ローカル変数&ドットなし 1.79
map関数をつかったもの 0.54
0238デフォルトの名無しさん
2009/06/15(月) 13:08:48A = [1,2,3]
print "%d, %d, %d" % (A[0], A[1], A[2])
で出来るが、
print "%d, %d, %d" % A
これだと TypeError: int argument required と言われる。
エラーになるのはわかるんだが、そこをなんとか、
Aのインデックスをいちいち指定しないで、
そのまま文字列の場所に入れる方法ってないですか?
0239デフォルトの名無しさん
2009/06/15(月) 13:16:360240デフォルトの名無しさん
2009/06/15(月) 13:17:46もしくは A = (1, 2, 3)
0241デフォルトの名無しさん
2009/06/15(月) 13:34:11タプルの方は出来るのか・・
0242デフォルトの名無しさん
2009/06/15(月) 13:34:390243デフォルトの名無しさん
2009/06/15(月) 18:09:230244デフォルトの名無しさん
2009/06/15(月) 18:11:160245デフォルトの名無しさん
2009/06/15(月) 18:28:190246デフォルトの名無しさん
2009/06/15(月) 18:53:550247デフォルトの名無しさん
2009/06/15(月) 18:57:050248デフォルトの名無しさん
2009/06/15(月) 21:24:180249デフォルトの名無しさん
2009/06/15(月) 21:25:060250デフォルトの名無しさん
2009/06/17(水) 01:51:59実際3.0からはreduceは無いわけで。
map、filterもなくなるの時間の問題でしょ。
0251デフォルトの名無しさん
2009/06/17(水) 02:03:17kwsk
0252デフォルトの名無しさん
2009/06/17(水) 02:10:363.0からはbuiltin関数ではなくなって、モジュールへと追いやられた。
Guido は、他のmapやfilterもbuiltinからは外すべしと主張してたが、これらは3.0ではなんとか残った。
4.0になったときには、builtinから外れてもなんら不思議ではない。
0253デフォルトの名無しさん
2009/06/17(水) 02:27:00あれはかなり古いPythonのベンチ。
リスト内包表記はバージョンがあがるたびにスピードアップしてて、
現在では、lambdaなしのmapに準ずるほどのベンチスピード。
一方、mapでlambdaを使ったら、リスト内包表記どころか、
通常のforループと同じかそれより遅いぐらいになる。
0254デフォルトの名無しさん
2009/06/17(水) 03:58:35全部リスト内包に置き換えた方がよい
ということですね
0255デフォルトの名無しさん
2009/06/17(水) 05:55:35それって、リスト内包では評価対象がイテレータになるんで速い、ってことなの?
0256デフォルトの名無しさん
2009/06/17(水) 06:36:32>現在では、lambdaなしのmapに準ずるほどのベンチスピード。
現在とは3.0ですか2.6ですか
0257デフォルトの名無しさん
2009/06/17(水) 07:09:21reduceをいったいどういう内包表現に置き換える積もりなんだ?
0258デフォルトの名無しさん
2009/06/17(水) 12:42:01おかげさまでうまくいきました
無料の50MBだとコンパイルに失敗(というかソースの展開ですでに失敗)するので
quota3GBのお試し期間を申し込んだら2.5.4をまるごとコンパイルできました
setuptool/mysqldb等も放り込んでMySQLにもアクセスできました
お試し期間が終わるとquotaが50Mに戻るので放っとくとファイルが壊れるそうで
それまでに必要最小限サイズになるように標準ライブラリを削る必要がありました
結局バイナリCGIのケースとやってることはあまり変わらないかもしれません
0259デフォルトの名無しさん
2009/06/17(水) 13:47:20mapで使う関数は、defしたほうがいいってことですか?
defしたリスト内包表記>defしたmap≒lambdaで書いたリスト内包表記>lambdaで書いたmap≒普通のfor
てことなんすかね。リスト内包表記はCで実装した部分を実行するのが多いってことなんだろか
0260デフォルトの名無しさん
2009/06/18(木) 09:21:38普通に自分で def した関数ならば変わらない。
でも、自分で定義しなくても使える関数はC言語で実装されている
事が多いので、同じ事をする lambda よりも高速な事が多い。
速い順に並べると、
1. C関数の内包表記/map
map(str, l)
[str(x) for x in l]
2. Python式による内包表記
[x*2+3 for x in l]
3. Python関数による内包表記/map
def func(x):
return x * 2 + 3
map(func, l)
[func(x) for x in l]
map(lambda x: x*2+3, l)
なので、mapを使っても悪くは無い場合は、1か、3で既存のPython関数を
使う(map用に用意しなくてもいい)場面のみ。
0261デフォルトの名無しさん
2009/06/18(木) 23:38:12python2.6を使用しておりますが、このVerはユニコード文字列は気にしなくてもいいんですか?
例)
#coding: utf-8
a={"abc":"123","bcd":"456"}
b="コード:%(abc)s 局:%(bcd)s"
print b%a #コード:123 局:456
ユニコードのu""は必要ないのでしょうか?
むしろu""を使用するとエラーとなります。
0262デフォルトの名無しさん
2009/06/19(金) 00:23:39>>1
0263デフォルトの名無しさん
2009/06/19(金) 01:00:51ファイルはちゃんとutf-8で保存してる?
どこに u を付けたの?
なんてエラーがでたの?
それはインタラクティブシェル上?それともファイルに保存したコードを実行したの?
環境はWindows?Linux?Mac?
0264デフォルトの名無しさん
2009/06/19(金) 21:45:53utf-8の設定ミスでした。お騒がせ致しました。
違うPCでやったのが原因でした。
0265デフォルトの名無しさん
2009/06/20(土) 21:17:00文字列フォーマットで
>>>print "%+010.2f" % 100.123
+000100.12
となりますが、この10桁ってのは、符号と小数点(.)も含まれるってことでいいんだよね?
0266デフォルトの名無しさん
2009/06/20(土) 23:58:48桁というか、文字数、と思ってたわ。
"前に符号付き0埋め10文字、小数点以下2桁の小数点表示"
とおれは理解してた。
0267デフォルトの名無しさん
2009/06/21(日) 01:25:440268デフォルトの名無しさん
2009/06/21(日) 01:51:430269デフォルトの名無しさん
2009/06/21(日) 02:56:07多い。かなりイラッときた。
0270デフォルトの名無しさん
2009/06/21(日) 03:05:180271デフォルトの名無しさん
2009/06/21(日) 03:27:22正誤表もいまだ出ていません
0272デフォルトの名無しさん
2009/06/21(日) 16:53:32電話してやろうかと思ってたw
日本語どころかコードも怪しい
変な太字のところとかあるしw
0273デフォルトの名無しさん
2009/06/22(月) 01:14:160274デフォルトの名無しさん
2009/06/22(月) 01:24:030275デフォルトの名無しさん
2009/06/22(月) 11:41:020276デフォルトの名無しさん
2009/06/22(月) 12:23:540277デフォルトの名無しさん
2009/06/22(月) 13:21:08ウジ虫に失礼だ。ゴキブリと呼べ。
0278デフォルトの名無しさん
2009/06/22(月) 14:27:22呼んだ?
、 /⌒ヽ, ,/⌒丶、 ,
`,ヾ / ,;;iiiiiiiiiii;、 \ _ノソ´
iカ / ,;;´ ;lllllllllllllii、 \ iカ
iサ' ,;´ ,;;llllllllllllllllllllii、 fサ
!カ、._ ,=ゞiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!! __fカヘ.
/ `ヾサ;三ミミミミミミ彡彡彡ミヾサ`´ 'i、
i' ,._Ξミミミミミミミ彡/////ii_ |
| ;カ≡|ヾヾヾミミミミミミ、//巛iリ≡カi |
| iサ |l lヾヾシヾミミミミミ|ii//三iリ `サi |
| ,カ ,カll|l l lヾリリリリリ川川|爪ミミiリllカ、カi |
| ;iサ,サ |l l l リリ川川川川|爪ミミiiリ サi サi |
| iカ ;カ, |l l リリリリ川川川川l爪ミミilリ ,カi カi |
| iサ ;サ, |リ リリ川川川川川l爪ミミiリ ,サi サi |
| iサ ;iカ, | リ彡彡川川川川|爪ミミiリ ,カi :サ、 |
,i厂 iサ, |彡彡彡彡ノ|川川|爪ミミリ ,サi `ヘ、
,√ ,:カ, |彡彡彡彡ノ川川|ゞミミミリ ,カi `ヾ
´ ;サ, |彡彡彡彡川川リゞミミリ ,サi
;カ, |彡彡彡彡リリリミミミシ ,カi
,;サ, |彡彡ノリリリリミミミシ ,サi
;メ'´ i彡ノリリリリリゞミミシ `ヘ、
;メ ヾリリリリノ巛ゞシ `ヘ、
;メ ``十≡=十´ `ヘ、
ノ ゞ
0279デフォルトの名無しさん
2009/06/22(月) 23:15:49vimと連携させようと思っているんだけど、IDLEショートカットのプロパティを
みても普通のショートカットと違うみたいで呼び出し方がわからないんだわ。
ちなみに、普通のpythonプロンプトなら
nmap <silent>;py :!"C:\python30\python.exe"<CR>
と_gvimrcに書いておけば;pyと書くだけで呼び出せて便利。
0280デフォルトの名無しさん
2009/06/22(月) 23:17:050281デフォルトの名無しさん
2009/06/23(火) 12:34:36↓
0282デフォルトの名無しさん
2009/06/23(火) 12:36:480283デフォルトの名無しさん
2009/06/23(火) 18:36:180284デフォルトの名無しさん
2009/06/24(水) 23:03:37# -*- coding: utf-8 -*-
import os
TargetPath = r"C:\test"
FileList = os.listdir(TargetPath)
for i in FileList:
print i
for cnt in FileList:
c=1
os.rename("%03d.mp3"%c,cnt)
c+=1
※インデントは消えてると思います。。。
WindowsError: [Error 2] 指定されたファイルが見つかりません。
というエラーが出てしまいます。どういうことでしょうか
0285デフォルトの名無しさん
2009/06/24(水) 23:10:410286デフォルトの名無しさん
2009/06/24(水) 23:28:52まぁいいか
0287デフォルトの名無しさん
2009/06/25(木) 00:28:37なんかいろいろまちがっててよくわからんけど
こうしたかったんじゃないか?
# -*- coding: utf-8 -*-
import os
targetpath = r"C:\test"
filelist = os.listdir(targetpath)
for filename in filelist:
print filename
c = 1
for filename in filelist:
oldpath = os.path.join(targetpath, filename)
newpath = os.path.join(targetpath, '%03d.mp3' % c)
os.rename(oldpath, newpath)
c += 1
0288デフォルトの名無しさん
2009/06/25(木) 18:43:09スマートな正解をありがとうございます。
とても参考になりました。
renameへの引数はこのようにするんですね!
0289デフォルトの名無しさん
2009/06/25(木) 23:07:30animal = [dog,cat,pig,lion,deer]
num = [1,2,3,4,5,6]
print animal[0] "は"num[0]"番可愛いです。
print animal[2]"は"num[5]"番可愛いです。
あってますか?
ちなみに
dogは1番可愛いです
pigは6番可愛いです
と表示させたいです
0290デフォルトの名無しさん
2009/06/25(木) 23:32:361から勉強しなおせ
animal = ["dog", "cat", "pig", "lion", "deer"]
num = [1, 2, 3, 4, 5, 6]
print "%sは%d番可愛いです。" % (animal[0], num[0])
print "%sは%d番可愛いです。" % (animal[2], num[5])
0291デフォルトの名無しさん
2009/06/25(木) 23:58:38おまえセンス無いわ
0292デフォルトの名無しさん
2009/06/26(金) 02:27:36釣りの可能性はあるが
0293デフォルトの名無しさん
2009/06/26(金) 02:36:29初心者に説明してもらってもイミフなケース多いし
0294デフォルトの名無しさん
2009/06/26(金) 06:18:15釣り師 ↓
. /| ←竿
○ / |
. (Vヽ/ |
<> |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
|
餌(疑似餌)→.§ >゚++< 〜
の組み合わせだと思ってたんだけど、
最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
これは、どっちかというと、
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
かと思うんだけど、どうよ?
0295デフォルトの名無しさん
2009/06/26(金) 23:25:30そんなコピペで
0296デフォルトの名無しさん
2009/06/27(土) 00:15:100297デフォルトの名無しさん
2009/06/27(土) 14:04:04というのはいいです。
でもあることをしたい時に「ライブラリがすごいたくさんあっちゃって混乱してるけど
すきなの選んで」って勘弁してほしいんですが
0298デフォルトの名無しさん
2009/06/27(土) 16:49:360299デフォルトの名無しさん
2009/06/27(土) 22:27:43それはPerlのCPANじゃね?
Pythonは標準ライブラリが充実している分、たくさんのサードパーティー
ライブラリの中からマトモなのを探す手間が省けることが多いよ。
0300デフォルトの名無しさん
2009/06/28(日) 02:25:50同意
0301デフォルトの名無しさん
2009/06/28(日) 09:18:41マニュアルを見ましたが、該当のコマンドが見つかりませんでした.
http://www.python.jp/doc/2.4/lib/ftp-objects.html
nlst() で片っ端から試して例外処理で取得する方法を思いつきましたが
もっとスマートな方法はありませんか?
0302デフォルトの名無しさん
2009/06/28(日) 11:42:420303デフォルトの名無しさん
2009/06/30(火) 22:07:591から100までの数字で不定期に続くリストがあります。
cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
でどの数値が抜けているのかを調べる。
#coding:utf-8
cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
num=range(1,101)
for i in cnt:
#numから繰り返し変数iを引きたいんだけど、何が一番スマートだろ…
print num
0304デフォルトの名無しさん
2009/06/30(火) 22:13:41#coding:utf-8
cnt=[2,3,5,9,12,23,56,62,68,75,85,95]
num=range(1,101)
for i in cnt:
num.remove(i)
print cnt
がベストかと思うんですが…間違ってますか?
0305デフォルトの名無しさん
2009/06/30(火) 22:15:360306デフォルトの名無しさん
2009/06/30(火) 22:16:130307デフォルトの名無しさん
2009/06/30(火) 22:19:360308デフォルトの名無しさん
2009/06/30(火) 22:22:160309デフォルトの名無しさん
2009/06/30(火) 22:28:35ありがとうございます。
どーしょーもない質問ですいませんでした
0310デフォルトの名無しさん
2009/07/02(木) 18:25:230311デフォルトの名無しさん
2009/07/03(金) 02:41:460312デフォルトの名無しさん
2009/07/03(金) 05:25:27┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0313デフォルトの名無しさん
2009/07/03(金) 11:39:22if a>0 and b>0 and c>0:
みたいなのは無理ですか?
0314デフォルトの名無しさん
2009/07/03(金) 11:48:17そんなの聞くよりやった方が早いだろ。
普通に対話型でもできるし。
0315デフォルトの名無しさん
2009/07/03(金) 11:48:330316デフォルトの名無しさん
2009/07/03(金) 13:00:10と書いてもエラーにならない処理系はありますか
0317デフォルトの名無しさん
2009/07/03(金) 13:02:380318デフォルトの名無しさん
2009/07/03(金) 13:07:23あと、エラーにはならなくとも、おもいがけない意味になることもある
(C言語とか)。
0319デフォルトの名無しさん
2009/07/03(金) 13:12:13>>318
>>318
0320デフォルトの名無しさん
2009/07/03(金) 13:22:050321デフォルトの名無しさん
2009/07/03(金) 13:27:420322デフォルトの名無しさん
2009/07/03(金) 13:32:120323デフォルトの名無しさん
2009/07/03(金) 14:47:170 < (a < 5)
または
(0 < a) < 5
ということですか?
0324デフォルトの名無しさん
2009/07/03(金) 14:53:34int main(int ac, char *av[]){
int a;
for(a = 0; a <= 5; a++)
if(0 < a < 5) printf("%d: true\n");
else printf("%d: false\n");
return 0;
}
# if(0 < a < 5)
0: true
1: true
2: true
3: true
4: true
5: true
# if(0 < (a < 5))
0: true
1: true
2: true
3: true
4: true
5: false
0325デフォルトの名無しさん
2009/07/03(金) 15:05:430326デフォルトの名無しさん
2009/07/03(金) 16:24:50>>318
0327デフォルトの名無しさん
2009/07/03(金) 17:11:571: true
2: true
3: true
4: true
5: false
になるようにするにはどうすればいいですか
0328デフォルトの名無しさん
2009/07/03(金) 17:18:01C/C++スレに帰れ
0 < a && a < 5
0329デフォルトの名無しさん
2009/07/03(金) 17:21:22>>324はきちんと動いてないし
0330デフォルトの名無しさん
2009/07/03(金) 17:24:130331デフォルトの名無しさん
2009/07/03(金) 17:28:310332デフォルトの名無しさん
2009/07/03(金) 17:43:560333デフォルトの名無しさん
2009/07/03(金) 17:44:450334デフォルトの名無しさん
2009/07/03(金) 17:47:340335デフォルトの名無しさん
2009/07/03(金) 22:17:47(< 0 a 5)
当然Rubyなんかには出来ません
0336デフォルトの名無しさん
2009/07/03(金) 23:07:383
(< 0 a 5)
t
>>> a = 3
>>> 0 < a < 5
True
0337デフォルトの名無しさん
2009/07/03(金) 23:22:22t = b
u = c
a > t and t > u and u > d
ってことか。これはきもいなー。
Python3でも変わってないのね。
まあ、気にしないことにしよう。
0338デフォルトの名無しさん
2009/07/03(金) 23:27:340339デフォルトの名無しさん
2009/07/03(金) 23:31:570340デフォルトの名無しさん
2009/07/03(金) 23:45:06a < b > c #これはいただけないよね?だからと言って
b == sorted((a, b, c))[2] #これは頭がおかしい
0341デフォルトの名無しさん
2009/07/03(金) 23:50:580342デフォルトの名無しさん
2009/07/04(土) 00:05:090343デフォルトの名無しさん
2009/07/04(土) 00:09:40a < b > c に d を加えられない
sorted の方が正解
0344デフォルトの名無しさん
2009/07/04(土) 00:11:340345デフォルトの名無しさん
2009/07/04(土) 00:12:110346デフォルトの名無しさん
2009/07/04(土) 00:15:070347デフォルトの名無しさん
2009/07/04(土) 00:16:530348デフォルトの名無しさん
2009/07/04(土) 00:19:190349デフォルトの名無しさん
2009/07/04(土) 00:20:230350デフォルトの名無しさん
2009/07/04(土) 00:24:280351デフォルトの名無しさん
2009/07/04(土) 00:50:00正書式でなくても適当によしなに計らってくれるとなお嬉しい。
Ruby だったら Nokogiri みたいだけど、Python では何?
0352デフォルトの名無しさん
2009/07/04(土) 00:55:37- BeautifulSoup
- lxml
0353デフォルトの名無しさん
2009/07/04(土) 01:44:26lxml だと無理?
0354デフォルトの名無しさん
2009/07/04(土) 02:18:390355デフォルトの名無しさん
2009/07/04(土) 06:15:050356デフォルトの名無しさん
2009/07/04(土) 10:06:220357デフォルトの名無しさん
2009/07/07(火) 11:50:56"Hoge"からはどうやってアクセスするんだっけ?
あと、こういうのを一般的に言って、どんな専門用語でしたっけ?
0358デフォルトの名無しさん
2009/07/07(火) 11:53:48globals()["Hoge"]
0359デフォルトの名無しさん
2009/07/07(火) 12:01:54ありがとうございます。
0360デフォルトの名無しさん
2009/07/07(火) 12:11:410361デフォルトの名無しさん
2009/07/07(火) 12:43:47イントロスペクションってのは初めて聞いたので、調べてみます。
単に、eval("Hoge")みたいなのと勘違いしていた模様。
0362デフォルトの名無しさん
2009/07/07(火) 13:21:52class Fuga があったとして、
"Hoge", "Fuga" からはどうやってアクセスするんだっけ?
0363デフォルトの名無しさん
2009/07/07(火) 13:23:23class Fuga, method Hage があったとして、
"Hoge", "Fuga", "Hage" からはどうやってアクセスするんだっけ?
0364デフォルトの名無しさん
2009/07/07(火) 13:31:070365デフォルトの名無しさん
2009/07/07(火) 13:34:510366デフォルトの名無しさん
2009/07/10(金) 09:36:030367デフォルトの名無しさん
2009/07/10(金) 09:49:45わたし16歳の女子高生ですけど
Python始めるにあたって最初に読むべき本は
ありますか?
0368デフォルトの名無しさん
2009/07/10(金) 10:08:350369デフォルトの名無しさん
2009/07/10(金) 13:44:13わたし15歳の巨乳グラビアアイドルなんだけど
みんなでPythonやろうよ。
0370デフォルトの名無しさん
2009/07/10(金) 13:59:450371デフォルトの名無しさん
2009/07/11(土) 05:24:24I am a thirteen years old girl.
I will start learning Oppaithon Programming.
Please teach me chome-chome.
0372デフォルトの名無しさん
2009/07/11(土) 05:35:520373デフォルトの名無しさん
2009/07/11(土) 06:18:100374デフォルトの名無しさん
2009/07/11(土) 09:33:340375デフォルトの名無しさん
2009/07/11(土) 12:39:50#!/usr/bin/env python
# coding: utf-8
from optparse import OptionParser
parser = OptionParser()
parser.add_option('-f', '--fuga', action='append', type='string', dest='fugaList', help='fugafugafuga')
(options, args) = parser.parse_args()
print options.fugaList
※上記のスクリプト名を仮にfugaとする
実行例1:
$ ./fuga -f hoge piyo
['hoge']
実行例2:
$ ./fuga -f hoge -f piyo
['hoge', 'piyo']
複雑なオプション指定による処理分岐を行いたくてOptionParserを使い始めました
実行例1のように一つのオプションに多数の引数を渡して、
実行例2の結果['hoge', 'piyo']のように"options.fugaList"に
引数を代入したいのですが、可能でしょうか?
可能ならアドバイスをお願いします
0376デフォルトの名無しさん
2009/07/11(土) 12:55:13後に続くであろう固定引数が存在するかしないか確認する術がない気がする
なので素人考えだけど -f"hoge,piyo" でごまかすとか
0377デフォルトの名無しさん
2009/07/11(土) 13:22:26レスありがとうございます
>>275にこのスクリプトの使用目的を書いていなかったので
後出しになってしまいますが
$ ./fuga hoge_*
のようにコマンドラインからワイルドカードを使用して、
複数のファイル名をオプション引数に渡して利用するのがメインなので
-f"hoge,piyo" ではちょっとごまかせないです。。。
0378デフォルトの名無しさん
2009/07/11(土) 17:38:38-fオプションにパラメータをぞろぞろ渡すという風にはしないだろ、普通。
0379デフォルトの名無しさん
2009/07/11(土) 20:33:47hoge = 'hogehoge'
A/B/module_x.py というモジュール内でhogeを使いたい場合、どうすればいいのかを教えてください。
import hoge
ではダメなんですか?
0380デフォルトの名無しさん
2009/07/11(土) 21:02:00コピーでよけりゃ
from . import hoge
0381375
2009/07/12(日) 02:57:27確かに普通はそうかもしれませんね。。。
という訳でOptionParserではワタシがしたいことが出来なさそうなので
自分でモジュールをつくることにしました
どうもありがとうございました
0382デフォルトの名無しさん
2009/07/12(日) 03:26:510383デフォルトの名無しさん
2009/07/12(日) 07:40:36OptionParserなりgetoptで "hoge_*" を文字列として受け取ってから
glob でワイルドカードを展開すればいいんじゃまいか。
ためしてないけど Linux/Unix 環境だとワイルドカードはシェルによって
展開されてからプログラムに渡されるので
./fuga -f "hoge_*"
のようにコマンド引数をクオートして書く必要がある。
0384デフォルトの名無しさん
2009/07/12(日) 09:37:55UnicodeDecodeError出なくなった!
0385デフォルトの名無しさん
2009/07/12(日) 10:08:02どうやった?
まさか setdefaultencoding() じゃないよな?
from __future__ import unicode_literals
して、テキストファイルのファイル入出力は
import codecs
codecs.open('foo', encoding='cp932')
のようにエンコーディングを指定してファイルを開くのが正しい方法だぞ。
0386デフォルトの名無しさん
2009/07/12(日) 11:45:18スライスで一度に複数の要素を扱えるようになる方法はないんでしょうか
0387デフォルトの名無しさん
2009/07/12(日) 11:54:03実際に化ける場合のコードと、「一個ずつ取り出す」のコードを見せてみりゃれ
0388デフォルトの名無しさん
2009/07/12(日) 12:11:28hoge = {'fuga': 1}
print hoge.fuga
とJSの連想配列のようにキーをプロパティみたいにして
アクセスしたいんですがどうにか実現できないですか?
0389デフォルトの名無しさん
2009/07/12(日) 12:38:09フッ…txtをUTF-8で保存することを覚えただけさ
ついでにだけどunicode_literalsって何?
2.5だとimportできなくていいのか?
0390デフォルトの名無しさん
2009/07/12(日) 12:48:52うん、2.6からしか使えない。
たとえば、
#coding: utf-8
open("あいうえお")
ってやると、"あいうえお"はutf-8のバイト列だから、Windowsとかでは
"あいうえお" という名前のファイルを開けない。
open(u"あいうえお")
と書くと普通にファイルが開ける。
で、 Python 3.0 以降では普通に "あいうえお" と書くと Python 2系の u"あいうえお"
相当になるんだけど、Python2系でもu無しにUnicode文字列を書けるようにするのが
unicode_literals
0391デフォルトの名無しさん
2009/07/12(日) 12:51:59例えば、
>>> class JSObject(dict):
... def __init__(self, o):
... self.__dict__ = o
...
>>> o = JSObject({'foo': 1})
>>> o.foo
1
他にも __getattr__, __setattr__ を使った方法とかもある。
0392デフォルトの名無しさん
2009/07/12(日) 13:10:28こんな感じです
#ファイルの2行目からの文字列を3行ずつリストの1要素にまとめて扱いたい
fhnd = open('spam.txt','r')
lines = []
add_up = []
line_start = 2
line_end = 5
for temp in fhnd:
lines.append(temp)
for temp in lines:
if (line_start > line_max) or (line_end > line_max):
break
add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない
# add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける
print str(add_up[0]) + str(add_up[1]) + str(add_up[2])#←上のfor文内のうち上の行を実行なら化けない
print str(add_up[0:3])#←上のfor文内のいずれでも化ける
0393デフォルトの名無しさん
2009/07/12(日) 13:12:35line_max = len(lines)
です
0394デフォルトの名無しさん
2009/07/12(日) 13:13:17おお!ありがとうございます!
勉強になりました!
0395デフォルトの名無しさん
2009/07/12(日) 13:58:36> add_up.append(lines[line_start] + lines[line_start+1] + lines[line_end-1]) #←化けない
> # add_up.append(lines[line_start:line_end]) #←上の代わりに実行すると化ける
上の場合、appendの引数は文字列だけど、下の場合はリスト
なので下を上と同じくするならadd_up.append( ''.join( lines[line_start:line_end]))じゃまいか
> print str(add_up[0:3])#←上のfor文内のいずれでも化ける
リストをstrしたときに得られるのはprintできる文字列
>>> L = [1, 2, 3]
>>> str(L)
'[1, 2, 3]'
0396デフォルトの名無しさん
2009/07/12(日) 15:24:04まずはstr()とrepr()の違いが判らないとな。
>>> astr = 'あいう'
>>> alist = [astr]
>>> print astr
あいう
>>> print alist
['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86']
リストを文字列にしようとしたら、リストの要素にはstr()ではなくてrepr()が適用される。
repr()されると、文字列のうちASCII文字以外は\xでエスケープして表示される。
三行分の文字列を配列にして add_up を2重配列にしたい?
それとも三行分の文字列を一つの文字列に連結したい?
lines = open('spam.txt').readlines()
add_up = []
for i in range(1, len(lines), 3):
add_up.append(lines[i:i+3]) # 2重配列にしたい場合
add_up.append(''.join(lines[i:i+3])) # 連結したい場合
0397デフォルトの名無しさん
2009/07/12(日) 16:36:49見当違いな方向に進むところでした
ありがとうございました
0398デフォルトの名無しさん
2009/07/13(月) 05:48:35ありがとう
0399デフォルトの名無しさん
2009/07/13(月) 22:41:07※並び順は問わない。
set型を使わず、for文とif文を組み合わせるなどして作成する。
模範解答をお願い致します。
0400デフォルトの名無しさん
2009/07/13(月) 22:50:35ListA = [1,2,3,1,4,5]
ListB = []
for x in ListA:
if not x in ListB:
ListB.append(x)
print ListB
0401デフォルトの名無しさん
2009/07/13(月) 22:53:49レスありがとうございます。
削除する方法ばかり考えてましたが、追加するって考え方もあるんですね
すごく参考になりました。スマートな回答どうもです!
0402デフォルトの名無しさん
2009/07/13(月) 22:56:05print list(set(a))
0403デフォルトの名無しさん
2009/07/13(月) 22:56:270404デフォルトの名無しさん
2009/07/14(火) 00:44:04set型を使わない理由は?
0405デフォルトの名無しさん
2009/07/14(火) 00:52:50あれ、だとすると宿題スレだなw
0406デフォルトの名無しさん
2009/07/14(火) 21:09:18どうやってResponseから取り出してrequestに追加するの?
0407デフォルトの名無しさん
2009/07/14(火) 21:42:010408デフォルトの名無しさん
2009/07/14(火) 21:45:220409デフォルトの名無しさん
2009/07/15(水) 06:59:12クラスの定義に書いてある属性だけで打ち止めにしたい・・・
0410デフォルトの名無しさん
2009/07/15(水) 08:56:43if hasattr(self, name):
object.__setattr__(self, name, value)
else:
raise AttributeError(name)
0411デフォルトの名無しさん
2009/07/15(水) 09:10:10__setattr__ をオーバーロードすればよかったんですね.
0412デフォルトの名無しさん
2009/07/15(水) 09:23:090414デフォルトの名無しさん
2009/07/15(水) 10:18:58何か文句でも?
0415406
2009/07/15(水) 13:29:320416デフォルトの名無しさん
2009/07/15(水) 13:32:20spam業者乙!
0417デフォルトの名無しさん
2009/07/15(水) 13:34:450418デフォルトの名無しさん
2009/07/15(水) 13:51:46cj = CookieJar()
cj.extract_cookies(res,req)
cj.add_cookie_header(req)
0419デフォルトの名無しさん
2009/07/15(水) 15:44:39http://pc11.2ch.net/test/read.cgi/tech/1226830195/14
0420デフォルトの名無しさん
2009/07/15(水) 15:52:290421デフォルトの名無しさん
2009/07/15(水) 15:54:12import glob
for i in glob.glob('*.txt'):
d = open(i).read()
0422デフォルトの名無しさん
2009/07/15(水) 15:58:45ありがとうございます
os.walk使って無理矢理やってました
0423デフォルトの名無しさん
2009/07/15(水) 16:02:410424デフォルトの名無しさん
2009/07/15(水) 16:54:45from paver.path import path
for f in path('.').walkfiles('*.txt'):
print f
0425デフォルトの名無しさん
2009/07/16(木) 05:05:09もう寝る
0426デフォルトの名無しさん
2009/07/16(木) 15:49:260427デフォルトの名無しさん
2009/07/16(木) 15:59:39これだ!
0428デフォルトの名無しさん
2009/07/16(木) 16:49:39countを使ってどうやんのさ
0429デフォルトの名無しさん
2009/07/16(木) 16:56:150430デフォルトの名無しさん
2009/07/16(木) 17:16:570431デフォルトの名無しさん
2009/07/16(木) 17:51:280432デフォルトの名無しさん
2009/07/16(木) 21:46:480433デフォルトの名無しさん
2009/07/17(金) 02:41:080434デフォルトの名無しさん
2009/07/17(金) 07:14:30gMailを読んでDBに格納しておいて月末にExcelにまとめさせるとか
0435デフォルトの名無しさん
2009/07/17(金) 16:20:120436デフォルトの名無しさん
2009/07/17(金) 18:56:36bashとかでお馴染のリダイレクトやパイプを
Pythonでも使いたいのですが可能ですか?
0437デフォルトの名無しさん
2009/07/17(金) 19:02:23subprocess モジュールを勉強したほうがいいと思う。
0438デフォルトの名無しさん
2009/07/17(金) 19:13:07。。。すまんm(_ _;)m
勘違いして別のコマンド実行してたみたいです。。。
確認したらちゃんとできました。
回答ありがとうございましたm( __ __ )m
0439デフォルトの名無しさん
2009/07/17(金) 19:44:540440デフォルトの名無しさん
2009/07/17(金) 19:53:550441デフォルトの名無しさん
2009/07/18(土) 05:44:16実は1コアしか動いていないのが悲しい
スタックレスなんとかをかんとかすればアレなのかな?
0442デフォルトの名無しさん
2009/07/18(土) 06:57:04スレッド回すよりは好きだわ
0443デフォルトの名無しさん
2009/07/18(土) 10:58:43for i in unko:
if i < 10:
unko.remove(i)
for i in unko:
print str(i)
3 <---?
7 <---?
11
13
なして?
0444デフォルトの名無しさん
2009/07/18(土) 11:19:11どうしてもやりたければ for i in unko[:]: unko.remove(i)
0445デフォルトの名無しさん
2009/07/18(土) 11:21:12リストの1番めを見て、1を削除。その次はリストの2番めを見るので、1番めに入った
3は無視されちゃう。
0446デフォルトの名無しさん
2009/07/18(土) 17:05:090447デフォルトの名無しさん
2009/07/18(土) 21:28:250448デフォルトの名無しさん
2009/07/18(土) 22:13:350449デフォルトの名無しさん
2009/07/18(土) 22:14:170450デフォルトの名無しさん
2009/07/18(土) 22:17:000451デフォルトの名無しさん
2009/07/19(日) 00:14:08self.unko = 0
で、いいんでしょうか?
0452デフォルトの名無しさん
2009/07/19(日) 00:15:18外部アクセスを防ぎたい場合はself.__unkoとしてください
0453デフォルトの名無しさん
2009/07/19(日) 00:31:21外部アクセスを防ぐ、ということは宣言した後予期せぬ状況で中身が書き換わるのを防ぐ、ということでしょうか?
0454デフォルトの名無しさん
2009/07/19(日) 01:45:380455デフォルトの名無しさん
2009/07/19(日) 02:03:46内容を事ある毎に変化させていくパラメータとして使いたいので普通に宣言すれば良いと思っているのですが、それで問題ないでしょうか?
0456デフォルトの名無しさん
2009/07/19(日) 02:18:340457デフォルトの名無しさん
2009/07/19(日) 02:21:19余計なことを言って混乱させてすいませんでした
self.__unko
のように先頭に__を付けると外部アクセスのできないいわゆるprivate変数の様な感じになります
0458デフォルトの名無しさん
2009/07/19(日) 02:36:230459デフォルトの名無しさん
2009/07/19(日) 04:27:420460デフォルトの名無しさん
2009/07/21(火) 20:34:260461デフォルトの名無しさん
2009/07/21(火) 22:20:03ショボイのしかまだ書けないけど、(きっと今後もw)
日々の作業が楽で、楽しくなるようなコードが書けるまで勉強するのだ
インタラクティブシェルだけで勉強してたら、ショボーンだけど、ファイルに書き出しとかになると
ちょっとプログラムって感じで楽しい
0462デフォルトの名無しさん
2009/07/22(水) 11:39:000463デフォルトの名無しさん
2009/07/22(水) 12:51:38衝突しませんか?
0464デフォルトの名無しさん
2009/07/22(水) 14:25:58新参の俺にbeautifulsoup意外詳しく
0465デフォルトの名無しさん
2009/07/22(水) 15:00:29pyExcelerator、Excelネイティブのファイルが簡単に出来たですよ。
reportlab、PDFが(ry
Barcode for Python、bzr branch lp:barcodesforpython/beta、バーコードが(ry
最近、データベースからの書類生成は全部Pythonで書いてます。
0466デフォルトの名無しさん
2009/07/22(水) 16:45:560467デフォルトの名無しさん
2009/07/22(水) 16:52:140468デフォルトの名無しさん
2009/07/22(水) 18:29:480469デフォルトの名無しさん
2009/07/22(水) 18:34:060470デフォルトの名無しさん
2009/07/22(水) 18:34:22http://www.python.jp/doc/release/tut/node5.html#SECTION005120000000000000000
0471デフォルトの名無しさん
2009/07/22(水) 18:43:290472デフォルトの名無しさん
2009/07/22(水) 19:00:55ありがとうございます''
0473デフォルトの名無しさん
2009/07/22(水) 23:42:42なわけないだろ。
0474デフォルトの名無しさん
2009/07/23(木) 09:00:30明確に記載されている資料があればお願いします
0475デフォルトの名無しさん
2009/07/23(木) 09:06:500476デフォルトの名無しさん
2009/07/23(木) 09:08:54組み込み関数だとgrepしてもノイズ多くてゲンナリ
0477デフォルトの名無しさん
2009/07/23(木) 09:11:08ttp://mail.python.org/pipermail/python-dev/2003-June/036556.html
ttp://stackoverflow.com/questions/793761/built-in-python-hash-function
ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
0478デフォルトの名無しさん
2009/07/23(木) 09:23:01それじゃないww
0479デフォルトの名無しさん
2009/07/23(木) 09:29:320481デフォルトの名無しさん
2009/07/23(木) 10:28:170482デフォルトの名無しさん
2009/07/23(木) 10:47:470483デフォルトの名無しさん
2009/07/23(木) 10:52:46上で求められてるような情報は出てこないから
0484デフォルトの名無しさん
2009/07/23(木) 11:00:18> Return a hash value for the object. Two objects with the same value have
> the same hash value. The reverse is not necessarily true, but likely.
明快に書いてあるよな、「逆は真とは限らない」って。
0485デフォルトの名無しさん
2009/07/23(木) 11:08:54出力は整数なんだから衝突せずにすむ入力の範囲はせいぜいそれと同程度だ
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
>>> hash(0)
0
>>> hash(1)
1
>>> hash(-1)
-2
>>> hash(-2)
-2
0486デフォルトの名無しさん
2009/07/23(木) 11:39:32完全ハッシュって双方向に一意なんだっけ
って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
0487デフォルトの名無しさん
2009/07/23(木) 11:41:55no
>って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
no
0488デフォルトの名無しさん
2009/07/23(木) 12:00:320489デフォルトの名無しさん
2009/07/23(木) 12:42:36>
> no
>
no
>> って複数のキーで同一の値が取れたら完全ハッシュじゃないもんな
>
> no
no
0490デフォルトの名無しさん
2009/07/23(木) 12:44:34no
なんだよおまえらww
0491デフォルトの名無しさん
2009/07/23(木) 12:55:19neet
0492デフォルトの名無しさん
2009/07/23(木) 13:22:510493デフォルトの名無しさん
2009/07/23(木) 13:23:49本当のところどう思っているのか、
きいてみよう。
ttp://moderator.appspot.com/?hl=ja#16/e=9df89
"名前を連呼するだけの選挙宣伝カーを、「スパム認定」して禁止しませんか?"
Lambda
0494デフォルトの名無しさん
2009/07/23(木) 16:24:25Python 自体のソースを見るのが確実かと。
http://svn.python.org/view/python/trunk/Python/bltinmodule.c?revision=73776&view=markup
の builtin_hash() が組み込み関数の hash() に相当する。
http://svn.python.org/view/python/trunk/Objects/object.c?revision=73076&view=markup
に PyObject_Hash() の定義がある。
0495デフォルトの名無しさん
2009/07/23(木) 23:07:08もし仮に完全ハッシュだとしたとしたら
論理的に考えてhash関数の引数はシーケンスでないとならない。
そうなってないんだから当然hashは完全ハッシュじゃない。
たまには頭使わないと腐るぞ。
0496デフォルトの名無しさん
2009/07/23(木) 23:10:250497デフォルトの名無しさん
2009/07/23(木) 23:31:09> 論理的に考えて
Python的に考えて、でしょ
型によって全く扱いが違う関数なんて
他の言語ではありふれてるわけで。
スレタイ読める?
0498デフォルトの名無しさん
2009/07/23(木) 23:35:190499デフォルトの名無しさん
2009/07/23(木) 23:43:40いちいち「Python的に」なんて書かなくても補完できるはずなのにね。
0500デフォルトの名無しさん
2009/07/24(金) 00:12:47桁毎のシーケンスって何?
整数型のbit数毎に異なるテーブルを用意する"なら"
整数型の完全ハッシュが作れるってこと?
条件を絞れば完全ハッシュなんていくらでも作れるに決まってるだろ?
たとえば同一性を判定するためだけのハッシュとか、
ある種のFSでファイル名をキーとするハッシュとか。
自分こそスレタイ読めるなら、型によってとか他の言語ではとか
勝手に条件付け加えないでくれ。
0501デフォルトの名無しさん
2009/07/24(金) 00:15:530502デフォルトの名無しさん
2009/07/24(金) 00:18:490503デフォルトの名無しさん
2009/07/24(金) 00:27:010504デフォルトの名無しさん
2009/07/24(金) 00:28:270505デフォルトの名無しさん
2009/07/24(金) 19:38:43│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0506デフォルトの名無しさん
2009/07/25(土) 15:51:39Install dir for actual installers is C:\DOCUME~1\user\LOCALS~1\Temp
"Target CPU handles SSE2"
"Target CPU handles SSE3"
XPにnumpyインストールしようとしたらこうなったんだけどどうしたらいいんだ?
0507デフォルトの名無しさん
2009/07/25(土) 16:04:230508デフォルトの名無しさん
2009/07/25(土) 16:22:10俺の場合そうはならなかった気がするな?
0509デフォルトの名無しさん
2009/07/26(日) 22:07:06ファイルの出力なのですが、
f = open('hoge', 'w')
f.write('line 1\n')
としても改行されません・・・
なにか間違って理解しているのでしょうか?
0510デフォルトの名無しさん
2009/07/26(日) 22:10:45>
> 文字列をファイルに書き込みます。戻り値はありません。
> バッファリングによって、flush() または close() が呼び出されるまで
> 実際にファイル中に文字列が書き込まれないこともあります。
0511デフォルトの名無しさん
2009/07/26(日) 22:13:29close() はしているのですが、
ファイルには
line 1\n
と出力されてしまいます・・・
0512デフォルトの名無しさん
2009/07/26(日) 22:17:15f.write('line 1\n')
f.close()
こちらでは再現できない。
0513デフォルトの名無しさん
2009/07/26(日) 22:19:47PyDev(Eclipse)を使っていたのですが、\がバックスラッシュにならないようですorz
コンソールからvi で編集しなおして\(バックスラッシュ)で改行されました。
これはPyDevの挙動がオカシイんですかね、それとも仕方ないんでしょうか?
0514デフォルトの名無しさん
2009/07/26(日) 22:27:11脊髄反射でバッファリングだと思ってしまった。ごめん
macのyen signには癖があるって話を聞いたことがある
% od -tx1 hoge して結果を貼ってみて
0515511
2009/07/26(日) 22:29:39Macに不慣れなので知らなかっただけで、通常に¥キーを押すと円記号、バックスラッシュを入力する場合はOption + ¥キーを押すようです。
ターミナルの場合は強制的にバックスラッシュなのかな?
0516デフォルトの名無しさん
2009/07/26(日) 22:35:46具体的に何をしてるか教えて下さい。
0517デフォルトの名無しさん
2009/07/26(日) 23:40:350518デフォルトの名無しさん
2009/07/27(月) 00:10:590519デフォルトの名無しさん
2009/07/27(月) 01:55:52お仕事に使えるよ?
ユーティリティ色々、前はVB.NETだったけど今は大概Pythonで書いてる。
この間は、ftpサーバーの状態をチェックして警報ショートメッセージ出すのを書いた。
0520デフォルトの名無しさん
2009/07/27(月) 02:39:53Thinkpadとか、ツール類がPython使ってるから検索するとPython関連ファイルが
沢山入ってる。
バージョン古いし、ツール類の大半要らないからアンインストールして自分で最新の
Python入れるけど。
0521デフォルトの名無しさん
2009/07/29(水) 09:48:56タブ幅(tabstop)を指定するにはどうすればよいですか?
0522デフォルトの名無しさん
2009/07/29(水) 16:54:50のように空白を要素に持つlistがあります.
このlistから空白要素を全部削除するのに,
for a in range(a.count(' ')):
a.remove(' ')
と書いているのですが,もっとスマートに書けないでしょうか.
0523デフォルトの名無しさん
2009/07/29(水) 17:01:330524デフォルトの名無しさん
2009/07/29(水) 17:02:34print filter(lambda x: x != ' ', a)
or
a = [' ','a',' ','b',' ','c',' ']
print [x for x in a if x != ' ']
0525デフォルトの名無しさん
2009/07/29(水) 17:02:52filter(lambda x: x != ' ', a)
0526デフォルトの名無しさん
2009/07/29(水) 17:04:35ケコーンしようぜ
0527デフォルトの名無しさん
2009/07/29(水) 17:05:280528デフォルトの名無しさん
2009/07/29(水) 17:06:310529デフォルトの名無しさん
2009/07/29(水) 17:22:530530デフォルトの名無しさん
2009/07/29(水) 17:25:32filterとかlambaとかスマートというか自己満足だよね
0531デフォルトの名無しさん
2009/07/29(水) 17:27:060532デフォルトの名無しさん
2009/07/29(水) 17:33:19>filterはできる子
そういうことにしたいのですね。
0533デフォルトの名無しさん
2009/07/29(水) 17:36:590534デフォルトの名無しさん
2009/07/29(水) 17:38:180535デフォルトの名無しさん
2009/07/29(水) 17:44:340536デフォルトの名無しさん
2009/07/29(水) 17:45:220537デフォルトの名無しさん
2009/07/29(水) 17:52:20or
filter(lambda x: x, ''.join(a).split(' '))
0538デフォルトの名無しさん
2009/07/29(水) 18:01:520539デフォルトの名無しさん
2009/07/29(水) 18:17:500540デフォルトの名無しさん
2009/07/29(水) 18:53:540541デフォルトの名無しさん
2009/07/29(水) 20:18:26wxは初めてです。
wxってウィジェットの位置とかサイズを指定しますが、
あれって環境によってフォントサイズが変わったりした場合、
重なったり、端が切れちゃったりしないんですかね。
TKライクに並べて行けば自動的にサイジングしてくれる
配置のやり方があれば教えていただけないでしょうか。
sizerでどうにかするんだろうとは思うのですが、具体的なや
り方に行き当たっていない状態です。
あと、TKでいうところのLabelFrameってwxにはないんでしょうか。
現状StaticBoxとStaticTextで似たようなことしてます。
よろしくお願いします。
0542デフォルトの名無しさん
2009/07/29(水) 20:20:360543デフォルトの名無しさん
2009/07/29(水) 20:21:180544デフォルトの名無しさん
2009/07/29(水) 21:13:43なんてすばらしい日本語訳かと思ったら
こんなに市民権を得てるとは。。。
http://www.google.co.jp/search?q=%88%EA%8Ds%96%EC%98Y
0545デフォルトの名無しさん
2009/07/29(水) 22:19:100546デフォルトの名無しさん
2009/07/29(水) 22:56:330547デフォルトの名無しさん
2009/07/30(木) 01:06:56いつ頃、どこで生まれた訳なんだろうな。
俺が初めて知ったのは『Effective Perl』の邦訳版で、これが10年前の本だけど。
0548デフォルトの名無しさん
2009/07/30(木) 01:12:390549デフォルトの名無しさん
2009/07/30(木) 02:46:47C言語で書いたシミュレーションプログラムに Python で GUI を付けたり、シミュレーションの
一部で新しいことを試したいとき(例えばある方程式を解く時にニュートン法が有効かどうか確か
めたいときなど)に Python で試作プログラムを書いてみたりしています。
先日、線形計画問題を解く必要があって Python でシンプレックス法を書きました。線形計画問題
というのは、「製品Aには材料Sが3個、材料Tが2個必要で、製品BにはSが1個、Tが4個必要です。
Aは100円、Bは150円で売れます。手元にはSが40個、Tが30個あります。売上金を最大にするには
AとBを何個ずつ作るのが最適でしょうか?」というような問題のことです。この場合、未知の変数は
Aの個数とBの個数の2つなので手作業で解いてもいいのですが、未知の変数が増えるとたいへん
なので適当な計算方法で解きます。シンプレックス法はその1つです。で、Python の float 型で
計算したら計算誤差のせいか問題によっては計算が収束しませんでした。そこで、アルゴリズム
本体はそのままで、入力値(シンプレックス表の要素)のデータ型を fractions.Fraction クラス
に変えたところ、うまく解けるようになりました。Fraction クラスは有理数(分子と分母が整数で
表された分数)を実装したクラスで、float に比べて遅いですが計算誤差がありません。アルゴ
リズムはそのまま変更なしで、入力値のデータ型を変えただけで収束が改善されたので感激しま
した。他の言語(たとえばC言語)でも計算に使うデータ型を変えられるようにプログラムを作る
ことはできますが手間がかかります。その点で Python ははるかに手軽で強力だと思いました。
0550522
2009/07/30(木) 09:14:17ありがとうございました.
0551デフォルトの名無しさん
2009/07/30(木) 09:49:480552デフォルトの名無しさん
2009/07/30(木) 13:36:25それで良いのかよw
if i != ' ' だろ?
0553デフォルトの名無しさん
2009/07/30(木) 16:48:220554デフォルトの名無しさん
2009/07/30(木) 17:04:200555デフォルトの名無しさん
2009/07/30(木) 17:41:54filter(lambda x: x != ' ', a)
どっちが速い?
要素が1000万個くらいあっても大丈夫?
0556デフォルトの名無しさん
2009/07/30(木) 18:34:06速さなら前者の方が(たぶん倍以上)速い
要素の大きさは、速度よりもメモリの問題が発生する。
リストではなくジェネレータの利用を考慮するといい。
(e for e in a if e != ' ') もしくは itertools.ifilter
0557デフォルトの名無しさん
2009/07/30(木) 20:26:350558デフォルトの名無しさん
2009/07/31(金) 03:18:40PyCUDAとか使うべきだぜ!
0559デフォルトの名無しさん
2009/07/31(金) 08:43:10[e for e in a if e != ' ']
1000万文字ほど用意して比べたら、
後者が圧倒的に遅く、前者はほぼ一瞬で終ったのですが
なんでここまで差がつくの?
0560デフォルトの名無しさん
2009/07/31(金) 10:12:510561デフォルトの名無しさん
2009/07/31(金) 22:08:131桁〜9桁くらいの数字だけで構成された文字列が大量に格納されたリストって
全部をint型に変換してソートするよりも
全部を文字列のままzfillで0埋めしてソートした方が速かったんだが
そういうもんなの?
0562デフォルトの名無しさん
2009/07/31(金) 22:12:48関数系だとデフォで全部かYOって思ってわけわかめだったが、
こういう遅延評価ならわかりやすいな。俺でも使えそうだ。
0563デフォルトの名無しさん
2009/08/01(土) 07:40:35kwsk
or
source
0564デフォルトの名無しさん
2009/08/02(日) 10:55:54文字列だったのを数値に変換してソートだと
数値変換の処理が余計なステップになるよね
0565デフォルトの名無しさん
2009/08/02(日) 12:56:060566デフォルトの名無しさん
2009/08/02(日) 13:00:110567デフォルトの名無しさん
2009/08/07(金) 14:05:010568デフォルトの名無しさん
2009/08/07(金) 15:11:23c/c++なら「sqlite3_last_insert_rowid」というAPIがあるのですが・・・
0569デフォルトの名無しさん
2009/08/07(金) 15:28:130570デフォルトの名無しさん
2009/08/07(金) 17:36:57そりゃ少なくとも2倍以上メモリ消費してるしな
0571デフォルトの名無しさん
2009/08/07(金) 22:09:46RPGツクールに内蔵されたRubyだな。
0572デフォルトの名無しさん
2009/08/09(日) 16:01:12Linux上のPyGTK + Gladeで作ったアプリを
Pythonなどがインストールされていない
まっさらの状態のXPで動くようにしたいんですが
一緒にライブラリとかを同梱させれば可能になるんでしょうか?
可能ならそういった情報が乗ってるサイトとかを
教えてください
0573デフォルトの名無しさん
2009/08/12(水) 23:28:500574デフォルトの名無しさん
2009/08/17(月) 14:06:430575デフォルトの名無しさん
2009/08/17(月) 21:19:27モジュールオブジェクトやインスタンスオブジェクトobjに対して、
obj.x = x
のように、新しい属性をつけることはできますが、
文字列オブジェクト等でこれをやると、AttributeErrorが発生します。
これは文字列オブジェクト等の__setattr__()メソッドがエラーを発生するように定義してある、
という理解で良いのでしょうか?
0576デフォルトの名無しさん
2009/08/17(月) 23:02:27組み込みオブジェクトは実装上そうなってる。
実際
class myStr(str): pass
と継承すれば望みのことが可能。
Pythonはそのへんの美しさは二の次なので好き嫌いが分かれるかも。
0577デフォルトの名無しさん
2009/08/17(月) 23:06:480578デフォルトの名無しさん
2009/08/17(月) 23:50:14理解力が悪くてすみません。
strを継承したクラスのインスタンスには属性を追加できる
→ __setattr__()は関係ないってことで良いでしょうか?
0579575
2009/08/18(火) 00:14:45今いろいろいじっていたら、そもそも組み込みオブジェクトが
__dict__属性を持っていないことがわかりました。
オブジェクトの属性は__dict__に格納されているみたいなんですが、
じゃあこの__dict__自身はどうなっているのでしょうか。
混乱してきましたw
0580デフォルトの名無しさん
2009/08/18(火) 13:21:44__dict__ は dict型のオブジェクトだよ。
属性の管理方法は、組み込み型ならC言語で自由に管理できるし、Pythonのclassで
__setattr__ を定義しない場合はデフォルトの __setattr__ が __slots__ か __dict__ を使って
管理する。
0581575
2009/08/18(火) 15:50:11ああ、なるほど__slots__ですか。
これを定義しておくと、これに格納されていない名前の属性は付けられなくなるんですね。
ありがとうございました。
0582デフォルトの名無しさん
2009/08/18(火) 17:49:09import mymodule
print mymodule.getmypath()
# mymodule/__init__.py
def getmypath():
return __file__
引数等に何も渡さずにgetmypath()でmain.pyのファイルパスを取得する方法はありますか?
python2.5を使ってます
0583デフォルトの名無しさん
2009/08/18(火) 18:06:270584デフォルトの名無しさん
2009/08/18(火) 18:35:37sys._getframe().f_back.f_code.co_filename
0586586
2009/08/19(水) 21:17:25BeautifulSoupを使っていて、
<class 'BeautifulSoup.NavigableString'>をstrに
変換するにはどうすればよいのでしょうか?
0587586
2009/08/19(水) 21:42:58<class 'BeautifulSoup.NavigableString'>オブジェクトから
1文字ずつとりだすとunicodeになるので、
無理やりunicodeに変換することはできました。
なので解決といえば解決なのですが、美しくないです…
0588デフォルトの名無しさん
2009/08/20(木) 02:06:21str(s)
0589デフォルトの名無しさん
2009/08/20(木) 02:09:180590デフォルトの名無しさん
2009/08/20(木) 05:33:30は異なるオブジェクトとして明確に区別されてるのでしょうか?
0591デフォルトの名無しさん
2009/08/20(木) 07:41:29文字列リテラルとしてソースに書く場合はやや注意が必要
0592デフォルトの名無しさん
2009/08/20(木) 07:49:52いや違う
2: バイト列=文字列≠ユニコード文字列
3: バイト列≠文字列=ユニコード文字列
0593590
2009/08/20(木) 08:40:32なるほど,その説明はわかりやすい
encode とか decode とかのメソッド見たとき,
何から何へなんだよ〜元と先が指定できなきゃ
だめなんじゃね?って悩んだ.
0594デフォルトの名無しさん
2009/08/20(木) 10:59:28その中に囲み数字みたいな機種依存文字があるとencodeでeuc-jpとかにしようとすると
例外が発生しますよね?
これってみなさんどうしてます?
0595デフォルトの名無しさん
2009/08/20(木) 12:37:080596デフォルトの名無しさん
2009/08/20(木) 12:40:43encode('euc-jp', errors='ignore')
encode('euc-jp', errors='strict')
0597デフォルトの名無しさん
2009/08/20(木) 12:57:40ttp://www.python.jp/doc/release/lib/codec-base-classes.html
0598デフォルトの名無しさん
2009/08/20(木) 14:13:080599デフォルトの名無しさん
2009/08/20(木) 14:47:560600594
2009/08/20(木) 19:51:48色々試してみましたが、文字コード回りは今一つ良く分かりませんね。
みなさんのヒントとウェブ情報を参考にとりあえず次のようにしてみました。
html = urllib.urlopen(url).read()
html_coding = chardet.detect(html)['encoding'].lower()
soup = BeautifulSoup(unicode(html, html_coding, 'replace').encode('utf-8'))
text = soup......
print text.encode('euc-jp', 'replace')
単純にprintの時に text.encode('euc-jp', 'replace')とかだと、何故か全体がわけわからないコードになりました。
2.5.4でやってるんですが、3.xになるとこの辺もっとスッキリするんでしょうか。
0601デフォルトの名無しさん
2009/08/20(木) 22:08:07http://pc11.2ch.net/test/read.cgi/pcnews/1250773470/
0602デフォルトの名無しさん
2009/08/21(金) 07:36:16html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
text = soup......
print text.encode('euc-jp', 'replace')
0603デフォルトの名無しさん
2009/08/21(金) 07:38:11soup = BeautifulSoup(html)
text = soup......
print unicode(text, soup.originalEncoding).encode('euc-jp', 'replace')
0604デフォルトの名無しさん
2009/08/21(金) 14:22:390605デフォルトの名無しさん
2009/08/21(金) 14:42:430606デフォルトの名無しさん
2009/08/23(日) 22:49:29最近、pythonを始めました。 ipythonをとても便利に使っています。
ipythonに関して、一つ質問なのですが、代入式の場合に、評価の値が表示されるようにすることはできないでしょうか?
0607デフォルトの名無しさん
2009/08/24(月) 13:03:36下記スクリプトを実行したとき、
Winで実行する場合とUbuntuで実行する場合とで
結果が違う(Ubuntuの場合はエラーになる)のですが
どうしてですか?
Ubuntuでエラーを解消するにはどうすればいいですか?
文字エンコード部分を変えたり消したりするのはやってみました。
#! /usr/bin/env python
# coding:shift_jis
while True:
str=input('> ')
print( str )
if str=='bye':
break
0608デフォルトの名無しさん
2009/08/24(月) 13:27:59その本がどちらを使ってるかわからないけど、個人的にはまだ2.xを使ったほうがいいと思うよ
python2のraw_input() == python3のinput()
python2のinput() == python3のeval(input())
0609デフォルトの名無しさん
2009/08/24(月) 23:54:440610デフォルトの名無しさん
2009/08/25(火) 16:17:27ctypes から、windll.[DLL名].[関数名] で呼べるのはわかったのですが、
引数が要求したり、関数が返してくるような定数(?)の実際の値は普通どう確認するものなんでしょうか
他言語から win32api を使った経験は無いです
0611デフォルトの名無しさん
2009/08/25(火) 16:29:15ttp://www.python.jp/doc/release/lib/module-ctypes.html
ttp://www.ueblog.org/blog/entry/ctypesunlha/
ttp://moco.sakura.ne.jp/python/ctypes%E3%81%AEstructure%E3%81%AB%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B3%E3%83%94%E3%83%BC/
0612610
2009/08/25(火) 17:27:33その実際の値がわからないとそれを要求したり返したりする関数が使えないんです
それで、普通はどうするものなのかと思って質問しました
0613デフォルトの名無しさん
2009/08/25(火) 17:31:15GUIまでやろうとするとものすごく大変な気がする
0614デフォルトの名無しさん
2009/08/25(火) 17:34:190615デフォルトの名無しさん
2009/08/25(火) 17:45:43たまたま目に付いたものを書いただけで、今のところは GUI をやろうとしてるわけではないです
ヘッダファイル名でググって、定数名で検索掛けてコピペしてくればいいんですかね
他のコードからコピペして著作権的に大丈夫なんでしょうか
>>614
関数と、対応するDLLは、ググって出てきたMSDNのページを見てるんですが、定数が見つからないです
どこに何があるかいまいちわからない……
Mingwは調べてみます
0616デフォルトの名無しさん
2009/08/25(火) 20:25:480617デフォルトの名無しさん
2009/08/25(火) 20:50:240618デフォルトの名無しさん
2009/08/25(火) 21:41:44おお、大抵の場合はこれで大丈夫そうです
というよりctypesじゃなくてpywin32でwin32apiを呼べるみたいですが、その方がいいんでしょうかね
でもpywin32のヘルプ読んでもどこに何があるのかわかりづらい……
>>617
一応書いておいた方がいいかなと
これから先、どのapiを使うかわからないのであえて書かなかったのですが、
DDEクライアントを書いてました
win32conにddeml.hの定数が見当たらなかったので、
Google先生にお願いしてヘッダファイルからコピペしたところ、とりあえず動きました
(コピペして大丈夫なんでしょうか)
pywin32にddeなるモジュールがあるようですが、使い方がさっぱりなので見なかったことにします
みなさん回答ありがとうございました
今回の件とは別ですが、>>611も参考になりました
0619デフォルトの名無しさん
2009/08/25(火) 22:00:04win32com
0620デフォルトの名無しさん
2009/08/25(火) 22:58:400621デフォルトの名無しさん
2009/08/25(火) 23:05:06死語だけでもWindows DNAとかChromeEffectsとかいくらでも出てくる
0622デフォルトの名無しさん
2009/08/25(火) 23:34:060623デフォルトの名無しさん
2009/08/26(水) 01:55:480624デフォルトの名無しさん
2009/08/27(木) 04:10:260625デフォルトの名無しさん
2009/08/27(木) 21:05:400626デフォルトの名無しさん
2009/08/28(金) 08:19:35.pyo2とかになるのか
0627デフォルトの名無しさん
2009/09/01(火) 22:46:42cmdモジュールのデフォルトでbash-like動作が有効になると思ってたんですが
普通に“^A”などと表示されてしまいます。
IPythonでは補完が効くので、cmdモジュールの使い方が間違ってるんだと思いますが
公式サイトのリファレンスではCmd.cmdを継承したクラスを作って
引数無しでインスタンスを作成するだけのように読めます。
何が間違ってるんでしょうか?
0628デフォルトの名無しさん
2009/09/03(木) 07:39:13これからPythonを勉強しようと思ってるのですが、それ以前に「パスを通す」
ということができません。
Windows XP で、Python2.6.2 をインストールしたんですけど、初心者用の
サイトにある「パスの設定」というのを見ながらやっても
[操作可能なプログラムまたはバッチ ファイルとして認識されていません]と
でてしまい困っています・・・。どうすればパスを通せるのか教えていただけ
ないでしょうか。よろしくお願いします。
0629デフォルトの名無しさん
2009/09/03(木) 08:12:030630デフォルトの名無しさん
2009/09/03(木) 08:33:11パソコン入門スレとかにいってこい
0631デフォルトの名無しさん
2009/09/03(木) 09:24:33PATHの通し方すら教えられない。
しょせんPyヲタなんて、この程度。
0632デフォルトの名無しさん
2009/09/03(木) 09:51:290633デフォルトの名無しさん
2009/09/03(木) 09:53:19autoexec.bat あたりを弄ったのかな?それはWindows98時代のやり方で、
Windows2000以降ならGUIで設定できる。
ttp://www.daikichi.net/books/lecture_java/setting_jdk.html
0634デフォルトの名無しさん
2009/09/03(木) 10:08:32俺はあほの相手するのは疲れるんでぐっとこらえたんだけど。
0635デフォルトの名無しさん
2009/09/03(木) 14:15:51>>633が答えてくれてるけど
うまくいかなかったらまた聞いてくれ
0636628
2009/09/03(木) 19:12:06>>630
すみません。スレ違いという事すら気づきませんでした...。
>>631
ごめんなさい..。私が悪いんです。
>>632 ?
>>633
ご親切に答えてくれて、ありがとうございます。教えて頂いた
ttp://www.daikichi.net/books/lecture_java/setting_jdk.html も、見てみた
のですが、ダウンロードし直したら無事にパスが通りました。本当に、
ありがとうございました。
>>634
ごめんなさい、ほんとに私はアホです。
>>635
ありがとうございます。結局、何が原因だったのかわからないのですが
どうにかパスの設定はできました。
0637デフォルトの名無しさん
2009/09/03(木) 21:35:11一行目の指定宣言ですが?
#! /usr/bin/env python
/* man env 引用 */
NAME
env -- set and print environment
余り どの様な形式の基礎かが理解 出来ないのですが…
この部分の基礎宣言の説明をして頂けますか?
0638デフォルトの名無しさん
2009/09/03(木) 21:51:110639BBS戦士ジョソコイダーGID@愛をください
2009/09/03(木) 21:52:460640デフォルトの名無しさん
2009/09/03(木) 22:08:29その一行目は shebang という
二行目以降を入力として shebang に指定したコマンドを実行する
ややこしい話をすると
shebang に指定されたコマンドを実行するのはシェルでなくカーネルの仕事
シェルは環境変数PATHを知っているけど、カーネルは知らないので
原則 #!/usr/bin/python などではなく #!/usr/bin/python のように書く必要がある
ただこの方法だと他のマシンでの python インタプリタの場所が
/usr/local/bin/python だった場合に動かないので
env コマンドに環境の設定と python の実行をお願いする
0641デフォルトの名無しさん
2009/09/03(木) 22:09:26x #!python などではなく #!/usr/bin/python のように書く必要がある
0642デフォルトの名無しさん
2009/09/03(木) 22:33:38/* Line 2 */
# coding: 'Shift_JIS'
これで 通りますが… 何をする Program ですか?
0644デフォルトの名無しさん
2009/09/03(木) 22:48:02読んだのですが?
文字列を入れても Syntax Error に為りますが?
直接 打ち込んでの作業では無いと云う事か…
0645デフォルトの名無しさん
2009/09/03(木) 23:12:28いいと思うんだ・・・
0646デフォルトの名無しさん
2009/09/03(木) 23:17:30shebang を使うのはファイルに保存したスクリプトを
% python scriptname
ではなく
% chmod +x scriptname
% ./scriptname
のように実行したい場合
対話型プロンプトではそもそも必要ない
よくわからなかったら、慣れるまで
* スクリプト内でASCII文字だけ使うようにする
* 実行する際は % python scriptname
* 対話型プロンプトは使わない
そうすれば #!/usr/bin/env python や # coding: sjis を書く必要が無くなる
あとできればメール欄に sage って入れて
0647デフォルトの名無しさん
2009/09/04(金) 00:16:11# coding: Shift_JIS
は 始めから省略が出来たと思いましたが…
書く必要性 1: どの coding: を使用して居るかを明確にする為
記憶では二行目は かなり about に書く事が出来る でしたか?
prompt を使用しないですか…
script が まだ入力待ちの状態だったと理解して居りますが?
>>607
「はじめてのpython」で勉強しています
下記スクリプトを実行したとき、
Winで実行する場合とUbuntuで実行する場合とで
結果が違う(Ubuntuの場合はエラーになる)のですが
どうしてですか?
0648デフォルトの名無しさん
2009/09/04(金) 01:01:520649デフォルトの名無しさん
2009/09/04(金) 01:05:220650デフォルトの名無しさん
2009/09/04(金) 01:06:22???
0651デフォルトの名無しさん
2009/09/04(金) 01:12:46標準入力も、inputに頼らず、codecs.getreader()で、
エンコード指定して、sys.stdinからファイル入力として扱うほうが、
トラブルは少ないかもしれない。
0652デフォルトの名無しさん
2009/09/04(金) 01:13:360653デフォルトの名無しさん
2009/09/04(金) 01:20:280654デフォルトの名無しさん
2009/09/04(金) 01:23:080655デフォルトの名無しさん
2009/09/04(金) 01:25:030656デフォルトの名無しさん
2009/09/04(金) 01:56:110657デフォルトの名無しさん
2009/09/04(金) 01:57:50__builtins__.str
0658デフォルトの名無しさん
2009/09/04(金) 06:27:010659デフォルトの名無しさん
2009/09/04(金) 13:46:11本に載ってた下記スクリプトが、WinでもLinuxでも動きませんでした。
本のミスでしょうか?
■エラー内容:
print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
IndexError: list index out of range
■スクリプト:
#!usr/bin/env python
# coding:shift_jis
import sys
def gcd(m,n):
if n>m: m,n=n,m
while n>0:
m,n=n%m
return m
if __name__=='__main__':
print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
0660659
2009/09/04(金) 13:47:43■スクリプト
#!usr/bin/env python
# coding:shift_jis
import sys
def gcd(m,n):
if n>m: m,n=n,m
while n>0:
m,n=n%m
return m
if __name__=='__main__':
print( gcd(int(sys.argv[1]),int(sys.argv[2])) )
0661デフォルトの名無しさん
2009/09/04(金) 14:08:36sys.argv[1] と sys.argv[2] はそれぞれ、
python gcd.py 3 5 (もしくは ./gcd.py 3 5) としたときの 3 と 5 が入ります。
引数をつけずにプログラムを実行されたのではないでしょうか?
0662659
2009/09/04(金) 16:00:32そのとおりでした。ありがとうございます。
0663デフォルトの名無しさん
2009/09/04(金) 16:15:57cp932でエンコードして書き出すとき、PythonはNEC選定IBM拡張文字を優先して使うようなんです。
(例えば「�ケ」の場合、fbb9ではなくee9d)
できたらIBM拡張文字の方で書き出せるようにしたいんですが、何かいい方法があるでしょうか?
0664デフォルトの名無しさん
2009/09/04(金) 16:48:19Text 文書を保存して その儘 特定機種で Text を読み込むと どの様に為りますか?
0665デフォルトの名無しさん
2009/09/04(金) 16:53:22'\xfb\xb9'
>>> u"�ケ".encode("cp932")
'\xee\x9d'
0666デフォルトの名無しさん
2009/09/04(金) 17:03:13否… 表現が悪かった様で… 片方の機種で その文字を Text に保存して
もう片方の機種で その Text を読み込むと どの様に為りますか?
0667デフォルトの名無しさん
2009/09/04(金) 17:19:25どうもありがとうございます。
何となく、Windowsではcp932を選べばいいのだと勝手に思い込んでました。
>>666
すみません、勉強不足でよく理解できていないんですが、cp932はWindows以外の環境も考慮してああなっているということでしょうか? もっとよく調べてみます。
0668デフォルトの名無しさん
2009/09/04(金) 17:32:220669デフォルトの名無しさん
2009/09/04(金) 18:33:070670デフォルトの名無しさん
2009/09/04(金) 22:10:56なんなのその顔文字ふざけてんの?
0671デフォルトの名無しさん
2009/09/04(金) 22:18:51たまに出てくるけどかわいい
0672デフォルトの名無しさん
2009/09/04(金) 23:06:05NEVADA
0673デフォルトの名無しさん
2009/09/05(土) 00:12:56心の汚れた環境では見れないらしい…
0674デフォルトの名無しさん
2009/09/05(土) 22:02:15C言語で言うifdefみたいなことがしたいのですがうまくいきません・・
0675デフォルトの名無しさん
2009/09/05(土) 22:03:45sys.platform
0676デフォルトの名無しさん
2009/09/05(土) 22:18:03ありがとうございます
sys.platformで取り込むモジュールを振り分けられました
importは先頭に書くものだと思っていました。。
0677デフォルトの名無しさん
2009/09/06(日) 00:20:310678デフォルトの名無しさん
2009/09/06(日) 00:36:490679デフォルトの名無しさん
2009/09/06(日) 00:42:55os.nameよりも詳しいのかな
0680デフォルトの名無しさん
2009/09/06(日) 00:45:200681デフォルトの名無しさん
2009/09/06(日) 01:05:04そういえばそんなのもあったね。程度にしか使われてないよな
sysはビルトインの標準モジュールだから絶対に読み込めるという理由もあるかも
osはパス通ってないとimportできないし
0682デフォルトの名無しさん
2009/09/06(日) 18:33:130683デフォルトの名無しさん
2009/09/06(日) 18:40:200684デフォルトの名無しさん
2009/09/06(日) 23:46:18これは使えないでOK?
0685デフォルトの名無しさん
2009/09/06(日) 23:50:05bazaarなんてWindows用のデフォルトのsshクライアントがparamikoだよ。
0686デフォルトの名無しさん
2009/09/07(月) 00:08:23俺にとってあんたは神様だ。
設定しかたを教えてくれ!
0687デフォルトの名無しさん
2009/09/07(月) 00:51:131. paramiko-1.7.5.zip をダウンロード
2. 適当なディレクトリに解凍
3. コマンドプロンプト開いて 2 のディレクトリに cd で移動する
4. python setup.py build
5. python setup.py install
これを順にやっていって、どこで引っかかるか教えて。
今やってみたら、依存ライブラリのpycryptoが手元の環境でインストール済みだったから
すんなりインストール終わった。
ひょっとしたらpycryptoインストールするときに拡張モジュールのコンパイルが必要かも
知れないから、Pythonのバージョンに対応するコンパイラをもっていない場合は
http://mirror.cameronbergh.com/pycrypto-win/
から対応するパッケージをダウンロードするといいよ。
0688デフォルトの名無しさん
2009/09/07(月) 00:54:35paramiko-1.7.4でやったらすんなりとおった。
0689デフォルトの名無しさん
2009/09/10(木) 16:31:07f = lambda x : (x**2).sum()
とか書いてあるコードがあって、意味がわかりません。
lambda式がわからないのではなくて、後ろについてる.sum()がわかりません。
インタプリタで上記定義をして、f(x=1.0)とかf(x=[1.0,2.0])とかやってみると、
sum()についてのattribute errorが出ます。
よろしくお願いします…。
0690デフォルトの名無しさん
2009/09/10(木) 16:33:310691689
2009/09/10(木) 16:43:10それでした!
どうもありがとうございました。
0692デフォルトの名無しさん
2009/09/11(金) 22:49:04砕けた言い方をすると、pythonで実装されていて拡張子がexeなそれなりに有名なソフトって何がありますか?
0693デフォルトの名無しさん
2009/09/11(金) 22:59:580694デフォルトの名無しさん
2009/09/11(金) 23:03:430695デフォルトの名無しさん
2009/09/12(土) 15:52:44bzr, mercurial といったVCSもそうだし、
Editra, Dropbox, TaskCoach, 他にもいろいろあるぞ。
LinuxにいったらさらにPython製デスクトップアプリだらけ。
0696デフォルトの名無しさん
2009/09/12(土) 18:57:530697デフォルトの名無しさん
2009/09/12(土) 18:59:200698デフォルトの名無しさん
2009/09/14(月) 05:56:06これかも
ttp://d.hatena.ne.jp/lolloo-htn/20090801/1249085650
0699デフォルトの名無しさん
2009/09/14(月) 09:44:16へぇ。
0700デフォルトの名無しさん
2009/09/15(火) 12:47:58portage, samuraix
0701デフォルトの名無しさん
2009/09/15(火) 21:14:28「多くの異なる言語で書かれたモジュールをまとめるグルー言語」
とありますが、これは複数のプログラミング言語で書かれたモジュールを
まとめられるということでいいのでしょうか?
0702デフォルトの名無しさん
2009/09/17(木) 08:06:50文章を途中で切るよな。
0703デフォルトの名無しさん
2009/09/17(木) 09:50:280704デフォルトの名無しさん
2009/09/24(木) 03:21:16が良くて
lambda : print "hoge2"
がダメな理由って何故ですか?
0705デフォルトの名無しさん
2009/09/24(木) 03:35:290706デフォルトの名無しさん
2009/09/24(木) 03:43:400707704
2009/09/24(木) 04:34:27・・・Pythonってそう言うのを区別するのか・・・先は長そうだ orz
0708デフォルトの名無しさん
2009/09/24(木) 06:08:100709デフォルトの名無しさん
2009/09/24(木) 07:27:03print "x=#{x}\n" if DEBUG (Rubyの例)
みたいに1行で完結させる書き方って可能ですか?
同じ物をPythonで書くと
if DEBUG:
print "x="+str(x)
となると思いますが出来ればデバッグメッセージごときに2行は使いたくない・・・
0710デフォルトの名無しさん
2009/09/24(木) 08:07:41だが、logging使え。
0711デフォルトの名無しさん
2009/09/24(木) 10:34:36print "x="+ str(x)
0712デフォルトの名無しさん
2009/09/24(木) 10:36:080713デフォルトの名無しさん
2009/09/24(木) 11:42:460714デフォルトの名無しさん
2009/09/24(木) 13:37:14ここにある
def partial(func, *args, **keywords):
という書き方に出てくるCのポインタみたいな記号(*args,**keywords)ってどういう意味ですか?
0715デフォルトの名無しさん
2009/09/24(木) 13:43:230716デフォルトの名無しさん
2009/09/24(木) 13:53:550717デフォルトの名無しさん
2009/09/24(木) 17:46:570718デフォルトの名無しさん
2009/09/24(木) 22:47:32え?どこどこ?
0719デフォルトの名無しさん
2009/09/24(木) 23:06:300720デフォルトの名無しさん
2009/09/27(日) 04:43:59python3.0で、
print = 5
とするとprintという名前の変数に5が代入されたのですが、
そのあと元のprintという関数を使いたい場合はどうすればよいのでしょうか?
0721デフォルトの名無しさん
2009/09/27(日) 04:53:34もしくは
del print
0723デフォルトの名無しさん
2009/09/27(日) 11:24:07policy = cookielib.DefaultCookiePolicy( rfc2965=True, strict_ns_domain=cookielib.DefaultCookiePolicy.DomainStrict)
cj = cookielib.LWPCookieJar(cookie_jar_path, False, policy)
cjhdr = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhdr, RefererAddHandler())
opener.addheaders = [
('User-agent', 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)'),
('Connection','Keep-Alive')
('Keep-Alive'','300')
]
r = opener.open( uri )
rinfo = r.info()
for key in rinfo.keys() :
print h, rinfo[key]
## Referer を Autoでつける為のハンドラ ########
class RefererAddHandler (urllib2.BaseHandler) :
def http_request(self, req) :
req.add_header("Referer", req.get_full_url())
return req
---------------------------
firefoxなんかでレスポンスヘッダを見ると、
Connection: Keep-Alive
と出てる。でも上記コードでは
Connection: Close
になる。なにか足りないですか?
0724723
2009/09/27(日) 11:26:39('User-agent', 'User-Agent: Mozilla/5.0 〜略)
の箇所は
('User-agent', 'Mozilla/5.0 〜略)
0725デフォルトの名無しさん
2009/09/27(日) 11:31:06urllib2がそれを想定してないからうまく動かなかったような
ソース読んで絶望した記憶がある
urllib2 keep-alive でぐぐってみるといいんじゃないか
0726723
2009/09/27(日) 11:34:14ありがとう。ここのサイトのをやってみる!
http://python.blog-slime.com/function/urllib/
0727723
2009/09/27(日) 11:36:47http://memo.jj-net.jp/18
0728723
2009/09/27(日) 12:03:05urllib2だとcookieの自動処理が容易に出来るけど、keep-aliveが出来ない
urllib だとcookieの自動処理を容易に出来ないが、keep-aliveは出来る
(http://www.python.jp/doc/2.4/lib/cookielib-examples.html見ると、cookielibはurllib2での使用を想定している?)
HTTP/HTTPSをやる上で、比較的高機能で知られたライブラリってありますか?
(PerlのLWP、JavaのCommons/HttpClientみたいな)
0729デフォルトの名無しさん
2009/09/27(日) 18:42:43http://urllib-gsoc.blogspot.com/2008/06/urllib-package.html
http://www.python.org/dev/peps/pep-3108/#http-package
http://www.python.org/dev/peps/pep-3108/#urllib-package
こんなかんじらしい…
0730デフォルトの名無しさん
2009/09/27(日) 18:45:28http://docs.python.org/dev/3.0/library/http.cookiejar.html
0731デフォルトの名無しさん
2009/09/27(日) 18:53:41>>723のコードはPython2系列だ
0732デフォルトの名無しさん
2009/09/27(日) 19:01:48Bingo? 直感で
実は keep-alive の意味がよくわからないw
0733723
2009/09/27(日) 23:14:59python 2.4 に拘っている訳ではないんだ。
v3.0に上げて >>730のurllibとhttp.cookie_jarでやってみる。
>>732
ありがとう!参考にさせてもらうぜぃ
0734723
2009/09/28(月) 01:08:16なんかLISPっぽいね。
2.6と変わりすぎててわらってしまったw
0736デフォルトの名無しさん
2009/09/28(月) 02:44:310737デフォルトの名無しさん
2009/09/28(月) 14:47:48from Tkinter import *
root = Tk()
sub_win = None
def button_callback(event):
global sub_win
print 'button down'
sub_win.destroy()
def message_window():
global sub_win
sub_win = Toplevel()
button = Button(sub_win, text='window close')
button.pack()
sub_win.bind('<Escape>', button_callback)
button.bind('<Button-1>', button_callback)
Button(root, text='about', command=message_window).pack()
root.mainloop()
以上のようなコートなのですが、ESCキーを押してもコールバック関数が呼ばれません
何故でしょうか?よろしくお願いします
0738デフォルトの名無しさん
2009/09/28(月) 15:28:31イベントは送られない。
0739737
2009/09/28(月) 16:00:47>>738
>フォーカスの合ってるウィジェットにしか
>イベントは送られない。
もうちょっと単純にしてみて
from Tkinter import *
root = Tk()
def esc_down(event):
print 'esc key down'
root.destroy()
button = Button(root, text='close')
button.pack()
button.focus_set()
button.bind('<Button-1>', esc_down)
button.bind('<Escape>', esc_down)
root.mainloop()
こういう事ですよね?
これの「button.bind('<Escape>', esc_down)」を「root.bind('<Escape>', esc_down)」
としてもきちんとコールバック関数は呼ばれます。
上のコードのTkをToplevelにしてもESCキーのイベントの補足は成功するようです
>>737みたいな形にするとうまく行かないです。よろしくお願いします
0740デフォルトの名無しさん
2009/09/28(月) 18:59:50例えばx = "あいうえお"のときyに"%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"を代入したいんですが
どのようにすればいいでしょうか?
0741デフォルトの名無しさん
2009/09/28(月) 19:15:31import urllib
x = 'あいうえお'
y = urllib.quote(x.decode('sjis').encode('utf8'))
0743デフォルトの名無しさん
2009/09/28(月) 21:03:12好きなのをどうぞ
- 2つ目のウィンドウをクリックしてからEsc押す
- sub_win.focus_set()
- root.bind('<Escape>', button_callback)
0744デフォルトの名無しさん
2009/09/29(火) 03:25:290745デフォルトの名無しさん
2009/09/29(火) 03:40:050746デフォルトの名無しさん
2009/09/29(火) 03:42:060747737
2009/09/29(火) 03:59:51レスありがとうございます
2枚目のウインドウは作っただけではフォーカスは動かないのか・・・il||li ○| ̄|_
真ん中の方法を使わせて貰いました
0748デフォルトの名無しさん
2009/09/29(火) 04:04:20何らかのイベントが起きたときにフレームの内容を
丸ごと入れ替えるようなプログラムはどの用にする
ば書くことができますか?
0749デフォルトの名無しさん
2009/10/01(木) 12:00:050750デフォルトの名無しさん
2009/10/02(金) 02:35:44環境はvine5.0 Python 2.5.4 です。
>>> from turtle import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named turtle
と出ました。
turtleが入ってないということでしょうか?
またその場合どうすればいいのでしょうか?
どうかご教授お願いします。
0751デフォルトの名無しさん
2009/10/02(金) 04:17:28vine tkinter でぐぐってみて
0752デフォルトの名無しさん
2009/10/02(金) 14:49:59できました!
ありがとうございました!
0753デフォルトの名無しさん
2009/10/03(土) 13:16:230754デフォルトの名無しさん
2009/10/03(土) 14:30:28それでおk
0755デフォルトの名無しさん
2009/10/03(土) 21:07:210756デフォルトの名無しさん
2009/10/03(土) 22:16:290757デフォルトの名無しさん
2009/10/03(土) 22:39:25アドバイスをお願い致します。
・為替のレートを取得(特に決めていないが、リアルタイムレート)
・特定のレートになったところでメール通知
これなんて簡単でしょうか?
webからリアルタイムに情報を取得するには?
0758デフォルトの名無しさん
2009/10/03(土) 22:49:08HEADで定期的にポーリングで間に合う?
0759デフォルトの名無しさん
2009/10/03(土) 22:55:570760757
2009/10/03(土) 22:58:51pythonしかわかりません(涙
勉強してみます。
>759
リアルタイム希望です。
urllibだとリアルタイムはできないですよね?
0761デフォルトの名無しさん
2009/10/03(土) 23:03:220762デフォルトの名無しさん
2009/10/03(土) 23:08:430763デフォルトの名無しさん
2009/10/04(日) 14:24:38それほど重要な表示でもないので「暇な時」に
描画を更新したいと思っています.
「暇な時にコールバックして」というような
コールバックの枠組みは Tk にあるのでしょうか?
今は強引にループを回してますが,それだと他の処理に
対して影響が出るし(主処理はmultiprocessingで
いくつかのプロセスに投げてます),かといって
ウェイトを入れるとしても動的に調整したいし・・・
gtkを使うときには
import gobject
gobject.idle_add(update_graph)
のようにしています.
0764763
2009/10/04(日) 14:54:21def run(*args):
shori()
manager.window.after(50, lambda : manager.window.after_idle(run))
こんな感じにしてみました.
単純なループよりは穏やかになりました.
0765デフォルトの名無しさん
2009/10/04(日) 23:44:48from pylab import *
No module named pylab
とエラーが出てしまいます。
ipython で
from pylab import *
としてもエラーが出ないので、Matplotlibはインストールされてるはずなのですが・・・。
どうしたらいいしょう?
0766デフォルトの名無しさん
2009/10/05(月) 00:40:00Cygwin内のPython(/usr/bin/python)にインストールされてないのでは
0767デフォルトの名無しさん
2009/10/06(火) 01:50:22レンタルサーバのOSにインストールされていてCGIとして一応使えるようなので
使ってみたいのですが、わりと古いバージョンのようなので、
(webから)確認したいと思っています。
RUBY_VERSIONのような定数を期待したのですが、どうにも・・・
0768デフォルトの名無しさん
2009/10/06(火) 01:52:05sys.version
0769デフォルトの名無しさん
2009/10/06(火) 01:56:16cgi.test()
0770767
2009/10/06(火) 02:10:04確認できました!
バージョンは2.3.4でした。もっとずっと古い予感がしてたので少し安心・・。
ありがとうございました。cgi.test()の方も大助かりです!
0771デフォルトの名無しさん
2009/10/06(火) 02:13:080772デフォルトの名無しさん
2009/10/06(火) 02:18:370773デフォルトの名無しさん
2009/10/06(火) 18:54:48サイトが有れば教えてください
Rubyとかは見たことある気がするのですが
0774デフォルトの名無しさん
2009/10/06(火) 18:58:18http://codepad.org/
0775デフォルトの名無しさん
2009/10/06(火) 19:52:320776デフォルトの名無しさん
2009/10/06(火) 20:16:50http://www.example.com/foo/bar/cgi.py/path_info/path_info2
みたいになる場合もあるから
0777デフォルトの名無しさん
2009/10/06(火) 20:53:000778デフォルトの名無しさん
2009/10/06(火) 20:56:560779デフォルトの名無しさん
2009/10/06(火) 21:01:050780デフォルトの名無しさん
2009/10/06(火) 21:03:000781デフォルトの名無しさん
2009/10/06(火) 21:21:410783デフォルトの名無しさん
2009/10/07(水) 15:06:54拡大縮小させるにはどうすればいいですか?
0784デフォルトの名無しさん
2009/10/08(木) 05:38:440785デフォルトの名無しさん
2009/10/08(木) 06:22:19◯◯.py
と言うファイルを
IPythonで実行することは出来るのでしょうか?
出来るのならその方法を教えてください
0786デフォルトの名無しさん
2009/10/08(木) 11:50:350787デフォルトの名無しさん
2009/10/08(木) 12:57:12ここに書いてあるcreateDict.pyで
#日付スキップ等があり、アルファベットだけの文字列もスキップしたいのですが、
何を加えれば良いのでしょうか。
0788デフォルトの名無しさん
2009/10/08(木) 13:33:40import sys
import re
#数字四桁が入ったキーワードは役に立ちませんので検出して飛ばします。
year = re.compile("[0-9]{4}")
#驚くべきことにはてなキーワードには%00というキーワードがありますが、
#これがcsvとして提供されているダンプではヌル文字になっているのでシステム制御文字を非許可にします。
ng = [chr(i) for i in range(0,32)]
def main():
for x in sys.stdin:
if re.search(year,x):
continue #日付スキップ
k = x.split("\t")[1].strip()
if len(k) < 2:
continue #一文字スキップ
for word in ng:
if word in k:
continue #システム制御文字スキップ
k = k.lower() #MeCabはケースセンシティブなので小文字に統一して辞書作成
cost = int(max(-36000, -400 * len(k)**1.5)) #コストについては後述
print "%s,0,0,%s,名詞,一般,*,*,*,*,%s,*,*,はてなキーワード," % (k,cost,k) #0については後述
if __name__ == '__main__':
main()
0789デフォルトの名無しさん
2009/10/08(木) 15:55:39pass
みたいな感じでループを回すのに range を使っているんですが,
Eclipse + PyDev 1.5 では x が Unused Variable だって
警告が出ます.無視すればいいんですが,なんか気持ち悪い.
単純にループを回す時こんなことするのはアホですか?
0790デフォルトの名無しさん
2009/10/08(木) 16:45:39"x"のかわりに"_"をつかうとか、Ctrl+1で警告を消すとか
0791デフォルトの名無しさん
2009/10/08(木) 16:56:480792デフォルトの名無しさん
2009/10/08(木) 17:13:46イテレータの中で何かやってるかもしれないので
安易に削れないのかもしれない。
0793デフォルトの名無しさん
2009/10/08(木) 17:43:28expandではできませんでした
0794デフォルトの名無しさん
2009/10/08(木) 18:22:40がんがれ
0795デフォルトの名無しさん
2009/10/08(木) 19:51:16#このようにしてもできません
from Tkinter import *
root = Tk()
p = PhotoImage(file = "hoge.gif")
Label(root,image = p).pack(expand=True,fill=BOTH)
root.mainloop()
0796デフォルトの名無しさん
2009/10/08(木) 23:49:26import PIL.Image, PIL.ImageTk
EDGE = [-6, -4, -2][1]
class Root(Tk):
def __init__(self):
Tk.__init__(self)
self.p = PIL.Image.open('hoge.gif')
self.i = PIL.ImageTk.PhotoImage(self.p)
self.l = Label(self, image=self.i, relief=RAISED)
self.l.pack(expand=True, fill=BOTH)
self.l.bind('<Configure>', self.change_size)
def change_size(self, ev):
(w, h) = (ev.width + EDGE, ev.height + EDGE)
self.i = PIL.ImageTk.PhotoImage(self.p.resize((w, h)))
self.l.configure(image=self.i)
print 'resized %d %d' % (w, h)
Root().mainloop()
縁の幅を間違うと勝手にサイズが・・・orz
0797デフォルトの名無しさん
2009/10/09(金) 13:00:06ありがとうございます。
縁の幅と言うのはどこを指しているんですか?
0798デフォルトの名無しさん
2009/10/09(金) 16:24:51wxPythonにおけるコントロールやパネルという用語の概念が整理できていません
Appは複数のFrameを抱えることができて
FrameはPanelを持ちPanelはControlを持つということでしょうか?
0799デフォルトの名無しさん
2009/10/09(金) 20:31:570800デフォルトの名無しさん
2009/10/09(金) 21:17:400801デフォルトの名無しさん
2009/10/09(金) 21:24:07^[a-zA-Z]*$
0802デフォルトの名無しさん
2009/10/09(金) 21:36:470803デフォルトの名無しさん
2009/10/10(土) 01:59:03Tkinterも例外じゃない・・・(TT
0804デフォルトの名無しさん
2009/10/10(土) 02:14:060805デフォルトの名無しさん
2009/10/10(土) 07:29:06Baseクラスを継承してて、ctorの引数をそのままBaseのctorに渡したい
def __init__( self, argv4Base ):
Base.__init__( self, argv4Base );
def __init__( self ):
Base.__init__( self );
こんなことをやりたいんだけど、
def __init__( self, *argv ):
if len(argv)>0: Base.__init__( argv[0] );
0806デフォルトの名無しさん
2009/10/10(土) 07:30:19def __init__( self, *argv ):
if len(argv)>0: Base.__init__( self, argv[0] );
else: Base.__init__( self );
なんてctorの中でifで切り分ける方法以外ない?
メタプログラミング使うようなcoolな方法おしえてくだしあ
0807デフォルトの名無しさん
2009/10/10(土) 08:20:440808デフォルトの名無しさん
2009/10/10(土) 12:54:24正解はなんでしょうか?教えてください。
0809デフォルトの名無しさん
2009/10/10(土) 13:56:34コードがお望み?
import re
def isallalpha(s):
return re.match(r'^[a-zA-Z]+$', s) != None
ついでに正規表現じゃなかったら
def isallalpha(s):
return all([ c.isalpha() for c in s ])
0810デフォルトの名無しさん
2009/10/10(土) 14:58:16def isallalpha(s):
return all(c.isalpha() for c in s)
0811デフォルトの名無しさん
2009/10/10(土) 19:28:09some_method()
def some_method:
pass
このときCのプロトタイプ宣言のような書式はありますか?
それとも先に関数定義してから
if __name__ == '__main__':
some_method()
のように書くのがPython流でしょうか。
習慣的に、短いテストコードのようなときなど、関数定義を後の方にしておきたい気もして・・・
よろしくお願いします。
0812デフォルトの名無しさん
2009/10/10(土) 19:33:41>>Cのプロトタイプ宣言のような書式
ない
>>先に関数定義
してから実行するのが普通
doctest.testmod() とか調べるといいよ
0814デフォルトの名無しさん
2009/10/10(土) 21:28:20私は9月頃から『みんなのPython改訂版』(初版)で習得中の初心者です。
14章のToDo管理アプリケーションが起動しないのですが、
そのままのコードで起動した人はいますか?
(一瞬だけインタラクティブシェルが起動、エラー表示はありません)
また、何が起動しない原因と考えられますか?
初歩的な原因かもしれません。PATHは設定してます。
環境は、WindowsXP Python2.6 Eclipse3.5 Pydev1.4です。
ご回答よろしくお願いします。
スクリプトファイルです。
chapter14.zip (todoapp.py todoitem.py todocontainer.py)
ttp://www1.axfc.net/uploader/Sc/so/44301
キーワード: python
0815デフォルトの名無しさん
2009/10/10(土) 22:19:10class Test(object):
def __init__(self):
self.some_method()
def some_method(self):
pass
Test()
0816デフォルトの名無しさん
2009/10/10(土) 22:26:37root = Tk()
frame = ToDoApp(root)
frame.createwidgets()
root.mainloop()
入力ミスってるっぽいので、あとは自分でよろ。
0818デフォルトの名無しさん
2009/10/11(日) 09:55:00data=conn.read()
save=open('save.txt', 'a+')
for line in data.splitlines():
save.write(line.decode('sjis').encode('utf-8'))
print line.decode('sjis').encode('utf-8')
文字コード変換を書いてみたら、なかなか終わらず
おかしいなとは思ったのですがそのまま一日放置
今日起きて処理を止めて確認してみるとそこには
12Gigaのテキストファイルがありました…
save.write(data) で書き込もうとするとハング状態になるから
ジェネレータで回して書き出す方針でやろう => なぜか無限ループorz
正しく書くにはどうかけば良いのでしょうか?
0819デフォルトの名無しさん
2009/10/11(日) 10:26:26data=conn.read()
for line in data.splitlines():
print line.decode('sjis').encode('utf-8')
うまくいく時とうまくいかない時があるみたいだ
というか上手くいってもこれだと順番に書き出せないのか…
0820デフォルトの名無しさん
2009/10/11(日) 10:46:55outfile=open('save.txt', 'a+')
for line in infile:
outfile.write(line.decode('sjis').encode('utf-8')
import codecs
infile=codecs.open('2mega.txt', encoding='sjis')
outfile=codecs.open('save.txt', 'a+', encoding='utf-8')
outfile.writelines(infile)
0821デフォルトの名無しさん
2009/10/11(日) 11:14:14decode -> encodeしたぐらいじゃハングしないだろう
いちいち標準出力に吐いてるから遅かったとかじゃない?
出来上がったファイルが12GBなのは謎
0822デフォルトの名無しさん
2009/10/11(日) 12:20:10どーしてもオンメモリで処理しなきゃいけないとき以外はイテレータ回すべきだね
0823デフォルトの名無しさん
2009/10/11(日) 15:36:300824デフォルトの名無しさん
2009/10/11(日) 17:25:080825デフォルトの名無しさん
2009/10/11(日) 17:26:260826デフォルトの名無しさん
2009/10/11(日) 17:27:040827デフォルトの名無しさん
2009/10/11(日) 18:03:22... pass
1)rangeの数字が充分小さいとき->無事実行完了
2)rangeの数字が充分大きいとき->実行前にMemoryErrorですぐに終了
3)rangeの数字がちょっと大きいとき->時間はそれなりにかかるがちゃんと実行されて終了
4)rangeの数字が限界ぎりぎりの大きさのとき->swap起こしまくってハングアップw
(辛うじてリモートからsshでkill出来たので助かった)
4)が起きないようにしたいんだけど
0828デフォルトの名無しさん
2009/10/11(日) 18:17:18vmstatとかwindowsならパフォーマンスカウンタでわかるから
当然出来るのか…
0829デフォルトの名無しさん
2009/10/11(日) 20:05:340830デフォルトの名無しさん
2009/10/11(日) 20:10:22range->xrangeはどうなん
0831デフォルトの名無しさん
2009/10/11(日) 20:18:17xrangeは知ってるけど
問題の目的と違うから
っつーか空気嫁w
0832デフォルトの名無しさん
2009/10/11(日) 22:57:570833デフォルトの名無しさん
2009/10/12(月) 01:25:41思わず吹いてしまったよ
0834デフォルトの名無しさん
2009/10/12(月) 11:36:56WindowsでIEのエンジンを使って表示させることはできますか?
0835デフォルトの名無しさん
2009/10/12(月) 12:36:010836デフォルトの名無しさん
2009/10/12(月) 16:13:52GUIってどれ使えばいいかな?
0837デフォルトの名無しさん
2009/10/12(月) 16:27:430838デフォルトの名無しさん
2009/10/12(月) 16:32:54PyScripterのバージョンは1.9.9.7、エディタ設定で日本語フォントの指定・文字セットに日本語の指定はしてあります。
一通りググってみたのですが解決には至りませんでした。
既知の現象でしたらアドバイス頂けませんでしょうか。
スレ違いでしたら申し訳ありません。
0839デフォルトの名無しさん
2009/10/12(月) 16:41:11俺は wxPython がすき
0840デフォルトの名無しさん
2009/10/12(月) 16:47:52ファイルの頭に # -*- coding: utf-8 -*- はある?
0841デフォルトの名無しさん
2009/10/12(月) 17:30:35俺は wxPython がすき
0842デフォルトの名無しさん
2009/10/12(月) 17:32:15申し訳ありません。言葉が足りず語弊がありました。
まず扱っているのはPython3.0で、更に.pyファイルを実行した時の日本語表示に関する問題ではなく、
エディタ内でのファイル読み込み->ソースコード表示時、文字化けが発生するという問題です。
恐らくUTF-8(BOM無し)のファイルを開くときの文字コード認識がおかしいのだと思いますが、
やはりこれはPythonというよりPyScripterの問題の様なのでスレ違いですね…
0843デフォルトの名無しさん
2009/10/12(月) 17:36:42仰るとおりファイル先頭に文字コード宣言を付加したら、ちゃんと表示されました。
通常ならエディタはファイル自体の文字コードから自動判断してくれるものだと考えていましたが、
PyScripterはファイルの文字コード判断方法が特殊なのですね…
ありがとうございました。
0844デフォルトの名無しさん
2009/10/12(月) 17:37:37ありがとう
PyQtとwxPython両方共少し使ってみて決めてみる
0845デフォルトの名無しさん
2009/10/12(月) 17:41:33特殊というか、Pythonのやり方と同じにしただけでしょ。
Python以外のファイルは自動判定するとヘルプに書いてある。
0846デフォルトの名無しさん
2009/10/12(月) 17:46:18やっぱ標準モジュールは強いって事でTkinter
まあwxの方が楽だけど
xulrunner使いたいけどビルド環境整える時点で面倒になった
0847デフォルトの名無しさん
2009/10/12(月) 21:39:22UTF-8は自動判定は難しいよ。
だからMSはBOMを付けてるんだよ。
0848デフォルトの名無しさん
2009/10/12(月) 23:21:11楽ってのはwxの方が最初から色々用意されてるって意味?
0849デフォルトの名無しさん
2009/10/12(月) 23:39:06VisualStudioとかDelphiとか使ったことある人にはwxは触りやすい
Tkinterはtcl/tk使ったことないと取っつきにくい気がする
0850デフォルトの名無しさん
2009/10/12(月) 23:45:38wxPythonだとすっきりまとまるのに
Tkinterだとサブディレクトリが出来て使っていない色んなモジュールまでいっぱい付いてくるのが嫌
0851デフォルトの名無しさん
2009/10/13(火) 00:06:490852デフォルトの名無しさん
2009/10/13(火) 00:16:480853デフォルトの名無しさん
2009/10/13(火) 00:33:24やっと
# -*- coding: utf-8 -*-
って書けるようになった
0854デフォルトの名無しさん
2009/10/13(火) 14:25:060855デフォルトの名無しさん
2009/10/13(火) 14:29:41wxWidgetsのいいところは、GPLでもLGPLでもないところだね。
exeひとつにまとめても、クローズにしたい部分のソースはクローズのままにできる。
0856デフォルトの名無しさん
2009/10/13(火) 21:24:300857デフォルトの名無しさん
2009/10/14(水) 15:48:56リストからのアイテムの削除で del 文を使うとき
(おそらくそう意図していると思われる)
del mylist[1]
じゃなくて
del (mylist[1])
という書き方に出会ったんですが
効果は同じでしょうか?
文なのに () を付ける意味が分からん…のですが
0858デフォルトの名無しさん
2009/10/14(水) 16:05:030859デフォルトの名無しさん
2009/10/14(水) 20:53:28非可視コードを確認するのにいちいちファイルに書き出すのは
非常にめんどくさいのですが・・・
0860デフォルトの名無しさん
2009/10/14(水) 20:58:190861デフォルトの名無しさん
2009/10/14(水) 21:21:37> >>302
> p?
> http://docs.python.org/library/functions.html?highlight=repr#repr
> http://docs.python.org/library/repr.html#module-repr
>
> pp?
> http://docs.python.org/library/pprint.html#module-pprint
0862デフォルトの名無しさん
2009/10/15(木) 01:12:16p 3*9
0863デフォルトの名無しさん
2009/10/15(木) 05:56:45できれば PyDev から便利に使えるとありがたいのですが・・・
0864デフォルトの名無しさん
2009/10/16(金) 01:11:51ここのhtmlを1行ずつ開くコードを書きました。
<A HREF=http://xxx.2ch.net/yyy/>zzz</A>
となってるのからxxx,yyy,zzzを抜き出して配列に格納したいです。
どのように書くべきでしょうか?
0865デフォルトの名無しさん
2009/10/16(金) 01:28:38>>> content = '<A HREF=http://xxx.2ch.net/yyy/>zzz</A>'
>>> import re
>>> for r in re.finditer('<A HREF=(http://(\w+?)\.2ch\.net/(\w+?)/)>(.*?)</A>', content, re.I):
... r.groups()
('http://xxx.2ch.net/yyy/', 'xxx', 'yyy', 'zzz')
0866デフォルトの名無しさん
2009/10/16(金) 01:29:25ありがとうございます。。
0867デフォルトの名無しさん
2009/10/16(金) 02:55:470868デフォルトの名無しさん
2009/10/16(金) 10:12:26ぬるぽにがっする機能をおながいします
0869デフォルトの名無しさん
2009/10/16(金) 13:11:02twisted.internet.reactor.registerWxApp
をリアクタとして使っているのですが
Qtを対象としたイベントループ兼リアクタはあるのでしょうか?
0870デフォルトの名無しさん
2009/10/16(金) 13:12:110871デフォルトの名無しさん
2009/10/16(金) 13:15:210872デフォルトの名無しさん
2009/10/16(金) 13:40:04これ見ると各種のリアクタがあり,
Windows では win32eventreactor とか使うんだろうなと思うんですが
qtreactor が undocumented で何も記述がなく
使ってる人がいたら情報求むということで…
よろしくお願いします.
正直私はネットワーク処理の部分をtwistedで書くのがメインなので
PyQtと相性が良ければQtに明るいプログラマにGUIを任せたいと思っています.
0873デフォルトの名無しさん
2009/10/16(金) 13:42:11twistedは大分前に窓から投げ捨てたのでどうなるか知らん
0874デフォルトの名無しさん
2009/10/16(金) 13:59:45QtスレいくとwxPythonスレに行けとかいわれそうで・・・
0875デフォルトの名無しさん
2009/10/16(金) 14:03:56https://code.launchpad.net/qt4reactor
0876デフォルトの名無しさん
2009/10/16(金) 14:17:36別々のスレッドでやってもいい気もしてきましたが…
まぁあるものなら使ってみようか
0877デフォルトの名無しさん
2009/10/16(金) 14:30:290878デフォルトの名無しさん
2009/10/16(金) 15:05:23wxPythonはコールバックによるイベント処理
ってことだと思うのですが
どちらの方がデバッグしやすいものなんでしょうか?
特に大規模なGUIになってきた場合
0879デフォルトの名無しさん
2009/10/16(金) 15:35:460880デフォルトの名無しさん
2009/10/16(金) 15:37:23たぶんsignal
0881デフォルトの名無しさん
2009/10/16(金) 16:15:00>>>class□Myclass:
def□_ini_(self):
self.value = 0
print "make"
□は半角スペースを表し、インデントで次の行に行く際はエンターを一回押しています。
>>>i = Myclass()
>>>i.value
AttributeError: m instane has no attribute 'value'
まずi = Myclass()を実行しても"make"という行が出てきません。
次の行のi.valueを実行すると上記のエラーがでてしまいます。
クラス定義の仕方で間違っている個所があればお教えください。
よろしくお願いします。
0882デフォルトの名無しさん
2009/10/16(金) 16:23:17↓
__init__
0883デフォルトの名無しさん
2009/10/16(金) 16:41:24しょうがないからos.systemで代用したが。
0884デフォルトの名無しさん
2009/10/16(金) 16:46:38できました! ありがとうございました!!
0885デフォルトの名無しさん
2009/10/16(金) 19:17:11ググりまくったんですがセレクトしか出てこなくて。
0886デフォルトの名無しさん
2009/10/16(金) 19:36:430887デフォルトの名無しさん
2009/10/16(金) 19:45:52http://pyinline.sourceforge.net/をインストールし、ここに書いてあるサンプルをexample.pyとして
実行しようとしましたら、エラーとなりました。
----example.pyここから
import PyInline, __main__
m = PyInline.build(code="""
double my_add(double a, double b) {
return a + b;
}""",
targetmodule=__main__, language="C")
print my_add(4.5, 5.5) # Should print out "10.0"
----ここまで
C:\src>python example.py
running build
running build_ext
Traceback (most recent call last):
File "C:\src\example.py", line 7, in <module>
targetmodule=__main__, language="C")
File "C:\Python25\Lib\site-packages\PyInline\__init__.py", line 38, in build
return b.build()
File "C:\Python25\Lib\site-packages\PyInline\C.py", line 45, in build
self._compile()
File "C:\Python25\Lib\site-packages\PyInline\C.py", line 265, in _compile
raise BuildError(e)
PyInline.BuildError: error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.
そのためbuildフォルダと、site-packagesフォルダにできたファイルを削除してから、(続きます)
0888887の続きです
2009/10/16(金) 19:47:12C:\src\PyInline-0.03>python setup.py build -c "mingw32"
C:\Python25\lib\distutils\dist.py:247: UserWarning: 'licence' distribution optio
n is deprecated; use 'license' warnings.warn(msg)
running build
running build_py
creating build
creating build\lib
creating build\lib\PyInline
copying PyInline\C.py -> build\lib\PyInline
copying PyInline\c_util.py -> build\lib\PyInline
copying PyInline\__init__.py -> build\lib\PyInline
C:\src\PyInline-0.03>python setup.py install --skip-build
C:\Python25\lib\distutils\dist.py:247: UserWarning: 'licence' distribution option is deprecated; use 'license' warnings.warn(msg)
running install
running install_lib
creating C:\Python25\Lib\site-packages\PyInline
copying build\lib\PyInline\C.py -> C:\Python25\Lib\site-packages\PyInline
copying build\lib\PyInline\c_util.py -> C:\Python25\Lib\site-packages\PyInline
copying build\lib\PyInline\__init__.py -> C:\Python25\Lib\site-packages\PyInline
byte-compiling C:\Python25\Lib\site-packages\PyInline\C.py to C.pyc
byte-compiling C:\Python25\Lib\site-packages\PyInline\c_util.py to c_util.pyc
byte-compiling C:\Python25\Lib\site-packages\PyInline\__init__.py to __init__.pyc
running install_egg_info
Writing C:\Python25\Lib\site-packages\PyInline-0.03-py2.5.egg-info
として、再びサンプルを実行したところ、上記と同じエラーになってしまいました(続きます)
0889887
2009/10/16(金) 19:53:54_PyInline_a5843fcd5b05a69bb7ab356b82740227.c
----ここから----
// Generated by PyInline
// At Fri Oct 16 19:33:58 2009
#include "Python.h"
/* User Code */
double my_add(double a, double b) {
return a + b;
}
static PyObject *
_a5843fcd5b05a69bb7ab356b82740227_my_add(PyObject *self, PyObject *args)
{
(後略)
----ここまで----
のようなファイルが作られていました。
環境は、
\src>mingw32-gcc --version
mingw32-gcc (GCC) 3.4.5 (mingw-vista special r3)
です。またCygwinは入ってますがVisual Studioはインストールされておりません。
Pythonは2.5.4です。
長々とスレを汚してしまい申し訳ありません。
0890デフォルトの名無しさん
2009/10/17(土) 04:34:51PyInline.build() の引数に distutils_args=["-c", "mingw32"] を加えてみたらどうかな。
0891デフォルトの名無しさん
2009/10/17(土) 07:29:54ttp://www.nishiohirokazu.org/archived_coreblog/585
PyInlineを学ぶのに要する労力をCで拡張ライブラリを書く方法を学ぶのに回したほうがいいのではないかと思うが…。
0892デフォルトの名無しさん
2009/10/17(土) 07:33:46手段が目的なんだ、目的のための手段じゃないんだ
0893887
2009/10/17(土) 11:15:55>>890さん
成功しました!
running build
running build_ext
building '_PyInline_a5843fcd5b05a69bb7ab356b82740227' extension
creating build
creating build\temp.win32-2.5
creating build\temp.win32-2.5\Release
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python25\include -IC:\Python25\PC -c _PyInline_a5843fcd5b05a69bb7ab356b82740227.c
-o build\temp.win32-2.5\Release\_pyinline_a5843fcd5b05a69bb7ab356b82740227.o
writing build\temp.win32-2.5\Release\_PyInline_a5843fcd5b05a69bb7ab356b82740227.def
creating build\lib.win32-2.5
C:\MinGW\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.5\Release\_pyinline_a5843fcd5b05a69bb7ab356b82740227.o build\temp.win32-2.5\Release\_PyInline_a5843fcd5b05a69bb7ab356b82740227.def
-LC:\Python25\libs -LC:\Python25\PCBuild -lpython25 -lmsvcr71 -o build\lib.win32-2.5\_PyInline_a5843fcd5b05a69bb7ab356b82740227.pyd
10.0
PyInline自体のビルドではなくてPyInlineが行うビルドが問題になっていたという認識でいいのでしょうか。
>>891さん、>>892さん
Cの簡単なテストに使おうかとおもいましたが、
ステップ実行して身の丈を思い知らされました・・
distutilsなど、もっと勉強しようとおもいます。
0894デフォルトの名無しさん
2009/10/17(土) 13:59:490895デフォルトの名無しさん
2009/10/17(土) 14:01:59いうよくあるファイル選択画面をを作りたいのですが、
http://d.hatena.ne.jp/Cassiopeia/20070819/1187479725にある例文を
無理矢理関数にしてボタンを押したときの処理にその関数を指定しても、
関数は呼び出されるものの、関数内の tk = Tkinter.Tk() が処理されません。
初心者的な内容かもしれませんが、アドバイス頂けませんでしょうか。
from Tkinter import *
from tkFileDialog import *
import Tkinter
import tkFileDialog
root = Tk()
root.option_add("*font", ("FixedSys", 14))
root.title("テスト")
def load_file():
tk = Tkinter.Tk()
tk.withdraw() # 小ウィンドウを表示しないようにする。
args = { "initialdir" : "/home/",
"filetypes" : [("テキストファイル", "*.txt")],
"title" : "テスト"
}
botton01 = Button(root, text = "ボタン",command = load_file)
botton01.pack()
root.mainloop()
0896デフォルトの名無しさん
2009/10/17(土) 15:29:55cron
0897デフォルトの名無しさん
2009/10/17(土) 19:40:46tk = Tk()
0898デフォルトの名無しさん
2009/10/17(土) 20:59:27釣られたの鴨試練が
def load_file():
args = {
'initialdir': '/home/',
'filetypes': [('テキストファイル', '*.txt')],
'title': 'テスト'}
filenames = tkFileDialog.askopenfilenames(**args)
print 'selected: [%s]' % ','.join(filenames)
#※ load_fileの中で
# tk = Tkinter.Tk()
# tk.withdraw() # 小ウィンドウを表示しないようにする。
#は不要
#※ tkFileDialog.askopenfilenamesを呼ぶのを忘れている
0899895
2009/10/17(土) 21:52:29>>898
ありがとうございます。
>>898で教えていただいたやり方でできました。ありがとうございます!
まだまだ勉強したてで、根本的な理解が足りないようなので勉強しなおしてきます。
0900デフォルトの名無しさん
2009/10/18(日) 21:53:240901デフォルトの名無しさん
2009/10/18(日) 22:04:330902デフォルトの名無しさん
2009/10/18(日) 22:10:130903デフォルトの名無しさん
2009/10/18(日) 22:17:39http://www.amazon.co.jp/Python-Essential-Reference-Developers-Library/dp/0672329786/
旧版みたいに日本語版も出るといいね
0904デフォルトの名無しさん
2009/10/18(日) 22:46:07ありがとう。
読めなくもないがめんどいw
0905デフォルトの名無しさん
2009/10/19(月) 15:41:37Python3.x系のソースコードをWindowsの実行ファイル形式に変換する方法はありますか?
0906デフォルトの名無しさん
2009/10/19(月) 15:59:390907デフォルトの名無しさん
2009/10/19(月) 16:04:300908デフォルトの名無しさん
2009/10/20(火) 03:16:50ただでさえ文字コードがらみはめんどくさいのにencode/decodeでコードが冗長になるし
さらに変換を間違うと表示が化けるどころか例外で止まるってもう勘弁してヽ(`Д´)ノ
デバッグがめんどくさいPython組み込み系のコードとかコンソールに何も出したくなくなる
0909デフォルトの名無しさん
2009/10/20(火) 03:49:26コンソールじゃなくてログファイルに
codec 経由せずに出すのが正解
ログは tail -f で見てれば良い
0910デフォルトの名無しさん
2009/10/20(火) 03:50:240911デフォルトの名無しさん
2009/10/20(火) 07:59:55検出してエラーを出してくれるほうが何倍も楽だと思うんだけど。
0912デフォルトの名無しさん
2009/10/20(火) 08:03:55forとかifがどうやってもエラーになってしまう
0913デフォルトの名無しさん
2009/10/20(火) 12:48:56もっともCPythonはCRLFでもLFでも行けたはずだが。
0914デフォルトの名無しさん
2009/10/20(火) 13:10:560915デフォルトの名無しさん
2009/10/20(火) 15:54:20とした場合、self.comboのchoicesにlist=["a","b","c"]を設定することは出来ますか?
0916デフォルトの名無しさん
2009/10/20(火) 16:31:14self.combo.AppendItems(["a","b","c"])
0918915
2009/10/20(火) 18:40:19同じくwxComboBoxのchoicesにlistを追加することについてですが
listに日本語が含まれた瞬間デコードエラーが出てしまいます。
日本語の追加は出来ないのでしょうか?
0919デフォルトの名無しさん
2009/10/20(火) 18:42:270920915
2009/10/20(火) 19:21:240921デフォルトの名無しさん
2009/10/21(水) 01:56:51アドバイスよろしくお願いします。
ls = range(3,51)
for a in ls:
for b in range(2,a):
if (a%b) != 0:
continue
else:
del ls[a-3]
0922デフォルトの名無しさん
2009/10/21(水) 02:12:48はなにをやろうとしてるんだろう?
ループ中にリストの要素削除とかめんどいことはやんないほうがいいと思うよ
普通に考えれば結果のリストを用意して、
ある数字が素数と判定出来たらそこに入れるとかでいいはずだろ?
0923デフォルトの名無しさん
2009/10/21(水) 02:26:21エラトステネスの篩(ふるい) Python でぐぐっちゃいなよ
0924デフォルトの名無しさん
2009/10/21(水) 03:29:35def primes():
g = count(2)
while True:
p = g.next()
yield p
g = ifilter(lambda n, p=p: n % p, g)
l=[]
for p in primes():
if p <= 50: l.append(p)
else: break
0925デフォルトの名無しさん
2009/10/22(木) 00:52:260926デフォルトの名無しさん
2009/10/22(木) 10:39:16それに比べて俺と言ったら…
0927デフォルトの名無しさん
2009/10/22(木) 18:06:08もっと短くするにはどうしたらいいですか?
#coding=utf-8
def primenumber(n):
for c in range(2, n):
if n%c == 0:
break
if c == n-1:
return n
else:
return u"素数ではない"
ls = [2]
for n in range(3, 51):
ls.append(primenumber(n))
if u"素数ではない" in ls:
ls.remove(u"素数ではない")
print ls
0928927
2009/10/22(木) 18:10:09コピペでインデントが外れました。
#coding=utf-8
def primenumber(n):
for c in range(2, n):
if n%c == 0:
break
if c == n-1:
return n
else:
return u"素数ではない"
ls = [2]
for n in range(3, 51):
ls.append(primenumber(n))
if u"素数ではない" in ls:
ls.remove(u"素数ではない")
print ls
0929デフォルトの名無しさん
2009/10/22(木) 18:13:510930927
2009/10/22(木) 18:15:17半角空白でインデントができないので全角にしました。
#coding=utf-8
def primenumber(n):
for c in range(2, n):
if n%c == 0:
break
if c == n-1:
return n
else:
return u"素数ではない"
ls = [2]
for n in range(3, 51):
ls.append(primenumber(n))
if u"素数ではない" in ls:
ls.remove(u"素数ではない")
print ls
0931デフォルトの名無しさん
2009/10/22(木) 18:31:14半角でインデントして置換するか、
もしくは専ブラの機能使えば意外といけたりする
>>930
primenumber関数の戻り値がカオスなので単に素数かどうか判定する関数にして、
名前もそれらしいものにしたほうがいいかと。
出力はリスト内包表記を使えばシンプルになる。
def is_prime(n):
for c in range(2, n):
if n%c == 0:
return False
return True
print [x for x in range(2,51) if is_prime(x)]
0932デフォルトの名無しさん
2009/10/22(木) 18:32:41def is_prime(n):
for c in range(2, n):
if n%c == 0:
return False
return True
print [x for x in range(2,51) if is_prime(x)]
0933927
2009/10/22(木) 20:05:08ありがとうございます!15行が7行になりました!
(補足:5行目コードと、リストに2を追加しました。)
def is_prime(n):
for c in range(2, n):
if n%c == 0:
return False
if c == n-1:
return True
print [2] + [x for x in range(3,51) if is_prime(x)]
0934デフォルトの名無しさん
2009/10/22(木) 22:09:28import cgi,re
q=(正規表現)
line=(1行のデータ)
for r in re.finditer(q,line):
print r.group(0)
print r.group(1)
print r.group(2)
print r.group(3)
のように書いて正規表現でマッチさせたいのですがうまくいきません。
コマンドプロンプトで動かすとうまくいきますが、cgiにしてやるとダメです。
上から1行ずつ動かしていって、どうやら
for r in re.finditer(q,line):
を書くとエラーがでました。
原因はなんでしょうか?
0935デフォルトの名無しさん
2009/10/22(木) 22:18:51>>768
0936デフォルトの名無しさん
2009/10/22(木) 22:21:53ありがとうございます。
やってみたところバージョンは2.4.3らしいです。
もしかして対応していないのでしょうか?」
0937デフォルトの名無しさん
2009/10/22(木) 22:53:55http://www.python.org/doc/2.4.3/lib/module-cgitb.html
0938デフォルトの名無しさん
2009/10/22(木) 22:59:530939デフォルトの名無しさん
2009/10/22(木) 23:38:17>を書くとエラーがでました
本当に助けてほしいんだったら、
まず、そのエラーの内容をそのままコピペしてくれ。
0940デフォルトの名無しさん
2009/10/23(金) 00:03:14internal server error が返ってくるだけのような
0941デフォルトの名無しさん
2009/10/23(金) 08:25:240942デフォルトの名無しさん
2009/10/23(金) 20:52:16AddHandler cgi-script-debug .cgiでやっているのですが、これで見たところエラーは無いようですが
実行してみるとスクリプトエラーがでます。どうしたらいいでしょうか?
ちなみにxreaです
Script Error
The script did not produce proper HTTP headers.
Please see the error log to see the detail of the errors.
Depending on the server configuration, you can also run thisscript under CGIWrap debugging.
Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file.
0943デフォルトの名無しさん
2009/10/23(金) 20:54:25def func1():
i = {'cnt': 0}
def _func1():
i['cnt'] += 1
return i['cnt']
return _func1
def func2():
i = 0
def _func1():
i += 1
return i
return _func1
func1みたいにリストもしくは辞書を使って書くと思った通りに動くんですが冗長に見えます
しかしfunc2みたいに書くとUnboundLocalErrorになってしまいます
もうちょっとすっきり書く方法って無いですかね?
0944デフォルトの名無しさん
2009/10/23(金) 21:18:38http://www.velocityreviews.com/FORUMS/t678908-nonlocal-in-python-26.html
0945デフォルトの名無しさん
2009/10/23(金) 21:21:05content-type
0946デフォルトの名無しさん
2009/10/23(金) 21:24:15content-typeは記述していますが、うまくいきません・・・
0947デフォルトの名無しさん
2009/10/23(金) 21:36:070948デフォルトの名無しさん
2009/10/23(金) 21:38:380949デフォルトの名無しさん
2009/10/23(金) 21:59:21def func2():
def _func2():
_func2.i += 1
return _func2.i
_func2.i = 0
return _func2
0950デフォルトの名無しさん
2009/10/23(金) 22:02:54お騒がせしました
0951デフォルトの名無しさん
2009/10/23(金) 22:31:550953デフォルトの名無しさん
2009/10/24(土) 11:24:27http://pc12.2ch.net/test/read.cgi/tech/1256350845/
0954デフォルトの名無しさん
2009/10/24(土) 18:22:25mysqlでこのようなselect文からヒットした結果をrow[0],row[1]に入れたいのですがいい方法はありますか?
0955デフォルトの名無しさん
2009/10/24(土) 18:34:280956デフォルトの名無しさん
2009/10/24(土) 19:19:450957デフォルトの名無しさん
2009/10/24(土) 19:36:59すいません。
教えてください
0958デフォルトの名無しさん
2009/10/24(土) 19:42:43ひょっとしたらODBCだったりするのか?
あるいは?
面倒糞いので答えない
0959デフォルトの名無しさん
2009/10/24(土) 19:46:30データ取れた後は
文字コードの質問や
データ型の質問が
出て来ると予想
0960デフォルトの名無しさん
2009/10/24(土) 19:49:48データがとれればそれでいいのでお願いします
0961デフォルトの名無しさん
2009/10/24(土) 20:02:47>>958
0962デフォルトの名無しさん
2009/10/24(土) 23:49:43con = sqlite3.connect('testsqlite3.sl3')
con.row_factory = sqlite3.Row
cur = con.cursor()
cur.executescript('''create table test (id integer, val varchar(8));''')
con.commit()
s = '''insert into test (id, val) values (%d, '%s');'''
cur.executescript(s % (3, 'abc'))
cur.executescript(s % (2, 'xyz'))
cur.executescript(s % (1, 'def'))
con.commit()
cur.execute('''select id, val from test order by val;''')
for row in cur:
print row['val'], row['id']
cur.close()
con.close()
0963デフォルトの名無しさん
2009/10/25(日) 00:09:440964デフォルトの名無しさん
2009/10/25(日) 08:53:350965デフォルトの名無しさん
2009/10/25(日) 12:45:20http://docs.python.org/library/timeit.html
32.12. dis ? Disassembler for Python bytecode
http://docs.python.org/library/dis.html
0966デフォルトの名無しさん
2009/10/25(日) 14:08:140967デフォルトの名無しさん
2009/10/26(月) 02:06:24nとn^2+2がともに素数となるnを求めてください
素数テーブル
ビッグエンディアン ttp://www.opendogs.org/pub/pn_be.dat.gz
リトルエンディアン ttp://www.opendogs.org/pub/pn_le.dat.gz
0968デフォルトの名無しさん
2009/10/26(月) 02:15:17前者ならPythonじゃ現実的な時間内に終わらないような
0969デフォルトの名無しさん
2009/10/26(月) 04:01:49n^2+2が素数テーブルの最大値以下
ということでよろしくおながいします
0970デフォルトの名無しさん
2009/10/27(火) 16:50:420971デフォルトの名無しさん
2009/10/27(火) 21:40:03n=3m, (3m)^2+2 = 9m^2+2 = 3の倍数+2 ({3m: m>1} != 素数)
n=3m+1, (3m+1)^2+2 = 9m^2+6m+3 = 3の倍数 != 素数
n=3m+2, (3m+2)^2+2 = 9m^2+12m+6 = 3の倍数 != 素数
0972デフォルトの名無しさん
2009/10/28(水) 01:54:380973デフォルトの名無しさん
2009/10/29(木) 11:34:04岡田外務大臣キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
http://qb5.2ch.net/test/read.cgi/saku2ch/1256630318/1
早く記念カキコしないと埋まっちゃうwww
0974デフォルトの名無しさん
2009/10/30(金) 21:35:30調べてみると日本語をアスキーとして扱っている事から起きるエラーとのことですが、
どうしたらエラーを回避できるのでしょうか?
0975デフォルトの名無しさん
2009/10/30(金) 22:50:07.encode('utf-8')
0976デフォルトの名無しさん
2009/10/31(土) 01:17:35my.ini の中で
[mysql]
default-characterset = utf8
[mysqld]
default-characterset = utf8
0977デフォルトの名無しさん
2009/10/31(土) 19:58:26エンコードしてもダメみたいです。。
0978デフォルトの名無しさん
2009/10/31(土) 20:56:07utf8を使うとして、>>976のようにMySQLを設定
python側は、MySQLdb.connectのところでcharset= "utf8"
入れる文字列もutf8にエンコードで問題ないと思う。
db.execute("SET NAMES utf8")とかも意味あるかも
0979デフォルトの名無しさん
2009/10/31(土) 22:52:50ありがとうございます
charset='utf-8'
c.execute("SET NAMES utf8")
q.encode('utf8')
したのですが、
q.encode('utf8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 76: ordinal not in range(128)
だそうです。
ちなみにqはselect文です。
0980デフォルトの名無しさん
2009/10/31(土) 23:02:57q = 'select ほげほげ from ふがふが where はげ=True;'
なら
ソースの2行目に
# -*- coding: utf-8 -*-
を書いた上で
c.execute(q)
あるいは
# -*- coding: cp932 -*-
を書いた上で
c.execute(q.decode('cp932').encode('utf-8'))
そうじゃなくて
q = u'select ほげほげ from ふがふが where はげ=True;'
なら
c.execute(q.encode('utf-8'))
0981デフォルトの名無しさん
2009/10/31(土) 23:39:00ありがとうございます。何度もすいません。
*selectじゃなくてinsertでした。。
修正して実行すると、
q=u"INSERT INTO menu(name,id,name_j) VALUES (%s,%s,%s)"%(l_name,l_id,l_name_j)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 0: ordinal not in range(128)
となってしまいます。
l_name、l_idは英数字のみの変数、l_name_jは日本語を含む変数です。
それぞれ、shift-jisのhtmlファイルから正規表現で抜いたものです。
コーディングは# -*- coding: utf8 -*-としています。
0982デフォルトの名無しさん
2009/11/01(日) 00:11:05db = MySQLdb.connect(host= DB_HOST, user = DB_USER, passwd = DB_PASS, db= DB_NAME, charset= "utf8")
db_cursor = db.cursor()
db_cursor.execute("SET NAMES utf8")
l_name_j_utf8 = l_name_j.decode("Shift_JIS").encode("UTF-8")
db_cursor.execute("INSERT INTO menu(name,id,name_j) VALUES (%s,%s,%s)", (l_name,l_id,l_name_j_utf8))
0983デフォルトの名無しさん
2009/11/01(日) 01:33:05おおおおおおおおお
いきました!!サンクスですwwww
本当に大感謝です。。
レス数が950を超えています。1000を超えると書き込みができなくなります。