|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは
>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
6 :
デフォルトの名無しさん:2014/03/08(土) 10:13:02.57
【重要】
hogeは禁止です。使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
また、hogeはNGワードに追加しておくことが強く推奨されています。
--------テンプレここまで--------
それじゃあ質問
今居る関数の、関数オブジェクトを表している特殊変数ありませんか?
下記のような時 __self__ みたいな特殊変数があると
this = hoge_hoge_fuga_fuga しなくて済むのだけど
def hoge_hoge_fuga_fuga():
this = hoge_hoge_fuga_fuga
if 'x' not in this.__dict__:
this.__dict__['x'] = 100
this.x += 1
print(this.x)
hoge_hoge_fuga_fuga()
hoge_hoge_fuga_fuga()
1おっぱいそん。
_self
getattr(__import__('__main__'), '__name__')
debu hage():
sikuliというソフトでpythonの外部モジュールを読み込む方法を教えてください
C/Python27/Libの中にモジュール名でフォルダを作って中にinit入れたらコマンドプロントやidleではimportできるのに同じプログラムをsikuli実行すると
ImportError(No module named json)と表示されます
これはsikuliがjythonだからでしょうか?
教えてくださいお願いします
色々問題があるので2つに分けるぞ
・Jythonにモジュールパスを追加する方法
何らかの方法でsys.pathにライブラリのディレクトリが入っていればいい
PYTHONPATHは効果がない
JYTHONPATHは引数で指定する
site.pyを編集するとか、sys.pathを直に弄る方法もある
・Jython2.5でPython2.7のライブラリが動くかどうか
JythonはCPython2.5+α(with構文などは使える)なのでかなり怪しい
仮に動いても誰も保証をしない
setuptools(pip)は既に2.5を切り捨てたので使えない(はず)
あ、あくまでも一般的なJythonについて書いたので
そのソフトの使い方はそのソフトのスレか公式のフォーラムで聞いてください
ないor英語が読めないなら自動化なんて諦めて寝てください
話の半分くらいしか理解できなかったけどforumで「python mudule」で調べましたが有益な情報がないのでsikuliは諦めます
ですがpywinautoとかいうすごいの見つけたんでsikuliの代わりに使ってみたいと思います
わざわざ長い文章でご回答いただきありがとうございました
>>18 すみません、自己解決しました。
まず上のスクショの通りにmath.piが表示されているのを確認しました。
次にエラーメッセージをよく見てみたらどうやら行頭の空白部分を指し示していたので、一旦空白を削除してもう一度インデントしなおしたら動きました。
courseraの課題のプログラムをネットからコピペしたので空白がおかしくなってたのかもしれません。
ありがとうございました。
>>20 勿論読みましたよ。
その元になるmath.pyが何処にあるのかということと、math.py単体の動作チェックの仕方が分かってなくて躓いてましたから。
結局math.pyで検索して見つけたファイルをその位置に置いたら出来たので。
ゴミだなコイツ
さすがに別人だろ
Pythonはゆとり言語だから仕方ないね
pass
26 :
デフォルトの名無しさん:2014/03/09(日) 22:00:32.08
みんなipython使ってるの?
何でそんなくだらないもの使わなきゃいけないんだ?
for i in res:
ac["id"].append(i[1])
ac["pw"].append(i[2])
i[1]にid, i[2]にpwが格納されています。
id = ac["id"][0]
pw = ac["pw"][0]
のように取り出したいのですが、どのように記述したらいいでしょうか?
一つのリスト?にid,pwと2つの情報を入れて、同じキー番号で取り出したいです。
素人すぎてすみませんw
ac = {}
acs = []
for i in res:
ac["id"] = i[1]
ac["pw"] = i[2]
acs.append(ac)
id = acs[0]["id"]
pw = acs[0]["pw"]
>>28 辞書使ったら?
for x, id, passward in res:
account = {"id": id, "password": passward}
id = account["id"]
passward = account["passward"]
あぁ、クソっ!
インフルエンザにかかって辛い
お前らも気を付けろよ
>>28 namedtupleの出番
from collections import namedtuple
User = namedtuple("User", "x,id,password")
res = [(None, "id01", "pw01"), (None, "id02", "pw02")]
accounts = [User(*x) for x in res]
for user in accounts:
print("{:2} {}".format(user.id, user.password))
wxpythonで艦これ用のタイマー作ろうとしているのですが→リンクideone.com/1OjysO
時間数えるとGUIの処理を持っていかれてウインドウが使えなくなります
何か改善策ありますかね?
>>28 順番気にしないなら、id を辞書のキーそのものにすればいい
ac = dict(a[1:3] for a in res)
つまり
ac = {}
for a in res:
id, pw = a[1:1+2]
ac[id] = pw
>>33 wxpython知らんけど、
wx.Timer 使えない? sleep だとMainLoop まで固まってると思うよ
>>35 おおそんな便利なものがあるんですね
ありがとうございます
37 :
デフォルトの名無しさん:2014/03/10(月) 20:14:11.30
「リバースエンジニアリング ―Pythonによるバイナリ解析技法」って本どうなの?
Pythonそのものにはあんまり触れたこと無いんだが、読んでおくと勉強になったりするんだろうか
読み物として面白くて実用的なら買いたいな、と。
>>37 ウイルスの解析とかする人は必携
pydbg とか DLLインジェクションの話しだから興味が
無い人にはつまらないかも
39 :
デフォルトの名無しさん:2014/03/10(月) 23:50:23.99
f = open("log.txt","r+")
log = int(f.read())
log += 1
f.write(str(log))
f.close()
実行するたびにカウントアップしたいんですけど、なにがいけませんか?
ん?
一つのf=open()の動作内でread()とwrite()を行うサンプル見たことないな
俺は殆んどファイル操作しないから分からんけど
>>40 >なにがいけませんか?
エラー文を書いてないところ
"r+"ってなにができるんだ
>>40 複数のプロセスで同時に呼び出される可能性があるなら、ロックが必要。データが壊れる可能性がある。
書き込みに関しては、write前に truncateしないと前のデータが残ったまま
>>40 リードでファイルのヘッドが(次の行へ)移動するからじゃね
で、移動した2行目にログをライトしてるから、カウントアップにならない
対策としては、ライトの直前でファイルの先頭へシークする
>>44 そんな感じだな
つまり
>>41が書いてるように、open()とclose()の中をどっちかだけにするか、
現在位置を戻すかだな
あと、r+って事はちゃんと対象のファイルは存在してるのか?
ロックが必要
コレでできました。ありがとうございました。
f = open("log.txt","r")
log = int(f.read())
log += 1
f.close()
f = open("log.txt","w")
f.write(str(log))
f.close()
そら、できるわな・・
python2.7.3
wxpython使ってイメージビュアーを作りたいんですけど、
ボタンと画像が重なってしまって、正しく動きません。
http://ideone.com/EUjMf3 どこが間違っているのか、どなたか教えてもらえませんか?
>>49 今すぐに試せないけど、レイアウト self.SetSizer(root_layout) してみるとどう?
51 :
49:2014/03/12(水) 00:45:15.13 ID:dsbQZ8Cz
文字入力ダイアログを表示して入力された文字を返すにはどうすればいいですか?
今のコードはこんな感じですが不要なウインドウを表示させないようにしたいです
import tkinter as tk
import tkinter.simpledialog as sd
class main_window(tk.Frame):
def askstr(self):
return sd.askstring("test askstring", "input", initialvalue="hoge")
root = tk.Tk()
mw = main_window(root)
print(mw.askstr())
root.withdraw()
WindowsでPythonのパッケージをインストールするとき、
pipだとエラーが出るのでGohlkeさんのインストーラを使うことが多いんですが、
virtualenvを使っていて仮想環境の中にパッケージをインストールするときはどうしたらいいんでしょうか?
3.x系より2.7系の方が入門サイトが多くてオススメだと聞いたんですが、対応しているモジュールの数など、他に利点ははありますか?
>>56 >モジュールではなくeasyinatall や ipyhonのような追加機能でした
>>58 ぱっと見わからなかった。
色んなOSでの操作を同時に説明してるんですね。
を参考にpython勉強してみます
ありがとうございました!
>>55 Windowsでpipとvirtualenv試したら普通に使えたよ
>>> import sys
>>> sys.path
['', 'C:\\Windows\\system32\\python33.zip', 'C:\\Users\\panmatsuri\\test_env\\DLLs', '
C:\\Users\\panmatsuri\\test_env\\lib', 'C:\\Users\\panmatsuri\\test_env\\Scripts', 'D:\\Prog
ram\\Python33\\Lib', 'D:\\Program\\Python33\\DLLs', 'C:\\Users\\panmatsuri\\test_env',
'C:\\Users\\panmatsuri\\test_env\\lib\\site-packages']
Pyramidのサンプルも動いたよ
(test_env) C:\Users\panmatsuri>python test_pyramid.py
127.0.0.1 - - [14/Mar/2014 22:11:51] "GET /hello/me HTTP/1.1" 200 9
そのvirtualenvの中にPILとnumpyとscipyいれてみて
じゃあanacondaを入れましょう
>>56 騙されるなよ
Python3はまだ早い
あと2年待て
>>63 公式は、来年で保守終わる予定だよ。read PEP 373
mechanizeはpy3対応してないんですか?それで2係から移行できないでいます。
>>65 してないし、しないよ。賭けてもいい。
根拠はgithubのソースツリーが2年間全く更新されてないから。
無理に移行しろとは言わないが、
最終的にはそのまま心中するか、
Rubyistに転生することになるだろう。
今までご苦労だった。安らかに旅立てよ。
3系ってそんなにヤバいの?
処理速度も2系より遅いとかなんとか。
It's
71 :
デフォルトの名無しさん:2014/03/15(土) 22:17:08.65 ID:v9COd3Iu
Python3系ってあんまり浸透してないの?
どういう状況になると浸透したと言えるのか基準がないので何とも
>>71 浸透という意味をどういうレベルで捉えてるのかはわかないけど、
Pythonのメジャーなフレームワークは既に対応してる
Windows、MacではPython3ノインストーラが用意されている
unix系OSのinstall pythonでPython3が入るところまではいってない
一部のOS、ディストリビューションではinstall python3で入れられる
日本で比較的メジャーなRedHat系ディストリビューションの実験場であるFedoraprojectでは
今年の年末から来年にかけてリリースされるバージョンでPython3がデフォルトになる予定
その結果はいずれ、RHELに取り入れられ、派生ディストリビューションであるCentOSなどにも反映される
個人的な感じではinstall pythonでpython3が入るようになったらpython3浸透したなぁって感じるかな
あと、自分は制約がないなら3使う
俺の基準としては・・。
RHL(CentOS)とDebianにデフォルトで入ったらシェア的に浸透したと言えるかなって思う
現状としてDebianには入った
RHLは驚愕の2.4.3だ
WindowsXPよりこいつらの方が潜在的に危険だと思えてならない
>>72 ・2 と 3 どちらがいいの?という質問が起きない
・ごくまれに質問があっても、あえて 2 を選ぶ価値は
どこにも無いことが住人達の共通認識なので、話題や議論にならない
こんな状況(現状は、程遠い)
RHやDebianでPython3がデフォになるのはディストリの中では最後でしょ。
最大多数派のUbuntuとその派生組や、他にArchLinuxとかはとっくに3がデフォになってる。
皆3使ってると思ってたんだが…
ごく短い使い捨てコードしか書かないので正直どっちでもいい・・・
前にもこんなこと書き込んで若干笑われた(?)けど google app engine が3未対応でちょっと不便
>>76 クライアントユーザーや木っ端ディストリに何が入ってるかなんてどうでもいいよ
サーバーの覇権ディストリが大事なの
全てといってもいい
Fedoraはデフォルトが3じゃないってのは意外だったな
Python2を使っている人がPython3を使う理由はない
面倒を背負い込むだけ
新規に始めるのならPython3でもよい
問題になる可能性は少ない
言い換えれば全くの新規プロジェクトやるのならPython3でもおk
やりたいことに関する対応モジュールあるの確認してからなら3でもいいよ
超初歩的な質問なんですが、こういう事がしたいからこのモジュールが必要っていう知識はどうやって身につけるんですか?
ggrks
86 :
デフォルトの名無しさん:2014/03/16(日) 09:53:15.18 ID:mx8OaDrZ
すべての答えが書いてないとダメなんだろうねこういう子
87 :
デフォルトの名無しさん:2014/03/16(日) 10:14:00.29 ID:dno/6804
>>84 俺はpypiで単語検索して引っかかったやつのリファレンス見るけど。
初心者抜けるか抜けないかぐらいのレベルだから、日本語で使ってる人がいたら参考になるのでなおよし。
そこまでくると初心者どころかこのスレ卒業のレベル
プログラミングはなにか?というところから始まって最終的にはPythonをほぼ完璧にできる本ってありますか?
何か一冊で終えたい気持ちはわかるが
それはダメだな
本の前提や目的が一見同じでも実際には顕示されないこまい前提や目的がそれぞれ異なっている。
最低三冊から五冊は読みたいところ。
ま、ファイルを読み込んで加工して書き出すとか、そんなレベルでいいなら
本なんかいらんけど。
>プログラミングはなにか?というところから始まって最終的にはPythonをほぼ完璧にできる本ってありますか?
あと、これができる本があったとしても、初めてプログラミング勉強するっていう人にわかり易いとは限らない
ほんと、仮の話だからね
まず、英語を勉強します。
というか書いたり話したりはいいとしてもざっくりでも読めないと話にならない。
そういや強制IDになったんだな
>>94 これこれ
Pythonやる上でもっとも重要なのは英語ドキュメントが読めるか読めないかだよね
掴みの部分は日本語に翻訳されたマニュアルとかチュートリアルで十分な気がする
まったくプログラミング未経験なら話は別だけど基本書籍は不要じゃないかな
でも結局は英語力がないとPythonの蜜を享受できない
97 :
デフォルトの名無しさん:2014/03/16(日) 13:52:23.68 ID:FakKHmGN
未だに3対応してないようなモジュールならメンテ期待できないし使わない方がいい
pythonの2と3の違いってなんかPHPのマイナバージョンの違いよりもだいぶマシにみえる。
99 :
デフォルトの名無しさん:2014/03/16(日) 14:52:24.98 ID:H5QOtwKg
PythonはHSPのような言語なんだよね。
初心者が最初に学ぶ言語として良く出来てる。
ヒエラルキーの最下層に位置するので人口も多く、情報も多くなることが期待される。
こういった良いこと尽くめの言語なんだけど、所詮は入門言語なので、
いつまでもこれに縛られるのは間違いだと思うよ。
特に世界を変えるような力を秘めた人にとっては。
たかが言語のために、力を正しく使うことなく一生を終えるのだとしたら、
世界にとっても損失です。
世界を変えるような力を秘めた人()
>>99 どういうところが縛られてるって感じるの?
HSPと同列にしちゃうのはどうなんだろ
いまどきの BASIC と言われることもあるのでそんなに間違ってないかも
ただ縦を仕込まないのはいただけない
104 :
デフォルトの名無しさん:2014/03/16(日) 15:38:21.33 ID:ThPC1gUr
python学ぶと自分の生活は便利になります。
でもお金を稼ぐならScalaとJavaを勉強した方が良いかもよ。
こんなことを効くのもアレなんだけど
Pythonってどんな用途に向いてる?
逆にどんなことができる?
小さなツールをパパっと作るにはいいんじゃない?
俺だとテキストファイルの加工とか
webスペースへのアップロードやそのurl取得やら
107 :
デフォルトの名無しさん:2014/03/16(日) 19:06:03.26 ID:H5QOtwKg
あなたのような優秀な人がいつまでもPythonを使っていてはいけない。
109 :
デフォルトの名無しさん:2014/03/16(日) 19:32:55.21 ID:x0sWcvYB
エキスパートパイソン買ってきたー
110 :
デフォルトの名無しさん:2014/03/16(日) 19:35:06.25 ID:ThPC1gUr
Sageはpython使いまくり
世間のフリーの数学アプリかき集めて
pythonで駆動してノートも作れる。
pythonだけ勉強してもGoogle入れんよな、C言語も勉強しないとな
更にいうとプログラム言語だけ勉強してもGoogleには入れないよ。
何でスレが進んでんのかと思ったら...
くだらん議論でスレ無駄にするなよ
ほんと細かい仕事やるときに便利だわ。
おれはメーカーの開発なんだけど、最近はpyvisa使って機器制御してる。
データはxlwtで書き出してる。
veeやらlabviewなんかより手軽にできるし、すげー便利。
簡単なシミュレーションはscipyやらnumpyで計算してmatplotで書き出したり。
pythonはメインで使うよりも、他の仕事を簡便にするツールとして使うとすごい捗るんだよ
ここはくだスレなのでは…?
PyPy3なんて作ってたんだな
知らなかった
117 :
デフォルトの名無しさん:2014/03/17(月) 16:57:07.17 ID:FaJ3OVKT
| ̄ ̄ ̄ ̄ ̄ ̄ llヽ
| ┏───┓ ‖|
| │読むんだ│ ‖|
| ┗───┛ ‖|
| ‖|
| ‖|
| ‖|
|______‖|
) ≡≡≡≡≡≡)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
。
メモ帳からvimへ移行しようと思うのだが、最低限やっとく設定やダウンロードってある?
ない!
メモ帳からなら、ない!
たかがメモ帳からvimクラスに移行しようとする奴が
メモ帳とは別世界を求めるなら
1.その差異に感動し
2.どう実現し得るか?
くらい調べながら移行するだろ
そういう希望もやいなら
なにもすることはない!
そもそもメモ帳から移行しなくてよし
素晴らしいメモ帳で書いていきましょう
121 :
デフォルトの名無しさん:2014/03/17(月) 19:45:54.80 ID:pLvPbkRu
>>92 これ難しいな、ドットインストールじゃだめですかね?
122 :
デフォルトの名無しさん:2014/03/17(月) 19:47:10.72 ID:pLvPbkRu
>>92 これ難しいね、どっとインストールじゃだめですかね?
month = ['JAN', 'FEB', 'MAR']
というリストが存在する場合
['2014_JAN', '2014_FEB', '2014_MAR']
という結果を得たいのですが,どうすればよいでしょうか?
['2014_' x for x in month]
で一応得られるのですが,例えば関数等で同様の結果を得ることはできますか?
map(lambda e: '2014_' + e, month)
でも
>>123 のほうがいいかと
['2014_' + x for x in month]
だよねたぶん
>>123 同じく。内包表記の方が柔軟※なので、それでいいと思うけど。使い所あるかもしれないので、一応、他の方法も挙げてみる。
# 例えば、monthは小文字にしたいとなった時の、コード変更の手間。mapだと入れ子になってしまう。
map("2014_{}".format, month)
map("2014_".__add__, month) # 非推奨
pythonは複数のテキストやバイナリのシーケンスを与えるとくっつけてくれるからいいよね。
128 :
123:2014/03/17(月) 23:16:21.76 ID:s4y1IRNR
ご指摘の通り
['2014_' + x for x in month]
です.
なるほどmap関数を利用するのですね.
内包表記は可読性という意味で若干抵抗があるのですが,
こちらのほうがいいのですね.
map関数も参考になりました.
ありがとうございました.
str='日本商店 東京菓子店前'
のような、連続した全角空白文字を半角空白文字に置換したいのですが、どのようにすればいいのでしょうか?
reg = re.compile('\s+')や
reg = re.compile(' +') <-全角空白を入れています
とした後に、print reg.sub(' ', str)としましたが、全角空白が取り除かれていませんでした
自分の参考しているcsvファイルには、連続した全角空白だけでなく、半角空白も混ざっているかもしれません
このようなものを全て、一つの半角空白文字へ置換したいのですが、どのようにすればいいでしょうか?
宜しくお願いします
>>129 re.sub(r'\s+', ' ', str)
原因が文字エンコーディングだったら今どきpython2とか使ってるお前が悪い。
時代はパイズリ
パイ2じゃー気持ちよくない
>>130 すみませんが、出来ませんでした
>原因が文字エンコーディングだったら
ここが良く分かりませんが、文字コードはUTF-8です
Python2使ってるだろ?
すぐ止めて
>>129 import re
target = u'日本商店 東京菓子店前'
re.sub(ur'[ ]+', u' ', target)
target が UNICODE 文字列でない場合は UNICODE 文字列への変換が必要
>>134 ありがとうございました
非常に参考になりました
136 :
デフォルトの名無しさん:2014/03/18(火) 23:17:16.72 ID:pLXgt70C
絶対意味分かってないだろこいつ
>>129 スペースをまとめる前の正規化(全角スペース・記号・数字=>半角や機種依存文字の置換)
は、標準ライブラリの unicodedata.normalize が手軽で便利。
import re
import unicodedata
from functools import partial
unicode_normalize = partial(unicodedata.normalize, "NFKC")
reduce_whitespaces = partial(re.compile(ur"\s+").sub, u" ")
normalize = lambda x: reduce_whitespaces(unicode_normalize(x))
print(normalize(u"12−3 ")) # => 12-3 (株)
ライブラリが対応してるしてない云々の「前に」絶対詰まるんだから
ライブラリを理由にPython2を薦めないで欲しい
そんなの後からやればいい
>>138 Pythonを知らないゴミは黙ってください
2を使いこなせない人が必死ですね
ほらみろ
新しいものを使いこなせない頭の凝り固まった向上心のない人のレスが
これほどまでの不快感を生む
143 :
デフォルトの名無しさん:2014/03/19(水) 01:09:18.76 ID:+MyuchWZ
日本語を使うなら、2一択。
3はまだ無理すぎ。
Hello World!レベルなら3でもOK。
実用はまだ無理。
pythonに限らずム板の盛り上がってるスレはみんな初心者スレだよね
この初心者スレというのは馬鹿な質問者とカス知識で語りたがる自己顕示欲野郎が入り浸るム板の癌
もうこの板には上級者がいなくなっちゃったね
>>144 そういう
お馬鹿で不愉快な仲間たちのいるスレ来なければいいのに。
どうして書き込み続けるの?
「俺なんか凄いんだぞ、お前らなんか、チンカス野朗だもん」
と言いたいのかな
君も頭良いとも思えない書き込みだけどね
ていうか精神病かなあ
何故って固執が激しいようだから
>>145 そうやって図星つかれて発狂してるから初心者スレは糞のまま
時間をかけてゆっくり糞化していったんだよ
スレ全体の雰囲気を考えない奴がじっくりとスレを荒廃させていった
くだらない質問スレ(超初心者用)なんだから、くだらない内容で当然
>>146 わはは、きみ精神病だろ
図星も何も俺はプログラミング教本書いてるし市販アプリも出してきたし
講演もしてきたし
君、精神病ならではの勘違い思いこみ激しすぎ
いやぁ、笑わせてもらいました
>>146 上級者のあなたが上級な答えでどんどん回答していけばこのスレも上級なスレになりますぞー!
>>147 Python関係で息してるスレなんてここぐらいだろ馬鹿
しかも超初心者用とか謳ってるし、この板ではPython使いはこの程度の馬鹿しかいないってことだろ
こういう糞スレしか勢いがないことに恥を感じろよ
>>150 中上級者用の新しいスレを立ててそっちを盛り立てようと改善の努力をせず
超初心者スレでお前らは馬鹿だの自己顕示欲野郎だの、何の役にも立たない
罵倒をしている方が恥ずかしいと思うけど
自分では何も出来ないし、するつもりもないくせに
文句ばかり言ってる新入社員みたいで痛い
パイソンって
オッパイしか触れなくて損するんてすか?
俺、マンコも触りたいから迷ってます
わははは
>>152-154 こういう奴を大量に抱え込んでるのがPythonスレ
今大量にあぶりでちゃったね
高尚な話をしたいんなら別スレだね、ここにはアホしかいないことを自覚して続けるべき
まずこのスレを読んで糞初心者とろくに回答できない初心者がなんか言ってるレベルの傷の舐めあい程度のスレだということは明らか
こういうスレで大真面目に何が得られると期待している輩のほうがよほどおかしい
だったらさっさと出ていきなよ。
>>155 あらら、精神病君、まだいたんだ
精神病の奴は精神病かどうかについて答えんのが特徴。
さあて、パイソンしないでマンコグリグリするぞぉ
無論、言語は馬鹿には使えないScheme
Lispやると東大女とやれると最近もっぱらの噂だぞ?
どうだ?羨ましいか?
よし、オッパイだけで満足できない奴はLispやれ
ただし、バカならやめろ
オッパイで満足してろ
やっぱID付いてると解り易くていいな。
ID:wMu611r4みたな何の生産性もないレスを投下していくだけにアホは
出て行ったほうがいいよ
それは同意だ
俺のように役に立つ書き込みをしろ
今ならLispの基礎のための書籍を原著でも邦訳でもネットからダウンロードできるぞ。
ただだぞ!
無料で東大女とやれる基礎をつけられるんだぞ
The little Schemer
On Lisp
SICP
の順書でやれ
これでおまえも俺と穴兄弟だな
import numpy as np
arr = np.array([
[1,2,3],
[4,5,6],
[7,8,9]
])
このarから[
[1,2],
[4,5],
[7,8]
]
とスライスするにはどうしたらいいでしょうか
>>163 Python以前の問題
本を読むことも出来ない池沼が着ていいスレじゃない、
お前の頭の悪さをどう改善するかが最重要課題
こいつに回答する人間が同程度のレベルだということを自覚しろよ
遥か上をいくプログラマはこんな馬鹿に相手するだけの価値はないんだからよ
↑ほらな、こんなゴミ回答しか出てこないだろ
これが
>>163が理解できるのか知らんが
再質問なんかしてスレを汚すことだけは許されんな
>>166 うまくいきました!ありがとうございます
うまくいきました(笑)
とりあえず回答もらったからって感謝する馬鹿回答者
うまくいくはずもない嘘回答で結局解決できず馬鹿を見る
再質問するのだけは止めようね、みっともないから
こんなゴミ回答で出来たってことが恥ずかしくない?
これだからPython信者て思われても仕方ないね
ゴミだからしょうがない
>うまくいくはずもない嘘回答
>こんなゴミ回答で出来た
論点変わってるんですがそれは大丈夫なんですかね
>>172 あっさりと解決してもらったはずの用無し質問者がまだうろついてる
ほら何も言い返せない
へー質問しにきたと思ったら実は荒らしに来たの?
この馬鹿質問者低レベルな質問しといと嫌がらせに変身したよ
理解不能です
>>171←これ、かなり劣等感まみれ人間みたいだな
超初心者用スレで何言ってんだか
ひょっとして既に精神病?
どう?精神病ですか?違いますか?
悔しくてID変えちゃったの?ww
用が済んだら早く出てけば?
スレタイに超初心者用ってあるんですがそれは…
自分からつっかかってきといて
言い返せなくなったら荒らし認定ですかそうですか
>>175 あらら、なんだもろに精神病なんだ
背伸びするから劣等感激しくなり、それを偽装しようとするから精神病になったんだろ?
このスレはね、自己顕示欲したいがために勝手に馬鹿が立てたスレなんだよ
まんまと自己顕示欲を満たしてしまったね、このスレの常駐回答キチガイに
仮にそうだったとしても質問者は回答がもらえて
回答者は自己顕示欲を満たせる
誰も損してないんだよなぁ…
ム板を汚し続けてるんだよ、お前らが好き勝手にスレをぐちゃぐちゃにするから
そして上級者がいなくなった
>>177 おーい、精神病はメンヘルスレに行くか
交番襲撃して刑務所入ってな、カス
俺がお前に似合った襲撃法を教えてやるから、
いいか、チンチンおったてて
(肉棒かかげ、国後に上陸せよ、組み伏せ金髪ロシア女)
と叫びながら交番の中でしごけ、ドンドンしごけ
どうだ?お前にでもできる簡単な襲撃だろ
さあ、いってこいカス
また自己顕示欲回答を阻害されてイライラしてる常駐回答マンか?
精神病はお前のほうじゃねえの?スレにへばり付いて回答しまくるとか考えられん
上級者は愛想尽かして消えちゃったんだよ
歴史的経緯はしらないけど
今こうして超初心者用スレがあるんだから住み分けできてるでしょ
質問したい超初心者でもなく回答したい訳でもなく
何がしたくてこのスレ見てるんですかね…
超初心者スレしか重要がないほどPythonも信者も廃れたって事だよ
少なくともこのム板ではね、あるだけ無駄だからこのスレは削除すべき
だめだ話が通じない
この季節はどこの板にもこんなのが湧くので
絡まずにスルーしてればいいですよ
今のほかのPythonスレ見てみ、みんな死んでるスレだよ
勢いがあるのかこういう糞質問と糞回答をするだけのスレ
ム板のPythonはこの程度
荒らしに構ってはいけない
さんざんわけのわからない弁解しておいて今更荒らしに構うなですか
これはもう私の自動的な勝利ですね
>>184 おやおや、どうして答えない?
精神病なのかどうか?
ほら、答えな
それと誰かと俺を混同しているようだが文体などからの判断力がかなり低いようだな。
ようするに馬鹿だろ?
偏差値どのくらいだった?
無論、計測した機関名込みで言ってご覧?
はい、精神病ですか?
さて、偏差値はいくつでしたか?
(バカで測ったことなかったり?)
さあ、答えてみな、カス君
俺と混同してるとか言っておきながらIDが単発なのはなぜでしょうね
>>194 うわっ!
精神病かどうか答えないな、
それは精神病の実は特徴なんだよ
偏差値にも触れないな
それは劣等感の現れなんだよ
さて、Idがコロコロ変わることについてなんのの知見もないんだな。
ググレカス
(バカ向け検索ヒント
emobile id被り idが変わる)
さてさて、精神病で低偏差値で無知で
よく生きてるな?!
わはは!!!
>>191 うわぁこんなの相手にしてたのかと思うと恥ずかしい…
精神病じゃねえよ
どうせスマホでIP変えまくってんだろーが
意図的にIP変えまくりのキチガイが人を精神病呼ばわりスンナ
必死を貼られまいと3回線用意しても無駄ですねこれでは
>>197 わはは
低偏差値で馬鹿だけど精神病ではないってか?
おまえ、ほんとにわかりやすい馬鹿丸出しだな
ひょっとして高校中退?
>>198 おお、教えてやったのに精神病だからわからなかったな。
ヤッパリ精神病しゃないか!
自覚がないのか?
精神科言ってこい。
idを意図的に買えるのではなく、
idは割り当ての関係でコロコロ勝手に変わるもの
もう、精神病だと一度思い込むとそここら離れられない症状がもろでてるな、君
病院いってこい
頭悪いのは諦めろ、な!
低偏差値君
203 :
デフォルトの名無しさん:2014/03/20(木) 17:47:15.65 ID:jX7CIeWF
芽吹いとるがな
なんで日本の情報系って無能で協調性無いやつが沸くのかね
愚問〜どちらか当てはまらないなら他に行き場があるw
ここ数日暖かいからな
変なのが湧いてきたな
君たちが頭悪いだけじゃないか?
>>209 こういうことをする人って大概、精神病だろ?
わざわざ粘着して調査公表
ねえねえ、どういう病名?
入院歴は?
いなくなるまで毎日貼っといて
精神病の人が他人を精神病扱いして騒いでるな。わざわざID変えて。
メンヘラvsメンヘラか
いいぞ争え
import calmness
ここにいるPython馬鹿はインポート寄生虫だろ
脳に寄生虫が巣食っててるから支離滅裂な回答してくる
よほど慌ててんだな
217 :
デフォルトの名無しさん:2014/03/21(金) 17:39:52.10 ID:KG37XIJe
pythonエキスパート読んでて
appendって使わないんですか?
>>212 でたでた、お前、毎回同じこと言ってる精神病だろ?
id変化の仕組みも理解できず
可能の必然化を恣意と無能によってしてしまうお馬鹿ちゃん
馬鹿だから言われていることを理解できずに
「だって、自演だもん!」
としか言えないクズ
しねよクズ
ID変えさえすればこういう↑精神病の粘着荒らしは問題視されないのかね?
>>220 俺が精神病?笑わせてくれるな
よほど三流校出身者だろ?
判断が酷すぎる
バカは黙って引きこもってろ
すくなくとも文体から同一人物であることは自明
python3.x系のを一つのexeにまとめる方法はまだ無いの?
PyInstallerは対応してないしPy2exeは一つにまとまらないし
224 :
デフォルトの名無しさん:2014/03/22(土) 00:11:44.74 ID:Mt3jN67W
自分が知らなければ「まだ」なのか
ほらPython馬鹿はこれだ
>>222 自明のいう言葉を安易に使うあたり
きみ、精神病だろ
ここ、精神病でかつ無能なのご徘徊してるな
所詮、バカでも挑戦できる言語スレだな
>>226 > 自明のいう言葉
かみかみやん (w
http://pastebin.com/1jUzW8qx これを実行すると下のエラーが出ます
>File "1.py", line 198, in <moduke>
> print "%d: %s" % (i, volumekeys[key]["title"])
>UnicodeEncodeError: 'cp932' codec can't encode character u '\2014' in position 1
>5: illegal multibyte sequence
具体的にどうすればいいのか教えて下さい。
ヤフーのトップから以下の要素を取得したいんですが、htmlの要素に日本語がある場合どうやって取得できますか?
以下のソースだとNoneになります。。
<em><span title="動画" class="iconVideo">動画</span>Vimeo</em>
import urllib
from BeautifulSoup import BeautifulSoup
source = urllib.urlopen('
http://yahoo.co.jp/').read()
soup = BeautifulSoup(source)
print soup.find("span",{"title":u"動画"})
エンコード指定しろ
euc-jpとかutf-8とか
日本語扱いたければ"u"つけろとかいう
断片的なことしか理解してないんだなこれは
>>230 source の中に目的の要素が入ってるか確認してみて
open("index.html", "w").write(source) とかで
soup = soup.decode('utf-8', 'replace')
soup = BeautifulSoup(source, fromEncoding='utf-8')
色々試したんですけどうまくいかないので削ってました。
>>233 要素は間違いなくありました。
日本語要素でなければ取得できましたので、エンコードの関係だと思います。
>>234 試してみたけど soup.findAll("img", {"alt": u"写真"}) は取れる
> 要素は間違いなくありました。
ブラウザで開いてソース閲覧とかしてない?
もしそうなら
>>233 で保存したソースについて確認してみて
javascriptで生成してるっぽいね
Seleniumの出番か
>>236 本当ですね。
保存したら古い感じのYAHOOが表示されました。
UA指定してないからとかじゃなくてjavascriptですか・・
>>237 Selenium調べてみます!ありがとうございます。
書き込み時間が完全にニート
つまり完全無欠ってことだな
おそろしい
243 :
デフォルトの名無しさん:2014/03/23(日) 01:31:21.55 ID:BoG2P7C1
つまり読むんだ
classを定義するとき、Javaみたいにprivateやprotectedなスコープの設定はできますか?
モジュールの中からでしか使えないclassを定義したいです
ついでに、classだけじゃなくてモジュールに定義する関数も、モジュール外からアクセスさせたくないです。
アンスコ、アンスコ!
アンスコってclassにも有効かしらん?
アクセスすると例外が起きるような機能を想像してるなら、そういう機能はない
アンスコついてたらアクセスするの控えてねってだけ
ゴミPythonはじだいおくれだからさっさと移行
質問禁止
なるほど
紳士協定っすね
>>250 何に移行すりゃいいんです?ま、まさかRubyとか言わないよね?ガクガク
GAEとdjangoに関連した質問なのですが、どなたか教えてください。
今、
http://engineer-intern.jp/archives/8627のチュートリアルをやっているのですが最後で躓いています。
プロジェクトのフォルダで python manage.py runserver を実行しても、
”Exception:Couldn't get applid. Is your app.yaml file missing? Error was: cannnot import name dev_appsrver”
というエラーが出ます。
ちなみに、GAEのLauncherから”Run"すればブラウザでlocalhostに接続できます。
このままではdjangoの開発が進まないと思うのですが、どうすればよいでしょうか。
どうかよろしくお願いします。
>>252 馬鹿には無理すぎる言語なので
このスレで質問する前にまず勉強しろ
回答がついても、そいつは馬鹿な質問に答えられるだけしか能力をもたないクズだから
この手のスレで質問していいレベルの質問ってどんなんだろうな
いい機会だからお前例示してみてよ
>255
お前こそ糞回答しかできないかじりつきPythonグラマー
ゴミうんこ糞糞クズカスが
う〜ん語彙に乏しい感じがなあんとも
ゴミPythonマンはこの程度
いいから本を読め、情弱
>>258 どの本を読めばいいんですか?
アフィリエイト付きのリンクでいいんで紹介してください
とにかく片っ端からPython本を読み漁れ
そしてコードを書きまくれ
そしたらこのスレは全然いらなくなる
262 :
252:2014/03/24(月) 03:36:00.54 ID:yrWGnhR/
知ってたよ
自己解決したので=このスレは必要なかった
つまりここにいるのはゴミばかりで役に立たない
すごい執念だ
煽りだけで具体的なのが何一つ無いのがすごいよな
どうだおそれいったか
269 :
デフォルトの名無しさん:2014/03/24(月) 22:59:49.15 ID:mMxAuWzq
すみません、エラーについて教えてください。
職場にコードを書ける人間が皆無の職場で一人、先週より業務の自動化を進めようとしています。
が、エラーの原因を調べられず、困っています。
環境(バージョン2.7.6.0/IDE Spyder 2.2.5)
Python(x,y) をインストールして使っています。
下記エラーがコンソールに表示されます。
>>> runfile('C:/test/lineprofilev0.1a.py', wdir=r'C:/test')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile
execfile(filename, namespace)
File "C:/test/lineprofilev0.1a.py", line 35, in <module>
second = strip(re.split('\t', inline)[1])
IndexError: list index out of range
>>>
必要になるかわかりませんが、このようなコードを書いています。
http://ideone.com/qsefJy 作成中のゴミコードで恥ずかしいですが・・・エラー対応の他のアドバイスもいただけると嬉しいです。。
>File "C:/test/lineprofilev0.1a.py", line 35, in <module>
↑のファイルの35行目の
>second = strip(re.split('\t', inline)[1])
↑のコードで
>IndexError: list index out of range
↑リストを範囲外のインデックスで参照してる
例えばリストの中に値が2個しか入ってないのに
100番目を取ろうとしても駄目なことは理解できんだろ
後は頑張ってね
>>269 あんま詳しく見てないけど、空の行を読んでsplitしてるから結果のリストが参照の範囲から外れてる、とかじゃない?
272 :
デフォルトの名無しさん:2014/03/24(月) 23:14:04.77 ID:mMxAuWzq
>>270 ありがとうございます。
もう1つエラーがあるのですが、こちらはどういう意味かわかりますでしょうか。
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile
execfile(filename, namespace)
このエラーのせいで、リストに値が入らず、教えっていただいた2つめのエラーが出ているような気がするのですが・・・。
1つめのエラーの原因が見当もつかず、切り分けもできずにいる状態です
。
馬鹿には無理
274 :
269:2014/03/24(月) 23:17:07.86 ID:mMxAuWzq
読み込むテキストファイルは以下のような数値の組が5000行ほどです。
0 204.3333
1 216.3333
2 230.6667
3 237.3333
何かの記録に挑戦してるのか知らんがちょっと単調だな
>>272 それはIDEの何かでエラーになってる
そのエラーのせいで二つ目のエラーが起きてるようには思えない
馬鹿には無理すぎる言語なので諦めてください
278 :
269:2014/03/24(月) 23:27:40.84 ID:mMxAuWzq
>>276 ありがとうございます!
思い込みで1つめのエラーばかり調べていました。
読み込み対象フォルダ内に.txtがつくショートカットファイルが1つあり、
それを読み込んでいたかも知れません。
もう少し調べてみますが、また進めそうです。
>>278 お前には一生かかっても無理
プログラミングなんかやめろ
ドカタの運命だから
>>272 見当違いだったら申し訳ないが、新しくファイル作って、全文コピーして改めて動かして見て。
俺もspyder使ってて同じようなエラーが出て困った記憶がある。
その時おれはwinpythonに付属のspyder使ってた。winpythonはUSBメモリとかで持ち運びできるポータブル形式のpythonなんだけども、編集中にUSBから抜いたりするとそんなことになった気が…
その時は改めてファイル作ってコピペしたら動いたんだがどうだろう。
>>280 Pythonを知らないゴミが回答してんじゃねーよクズ
消えろチョウセン人、スレを汚すなクズ野郎
お前はさっさとオナニーコード書いてバグだして糞して寝ろ
関係ないけど .txt で終わるかどうか判定だけなら file.endswith(".txt") がいい(たぶん)
>>282 たぶんじゃねえよ馬鹿、じゃあ答えるな
回答にもなってないし、知識のないアホは来るな
そろそろアク禁発動しそうだな。
コイツが俺と同じプロバイダでありませんように・・・
>>284 知識のない馬鹿は来るなって言ってるだろうが!
マジ迷惑なんだよ、お前みたいな横やり野郎は
うざいだけ、自覚のない荒らしだろお前
>>283 コテつけることも出来ないゴミ屑がしゃしゃり出るんじゃねーよ
そんなに叩かれるのが怖いの?
人のことボロクソ言うくせに自分が叩かれるのは嫌とかなめてんじゃねーぞ糞ニート働けや屑
>>283 敢えて相手する(以降は一切相手しない)けど、
混乱を避けて関係ないけどと前書きしてちょっと役立つかも知れない情報を足すことを非難される謂れはないし、
たぶんの但し書きにしても不必要な断定よりはよほど誠実な上他の人が訂正してくれる可能性だって開いてると僕は思う。
そして一切建設的な話をせずにそういうこと言ってるだけの貴方が口を出す資格もない。
僕のことをアホって言うならそれはいいけど、僕や彼のために間違ってるなら訂正してよ
>>287 ふざけんな、糞みたいな嘘情報を吐いておいて
正義面すんな、スレを汚しておいて酷い言葉だな
働けゴミ屑ニート
291 :
269:2014/03/25(火) 00:15:40.04 ID:ZcEuDk3W
アドバイスをありがとうございます。
煽りの人は非表示にしたので、IDも確認できなくなっています。
>>280 .pyファイルを新規作成してみましたが、エラーは継続して表示されました。
ただ、
>>276 の方のいうように、このエラーが出ていても処理は進んでいる
ようなので、今回は無視しようかと思っていましたが、まずいでしょうか。
>>282 ありがとうございます。調べてみます。
ちなみに glob.glob('*.txt') とでは、どちらがオススメというのはありますでしょうか。
別のエラー対策のために調べているとこれが目について、これに変えようかと思っていたのですが・・・。
>>201 おいチョーセンヒトモドキ調子に乗るなよ!
てめーみたいなクズがいるからゴミ質問者を呼び寄せてるんだろうが
マジで低能さを自覚しろよな、それが出来ないからこのスレにいるんだろ?
294 :
269:2014/03/25(火) 07:58:26.87 ID:ZcEuDk3W
>>293 2つめのエラーは、目的とは別のファイルを意図せず読み込んでいたことが原因でした。
1つめのエラー(IDEのエラー?)は、原因は不明ですが、動作に影響を及ぼさないように見えるので、放置しようかと思っています。
>>294 ゴミチョーセン人入りましたー
Pythonやってるゴミはこんなかんじの質問をする馬鹿野郎です^^;
レイシストが人のことゴミって言ってますね・・・
レイシストなんていませんよ
ゴミは人間じゃありませんから
>>298 c:\Python33\python.exe setup.py とか
py -3 setup.py とか。
インストールできてないと思ったのは勘違いでした
すみません><
教えて下さい。
nameという多数項目があるリストに共通の変数を指定したいんですが、
以下のようにすることってできますか?
abc = '共通ワード'
name = ['%sあああ',
'%sいいい',
'%sううう',
'%sえええ',
'%sおおお'] % abc
word = '共通ワード'
names = ['%sあああ', '%sいいい', '%sううう', '%sえええ', '%sおおお']
[name % word for name in names]
>>302 すみません、よくわかりません・・
names[0]はどうやって取り出せますか?
[name % word for name in names][0]
names = [name % word for name in names]
names[0]
>>304 ありがとうございます!理解できるようにがんばります
辞書型について、値からその値に対応するキーを取り出す方法はありますか??
どうぞよろしくお願いします。
dic = {'a':1,'e':2,'v':3,'k':4,'d':5}
print [k for k, v in dic.iteritems() if v == 2]
値がユニークだと保証されてるなら、
逆引き用に 値=>キーの辞書を準備する。
全部の値を調べるのは、効率よくない。
310 :
デフォルトの名無しさん:2014/03/28(金) 09:39:37.44 ID:mS7OAMes
datetime.datetimeにメソッドnowが含まれているか判定する方法を教えてください
以下コードではエラーがでてダメでした
import datetime
print("now" in datetime.datetime)
>>> import datetime
>>> hasattr(datetime.datetime, "now")
True
GUIをxmlとかで定義して書くフレームワークってあります?
pyqtとかはできないですよね
>>312 Qt の UIファイルも XML だよ
GUIアプリ作ったことないんですけど
デザインの細かい微調整はcssで書くんですか?
mxmlとかじゃないの
>>314 Qt だったら、スタイルシートをサポートしてるので cssで書けます
微調整では、調整したい部分がスタイルのサポート外の項目だったりすると
独自にレンダリングする事になる場合もある。HTML/CSSと比べると若干限定的。
>>316 おお、cssで書けちゃうんですね
挑戦してみたくなってきましたありがとうございます
318 :
デフォルトの名無しさん:2014/03/29(土) 17:15:57.51 ID:HKwZs3/Z
あるサイト用にruby、phpのスクリプトからも呼び出されるpythonスクリプトを書いています。
pythonスクリプト内でsys.path(インクルードパス)を追加し
自作モジュールを読み込んでいるのですが
Rubyからの呼び出しでは正常に動作するものの
PHPからはImportError(モジュール読み込み失敗)が発生します。
呼び出し側の言語によって挙動が異なる理由がわからず困っています。
# python(common.py - python2.6.6)
sys.path[:0] = ["my/libraries"]
import my.mod
# from my.mod import MyMod
# rubyスクリプト(CGI - ruby1.8.7)
IO.popen("python common.py","r") do |io|
while line = io.readline do
print line
end
end
# phpスクリプト(PHP - php5.4.5)
# ImportErrorが発生 No module named mod
$handle = popen("python common.py","r");
while ( $line = fgets($handle) ) {
echo $line;
}
pclose($handle);
見た感じsys.pathに相対パスぶっこんでるけどos.getcwdはちゃんとそのPythonScriptのディレクトリにいるのか?
320 :
318:2014/03/29(土) 17:52:19.70 ID:HKwZs3/Z
>>319 スミマセン!実際のスクリプトでは絶対パスを指定しています。
申し訳ないですm(_ _)m
popenに渡すコマンドもcommon.pyの絶対パスを渡しています
321 :
318:2014/03/30(日) 19:28:15.56 ID:5IXyOJ76
解決しました。原因はファイルのパーミッションでした。
自作ライブラリ(python)はCGIを意識したパーミッションにしてたのですが、
PHPに合ってなかったと思われます。
例外メッセージだけじゃなく、最初から詳細なトレースを見てれば・・・orz
それにしてもPIPEでつないだ別スクリプトが
呼び出し側の言語のその種の影響を受けるとは思いもしなかったです。
サーバ移転後の調整だったんですが、移動前は問題なかったので、
なんらかのサーバ設定が影響してるのかもしれません。
●すぺっく
環境:Win7 Python3.3
本人:情報系ではなくバイオでプログラム歴ほぼなし
●やりたいこと
Setuptoolsインストール→Pillow インストール
pypi.python.org/pypi/setuptools#downloads (レベル不足でリンク不能)
からez_setup.pyをダウンロードして
ウインドウズコマンドラインから実行
→python33\Scripts のなかにeasy_install.exeなどができる
まではできたのですが
python3.3上で
>>>easy_install pillow
File "<Stdin>" line 1
easy_install pillow
^
とエラーがでてインストールされてないっぽいです
ぐぐったりはしたつもりですが、何でエラーがでてるかわかりません
ひどく初歩で申し訳ないのですがたすけてくださいm(> <)m
323 :
322:2014/03/30(日) 21:41:20.91 ID:E0lDtgpr
すみませんずれました
エラーメッセージの^はpillowの下でした
コマンドプロンプトから python3.3 を起動して easy_install pillow するんじゃなくて
コマンドプロンプトで easy_install pillow するんだお
もし easy_instal が見つからないとか言われたら PATH 環境変数に easy_install のある場所を記述する
やり方わからなかったらぐぐって
Pythonがはやらないのは日本人にとって卑猥に感じるからだろ
いや英語が・・・そうですその通りですはい。
It's
329 :
322:2014/03/31(月) 00:08:13.87 ID:qgORhrHF
>>324 ちょっと進んだっぽいーーちょーありがとおおー
しかし先が思いやられるよー
現状を報告
コマンドプロンプトでeasy_install pillow
ダウンロード、展開まではできるがインストールの時に
→error: Unable to find vcvarsall.bat
これを回避するためにVisual C++ 2008 Express Edition をインストールする(vcvarsall.batをげっと)
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VCにPATHを通す
vcvarsall.batをVS90COMNTOOLSの指してる場所にコピペ
などやってますが未解決
WindowsだとZIPやインストーラ付きが早い気がする。
Python3は2010だよん
まあ
>>330が言うように大人しくインストーラ付きを使うべき
俺はpip試して、だめだったらeasy_install.最後にバイナリ使ってるわ
334 :
322:2014/03/31(月) 01:14:00.71 ID:qgORhrHF
結局
pypi.python.org/pypi/Pillow/2.0.0から
Pillow-2.0.0.win-amd64-py3.3.exe (md5) をDL→インストール
で出来たっぽいです。みなさんほんとにありがとうございます><
Winつかうのがまちがってるのか??
別に間違ってはいないと思うけどプログラミング環境だけで
みたら何かと面倒なのは確か。Mingwとかもっと成果でて欲しい。
winならcygwin検討するといいよ
338 :
322:2014/03/31(月) 01:48:22.69 ID:qgORhrHF
pillowのインストールはpipサポートしてないみたいでした
cygwinみてみます unixは10年以上前にちょっとだけさわって忘れたけど・・・
eggsは駄目だけどwheelなら行けるよ
コンパイラ入ってないと駄目なのは変わらんが
Python 3でNOPに相当する文ってあるのかな?
一つのソースから、複数のリリースソースを自動生成しているんだけど、
不要な行を出力しないようにすると、行番号が変わってしまうし、
空行やコメントに置き換えると後工程の最適化処理で消えてしまう。
正直、このやり方自体よくないと思うんだが、権限なくてどうにもならん。
C系の言語で言うところの下のような文が書けると助かるんだけど
何かいい方法とか教えてもらえれば凄く助かる。
if (foo)
;
else
bar;
pass
342 :
340:2014/04/01(火) 14:33:37.05 ID:PHZiz/BC
>>341 おお、感動するほど早いレスありがとう。
Simple statementsなんて項目あったのか。
完全にドキュメントの読み落しで恥ずかしい限り。
勉強することはいくらでもあって楽しみは尽きんね。
リスト(タプル)の要素が全部Noneかどうか(None以外の要素が1個でもあるかどうか)を調べるには、
a = [None, None, None]
not [x for x in a if x]
とかくらいですかね?
>>343 すんげーダサいけど
set(a) == {None}
Noneだとあとはall(n is None for n in a)とか
Falseや0でもいいならnot any(a)でいいと思うが
>>344,345
ありがとうございます。
any() は見落としてました。
re.search() の結果のチェックだけなので not any() で行けそうですありがとうございました。
found_coins = 20
magic_coins = 70
stolen_coins = 3
coins = found_coins
for week in range(1,53):
coins = coins + magic_coins - stolen_coins
print('Week %s = %s' % (week,coins))
これは、python for kidsという洋書のプログラムです
子供用のものと思って見くびっていたら、ここでつまづきました。多分英語が読めてないから理解できないのだと思いますが
found_coinsは、20枚のコインを見つけたこと
magic_coinsは、週に70枚コインが増えること
stolen_coinsは、週に3枚コインが盗まれることを表します
質問なのですが
@coins = found_coinsの意図、
A coins = coins + magic_coins - stolen_coinsで、なんでcoinsを両辺に持ってくるのか
というか、全体的に理解できないです。宜しくお願いします。
348 :
347:2014/04/02(水) 23:34:22.35 ID:UvZlR9+v
書き忘れましたが、このプログラムの意図は
週ごとのコインの枚数を、52週分求めようということです
一週間目は20+70*1-3*1=87枚のコインがある
二週間目は20+70*2-3*2=154枚のコインがあるということです
>>347 1
coinsを初期化してるだけ
found_coinsがcoinsの初期値ってことじゃろ
2
coinsが一週間で67(magic_coins-stolen_coins)増えるって意味
coins+=magic_coins-stolen_coins
と同じ
>>347 >A coins = coins + magic_coins - stolen_coinsで、なんでcoinsを両辺に持ってくるのか
Python に限らず手続き型プログラミング言語における記号「=」の意味は、
一般的な数学の「等しい」ではなくて、「右辺の式を評価した結果で左辺を書き換える」になる
いいかえると、この文は等式(あるいは方程式)とは、まったく関係ない
数学の世界だと、変数は一度初期化されれば二度と値が変化することなんてありえないけど、
プログラミングの世界だと、変数とは黒板みたいなもので、いくらでも書き換えできる
この文は、coinsその他変数の値を読み出し、計算し、黒板上に書かれたcoinsの欄を
黒板消しで消してから、その計算結果の値をチョークで書き込みなさい!!という
手順(=命令の並び)を表現している
>>347 coins = coins + magic_coins - stolen_coins
は
1:coins + magic_coinsを計算する
2:1の結果-stole_coinsを計算する
3:左辺のcoinsを2の結果に入れ替える
みたいな感じになる
352 :
347:2014/04/03(木) 00:19:28.63 ID:XZtGZD8Z
すみませんもうひとつ
なぜ、このようにプログラムを組むと、coinsの値は変わらず、magic_coinsとstolen_coinsの値は変わるのですか?
Pascalじゃ代入式は:=だったね。
>>352 > なぜ、このようにプログラムを組むと、coinsの値は変わらず、magic_coinsとstolen_coinsの値は変わるのですか?
ん?magic_coinsとstolen_coinsはまったく変わってないが?
coinsとweek以外は全部定数だよ
355 :
347:2014/04/03(木) 01:04:05.30 ID:XZtGZD8Z
magic_coinsは一週間に70増え、stolen_coinsは一週間に3減るのですから、変わっているのではないですか?
逆にcoins = found_coinsは、20で不変なのではないですか?
既出だったら申し訳ありません
現在PyScripterを使用しコードを書いているのですが
print("こんにちは世界")と書くとインプリンタの出力画面?実行画面で文字化けを起こします
現在
先頭行# -*- coding: utf-8 -*-
エディタのフォントをMSゴシックに設定
インプリンタオプションを選択、ここでまたフォントをMSゴシック
等対策をとっているのですが一向に改善されず困り果てています
なにか解決策などを指南していただけないでしょうか
print(u'こんにちは世界'.encode('shift-jis'))
かな
>>355 まず、その英語のPython for Kidsより先に、日本語のプログラミング入門書を読んで。
>>355 んん?
まず最初にコインを20枚見つけた
found_coins = 20
一週毎に増えるコインの枚数は70
magic_coins = 70
一週毎に盗まれるコインの枚数は3
stolen_coins = 3
コインの枚数の初期値は最初に見つけた20
coins = found_coins
52週後までのコインの枚数を一週毎に求める
for week in range(1,53):
その週に増えたコイン枚数の合計は、現在のコイン枚数+一週毎に増える70枚-一週毎に盗まれる3枚
coins = coins + magic_coins - stolen_coins
何週目かとコインの合計を表示
print('Week %s = %s' % (week,coins))
増えるのはcoinsとweekだけだよ?
>>357 ありがとうございました
マルチバイト文字を使用する場合はユニコードに変換する必要があったんですね
>>360 #先頭に'-*- coding:utf-8 -*-'を記述,
#ファイルをutf-8で保存した上で
print(u'こんにちは世界'.encode('shift-jis'))
print('こんにちは世界'.decode('utf-8').encode('shift-jis'))
どっちも「こんにちは世界」と出力される
この違いを考えてみるといいよ
windowsのコマンドプロンプトがshift-jis(CP932)なのが悪い
いや、標準エンコードをOSに合わせないPythonが悪いと思う
どちらも違うわ
暗黙に処理されることを期待するのが馬鹿
いや、Python3の標準出力は、コマンドプロンプトに合わせたエンコードに初期化されるから
print("こんにちは世界")だけでCP932出力してくれる
ソースファイルの保存エンコードを理解してない
>>356が悪い
setdefaultencoding
369 :
347:2014/04/03(木) 11:38:15.25 ID:XZtGZD8Z
>>359 朝起きてよく見返して見てやっと分かりました
3000円くらいで買った本なのでここで挫折したくなかったので助かりました
英語の練習も兼ねてもう少し頑張ってみようと思います
ありがとうございます。
他の方もありがとうございました。
www.binarytides.com/python-packet-sniffer-code-linux/
このページ見てパケットキャプチャ作ろうとしているのですが
IPヘッダを人が見て分かるように変換する方法がわかりません
前から4ビット読み込んでversionとかだと思うんですけど
文字列なのか整数なのかわからないです
馬鹿には無理
flask使って簡単なブログを作ったのですがレンタルサーバー上で動かすときは
どうするのが主流なんでしょうか?
今はレンタルサーバー上で python app.py として動かしているのですが
これで何か問題はありますか?
彼の課題はpythonでも英語でもないでしょ
375 :
372:2014/04/03(木) 20:35:55.20 ID:QUZ4kSS9
webprog板で聞いてきます
>2.7で日本語出力
端末に出力する時は、unicodeで出力し、
setdefaultencoding は使わず、実行環境側で環境変数 PYTHONIOENCODING を設定しよう。
encode/decodeが至る所に書かれてるようなコードは、保守性悪くなるし、
3.xへの移植の際に手間になります。
WEB+DB PRESSの特集や関連書籍がほとんどRubyばかりでまるでPythonが存在しないかのような扱いなんですが、何か圧力でもかかっているのですか?バックナンバーを見ると昔は平等に扱われていたようですが…。
君は反響の少ない記事を平等に扱わなければならないという思想なのですか?
それも営利企業が
馬鹿なこと言ってないでRubyを書くのです
>>378 圧力も何も、単純な市場原理だよ。
大きめの書店でRubyとPythonの書籍の数を比べてみな。
3DCGの組み込みスクリプトとか海外のオープンソースのセットアップスクリプトは大抵がPythonで、
今まで自分が触れた範囲でRubyが必要になったことはないなぁ。
市場原理という点では最近のRuby推しは自分には理解できないなぁ。
世界を相手にしたいならPython、鳥取界隈を相手にしたいなら断然Ruby!!
あ、島根県松江市界隈だったw
世界から孤立した言語圏の猿がなに言ってんの?
こんなとこでまでセカイセカイ願望を聞くと思わなかったよw
よほど現実に疎いらしいな
だいたい今まで自分が触れた範囲でって
手前のセセコマシイ世界の話なんて聞いてねえんだよ
見識がせまいですって自慢するのがPythonicなんですかねHAHAHA
>>384 > 世界から孤立した言語圏の猿がなに言ってんの?
その理論だと世界から孤立した言語圏の猿が開発した言語なんてもっての他ですね
>>381 理解できないんじゃなくて、現実を認めたくない君の脳みそが
自己崩壊を防ぐために理解を拒んでいるんだよ。
現実を素直な目で見、受け入れること。
これができれば、何でもドンと来いと言える素敵な人間になれるよ。
わざわざ
そこから出張してやってんだよ
誰が戻るか
unicode表現を文字として表示したいのですが、ファイルから読み込むとうまくいきません どうすればいいですか?
コード
print("\u304b")
with open("test.txt", 'r') as f:
for line in f:
print(line)
実行結果
か
\u304b
使うファイル
http://www1.axfc.net/u/3215521.txt
line.decode('unicode-escape').encode('shift-jis')
>>> with open("test.txt", "w") as fp:
... fp.write("か")
...
1
>>> with open("test.txt", "r") as fp:
... print(fp.read())
...
か
のtest.txtは"か"、
http://www1.axfc.net/u/3215521.txtは"\u304b"
393 :
390:2014/04/06(日) 01:24:21.21 ID:nZKlftef
b=bytes(line,'utf-8')
print(b.decode('unicode-escape'))
これでできました
ありがとうございました
やってることはほぼ同じだろうけど
print( line.encode().decode('unicode_escape') )
でもいける
あと open関数のmodeオプション "r" を "br"にすれば
print( line.decode('unicode_escape') )
だけでよい
引数がlistでlen(list)の数だけsetを作りたいんだけど
どうすればきれいな実装になる?
お願いします〜
>>396 a = [1,2,3]
[set(a) for i in range(len(a))]
解釈が違ったら具体例だして
>>397 ありがとう解決した
おれがしたかったことは
[set([]) for i in range(len(a))]だったよ
スレ建てるまでもない質問スレとマルチポストかよ。
python で書いてるアプリケーションで、 API key みたいなのを使う必要があって、
もちろん完全に隠せるともそうしたいとも思ってないものの、
普通のテキストファイルに平文でそのまま書く (consumer_key='ajg1j4ao41er')
のってちょっと気持ち悪いかなっていう気がしています。
なにか標準的な方法がありますか、
あるいは気にするべきでない(平文でそのまま書くのが良い)でしょうか?
どうせ大々的に使われるようなものではないので、本気でセキュリティ頑張るようなたぐいではないです
>>400 スクリプトのコードを直接読まれる時点でサーバが脆弱性を抱えてる事になるのと、
パスワードの暗号化は複合化するのが難しい事が求められるので
質問自体がちょっと的外れになってる
ただ、WebAPIの認証に必要な情報は当然隠さないといけないから、スクリプトの中に含めるべきではない
設定ファイルをURIでアクセスできないところにおいて、configparserモジュール使ってよみこむようにする
バージョン管理ツールには実際の設定ファイルを登録しないで、サンプルの設定ファイルを登録する
>>401 ふむふむありがとうございます.そういう感じでやってみます
昔このスレで4つの文字の組み合わせを求めるコードが貼り付けられてたと思うんですけど何番目のスレかわかる人いませんか
そんなもの探すよりitertoolsのドキュメントでも見たら
なんだったかなどっかの求人ページの問題
これが解ければ年収1000万ってやつ
CDFGみたいなアルファベット4つの組み合わせのやつ
組み合わせを求めたいんじゃなくて
問題を思い出したいのか
そりゃ失礼した
文字候補'python'からn文字の文字列を生成する(重複なしの場合)
def perm(n, m):
... if m<1:
... yield()
... else:
... for r in perm(n, m-1):
... for x in xrange(n):
... if x not in r:
... yield r + (x,)
def create_word_list_p(n, s):
... return [''.join(s[i] for i in t) for t in perm(len(s), n)]
create_word_list_p(3, 'python') ['pyt', 'pyh', 'pyo', 'pyn', 'pty', 'pth', 'pto', 'ptn', 'phy', 'pht', 'pho', 'phn', 'poy', 'pot', 'poh', 'pon', 'pny', 'pnt', 'pnh', 'pno',
(省略)
'npy', 'npt', 'nph', 'npo', 'nyp', 'nyt', 'nyh', 'nyo', 'ntp', 'nty', 'nth', 'nto', 'nhp', 'nhy', 'nht', 'nho', 'nop', 'noy', 'not', 'noh']
文字候補'python'からn文字の文字列を生成する(重複ありの場合)
def combi(a, b):
... if isinstance(a[0], tuple):
... return [x + (y,) for x in a for y in b]
... else:
... return [(x, y) for x in a for y in b]
def combination(*l):
... return reduce(combi, l)
def create_word_list(n, s):
... return [''.join(s[i] for i in t) for t in combination(*[xrange(len(s)) for j in xrange(n)])]
create_word_list(3, 'python')
['ppp', 'ppy', 'ppt', 'pph', 'ppo', 'ppn', 'pyp', 'pyy', 'pyt', 'pyh', 'pyo', 'pyn', 'ptp', 'pty', 'ptt', 'pth', 'pto', 'ptn', 'php', 'phy', 'pht', 'phh', 'pho', 'phn', 'pop', 'poy', 'pot', 'poh', 'poo', 'pon', 'pnp', 'pny', 'pnt', 'pnh', 'pno', 'pnn',
(省略)
'npp', 'npy', 'npt', 'nph', 'npo', 'npn', 'nyp', 'nyy', 'nyt', 'nyh', 'nyo', 'nyn', 'ntp', 'nty', 'ntt', 'nth', 'nto', 'ntn', 'nhp', 'nhy', 'nht', 'nhh', 'nho', 'nhn', 'nop', 'noy', 'not', 'noh', 'noo', 'non', 'nnp', 'nny', 'nnt', 'nnh', 'nno', 'nnn']
文字候補'python'からn文字の文字列を生成する(重複なしの場合)
def perm(n, m):
... if m<1:
... yield()
... else:
... for r in perm(n, m-1):
... for x in xrange(n):
... if x not in r:
... yield r + (x,)
def create_word_list_p(n, s):
... return [''.join(s[i] for i in t) for t in perm(len(s), n)]
create_word_list_p(3, 'python')
['pyt', 'pyh', 'pyo', 'pyn', 'pty', 'pth', 'pto', 'ptn', 'phy', 'pht', 'pho', 'phn', 'poy', 'pot', 'poh', 'pon', 'pny', 'pnt', 'pnh', 'pno',
(省略)
'npy', 'npt', 'nph', 'npo', 'nyp', 'nyt', 'nyh', 'nyo', 'ntp', 'nty', 'nth', 'nto', 'nhp', 'nhy', 'nht', 'nho', 'nop', 'noy', 'not', 'noh']
すいません見つけました
cgios.com/recruit/index.html
これのコードをこのスレの何番目か忘れましたがcodepadだかideoneだかURLを書き込みしたんですよ
おれが書いたコードなんですがどこで貼ったか忘れたので知ってる方いませんかね
以後、スルーの方向でよろしく
それは各各個人が決めるべきである別に呼びかけなくてもいいよ
掲示板なんだからさ
嫁「お爺ちゃん、さっきご飯食べたでしょ」
爺「そうじゃったかのう…」
416 :
デフォルトの名無しさん:2014/04/07(月) 20:41:22.32 ID:X16BwzyE
スルー了解
417 :
デフォルトの名無しさん:2014/04/07(月) 20:44:41.93 ID:cPHU7Y9F
>>412 スレを全部見て確認。それでも思い出せないならあきらめろ
なんでここ過去スレのリンク貼ってないの
420 :
デフォルトの名無しさん:2014/04/07(月) 22:33:06.18 ID:5wZ1j6dN
嫁さん居るんだ…
数字と文字が入っているcsvファイルを読み込んで、半角全角変換をしてprintで結果を出したいのですが、unicodedata.normalizeを使う場合どう書けばいいのでしょうか?
全角の数字は半角にすると仮定
python2.7.5
Mac OS 10.9です
丸投げ君わろた
423 :
デフォルトの名無しさん:2014/04/07(月) 23:49:01.91 ID:q+HemARZ
>422
ごめんね。最近はじめたばかりなもんで。
unicodedata.normalizeは
import unicodedata
s = 'フガホゲ-%*@ABC'.decode('euc-jp')
n = unicodedata.normalize('NFKC', s)
print s.encode('euc-jp')
csvは
import csv
csvfile = open('hoge.csv', 'r')
reader = csv.reader(csvfile)
header = next(reader)
for row in reader:
print row
csvfile.close()
とか?
シンプルなサンプルコードはググればでるし
なんとなく理解できるだけど、二つを組み合わせようと思うとさっぱりわからんのさ。
425 :
424:2014/04/08(火) 00:10:32.80 ID:lLYfakzY
426 :
デフォルトの名無しさん:2014/04/08(火) 11:35:58.62 ID:fr68/BJc
421です。
>>424 ありがとう。質問のしかたすらよくわかってないかも
unicodedata.east_asian_widthは全角半角を調べるものだよね?
自分のやりたい処理の流れはこんな感じです。
1.CSVを読み込む
2.ノーマライズ(正規化)する
3.printする
print unicodedata.normalize('NFKC',data)
とかすると
TypeError: must be unicode, not listで怒られるし。
文法がおかしいんだろうけど。どうやっていいか分からない
dataに何を入れてるのかも書かないと
428 :
デフォルトの名無しさん:2014/04/08(火) 11:49:06.03 ID:fr68/BJc
>>427 こんな感じです。
# coding: utf-8
import csv
import unicodedata
f = open('hoge.csv', 'rb')
reader = csv.reader(f)
for data in reader:
print unicodedata.normalize('NFKC',data)
>>428 unicodedata.normalize が取る引数は unicode型の文字列
そのコードでは、(unicode型でない)文字列のリストを渡してる
* リストの要素毎にnormalizeを適用する
* 各要素の文字列は decode して unicode型に変換
430 :
デフォルトの名無しさん:2014/04/08(火) 12:34:40.32 ID:fr68/BJc
>>429 ありがとう。何でだめなのか分かった。
でもレスしてもらった事をコードにする知識がまだないから出直してきます...
できないのがもどかしいけど、がんばります。ありがとう
list1 = [
[3, 1],
[2, 3],
[1, 2],
]
これを
1番目を基準にソートする方法
list1 = [
[1, 2],
[2, 3],
[3, 1],
]
2番目を基準にソートする方法
list1 = [
[3, 1],
[1, 2],
[2, 3],
]
forとifで複数行に書かないコードを教えてください
こいういやつって超初心者だからわからないとかじゃなくて
初心者だけどググッて調べるのがメンドクサイからオレ様に教えろくださいってやつか、
ただの質問厨だろ
まず、自分のpythonの環境や、どこまで調べて何が分からなかったか書いてから質問しろよ
虫の居所が悪そうだぬ
DJangoの翻訳って1.4が終わるまで続けるんですか?
日本の公式サイト?は全然進んでないし古すぎるし存在する意味があるのでしょうか?
馬鹿鹿無理
>>> "あ".encode("cp932")
b'\x82\xa0'
>>> b"\x82\xa0".decode("cp932")
'あ'
となりますが82という数値から"\x82"をつくるにはどうすればいいのでしょうか
>>437 b = bytes([0x82, 0xA0])
print(b)
print(b.decode('cp932'))
>>438 ありがとうございます!
bytesってリストも引数にとれたんですね
chr(82) # R
print '\\x' + '82'
442 :
デフォルトの名無しさん:2014/04/09(水) 14:07:51.72 ID:gj8rQfUA
NHKで会見やってるよ
会場から記念パピコ
444 :
デフォルトの名無しさん:2014/04/09(水) 14:18:24.37 ID:gj8rQfUA
読むんだ
おぼちゃんの会見?
必死で真実を訴えるか平気で嘘を付けるかが量子もつれな顔
PythonではCMSで王道な選択肢を教えてください
PHPならWordPress,Drupal,MediaWiki,Dokuwiki,joomlaなど
448 :
デフォルトの名無しさん:2014/04/10(木) 01:06:37.83 ID:QISZ32jk
不自由なヤツ増えたなー
てか本当にCMSが必要なのか微妙な雰囲気が漂う
昔 DB+HTML
最近 DB→固定HTMLを静的に生成
今 CMS
元に戻ってるだけなんだけどな
webクリエーター(ω)が
プログラマからデザイナになってまたプログラマに戻って来た感じ
どうしてもpythonでやるならploneじゃない?
まあ何でやるかはサーバー環境次第な気がする。
PYTHONがWEB制作で使われる機会が少ないのは良いCMSがないから
PHPを選択する人にはWEB CREATORがたくさんいるからCMSがたくさんあるし良質なCMSが生まれるのはあたりまえ
PYTHONを選択する人にWEB CREATORが少ないし、PYTHONを触る人はPROGRAMMERだらけだからCMSの需要もないしCMSを作ろうと思う人がいないだけ
文化の違いだよ
ツールプログラミングではいい言語なんだけどね。
ちょっとした変換や整形で
PHPはコンソールでは使いにくいからPython使ってる。
フレームワークはCMSじゃない
おppy
458 :
デフォルトの名無しさん:2014/04/10(木) 20:35:43.34 ID:1wauUDTZ
cksだよなあ
>>453 時代的に後手に回っただけ
pythonのコミュニティのWebサイトの方がPHP製よりレスポンシブなもの多い
PHPが何処でnode.jsとシェアが逆転するかは見もの。とりあえず、まだ、PHPで大丈夫。
---------------------------
import re
s = 'abcdefg'
p1 = re.compile('file')
def henkan(data):
s = p1.search(data)
if s is not None:
return data
lists = []
lists.append(henkan(s))
print(lists)
---------------------------
上記のスクリプトを実行すると、listsに[None]がセットされてしまいます。
dataが正規表現に該当しない場合は、listsに何も追加したくないのですが
どこを直せばよいでしょうか。
質問する時は
ワンライナーで!スマートな感じでオナシャス!
って付け加えておくといいぞ
12,13c12,14
< lists = []
< lists.append(henkan(s))
---
> lists = [henkan(x) for x in [s] if henkan(x)]
> #lists = []
> #lists.append(henkan(s))
お礼なら、橋本環奈の画像でいいぞ
あ、どっかにあるリストに追加する場合は、lists += [henkan(x) ...]だな
print filter(lambda a: re.search('file', a), ['abcdefg'])
> lists = [henkan(x) for x in [s] if henkan(x)]
henkan(x) で副作用ですね判ります
[x for x in [s] if re.search(r"file", x)]
filter(re.compile(r"file").search, [s])
そのメールアドレスがRFCに適応しているか確認するパッケージをおしえて
あれ?henkan(x)を先に評価するんじゃないのか?ゴメン
既存のCookie を読み取って、書き換える方法教えて。
root とれや
パッケージは見つからないが、Mercurialの中でRFC5322のメールアドレスをパースしてるコードがあるらしい
コピーしてくれば使えるかも
>>472 HTTPサーバーを書けってことですか?
そのcookieを扱ってるのが誰なのか知らないが
仮にブラウザーならproxyを書けばいいですよ
とどのつまりはHTTPサーバーなんだけど
2.7が2020年までサポートされるのは何故ですか?
何でPythonって古いのがすきなんですか?
Pythonって日本で老人を優遇して若者を切り捨てるようなところが似てますね
だからPythonは日本で流行らないんではないのですか?
pythonでさくっとアプリのプロトタイプ書いて
後でCとかで書き直す場合
2系の方が良い?それとも3で問題無し?
478 :
デフォルトの名無しさん:2014/04/14(月) 16:19:52.65 ID:L1qK4Yv9
その程度のリサーチすらできない奴が何を作るって?
馬鹿には無理
>>477 いきなりCで書けばいいじゃないか
どうせCで書くことがわかっているなら
書き直してもいいくらいのみじかいものなら、ますます、最初からCで書けば良い
書き直すのが大変なほど長いものなら、無論、はじめからCで書けば良い
プロトタイプってわかってます?
どうしてプロトをオッパイなめなきゃ損損で書くんだ?
頭悪すぎるの?
GUIツールキット次第じゃね?
まあPythonバインディングは大抵両方揃ってるでしょ。
・・・と思ったらwxPythonとかpyGTKってwindowsバイナリは2.x系しかないのな
PyGTKはPyGObjectに切り替わってっから。
Windows Mac Linuxで動くGUIを作るならpyQtかpySideだと思ってたんですがここの先輩は何を使いますか?
>>486 それでポーカーのアプリとか作ってみたい
pythonでcsvを読み込んで1列だけ書き換えたいんですが
一旦csvすべてをリストに格納して、加工したあとでまたリストで書き出すという手順がふつうなんでしょうか?
>>489 よほどファイルが巨大でない限りそれが手っ取り早いんじゃね?
>>491 そういうものなんですねありがとうございます!!
>>489 書き換えて別ファイルに書き出してった方がメモリ食わなくて良いよ。
>>490 ぶふぁふぁ
いきなりCで書けないヘタレが俺を無能呼ばわり!!
ブファファ
精神病なんだろ
ここの所多いよな
春だからか?
初心者スレにいる奴が何言ってんだか
笑止
Python3.4 から readline の仕様が変わってインタラクティブシェルでTABキーが補完に変わって
面倒なので$PYTHONSTARTUPに以下を実行するファイルを指定してみたのですが、
import rlcompleter, readline
readline.parse_and_bind('tab: tab-insert')
readline.parse_and_bind('M-tab: complete')
TABキーは補完のままで変わりません。
シェル起動後に上記コマンドを入力するとちゃんとTABキーでTAB入力になります。
何が悪いんですかね?
試しに$PYTHONSTARTUPで指定してるファイルに
a = 'PYTHONSTARTUP is applied'
てのを追加して起動したら変数 a にはちゃんと文字列が代入されています。
>>498 kubuntu 14.04b2 標準の Python3.4.0 で同じ現象を確認。これかな bugs.python.org/issue5845
PYTHONSTARTUP 後に読み込まれる site.py で補完が有効になっるみたい
* site.py を読み込まないように、Python -S で起動する
* 端末なら C-v C-i のタブ入力で凌ぐ
* ipython を使う (smart indent)
What's Newや、マニュアルのsiteモジュールの所に、変更の通知と対策方法が書いてあった。
3.4から、デフォルトで補完と履歴が有効になるみたいです。
訂正: PYTHONSTARTUP 後に読み込まれる site.py は、間違いでした。
ソース追いかけたところ、正確には
* site.py が読み込まれるのは、STARTUPの前
* site.py 内で、sys.__interactivehook__ が設定される
* STARTUPファイルが実行された直後に, sys.__interactivehook__ に設定された関数が呼び出される
インタラクティブシェルで文字を打つと補完できますが
その補完候補をpythonスクリプトの中から取得する方法ってありませんか?
>>499,500
いろいろ調べてくださってありがとうございます。
sys.__interactivehook__ のデフォルト register_readline は履歴以外大したことしてないので、
>>498 を関数にして sys.__interactivehook__ に設定したらうまく行きました。
履歴は端末の履歴で十分なのでこれで満足です。
ありがとうございました。
>>501 http://docs.python.jp/3/library/rlcompleter.html#completer-objects 候補の順位を数値で指定しなければならないのがちょっとめんどい。
イテレータにしてほしい。
>>> import rlcompleter
>>> from itertools import count
>>> c = rlcompleter.Completer()
>>> for i in count(0):
... cand = c.complete('a', i)
... if cand:
... print(cand)
... else:
... break
...
and
as
assert
all(
abs(
any(
ascii(
Pythonでブラウザ上で編集できるwikiで一番メジャーなのってなんでしょうか?
504 :
デフォルトの名無しさん:2014/04/18(金) 02:28:16.16 ID:oooZYs7C
moin?
toro.2ch.net/test/read.cgi/tech/1387528488/391-392
誘導されました
python で2chの書き込みツールを作っているのですが
xxxx.2ch.net/test/bbs.cgi へurlopenでRequestした後
書き込みの成功、失敗を判断する為、Response を読もうとするのですが
文字化けしてしまいます。
(「上記全てに承諾して書き込む」の後の画面)
HTTPヘッダでcharset が shift-jis なので、
body = response.read()
#body.decode('shift-jis') #こっちはエラー
body.decode('shift-jis','ignore') #こっち文字化け
で良さそうな気がしますが、何がダメなんでしょうか?
エラーは以下の通り
UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 1-2: illega
l multibyte sequence
>>505 ethereal でパケットの中身見たらいいんじゃね?
response.read() を 変更するなど、
>>505さんの方で多少の修正が必要になりますが、
以下を実行して、b64の中身を教えてくれたら、
debug 手伝おうと思います。
私の実行環境は以下の通りです。
version = 3.3.2 (default, Nov 10 2013, 22:26:55)
[GCC 4.8.1]
import sys
import base64
if __name__ == "__main__":
print("version =", sys.version)
path = sys.argv[1]
f = open(path, "rb")
bin = f.read()
body = bin.decode("sjis")
body = bin.decode("sjis", errors="ignore")
f.close()
print("type(bin) =", type(bin))
print("type(body) =", type(body))
print("bin =")
print(bin)
print("body =")
print(body)
print()
print("b64 =")
b64 = base64.encodebytes(bin)
print(b64)
>>505 取り敢えずレスポンスをファイルに保存してじっくり解析したら?
509 :
505:2014/04/18(金) 23:30:19.78 ID:tcldn7kl
Context-Encoding が gzip っていうのを考慮できていなかったのが原因でした
body = gzip.decompress(body)
print(body.decode('shift_jis'))
とすれば解決しました。
>>509 urllib じゃなくて httplib2 使いな。
くわしくは Dive into Python3 「HTTPウェブサービス」参照。
httpならrequestsが人間向けだ
いずれにせよあのゴミみたいなurllibを標準に置き続けている理由が全然分からない
Requests の方が好き
urllibってそこまで面倒みる必要あるのかよ
ゴミだな
さっさとpytzを標準ライブラリにいれろよ
tzは保守したくないんだろ
どこぞから権利問題で訴えられたりするからな
やり方は1つでいいってコンセプトのパイパイなのに、
どうしてMySQL操作するドライバはちょっと探したら2個も3個も出てくるんだぜ?
コンセプトを特に強制していないからですね
プログラムってのは開発者の思想表現の面もありますから
強制するだけ無駄です
Pythonは日時関係の扱いがものすごく面倒くさい
日付の足し算もコーディング量はPHPのほうが少ない
全くだな
dateutil for humansが必要
気でも狂ったか
pythonで書いたものをcgiにしてサーバーにアップした所
ImportError: No module named jsonとなりました。
レンサバなんですがモジュールはどう対処したらいいんでしょうか?
そのサーバーのQ&Aに無ければ問い合わせてみれば?
2.5未満だとjson入ってねえんだよ
CentOSの少し古い奴だとPythonが2.4なんだ
考えたくないが、その可能性は結構高い
何にせよまずバージョンを正確に確認した方がいい
with使えねぇよぉ・・・ってなるぞ
529 :
デフォルトの名無しさん:2014/04/20(日) 01:18:04.55 ID:36+Zfvxl
とりあえずcgi.test()
今から2.4を使うってのは超初心者がやることじゃないです
ez_setup.pyはPyPiで配ってる2.4専用の奴しか使えないとか
virtualenvは2年前のしか使えないとか
一手順ごとに質問しないと何一つ成し得ないよ
まだ金払ってないなら別の鯖探した方がいい
ちなみにその記事に書いてあるdjangoもとうに動かない
その記事の日付2007年だからな
無理もない
>>531 わかりました。サーバー変えてみます!ありがとうございます。
534 :
501:2014/04/20(日) 14:58:51.76 ID:vv1MGqjg
>>530 Google App Engineとか他にも探せば無料のクラウドがあるからxreaはやめとけ
数字が入っている変数aについて、一の位の数字が
1であるかどうかを判断する手法として
if str(a).endswith('1'):
または
if a % 10 == 1:
の二通りがあると思いますが、どちらを使っても構わないですか?
どちらかに落とし穴やまずい点がありましたら教えてください
>>536 >>> str(12.1).endswith("1")
True
>>> 11.2 % 10 == 1
False
なんでLingrのほう過疎ってるの?
あんなものやってる人いたんですねえ
いや、いないから過疎ってんのか
staticmethodの使いどころで悩んでいます。
インスタンス変数にアクセスする必要がないものは
全部staticmethodでいいだろうという認識なんですか間違ってますか?
>>541 インスタンス変数にアクセスしないが、クラス変数にアクセスする場合は classmethod
インスタンス変数に加え、クラス変数にもアクセスしない場合に staticmethod
staticmethod の場合は、普通の関数にも出来るので、そもそもクラスに所属する必要があるかどうかも要検討。
静的解析ツールの pylint 使うと、通常のインスタンス・メソッド内で参照されてる変数を調べ、
どのメソッドにすべきか等の情報を指摘してくれます。
プロジェクトで共通の処理を行いたいんですがこういうのってどうやるんですか?
phpでいうphp.iniでincludeするパスをしていしたらどこからでもそのパスに通ったファイルにアクセスできる設定っていうのはpythonでありませんか?
site.py
Pythonにおける引数は参照渡しなので、ミュータブルなオブジェクトを渡してその内容に変更を加えると、
呼び出し元にも影響を与える副作用が発生しますが、それなのにわざわざ return で変更したオブジェクトを
返すというコードを書くと、
わざわざ返す必要もないものを返しててバカっぽく見えますか?
それとも明示することで人にやさしいコードだと思われますか?
それともミュータブルなオブジェクトを渡してそれを変更するようなコードを書くことがバカっぽく見えますか?
流れるようなインターフェースというのが昔流行った
Androidのapiはそれを多用してる
まあビルダーパターンの応用なんですがね
>>545 >ミュータブルなオブジェクトを渡してそれを変更するようなコード
checkioでは文句言われる。標準ライブラリでは、そういうのはあまり
見掛けない。heapqはそういうインターフェイスになってるケド…
548 :
545:2014/04/22(火) 23:29:44.65 ID:yPJ3bUkb
>>546 軽く調べただけだといまいちピンとこないのでもっと調べてみます。
>>547 標準ライブラリでは見た記憶がないなとは思っていましたがやはりよくあるというわけではないんですね。
例えばファイルを読み込んで既存の辞書に追加とかやろうとすると一気に全部読み込んでやりたくなるので
辞書を渡してそれに追加という関数書いてる時にくだんの参照渡しのこと思い出したので聞いてみました。
とすると、関数内で返り値用の辞書を作成して返し、呼び出し元で返り値を追加する、というやり方がマシと
いうことになりますかね?
ジェネレータとして実装して、呼び出し元で追加する方が良いよ。
副作用はテストが面倒になるので、可能なら避ける。
python 2 系です
a = [
0x06, 0x7A, 0x7B, 0x6A, 0x04, 0x05, 0x06, 0x07,
0x08, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x6A]
みたいなバイト数値のリストがあるとき
バイト列(文字列?)に変換するには?
import cursesでimport errorになるのはなんでですか?
libncursesとreadlineはいれてます
>>550 3系を使えば以下の通り出来ますよ。
b"".join([int.to_bytes(x, 1, "big") for x in a])
>>551 import error の内容全てを貼って下さい。
>>550 >>> bytes(bytearray(a))
'\x06z{j\x04\x05\x06\x07\x08\x00\n\x0b\x0c\r\x0ej'
>>> "".join(map(chr, a))
'\x06z{j\x04\x05\x06\x07\x08\x00\n\x0b\x0c\r\x0ej'
>>> import array
>>> array.array("B", a).tostring()
'\x06z{j\x04\x05\x06\x07\x08\x00\n\x0b\x0c\r\x0ej'
>>550 bytes(bytearray(a)) や "".join(map(chr, a))
python3だと bytes(a)
>>502先生のipython版をやろうと思ったんですがググっても情報がなくて厳しいです
import IPython
ret = IPython.core.completer.IPCompleter.all_completions("pri")
print(ret)
をやっても
TypeError: all_completions() missing 1 required positional argument: 'text'
になってしまいます
どう書いたらipythonが補完してくれる文字列を取得できますか?
556 :
551:2014/04/23(水) 12:15:07.16 ID:x0vRXS3n
エラーはこれです
Traceback (most recent call last):
File "test.py", line 1, in <module>
import curses
File "/home/kidotoyohiko/.pyenv/versions/3.4.0/lib/python3.4/curses/__init__.py", line 13, in <module>
from _curses import *
ImportError: No module named '_curses'
ImportError: No module named '_curses'でぐぐれ
Python を自前ビルドしたときに curses のヘッダファイルがインスコされてなかったせいで
_curses がビルドされなかったとか?
もしそうなら Debian なら libncurses5-dev 入れて Python のビルドし直しとか
>>556 C拡張の_curses moduleがないって言ってる。
ImportError: No module named '_curses'
これはよく見ると、
"_" + "curses"
がないって言ってるよね
_ が先頭に付いたmoduleは慣例としてC拡張moduleを意味するんだ。
おそらく、ncursesやreadlineのheaderが存在しないために、
make しても _curses を作ってくれなかったんでしょう。
何のdistriを使っているか知らないけれど、
以下を実行した後に再度Python3.4を入れてみたら?
$ apt-get install libncurses5-dev libreadline-dev
or
$ yum install libncurses5-dev libreadline-dev
どうやってPython installしたの?
Debianです
両方共はいっています
aptitude showで確認しました
でもエラーが出るので困りましたorz
ググってもこのふたつのパッケージを入れろっていうのしか見つからなくてお手上げです
pyenv install 3.4.0で入れました
pythonをインストールしなおしたら治りました(汗
お騒がせしました
暗号・複合するライブラリってさ、どれもこれもbyte長を調整しなきゃならんのだが、
暗号化する文字と暗号化キーの長さ関係なくポンってやってくれるやつないの?
見つからなくてすごくイライラしています。
>>555 IPCompleterのインスタンスを作らずにメソッド呼び出してる.
get_ipython().complete("pri")
get_ipythonのcompleteを使うと"import "で補完できるライブラリが出て来ませんでした
>>563 simple-cryptって見つけたけどこれはどうですか
python crypt simpleでくぐったら出てきました
たぶん10秒強だと思います
567 :
545:2014/04/23(水) 20:09:38.22 ID:AXbtitX6
>>549 ありがとうございます。ジェネレータってこういう時に使えばいいんですね勉強になります。
複数種類あるデータの取り込みを全部ジェネレータやイテラブルにしたら呼び出し元のコードもスッキリしました。
自分のPythonレベルが1あがったのを実感してます。
どうもありがとうございました!
>>566 import や %cd の補完は、それぞれ別の関数に別れてるみたい。
from IPython.core.completerlib import module_completion
他のは、ソース (IPython/core/interactiveshell.py) 読んで
ふええ
570 :
デフォルトの名無しさん:2014/04/24(木) 20:18:01.71 ID:GL+Jj+fH
571 :
デフォルトの名無しさん:2014/04/25(金) 01:33:12.54 ID:sQaSn0qf
>>570 amazon.comの方の評価もなかなか高いみたいだし、期待できそう
著者さん宣伝ごくろうさまです
業者なんかいねーよw
本の話題が出る度にステマ扱いしてたら初心者向けのスレとして成り立たないと思う。
業者雇う暇があったらphpの本書くよね
著者と業者くらい見分けろよそれでも日本人か
577 :
デフォルトの名無しさん:2014/04/25(金) 12:14:32.51 ID:IMABWYJa
>>571 amazon.comの方の評価 ってどこで見れるの?
誰も本を探してる質問してないのに一方的に宣伝タイ〜〜〜〜〜ムwwwwwwwwwwwwwwww
草刈機の実演販売も誰も求めてない
皮肉のバーゲン会場はこちら
ここは真摯な方が多いと聞いています。初心者の私(女)に教えてください。
wxpythonで、任意のpanelに乗っているチェックボックスなんかを全部なめたいんですが、どうすればよいですか?
え?舐めたい?
とりあえず考えた方法だが、パネルに乗せているウィジェットをlistに入れておくのはどうかな
wxpythonって旬なの?3.3でも動かないのに
時代はpyqtかpysideさ
ぱいそん女子だ
>>586 旬は知らないが 3.4/3.4 でも動くphoenix ってプロジェクトがある
>>583 [x for x in panel.GetChildren() if isinstance(x, wx.CheckBox)]
孫要素以下も辿るなら、再帰させるかスタックを使って走査 例: ideone.com/73Siby
GetChildrenで子要素を走査する場合は、レイアウトの都合で構造が変わったりする際の注意が必要です
動的にウィジェットを追加・削除したりしないなら
>>585の方法が簡単。嵌りそうなケースを一点補足すると
親要素が削除された後に list に参照が残ってるとまずい場合があるので、直接listへ入れずに 弱参照(weakref) を使うといい
お前ら優しすぎw
ここはRubyスレじゃないから優しくていいんだよ
真摯な方と紳士な方で大分違って聞こえる
世間一般的には似た意味だろうけど
WindowsでPythonの実行環境を別のPCに移行するにはどうするんですか?
Python3.3を新しいPCにインストールしてC:\Python33を上書きコピーだと新しくインストールしたモジュールが認識されないようなのです
$ python3.3-config --prefix
を実行して表示される directory 以下を全部持って行ったら?
新しい方でも同じ directory 構成にしてやってさ。
駄目だったらごめんなさい。
windows 持ってないから勘で言ってみました。
度々ですいません。
>>> import sys
>>> import argparse
>>> sys.modules["argparse"]
<module 'argparse' from '/usr/lib/python3.3/argparse.py'>
ってやると
>>593さんのお目当てのmoduleがどこにいるか分かるでしょ?
古い方の実行環境で argparse を適当に変えてやるといいよ。
以下コードで、arrayに日本語がまじっている為エラーになります。
array = [u"あ","2","b"]
このようにuをつければdbに出力できるんですが、リストはかなりの数ある為一つ一つつける事もできません。
このような場合どうすればいいでしょうか?
#-*-coding: utf-8 -*-
import sqlite3
key = "tablename"
array = ["あ","2","b"]
con = sqlite3.connect("data.sqlite")
con.text_factory = str
try:
con.execute('''create table %s
(key varchar(200))''' % key)
except sqlite3.OperationalError, msg:
pass
con.executemany(u"insert into %s values(?)" % key, array)
con.commit()
con.close()
どうもしないです
それがPython2のリスクですから
全部付けるんですよ無理やり
>>597 エラーを再現できるスクリプトを貼ってほしい
あと OS と Python のバージョンも
偽エラーってなに?
真エラーもあるの?
>>599 executemanyのsqlがunicodeになってるだろ
utf8の「あ」は 0xE3 0x81 0x82 だから、自動変換に任せるとデフォルトエンコーディングで解釈する
ここでデフォルトエンコーデイングがasciiだと、待望のUnicodeError様とご対面だ
デフォルトエンコーデイングは環境によって違うから、
君のようにエラーが再現しないこともある
で、これは初心者が十分理解できることか?
俺は無理があるように思う
>>601 よくわかんないけどこれでいい?
% python2 -c 'import sys; print sys.getdefaultencoding()
ascii
% python2 hoge.py
Traceback (most recent call last):
File "hoge.py", line 15, in <module>
con.executemany(u"insert into %s values(?)" % key, array)
sqlite3.ProgrammingError: Incorrect number of bindings supplied.
The current statement uses 1, and there are 3 supplied.
というかエラーが出たならそのエラーをそのまま貼ってって言うの忘れた
>>597 状況解らないけど、文字列がソース中にリテラルとして表記されてるなら
from __future__ import unicode_literals
>>597さんへ。
vim なら、
:%s:\( \|\[\)":\1u":g
とか。
sed 使えるんなら、
$ echo '["あ", "い", "う"]' | sed -e 's/\(\[\| \)"/\1u"/g'
とか。
python2 で頑張ろうとするんじゃなくて、
editor や command で頑張るところですね。
すみません、web上でパースした値をlistに入れてdb格納ってのをしてたんですがコレでとりあえず動きました。
for k in range(0,len(array)):
con.execute(u"insert into %s values(?)" % key, (str(array[k]),))
>>606 for文の使い方だけとりあえずつっこんでおく、Pythonでは下のように書いてほしい
for item in array:
con.execute(u'insert into %s values(?)' % key, (str(item),))
608 :
デフォルトの名無しさん:2014/04/26(土) 22:10:24.20 ID:/AQZrpM3
pythonとか見にくすぎ でもPerlを抜いたんだよな
自分自身が実行もし、他のスクリプトからimportされもするスクリプトがあります。
で、他からimportされた場合最初に1回だけ実行したい処理(ファイルの読み込み)があるのですが、
どういうふうにやらせるのがいいでしょうか?
ためしに変数の定義しないで、
if 'valiable' not in locals():
valiable = load_data()
としてみたのですが、呼び出す度に毎回実行されるようです。
このためだけにクラス用意して __init__() つけるとかになるでしょうか?
馬鹿には無理
下のようにnameからlist(キー名)を引くにはどうしたらいいでしょうか?
name = ["abc","cde","fgh","ijk","banana","ringo","lmn"]
list = ["4","5"]
何でPythonって遅いの?paizaの競技プログラミングの結果見てもPythonだけ遅すぎる
>>611 ["4", "5"] を使って ["abc","cde","fgh","ijk","banana","ringo","lmn"] から
["apple", "banana"] を取得したいってこと? だとしたら
>>> names = ['abc', 'cde', 'fgh', 'ijk', 'banana', 'ringo', 'lmn']
>>> indices = ["4", "5"]
>>> [names[int(i)] for i in indices]
['banana', 'ringo']
ちなみに変数名に list を使うのはやめたほうがいい。同名の組み込み関数がある
>>613 ありがとうございます。
あと説明不足ですみません。
nameというリストから"banana","ringo"を削除したいんです。
delで削除しようとしても、一つを削除した時点でnameのインデックスが変わってしまう為、二つ目を削除する際にずれてしまいます。
kekka = ['abc', 'cde', 'fgh', 'ijk', 'lmn']
>>614 >>> indices = [int(e) for e in ["4", "5"]]
>>> indices
[4, 5]
>>> [e for i, e in enumerate(names) if not (i in indices)]
['abc', 'cde', 'fgh', 'ijk', 'lmn']
>>609 if __name__ != '__main__':
# 他からimportされたときに実行する処理
>>615 できました。本当にありがとうございます。
スレッド間通信はどのような方法がありますか?
動作中のスレッドにデータを渡したいです
一番簡単なのはなんでしょうか?
619 :
デフォルトの名無しさん:2014/04/27(日) 18:14:26.71 ID:/Vr961xn
que
621 :
609:2014/04/27(日) 21:36:47.22 ID:YlDj6z0z
>>616 説明不足ですいません。importされた先で何度も呼び出されます。
1個のHTMLを解析するスクリプトと、それを呼び出して複数のHTMLを解析するラッパーという構成です。
>>621 importされたときに一度だけ行う処理はスクリプトのどこに書かれていますか?
>>616のif文は関数やメソッドの中ではなく、モジュールレベルに書くことを想定しています。
もし可能なら問題を再現できるコード片をください。
それは設計がへたくそ
そんな何でも屋な立ち位置のファイルを作るべきではない
ライブラリはライブラリとしてきちんと分けて設計しろ
624 :
609:2014/04/28(月) 01:56:11.06 ID:un3xGM8Z
>>622 > importされたときに一度だけ行う処理はスクリプトのどこに書かれていますか?
それをどこにどう書くのがいいのか、という質問です。
>>623 すいません、「何でも屋な立ち位置」の意味がわからないです。
hajimete = True
# ここから
モジュールの中身
# ここまで
if __name__ != '__main__':
if hajimete:
hajimete = False
# 他からimportされたときに実行する処理
618ですが
queを別のモジュールから使用する為には
queue操作用のメソッドをつくることが必要ですか?
>>624 importされたときに一度だけ実行する処理は
実行可能&他からimportされるスクリプトのファイル最終行に
>>616のように書いて下さい。
しかしながら
>>623の通り、コマンドライン等から実行されるコードと
他からimportして使うためのコードは別のファイルに分けるべきです。
パッケージやモジュールで実行可能なもの自体はよくあるよ。
-m オプションはそのためのものだし。
一度だけ呼び出されるというのが、関数なのかモジュールなのかで齟齬がありそう。
import されたモジュールは sys.modules にキャッシュされるので、
>>616の通りに
トップレベルに書いてグローバル変数にしておけば、複数個所から import されても何度も呼び出されることはない。
何度も呼び出されるってことは、モジュールのimportでなくて、モジュール内で定義した関数内の事を言ってるのかな?
設計については、別問題
初期化の処理は関数にして、importする側で明示的に呼び出した方がいい or クラスにする。
初期化処理のテストをどう書くのか、初期化処理が投げる例外を何処でどのように捕捉するかを考えよう。
話の途中に割り込んですまないがムカついてるので言わせてくれ
パーフェクトPythonは糞だな
痒いところに手が届かないどころか要領を得ないから
空飛ぶPythonを参照しながら推理し試行錯誤してる
何のために本を買ってるのか
読んでてイライラする
ここは著者が宣伝したりライバルを罵り合う悪いインターネットですね
632 :
デフォルトの名無しさん:2014/04/28(月) 11:05:29.43 ID:Xuk0naTK
Pythonの人気の理由がわからない
なぜPerlを追い抜いたのか
むしろ Perlの使われ方がおかしかっただけ
海外でPythonが伸びたのは奴らUnicode扱わないからじゃないだろうか
良くできてるからだよ
ちょっとした事にサッと使える身軽さが受けた
basic,awk,sedの延長でperlが出来たんだよ
ソフトウェア作るプログラム言語としては致命的な欠陥ばかりで、
似たような動的言語のpythonの方に軍配が上がっただけのこと
今もうnode,json,npm,html5があるからjavascriptが優勢な世界
そろそろTIOBEのランキングもPHP,Rubyを差し置いてjavascriptが上にくるはず
Perl って BASIC からなんか影響受けてたっけ?
>>630 そういう意味では
みんなのpython
もひどかった
>>630 「空飛ぶ」と比較するとweb関連の情報が多かったのとアマゾンの評価を参考にして今「パーフェクト」の方を先に読んでいます。
「空飛ぶ」のレビューにオブジェクト指向について理解し辛い内容だと書いてあった事も後回しにした理由になりました。
そんなに糞ですか?
百聞は一見の如し
Pythonでif文にブラケットが無いのは世に受け入れられてるの?俺的にはブラケットさえあればスーパー便利言語なんだが。
import struct
data = [1,2,3]
data_b = struct.pack(">3L",data)
これを実行すると
struct.error: pack requires exactly 3 arguments
と表示されてうまく動作しません。どのように書けば正常に動きますか?
ごめん、ブラケットじゃなくてカーリーブラケットだった
>>643 data_b = struct.pack(">3L", *data)
>>646 ありがとうございます!動かしたかった通りに動作しました
648 :
デフォルトの名無しさん:2014/04/28(月) 22:33:35.85 ID:G/O2/oE+
空飛ぶ広報室始まるよ@tbsテョンねる1
It's
パスワードがついたエクセルをpythonで読み込みたいのですが、
それを達成できるライブラリが見つかりません><
ご存知でしたら教えてください><困ってます><
>< とか書く奴って w を連発するやつとベクトルが違うだけで同類だよな。
if 1 >< 2:print(True)
win32com
sphinxをブラウザ上で編集できるライブラリってありませんか?
ファイルを編集してmakeするの面倒臭い
ライブラリの機能ではないような気がするな
Yahooのリアルタイム検索でPythonを検索するとpythoninfo っていうアカウントがコピーツイートを量産していて迷惑。
現状:
コピーツイート→本ツイート→添付URL
本来:
本ツイート→添付URL
一手間増やされてる上に、
全てのツイートにURLが貼ってあるので紛らわしい。
完全にスパムだと思う。
ここに報告するんじゃなくて
ahooに報告した方が良いよ
Twitterでスパム報告すればいい
kadotanim***とかいうpython厨がうざいのでSPAM報告しておいた
こんなアカウント見つけた俺かっけえwwwwwwwww
[(1,), (2,)]のようなタプルのリストを単に
[1, 2]とするにはどうしたらいいですか?
map(lambda x: x[0], [(1,),(2,)])
[id[0] for id in [(1,), (2,)]]
これでできましたがもっといい方法がありそうな気がします
>>663 なるほどmap()使うんですね。ありがとうございます
ムダにラムダ関数生成するのはいい方法なのか?
まあ超クール超スマート病は誰もが通る道だからいいか
まぁPythonなら
map(operator.itemgetter(0),[(1,),(2,)])
あたりかね
だんだん長くなるな
>>> from itertools import chain
>>> list(chain.from_iterable([(1,), (2,)]))
[1, 2]
動的に少し複雑な関数、クラスを生成できますか?
例えば、商品リストなんかを読み込んで1行1行処理していく際、商品ごとに違う処理をしたいとき、
ソースにいちいち書くのではなく、設定ファイル(ini等)で独自の処理方法フラグを立てておいて追加・削除・変更したいんです。
■設定ファイルの中身のイメージ
りんご = 値段が150円以上か? True = 廃棄 False = 〜〜〜
きゅうり = 賞味期限内か? True = 〜〜 False = 廃棄
■処理のイメージ
りんごが来たら、
if 値段 >= 150:
.....処理 という関数・クラスを作って、次にりんごが来たら、ここに投げる
きゅうりがきたら
if 現在 <= 賞味期限:
.......処理 という関数・クラスを作って、次にきゅうりが来たら、ここに投げる
671 :
デフォルトの名無しさん:2014/04/30(水) 13:47:43.53 ID:zr4NNN35
出来ますよ
>>670 lmgtfyドットcom/?q=python+ini
ipythonの補完機能を利用したらエディタの補完プラグインってものすごく強力だよね
デザインパターンのファクトリーメソッドでできます
この場合たらい回しパターンな気がする。
さらに言えば商品が来る毎に処理クラス、メソッドを生成するコストを抑えるなら
フライ級パターンになるかな?商品コードをハッシュキーとした配列を作り、
メソッドまたはオブジェクトの参照をデータに持たせとく、みたいな。
>>662 list ( map ( lambda x : x , [ (1), (2) ] ) )
#一般化すると
f = lambda t : list ( map ( lambda x : x , t ) )
f ( [ (1), (2) ] )
>>662 list(sum([(1,),(2,)], ()))
(stackoverflow.com/questions/10632839/)
馬鹿どもはラムダ式キャッシュすることぐらい覚えるといいよ
ある数値(A:32bit整数)が以下のような可変長形式(B:32bit整数)で表されるとき、
「AをB」と「BをA」にそれぞれ変換する関数をつくってください。
1byte(8bit)の内、数値に7bit、 次のバイトもデータバイトが続くかどうかのフラグに1bit用いる。
フラグにはMSB(第7bit)を用いる。
最大4バイト。つまり、実際に表現できる数値の最大値は228-1。
以下具体例。左Aが数値(16進)で、右Bが可変長形式での表現(16進)。
00000000 → 00000000
00000040 → 00000040
0000007F → 0000007F
00000080 → 00008100
00002000 → 0000C000
00003FFF → 0000FF7F
00004000 → 00818000
00100000 → 00C08000
001FFFFF → 00FFFF7F
00200000 → 81808000
08000000 → C0808000
0FFFFFFF → FFFFFF7F
ああごめんなさい。
この例だと可変長になってませんね。
訂正です。
00000000 → 00
00000040 → 40
0000007F → 7F
00000080 → 8100
00002000 → C000
00003FFF → FF7F
00004000 → 818000
00100000 → C08000
001FFFFF → FFFF7F
00200000 → 81808000
08000000 → C0808000
0FFFFFFF → FFFFFF7F
Aの最大値は0FFFFFFFで、
Bの最大値はFFFFFF7Fです。
なおBの下位1バイトのMSB(第7bit)は終端マーク(0)になります。
宿題なら宿題スレで
pythonって多倍長整数に対応してますよね
2348239582149135905430923709738457483792373478+587798023749857902374239750374970923749702357120でも桁がおかしくなりませんでした
でもsys.maxsizeで9223372036854775807が返って来ました
pythonって多倍長整数に対応しているのかしてないのかどっちなんですか?
javascriptみたいに
var a = {}
a.data = 100;
a.c = {};
a.c.data = {};
こういうふうに変数を . で書く方法ってありませんか?
hensu = {1,2,3}
print(hensu[0]) # エラー
たしかキーを省略したら自動的にインデックスに数字が連番で割り振られるってどこかで読んだんですが取得できません
どうやってしゅとくするのですか?
>>691 class XXX:
pass
a = XXX()
a.data = 100
a.c = {}
までならできるが、そういうこと?
a.c.data = {} は、a.c['data'] = 100 とかになってしまうが
>>692 hensu = list({1,2,3})
print(hensu[0]) # 1
a = {}
a[0] = 1
この時、数字のキーを入力しないで追加する方法はありませんか?
追加する回数が不定なのでlistのappendみたいにキーを意識しない方法を教えてください
>>692 その答えはしらんけど、
その hensu は辞書じゃなくて集合だから。
集合リテラルは存在自体よく忘れる(小声)
>>695 無理。
キーがないのにどうやって辞書として使うつもりなの?
>>695 >>> a = []
>>> a.append(1)
>>> a
[1]
>>695 無理やりやった
def dict_append(dict_, value):
dict_[max(dict_)+1 if dict_ else 0] = value
d = {}
dict_append(d, 'foo')
>>695 {}を辞書と集合で使い回しているせいで混乱してるような気がする。
集合なら、
new_set = {1, 2}
new_set.add(3)
print(new_set)
{1, 2, 3}
トリッキーなのは、
new_set = set() #空集合
new_set.add(1) #失敗する。
辞書なら、「キーを意識しないで」要素を追加することはできない。
キーが単にユニークな何かでいいのであれば、辞書をやめてリストを使えばいい。
>>701さん
Python 3.3.2 (default, Nov 10 2013, 22:26:55)
[GCC 4.8.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> new_set = {1, 2}
>>> new_set.add(3)
>>> print(new_set)
{1, 2, 3}
>>> st = set()
>>> st.add(3) # 成功。。。
>>> print(st)
{3}
成功いたしましたが。。。
あー本当だ。理由はわからないけど、さっきは失敗したんだよね。ゴメンゴメン。
何だかsetを渡すべき所に整数を渡した、みたいなエラーが出たんだ。
0 < x < 2 and 0 < y < 2
の簡潔な書き方ってありますか?
(0, 0) < (x, y) < (2, 2)
とかやろうとすると
0 < x < 2 or 0 < y < 2
になっちゃうのですが
>>704 all(0 < e < 2 for e in (x, y))
namedtupleのインスタンスから、要素の一部だけを削除したタプルを作りたい。
以下の例では要素の三番目が要らないので、「ココ」として示している行で
残す要素(一番目と二番目の要素)を個別指定してタプルを作っている。
しかしこの方法の問題点は、残す要素数が多い場合に記述が長くなってしまうことである。
何か良い方法はないだろうか。
namedtupleを継承したクラスを作り、line._delete(z)みたいに使えるメソッドを追加すれば
よいのだろうが、クラスをいじるスキルがない。
-----------------------------------
from collections import namedtuple
a = [(1,'data1','atr1'), (2,'data2','atr2')]
named_rec = namedtuple('sample', 'x y z')
b = []
for line in map(named_rec._make, a):
b.append((line.x, line.y)) ←ココ
print(b)
-----------------------------------
>>707 d = ['z']
b = []
for line in map(named_rec._make, a):
b.append(tuple(getattr(line, c) for c in line._fields if c not in d))
とか?
>>707の最大の問題点はもっと根本的なところにあるような気がしてならないが。
> 要素の一部だけを削除したタプルを作りたい。
> 何か良い方法はないだろうか。
本気なら、
>>707さんは、dict 使うべきだと思いますが。
タプルって変更しないものに使うんじゃないの
目的と手段がおかしいんだな
データ型が提供してるメソッドに不足を感じる場合は、用途を誤ってる事が多い。
namedtuple -> 辞書は、v._asdict() や vars(v) で変換できるよ
タプル、辞書から値を纏めて取り出すにはoperator.itemgetter が便利。
v = namedtuple('sample', 'x y z')(1, 2, 3)
itemgetter(*[x for x in v._fields if x not in {'z'}])(vars(v))
なんでNamedtuple使ってんの?って聞いたら.で属性にアクセスできるからって答えた奴いたな
>>714 いやまさにそれが目的で使ってる。
Pythonにおいて要素への名前アクセスをするには
クラスではなくnamedtupleが推奨と以前ここで見たので。
でも要素を削除する必要がある場合には向かないようだね。
operatorモジュールは取っつきにくくて避けてたんだけど、この機会に足掻いてみるよ。
同じ事思った>属性アクセス
属性を動的に追加・削除するのは、
ソースの静的解析やエディタの補完で困るのであまりやらない。
要素を削除というか、単純なデータの変換処理だったら
変換後のデータも同じ様にnamedtupleを定義しておくと良い。
A = namedtuple("A", "x y z")
B = namedtuple("B", "x y")
assert set(B._fields) <= set(A._fields), "A does not fill all B fields"
a = map(A._make, [(1,2,3), (4,5,6), (7,8,9)])
b = map(attrgetter(*B._fields), a)
Pythonにも、標準出力をバイナリモードに切り替えるような機能はありますか?
バイナリをprintしようとしたのですがうまく行かず困っています
# py2
import sys, os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
sys.stdout.write()
# py3
import sys
sys.stdout.buffer.write()
らしい
お酒でくらくらするから試す気なし!
>>718 3.x系ではioは不要
import io
f = io.open(1, 'wb')
f.write(b'foo')
f.flush()
f.detach()
>>719,720
どちらでもうまくいきました!
ありがとうございます
>>715 typesモジュールのSimpleNamespaceおすすめ
3.3からないけど、ちょっと書くだけで同じようにできる
723 :
デフォルトの名無しさん:2014/05/04(日) 01:34:53.35 ID:fWNF7dW3
昨日からプログラミング始めた者です。
Pythonがわかりやすくて、いろいろできると聞いたので選びました。
デコレーターってのが意味わかりません
www.isl.ne.jp/pcsp/python/python26.html
このページの
# デコレーター関数定義
def deco(f):
def in_deco():
print('before')
f()
return in_deco
# デコレーターを指定
@deco
def func():
print('decorate')
# 関数funcを実行
func()
f()から下がまったく理解できません。
f()とreturn、@deco、の関係性がわかりません。
助けて・・・
一応、24回までは問題なく理解できて、わからないのが最終回だけなんです・・・
もしかして、デコレーターって初心者にとってはそんなに重要じゃない構文っぽい感じですか?
@deco
def func(): pass
これは
def func(): pass
func = deco(func)
と同じ意味になる、というのがデコレータ
>>725 最初はライブラリで用意されているデコレーターを使えるようにするといいと思う
>>725 最初はライブラリで用意されているデコレーターを使えるようにするといいと思う
うわ、大事なことなので二回言いましたw
>>726 あっ、そういうことですか。ありがとうございます。
f()にfunc()が来てそれをreturnで返して
func()で出力するみたいなイメージで大丈夫ですか?
なんとなく掴んだので続きやってみます。
>>729 まだライブラリがなんなのかわかんないですw
すみません。
またよくわからないことが出てきました。
デコレーターに引数を使うときって
@deco(False)
def func(): pass
////////////////
func() = deco(func)ではなくって
func() = deco(False)になる感じですか?
あと、
@deco
@deco
の処理の仕方というか、裏ではどんな感じで動いてるというか、
構造がイマイチわかりません。
(*args, **kwds)が一体何のためにあるのかもわかりません。
func = deco(False)(func)
下のは
func = deco(deco(func))
>>732 助かりました。
本当にありがとうございます。
まあリファレンスに書いてあることなので自分で調べてね
docs.python.jp/2.7/reference/compound_stmts.html#def
>>734 うぉ。
頑張って基礎用語習得して、ググって自力で理解できるように精進します^^;
>>735 関係ないんですね、よかった。
ありがとうございます。
s = [2]
if a < 2:print(u"素数ではない")
elif a % 1 != 0:print(u"素数ではない")
elif a == 2:print(u"素数である")
elif a % 2 == 0:print(u"素数ではない")
else:
for x in range(3,a + 1):
for y in s:
if x % y ==0:
break
if a % x == 0 and x != a:
print(u"素数ではない")
break
else:
s.append(x)
if a in s:
print(u"素数である")
なんでif a % x == 0 and x != a: breakダメなの?(´・ω・`)
失敬、連投規制にあったもので
a = 代入する値
for x in range(3,a + 1):
>for y in s:
>>if x % y ==0:
>>>break
>if a % x == 0 and x != a:
>>print(u"素数ではない")
>>break
>else:
>>s.append(x)
if a in s:
>print(u"素数である")
vipprog.net/wiki/exercise.html#o8db2119
import re
print(None is not re.match("abc","testabc"))
何故この正規表現パターンではマッチしないのですか?
"testabc"を"abctest"にしたらヒットしました
パターン"abc"は"^abc"と同じなんですか?
PCREではこれでヒットするはずなんですがPythonの正規表現でこうなるのは何故ですか?
6.2.5.3. search() vs. match()
Python offers two different primitive operations based on regular expressions:
re.match() checks for a match only at the beginning of the string, while
re.search() checks for a match anywhere in the string (this is what Perl
does by default).
>>739さん
> パターン"abc"は"^abc"と同じなんですか?
re.match() では同じです。
PCREは知りませんが、察するに、search() を使えば
>>739さんのご希望に沿えるのではないでしょうか?
環境はWin8.1 Python2.7 IDEはSpyder使用。
virtualenv で、heroku用の仮想環境を作ろうとしています。
インストールと仮想環境のactivateまではできました。
IDEで使う場合は、仮想環境のインタプリタを指定すればいいのでしょうか。
逆に言うと、環境を切り替えるたびにインタプリタを選択し直さないといけないのでしょうか。
仮想環境はアプリごとに作成するイメージかと思っていたのですが、これでは切り替えが大変そうだと感じています。
virtualenvのactivateがやってることは、突き詰めれば環境変数の設定だけです
逆に言えば、その辺が分からないうちはまともに使いこなせないでしょう
a1 = [
{"age":33,"name":"oosaki"},
]
a2 = [
{"age":33, "name":"teshima"},
]
各リストに複数の辞書があるものとお考えください
a1とa2のnameキーの値を取り出して
a3 = ["oosaki", "teshima"]
ってやりたいです
僕はfor i in a1+a2: a3.append(i["name"])って書いたんですが、これってリストのサイズが巨大だったらメモリ使用量も増えるので効率悪い気がします
他にどんな書き方ができるのか教えてください
for a in (a1, a2):
for i in a: a3.append(i["name"])
>>743 リスト同士をつなげるにはitertools.chainが使える
あと一つずつlistに追加していく書き方より内包表記の方が短く書ける
import itertools
a3 = [d['name'] for d in itertools.chain(a1, a2)]
>>744-745 いろんなやりかたがあるんですね勉強になりました
最後にもう一点質問したいのですがa3に元のリストのインデックスも入れたい場合、
こういうふうには書けましたが、リストをつなげてループする時にインデックスを取得するのは不可能と思っていいですか?
for i, v in enumerate(a1):
a3.append([i, v["name"]])
for i, v in enumerate(a2):
a3.append([i, k["name"]])
for a in (a1, a2):
for i, v in enumerate(a):
a3.append([i, v["name"]])
import itertools
a3 = [[i, d['name']] for i, d in itertools.chain(enumerate(a1), enumerate(a2))]
a3 = [[i, d['name']] for i, d in enumerate(itertools.chain(a1, a2))]
index = 1
if index < len(a1):
print a1[index]
else:
print a2[index - len(a1)]
無理やりやるならこんな感じかな
解けた( ゚∀゚)アハハ
dpaste.com/2MAMCN6/
デバックで鍛えられた気がする
下の総当りの試し割りより遅かったことに驚きを隠せない
cProfileモジュールやシェルのtimeコマンドで計測すると分かってもらえると思う
import sys
a = 12277
if a < 2:
print(a, 'is not a prime number.')
sys.exit()
for i in range(2, a):
if a % i == 0:
print(a, 'is not a prime number.')
sys.exit()
print(a, 'is a prime number.')
あー、行間が空いて煽ってるようしか見えないけどコピペ失敗しただけなので他意はない
2014-05-05T22:37:16+09:00
2014年05月05日 22時37分という風に変換したいのですが
調べていろいろしてもうまくいきませんでした。お詳しい方教えてほしいです。
>>753 a = '2014-05-05T22:37:16+09:00'
b = a.split('T')
date = b[0].split('-')
time = b[1].split(':')[:2]
DATE = '{}年{}月{}日'.format(*date)
TIME = '{}時{}分'.format(*time)
print(DATE + ' ' + TIME)
>>753 ちなみにどういうコードを書いたのか教えて
array = [
{"name": "A", "w":200, "h":10},
{"name": "B", "w":100, "h":10},
{"name": "c", "w":100, "h":20},
{"name": "d", "w":200, "h":20},
]
array.sort()
これの結果はこうなりますが
[{'name': 'B', 'w': 100, 'h': 10},
{'name': 'c', 'w': 100, 'h': 20},
{'name': 'A', 'w': 200, 'h': 10},
{'name': 'd', 'w': 200, 'h': 20}]
第一優先wが小さい順、第二優先hが大きい順になるように下のようにソートするにはどうやればいいんでしょうか?
[{'name': 'c', 'w': 100, 'h': 20},
{'name': 'B', 'w': 100, 'h': 10},
{'name': 'd', 'w': 200, 'h': 20}
{'name': 'A', 'w': 200, 'h': 10},
]
>>756 array.sort(key=lambda x: x['h'], reverse=True)
array.sort(key=lambda x: x['w'])
>>758 オフセットを単に無視していいのであればこれでいいのかも
>>> from datetime import datetime
>>> t = datetime.strptime('2014-05-05T22:37:16+09:00'.split('+')[0], '%Y-%m-%dT%H:%M:%S')
>>> t
datetime.datetime(2014, 5, 5, 22, 37, 16)
>>> print u'%d年%d月%d日 %d時%d分' % (t.year, t.month, t.day, t.hour, t.minute)
2014年5月5日 22時37分
a = [1,2,3]
del a[0]
print a[0] # 2
削除するとシーケンスが前に詰まるんですが
a[1]が2、a[2]が3を維持してa[0]だけ削除する方法を教えてください
何でそんな実装したいんだ
Noneを代入しているだけでけしているわけではないような・・
>>760 まず「削除」の意味を説明してから。
そしてだれかしらに「馬鹿」と呼ばれるかもしれないという心の準備。
collections.OrderedDict が使えるかもしれないけどあくまで辞書だからなあ
PHPで書くとこういう感じ
$a = [1,2,3];
unset($a[0]);
var_dump($a);
/*
array(2) {
[1] =>
int(2)
[2] =>
int(3)
}
*/
>>764 もしかしa[0] = Noneの事で反応されたのでしたらそれは削除ではありません
a = [0,1,2]
print len(a) # 3
a[0] = None
print len(a) # 3
これだとNoneで初期化という意味ですから・・・
削除が何を意味するかは既にコードに書いて有りますので割合します
len(a) == 2 && a[1] == 1 && a[2] == 2
となることを希望してるんだろうな、、、
len(a) == 2 && a[1] == 2 && a[2] == 3
となることを希望してるんだろうな、、、
大事なことなので
>>742 virtualenvは環境変数が変わることで環境を切り替えるんですね。
その発想がありませんでした。
ということはIDEのインタラプタと環境変数をvirtualenv用に書き換えればいけそうですね。
そして少し調べた結果、IDEでプロジェクトを作成すれば、プロジェクトごとに上記
切り替えができそうなこともわかりました。
こんな感じで試してみようと思います。
なにか、勘違い等指摘ありましたらおねがいします。
pyenv localでプロジェクトごとに環境を指定しろ
>>766 ならやっぱりこうだろう
>>> from collections import OrderedDict
>>> d = OrderedDict(enumerate([1, 2, 3]))
>>> d
OrderedDict([(0, 1), (1, 2), (2, 3)])
>>> del d[0]
>>> d
OrderedDict([(1, 2), (2, 3)])
>>> d[1], d[2]
(2, 3)
OrderedDict にしなくてもできちゃうね
>>> a = {1:0,2:1,3:2}
>>> a
{1: 0, 2: 1, 3: 2}
>>> len(a)
3
>>> del a[1]
>>> a
{2: 1, 3: 2}
>>> len(a)
2
a = [1,2,3]
d = dict(enumerate(a))
del d[0]
辞書である程度できるけど、ループさせる時とか面倒だし
PHPのarrayと同等のクラスを自作すべきじゃないの
>>774 普通の辞書だと順序が保持されないから
要素を追加してからループで回す場合などに不安がある
>>760が求めているのは、OrderedDictのような追加された順序じゃなくて、
添え字と内容の組を維持したまま、添え字の昇順で取り出せる配列だと思うよ
d = {}
d[0] = 1
d[1] = 2
d[2] = 3
d[40] = 7
d[10] = 50
d[5] = 100
del d[0]
for i, v in sorted(d.items()):
print(i, v)
覚え書き:関数内で変数を定義しないとUnboundLocalError
>>779 おお、globalでもできました!
nonlocalは調べてみたけど日本語が難しくてわからんない(´・ω・`)
質問です
あるファイルオブジェクトfileがあって、これをfor文で1行ずつtextという文字列に入れていきます。
for text in file:
処理
みたいな感じです。
このfor文の処理なのですが、たとえば、textの文字から特定の文字(たとえばjava)を消去して
特定の文字を置換したい(たとえばruby→python)場合、
for text in line:
text.rstrip("java")
text.replace("ruby", "python")
print text
これだとうまくいきません。
for text in line:
text2 = text.rstrip("java")
text2.replace("ruby", "python")
print text2
これだとうまくいくのですが、こんな感じで処理ごとに新たなオブジェクトを作っていくしかないのでしょうか?(textに入っている文字列に対する処理が増えたらもっと新たなオブジェクトを作らないといけなくなって、かっこわるい気がします)
python というか、プログラム初心者です
破壊的に内容を書き換えるわけじゃないんだから当然の結果かと
783 :
デフォルトの名無しさん:2014/05/06(火) 03:47:59.49 ID:l/RnXGfS
rstripが781の期待通りに動作しないようだな
replaceなら問題ないようだし置き換えればいくね?
#!/usr/bin/python
line = ['javasine','rubyhorobe','kusojavarubysanpai']
for text in line:
text=text.replace("java","")
text=text.replace("ruby", "php")
print text
pya@debian:/home/pya> ./ptest
sine
phphorobe
kusophpsanpai
>>782 ありがとうございます。
.rstripのメソッドをつけると、textの内容を書き換えるわけじゃなくて
textにrstripを作用させたものを表すだけで、
それを(さらに加工するために)保存しておきたかったら、text2など、別の変数を確保する必要があるのですね。
なんか効率悪い方法な気がしますが、このように文字列加工する毎に、変数の数を増やしていくしかないのでしょうか。
リストのlist.append、list.removeなどは、ちゃんと元のlistを書き換えてくれるのですよね
わけわからなくなってきました
>>783 ありがとうございます
メソッドによって、元のデータを書き換える、書き換えないが決まっていて
統一したルールはないという感じなのでしょうか…
786 :
デフォルトの名無しさん:2014/05/06(火) 03:56:20.79 ID:l/RnXGfS
ちなみに 2.7.3
Rubyでは、sortなら新しい配列を返し、
sort! なら元の配列を変更する
破壊的なメソッドには、"!"が付く
text2 = text.rstrip("java").replace("ruby", "python")
>>787 正直その仕様うらやましいです。
私が慣れていないだけで、普通破壊的非破壊的は瞬時に分かるんでしょうか。
>>788 連結することができるんですね。ありがとうございます。
でも、変な中間オブジェクト作りたくないので、replaceのみを使うことにします。
破壊的なメソッドは名前が命令っぽいし非破壊的なら質問っぽいから大半は見分けがつく
どっちなのか不安になったらその都度マニュアルを読んだりサンプルを書いて調べる
ちなみに文字列はイミュータブル(変更不可)なオブジェクトだからメソッドが破壊的ということはないよ
基本型の範囲内で、イミュータブル型とミュータブル型の双方にあるメソッドで破壊的なのってあったっけ?
odsファイルをlibreofficeで開きたいのですが方法が分かりません。
環境はlinuxです
ファイラーでファイルをダブルクリックした時の動作をpythonで実行させるにはどうしたらいいでしょうか?
>>792 開くだけなら
import os
os.system('libreoffice /path/to/file')
フルパスのほうがいいかも
>>793 即レスありがとうございました!出来ました!!
try:
(省略)
if a > 100: raise "TooBig"
(省略)
except "TooBig":
って書いたら
exceptions must be old-style classes or derived from BaseException, not str
って出たんですが、2.7のバージョンでこれに代替するものはありますか?
今まで if とwhileだけで頑張ってて、やっと便利そうなものに出会えたのに・・
class TooBig(BaseException): pass
if __name__ == "__main__":
a = 101
if a > 100:
raise TooBig("ooki sugi")
else:
print("a <= 100")
>>789 text = text.rstrip("java")みたいに再代入すればいいだろ
それに変なことでもないし間違った考えは捨てるべき
クラス例外ってのがあるのですね!
今早速python Japanのチュートリアルを調べてみたのですが、エラーの例外処理しか書いてなくて
基本構文がどう働いているのかわかんない感じです。それで例外処理のメソッドの作り方もちょっとわかりません。
www.bioinfo.sfc.keio.ac.jp/class/genpro/Texts/Python1_4.htm
の最後の課題を仕上げて例外処理はぜひモノにしたいです!
対話型でエンターを使わずに改行してそのまま打つ方法ってありますか?
こういうことか?
>>> print("Hello, \
... World.")
Hello, World.
>>795 try:
(省略)
if a > 100: raise Exception("TooBig")
(省略)
except Exception as e:
if e.message == "TooBig":
print(u"でかい")
>>801 対話モードで長いプログラムを書くメリットがあるとは思えん
もしかしてテキストエディタを知らないとか?
>>803 あ、そうなんだ
テキストエディタは知ってるよ、ありがとう
モジュールのソースをダウンロードして python setup.py install という具合にインストールしようとしたのですが
pythonがvcvarsall.batを見つけてくれず途方に暮れています
vcvarsall.batを見つけられるようにpathにそれの入っている場所を通してはあります
これ以外の原因にはどんなものがあるんでしょうか
変数内のhtmlタグはそのままで、htmlタグ以外の<>を<と>に変換したいのですが、
何かいい方法があれば教えて下さい。
そんな壊れたhtmlを扱うのがおかしい
htmlを修正すればいい話で言語側で頑張る必要はない
808 :
806:2014/05/06(火) 15:06:52.43 ID:MUfoCXqr
>>807 html側は修正出来ないのです。
取得元がそういう仕様なので。
出来ないのであれば、諦めます。
普通に正規表現で置換すればいいと思うけど
pygame、PyOpenGLがインストールされているか確認する方法はありますか?
ねえねえPythonで猫は作れないの?
812 :
デフォルトの名無しさん:2014/05/06(火) 17:42:42.86 ID:ZzGxE59U
>>810 try:
import PyOpenGL
except ImportError:
print("cannot import PyOpenGL")
else:
print("imported PyOpenGL")
おおおお、そういうことだったかのか!
一度寝てもう一回見てみたらすぐにわかりました!
疲れたらいろいろ見えなくなるんですねw
ありがとうございます
>>796 >>802
p e p 8がチェックできる日本語のライブラリってありませんか?
816 :
806:2014/05/06(火) 22:40:12.03 ID:MUfoCXqr
>>812 情報有難うございます。
試してみましたが、思っていたものとは少し違うようでした。
しかし、BeautifulSoupでやりたいことが出来ましたので、解決しました。
どうもありがとうございました。
>>815 そもそもPEP8は英語使えといってるので諦めてはいかがですか?
なんでおれは空白を入れないとp e p 8って書込ができないのにあなたは普通に書き込めるのか!?
そんなばかな
pep8
pep8
PEP8
あれおかしいなpep8じゃなかった
なんのキーワードに引っかかったんだろう
823 :
デフォルトの名無しさん:2014/05/07(水) 03:19:51.82 ID:XMc35o9t
クマー
pep8がチェックできる日本語のライブラリってありませんか?
どれどれテスト
パイソン勉強すると慶應女とやれるって聞きました
本当ですか?
俺がやれてないので嘘です
諦めてください
PEP8ってファイルにエンコーディング宣言をするなっていうじゃないですか
ここの先輩方は書いてますか?
書いてますよ
そもそもPEP8にしたがってませんから
使っているライブラリがだいたいPEP8違反品なので
俺だけルールを守るは癪に障る
質問
linuxでwindowsみたいにダブルクリックで自動でコンソール開いて実行できるようにできますか?
pyenvで3.4.0をインストールしたんですがtkinterをimportできません
アドバイスお願いします
>>> import tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/toyohiko/.pyenv/versions/3.4.0/lib/python3.4/tkinter/__init__.py", line 40, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
いろいろパッケージいれまくってインストールしなおしたらimportできました
curses のときとまったく同じじゃないかもう
まるでせいちょうしていない…のか?
class Foo(object):
def __init__(self, x, y):
pass
def ...
こういう空行ってみなさん空白入れてます?
docstring
pep8的には入れないほうがいい
でもそこまできにしてない