トップページ⇒tech
991コメント320KB

くだすれPython(超初心者用) その25©5ch.io

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/11/05(水) 16:40:01.25ID:Awvl8HhM
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その24
http://peace.2ch.net/test/read.cgi/tech/1407008551/
関連スレ
Pythonのお勉強 Part50
http://peace.2ch.net/test/read.cgi/tech/1413474092/

◆関連リンク Python の Home Page
ttp://www.python.org/
ttp://www.python.jp/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

◆まとめwiki
ttp://python.rdy.jp/
0002デフォルトの名無しさん2014/11/05(水) 16:40:34.10ID:Awvl8HhM
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
0003天麩羅ここまで2014/11/05(水) 16:41:12.77ID:Awvl8HhM
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0004デフォルトの名無しさん2014/11/05(水) 16:54:56.84ID:FFOVrxV7
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0005デフォルトの名無しさん2014/11/06(木) 09:56:27.31ID:Jg48RgBo
乙
0006デフォルトの名無しさん2014/11/06(木) 18:01:40.45ID:ntLQp+bs
おつ
0007デフォルトの名無しさん2014/11/07(金) 07:53:53.16ID:u+2F0oww
readやreadlinesに漠然とした恐怖感を感じることが第一歩だ。
gcの動きは?セキュリティホールは?スクリプト言語も実は楽じゃない。
0008デフォルトの名無しさん2014/11/07(金) 22:17:14.18ID:0uoUgHvR
そんなん気にする奴はスクリプト言語使わない
0009デフォルトの名無しさん2014/11/09(日) 18:59:46.36ID:kpf0ITqg
django一応チュートリアルだけ翻訳したけどこれ公開していいのかよくわかんないからメールで問い合わせたけど返信こねぇぞ
0010デフォルトの名無しさん2014/11/09(日) 19:18:50.90ID:SLONFsRa
>>9
プルリク送ればいいんじゃね?
0011デフォルトの名無しさん2014/11/09(日) 19:59:55.69ID:kpf0ITqg
おれがメール出したのは本家のほうだぜ
やる気のない日本人のグループじゃない
0012デフォルトの名無しさん2014/11/09(日) 20:04:26.51ID:RjxQ6mlt
チュートリアルのライセンスにすら目が行ってないのに本当に翻訳できてんですか?あ?
0013デフォルトの名無しさん2014/11/09(日) 20:08:54.75ID:kpf0ITqg
チュートリアル専用にライセンスなんてあるの?ねえねえどこ?
おれはhttps://github.com/django/django/blob/master/LICENSEしかしらないよ?
これで勝手に翻訳公開しても言いわけ?ねえねえねえ?
0014デフォルトの名無しさん2014/11/09(日) 20:10:01.92ID:RjxQ6mlt
目くらはすっこんでな
もしくは電車に飛び込んでろ
0015デフォルトの名無しさん2014/11/09(日) 20:11:00.30ID:kpf0ITqg
(^_-)-☆
0016デフォルトの名無しさん2014/11/09(日) 20:13:48.84ID:GNe3oHbG
とりあえず無断で公開しとけば?
問題があるなら文句が来るでしょう
もっとも、本家が目くじら立てる理由はないと思うが
0017デフォルトの名無しさん2014/11/09(日) 20:16:18.63ID:GNe3oHbG
あ、これがやる気のない日本人のグループを煽るdisるための口実で
実際はアウトプットするようなものが何もなくても私は責めないですよ
安心してね
0018デフォルトの名無しさん2014/11/09(日) 20:30:32.09ID:RjxQ6mlt
なんだかんだ理由をつけて最終的には逃走するからよく見とけ
0019デフォルトの名無しさん2014/11/09(日) 20:49:53.37ID:Hbypsl7w
id:RjxQ6mlt お前もういいよ
0020デフォルトの名無しさん2014/11/09(日) 20:57:17.53ID:zM7Eaqbs
ドットインストールでPythonをひと通り勉強したのですが今この段階でどのようなアプリがつくれるのですか?
応用もふくめてでお願いします。
0021デフォルトの名無しさん2014/11/09(日) 21:13:32.97ID:T8NGFKFe
あとは時間さえかければあなたが想像できるすべてのソフトが作れます
0022デフォルトの名無しさん2014/11/09(日) 22:04:45.32ID:ZPwU2EoE
三角コーンの上に白いまきまきしたの乗せたやつだな>>ソフト
0023デフォルトの名無しさん2014/11/09(日) 23:45:55.04ID:RjxQ6mlt
>>19
何がもういいんだって?
何様だお前は。ウンコの国の国王陛下か何か?
0024デフォルトの名無しさん2014/11/09(日) 23:50:58.47ID:GQTMLQvA
RjxQ6mltはやる気のない日本人グループの一員なのかい
0025デフォルトの名無しさん2014/11/13(木) 11:12:50.58ID:dS9drdDA
pystache
https://pypi.python.org/pypi/pystache/0.5.4
0026デフォルトの名無しさん2014/11/13(木) 14:32:30.78ID:LQqLt9Sh
人生はゼロから生まれゼロに戻るのだから、失敗しても何も損はしない
(英コント集団モンティ・パイソンから)
※いやホント、生まれてくるときは素ッ裸だけど、死ぬときは少なくともパンツははいてるからね(笑)。
どれだけ失敗しても生まれたときよりマイナスになるこたぁない。気楽にいこう。
0027デフォルトの名無しさん2014/11/13(木) 14:55:37.85ID:1IhIdMPE
>>11
返事来た?公開まだw?
0028デフォルトの名無しさん2014/11/13(木) 20:24:34.70ID:Bexk6xV/
公式ドキュメントの和訳がお粗末に尽きる
プログラミングの知識のない人が原文をそのまんま訳してる感じ
日本のPython技術者はこれを見て育つのだから、もっとしっかりやってもらいたい
0029デフォルトの名無しさん2014/11/14(金) 02:41:17.45ID:gEKLwuxR
>>1 のテンプレにあえて ttp://www.python.jp/ 入れてなかったのに
復活させた馬鹿の罪は重い
0030デフォルトの名無しさん2014/11/14(金) 02:51:55.43ID:O4zm7PQU
英語は読解の努力で済むけど
日本語の方は解読から始めないといけなくて
結局原文を読むことになることなったりする
0031デフォルトの名無しさん2014/11/14(金) 03:02:03.32ID:fyhc9+Ta
翻訳のできが悪いというならあなたがやってもいいんですよ?
0032デフォルトの名無しさん2014/11/14(金) 03:04:42.46ID:gEKLwuxR
原文見て判る人
→翻訳の悪さに気付いても原文見て済ますから自分で翻訳しようとは思わない


原文が判らない人
→翻訳の悪さに気付かない&気付いてもなにも出来ない


↓
だれも翻訳の修正をしない
0033デフォルトの名無しさん2014/11/14(金) 03:07:52.91ID:fyhc9+Ta
>>32
自分がいままでこの手の翻訳プロジェクトに参加したことがなのをさらすカキコですね。
0034デフォルトの名無しさん2014/11/14(金) 03:22:17.38ID:gEKLwuxR
お金をもらう人
→誰が読もうが読まなかろうが成果物納品して金だけもらう
0035デフォルトの名無しさん2014/11/14(金) 07:37:58.22ID:wpiv66DF
病んでれ
0036デフォルトの名無しさん2014/11/14(金) 07:49:08.66ID:jAGOFrlY
>>32
その例だと別に誰も悪くはないよね
誰かを悪だと言いたいのかもしれないが
例えばDj…
0037デフォルトの名無しさん2014/11/14(金) 11:22:51.71ID:G/qLyVZA
DJ KAORI?
0038デフォルトの名無しさん2014/11/14(金) 13:30:42.89ID:rxnPKvOr
文法を覚えたところで、それはプログラミングの前衛知識のひとつを得たにすぎない
日本語の文法覚えたことと、日本語で面白い本を書けることは別だよね
プログラミングの奥深さはその先にあるんだよ
まあ仕事でやってる人でも、特にドカタ的な人は理解してないことが多いけどね
0039デフォルトの名無しさん2014/11/14(金) 14:29:39.90ID:5Xz45IZb
文法覚えるだけで前衛的な知識が得られるなんて、すげぇじゃんwww
0040デフォルトの名無しさん2014/11/14(金) 15:03:56.14ID:PoP9COyz
というか前衛じゃなくて前衛だと思うんだ(小声
0041デフォルトの名無しさん2014/11/14(金) 15:05:02.66ID:PoP9COyz
前提って言いたかったんだ・・・
0042デフォルトの名無しさん2014/11/14(金) 15:14:02.87ID:cYY7mpaQ
盾役カモーン
0043デフォルトの名無しさん2014/11/15(土) 00:38:03.71ID:56omsSeh
もうこの業界離れたんだけど、今でも派遣と言う名の偽装請負連中は
ifとforが書ければ言語はマスターしたと見做すみたいな風潮なん?
0044デフォルトの名無しさん2014/11/15(土) 04:23:32.76ID:L1YjzjuF
そんなもんじゃねえの
書けない奴すら未だにセット割とかでねじ込んで来るという
0045デフォルトの名無しさん2014/11/15(土) 04:31:04.40ID:2FIfZBqH
セット割!そういうのもあるのか!
0046デフォルトの名無しさん2014/11/15(土) 04:34:23.14ID:L1YjzjuF
3人だとお安いけど1人は足引っ張るよって感じ
0047デフォルトの名無しさん2014/11/15(土) 08:15:47.24ID:9oSuAzwe
人月で発注するからそうなる
0048デフォルトの名無しさん2014/11/16(日) 08:27:33.56ID:lR2mulvd
日本語が出来てもプロとして仕事が出来るってことじゃないしね
俺、プログラム言語(Pythonとか)はすごく出来る。
そうか、じゃ車のエンジン制御のプログラム(プロとしての仕事)やってって言われても
車のエンジン制御のしかたさっぱり分からん><って良くあるしね
0049デフォルトの名無しさん2014/11/17(月) 19:56:20.02ID:dw5uN+ZK
パイパイ
0050デフォルトの名無しさん2014/11/18(火) 18:52:11.63ID:Eijilsh0
import __main__
ってどゆ意味ですか
0051デフォルトの名無しさん2014/11/18(火) 23:48:09.74ID:G2suecvD
str.isalnum()が日本語も通してしまうのですが、英数字のみ通すにはどうしたらいいでしょうか
0052デフォルトの名無しさん2014/11/19(水) 00:17:06.82ID:qPp6+7V/
> 'あ'.isalnum()
True
> 'あ'.encode('sjis').isalnum()
False
> '1'.encode('sjis').isalnum()
True

...とかはないなぁ、もっと違うやり方があるよね...
0053デフォルトの名無しさん2014/11/19(水) 06:24:02.86ID:Ec+tJ+no
c.isalnum() and ord(c) < 128
全角のあるなむを含む方法は分かりません
0054デフォルトの名無しさん2014/11/19(水) 11:14:52.25ID:zPQMYzMI
日本語でおk
0055デフォルトの名無しさん2014/11/19(水) 11:47:34.09ID:Fl85R1m1
>>51
正規表現を使うのが明示的で無難だと思う

>>> import re
>>> re.match(r'^[0-9A-Za-z]+$', 'あ')
0056デフォルトの名無しさん2014/11/19(水) 12:01:30.79ID:claDfeAr
>>> import unicodedata
>>> unicodedata.category(u'あ')
'Lo'
>>> unicodedata.category(u'A')
'Lu'
>>> unicodedata.category(u'a')
'Ll'
>>> unicodedata.category(u'0')
'Nd'
>>> unicodedata.category(u'+')
'Sm'
>>> unicodedata.category(u'A')
'Lu'
>>> unicodedata.category(u'ア')
'Lo'
>>> unicodedata.category(u'亜')
'Lo'
0057デフォルトの名無しさん2014/11/19(水) 12:20:31.01ID:akX+E6PE
>>53
SJISの2バイト目を甘く見すぎ
0058デフォルトの名無しさん2014/11/19(水) 17:55:24.86ID:JZ2oYyd9
http://melpon.org/wandbox
0059デフォルトの名無しさん2014/11/19(水) 21:58:52.42ID:3pB6QtrL
if __name__ == "__main__"ってどういうときに使うものですか?

[b.py]
def aaa():
print(1)

[a.py]
import b
b.aaa()

これで十分な気がするんですが
0060デフォルトの名無しさん2014/11/19(水) 22:21:53.16ID:iy1M9qAa
>>59
ライブラリとしてもトップレベルのスクリプトとしても
使えるようにしたいときにそうする
SimpleHTTPServer あたり見てみるといい
0061デフォルトの名無しさん2014/11/20(木) 11:29:06.22ID:eVYyucNI
クラスやライブラリ関数を定義しておいて、mainブロックにはそのテストコードを書くとか
0062デフォルトの名無しさん2014/11/20(木) 11:43:26.71ID:Tt8JtOUX
メインの起動スクリプトに関数とからクラスを書くことがおかしい
そういうのは外部ファイルにまとめるべきだ
0063デフォルトの名無しさん2014/11/20(木) 11:57:12.20ID:EmAWw9wC
main() と __main__ は無関係だけど
書き捨てスクリプトでも
main() や __main__ は書く習慣にしといた方が無難
0064デフォルトの名無しさん2014/11/20(木) 12:56:04.22ID:jwSFt3Jc
ターミナルでコマンドとして使えるようなものを作りたくて、PyPIにあるソフトのソースをみてみたりしたのだが、構造というか設計の意味?がまだ自分は理解できません
例えばmain.pyの役割とか

$ python pugyaaa.py というのではなく
$ pugyaa -option_x hogefile というやり方で動くプログラムはどうやって作ればいいのかということなんですが
良いサイト、知っておくべき事柄などがあればググる言葉でいいので教えてください
0065デフォルトの名無しさん2014/11/20(木) 13:27:01.58ID:6q5qt+KO
pythonらしいプログラムの構造が分かりません
C言語で書いたような感じになってしまいます
局所的なものでは綺麗なforの書き方とかはググって出たのですが
もっと全体的な設計?というのが知りたいです
0066デフォルトの名無しさん2014/11/20(木) 13:46:32.82ID:EmAWw9wC
> $ pugyaa -option_x hogefile というやり方

$ pugyaa.py -option_x hogefile
でも良ければ
pugyaa.py の先頭に shebang を書く

shebang 書いてあれば
$ pugyaa
でも逝けるとは思うが紛らわしいかも知れない

オプションやコマンドラインの使い方は python より linux/bsd/unix の板で聞いた方が良い
0067デフォルトの名無しさん2014/11/20(木) 17:03:21.21ID:jwSFt3Jc
>>66
質問の仕方が不味かったのにレスをもらって気がつきました
自分がやりたいのは、例えばunittestのように
$ unittest -c hoge.py
と呼び出しができるプログラムのことです(オプションは適当)
pugyaa.pyという単独のスクリプトではなくpugyaaというパッケージ?のプログラムを作成して、それをターミナルで呼び出せるものにしたいということです
$ pugyaa_command -option_x hogefile と書くべきでした
0068デフォルトの名無しさん2014/11/20(木) 17:06:40.35ID:7mTde6YP
後出しアウト
0069デフォルトの名無しさん2014/11/20(木) 17:08:51.73ID:kM/REAEx
>>67
そういうふうにできるパッケージのソースコードを読むところから始めろよ
0070デフォルトの名無しさん2014/11/21(金) 21:29:10.12ID:emLR1Bt2
文字列を正規表現で普通の文字列として扱われるようにエスケープしたいのですが、そのようなライブラリは有りますか?
0071デフォルトの名無しさん2014/11/21(金) 21:43:07.20ID:J6SMxvGo
re.escape
0072デフォルトの名無しさん2014/11/21(金) 22:19:56.43ID:emLR1Bt2
>>71
それだと日本語までエスケープされてしまいます。
*等の正規表現に使われる文字だけエスケープする方法はありませんか?
0073デフォルトの名無しさん2014/11/21(金) 22:23:07.27ID:Z4gL4MHq
ええやんけ別に
0074デフォルトの名無しさん2014/11/21(金) 22:41:06.57ID:zMe5L6ad
どういうふうにしたいのかサンプルをいくつか書いて
0075702014/11/23(日) 16:17:12.18ID:Pt0iPmF5
解決しました
0076デフォルトの名無しさん2014/11/23(日) 20:26:38.42ID:yEbURLmy
「Python文法詳解」って本ちょっと気になっててアマゾンレビュー付くの待ってたんだけど
付いた評価が2ww あーこりゃ買わないかなぁ・・ もちょっと情報出てるかなとググッてみたら
正誤表が出てやんの、んで正誤表見てみたら間違いだらけwwwwww
しかも舐めてんのかっていうくらいのヒドイ内容の間違いだらけwww

もう買う買わない以前に本として終わってるわ、こんな本出してる著者終わったなって思ったね
なんかさPython関連の本ってクオリティ低いの多くね? ウンコが本書いてんじゃねーよw
0077デフォルトの名無しさん2014/11/23(日) 20:29:42.60ID:E0tXkl0n
公式見ればいいから
そういう本を買う必要が・・・
買って価値があると思ったのはエキスパートパイソンぐらい
0078デフォルトの名無しさん2014/11/23(日) 20:45:24.94ID:QgGlHFFa
>>76
ひどいレビューだった。著者かわいそす

正誤表、正と誤で入力が同一なのに出力が違うのはなんでだろう
プロンプトの入出力をコピペしたのではなく
それっぽく手書きしたんじゃないかと勘ぐっちゃうな
0079デフォルトの名無しさん2014/11/23(日) 21:53:19.92ID:N3XI4gdr
>>78
たぶん手打ちテキストを画面っぽく印刷してるんだと思う
プロンプト画面を取り込むのってそんなに難しいんだっけ?

しかしホント舐めてるよね
技術本って高価なうえにそれを信じて仕事に使う人も多いわけで
普通の本よりも誤植には注意して作ってもらわないと困るのに
最終原稿をいっぺん著者側で通して読み直すとか、サンプルコードが
画面通りの結果になるか試してみるとか、それすらしないんだからな
編集者たちの顔が見てみたいよ
0080デフォルトの名無しさん2014/11/23(日) 22:39:05.56ID:u5wQpN3r
ちょっと毛色違うけど
WordPressとかのガバガバな設定例とか載せてる本はホント死ねよ
くびり殺されろ
0081デフォルトの名無しさん2014/11/24(月) 00:12:17.03ID:NFvfX/bb
python見たいな動的型付け言語ってリファレンス読みにくくね?
みんなどうしてんの?
0082デフォルトの名無しさん2014/11/24(月) 06:10:59.07ID:eOmEBZPc
>技術本って高価なうえに
(略)
>サンプルコードが画面通りの結果になるか試してみるとか、それすらしないんだからな

高価なのは理由があるのに
これじゃ詐欺だね
0083デフォルトの名無しさん2014/11/24(月) 10:20:24.44ID:fpTO9n+F
較正の回数を減らして値段を下げている面もあるし
別本だけど、本の値段が1500円上がったわ
0084デフォルトの名無しさん2014/11/24(月) 10:23:28.17ID:gIu/y3Pi
x 較正
o 校正
0085デフォルトの名無しさん2014/11/24(月) 10:46:07.76ID:Rjvgb28d
パーフェクトPythonは、3千円以上するのにコードミスを含む誤植が100箇所以上あって
未だに出版社から正誤表が出ていないというひどい本

これでパーフェクトを名乗って恥ずかしくないんだろうかと著者紹介を見ると、
Pythonサポーターズと称する様々な職業の人の寄せ集めで、要は出版というものに
プライドを持っていない、バイト感覚の人たちなんだろうと推測する
だからこんなお粗末なことをして平気でいられるんだろう
誤植一箇所につき10円返金しろと言いたい
0086デフォルトの名無しさん2014/11/24(月) 11:23:11.38ID:fpTO9n+F
>>84
oh...

>>85
重版か改訂かからないと修正もままならぬものよな
だが、そこはビジネスチャンスでもあるので
我々はうまいことやっているわけです
0087デフォルトの名無しさん2014/11/24(月) 11:35:25.73ID:xDPsuXis
俺は○○サポーターズとユーザー会の本は買わないとお星様に誓った
0088デフォルトの名無しさん2014/11/24(月) 12:48:05.69ID:JyotAVq+
正解
0089デフォルトの名無しさん2014/11/24(月) 13:20:55.47ID:2tzTlBla
悲しいわね・・・
0090デフォルトの名無しさん2014/11/24(月) 13:24:21.42ID:fhSaIGeE
オライリーしかないと思うけど、初心者はどのオライリー買えばいいの?
0091デフォルトの名無しさん2014/11/24(月) 14:45:10.67ID:TKxlIcb/
>>85
10年以上前に買った同じ出版社の access vba の本も寄せ集めだった
それは承知の上だったが、HPからDLしたソースの番号がでたらめで、どの
ファイルがどのサンプルなのか、いちいち開いてみないと分からないのには呆れた
メールしたけど返事も無く、訂正もされなかった
0092デフォルトの名無しさん2014/11/24(月) 23:08:21.66ID:vrf5+UU7
>>76
目次がショボいと思いました。
技術評論社のポケットリファレンスみたいな使い道の本だと思うのでもっと目次を充実させてサイズをコンパクトにして欲しかったです。

パーフェクトPythonは広く浅くな本なので中途半端に不便さを感じました。
0093デフォルトの名無しさん2014/11/25(火) 10:48:39.01ID:gsquWzs9
>>90
初心者は公式ドキュメント読めよ
オライリーの日本語訳って未だにPython2しかなかった希ガス
0094デフォルトの名無しさん2014/11/25(火) 21:40:46.47ID:WbGS6JfL
Linux環境でPythonってどんなときに使ってますか?
シェルコマンドを駆使する場合、シェルスクリプト使ったほうが簡単に出来るのでどういう用途で使われてるのか知りたかった限りです
0095デフォルトの名無しさん2014/11/25(火) 21:50:23.83ID:8ektkpGa
Linux環境でPythonプログラミングするときに使ってますけど
0096デフォルトの名無しさん2014/11/25(火) 22:07:04.47ID:OAu3+orl
>>95
ありがとうございます!
非常に助かりました!
0097デフォルトの名無しさん2014/11/25(火) 22:17:44.19ID:C5WEAxvj
いえいえ!どういたしまして!
0098デフォルトの名無しさん2014/11/25(火) 22:36:43.77ID:USvtmY11
おい
0099デフォルトの名無しさん2014/11/25(火) 22:36:44.24ID:rjfdVhTp
>>93
Pythonチュートリアル第2版はPython3
0100デフォルトの名無しさん2014/11/25(火) 22:43:47.84ID:w3TN5Y2v
マジレスするとオブジェクト指向
0101デフォルトの名無しさん2014/11/26(水) 01:32:58.87ID:9zht01Nx
Linuxだと、GUIの小物ツールとか結構Python製だったりするよ
0102デフォルトの名無しさん2014/11/26(水) 04:18:04.68ID:xLpFKyQi
ソフトバンクの変なロボットはpythonで動かせるとか
海の向こうでは何でもpythonなんですかね。日本でも今後需要増えるんでしょうか?
0103デフォルトの名無しさん2014/11/26(水) 08:13:16.30ID:vFf7Ls5f
増えないと思いますよ
だって君、英語読めないでしょう?
0104デフォルトの名無しさん2014/11/26(水) 09:42:58.11ID:nz5Is923
PySideを触り始めたんですが、keyPressEventの処理がうまくいきません。
class Window(QtGui.QDialog):
(略)
_def keyPressEvent(self, event):
__if event.key() == QtCore.Qt.Key_0:
___self.close()

上記のコードで、QTextEditを配置しその上にフォーカスがあると"0"を押してもQTextEditに0が入力されるだけで親にイベントが伝搬していないようです。
今のところkeyPressEventを再定義したQTextEditの継承クラスをわざわざ定義していますが、特定のキーイベントを親に流したいだけなので冗長に思います。
特定のキーイベントだけ(あるいは全部)親に渡すような簡単な方法があれば教えてください。
0105デフォルトの名無しさん2014/11/26(水) 09:58:30.16ID:lSnM4E9y
qtextedit にフォーカスがあるか親フレームにフォーカスがあるか
qtextedit から親にプレスイベントをemitすれば良い
0106デフォルトの名無しさん2014/11/26(水) 10:18:50.29ID:tFYAbi6x
104<<githubでコード検索すれば答えはあるでしょう
0107デフォルトの名無しさん2014/11/26(水) 11:42:48.43ID:nz5Is923
>>105
どう調べればいいものか困っていたのでヒント助かります。親ウィンドウの定義内で
(__init__内)
self.edit = QtGui.QTextEdit()
self.edit.keyPressEvent = self.keyPressEvent
(略)
def keyPressEvent(self,event):
_this_widget = self.focusWidget()
_if isinstance(this_widget, QtGui.QTextEdit):
__print('unko')
__QtGui.QTextEdit.keyPressEvent(this_widget, event)
でとりあえずQTextEdit内の入力を妨げることなくキーイベントに追加処理をあてられるようになりました。
やり方がアレな気がするので他の人のコードを見ながら改良してみます。ありがとうございました。
>>106
右も左もさっぱりなので時間みながら地道にgithub覗くことにします。
0108デフォルトの名無しさん2014/11/27(木) 11:39:19.19ID:hJm0HB30
TATSUO IKURA の写真がかわったぞ
0109デフォルトの名無しさん2014/11/27(木) 11:42:08.95ID:ZoBqTrPg
脂っこさがなくなったな
無機的になったとも言うw
0110デフォルトの名無しさん2014/11/30(日) 03:56:42.59ID:b4nmdqGs
判ってない人の判ってないブログ
0111デフォルトの名無しさん2014/11/30(日) 04:10:16.40ID:CR+pCvU9
あの内容のなさで検索上位に居続けるのは驚嘆すべきSEO技術だと思うわ
0112デフォルトの名無しさん2014/11/30(日) 12:29:01.21ID:tTeiN462
a_list= None
b_list= list()
として、
if a_list: 又は if b_list: だと、a_list も b_list も Falseが返ります。
b_list だけ Trueを返すような判定法で、おすすめは何でしょうか。
0113デフォルトの名無しさん2014/11/30(日) 12:36:28.58ID:5iCvS2Es
>>112

b_list is not None

isinstance(b_list, list)
01141122014/11/30(日) 13:17:40.35ID:tTeiN462
ありがとうございます。
False と Noneの違いが、よく分かっていませんでした。
0115デフォルトの名無しさん2014/11/30(日) 13:56:20.48ID:Q44JDfrW
not b_list is None
0116デフォルトの名無しさん2014/12/02(火) 20:57:31.65ID:hSje/okN
複数の引数を取る関数にmapを適用する方法があったら教えて
0117デフォルトの名無しさん2014/12/02(火) 21:23:42.55ID:M58WL9A2
import itertools

def add(a, b):
return a + b

L = [1, 2, 3, 4, 5]
print map(add, L, itertools.repeat(3, times=len(L)))
print map(add, L, [3] * len(L))
print map(lambda a: add(a, 3), L)

こういうこと?
0118デフォルトの名無しさん2014/12/03(水) 07:47:26.04ID:/RLfm3vM
>>117
そうです
引数をどうやって与えるのかわからなくて
示していただいたコードで考えてみます
0119デフォルトの名無しさん2014/12/03(水) 08:06:51.70ID:MpOxswJ4
>>> map(lambda a, b: a + b, "abc", "def")
['ad', 'be', 'cf']
>>> map(lambda a, b, c: a + b + c, "abc", "def", "ghi")
['adg', 'beh', 'cfi']

正直あんまり使わない
0120デフォルトの名無しさん2014/12/03(水) 15:57:22.96ID:YLIoypJg
pip installをしてみても
raise ValueError(str(list(result.keys())))
ValueError['path']
とでるだけで出来ないのですがどうすれば良いでしょうか
python3.4.2で今朝インストールしたばかりです
0121デフォルトの名無しさん2014/12/03(水) 19:18:39.57ID:CAxPUjtZ
釣りかな?
0122デフォルトの名無しさん2014/12/04(木) 17:05:09.33ID:ifAZ7vuT
formatの感嘆符のあとのs,rはなんですか。
strかreprらしいのですがよくわかりません。

List = ["aa","bb","cc"]

'{0},{1},{2!r}'.format(*List)
"aa,bb,'cc'"
'{0},{1},{2!s}'.format(*List)
"aa,bb,cc"
'{0},{1},{2}'.format(*List)
"aa,bb,cc"
0123デフォルトの名無しさん2014/12/04(木) 17:10:47.43ID:UwyMS5sV
釣りかな?
0124デフォルトの名無しさん2014/12/07(日) 16:26:57.55ID:JyUOAjZz
apacheでmultipart/form-data形式でファイルを送信されたとき、
cgiモジュールは標準入力の内容を一度全部メモリ上に読み込んでいるんでしょうか?
もしそうなら、最初の要素から順に読み込ませてメモリ使用量を抑える方法はありますか?
0125デフォルトの名無しさん2014/12/07(日) 16:45:32.79ID:GOj11zUj
ソースを読む限りは、必要になった分だけ順次read/readlineしているようだよ
Python2.7.8の場合、cgi.pyの230行目くらいにある
0126デフォルトの名無しさん2014/12/07(日) 16:46:50.73ID:GOj11zUj
ものすげー前代未聞なくらい空目ったぞ
今のなし
0127デフォルトの名無しさん2014/12/08(月) 18:09:03.96ID:d6bXZb5C
2.7で
print("あ")
print(["あ"])

2番目、なんでアスキーコードに変換されるんですか
0128デフォルトの名無しさん2014/12/08(月) 19:04:12.44ID:KCPal8fz
>>> print(str([u'あ']).decode('unicode-escape'))
[u'あ']
>>> print(str(['あ']).decode('string-escape'))
['あ']

http://python.rdy.jp/wiki.cgi?page=japaneseCharset
0129デフォルトの名無しさん2014/12/08(月) 20:21:46.23ID:uo19JAd8
pythonって初見だと
日本語の扱いで苦労しまくるよなあ
0130デフォルトの名無しさん2014/12/08(月) 21:18:01.42ID:3j8XWElx
むしろPythonに限らず日本語とかうまく扱えるはずないじゃん!と思ってとりかかるべき
0131デフォルトの名無しさん2014/12/08(月) 21:44:22.73ID:bX3RsKhP
日本語がどうのこうの言ってんの2までじゃないの
0132デフォルトの名無しさん2014/12/08(月) 22:29:47.15ID:XOsA95NW
まだ2.7が主流ですし
0133デフォルトの名無しさん2014/12/09(火) 01:18:13.63ID:mUiJkLsL
と、ロートルが申しております。
0134デフォルトの名無しさん2014/12/10(水) 09:51:38.10ID:kUP0yqqm
>>129
勝手によきにはからって後になって忘れた頃に文字化けに悩まされるより
最初から例外出してくれた方がありがたいという思想だということに気付けばあとは氷解
0135デフォルトの名無しさん2014/12/10(水) 10:35:42.16ID:McT8v6hQ
2.7で日本語扱う場合はu'あ'みたいにuをつけとけばいいってことで合ってますか?
0136デフォルトの名無しさん2014/12/10(水) 13:52:43.52ID:evPa2cl4
それは必要条件であって充分条件ではないよ

あと
a = u'あ'
の代わりに
b = 'あ'.decode('ファイルを保存したときのエンコード')
と書いてもいける
0137デフォルトの名無しさん2014/12/10(水) 14:34:29.37ID:ChUOhoY6
日本語とかを含む文字列リテラルに u つけないのは
sjisと0x5cみたいなのが気になるからあんまりよくないはず
0138デフォルトの名無しさん2014/12/10(水) 14:42:56.96ID:X/Vb7CZT
>>136 必要と十分が逆じゃね
0139デフォルトの名無しさん2014/12/10(水) 15:00:18.04ID:yfExYDOY
釣りかな?
0140デフォルトの名無しさん2014/12/11(木) 10:28:15.97ID:o0EaoagT
from pprint import pprint as print
みたいにprintを上書きする方法ありませんか?
0141デフォルトの名無しさん2014/12/11(木) 11:04:22.29ID:o0EaoagT
random.shuffle(xrange(10))はエラーで
random.shuffle(range(10))はエラーじゃないのは何故ですか
0142デフォルトの名無しさん2014/12/11(木) 11:15:14.43ID:SY3PmBw7
shuffleの受け取る引数はリストで
rangeの返り値はリストで
xrangeの返り値はxrangeオブジェクトだから
0143デフォルトの名無しさん2014/12/11(木) 16:04:01.78ID:qKHRQsDr
>>140
from pprint import pprint
print = pprint
0144デフォルトの名無しさん2014/12/11(木) 16:13:08.54ID:SY3PmBw7
Python2はprintが文だから無理
0145デフォルトの名無しさん2014/12/11(木) 17:25:04.80ID:qKHRQsDr
global print
とか宣言して上書きできないかな
0146デフォルトの名無しさん2014/12/11(木) 18:57:11.12ID:YFaDd8+H
釣りかな?
0147デフォルトの名無しさん2014/12/11(木) 19:28:09.16ID:6slixBmx
質問です。
Javascriptでブラウザ上から操作してある値を得て
その値をAjaxを使ってサーバー側のPythonに送って処理して
その処理した値をJavascriptの方に返したいのですが
どうすればいいでしょうか?
0148デフォルトの名無しさん2014/12/11(木) 19:49:24.50ID:dUmItZfA
根本的にHTTPの知識が足りないんじゃねーの
0149デフォルトの名無しさん2014/12/11(木) 20:04:44.45ID:7wRfLV17
pyscripterを使い始めたのですが、モジュールのインポートでエラーが起こります。
コマンドプロンプトからだとしっかりインポートできるので、pyscripter上の設定がうまく言ってないのかなぁと思うのですが、どなたか解決方法をご存知の方は居られますか?
0150デフォルトの名無しさん2014/12/11(木) 21:24:43.54ID:zZIL+BW/
このあとつくレスの内容がわかるよな?
答えはエラーの内容を貼れだ
0151デフォルトの名無しさん2014/12/11(木) 21:32:59.99ID:ZURpiEMX
エラー読めエラー
エラー文程度の英語は読もう
辞書引け辞書
0152デフォルトの名無しさん2014/12/11(木) 21:34:38.15ID:GpAyUabF
>>147
ここは言語スレだから、Webプログラミングについては
WebProg板にある以下のスレで質問したほうがいいと思う
・【Python】Python Webフレームワーク総合スレ
 http://kanae.2ch.net/test/read.cgi/php/1329996601/
0153デフォルトの名無しさん2014/12/11(木) 22:10:38.95ID:7wRfLV17
エラー内容は

Inport Error:No module named '〜'

というものです。先にも書きましたが、同じスクリプトをコマンドプロンプトから実行した場合にはしっかりインポートできました。なのでインポートしたいモジュールのディレクトリが間違ってるとかはないと思うのですが
・・・
0154デフォルトの名無しさん2014/12/11(木) 22:12:50.22ID:dUmItZfA
sys.path表示してみろよ
printか何かで

モジュールはそこにないと読まれない
0155デフォルトの名無しさん2014/12/11(木) 22:30:40.27ID:7wRfLV17
なるほど

ただ、今pyscripter上でprint(sys.path)したらNameError:global name 'sys' is not definedとなってしまいました。

さて、申し訳ないのですが明日早いのでひとまず持ち越しさせてください。
有難うございました。
0156デフォルトの名無しさん2014/12/11(木) 22:46:42.90ID:6slixBmx
>>152
ありがとうございます
0157デフォルトの名無しさん2014/12/12(金) 03:53:45.69ID:iNQHvDR7
馬鹿には無理
0158デフォルトの名無しさん2014/12/12(金) 04:23:40.16ID:l0cPHPUF
馬鹿には無理の馬鹿キタ━(゚∀゚)━!
0159デフォルトの名無しさん2014/12/12(金) 06:08:08.67ID:iNQHvDR7
嬉しそう
0160デフォルトの名無しさん2014/12/12(金) 07:53:04.64ID:B5AH1Q7I
くやしいのぅ
0161デフォルトの名無しさん2014/12/12(金) 10:05:51.16ID:5NCaXpKG
無理には馬鹿
0162デフォルトの名無しさん2014/12/12(金) 17:05:33.34ID:3ynwoAwo
釣りかな?
0163デフォルトの名無しさん2014/12/12(金) 17:07:31.62ID:z5EZhpJA
高橋是清
0164名無しさん@そうだ選挙に行こう2014/12/14(日) 11:29:47.89ID:iMl+g16a
すんません。

"my_list"というリストがあって、リストを先頭から操作するにはfor文を使って
以下のように記述すると思うのですが、先頭からではなく、最後から先頭に向かって
ループを回す方法を探しています。いい方法はあるでしょうか。

for my_line in my_list:
print my_line
0165名無しさん@そうだ選挙に行こう2014/12/14(日) 11:33:34.26ID:cr5Eplup
for i in range(len(a)-1, -1, -1):
print(a[i])
0166名無しさん@そうだ選挙に行こう2014/12/14(日) 11:34:15.67ID:cr5Eplup
a.reverse()
for i in a:
print(i)
0167名無しさん@そうだ選挙に行こう2014/12/14(日) 11:35:00.18ID:OgL3dLSe
>>164
for myline in reversed(my_list):
print(n)

これでどうでしょう?
0168名無しさん@そうだ選挙に行こう2014/12/14(日) 11:35:17.44ID:cr5Eplup
while a:
print(a.pop())
0169名無しさん@そうだ選挙に行こう2014/12/14(日) 11:36:21.37ID:OgL3dLSe
nじゃなかった。
for myline in reversed(my_list):
print(myline)
0170名無しさん@そうだ選挙に行こう2014/12/14(日) 12:04:30.74ID:iMl+g16a
みなさん
ありがとうございます。
おかげでうまく行きそうです。
助かりました。
0171デフォルトの名無しさん2014/12/14(日) 20:17:12.91ID:QEpJ0bQG
Pythonなら書き方はひとつ(キリっ
0172デフォルトの名無しさん2014/12/14(日) 22:32:20.84ID:AdYRt8Z2
言いだしっぺは今どんな顔をしているのだろう
0173デフォルトの名無しさん2014/12/14(日) 23:06:35.23ID:10ryKbym
if〜elif〜elseとif〜if〜elseって動作が同じだから
elif要らないじゃんと思って下記のコードを実行すると
1を入力した時は正常なのだけど、0を入力した時に2nd tryの'a is 0'に続いて
'other'が出る。なぜだろう

a = int(input('number? :'))
print('1st try')
if a == 0:
  print('a is 0')
elif a == 1:
  print('a is 1')
else:
  print('other')

print('\n2nd try')
if a == 0:
  print('a is 0')
if a == 1:
  print('a is 1')
else:
  print('other')
0174デフォルトの名無しさん2014/12/14(日) 23:12:32.49ID:HQm6Xl4s
>>173
お前がバカだからだよ。

> if〜elif〜elseとif〜if〜elseって動作が同じだから

同じじゃない。
ちったあ頭使え。
0175デフォルトの名無しさん2014/12/14(日) 23:14:55.22ID:9CZ8nEqT
if elifとif if は違うから
本当に同じかよく見てごらん
http://docs.python.jp/2/reference/compound_stmts.html#else
0176デフォルトの名無しさん2014/12/15(月) 00:28:04.02ID:L0jrf9lW
釣りかな?
0177デフォルトの名無しさん2014/12/15(月) 00:41:15.09ID:Vqj9ldUp
>>175
読んでもよくわからないので素直にelif使うことにする
switchがあればこんな苦労は要らないんだが
0178デフォルトの名無しさん2014/12/15(月) 00:48:57.38ID:DDIABndf
if elif と同じなのは if else if だぞ
0179デフォルトの名無しさん2014/12/15(月) 00:50:53.54ID:ukim46sj
そういう理解だと他のswitchがある言語使っても
バグを作り込むんじゃないか
0180デフォルトの名無しさん2014/12/15(月) 02:02:32.89ID:kIlAV+GQ
>>177
これこそ「馬鹿には無理」ってやつだな
お前みたいなのはswitchがある言語の世界から出てきてくれるなよ
0181デフォルトの名無しさん2014/12/15(月) 08:46:39.20ID:oT27jdsU
>>173
Pythonはインデントの深さでブロックのネストを表してる
2nd tryがやってることはC風にするとこういうこと

if (a == 0) print('a is 0');

if (a == 1) {
  print('a is 1');
} else {
  print('other');
}
0182デフォルトの名無しさん2014/12/15(月) 09:41:52.79ID:KFNfkcvV
intって少数の文字列は変換できないんですね
0183デフォルトの名無しさん2014/12/15(月) 10:27:24.74ID:Gn/AO2ID
int(float("123.4"))
0184デフォルトの名無しさん2014/12/16(火) 22:29:10.07ID:JLxuIaVb
int(float("1234e-1"))
0185デフォルトの名無しさん2014/12/16(火) 22:30:01.24ID:BUbjQCv4
(´・ω・`)わかったよ
0186デフォルトの名無しさん2014/12/16(火) 22:37:24.96ID:t3ZeiYLt
あん?わかんねーよ?
0187デフォルトの名無しさん2014/12/16(火) 22:52:05.87ID:GPOj3jaH
釣りかな?
0188デフォルトの名無しさん2014/12/17(水) 04:04:06.27ID:tVZ6iM4c
プログラム超初心者(「たのしいプログラミングPythonではじめよう"」を読んだ程度)
の質問なんですが、

Python3.3、IDLE(PythonGUI)で、
setuptools、pipでインストールした
urllibかurllib3を使って
ウェブサイトをダウンロードするプログラムを作ろうと思ったんですが、

http://mtb-production.info/2013/10/11/post-2056/
http://blog.livedoor.jp/kazuneet/tag/python3
http://docs.python.jp/2/library/urllib.html

のように書いてもうまくできません(か、できているのがわかっていないか)
(Command Lineが一瞬開いて閉じるだけで、フォルダを見ても何もない)

なにか根本的なことが分かっていないようなんですが、
どこがわかっていないのか、お教えください
上記のことができればどうなるのか
ご教授願います。
0189デフォルトの名無しさん2014/12/17(水) 04:21:41.66ID:YJ4L+pKj
.pyファイルをインタプリタで直接実行してるのかな
一瞬で閉じるってことは多分エラー吐いて即座に処理が終了してるんでしょう
コマンドプロンプトから実行すれば消えずにエラー内容が見れるよ

python example.py

って具合に
もちろんPythonへのパスは通してね
0190デフォルトの名無しさん2014/12/17(水) 08:00:43.45ID:rr+ZuKh0
if a == 0:
a = 1
elif a == 1:
print("実行されない")

if a == 0:
a = 1
if a == 1:
print("実行される")
0191デフォルトの名無しさん2014/12/17(水) 09:12:18.09ID:92SEZchH
windowsはインストーラーが勝手にパス通してくれてる
0192デフォルトの名無しさん2014/12/17(水) 09:24:52.06ID:f5I17paW
>>188
作成したプログラムファイルを実行するときは、直接ファイルをダブルクリックして実行するのではなく、
IDLEでそのプログラムファイルの編集ウィンドウを開いたまま、
IDLEの Run メニューから Run Module を選んで実行させる。
そうすれば Python Shell ウィンドウ(対話型実行用ウィンドウ)にエラーメッセージやprint関数の結果が出力される。

インターネット上のプログラムを参考にするときは、それがPython2での実行を前提に書かれているのか、
それともPython3での実行を前提に書かれているのかに注意する。
Python2用に書かれたプログラムをそのまま写すと、Python3では動かないことがある。
実際、urllib 周りは Python2 と Python3 では変更があったので、その可能性が高い。

挙げられている3つのサイトのうち、上と下はPython2を前提にしているので、そのままプログラムを書き写すと動かない可能性がある。
真ん中のサイトはPython3を前提にしているので、その点は心配しなくてもいい。
一番下の公式サイトのリファレンスは、左上のドロップボックスで3.3を選べば、
Python3用のページに移動するので、そのページを参考にする。
0193デフォルトの名無しさん2014/12/17(水) 12:40:16.79ID:BcALhq1a
>>188
補足
IDLEを使ってるとのことなので>>192のように書いたが、
もちろん>>189さんの言うようにコマンドプロントから実行してもよい。

「上記のことができれば」というのは「上記」が何を指しているのか、
リンクを貼っているサイトのことを言っているにしても
リンク先にはいろいろコードが書いてあるので
どれを指しているのか不明なのでそういう聞き方はよくない。

例えば一番上のサイトのプログラム例だと、サイトのソースを取得する以外は何もしてないので、
実行に成功しても何も表示されないし何も保存されない。
真ん中のサイトのプログラム例だと、取得した内容がファイルに保存される。
一番下の公式リファレンスの最後の「使用例」のプログラムだと、取得した内容が画面に表示される。
…といったように、それぞれやっていることが違う。
0194デフォルトの名無しさん2014/12/17(水) 12:54:30.07ID:fm55ZjWq
ちなみに標準ライブラリにはhtml.parserというhtml文をパースするモジュールがあるよ
0195デフォルトの名無しさん2014/12/17(水) 13:03:05.68ID:tYIZwmKq
>>188
f = open("hoge.txt") の意味はわかる?
もしわかるなら f = urllib.urlopen("http://www.example.com";) の意味は想像つかない?
01961882014/12/17(水) 13:36:33.70ID:tVZ6iM4c
みなさんいろいろありがとうございます。
ちょっと整理して、またわからないことがあったら参ります。
0197デフォルトの名無しさん2014/12/17(水) 19:19:30.00ID:jNjOuaaM
htmlのボタンを押した時にシリアル通信で
文字列を送るプログラムを作りたいんだけど可能?
0198デフォルトの名無しさん2014/12/17(水) 19:53:52.14ID:BchJU/pT
何と何をシリアル通信させるのか?
htmlを配備するサーバーはお前が自由にできるのか?
htmlはお前が自由にできるのか?

をはっきりとさせて
0199デフォルトの名無しさん2014/12/17(水) 20:45:25.23ID:jNjOuaaM
サーバーとマイコンボードを通信させたい
html,サーバーは自由
0200デフォルトの名無しさん2014/12/17(水) 21:03:14.12ID:yd7uYEg4
httpじゃなくて?
0201デフォルトの名無しさん2014/12/17(水) 22:32:45.18ID:BchJU/pT
>>199
サーバーとマイコンボードが繋がってるなら大丈夫だろう
普通のWebアプリケーションなら、ユーザーからの入力に応じてデータベースなんかをいじくるところ
代わりにマイコンボードをいじくるように作る
0202デフォルトの名無しさん2014/12/18(木) 15:33:07.08ID:KTe/oi6X
pyenvで2.7.8を入れたんですけど
新しい2.7.9を入れたいのですが
これってvirtualenvで作った環境も削除して作りなおさないといけないってことですよね?
0203デフォルトの名無しさん2014/12/18(木) 17:31:54.42ID:B30EcXiG
そうですね
0204デフォルトの名無しさん2014/12/18(木) 19:05:28.76ID:p76oanwJ
仮想環境は設定や扱いが面倒臭いね
PythonのバージョンごとにPCを別々に用意した方が
スッキリするんじゃね?と思った
ノートPCが2〜3万で買えるご時世だしな
0205デフォルトの名無しさん2014/12/18(木) 19:07:42.94ID:nABCaYDf
釣りかな?
0206デフォルトの名無しさん2014/12/18(木) 19:30:15.44ID:j26dZxyw
PCを分けたいけど、今はVMに入れてるよ
1台でサーバ・クライアント運用も出来るし
0207デフォルトの名無しさん2014/12/18(木) 19:47:40.92ID:siOJVJ1k
PC複数台がめんどくさいから仮想環境にしたけど
仮想環境がめんどくさいからPC複数台にするのか
0208デフォルトの名無しさん2014/12/18(木) 21:58:37.10ID:wCefEqGM
python本体だけアップグレードしてpipで入れたものとか仮想環境もそのまま使えるようにならないのかな
このへん不便
0209デフォルトの名無しさん2014/12/18(木) 21:59:06.02ID:wCefEqGM
あ、pyenvでの話ね
0210デフォルトの名無しさん2014/12/18(木) 22:00:18.43ID:HI8EE6st
もっと釣り名人になろう
0211デフォルトの名無しさん2014/12/18(木) 22:17:58.44ID:p76oanwJ
仮想環境もそうだが、俺はスクリプト言語であるPythonにpipとかを使っての
「アプリインストール」という概念があるのが理解できん
スクリプト言語つーたら、フォルダにスクリプトファイルを置いて
デスクトップにショートカット作ってWクリ一発で済ますもんじゃないの?
お手軽さが命のスクリプト言語をわざわざ難しく使っているとしか思えない
0212デフォルトの名無しさん2014/12/18(木) 22:40:44.84ID:wCefEqGM
pipがrubyのbundleのようなものになるのが一番いい
0213デフォルトの名無しさん2014/12/18(木) 23:58:25.67ID:XtM22rPl
好きなように使えばいいだろー
道具に使われている諸君?
0214デフォルトの名無しさん2014/12/19(金) 05:22:59.53ID:ezHQ1wXp
pip freezeやpip bundle、pip wheelがあるだろ
0215デフォルトの名無しさん2014/12/19(金) 07:55:56.26ID:iA6Ogp4V
>>207
scipyとかVMごと配布してるぞ
0216デフォルトの名無しさん2014/12/19(金) 07:58:09.77ID:iA6Ogp4V
>>211
eggファイル展開してsite-packagesにコピーするだけで使えてるよ
0217デフォルトの名無しさん2014/12/19(金) 15:00:32.75ID:ZtksDXjz
Python-Twitterを使って検索結果の取得をしているのですが
取得した検索結果が時間が経てども変わりません

key_dict = {
"consumer_key":"xxxxx", "consumer_secret":"xxxxx",
"access_token":"xxxxx", "access_token_secret":"xxxxx"
}

api = twitter.api(
key_dict['consumer_key'],key_dict['consumer_secret'],
key_dict['access_token'],key_dict['access_token_secret']
)

search = api.GetSearch(lang="ja", term="hogehoge", count=5)

for tweet in search:
print tweet.text

このように書いてるのですが、何度か行うも同じ結果が返ってきます
なぜなのでしょうか?
0218デフォルトの名無しさん2014/12/19(金) 15:52:55.09ID:M007GgfU
result_type='recent', max_id=''
0219デフォルトの名無しさん2014/12/19(金) 17:10:24.73ID:ZtksDXjz
>>218
ありがとうございます。
デフォルトがmixedだったので数が少ないと
人気のツイートしか取れてなかったのですね。
解決しました。
0220デフォルトの名無しさん2014/12/19(金) 19:00:53.01ID:Rxb8g/9/
http://momijiame.tumblr.com/post/68655902597/python-itertools
を参考に
l = ['a', 'b', 'c', 'd', 'e']の組み合わせと
m = ['A', 'B', 'C, ']との直積を作ろうと
for element in itertools.combinations(l, 2):
for i in m:
print(i, element)
としてみたり
for element in itertools.combinations(l, 2):
for i, j in itertools.product(m, element):
print(i, j)
としてみましたが、うまくきませんでした。
どうかけいいいのでしょうか?
pythonは一週間前に触り始めたばかりです。
どうかおねがいいたします。
0221デフォルトの名無しさん2014/12/19(金) 19:56:03.87ID:EwlKzh3K
どんな出力を想定してるかもう少し詳しく
上のコードが[m]と[lの組み合わせ]の直積になってるように思えるけど、何がだめなのか
0222デフォルトの名無しさん2014/12/20(土) 09:08:45.35ID:z7MLHrYx
レスありがとうございます。
出力は、最終的にコンマ区切りテキスト、タブ区切りテキスト、エクセル形式など、
他のアプリで読み込めるものを目指しています(pythonでできるかもわかっていないです)。

ダメだったのは
com_pro_test.pyに

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import itertools

if __name__ == '__main__':
l = ['a', 'b', 'c', 'd', 'e']
m =['A','B', 'C']

for element in itertools.combinations(l, 2):
for i in m:
print(i, element)

と書き、python com_pro_test.pyすると

File "com_pro_test.py", line 11
for i in m:
^
IndentationError: expected an indented block

と出てprintできませんでした。
0223デフォルトの名無しさん2014/12/20(土) 09:09:59.08ID:z7MLHrYx
com_pro_test_2.pyには

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import itertools

if __name__ == '__main__':
l = ['a', 'b', 'c', 'd', 'e']
m =['A','B', 'C']

for element in itertools.combinations(l, 2):
for i in m:
print(i, element)

と書き、python com_pro_test_2.pyすると

File "com_pro_test_2.py", line 11
for i, j in itertools.product(m, element):
^
IndentationError: expected an indented block

と出てprintできませんでした。printは練習のために使っています。

よろしくお願い致します。
0224デフォルトの名無しさん2014/12/20(土) 09:28:34.71ID:hZSDfw1l
まずIndentationError: expected an indented blockでググったの?
0225デフォルトの名無しさん2014/12/20(土) 09:31:19.15ID:dWuhsWfV
Rubyなら、
String.split(区切り文字)で、
指定した区切り文字で、文字列を分割できる

たぶん、Pythonでも出来るでしょう
0226デフォルトの名無しさん2014/12/20(土) 09:41:34.31ID:+GgZ8JtG
>>223
220での説明の言葉が間違ってる事だって有り得るから、期待してる出力例を書くべき。
0227デフォルトの名無しさん2014/12/20(土) 12:02:57.42ID:e+FqSQyU
馬鹿には無理
0228デフォルトの名無しさん2014/12/20(土) 12:41:41.73ID:HICU3D2K
そのエラーでぐぐれば一発で日本語記事で解決策がヒットするわけなんだけど
0229デフォルトの名無しさん2014/12/20(土) 15:01:59.30ID:KBX+SOS/
>>223
チュートリアルや入門書読みたくないならこういうのがある
6.制御文のところ
http://d.hatena.ne.jp/dplusplus/20100126
0230デフォルトの名無しさん2014/12/20(土) 16:41:37.86ID:z7MLHrYx
みなさん、ありがとうございます
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import itertools

if __name__ == '__main__':
l = ['a', 'b', 'c', 'd', 'e']
m =['A','B', 'C']
for n in range(1, 6):
for element in itertools.combinations(l, n):#取り出す数
for i in m:
print(i, element)
と
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import itertools

if __name__ == '__main__':
l = ['a', 'b', 'c', 'd', 'e']
m = ['A','B', 'C']
for n in range(1, 6):
element = list(itertools.combinations(l, n))
for i, j in itertools.product(m, element):
print (i, j)
で、うまくできました。
手作業、エクセルでのチマチマ作業から解放されそうです。
しかも高速。
0231デフォルトの名無しさん2014/12/20(土) 19:29:01.25ID:z7MLHrYx
欲が出て、ファイル出力しようと

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import itertools

if __name__ == '__main__':
l = ['a', 'b', 'c', 'd', 'e']
m = ['A','B', 'C']
for n in range(1, 6):
element = list(itertools.combinations(l, n))
for i in itertools.product(m, element):
for j in repr(list(i)):
f = open('text.txt', 'w')
f.writelines(j)
f.close()

としてみたのですけど、うまくいきませんでした。
どこが間違っていますか?
よろしくお願い致します。
0232デフォルトの名無しさん2014/12/20(土) 19:30:17.48ID:e+FqSQyU
マジックナンバーを使うな
0233デフォルトの名無しさん2014/12/20(土) 19:35:40.59ID:Bp15tF+m
うまく行かない時はエラーをよめつってんだろ
0234デフォルトの名無しさん2014/12/20(土) 19:36:51.43ID:Uj8rcLat
>>231は質問時にエラーメッセージを貼る癖を付けような
うまくいきませんでした、では答えようがない
0235デフォルトの名無しさん2014/12/20(土) 19:46:32.60ID:mAbPDdUl
くっそわろた
エラー報告はメッセージをただ貼るのが一番楽なはずなんだけど
なぜ誰もが自分の言葉で説明しようとしてしまうのか
0236デフォルトの名無しさん2014/12/20(土) 20:28:57.19ID:KBX+SOS/
エラーは出ないけど思った結果になってないのかもしれない
ぱっと見はファイルを上書きしまくってるように見えるが
まあ回答する側のこと考えて再提出するのが筋だと思う
0237デフォルトの名無しさん2014/12/20(土) 21:04:01.06ID:wEbsED3/
>>231
どう?これで良いと思うけど。

import itertools

if __name__ == '__main__':
f = open("text.txt", "w")
L = ['a', 'b', 'c', 'd', 'e']
m = ['A','B', 'C']
len_L = len(L)
for n in range(1, len_L + 1):
element = list(itertools.combinations(L, n))
print("element =")
print(element)

x = itertools.product(m, element)
print(list(x), file=f)
f.close()
0238デフォルトの名無しさん2014/12/20(土) 22:24:36.79ID:z/wvtsdM
>>231
http://ideone.com/bSgNSL
こんな感じかね
0239デフォルトの名無しさん2014/12/20(土) 22:26:57.60ID:z/wvtsdM
len(l)にしたけど、len(l)+1じゃなきゃあかんかった
すまんこ
0240デフォルトの名無しさん2014/12/21(日) 09:25:46.04ID:c9w7SJVP
>>233, 234, 235
エラーが出なかったんですよ

>>236
エスパー、ありがとうございます

>>237, 238
うまくできました
ありがとうございます

メモ帳でのコピペやエクセルでの関数の複雑な組み合わせから脱出できそうで
感動しきりです
>>237, 238を見ながら、いろいろいじってみようと思います
0241デフォルトの名無しさん2014/12/21(日) 12:16:28.95ID:kqogwpUD
http://www.amazon.co.jp/exec/obidos/ASIN/4764904691/
そういえばそんな話あったね…感
0242デフォルトの名無しさん2014/12/21(日) 14:00:37.49ID:iWOfGUHH
どんな話?
0243デフォルトの名無しさん2014/12/21(日) 14:57:18.13ID:c9w7SJVP
enumerateを使って、各組み合わせに番号を振ることができました
すごい
Python様様です
今まで知らなかったのが悔やまれます
0244デフォルトの名無しさん2014/12/23(火) 22:16:30.69ID:y5PKzINj
辞書の == は、何を比べてるんでしょうか。

a_dict=dict(a="A",b="B")
b_dict=dict(b="B",a="A")
if a_dict == b_dict: print("A eq B")

とすると、"A eq B"となりますが、これはたまたま?
それとも、律儀に全てのキーと値のペアをチェックしているのでしょうか。
0245デフォルトの名無しさん2014/12/23(火) 22:23:40.75ID:u51zFo5t
>>244
docs.python.org/3.4/reference/expressions.html#not-in
> Mappings (dictionaries) compare equal if and only if they have the same (key, value) pairs.
0246デフォルトの名無しさん2014/12/23(火) 22:32:50.19ID:JQ5oTczV
どっちかっていうとstdtypes.htmlに書かれるべき事柄のような気もする

現にsetとfrozensetについては等値性の比較方法が書いてある
なんでdictは書いてないのかよく分からん
02472442014/12/23(火) 22:35:52.17ID:y5PKzINj
全てのキーと値のペアをチェックしているわけですね。
早速ありがとうございます。

教えて頂いたページから、2.7の方のドキュメントを見たら、
Mappings (dictionaries) compare equal if and only if their sorted (key, value) lists compare equal.
とあって、なぜかソートすることになっていて、興味深いです。
0248デフォルトの名無しさん2014/12/23(火) 22:56:27.32ID:1p817Cux
ただ単にif and only ifと言ってるだけなんだから、
実際にソートされたリストを比較してるとは限らない
0249デフォルトの名無しさん2014/12/23(火) 22:57:40.37ID:u51zFo5t
たしかに…(パッと何も考えずに貼っつけたけど色々なるほどという感じだ)
ついでに、
a, b = {}, {}
a['foo'] = a; b['foo'] = b
a == a # True
a == b # RuntimeError: maximum recursion depth exceeded in comparison
になるのは p is q のときはそこで True になるのかな?
0250デフォルトの名無しさん2014/12/26(金) 23:24:58.42ID:/KNcT2VO
質問です。
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]のような配列を
a = [0, 3, 6, 9]
b = [1, 4, 7]
c = [2, 5, 8]

のように分けたい場合はどうすればいいのでしょうか?
0251デフォルトの名無しさん2014/12/26(金) 23:32:01.21ID:nageX3sv
釣りかな?
0252デフォルトの名無しさん2014/12/26(金) 23:40:44.86ID:5KQP9Kr2
array[::3]
array[1::3]
array[2::3]
0253デフォルトの名無しさん2014/12/28(日) 08:05:52.17ID:4QS7TPLU
>>252
これ冗談かと思ってたらマジだった
コロン2つというスライスの活用方法はドキュメントに載ってましたっけ?
0254デフォルトの名無しさん2014/12/28(日) 09:21:45.11ID:6jddN626
馬鹿には読めない
0255デフォルトの名無しさん2014/12/28(日) 09:44:49.02ID:ozX5G0tT
おれがPythonを初めて勉強しようと思った時に入門とかチュートリアル当たりを読んでたらそんな事書いてあった覚えがある
とりあえずドキュメント読めばいいんじゃないのか
0256デフォルトの名無しさん2014/12/28(日) 09:53:20.79ID:kC+gL6KL
https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range
0257デフォルトの名無しさん2014/12/28(日) 10:37:47.65ID:4QS7TPLU
>>256
サンクス
恥ずかしながら、スライスにSTEPを指定できること自体知りませんでした
ライブラリのドキュメントばっかり見ていてはダメですね
0258デフォルトの名無しさん2014/12/28(日) 13:52:16.01ID:6jddN626
えっ
0259デフォルトの名無しさん2014/12/28(日) 21:25:11.89ID:FC75I7qD
range([start], stop[, step])やslice([start], stop[, step])のように、最初の引数にデフォルト値があるように定義するのってどうすればいいんでしょう
任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?
0260デフォルトの名無しさん2014/12/28(日) 21:29:14.77ID:JNVMabVt
釣りかな?
0261デフォルトの名無しさん2014/12/28(日) 23:57:43.32ID:yyfsiGm1
>>259
>任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?
そうだけど、なんでまたそんなことに
0262デフォルトの名無しさん2014/12/29(月) 02:06:20.88ID:IvunUA3V
そのうち引数の区切りに:使いたいとか言い出しそう
0263デフォルトの名無しさん2014/12/29(月) 09:43:14.39ID:n7jX+JFQ
>>261
ありがとうございますやっぱそうなりますか
xrangeにCのlongに収まらない数を入れたい場合につかう代替関数を定義しておこうと思ったんです
使い方はxrangeと同じにしておきたいな、と思いまして
0264デフォルトの名無しさん2014/12/29(月) 10:47:52.09ID:/fu+2Q3X
generatorに汁
0265デフォルトの名無しさん2014/12/29(月) 14:41:33.17ID:n7jX+JFQ
>>264
どういうことでしょう?
リストを返すつもりはなくxrangeオブジェクトももちろん作れないのでジェネレータにするつもりですが
ジェネレータにすると引数の課題が解決する案があるのでしょうか?
0266デフォルトの名無しさん2014/12/29(月) 16:00:06.38ID:PZi3Q5CQ
それよりもpython3がお勧めだ
0267デフォルトの名無しさん2014/12/29(月) 16:01:43.94ID:b2AdLJ6H
>>259
def test(a):
if len(a) == 1:
 pass
if len(a) == 2:
 pass
if len(a) == 3:
 pass

test([1])
test([1,2])
test([1,2,3])
0268デフォルトの名無しさん2014/12/30(火) 00:07:44.20ID:CXcTj8nU
def foo(*args):
    n = len(args)
    if n == 1:
        pass
    elif n == 2:
        pass
    elif n == 3:
        pass
0269デフォルトの名無しさん2014/12/30(火) 17:04:23.25ID:7UP6Be1g
vimを使ったpythonプログラミングがしたいということで色々プラグイン入れたりしてたんだが詰まった
Macでvirtualenvとvirtualenvwrapperで仮想環境を構築してるんだが、python3.4の環境で構文エラーのプラグインが上手く機能しない(syntastic、pyflakes-vimどちらを使おうとも)
syntasticの場合はprint("test")がエラーと判定されるし、
pyflakes-vimの場合はprint("test")は大丈夫でもprint("test", end="")がエラーと判定されてしまう
ちなみにjedi-vimによる補完はvim-virtualenvが効いてるせいか上手くいく
大人しく構文エラー系プラグインは諦めるしかないのか・・・
0270デフォルトの名無しさん2014/12/30(火) 17:39:30.47ID:9P21+37r
>>269
syntasticはこれじゃダメ?
https://github.com/scrooloose/syntastic#faqpython3
0271デフォルトの名無しさん2014/12/31(水) 04:11:56.40ID:14cQZHHy
>>270
それ試したらうまくいった
でもpython2の環境でやるときはコメントアウトしないといかんな面倒だなと色々試してたら、
仮想環境ではsyntastic自体がエラー吐いて動かなくなった
syntastic入れ直しても直らないしお手上げ

他にpythonで開発するに当たって他にいいエディタがあったら教えてくれ
0272デフォルトの名無しさん2014/12/31(水) 17:47:51.00ID:GF3OSzJC
syntasticつかってるけど2.7でも3.4でも問題ないね
0273デフォルトの名無しさん2015/01/01(木) 18:24:39.87ID:JHoRJU5D
file = os.path.join("data", "test.txt")
fp = codecs.open(file, "r", "utf-8")
datalist = []
for line in fp:
line = line.rstrip()
data = line.split()
datalist.append(data)
print data
print datalist
fp.close()

python2.7
日本語を含むテキストファイルを読み込ませたいです
これでデコードエラーを吐いてしまうんですがどうしたらいいんでしょうか?
0274デフォルトの名無しさん2015/01/01(木) 18:31:38.61ID:z6L3lvtQ
釣りかな?
0275デフォルトの名無しさん2015/01/01(木) 19:05:40.59ID:fSkzpZdc
>>273
質問するときはエラーメッセージもいっしょに貼ってね。
test.txtファイルの文字コードがutf-8じゃないんじゃないかな。
別の文字コード指定してみたら。
0276デフォルトの名無しさん2015/01/01(木) 19:10:16.68ID:JHoRJU5D
>>273の続き
以下のブログからダウンロードできるpyファイルの170〜180行とほぼ同じなのに自分のは動きません

http://aidiary.hatenablog.com/archive/category/Pygame?page=2

誰か教えてください
0277デフォルトの名無しさん2015/01/01(木) 19:13:05.49ID:JHoRJU5D
>>275
出来ました
これに費やした元旦がもったいなく感じてきました
ありがとうございました

>>276は気にしないでください
0278デフォルトの名無しさん2015/01/01(木) 19:22:37.37ID:2oZHmgl+
いや、元旦にプログラミングしてること自体もったいないと思うよ?
まあやってんだけどさ
0279デフォルトの名無しさん2015/01/01(木) 19:26:09.99ID:+8s0q9XW
むしろプログラミングに没頭できるのでありがたい
起きてコード書いて腹が減ったらあめ玉舐めながら続けて
いつの間にかぶっ倒れて寝て…の繰り返し
まさに至福
0280デフォルトの名無しさん2015/01/01(木) 19:33:40.55ID:X1h/FK2S
没頭も楽しいけど、ちゃんと寝た方が頭も冴えて効率良かったりする
0281デフォルトの名無しさん2015/01/01(木) 21:54:12.80ID:LHyBpEGI
勉強したいんですが、オープンソースのアプリケーションって無いですか?
0282デフォルトの名無しさん2015/01/01(木) 21:59:14.57ID:yTun5dKq
まずアプリーケーションの意味が分かってから質問に来るように(キリッ
0283デフォルトの名無しさん2015/01/01(木) 22:30:15.49ID:FCYF6h54
>>281
PyPIやGitHub等にいくらでもあるけど
添付ライブラリのソース読むのもいいよ
自分のよく知ってるライブラリがあるなら尚更
0284デフォルトの名無しさん2015/01/01(木) 22:32:20.07ID:LHyBpEGI
>>283
あざーす
見てみます
0285デフォルトの名無しさん2015/01/02(金) 22:46:05.90ID:+rPr6kmK
for文を使ってある文字列リストの中の文字列の数だけ動作を繰り返したいのですが、
for i in listのiの部分は何にするべきでしょうか?
0286デフォルトの名無しさん2015/01/02(金) 23:03:00.94ID:r6ijCflG
s
0287デフォルトの名無しさん2015/01/02(金) 23:22:24.79ID:+rPr6kmK
ありがとうございます
0288デフォルトの名無しさん2015/01/02(金) 23:23:04.72ID:wbZK8R83
>>285
何でもよい
forの一時変数だというのは、見れば誰でもわかることだからな
0289デフォルトの名無しさん2015/01/03(土) 19:59:48.68ID:xipCHlwk
lxml ってcygwinでもインストール出来るでしょうか?
ちょっと困っています。
0290デフォルトの名無しさん2015/01/03(土) 20:34:38.88ID:HZb4mH38
ちょっとした疑問なのですが、なぜリストのreverse()メソッドは逆順にしたリストを返さないのでしょうか?
返すことでメリットはあるもののデメリットがあるようには思えません。

そのためにどうしても無駄な1行が増えてしまいます。
0291デフォルトの名無しさん2015/01/03(土) 20:38:17.12ID:+Pr3g4uI
>>290
list.reverseは破壊的だから
0292デフォルトの名無しさん2015/01/03(土) 20:42:15.31ID:xBaFv3y/
>>290
たぶんあなたの用途としてはreversed(L)だとかL[::-1]を使えばいいんじゃないかな
0293デフォルトの名無しさん2015/01/03(土) 21:07:56.40ID:0Z0PurY4
>>290
これのFAQやCommand-Query Separationを引いてる回答が勉強になる
http://stackoverflow.com/questions/9777122/
0294デフォルトの名無しさん2015/01/03(土) 21:16:35.46ID:3rHEixuF
>>289
VirtualBoxにLinuxいれれば?
それかcolinux
0295デフォルトの名無しさん2015/01/03(土) 21:22:24.18ID:TeAjaTLz
>>290
リファレンスに書いてあるだろーが!
https://docs.python.org/3.3/library/stdtypes.html

以下引用
The reverse() method modifies the sequence in place for economy of space when reversing a large sequence.
To remind users that it operates by side effect, it does not return the reversed sequence.
0296デフォルトの名無しさん2015/01/04(日) 00:38:02.16ID:+pjKxmj1
append もそうだけど、インプレースであることを知らしめたいからって None を返すのは
オレ様仕様だと言われても仕方ないとは思う。
なんならそういうのの返り値を代入しようとしたら例外出すくらいにしたほうがはっきりしててわかりやすい。
そういう代入を拾うってどうやればいいのかよくわからんけど。
0297デフォルトの名無しさん2015/01/04(日) 01:12:41.97ID:+rZjO+Yw
Noneを返さないのはどこの誰様仕様なんだ
©ファウラー?
0298デフォルトの名無しさん2015/01/04(日) 01:25:15.17ID:+rZjO+Yw
とりあえず、俺様仕様が嫌なら人が作った言語なんか使わない方がいいぜ
俺様仕様が全くなくなったら世の中には同じ言語しかないはずだろ
0299デフォルトの名無しさん2015/01/04(日) 01:39:35.12ID:/kYaXME3
仕様に不満があるなら、自分で改造して使えばいいじゃん
そのためのオープンソースなのだから
0300デフォルトの名無しさん2015/01/04(日) 16:42:55.74ID:w2TCoU2v
reverse も reversed も
メソッドチェーンが好きな人には使いにくい
好みの問題だから仕方ない
郷に入っては郷に慣れるしかない
0301デフォルトの名無しさん2015/01/04(日) 17:03:47.53ID:MTkS6+IW
メソッドチェーンって言葉使われるとrubyやjquery厨の好みの問題だろって言いたくなるけど
パイプラインと言うとunix哲学を反映した高尚な雰囲気が醸しだされるよな
自分は好みの問題じゃないと思うけど
0302デフォルトの名無しさん2015/01/04(日) 17:09:40.11ID:w2TCoU2v
js でも Ruby でも return self しないメソッド作ったらおしまいですしおすし
0303デフォルトの名無しさん2015/01/05(月) 23:11:18.16ID:cIvzrzOv
すいません
フレームワークを作るうえで参考になるサイトなどありますか?
0304デフォルトの名無しさん2015/01/05(月) 23:13:19.47ID:Y6BCcXgq
えーと、フレームワーク「を」作るんですか?
フレームワークにもいろいろあります(Webアプリ、統計処理etc・・・)が、何のフレームワークですか?
フレームワークのソースコードは参考になりませんか?
0305デフォルトの名無しさん2015/01/05(月) 23:16:02.21ID:DStV81SR
>>303
ちいたん
0306デフォルトの名無しさん2015/01/05(月) 23:19:21.41ID:cIvzrzOv
>>304
クローラーを作ってるんですけど作っていくうちにフレームワークも作ってみたいって思ってしまって
scrapyの読もうとしたんですけど複雑すぎて難しかったので質問しました・・・

>>305
凄い参考になりそうです。
ありがとうございます。
0307デフォルトの名無しさん2015/01/08(木) 08:58:53.70ID:hf9nU0p5
python3で文字列を指定した区切り文字で改行して
出力したい(できれば''のない形で)んですが、どうやればいいですか?
splitを使って分割はできたんですがその先がわかりません
例:"1月、2月、3月…"を
1月
2月
3月…と表示したいです
0308デフォルトの名無しさん2015/01/08(木) 09:02:10.21ID:5iJyKn99
改行コードで区切り文字を置換してprintするのが手っ取り早いんじゃないですかね!
0309デフォルトの名無しさん2015/01/08(木) 09:26:37.64ID:PNOntX36
禿げ死苦同意
0310デフォルトの名無しさん2015/01/08(木) 09:48:16.38ID:hf9nU0p5
>>308-309
ありがとうございます、できました
初歩的なことで失礼しました
0311デフォルトの名無しさん2015/01/08(木) 13:06:39.90ID:yd0/anPe
for i in "1月、2月、3月".split("、"):
 print(i)

s = "1月、2月、3月"
for i in range(0, len(s), 3):
print(s[i:i+2])

print("1月、2月、3月".replace('、', '\n'))
0312デフォルトの名無しさん2015/01/08(木) 13:15:36.83ID:0An2B4E8
置換するのが普通なの?
splitしてjoinするのが普通じゃないの?
print "\n".join("1月、2月、3月…".split("、"))
0313デフォルトの名無しさん2015/01/08(木) 13:33:24.76ID:5iJyKn99
おたくの言う普通の基準って何
0314デフォルトの名無しさん2015/01/08(木) 18:14:53.37ID:0An2B4E8
世のプログラムで
ある同じ目的を達成するための手段のうち採用されている割合が多いもののこと
まあ実際にどれが多いかなんて集計してみないとわからんし無理だから、各人の経験則として
0315デフォルトの名無しさん2015/01/08(木) 18:31:11.44ID:nx8fIEJ5
>>312
置換しちゃうと、後で(一週間後とか)仕様変更で元の文字列をもう一度使いたいときに、
置換してたのを忘れてる時が有るから、ちょっと要注意。
そういう意味で、俺はこの場合はsplit、join。
まあデータが小さければ、コピーして好きに変更でもいいんだろうけど。
0316デフォルトの名無しさん2015/01/08(木) 18:38:11.40ID:XOR/qKrs
俺はprint(s.split('、'), sep='¥n')かな(大嘘
0317デフォルトの名無しさん2015/01/08(木) 19:07:15.67ID:qIfkunGX
今日は鯖落ちまくりで暇だったので
https://paiza.io/projects/2qNzkOVEN5gKqjmXz9KkOw
0318デフォルトの名無しさん2015/01/08(木) 19:09:18.71ID:X+YvwCCE
代入しなきゃいいだけだろ
0319デフォルトの名無しさん2015/01/08(木) 19:36:49.69ID:5iJyKn99
経験則として代入するから
言ってて馬鹿らしい
0320デフォルトの名無しさん2015/01/08(木) 20:16:14.92ID:qR5vxfrT
BeatifulSoup って使いずらくね。CSSセレクタかXpathのやつないの。
0321デフォルトの名無しさん2015/01/08(木) 20:48:28.31ID:XOR/qKrs
XMLでXPathのサブセットが使えればいいならElementTree
HTMLとXMLでXPathとCSSセレクタが使いたければlxml
今時はもっといいのがあるかもしれない
0322デフォルトの名無しさん2015/01/08(木) 20:50:38.49ID:fhc4fEXM
BeatifulSoupが使いにくいと言うより
そもそもDOMが使いにくい
0323デフォルトの名無しさん2015/01/08(木) 21:18:24.52ID:GqWH++TS
pyqueryならHTMLerにも使いやすいで
0324デフォルトの名無しさん2015/01/08(木) 22:55:01.67ID:J74p3gKV
import hogeA.hogeB as hogeB
from hogeA import hogeB
って同じです?
0325デフォルトの名無しさん2015/01/08(木) 23:26:22.09ID:sfR//wXE
同じじゃない
hogeBがクラスや関数なら上の書き方ではImportError
0326デフォルトの名無しさん2015/01/08(木) 23:57:14.72ID:KQjbFOAv
>>319
処理の流れによるのではないかね
0327デフォルトの名無しさん2015/01/09(金) 00:01:17.16ID:J74p3gKV
ありがとうございます。たしかにそうですね。
0328デフォルトの名無しさん2015/01/09(金) 02:26:05.19ID:Zx8Mee6A
>>269,>>271だけど日を改めてやってみたらなんとなく原因がわかった

syntastic自体にエラーが出て機能しないのは、どうやらjmcantrell/vim-virtualenvとsyntasticが競合してるみたいだった
ただUbuntuで似たような環境を作ったときはなぜか問題なかった
syntasticに仮想環境のPythonを認識させるのは>>270で上手くいった
0329デフォルトの名無しさん2015/01/09(金) 17:28:59.68ID:Q82CWQ0g
pythonやpygameではメイリオは使えないのでしょうか?

pygame.font.get_fontsでmeiryomeiryomeiryouimeiryouiitalicというメイリオのフォントがPC中にあると確認できたのですが、
pygame.font.SysFont("meiryomeiryomeiryouimeiryouiitalic", 10)という感じでフォントをセットしても起動しても画面が真っ黒のままで動きません
他のフォントにするとちゃんと動くのでコーディングエラーはないと思います
どうしたらいいんでしょうか?
0330デフォルトの名無しさん2015/01/09(金) 17:44:54.43ID:ERxK07PY
'meiryo'だけでよくね?
0331デフォルトの名無しさん2015/01/09(金) 17:52:21.39ID:Q82CWQ0g
meiryoという感じで区切ってしまうと、日本語が表示されなくなり、フォント自体もおそらくメイリオではないデフォルトのフォントになってしまいます
ちなみに、画面が真っ黒のままでもエラーメッセージ等は出てきてません
0332デフォルトの名無しさん2015/01/09(金) 17:59:20.57ID:JoT/J+XX
うちも一緒だった (win8.1)

pygame.font.SysFont("meiryomeiryomeiryouimeiryouiitalic", 10)
のところで止まって次の行逝ってないね

pygame.font.SysFont("msminchomspmincho", 10)
なら通る
0333デフォルトの名無しさん2015/01/09(金) 18:22:02.96ID:JoT/J+XX
copy c:\windows\fonts\meiryo.ttc .

hogefont = pygame.font.Font('meiryo.ttc', 10)

これならうまくいくな
0334デフォルトの名無しさん2015/01/09(金) 18:24:36.85ID:ERxK07PY
>>331
本当だねー
しゃーないから2段階で

fontpath = pygame.font.match_font('meiryomeiryoboldmeiryouiboldmeiryouibolditalic')
font = pygame.font.Font(fontpath, 10)
0335デフォルトの名無しさん2015/01/09(金) 18:25:51.42ID:ERxK07PY
かぶっちゃったww
0336デフォルトの名無しさん2015/01/09(金) 21:45:48.85ID:cpWCapOI
フォントフォルダにパスとおせばいいんじゃねえのか
0337デフォルトの名無しさん2015/01/10(土) 06:04:13.05ID:rmYnkCrg
Python3系は、Win8でも動くの?
0338デフォルトの名無しさん2015/01/10(土) 06:06:25.45ID:n7roigOl
>>337
動くよ
0339デフォルトの名無しさん2015/01/10(土) 07:22:52.05ID:gS0g5gRi
font = pygame.font.Font(fontpath, 10, bold=True, italic=True)
これも効かないよね
0340デフォルトの名無しさん2015/01/10(土) 10:11:08.17ID:8jyfhdtq
font = pygame.font.Font(fontpath, 10)
font.set_bold(True)
font.set_italic(True)
font.set_underline(True)
0341デフォルトの名無しさん2015/01/11(日) 00:25:51.82ID:CAsTcRy+
>>317 さんと >>329 さんに inpire されたので
鯖監視ツール書いてみたよ
https://paiza.io/projects/K-MM5FG-jwflANF-3AnFDQ
0342デフォルトの名無しさん2015/01/11(日) 14:08:16.48ID:p/qDHhQA
https://www.youtube.com/watch?v=4W2AqUetBi4
https://www.youtube.com/watch?v=qbEEcQXw8aw
https://www.youtube.com/watch?v=8IRyt7ft7zg
https://www.youtube.com/watch?v=O4Y5KrNgP_c

https://www.youtube.com/watch?v=3zSrkC6c1aU
https://www.youtube.com/watch?v=vcYcFX9yqiY

https://www.youtube.com/watch?v=IfJIFqAxW9I
https://www.youtube.com/watch?v=3COTY4tAwsw
0343デフォルトの名無しさん2015/01/11(日) 20:47:51.64ID:o/8A2y6f
Linux使っててプログラミングしたいのですが、最初から入ってるPythonにしたいです。
コマンドラインでPythonと打つと安価みたいなものが出てきました
print "test"と打ったらtestとでました。
しかしこれでは一行しか書けません。
どうすれば一行より多くかけますか?
それともテキストエディタてコードを書いてそれをコマンドラインで読み取り実行するのですか?
初心者なので全くわかりません
Pythonの使い方を教えてもらえないですか?
解説してるサイトでもいいです
0344デフォルトの名無しさん2015/01/11(日) 20:59:21.92ID:p7O2XLcs
if 1 == 1:
print 1

これを2行に分けて入力してみろ
できるだろ
0345デフォルトの名無しさん2015/01/11(日) 20:59:23.22ID:hXDAFv79
ドットインストールでも見たらいいんじゃないですか(投げやり)
0346デフォルトの名無しさん2015/01/11(日) 20:59:33.10ID:0FZ9h/6J
>>343
解説
http://dotinstall.com/lessons/basic_python_v2
公式のチュートリアル
http://docs.python.jp/2/tutorial/index.html

pythonの前にグーグルでの調べ方を勉強しましょう
初心者なので、は理由になりません
このスレを少しでも読めばわかると思いますが、そんなレベルから手とり足取り教えてもらう人も教えている人もいません
まず自分で「勉強」してください
それでわからなかったら質問してください
勉強頑張ってね
0347デフォルトの名無しさん2015/01/11(日) 21:08:05.04ID:uJ5bpItj
ここに来れたのに見つからないわけないしね
0348デフォルトの名無しさん2015/01/11(日) 21:31:32.06ID:kmCRN0/L
>>343みたいな質問もたまにある分には
同様のレベルにある人の励みにもなるし良いかなと思ったりする
0349デフォルトの名無しさん2015/01/11(日) 21:31:45.41ID:WpzutThS
Pythonスクリプトをファイルにして実行する方法を
まず調べてみるといいのでは?
公式ドキュメントだといきなりインタープリタ出てきて
ナンカコレジャナイって事態に陥りがちだよね。
0350デフォルトの名無しさん2015/01/11(日) 21:34:00.21ID:hXDAFv79
まあでも解説がポンポン出てくるだけいい世の中になったわ
俺も今頃に思春期を迎えたかったな
0351デフォルトの名無しさん2015/01/11(日) 21:55:22.92ID:vLTVs/HV
引きこもってからpythonの勉強始めてたけどたしか5年前はまったく情報がなかったよ
0352デフォルトの名無しさん2015/01/11(日) 22:30:48.30ID:sGm64abe
すいません、

net4=ipaddress.ip_network('10.0.0.0/24')

for i in net4:
print(i)

の出力をファイルに書き込みたいのですが、どの様にすればいいのでしょうか。
0353デフォルトの名無しさん2015/01/11(日) 22:50:42.95ID:kmCRN0/L
printで欲しい値が出力できてるんならリダイレクトでいいんじゃないか
python print_ipaddr.py > result.txt のように
0354デフォルトの名無しさん2015/01/11(日) 23:19:34.43ID:jQsmpaL2
>>343
一番簡単なのは、Pythonインタープリタを実行して、
その中でソースコードを書いて実行する

また、テキストファイルの中に、
ソースコードを書いて、端末から実行もできる

「みんなのPython 第3版」を読んで
0355デフォルトの名無しさん2015/01/11(日) 23:44:11.83ID:yo5s2le0
with open("v4.txt", "w") as fp: fp.write("\n".join(map(str, net4)))

with open("v4.txt", "w") as fp: print(*net4, sep="\n", file=fp)
0356デフォルトの名無しさん2015/01/12(月) 11:28:11.80ID:wEhaR0fQ
>>352
"IPアドレスを使用する他のモジュール(socket など)は通常このモジュールからオブジェクトを直接受け付けません。直接渡すのではなく、他のモジュールが受け付ける整数や文字列に強制的に変換する必要があります。"
(http://docs.python.jp/3.4/howto/ipaddress.html#using-ip-addresses-with-other-modules)

ファイルオブジェクトがIPアドレス使うわけじゃないけど同じこと。受けつけるオブジェクトに変換してあげないといけない
ちなみに10.0.0.0/24でホストに割り当てられる有効なアドレスはnet4じゃなくてnet4.hosts()を使ってください
0357デフォルトの名無しさん2015/01/13(火) 18:20:42.59ID:j8KuOTF/
ubuntuでpyenvとpyenv-virtualenv使ってるんだけど、pipでインストールしたmatplotlibのpyplotパッケージやpylabパッケージのshow()関数呼び出しても何も起こらない
エラーメッセージすら吐かない
一応python2.7と3.4両方で試してみたけど結果は変わらず
ちなみに試してみたコードで一番簡単なのは次のやつ
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
pllt.show()
0358デフォルトの名無しさん2015/01/13(火) 18:28:57.46ID:eeRd4u2J
ipython入れて補完できるか確認してみて
0359デフォルトの名無しさん2015/01/13(火) 19:23:32.17ID:j8KuOTF/
自己解決した
解決する前はbackendがaggになっててたぶんそれのせいで上手くできなかったんだと思う
そんでtgkで起動するためにtkinterを入れてmatplotlib入れ直したらできた

そもそもpyenvでtkinterが上手く入ってなかったみたいで、必要そうなもの色々とインストールしてpyenvのpythonのバージョンを入れ直してようやくtkinterが動いたんだけどね
0360デフォルトの名無しさん2015/01/13(火) 21:44:56.75ID:8u//ndKD
そりゃあtkはpythonに含まれてないからね
0361デフォルトの名無しさん2015/01/14(水) 09:43:45.67ID:EnBoJmyV
エラーが不親切(というかそもそも出てないんじゃね)って意味なら同意
0362デフォルトの名無しさん2015/01/14(水) 18:29:08.04ID:GE1H21pw
matplotlibはバックエンドどれにするかが悩みどころで
結局使わなくなっちゃったなあ
0363デフォルトの名無しさん2015/01/14(水) 18:35:27.23ID:/jk0RY/v
matplotlib とか basemap とか入れたら
いつの間にか httplib2 が古いバージョンに置き換えられてたでござる
0364デフォルトの名無しさん2015/01/14(水) 18:37:26.08ID:/jk0RY/v
>>362
単体なら問題ないのに
他の色んなモジュールと組み合わせると動かなくなるってのが困るよねー
0365デフォルトの名無しさん2015/01/14(水) 19:04:19.55ID:IigJrcbt
あるある
03663542015/01/15(木) 02:22:06.28ID:KHeQBVOf
>>354
訂正
>一番簡単なのは、Pythonインタープリタを実行して、
>その中でソースコードを書いて実行する

インタープリタではなく、インタラクティブシェル。
またそれを高機能にした、IPythonもある
0367デフォルトの名無しさん2015/01/26(月) 02:28:32.17ID:fdPK5fY8
if A != Bとif not A == Bは同じ意味ですか?
0368デフォルトの名無しさん2015/01/26(月) 02:58:59.75ID:Nas4rFKx
def not_equal_to(a, b):
    if a != b:
        print("a != b")

def not_equal_equal_to(a, b):
    if not a == b:
        print("not a = b")

if __name__=="__main__":
    not_equal_to(2, 2)
    not_equal_to(2, 3)
    not_equal_to("2", "2")
    not_equal_to("2", "3")
    not_equal_equal_to(2, 2)
    not_equal_equal_to(2, 3)
    not_equal_equal_to("2", "2")
    not_equal_equal_to("2", "3")

'''
C:\work>python ne.py
a != b
a != b
not a = b
not a = b
'''
0369デフォルトの名無しさん2015/01/26(月) 03:24:48.29ID:1ha70wOy
def not_equal_equal_to(a, b):
    if not a == b:
        print("not a == b")

def not_a(a, b):
    if (not a) == b:
        print("(not a) == b")

if __name__=="__main__":
    not_equal_equal_to(1, 1)
    not_equal_equal_to(0, 1)
    not_equal_equal_to("1", "1")
    not_equal_equal_to("0", "1")
    not_a(1, 1)
    not_a(0, 1)
    not_a("1", "1")
    not_a("0", "1")

'''
not a == b
not a == b
(not a) == b
'''
0370デフォルトの名無しさん2015/01/26(月) 06:11:56.81ID:fhQPsb6z
not_equal_to(False, False)
not_equal_to(False, None)
not_equal_to(False, 0)
not_equal_to(None, 0)
not_equal_equal_to(False, False)
not_equal_equal_to(False, None)
not_equal_equal_to(False, 0)
not_equal_equal_to(None, 0)
0371デフォルトの名無しさん2015/01/26(月) 16:45:12.25ID:34ZvbZ5E
モジュールとライブラリってどう違うの?
0372デフォルトの名無しさん2015/01/26(月) 17:11:41.13ID:OM9k+a/d
importの対象であり名前空間を提供するモノとしての側面を強調するならモジュール
お役立ち関数/クラス群としてならライブラリってとこじゃないか
0373デフォルトの名無しさん2015/01/26(月) 23:55:57.91ID:nAw6e05Y
>368-370
ありがとうございます!
0374デフォルトの名無しさん2015/01/27(火) 03:05:51.48ID:JE8N2DrC
ある特定少数のソフトウェア向けの何かならモジュール
ある程度幅広いソフトウェア向けの何かならライブラリ
0375デフォルトの名無しさん2015/01/27(火) 11:29:49.50ID:t2UBLXgk
日本語でおk
0376デフォルトの名無しさん2015/01/27(火) 20:51:44.07ID:OJ5SgUcW
>>371
もぢゅるもあつまればらいぶらりとなる
0377デフォルトの名無しさん2015/01/28(水) 01:19:49.99ID:s4FF0JvS
アーカイブは、ライブラリですか?
0378デフォルトの名無しさん2015/01/28(水) 02:46:40.94ID:Tm33obPu
アーカイブは書庫じゃね
zipとかrarとか
0379デフォルトの名無しさん2015/01/28(水) 02:50:13.49ID:iRn2n6c7
まずは単語の意味を調べろ。
話はそれからだ。
0380デフォルトの名無しさん2015/01/28(水) 07:56:59.24ID:U+4OJYJI
オブジェクトファイルをアーカイブコマンドarでまとめたものを
ライブラリとすることもあるけど、
それはそういう扱いをしているということでな
0381デフォルトの名無しさん2015/01/28(水) 08:26:27.39ID:h5fNpxJ2
sys.path.add() で .tgz とかも追加出来るお
0382デフォルトの名無しさん2015/01/28(水) 08:27:05.37ID:h5fNpxJ2
まちがえた
x sys.path.add()
o sys.path.append()
0383デフォルトの名無しさん2015/01/28(水) 08:39:12.31ID:OirFWuRy
.zipじゃなくて.tgz?
0384デフォルトの名無しさん2015/01/28(水) 09:04:14.35ID:h5fNpxJ2
どっちでもいけるで
0385デフォルトの名無しさん2015/01/28(水) 09:04:46.21ID:h5fNpxJ2
あと egg も中身は zip だったり tgz だったり
0386デフォルトの名無しさん2015/01/28(水) 09:13:02.21ID:OirFWuRy
とんとん。調べてみるお
0387デフォルトの名無しさん2015/01/28(水) 13:02:51.65ID:OirFWuRy
調査報告
.py入りの.zipのimportはうまくいくけど.tgzはImportErrorだった
0388デフォルトの名無しさん2015/01/28(水) 13:30:34.09ID:U/zfeC5A
馬鹿には無理
0389デフォルトの名無しさん2015/01/28(水) 14:11:24.25ID:ncVbnS0H
インポートできる名前空間の単位(=定数や関数を定義したファイル名)がモジュール

再利用可能な形にまとめたものがライブラリ(Pythonとしての言葉の定義はないのでは?)
一つのモジュールでライブラリということもあるだろうし
ライブラリの中に関連した複数のモジュールがある場合もあるだろうし
標準ライブラリというようにモジュールのまとまりを指すこともある
0390デフォルトの名無しさん2015/01/28(水) 19:44:20.03ID:93RLbcHP
え、お前のPythonはgzをimportできないの?
偽者だよそれ

とか言ってみようかと思ったけど
勇気なし
0391デフォルトの名無しさん2015/01/28(水) 19:48:32.43ID:nz1FZefG
mutiprocessingを使っていて
queueのサイズを確認する方法ってありますか?
0392デフォルトの名無しさん2015/01/28(水) 19:54:05.16ID:93RLbcHP
え、 qsizeあるだろ

https://docs.python.org/2.6/library/multiprocessing.html

qsize()
Return the approximate size of the queue. Because of multithreading/multiprocessing semantics, this number is not reliable.
Note that this may raise NotImplementedError on Unix platforms like Mac OS X where sem_getvalue() is not implemented.
0393デフォルトの名無しさん2015/01/28(水) 19:55:51.11ID:zZ5T+Bp9
え、え、え、ええー、ええ、え、
0394デフォルトの名無しさん2015/01/28(水) 20:04:13.99ID:93RLbcHP
すみません
0395デフォルトの名無しさん2015/01/28(水) 20:18:14.56ID:OirFWuRy
やだこのスレこわい
0396デフォルトの名無しさん2015/01/28(水) 22:45:26.89ID:Pj5TPfOs
subprocessモジュールの動かしかたを教えて下さい
このように書いたとき

import subprocess
subprocess.check_output("image.jpg")

次のようなエラーを吐きます

Traceback (most recent call last):
File "test.py", line 2, in <module>
subprocess.check_output("image.jpg")
File "C:\Python27\lib\subprocess.py", line 566, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] 指定されたファイルが見つかりません。

OSはWindows7 Pythonのバージョンは2.7.9です
0397デフォルトの名無しさん2015/01/28(水) 22:49:34.83ID:SqboHAEq
そのコードを実行したときどうなってほしいのか書いてもらえないだろうか
0398デフォルトの名無しさん2015/01/28(水) 22:55:11.45ID:q1oY2hNP
そのモジュールの使い方は知らんがimage.jpgが無えって言われてるんじゃないの
0399デフォルトの名無しさん2015/01/28(水) 22:55:36.45ID:Pj5TPfOs
>>397
コマンドプロンプトにコマンドを打ちこんだような挙動をさせたいです
元々exiftoolという外部ソフトをpythonから動かそうとしていたのですがわかりづらくなるかと思い単純なコマンドにしました
一昨日からプログラミングを始めた身なので変なこと言ってるかもしれませんがお願いします
0400デフォルトの名無しさん2015/01/28(水) 22:57:43.90ID:Pj5TPfOs
>>398
デタラメなパスを打ち込んでもフルパスを打ち込んでも同じエラーがでます
0401デフォルトの名無しさん2015/01/28(水) 23:01:27.57ID:OirFWuRy
check_output([exiftoolへのフルパス, "image.jpg"]) の実行例を省略しないで貼ってくれないか
0402デフォルトの名無しさん2015/01/28(水) 23:25:49.39ID:Pj5TPfOs
>>401
このようなエラーが出ました

Traceback (most recent call last):
File "C:\Python27\app\test.py", line 2, in <module>
subprocess.check_output(["C:\Program Files (x86)\exiftool-9.82\exiftool.exe", "C:\image\abc.jpg"])
File "C:\Python27\lib\subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command '['C:\\Program Files (x86)\\exiftool-9.82\\exiftool.exe', 'C:\\image\x07bc.jpg']' returned non-zero exit status 1

Exiftoolはコマンドプロンプトから打ち込んで動かすツールで、パスを通すことでコマンドのように使えます
exiftool -keywords+=1boy -keywords+=1girl image.jpg
とコマンドすればimage.jpgのExifタグに1boyと1girlを追加することができます
subprocessモジュールは括弧内のコマンドをそのまま実行すると聞いて試しているのですが...
cmdで正常に動くコマンドを打ち込んでもこのエラーと同じものが出てきます
0403デフォルトの名無しさん2015/01/28(水) 23:31:31.66ID:93RLbcHP
C:\\image\x07bc.jpg

なんかおかしくね
0404デフォルトの名無しさん2015/01/28(水) 23:35:45.24ID:OirFWuRy
となると r'C:¥Program Files ...' にするか 'c:/Program Files ...' か
うちはMacでうまくいく

$ python3 -q
>>> from subprocess import check_output
>>> output = check_output(['exiftool', 'ss.bmp'])
>>> output[:80]
b'ExifTool Version Number : 9.76¥nFile Name : ss.bmp¥n'
0405デフォルトの名無しさん2015/01/28(水) 23:37:27.85ID:93RLbcHP
いやいやいやエスケープ忘れてるって
0406デフォルトの名無しさん2015/01/28(水) 23:42:15.92ID:93RLbcHP
raw文字列使うといいと思いますよ

subprocess.check_output([r"C:\Program Files (x86)\exiftool-9.82\exiftool.exe", r"C:\image\abc.jpg"])
0407デフォルトの名無しさん2015/01/28(水) 23:43:40.70ID:SqboHAEq
エスケープシーケンスで引っかかったのか
rawでない文字列の中で\は通常印字しない特殊な文字を表わすために使う
\として書く場合は2つ重ねて\\と書かなければならない
0408デフォルトの名無しさん2015/01/28(水) 23:44:40.11ID:93RLbcHP
軽く罠だよね
\記号の後ろがエスケープシーケンスでない場合エラーにならずスルーするの
この仕様で誰が得をしたのか未だによく分からない
0409デフォルトの名無しさん2015/01/28(水) 23:48:19.26ID:OirFWuRy
¥a はエスケープシーケンスでベルだよ
0410デフォルトの名無しさん2015/01/28(水) 23:49:35.88ID:Pj5TPfOs
>>405
うわああああああ!!!!ありがとうございます!!
IDLEのバグかと思ってました・・・
バックスラッシュをスラッシュに変えたらうまく動きました
ああ・・・
0411デフォルトの名無しさん2015/01/28(水) 23:50:39.16ID:93RLbcHP
警告するようなら最初の\Pでとまるっしょ
そこで「認識できないエスケープシーケンスです」って出たら「知らねー単語だわ」だってググるっしょ
そういう意味よ
0412デフォルトの名無しさん2015/01/28(水) 23:52:57.36ID:93RLbcHP
× 警告するようなら
○ エラーになるようなら

そうじゃなくても凡ミスによるエスケープ忘れは高確率で止められるよね
0413デフォルトの名無しさん2015/01/28(水) 23:56:07.55ID:Pj5TPfOs
>>411
仰るとおりで...
cmdで動くなら中身に問題はないだろうという先入観がありました
恐らく聞かずに一人では気付かなかったと思います
おかげさまで画像収集が捗ります
0414デフォルトの名無しさん2015/01/29(木) 15:06:56.93ID:M+KmZpw4
c apiで可変長の引数を受け取り、シーケンシャルに処理するにはどうしたらいいでしょうか?
pythonコードだと、*argsで受け取るのをc apiでやりたい

PyArg_の関数ではなく、タプルとして処理できることはわかってますが、それご正しいのか分からない
0415デフォルトの名無しさん2015/01/29(木) 15:08:58.70ID:8k6H8xeW
それご正しい
0416デフォルトの名無しさん2015/01/29(木) 15:10:46.28ID:8k6H8xeW
http://grokbase.com/t/python/python-ideas/145qha8ygm/faster-pyarg-parsetupleandkeywords-kwargs
0417デフォルトの名無しさん2015/01/30(金) 01:09:55.87ID:s163V8A4
>>415
おおおありがとう
python c APIで期待する結果を得ること自体は、apiが直感的なので難しくないけど
こういう時こうする的なtipsがあまりなくて、けっこう不安です
0418デフォルトの名無しさん2015/01/30(金) 16:14:35.48ID:Oq+uAeyG
最新版libgit2をインストール
cmake .
make
sudo make install

pygit2をインストール
pip install pygit2

この流れではpygit2のインストールに失敗しました
どうやってインストールできるか教えてください
Debian
0419デフォルトの名無しさん2015/01/30(金) 18:55:08.68ID:ETWlTvgQ
だからエラー読め質問するならエラー貼れっていってんじゃねえかよ
04204182015/01/30(金) 19:30:56.43ID:JD65IaYR
先輩すいません。
エラーはこれですhttp://ideone.com/io5P8C
0421デフォルトの名無しさん2015/01/30(金) 19:45:17.65ID:ETWlTvgQ
libgit2を入れたって書いてあるけど他の外部依存ライブラリは入れたのか?

http://www.pygit2.org/install.html
ここのRequirementsにcffi 0.8.1+も必要って書いてあるが
04224182015/01/30(金) 19:57:46.76ID:o5DeHUoq
入れてませんでした。pip install cffiして入れた後にpip install pygit2やりましたがエラーでインストールできません
http://ideone.com/ZRhtKq
0423デフォルトの名無しさん2015/01/30(金) 20:21:22.21ID:ETWlTvgQ
Debianは64bit?
04244182015/01/30(金) 21:37:01.52ID:/koRDY8e
wheezy 64bitです
0425デフォルトの名無しさん2015/01/30(金) 22:24:15.18ID:ETWlTvgQ
ソースコードが64bit環境に対応してないんじゃないかと思う
手間だけど32bitOSを使えば上手くいくかもしれない

https://bitbucket.org/cffi/cffi/issue/136/cffi-tests-fail-on-aarch64
https://bitbucket.org/cffi/cffi/commits/af4e381b5e99

俺にはこれ以上分からん
0426デフォルトの名無しさん2015/01/30(金) 22:41:10.32ID:/koRDY8e
となると厳しいので諦めます
調べていただきありがとうございます
0427デフォルトの名無しさん2015/01/31(土) 19:59:50.02ID:C4epDZHv
struct git_checkout_optionsのサイズが違うって出てる
libgit2は開発版じゃなくてv0.22.1の方を使えばうまくいくんじゃない
0428デフォルトの名無しさん2015/02/01(日) 14:42:33.21ID:uQt+NoZh
pygameがないと動かないのでエラーになってますが、こういう文字列を画像にして表示するプログラムを書きました

http://ideone.com/tNXFHQ

【現状】
textクラス中の__init__に文字列を画像にするrenderコマンドを置いているが、これではゲームなどに使ったときに文字列を自由に指定できない
【やりたい事】
main()中で文字列を指定し、画像化、描写を一つの命令文で行えるようにしたい

何かいい方法はないでしょうか
0429デフォルトの名無しさん2015/02/01(日) 16:25:19.85ID:k8MZj5zh
キャッシュ
0430デフォルトの名無しさん2015/02/01(日) 16:54:47.36ID:uQt+NoZh
キャッシュ?
0431デフォルトの名無しさん2015/02/01(日) 17:44:16.23ID:JrPrq0o+
>>428
ほとんど同じような物を作ったことがあります

今だって text_image で持っているものを blit で描画できていますよね
何がしたいのかもう少し
0432デフォルトの名無しさん2015/02/01(日) 19:11:19.30ID:uQt+NoZh
>>431
例えば、このプログラムを応用してゲームのテキストエンジンとして利用したとき、
今の状況ですとテキストクラスからrender(str)を呼び出した後にdraw(screen, pos)を呼び出して描画しなくてはいけないですよね
勿論このままでも動きますが、一文描画するのに2つの動作を呼び出すのは少し面倒です
そこでもう少し簡潔に、例としてdraw(screen, pos, str)という風に、一文で文字列を描画できるようにしたい訳です
draw()の中にself.render()を入れてみましたが、際限なく新たな描画が続いて上手くいきませんでした
0433デフォルトの名無しさん2015/02/01(日) 19:22:26.67ID:ymu35Jul
見た感じ、drawにself.renderを加えても際限なく描画されるようには見えない

54行目から56行目の間に書かなければ
0434デフォルトの名無しさん2015/02/01(日) 19:35:41.85ID:uQt+NoZh
>>433
def draw():の後に入れてみましたがやはりダメでした

http://i.imgur.com/GOwjBhI.png
0435デフォルトの名無しさん2015/02/01(日) 20:29:55.13ID:JrPrq0o+
>>432
Textにscreenかsurfaceを渡す窓口(あるいはrenderの引数)を用意して
renderの方にdrawを入れて、メインループの中ではblitによるバッファ転送だけする形でどうですか

その場合は、画面管理クラスを別に作った方がよさそうです
0436デフォルトの名無しさん2015/02/01(日) 20:36:19.28ID:y6cHpPmK
drawの中でrender呼んだらself.text_imagesに要素を追加し続けるから
とんでも座標で描画を続けたのが原因なんじゃないの
0437デフォルトの名無しさん2015/02/01(日) 20:48:26.84ID:uQt+NoZh
>>435>>436
お陰様で後は自力で何とかできそうです
有り難うございました!
0438デフォルトの名無しさん2015/02/02(月) 15:06:57.29ID:m/5VlGOo
python.jpに求人情報とかやめとけよ。。。
0439デフォルトの名無しさん2015/02/02(月) 15:13:47.28ID:EgeABrdT
やめるも何も、出す奴いないよ
0440デフォルトの名無しさん2015/02/02(月) 15:19:04.42ID:lRVyPaO0
出す奴いない
求人はすでに載ってるから
応募するバカはいないって意味でいいのかな
0441デフォルトの名無しさん2015/02/03(火) 01:37:03.68ID:QJPps9BC
Python 2.7.6 32bit(Canopyディストリビューション)
pipでScrapyインストール済

Canopy 32-bit command promptで
C:\Windows\system32>scrapy startproject test
を実行すると
WindowsError: [Error 5]Access is denied
になる

権限の問題だと思うんですけど、一括で変更する方法が知りたいです
コマンドプロンプトでできた気はするのですが
0442デフォルトの名無しさん2015/02/03(火) 01:48:43.72ID:bJajSEki
>>441
c:/windows/system32は書き込みに管理者権限が必要で権限変更するのは論外
他の場所(c:/workとか)にディレクトリ作ってcdで移動してそこで作業すればいい
0443デフォルトの名無しさん2015/02/03(火) 09:17:55.84ID:TBm/nFR4
>>441
ぼくはねD:¥programfilesフォルダを作って全部そこにエディタやらIDEやら言語やらオフィスやら全部インストールしてますよ
システムフォルダを避けるのはWindowsの鉄板ですよ
0444デフォルトの名無しさん2015/02/03(火) 14:55:47.62ID:00JNNVea
避けてても C:\hoge\common とかにインスコする糞アプリもある VS とか
VS とか VS とか
0445デフォルトの名無しさん2015/02/03(火) 15:06:26.79ID:1xtDyTMh
一つのファイル内にpythonのバージョン2.7と3.4を分けて書く方法ありませんか?
例えば
2.7用にprint 1
3.4用にprint(1)
みたいにバージョン特有のコードが書きたいんです。
0446デフォルトの名無しさん2015/02/03(火) 15:22:21.92ID:TZB29Y9v
future importを検討しろ
0447デフォルトの名無しさん2015/02/03(火) 17:59:14.94ID:RUeaq0xn
Ctrl+zで終了させるときに特定の処理を行いたいんですが
http://stackoverflow.com/questions/9174799/how-to-prevent-user-stopping-script-by-ctrl-z
ここに載ってるsignalを使った方法をためしても実行されませんでした
何か解決方法を教えてください
0448デフォルトの名無しさん2015/02/03(火) 18:52:31.46ID:bJajSEki
>>447
OSはUNIX系じゃなくWindows?
だったらEOFErrorを捕まえるとかになるんだろうか
0449デフォルトの名無しさん2015/02/03(火) 19:28:28.28ID:RUeaq0xn
UNIXですLinux
0450デフォルトの名無しさん2015/02/03(火) 19:45:37.25ID:zRw9wgG/
何が起きたのか書きなよ
そこに載ってるサンプルを動かしてctrl+zするとどうなったの
何も起きずに動作し続ける?
一時停止してしまう?
何も表示せずに終了する?
0451デフォルトの名無しさん2015/02/03(火) 20:02:39.16ID:bJajSEki
>>449
ついでにOSやPythonのバージョン、ターミナル何使ってるかとか環境も詳しく
0452デフォルトの名無しさん2015/02/03(火) 20:03:03.13ID:4Ne+gXZ7
>>445
sysモジュールのsys.version_infoでバージョン番号を取得できるから、
プログラムの頭で取得しておいて、あとはこれを使ってif文で分岐したらいい。
ただしprintはprint関数で統一する必要がある。
3で実行するときにprint文が混じってると実行以前に文法エラーでこける。
0453デフォルトの名無しさん2015/02/03(火) 20:12:23.60ID:4Ne+gXZ7
>>445
投稿してから思い出したけど他にも文法レベルで2と3で互換性なくて
しかもprintのようには2と3で共通して使える書き方がないのがあったような気がする
だからそういう場合はこの方法は使えないな ごめん
0454デフォルトの名無しさん2015/02/03(火) 20:31:32.93ID:zRw9wgG/
どうしてもバージョンで分岐させたければ
文字列でバージョン違いの文法を入れて置いてevalすればなんとかなる
関数で各eval処理をラップしとけばそれなりに違和感ないコードになるんじゃね
0455デフォルトの名無しさん2015/02/03(火) 20:35:54.43ID:zK4Db0E5
six使えんの?
0456デフォルトの名無しさん2015/02/03(火) 20:39:15.68ID:jTfu7rnB
>>455
まだしたことないです
04574472015/02/03(火) 21:26:13.21ID:lVjwn/n/
あ、すいませんちょっと特定の環境っぽいので質問取り消します
0458デフォルトの名無しさん2015/02/03(火) 21:50:16.32ID:bJajSEki
特定の環境が原因ぽかったらそれ書いてくれないと
回答者やROMってる人の助けにならないぞ
04594472015/02/03(火) 22:40:19.19ID:hLrKLBVf
確認したいことがあるので1日待ってください
0460デフォルトの名無しさん2015/02/03(火) 23:07:39.51ID:bJajSEki
>>459
面倒くさいかもしれないけどよろしく
0461デフォルトの名無しさん2015/02/04(水) 00:17:16.42ID:E92Eb1xr
本当のトラブルをお見せしますよ
0462デフォルトの名無しさん2015/02/04(水) 09:25:13.37ID:fF80T871
print() と print を使い分ける wrapper で printf() ってのを作って
そっちだけ使うように書けば良い
0463デフォルトの名無しさん2015/02/04(水) 09:36:28.27ID:qNYKp0Ci
map使う場合は?イテレータ返すか返さないかになるけどどうしたらいいの?
0464デフォルトの名無しさん2015/02/04(水) 09:46:49.93ID:2cmJ/TzB
from itertools import imap as map
0465デフォルトの名無しさん2015/02/04(水) 12:58:12.77ID:rvhcdKCh
pythonのクラス仕様ってphpよりも貧弱なのが気になってる
0466デフォルトの名無しさん2015/02/04(水) 13:00:05.45ID:2cmJ/TzB
無様なことを強力というならそうかもね
0467デフォルトの名無しさん2015/02/04(水) 16:11:54.38ID:EhRerTxk
昨日のctrl+zですがこういうことでした
http://peace.2ch.net/test/read.cgi/unix/1413122189/611-
0468デフォルトの名無しさん2015/02/04(水) 17:26:53.56ID:Hvq8z1KY
特定の環境でもなんでもなく
ただVim上でプログラムを動作させてctrl+zしたらプログラムじゃなくてVimがそれを受け取ってバックグラウンドになっていたのを
プログラムが落ちたと勘違いしていたということね
0469デフォルトの名無しさん2015/02/04(水) 22:31:45.96ID:ZzO5YX2o
>>467
vimがバックグラウンドに移行するのはいいとして
>>447のpythonで書いたシグナルハンドラも実行されてない?
0470デフォルトの名無しさん2015/02/05(木) 21:27:51.71ID:gy1V0AJT
>>442-443
ご返信ありがとうございました
確かにsystem32でゴニョゴニョすること自体間違ってますよね
初心者過ぎてすいません
0471デフォルトの名無しさん2015/02/06(金) 00:02:22.85ID:OhT+VurR
pythonで、連立方程式は解けるんでしょうか?
例えば、
"a+b=6"
"a-b=2"
のように式が文字列で与えられたら、
a=5
b=3
という解を導きたいです。
0472デフォルトの名無しさん2015/02/06(金) 00:05:53.24ID:LVKoZcPO
pythonに限らずプログラミング言語はどれもできるよ
0473デフォルトの名無しさん2015/02/06(金) 00:13:41.62ID:OhT+VurR
>>472
pythonではどうやるんでしょうか?
evalでは上手く行かなかったので。
0474デフォルトの名無しさん2015/02/06(金) 00:16:47.41ID:gUq3o64m
>>471
Sympy というのがあってな
まずはオンラインで試してみるがよろし
http://live.sympy.org/

>>> a, b = symbols('a b')
>>> solve([a + b - 6, a - b - 2])
{a:4,b:2}
0475デフォルトの名無しさん2015/02/06(金) 00:31:12.53ID:AimmmYil
>>474
所見
おもろい
0476デフォルトの名無しさん2015/02/06(金) 00:51:51.42ID:OhT+VurR
>>474
ありがとうございます!
こんな事が出来るのが不思議ですね。
0477デフォルトの名無しさん2015/02/06(金) 13:19:38.69ID:kKwSzCeq
>>476
行列で処理する連立方程式とかで数学ぐぐれば
一般解見れるよ

xの二次方程式の解とかと同じぐらいワンパターンで処理できる
0478デフォルトの名無しさん2015/02/06(金) 13:58:51.52ID:+HsTLx7S
中学生にも門戸が開かれているpython
0479デフォルトの名無しさん2015/02/06(金) 14:24:05.89ID:dY44XvYt
どういう意図で言ってるのか知らんけどPython for kidsなんて本も出てるくらいだからまったく不思議な点はないんだよなあ
0480デフォルトの名無しさん2015/02/06(金) 14:40:14.58ID:90DsWNY6
開かれてない言語って何?w

scratchは5才からって本があるけどw
0481デフォルトの名無しさん2015/02/06(金) 23:04:41.99ID:c0NRoLXk
世界一の難解さを目的に作られたMalbolgeとかかな
普通の言語ではないが
0482デフォルトの名無しさん2015/02/08(日) 18:13:20.80ID:Yey/sLzg
どなたかアドバイスお願いします。
pythonまったくの初心者です。CENTOS6で、python2.6を使っています。

tweepyを使って特定のツイートを収集、ファイルに書き出していますが
何かの拍子で、データ書き出しがストップしてしまいます。以降、まったく
データを吐き出さなくなります。問題ないときもあるのですが。。。
標準出力をファイルに書き出しているわけではなく、tweepyのスクリプト
内で、f = open() f.write() f.close()しています。

同様の経験されている方はおられますでしょうか。
0483デフォルトの名無しさん2015/02/08(日) 19:19:24.27ID:hk971H9N
sys.stderr.write("prompt>> ")
print(sys.stdin.readline())

とやるとpython2.7では
prompt>> userinput
userinput

と出力されるのに対しpython3.4では

userinput
userinput

prompt>>

と出力されてしまいます.
3.4でも2.7の様に動かす方法は無いでしょうか?
標準入力以外のファイルオブジェクトからも入力したいので組み込み関数のinputを使うことを考えていません。
0484デフォルトの名無しさん2015/02/08(日) 19:32:09.79ID:tUjKNEQ0
>>482
codec の確認とか
encode に error='ignore'
あとちゃんと例外補足汁
0485デフォルトの名無しさん2015/02/08(日) 19:34:53.55ID:iT8Ynbpt
>>483
python3系は標準エラーが行バッファされてるというバグにも似た仕様のせい

from types import MethodType
sys.stderr.write = MethodType(lambda self, s, *a, **k: self.buffer.raw.write(s.encode(self.encoding), *a, **k), sys.stderr)

こんな感じでバッファリングされなくする事はできる。
0486デフォルトの名無しさん2015/02/08(日) 19:35:11.54ID:tUjKNEQ0
あと単位時間当たりのAPI呼び出し回数制限越えるとロックが有るな
ひどいとそのまま垢凍結まで逝く

>>483
flush()
0487デフォルトの名無しさん2015/02/08(日) 21:58:45.05ID:BjIob8z3
ttp://stackoverflow.com/questions/14675140/attributeerror-module-object-has-no-attribute-treetagger


['This\tDT\tthis', 'is\tVBZ\tbe', 'a\tDT\ta', 'very\tRB\tvery', 'short\tJJ\tshort', 'text\tNN\ttext', 'to\tTO\tto', 'tag\tVV\ttag', '.\tSENT\t.']
品詞と
0488デフォルトの名無しさん2015/02/08(日) 22:08:48.85ID:BjIob8z3
すいません。。全部書き込む前に投稿してしまいました

treetaggerに関することです。
参考にしているのは以下のページです。
ttp://stackoverflow.com/questions/14675140/attributeerror-module-object-has-no-attribute-treetagger
ttp://www.fabienpoulard.info/post/2011/01/09/Python-et-Tree-Tagger

実行して、
['This\tDT\tthis', 'is\tVBZ\tbe', 'a\tDT\ta', 'very\tRB\tvery', 'short\tJJ\tshort', 'text\tNN\ttext', 'to\tTO\tto', 'tag\tVV\ttag', '.\tSENT\t.']
こういう結果をprintするところまで出来たのですが、品詞と入力した単語原形の前に
"t"が入ってしまいます。
tの外すこととタブ区切りの出力がしたいのですが、どうすればよいでしょうか。。
0489デフォルトの名無しさん2015/02/08(日) 22:17:20.08ID:iT8Ynbpt
>>488
一個づつprintすればタブ区切りになってるから何も問題ない。
for t in tags: print t
やってみ
0490デフォルトの名無しさん2015/02/09(月) 02:30:34.77ID:LINxt01k
>>485
仕様とバグの区別ができない人?
0491デフォルトの名無しさん2015/02/09(月) 05:36:57.48ID:0p2uaiNK
stderrが行バファリングしてるとか驚き最大限の法則
0492デフォルトの名無しさん2015/02/09(月) 07:43:46.29ID:iJdyGTL3
>>490
仕様がバグらないと思ってるひと?
0493デフォルトの名無しさん2015/02/09(月) 08:07:54.75ID:aQfcHbG+
>>490はバグという言葉に反応して大好きなパイソンが貶されてるとでも思ったん?
0494デフォルトの名無しさん2015/02/09(月) 08:09:53.18ID:cxy5oANg
コミッターも挙動にびっくりしてるのが面白い
http://bugs.python.org/issue13597
0495デフォルトの名無しさん2015/02/09(月) 12:02:19.52ID:LINxt01k
なるほど仕様とバグの区別が付かないのか
04964882015/02/09(月) 12:27:31.03ID:99yenudv
>>489
ありがとうございます
正規表現だとタブは\tでしたね、、とんちんかんな質問でした
0497デフォルトの名無しさん2015/02/09(月) 12:31:28.62ID:pXLa1zoS
python -u じゃだめなん?
0498デフォルトの名無しさん2015/02/09(月) 19:52:09.93ID:+MNuqsBS
処理の早いファイルの可逆暗号で手軽な方法ないでしょうか。
入門ページとかだとMD5やらSHA1が紹介されてるものの、これはただのハッシュ直ですよね?

base64→rot13みたいな隙だらけなものでもいいのですがこれだとファイル容量が膨らみすぎるため、
blowfishのようなもう少し使いやすいものものが理想です。
0499デフォルトの名無しさん2015/02/09(月) 19:59:02.45ID:vkRnUcmL
厳密な暗号じゃなくていいなら
乱数のシードを鍵にしてxorでも取れば
0500デフォルトの名無しさん2015/02/09(月) 19:59:04.73ID:sBN76GX2
漏れは aes-256-cbc 使ってる
0501デフォルトの名無しさん2015/02/09(月) 22:42:37.71ID:FMJ5hSgn
すいません。
正規表現を使って文字列の置き換えを
変数で行いたいんですけど、どのようにすれば良いでしょうか?

------------------------------------------------------
SET_NUM = 111
r1 = r'("NUMBER":")\d+(")'
re.compile(r1)
flow.response.replace(r1, r'\g<1>${SET_NUM}\g<2>', 5)
------------------------------------------------------

よろしくお願いします、、、。
0502デフォルトの名無しさん2015/02/09(月) 23:32:37.54ID:hYgUeUM1
投稿する場所間違ってねーか?
0503デフォルトの名無しさん2015/02/09(月) 23:34:24.62ID:FMJ5hSgn
自己解決しますた。
0504デフォルトの名無しさん2015/02/09(月) 23:34:46.48ID:hYgUeUM1
【FFRK】FFレコードキーパー升スレが出てくるわ
チーターか君は
0505デフォルトの名無しさん2015/02/09(月) 23:36:23.52ID:hYgUeUM1
タイミング的にrubyスレでmitmproxyのこと聞いてた奴も臭い
0506デフォルトの名無しさん2015/02/09(月) 23:38:30.27ID:0p2uaiNK
Rubyで書いたりPerlっぽいPython書いたり忙しすぎるだろう
0507デフォルトの名無しさん2015/02/09(月) 23:54:01.03ID:hYgUeUM1
スレ眺めてきたけど
仮想マシンにpython入れてmitmproxy立てて
root取ってSSL証明書をインストールして
素人の割になかなか根性あるなと思った

エロに掛ける情熱といい勝負
0508デフォルトの名無しさん2015/02/09(月) 23:56:55.33ID:bwEZbR4B
http://jbbs.shitaraba.net/sports/42269/
0509デフォルトの名無しさん2015/02/10(火) 00:41:07.61ID:MYjHodlR
windowsで2.7を使っているのですが、
ディレクトリ一覧を見るtreeコマンドを使うためにはどうすればよいのでしょうか

pipとdistributeは入れていて、easy_install treeってやってみたのですが
うまくいきません
0510デフォルトの名無しさん2015/02/10(火) 03:14:34.62ID:S8aa6Cnw
os.walk
0511デフォルトの名無しさん2015/02/10(火) 14:19:25.82ID:MYjHodlR
>>510
ありがとうございました
今はtreeは使えないということでしょうか。
0512デフォルトの名無しさん2015/02/10(火) 15:04:06.09ID:ALeeSDV7
>>509
まずtreeとはなんでしょうか
そして何がうまくいかないのか情報がたりません。何をして何のエラーがをはいたかなどを書きましょう。
treeとはhttps://pypi.python.org/に登録されているパッケージのことですか?それなら該当するページを貼ってください。
0513デフォルトの名無しさん2015/02/10(火) 15:05:58.43ID:ALeeSDV7
ひょっとしてlinuxのtreeコマンドを実行したいなら
http://docs.python.jp/2/library/subprocess.htmlをみましょう
0514デフォルトの名無しさん2015/02/10(火) 15:55:52.25ID:Hs3TdF+4
ありがとうございました
0515デフォルトの名無しさん2015/02/10(火) 16:01:52.74ID:MYjHodlR
>>513
すいません
pythonでもlinuxコマンドが特に気にせず使えるものだと勘違いしていました
アホすぎますね、もっと勉強します
0516デフォルトの名無しさん2015/02/10(火) 19:55:29.72ID:V4ts0ZsF
import sys.os
たっけ?
0517デフォルトの名無しさん2015/02/10(火) 20:45:04.04ID:sLQgIheM
nihongodeok
0518デフォルトの名無しさん2015/02/10(火) 20:46:14.92ID:0/TZRNUl
>>516
とりあえず試そう
0519デフォルトの名無しさん2015/02/11(水) 01:12:51.19ID:GkIWFUyF
試す暇があったらお前らになんか聞かんわ
0520デフォルトの名無しさん2015/02/11(水) 02:45:25.74ID:sfXJxhtA
>>519
ここに書き込むより自分で試したほうがよっぽど速い。
それをしないお前はクズ。
0521デフォルトの名無しさん2015/02/11(水) 04:19:45.07ID:G6Qrpf6L
sqlalchemyのcommit()とflush()てどう違うんでしょうか?
同じですか?
0522デフォルトの名無しさん2015/02/11(水) 06:05:02.34ID:29qyXWgk
commitはボットン便所
flushは水洗便所
0523デフォルトの名無しさん2015/02/11(水) 13:33:17.98ID:G6Qrpf6L
すみませんもうちょっと詳しく教えていただけないでしょうか
0524デフォルトの名無しさん2015/02/11(水) 13:50:03.72ID:luZixpFu
http://stackoverflow.com/questions/4201455/sqlalchemy-whats-the-difference-between-flush-and-commit
0525デフォルトの名無しさん2015/02/11(水) 19:06:05.92ID:G6Qrpf6L
>>524
ありがとうございます
0526デフォルトの名無しさん2015/02/12(木) 02:16:08.34ID:l8sOurZL
さよならpyscripter
君の事は大好きだったけどraw_inputが読み込めないのが怖くて使えないんだ……

はぁ、開発環境どないしよ
pycharmのオープンソース版とかいう奴でええんかな
0527デフォルトの名無しさん2015/02/12(木) 04:09:05.71ID:nz2ivqB0
>>510
ファイル数が少ないならいいけどos.walkって糞遅いんだよね
その部分だけc/c++で書いてswigとかで呼び出したほうが幸せだわ
0528デフォルトの名無しさん2015/02/12(木) 04:32:53.18ID:/kBvo1zT
パス列挙する以外に余計な機能持ってるかんね
ディレクトリとファイルを分ける為に一つ一つシステムコール打ちやがるし
初期のナンセンスな設計そのままって感じ
0529デフォルトの名無しさん2015/02/13(金) 09:43:12.40ID:BrAGpUh6
質問です
python でopenしたファイル(テキストファイル)を、10行ずつ別ファイルに
書き込みたいです。
別の変数を用意して、
ファイルを読み込んで、1行ずつ書き込んでいくごとに1足していって、10になったら
別ファイルに書くようにすればいいかと思うのですが、もっといい方法あったら教えてください。
0530デフォルトの名無しさん2015/02/13(金) 09:49:37.42ID:OQXQ5SVC
それでいいよ
0531デフォルトの名無しさん2015/02/13(金) 13:51:13.72ID:XSQtTg3s
いい方法かどうかはわかんないけど、こんなやり方もあるって程度で↓
1. 全部一気に読む
2. 改行文字でsplit()
3. 2で出力されたリストを10個ずつ書き出す

この方法だとメモリを食うのが難点だけど、ファイル書き出しを始める前にファイル総数が分かる点はメリット。
0532デフォルトの名無しさん2015/02/13(金) 13:51:43.35ID:dpVVOxpY
だめよ
だめだめ
0533デフォルトの名無しさん2015/02/13(金) 22:13:40.15ID:SVZa3gOz
>>529
https://ideone.com/Q9PeAV
0534デフォルトの名無しさん2015/02/13(金) 22:17:50.53ID:bVuUfGGH
親切だな・・・と、思ったらw
0535デフォルトの名無しさん2015/02/13(金) 22:30:06.64ID:VTed8hSx
なにこのわざわざPythonをRubyに変換したかのようなRubyらしくないコード
0536デフォルトの名無しさん2015/02/13(金) 22:50:58.97ID:VTed8hSx
import itertools
lines=10
filename="input.txt"
for i in itertools.zip_longest(*[open(filename,"r")]*lines): print(i)
# ファイルへの出力に自分で変えてね
0537デフォルトの名無しさん2015/02/13(金) 23:10:45.29ID:kDDtzzsz
その発想はなかったけど嫌なコードだなw
0538デフォルトの名無しさん2015/02/13(金) 23:17:03.64ID:VTed8hSx
その場限りならインタフェースと動作さえ分かってれば実装はどうでもよいのさ
0539デフォルトの名無しさん2015/02/14(土) 01:17:41.83ID:eT51Fssc
そういった書き捨てや簡単な文字列処理のコードは、perlやシェルの方が
適しているのかな
0540デフォルトの名無しさん2015/02/14(土) 02:11:22.92ID:6+v8Aa7S
んなこたあない
0541デフォルトの名無しさん2015/02/14(土) 09:45:13.69ID:9lOVDoz+
そもそもテキストファイルを特定行数単位で処理するのって
どの言語も不得意なテーマだよ
データ処理のエキスパートであるSQLですら、上位xx行という機能はあっても
xx行ずつレコードを抜き出すという機能は持ち合わせていない
0542デフォルトの名無しさん2015/02/14(土) 10:01:16.90ID:AJcG1brN
不得意も何もPythonのzip_longestやRubyのeach_sliceでサクッと解いてるじゃないか
0543デフォルトの名無しさん2015/02/14(土) 10:26:53.77ID:L/dx5qmH
>>541
MySQLにはlimit句で行数の取得制限あるよ
じゃないとwebのページング処理とか作れない
0544デフォルトの名無しさん2015/02/14(土) 10:31:16.03ID:xzkKcWkn
limitって上位xx行だけじゃなくて
上位oo行から上位ωω行までって指定も出来たっけ
0545デフォルトの名無しさん2015/02/14(土) 10:43:37.86ID:L/dx5qmH
>>544
例えば3ページ目の15件なら
select * from xxxx limit 30, 15
のようにカンマの前にスキップ数を指定

通常は順序が不定にならないようにorder byも入れるかな?
0546デフォルトの名無しさん2015/02/14(土) 10:44:23.21ID:pzGXmezT
limit offsetだろ
まあ素人がスロークエリー作りやすい機能だけど
0547デフォルトの名無しさん2015/02/14(土) 10:59:52.77ID:Tntf/sjh
2点間の経度緯度の距離を求めるパッケージってありませんか?
国土地理院で公開されている計算式が読めなくてコードにするのに挫折したんですが
パッケージなら有りそうな気がするので
0548デフォルトの名無しさん2015/02/14(土) 11:02:16.61ID:Tntf/sjh
経度緯度 距離 javascript
でググって出てくる1ページ目の記事で公開されているコードの実行結果と
国土地理院での結果があまりにも違いすぎて

東京駅から埼玉の大宮駅の間だけで5000kmもの差が出てるのでググって出てきた記事ですら信用できません
0549デフォルトの名無しさん2015/02/14(土) 11:14:55.18ID:xzkKcWkn
それ地球一周してないか
0550デフォルトの名無しさん2015/02/14(土) 11:21:14.79ID:pzGXmezT
そもそもなんでjavascriptなんだ
質問するところ間違ってねえか
npmのパッケージ探してますとか言ったらころすぞ
0551デフォルトの名無しさん2015/02/14(土) 11:22:49.17ID:xzkKcWkn
ここのがまとも
http://keisan.casio.jp/exec/system/1257670779
0552デフォルトの名無しさん2015/02/14(土) 11:22:53.64ID:pzGXmezT
本当にPythonなら https://pypi.python.org/pypi/geopy を使うとよい
0553デフォルトの名無しさん2015/02/14(土) 11:31:36.15ID:pzGXmezT
地球を球体として扱っている式は、緯度方向のずれが大きくなるので止めた方がいい
球体扱いとvincentyの式では、東京大宮間ですら4kmも差が出る
0554デフォルトの名無しさん2015/02/14(土) 13:16:06.26ID:4Ppy833I
語学学習のための動画ファイルを自動的にダウンロードすることを考えています。
以下のサイトの再生ボタンを python から操作したいのですが、良い方法があれば教えていただけると助かります。

http://www.nhk.or.jp/kokusaihoudou/movie.html?v=72d3551c8a75a8bb2d9

※RTMPDUMP というソフトを事前に起動しておけば、動画を再生することで動画ファイルを保存出来るため。
0555デフォルトの名無しさん2015/02/14(土) 13:29:52.55ID:FOX5OGDf
またコード1から書いてくれちゃんですか
0556デフォルトの名無しさん2015/02/14(土) 13:41:06.49ID:AJcG1brN
コードば書いてくれちゃらんですかに見えた
0557デフォルトの名無しさん2015/02/14(土) 13:55:07.13ID:G55HU/jn
document.write('<script charset="utf-8" src="http://movtag.nhk.or.jp/IF/RequestMovie.aspx?clientid=850&;episodeid=72d3551c8a75a8bb2d9&smode=1&u_base_pw=320&u_base_ph=199"></' + 'script>');
0558デフォルトの名無しさん2015/02/14(土) 14:28:40.47ID:G55HU/jn
>>548
>>551
cos(距離/赤道半径) = sinY1sinY2 + cosY1cosY2cos(X2-X1)
tan(90 - 方位角) = sin(X2-X1) / (cosY1tanY2 - sinY1cos(X2-X1))

大宮 = 139.647216796875 , 35.8667954174903
東京 = 139.735107421875 , 35.7108378353009
赤道半径 = 6378.137 km
距離 = 19.089176 km
方位角 = 155.407105 (155:24:25.58)
0559デフォルトの名無しさん2015/02/14(土) 15:02:52.37ID:4RlJzBDK
>>554
ブラウザ操作ならSelenium
0560デフォルトの名無しさん2015/02/14(土) 18:30:14.71ID:LnLkdXvp
PythonでWindowsアプリというかクロスプラットフォームアプリを作る時
Windowsではpy2exeでまとめるのが今も一般的ですか?
0561デフォルトの名無しさん2015/02/14(土) 18:30:17.32ID:4Ppy833I
>>555
何かヒントだけでも良いので教えてもらえると・・・

>>557
これはJavaスクリプトですか。

>>559
ありがとうございます。
調べてみます。
0562デフォルトの名無しさん2015/02/14(土) 18:41:31.98ID:IBf+xnKf
俺ぐらいの実力ならシェルスクリプトでcurl使うけどね
0563デフォルトの名無しさん2015/02/14(土) 19:03:22.47ID:pzGXmezT
>>560
俺の観測範囲では利用例を見たことがない
今もってことは昔は一般的だったのか?
0564デフォルトの名無しさん2015/02/14(土) 19:09:06.71ID:LnLkdXvp
>>563
知らないです。ぐぐったらそれが出てきたので。

Windowsでサービス化したアプリを作りたいと思っているのですが、
どうすればいいのかなーと思って。
0565デフォルトの名無しさん2015/02/14(土) 19:11:41.05ID:Wks88uPG
おれならpyqtを使う
0566デフォルトの名無しさん2015/02/14(土) 19:19:52.96ID:pzGXmezT
サービスなんかスクリプトのままでも登録できる
普通に作るとサービスイベントに反応できないが、そりゃexeにしたって同じだろう

sc create hoge binPath= C:\path\to\python.exe C:\path\to\script.py
0567デフォルトの名無しさん2015/02/14(土) 19:26:03.33ID:pzGXmezT
こっちの方がいいかな
http://masahito.hatenablog.com/entry/20110511/1305107553
0568デフォルトの名無しさん2015/02/14(土) 19:30:28.97ID:LnLkdXvp
>>565
それGUIじゃないんですか?
サービスなのでGUIはいらないです。

>>566
問題はサービスに登録する方法ではなくて、
普通のユーザーはpython.exeを持っていないので、
どうやって配布するかという問題です。

python.exeをzipに詰めて、install.batすればいいんでしょうか?
0569デフォルトの名無しさん2015/02/14(土) 19:31:08.99ID:LnLkdXvp
つまり、パッケージ化の方法。
使っているライブラリを全部含めないといけない。
0570デフォルトの名無しさん2015/02/14(土) 20:16:55.59ID:4RlJzBDK
比較したことないけどcxfreezeが簡単だったょ
0571デフォルトの名無しさん2015/02/14(土) 20:35:10.46ID:TJAnvvXO
>>558
質問です

from math import *

def rad(t):
return t * pi / 180.0

def irad(r):
return r * 180.0 / pi

def main(r, (n1, x1, y1), (n2, x2, y2)):
print '%-10s: %20.15f, %20.15f' % (n1, x1, y1)
print '%-10s: %20.15f, %20.15f' % (n2, x2, y2)
rx1, ry1 = rad(x1), rad(y1)
rx2, ry2 = rad(x2), rad(y2)
rdx = rad(x2 - x1)
print 'd: %20.15f' % (r * acos(sin(ry1) * sin(ry2) + cos(ry1) * cos(ry2) * cos(rdx)))
print 't: %20.15f' % (90.0 - irad(atan((cos(ry1) * tan(ry2) - sin(ry1) * cos(rdx)) / sin(rdx))))

if __name__ == '__main__':
omiya = ('Omiya', 139.647216796875, 35.8667954174903)
tokyo = ('Tokyo', 139.735107421875, 35.7108378353009)
main(6378.137, omiya, tokyo)
main(6378.137, tokyo, omiya)

方向角が180度変わることを期待したのですが同じ値になってしまうのです。なぜでしょうか?どう治せば良いですか?
0572デフォルトの名無しさん2015/02/14(土) 20:36:26.54ID:a/Aaml5q
>>570
ありがとうございます。

py2exeはPython3には対応してないみたいですね。
PyInstallerというのも見つけたけど同様。
0573デフォルトの名無しさん2015/02/14(土) 23:15:17.17ID:j6SWj+8+
vimをIDE化しようとして挫折しました
windows環境でオススメのIDE教えて頂けませんか
0574デフォルトの名無しさん2015/02/14(土) 23:45:07.95ID:15MsuvIH
PyCharm
0575デフォルトの名無しさん2015/02/14(土) 23:51:26.64ID:3EzoAznx
windowsだとunicornとか使えなくて色々不便に感じませんか
0576デフォルトの名無しさん2015/02/15(日) 00:20:33.75ID:emBVm4wS
>>574
ありがとうございます
英語の勉強と思って暫く頑張ってみます

>>575
まだpython初めて2週間そこらなんです
何か不便に感じる部分があったらまた相談に来たいと思います
0577デフォルトの名無しさん2015/02/15(日) 01:30:39.60ID:l4Ml7vAk
IDE化より先にやることあるだろバカ
0578デフォルトの名無しさん2015/02/15(日) 08:38:55.42ID:m8EyiHEU
先にやることとは?

初学者ほどIDEあると簡単に文法チェックや動作確認デバッグできるから有用だと思う
リファレンスとか見なくても書けるようになると一時期はエディタだけでもよくなり
大きいソフトを書くようになるとまたIDEで管理が有用になる感じだなあ
0579デフォルトの名無しさん2015/02/15(日) 09:25:20.88ID:MIyWYvDB
>>578
577は、煽り学習法厨。
0580デフォルトの名無しさん2015/02/15(日) 09:30:41.96ID:p1zacc3e
シェルの扱いにも慣れていないようなずぶの初心者にIDE勧める奴は理屈抜きで銃殺されてほしい
0581デフォルトの名無しさん2015/02/15(日) 09:41:23.77ID:oBnjhPw1
これも煽り学習法厨かぁ
0582デフォルトの名無しさん2015/02/15(日) 10:05:45.91ID:BnNo2fCr
>>556
ワロタwww
0583デフォルトの名無しさん2015/02/15(日) 11:09:44.10ID:cXPo/aFG
vim でいえば python 初学者に必要なのはいいとこ
quickrun と python-pep8-indent と好きなカラースキームくらいでしょ。
せっかくの動的型付けのインタープリタ言語なのだし(ガシガシ実行してエラー吐けば良い)
# vim のメインの魅力はそこにはない…と思うので、IDE化挫折でストレスなく他の環境に移れるなら
# それもいいとはおもうけど
0584デフォルトの名無しさん2015/02/15(日) 11:42:33.69ID:NqF+36Lb
チョンチョンうるせー
0585デフォルトの名無しさん2015/02/15(日) 12:00:49.78ID:GsyuIu8e
windowsでsublime text使ってhttps://github.com/srusskih/SublimeJEDIを入れろ
0586デフォルトの名無しさん2015/02/15(日) 12:03:15.45ID:uxAoEDAd
将来性がなさそうなSublimeですか
開発者はぼっちを卒業できたの?
0587デフォルトの名無しさん2015/02/15(日) 12:08:59.14ID:nj8cCepF
プラグインとか入れすぎると設定ファイルやらキーバインディングやらわけわからなくなるw
0588デフォルトの名無しさん2015/02/15(日) 12:37:28.07ID:cwqWcMrx
なんてったってIDLE〜
0589デフォルトの名無しさん2015/02/15(日) 16:07:55.41ID:bX6frV1s
節子それ綴りちゃう
0590デフォルトの名無しさん2015/02/15(日) 21:50:40.79ID:yEZCPie2
pycharmが便利すぎるんだもの・・・
0591デフォルトの名無しさん2015/02/16(月) 02:56:11.07ID:Zn9bWbFW
>>568-569
「パーフェクトPython」によると、
標準ライブラリの distutils をベースにした、
distribute がよく使われているらしい

プロジェクトには、setup.py モジュールを含める

README.txt は、reST記法で書く。
reSTは、Sphinx ユーザ会を参照

アプリをPyPIで公開
0592デフォルトの名無しさん2015/02/16(月) 03:51:48.70ID:eNf9G2qM
>Since the Setuptools 0.7 release, Setuptools and Distribute have merged and Distribute is no longer being maintained.
>Distribute is no longer being maintained.
>Distribute is no longer being maintained.
>Distribute is no longer being maintained.
0593デフォルトの名無しさん2015/02/16(月) 22:56:27.23ID:bBWfSFB0
>>591
レスありがとうございます。

ですが、そのレスを見るより先に、こっちを読んでしましましたw
http://www.yunabe.jp/docs/python_package_management.html

> 原則 pip を使ってパッケージの管理を行う
> setuptools も広く使われているので入れておくとよい。そもそも pip のインストール時に自動的ににインストールされる
> distribute は 2013年に setuptools にマージされたので不要
0594デフォルトの名無しさん2015/02/19(木) 21:59:37.47ID:SeqnhdII
pythonのtkってドキュメントに書いてあることが圧倒的に少ないんですが書いてないのは未実装ってことですか?
0595デフォルトの名無しさん2015/02/20(金) 00:10:50.21ID:0PEQCiTj
はい?
0596デフォルトの名無しさん2015/02/21(土) 14:25:07.32ID:gDUcfidl
from moduleName import ClassName
とクラスをインポートしてリロードしたい場合どう書くのでしょう?
0597デフォルトの名無しさん2015/02/21(土) 15:18:29.29ID:Z8d/Dz/w
リロードってなに?ブラウザ上?
0598デフォルトの名無しさん2015/02/21(土) 15:32:18.23ID:gDUcfidl
内容を修正して再読み込みしたいときに
モジュールでfrom modulePath import moduleNameとインポートしていれば
reload(moduleName)と書いていたのですが
from moduleName import ClassName
とクラスをインポートしている場合、どう書くのかなと
0599デフォルトの名無しさん2015/02/21(土) 18:08:48.67ID:+xlkhew9
>>598
リロードはできる、できるが・・・
君が望んでるリロードではないと思う
もしそうなら君が望んでるリロードはできない
どう書けばいいかでなくそういう機能はない

http://pastebin.com/3CYgfGBF
0600デフォルトの名無しさん2015/02/21(土) 18:11:47.69ID:+xlkhew9
余談だが、フレームワークの機能によくあるautoreloadは
自分自身を再起動する or execfileでソースから実行する
などの方法を使っている
0601デフォルトの名無しさん2015/02/21(土) 20:06:37.88ID:gDUcfidl
ありがとうございました
修正がありそうなものはクラスで読み込まないように書こうと思います

もう一点インポートについて
import modulePath.moduleName as moduleName
といったモジュール名と同じ名前を別名に与えているコードがあります
個人的に名前を変更しないならfromのほうが自然のような気がするのですが
from modulePath import moduleName
何か利点があるのでしょうか?
0602デフォルトの名無しさん2015/02/21(土) 20:16:12.87ID:HRR/gGfP
__init__.py を敢えて使いたくない(書きたくない)ときとかかな
0603デフォルトの名無しさん2015/02/21(土) 20:21:48.31ID:/hoA+ACR
なんで

hensu, hensu2 = map(int, raw_input().split())
print(hensu, hensu2)
print hensu, hensu2

プリントの出力が違うのはなぜですか
0604デフォルトの名無しさん2015/02/21(土) 20:36:25.15ID:sa43Zcnr
print(a, b)は引数のタプル(a,b)をprintしてる
一方print a, bは引数aと引数bをprintしてる
0605デフォルトの名無しさん2015/02/21(土) 20:53:32.79ID:SU8LRiPf
python3だと
print((hensu, hensu2))
print(hensu, hensu2)
こうなっちゃうね
0606デフォルトの名無しさん2015/02/22(日) 00:54:32.42ID:dEB4uEVR
いまどきPython2なんかつかってるロートルほど自分のPythonのバージョン書かないのな。
0607デフォルトの名無しさん2015/02/22(日) 00:59:33.32ID:c7iyE8Go
>>602
ありがとうございます
0608デフォルトの名無しさん2015/02/22(日) 01:50:41.10ID:COKde7BB
>>606
print文なんてFAQレベルじゃん
つーかPython2なんかをつかわない環境を明記してくれよw
0609デフォルトの名無しさん2015/02/22(日) 09:52:00.80ID:LjorwAuy
コード見てpython2だという事がわからない無知がいるのかよ
0610デフォルトの名無しさん2015/02/22(日) 10:12:25.02ID:2vzKbssH
from __future__ import print_function

Python2なら書いとけよ
0611デフォルトの名無しさん2015/02/22(日) 10:13:30.86ID:TAWF76o2
最初の質問者じゃないんだけど、疑問に思ったので便乗質問させてください。

print関数って2.6以降の2.x系にバックポートされて、
2.6と2.7ではprint文とprint関数の両方が使える、
と思い込んでたけど、実は違った。
ここの流れを見ていて、同じprint関数なのになんで挙動が違う?
と疑問に思って調べて、初めて知った。

2.x系におけるprint()は、見かけに相違して、print関数ではなく、
() で囲まれた式をprint文に渡しているものとして解釈されている。
("a") みたいに () の中がひとつなら2.xでも3.xでも同じ挙動だけど、
("a", "b") みたいに () の中に "," で区切って複数を並べると、
2.xではタプルをprint文に渡したものとして解釈される
(一方、3.xではふたつの引数をprint関数に渡したものとして解釈される。
2.xにおける print "a", "b" と同じ)。
2.x系でprint()に3.x系と同じ挙動を求めるなら、
from __future__ import print_function を実行して、
print文を無効にし、print関数を有効にしなければならない。

この理解であっていますか?
0612デフォルトの名無しさん2015/02/22(日) 11:04:10.99ID:uX3Bvmht
>同じprint関数なのになんで挙動が違う?

だれが同じprint関数って言ってた?
0613デフォルトの名無しさん2015/02/22(日) 11:18:14.17ID:JdprH66q
そうだよ、両方使えると言えば使えるが
future文による切り替えで混在している訳ではない
括弧つけたくらいでキーワードが識別子になるものか
0614デフォルトの名無しさん2015/02/22(日) 12:08:42.83ID:x6DbFD5S
オライリーのデータ分析入門やってる。最初のサンプルデータから、エンコードのエラー出るんだけど…。どうしたらいいの…。
0615デフォルトの名無しさん2015/02/22(日) 12:13:07.50ID:tq8+HI3u
いきなりスポーツカーに乗らないで教習所から始めたらどうですか
0616デフォルトの名無しさん2015/02/22(日) 12:22:07.32ID:x6DbFD5S
ホームページから落としたサンプルを本の通りに数行入力しただけなんだけど。それがスポーツカーなのか?
まあもう少し調べてみるが。
0617デフォルトの名無しさん2015/02/22(日) 12:28:22.61ID:zI7TF6m8
・エラーを見て何が原因か調査する
・サンプルが動く動作環境を満たしているか確認する
0618デフォルトの名無しさん2015/02/22(日) 12:34:03.75ID:uX3Bvmht
>>616
スポーツカーというか盗難車だな
0619デフォルトの名無しさん2015/02/22(日) 13:06:41.71ID:ZJshy5JI
Python3にはまだ早い
あと2年待て
0620デフォルトの名無しさん2015/02/22(日) 13:10:02.34ID:G9MatKu0
と、言われ続けてはや幾年
0621デフォルトの名無しさん2015/02/22(日) 14:23:33.95ID:TfAgRNIZ
>>616
窃盗と無免許運転です
0622デフォルトの名無しさん2015/02/22(日) 14:27:06.89ID:33oFsXpr
運転免許には、車の点検・整備の責務もあるんだよなぁ
0623デフォルトの名無しさん2015/02/22(日) 14:37:59.78ID:TfAgRNIZ
自賠責加入も義務だな
窃盗無免許だと保険下りないだろうけど
0624デフォルトの名無しさん2015/02/22(日) 15:00:42.15ID:0njaRTk3
その本はPythonの入門書ではない
Pythonという言語の使い方が分かっている人向けの、Pythonを使ってデータ分析する入門書

車に乗れないのに、車に乗れる人向けのスポーツカーの乗り方を見てるようなもの
0625デフォルトの名無しさん2015/02/22(日) 16:35:34.11ID:Y6PClI/L
スポーツカーの乗り方って普通の車とそんなに違うの?
0626デフォルトの名無しさん2015/02/22(日) 16:38:56.93ID:tq8+HI3u
僕は乗り方(Python自体のチュートリアル)から学んだらどうですかと言ったつもりなんですが
なんかへんな方向に進んでますね
0627デフォルトの名無しさん2015/02/22(日) 16:46:55.79ID:TAWF76o2
>>613
ありがとう。

>>612
少なくとも俺はそう思い込んでたっていうこと。
0628デフォルトの名無しさん2015/02/22(日) 16:49:20.24ID:Y6PClI/L
たとえ話は適切に用いないと読み手に却って混乱を来たすという好例ですね。
0629デフォルトの名無しさん2015/02/22(日) 17:17:07.83ID:6dzHQoci
>>625
違う
まっすぐ走るのも結構難しい
何もない直線で自分の車なのにガードレールに突っ込むやつとか見たこと無い?
0630デフォルトの名無しさん2015/02/22(日) 17:22:35.88ID:G9MatKu0
低速で走る方が難しい、車高が低いから視界が悪い
0631デフォルトの名無しさん2015/02/23(月) 15:47:08.16ID:UVXbAF4b
>>595
panedWindowの説明も載ってない
0632デフォルトの名無しさん2015/02/23(月) 16:05:20.33ID:cY48eAod
>>631
https://docs.python.org/3/library/tk.html
> The tkinter package is a thin object-oriented layer on top of Tcl/Tk.
> To use tkinter, you don’t need to write Tcl code, but you will need
> to consult the Tk documentation, and occasionally the Tcl documentation.

http://effbot.org/tkinterbook/panedwindow.htm
0633デフォルトの名無しさん2015/02/23(月) 16:51:30.66ID:Kf7W7KjZ
Tclコードを書く必要はないが、TkやTclのドキュメント見てね、か
0634デフォルトの名無しさん2015/02/26(木) 06:37:21.90ID:7Ps8h7ua
すいません、本当に下らない質問をさせて下さい。

datetime.dateでは2つの日時で引き算が出来るのですが、datetime.timeで2つの時刻を使った引き算が出来ません。

s = datetime.time(15,20)
e = datetime.time(21,30)
t = e - s

何を使えば良いのでしょうか?
0635デフォルトの名無しさん2015/02/26(木) 07:16:27.97ID:NRaL/N/C
>>> import datetime
>>> s = datetime.datetime(2015,2,26,15,20)
>>> e = datetime.datetime(2015,2,26,21,30)
>>> t = e - s
>>> t
datetime.timedelta(0, 22200)
0636デフォルトの名無しさん2015/02/26(木) 07:50:28.11ID:rnY64eLq
http://bugs.python.org/issue17267
なんか揉めていやがる
ま〜たタイムゾーンか

joda-timeみたいにdateとtimeはlocalオンリーにすればよかったんだよ
マヌケめ
0637デフォルトの名無しさん2015/02/26(木) 08:11:23.97ID:7Ps8h7ua
>>635
ありがとうございます。

ちなみに「時�ェ」の入力だけで求められる方法ってないでしょうか?
特に年月日が決まってない際には困るなぁと思いまして。
0638デフォルトの名無しさん2015/02/26(木) 08:33:49.85ID:rJrYfait
GoogleAppEngineもなんかtimezone可笑しいんだよな
0639デフォルトの名無しさん2015/02/26(木) 08:34:41.95ID:rJrYfait
>>636
日本みたいに夏時間使ってなくてtimezoneも一つしかない国ならそれが一番良いんだけどね
0640デフォルトの名無しさん2015/02/26(木) 08:39:28.47ID:rJrYfait
>>637
http://www.nichinoken.co.jp/images/column/shikakumaru/2014/15_m02/poster_sa_b.jpg
0641デフォルトの名無しさん2015/02/26(木) 09:54:48.82ID:x0eimpI7
俺にも解けた!
0642デフォルトの名無しさん2015/02/26(木) 09:55:01.39ID:h/RT/ene
phpは夏時間にも対応している
pythonも対応するべきだ
0643デフォルトの名無しさん2015/02/26(木) 10:55:04.14ID:rJrYfait
>>641
python で解くプログラム書いてみ
0644デフォルトの名無しさん2015/02/26(木) 10:56:05.57ID:rJrYfait
>>642
pytz が有名だけど
0645デフォルトの名無しさん2015/02/26(木) 20:37:03.22ID:NRaL/N/C
>>637
年月日がきまってないっていうことはその2つの時刻が
同日だという保証もないので計算不能が正しいのでは?
もし同日と見なしてもいい場合は、そういうメソッドは
ないので自分で求めましょう。
0646デフォルトの名無しさん2015/02/26(木) 21:51:55.23ID:EQFLZ0n/
うるう秒のある日だったらどうするんだろうな
0647デフォルトの名無しさん2015/02/26(木) 23:14:51.09ID:s/sSMokI
>>637
端からTimeDelta同士にすれば良…くないかな?

s = datetime.timedelta(hours=15,minutes=20)
e = datetime.timedelta(hours=21,minutes=30)
t = e - s
0648デフォルトの名無しさん2015/02/27(金) 10:48:00.29ID:8am9uRwl
>>637
import datetime
x = lambda h, m: datetime.timedelta(hours=h, minutes=m)
s = x(1, 2)
e = x(5, 7)
print(e - s)
0649デフォルトの名無しさん2015/02/27(金) 11:38:34.02ID:OVfL6gGI
>>634
e>=sの条件が絶対に成り立っているの?
時刻だけで計算したいって言うならsが23:59でeが0:00みたいなときはどうすんの?
0650デフォルトの名無しさん2015/02/27(金) 11:39:40.02ID:OVfL6gGI
21時30から15時20を引くなら単純に
2130-1520でもいいんだけどさ
0651デフォルトの名無しさん2015/02/27(金) 11:46:54.58ID:rH0Q6QqF
このスレは条件後出し推奨ですか?
0652デフォルトの名無しさん2015/02/27(金) 11:49:54.33ID:RzxKPtwm
ツッコミだと思います先生
0653デフォルトの名無しさん2015/02/27(金) 13:30:03.74ID:EtM70Hm1
今からpython学ぶ場合、2と3ではどっちのほうがいいんだよ
0654デフォルトの名無しさん2015/02/27(金) 13:40:23.10ID:rH0Q6QqF
両方やれ
Pythonに横道なし
0655デフォルトの名無しさん2015/02/27(金) 14:01:33.52ID:kbiroK7N
俺も新しもの好きで3.3から始めた俺がアドバイスしてやる。
競技プログラミングだと2.7で書かれることが多い。
Linuxだと2.7が標準で入っていて3は3.2が入っていることが多いので、世の中の実行環境は2.7のほうが3よりも多いから便利なツールなどはいろんな環境で動かせるように2.7で作るようにしている。
djangoなどのWebフレームワークを使ってWebアプリを作る場合は3.4使ってる
用途にあわせてバージョンを変えて使っていけば自然と両方書けるようになる
0656デフォルトの名無しさん2015/02/27(金) 14:19:45.47ID:LOve8H/f
GAEのPython3待ち
0657デフォルトの名無しさん2015/02/27(金) 15:32:43.73ID:PdlM0W+O
そういやCentoOSもようやく2.7にしやがったのか
0658デフォルトの名無しさん2015/02/28(土) 16:09:03.83ID:n54ECBzp
ABAQUSと連携してる方、なんかおもしろいのあったら教えてちょ!
0659デフォルトの名無しさん2015/02/28(土) 16:13:22.37ID:ODdhY4Z/
>>643
import datetime
LED7SEG = [6, 2, 5, 5, 4, 5, 6, 4, 7, 6]

def checkSum(ym):
return reduce(lambda a, b: a + LED7SEG[int(b)], (ym[0], ym[1], ym[3], ym[4]), 0)

sum, cnt, min, minym, max, maxym = 24, 0, (LED7SEG[8] * 4), '', 0, ''
dt = datetime.datetime(2016, 1, 1)
while True:
ts = datetime.datetime.strftime(dt, '%Y-%m-%dT%H:%M:%S')
ym = ts[5:10]
s = checkSum(ym)
if s < min: min, minym = s, ym
if s > max: max, maxym = s, ym
if s == sum: cnt += 1
dt += datetime.timedelta(days=1)
if dt.month == 1 and dt.day == 1: break

print 'cnt: %d, min: %d %s, max: %d %s' % (cnt, min, minym, max, maxym)
0660デフォルトの名無しさん2015/02/28(土) 17:51:58.21ID:qDsQcJHp
PHPからPythonに移行して感動したコード

a = 1
b = 2
a, b = b, a
0661デフォルトの名無しさん2015/02/28(土) 18:19:10.70ID:st/D/r/c
総当たりつまらんな
0662デフォルトの名無しさん2015/02/28(土) 18:36:42.68ID:QIv+CRYz
>>658
Abaqus Pythonは叩いたことあるけど
君が何を求めているのかがわからない。
0663デフォルトの名無しさん2015/02/28(土) 21:32:31.72ID:XCn5YYSe
Python初心者です。少しお尋ねしたいことがあります。OSは OSX yosemite(10.10.2)です。
私はPythonのバージョン管理をpyenv及びvirtualenvを用いて行っています。
先日Anaconda(3.2.1.0)なるPythonの数値計算ディストリビューションをpyenvを用いて導入したのですが、
virtualenvを用いて仮想環境を構築し、その仮想環境下のディレクトリでスクリプトを書いても、
Anacondaに付属しているはずのNumpyがimportできませんでした。
少々調べてみたところ、
"It doesn't really make sense to merge Anaconda and a virtualenv,
as Anaconda is a completely independent installation of Python. "
と書かれていたのですが、結局何も分からずじまいです。
付属のSpyder.app(IDE)を用いるとNumpyもimportできるのですが、
結局のところAnacondaによる仮想環境はどのように構築することができるのでしょうか?
そして何故Spyder.appを用いるとNumpyのimportが可能だったのでしょうか?
全く見当外れな質問かもしれませんが、よろしくお願いします。長文失礼しました。
0664デフォルトの名無しさん2015/03/01(日) 02:00:08.10ID:58loK7uz
Anaconda入れてるんだけど、Anaconda自体は結局どういう役割なんだ?
ライブラリの管理?
0665デフォルトの名無しさん2015/03/01(日) 02:10:03.46ID:DKIg1AyE
scientific computing in pythonな環境を最初からフルセットで提供していることに意味があるのでは
実際楽だし
0666デフォルトの名無しさん2015/03/01(日) 02:40:44.85ID:58loK7uz
書き方が悪かったかも
コマンドプロンプトで
conda list
でモジュールの一覧が見られるのだが
Anacondaというモジュールがあるし、時々アップデートもされる。
モジュールとしてのAbacondaは一体何をやってるんだろうと疑問。
0667デフォルトの名無しさん2015/03/01(日) 04:30:32.48ID:LYwpGVQL
VM
0668デフォルトの名無しさん2015/03/01(日) 11:44:33.83ID:0aLofY9O
pyenvを使ってpythonの複数バージョンを切り替えて使用しています
また、複数の標準入出力をテストするためにPythonコードを実行するためのPythonスクリプトを使っているのですが
Pythonスクリプトからうまくpyenvと連携して子プロセスで動作するPythonのバージョンを切り替える方法はないでしょうか?

systemのpythonのバージョンは2.7.6です
現在、subprocess.call(['python',src_path])を使って子プロセスでpythonスクリプトを実行しており
以下を試してみましたがバージョンが切り替わらずsystemのままで動作してしまいました
・subprocess.call(['python',src_path],env={'PYENV_VERSION','3.4.2'})
・subprocess.call(' '.join(['python',src_path]),env={'PYENV_VERSION','3.4.2'},shell=True)
・subprocess.call(['env','PYENV_VERSION=3.4.2','python',src_path])
・subprocess.call(' '.join(['env','PYENV_VERSION=3.4.2','python',src_path]),shell=True)
・os.environ['PYENV_VERSION']='3.4.2'
・subprocess.call(['pyenv','global','3.4.2'])
0669デフォルトの名無しさん2015/03/01(日) 12:09:12.37ID:P8lkcWMS
ためしてないけど.python-versionの中身を書き換えて実行するとか
0670デフォルトの名無しさん2015/03/01(日) 12:11:13.12ID:P8lkcWMS
そもそも動かしているpythonからバージョンを切り替えて実行するっておかしい気もするけど・・・
シェルスクリプトから操作すればいい話だと思うんだけどなあ
0671デフォルトの名無しさん2015/03/01(日) 12:22:40.03ID:Sga1DM1F
subprocess.popen
0672デフォルトの名無しさん2015/03/01(日) 16:49:14.49ID:tQPiHTVG
>>663です。
結局のところ、virtualenvはAnacondaには対応しておらず、
同バージョンで仮想環境を分けることは少なくともvirtualenvを用いてはできないということでしょうか?
0673デフォルトの名無しさん2015/03/01(日) 17:00:34.48ID:lheYQzbz
>>672
ぼくは初心者だからわかんないけど
そもそもvirtualenvで仮想環境を作るときにパッケージも仮想環境にコピーされるように設定して作ってますか?
もし何もしてないならそりゃあインポートできなくて当たり前だし、それなら再度パッケージをインストールしないといけないとおもうんですけど。
macだったらanacondaなんて使わなくても仮想環境ごとにnumpyとかscipyとかインストールしたらんんではないでしょうか
面倒なインストール作業なんてシェルスクリプトを書けばいいわけですしね
0674デフォルトの名無しさん2015/03/01(日) 17:35:51.86ID:BjMRiKz1
>>666
Anacondaに標準で含まれるパッケージの種類やバージョン等を指定するデータの提供。
anacondaモジュールの依存関係を利用して標準パッケージがインストールされる。
ライブラリとしての実体はない。
conda listの一覧の中にipython-notebookっていうのがあるでしょう?これも同じ。
IPython notebook環境を構築するのに必要なライブラリのリストを提供してるけど、
自身にライブラリとしての実体はない。
06756682015/03/01(日) 20:48:15.01ID:0aLofY9O
アドバイスありがとうございます
>>669,670
確かに複数入出力テストだけならシェルスクリプトでよいと思いますが
すでに色々機能を持たせたpythonスクリプトになっているので別スクリプトではなく一機能として実現できないかと検討してます
>>671
Popenとcallは完了待ちするかどうかの違いのみで引数も同じです

解決はできていませんが、表面的な原因は分かりました
pyenvによってpython実行時にPATHが追加されているようで/usr/binが最上位にきており
subprocessで呼び出すpythonはpyenvの用意したpythonではなく/usr/bin/pythonになってました
そりゃあ環境変数がどうなっていようが変わらないですよね
0676デフォルトの名無しさん2015/03/01(日) 22:47:04.78ID:BjMRiKz1
>>672
Anacondaはpyenvでインストール後に有効にしてあるんだよね?
virtualenvはどうやってインストールしたの?
俺のAnaconda環境でvirtualenvをインストールしようとすると、
Anacondaでの使用は推奨されないって警告が出る。
警告を無視してインストールすることはできるけど、
エラーが出てvirtualenvコマンドは使えない。

あなたの環境ではvirtualenvは使えてるみたいだけど、
>>673さんの言うように、仮想環境をつくるとまっさらな環境がつくられるので、
numpyとかの外部モジュールは(たとえAnacondaではプリインストールされてたとしても)
その仮想環境ではインストールされていない状態になるので、使えない。
プリインストールされてるいろんな外部モジュールを、
仮想環境でもそのまま使いたいんだったら、仮想環境つくるときに
--system-site-packages オプションをつけたら使える。

インストール時の警告にもあるように、virtualenvの使用はAnacondaでは推奨されていない。
かわりに、同梱されているパッケージ管理ツールのcondaコマンドを使う。
仮想環境ごとに、Pythonとライブラリがあらためてインストールされる。
プリインストールされている外部モジュールをすべて使える仮想環境をつくる、みたいな使い方はできない。
その場合はあらためてAnacondaの全モジュールをインストールする形になる。

Python3でしか使えないけど、標準モジュールのvenvを使う手もある。
使い方はvirtualenvと一緒。手軽に使えるので俺はよく使う。
0677デフォルトの名無しさん2015/03/02(月) 00:02:40.32ID:JcvGP3WN
>>673
>>676
ありがとうございます。
Anacondaというディストリビューションがあることを知り、せっかくなら使ってみようと思った次第です。
私の場合はpyenv及びvirtualenvを先にインストールした後にAnacondaをpyenvでインストールし、
virtualenvを用いて仮想環境を構築するという順番をとりました。
警告文は見ておりませんし、Anacondaの仮想環境をvirtualenvを用いて構築できましたので、
それはおそらくこのインストール順が関係しているのではないかと思います。

やはりvirtualenvの使用はAnacondaでは推奨されていないのですか…
condaコマンドを用いてもAnaconda付属モジュールごと仮想環境を複数構築することは想定されていないわけですね。

venvに関して存在自体は聞いたことがあったのですが、Python3からの実装ということもあり、文献が少ないため使うことを避けていました。
virtualenvと同じように使えるのであれば次の機会に使ってみたいと思います。

このような初心者相手に様々丁寧に教えていただきありがとうございました。
0678デフォルトの名無しさん2015/03/02(月) 10:13:50.58ID:1nxIHbiN
もしかしてvirtualenvで作った仮想環境をactivateしてないとか?
0679デフォルトの名無しさん2015/03/02(月) 14:21:20.29ID:pq1u81iH
別に消さなくてもいいのに
せっかく新しい翻訳なんだから公開したらいいのに
なんでちょっと言われたただけ顔真っ赤になって消すのかな
0680デフォルトの名無しさん2015/03/02(月) 14:30:42.39ID:BRroRxQz
自意識過剰
中二病
童貞
0681デフォルトの名無しさん2015/03/02(月) 18:40:33.59ID:Ujp8xgr6
>>677
>condaコマンドを用いてもAnaconda付属モジュールごと仮想環境を複数構築することは想定されていない
いや、想定されてないわけじゃないんだ。>>676の書き方が悪かったけど、
単にvirtualenvとは内部処理が違うだけ。公式ドキュメントにもちゃんとやり方が記載されてる。例えば

$ conda create -n myenv anaconda

これはAnacondaの仮想環境用デフォルトディレクトリ(<your-prefix>/anaconda3/envs)の中にmyenvって言う名前の
仮想環境を作って、その中にPythonとAnaconda付属モジュールをすべてインストールする。

$ conda create -n myenv python=2.7 anaconda

これだと Python=2.7 を引数につけてるので、Python2.7の最新も同時にインストールされて、
この仮想環境ではそれが使われる。pyenv local <version>をするのと同じようなことができるわけ。
あと仮想環境のディレクトリを指定するときは -p オプションをつける。
下の例では仮想環境にインストールされるのはPythonとnumpyの1.6 (とその依存モジュール) だけ。

$ conda create -p ~/project/envs/myenv numpy=1.6
0682デフォルトの名無しさん2015/03/02(月) 20:24:46.55ID:AZdlh9F+
重いこんだら
0683デフォルトの名無しさん2015/03/02(月) 22:05:23.80ID:sGAmVR+y
ご助言いただきありがとうございます。
>>678
全くの初心者でしてactivateが具体的に何を意味するのかよくわからないのですが、
該当ディレクトリ内で pyenv versions コマンドを用いて確認したところ、構築した仮想環境の部分に✳︎マークが確認できましたので、
おそらくvirtualenvは機能しているのではないかと思います。

>>681
正直なことを申し上げますと、恥ずかしながらこのようなバージョン管理は全く経験がなく右も左もわからない状態でして、
英語の公式ドキュメントを読んでもよくわからず、日本語で解説されたページのみを参考にしながら環境構築を試みていました。
condaコマンドに関してもよく理解できていませんでしたので、丁寧なご解説とても参考になります。
よくわかりました。本当にありがとうございました。
0684デフォルトの名無しさん2015/03/03(火) 00:11:34.05ID:tu3xNi4r
>>674
なるほど
Anacondaの依存関係を保った範囲内で最新にしていくには
conda update conda
conda update anaconda
を実行するだけでいいん?俺はこれしかやってないんだけど。
それとも
conda update --all
とかしなくちゃいけない?
0685デフォルトの名無しさん2015/03/04(水) 08:26:34.33ID:DolSq2VW
>>684
conda update conda; conda update anaconda だけでいいよ。
自分で入れたパッケージは個別に自分でアップデートしてね。
conda update --all を使うと、パッケージひとつひとつをそれぞれ最新にアップデートしようとするので、
anacondaモジュールに書いてあるバージョンの組み合わせと整合性が取れなくて、
その旨表示して処理はキャンセルされる。


そしたら安定して動作することが確認された
Anacondaに最初からインストールされているパッケージだけを、
安定して動作することが確認されたバージョンの組み合わせでアップデートするだけだったら、
0686デフォルトの名無しさん2015/03/04(水) 08:28:44.11ID:DolSq2VW
ごめん空行以降は無視して
書きかけの説明を削除するの忘れてた
0687デフォルトの名無しさん2015/03/04(水) 08:57:57.09ID:UWB+qgaN
住所氏名消し忘れて投稿する夢みた
0688デフォルトの名無しさん2015/03/04(水) 09:08:02.54ID:DU9HoCMy
scipyのminimizeについて教えてもらいたいのですが,フィッティングするパラメータの精度を指定することは出来るのでしょうか.
たとえばa, b, c・・・とパラメータがあった時にaは0~10を0.1刻みで・・・のようにです.
0~10という部分はboundsで指定できますが,刻みの指定がわかりません.
0689デフォルトの名無しさん2015/03/04(水) 14:16:28.10ID:DnsfCac9
>685
便利だな
thanx
0690デフォルトの名無しさん2015/03/04(水) 15:03:17.02ID:kJbztO6w
ニワカです
pythonでxlwtを使ってエクセルのグラフを描きたいのだけどサンプルが見つかりません。
誰か教えて m( )m
0691デフォルトの名無しさん2015/03/04(水) 16:15:30.67ID:1ms42xKS
ちなみに自分はnetへの書き込みは必要最小限にとどめている
今日はこれが最後だと思う
netの書き込み数激減(少なくとも1/3以下へ)というまごうことなき数字を突きつけることが
現状打開のために必要だと思うから
でも皆に同じことをしてくれともそうすべきとも思わない
自分のことは自分で決めればいいんだよ
0692デフォルトの名無しさん2015/03/04(水) 20:20:26.62ID:6TumWt/1
質問です。

環境:Python2.7.8, Windows 8.1 64bit
困ってること:WindowsのコンソールやSendTo経由で波ダッシュ(〜)を含む名前のファイルを開けない
問題のコード:
f = open(u"〜.txt", "r") # OK. スクリプトファイルに直書きしたときは開けます
f = open(sys.argv[1], "r") # これをコンソールやSendTo経由で実行するとIOErrorが出ます
f = open(sys.argv[1].decode(sys.stdin.encoding, "r") # 同上
f = open(sys.argv[1].decode(sys.getfilesystemencoding(), "r") # 同上

直書きしたときは開けるので、decode()の引数を間違えているのだとは思うのですが
一向に解決できません。
対処法をご存知の方、ご回答お願いします。
06936922015/03/04(水) 20:23:31.83ID:6TumWt/1
このスレでは全角チルダで表示されてしまうようですが
問題が起こるのは波ダッシュの方です
0694デフォルトの名無しさん2015/03/04(水) 21:10:11.17ID:m03rR+si
Pythonは開発効率が良いと聞いて試しましたがイマイチですね
本当にC#より速く堅牢なアプリケーションを作れるのですか?
0695デフォルトの名無しさん2015/03/04(水) 21:21:06.61ID:tD+/JAWL
人によっては作れます
0696デフォルトの名無しさん2015/03/04(水) 21:22:15.38ID:aiebJTF+
一体どこでそんな事聞いてきたの?w
無理して使わなくていいからね
0697デフォルトの名無しさん2015/03/04(水) 21:30:31.17ID:YgBYjps4
pythonのweb frameworkって言ったらとりあえずdjangoをやっとけば通じるみたいだけど
djangoのベストプラクティスな情報がな圧倒的に足りない
0698デフォルトの名無しさん2015/03/04(水) 21:34:05.80ID:0V1AC57V
>>692
?がUnicodeなので__argvを使ってるPython2ではsys.argvに正しく入ってません
正攻法としてはPython3を使用するか、ベストプラクティスかは知らんけど
是が非でもPython2でやるならctypesでGetCommandLineWをぶっ叩くとか…?
06996922015/03/04(水) 21:43:55.83ID:6TumWt/1
>>698
>?がUnicodeなので__argvを使ってるPython2ではsys.argvに正しく入ってません

えぇぇぇぇぇぇぇぇぇぇぇぇ…そんな罠があったのですか(汗)
教えて頂いて助かりました!知らなかったらあと何時間ねばってたことか^^;
素直にそのスクリプトだけpython3で実行するように本体とsendto書き換えてみます
ご親切にどうもありがとうございました!
0700デフォルトの名無しさん2015/03/04(水) 21:55:44.33ID:aiebJTF+
波ダッシュ、全角チルダ問題まとめ
ttp://qiita.com/kasei-san/items/3ce2249f0a1c1af1cbd2
0701デフォルトの名無しさん2015/03/05(木) 03:44:59.33ID:n3NecQLR
pythonのせいじゃなくてcmd.exeとかの側の問題だろ
どうしても波ダッシュ使いたいならcmd.exe使うのやめるか
hoge.py < arglistfile.txt
とか
0702Yuta�@2015/03/05(木) 13:26:12.70ID:XfWaMqOT
ただいまプログラム製作中で、num1 とnum2 にデータを入力させて、それらをoperatorに入力された
ものにしたがって計算する、というのをやっているのですが、うまくいきません。
どうしたらいいでしょうか。。
prompt='Input first number.\n'
num1=input(prompt)
#input the number1
if num1 == 0:
print('Error')
else:
prompt2='Input operator\n'
operator=input(prompt2)
#If the number is zero, print Error. If not, input the operator
if operator !="+":
if operator !="-":
if operator !="*":
if operator !="/":
print('Error')
0703Yuta�A2015/03/05(木) 13:27:21.79ID:XfWaMqOT
#If the operator is not "+","-","*","/", print Error.
else:
prompt2='Input second number.\n'
num2=input(prompt2)
#If not, input num2
if num2 == 0:
print('Error')
#If the number is zero, print Error.
else:
if operator=='+':
print(num1+num2)
elif operator=='-':
print(num1-num2)
elif operator=='*':
print(num1*num2)
else:
print(num1/num2)
#If the number isn't zero, calculate num1 and num2.
0704デフォルトの名無しさん2015/03/05(木) 13:42:24.00ID:NOA7K+lC
もう春休みの宿題の時期か
0705デフォルトの名無しさん2015/03/05(木) 13:47:55.86ID:f/1//Rxj
長いのはideoneに貼ってくれないとコピペがだるい
0706デフォルトの名無しさん2015/03/05(木) 13:57:02.72ID:NOA7K+lC
Python3 はこんな風に書かなくても良くなったのか
num1=int(input(prompt1))
num2=int(input(prompt2))
0707デフォルトの名無しさん2015/03/05(木) 14:08:19.71ID:ookD3nmq
>>704
普通は春休みに宿題なんて出さない。
0708デフォルトの名無しさん2015/03/05(木) 14:49:29.81ID:VUA3XSdQ
python2で1.0が0になるんですが何故ですか?

n = 0
for i in range(1000):
 n += 1.0 / 1000
a = 1 / n

print(a) # 1.0
print(int(a)) # 0
0709デフォルトの名無しさん2015/03/05(木) 16:13:24.82ID:wT1PXWMM
>>> print int(1.0)
1
0710デフォルトの名無しさん2015/03/05(木) 16:15:06.21ID:wT1PXWMM
>>> n
1.0000000000000007
>>> a = 1 / n
>>> a
0.99999999999999933
>>> int(a)
0

浮動小数点数の誤差の蓄積やね
0711デフォルトの名無しさん2015/03/05(木) 16:31:41.01ID:0eIB5bR0
どうして?目に見えない部分にデータがあるの?
0712デフォルトの名無しさん2015/03/05(木) 16:43:05.27ID:wT1PXWMM
逆
目に見えないデータを見えるところで切ってる
0713デフォルトの名無しさん2015/03/05(木) 17:00:37.79ID:LYdoOvYu
PHPみたいにクソ仕様だな
0714デフォルトの名無しさん2015/03/05(木) 17:08:14.83ID:wT1PXWMM
この場合はprintに原因があるのか
0715デフォルトの名無しさん2015/03/05(木) 17:25:55.74ID:kvzpUYSP
math.fsumで誤差を補正できる
>>> n = math.fsum(1.0 / 1000 for _ in xrange(1000))
>>> a = 1 / n
>>> print a
1.0
>>> print int(a)
1
0716デフォルトの名無しさん2015/03/05(木) 17:34:11.17ID:LYdoOvYu
print(a)で1.0だけどどうやったら誤差が見えるの?
0717デフォルトの名無しさん2015/03/05(木) 17:57:25.74ID:0TrB/Lm6
DartみたいにJavaScript に変換できないの?Pythonって。

インデントが構文になってるとか機能美高いしJavaScript も全てpythonになるべきだと思うのだけども
0718デフォルトの名無しさん2015/03/05(木) 18:25:07.36ID:wT1PXWMM
>>716
心の眼を開く
0719デフォルトの名無しさん2015/03/05(木) 18:25:51.88ID:wT1PXWMM
>>717
っCoffeeScript
0720デフォルトの名無しさん2015/03/05(木) 18:27:34.81ID:0rvjRaI9
ipythonを起動した時に自動的にimport mathをしたいんですけど
そういう設定教えてください
0721デフォルトの名無しさん2015/03/05(木) 18:51:54.64ID:puWRUP/J
echo "import math" > ~/.ipython/profile_default/startup/000.py
0722デフォルトの名無しさん2015/03/05(木) 19:05:58.30ID:0TrB/Lm6
>>719
CoffeeScriptもPythonとは違うんでしょ?
0723デフォルトの名無しさん2015/03/05(木) 20:25:20.69ID:n3NecQLR
sites.py
0724デフォルトの名無しさん2015/03/05(木) 21:11:50.07ID:Z+dMZ8cD
>>722
pythonより良い
0725デフォルトの名無しさん2015/03/05(木) 22:26:08.79ID:qy5l4tP8
>>722
https://github.com/rusthon/Rusthon
0726デフォルトの名無しさん2015/03/05(木) 23:04:24.66ID:xRIr8wDA
ラッソンゴレライ
0727デフォルトの名無しさん2015/03/06(金) 00:00:17.25ID:G4aqU6d9
javascriptに対する現実解はtypescript程度だと思うよ
まあアレも結構面倒な部分は残ってるんだが
0728デフォルトの名無しさん2015/03/06(金) 00:53:46.60ID:dcg9agNJ
ゆるさと開発効率のバランスが絶妙
CoffeeScript
0729デフォルトの名無しさん2015/03/06(金) 09:22:14.27ID:TaB/WAXS
CoffeeScript 良いよね
Python もだけどなんで日本だと流行らないんだろう
0730デフォルトの名無しさん2015/03/06(金) 10:36:33.76ID:gYife3US
a = 0
b = 'p'
a += b == 'p'

こういう式はなんていうの?
なんでちゃんと動くのか知りたい
0731デフォルトの名無しさん2015/03/06(金) 10:48:09.94ID:WzNu1b2w
b=='p'は比較だから返り値がTrueかFalse(ここではTrue)
bool型はintのサブクラスだからa += Trueはa += 1と同じ
0732デフォルトの名無しさん2015/03/06(金) 11:05:36.99ID:gYife3US
ありがとうございます!
0733デフォルトの名無しさん2015/03/06(金) 19:46:39.41ID:oPjT86JG
真面目に使ったことはないけど、Brython っていうのは javascript で動く python3 実装
script type=text/python3 で python のスクリプトをそのまま書けるというやつだ
0734デフォルトの名無しさん2015/03/06(金) 22:19:56.79ID:CTj2h1Ar
中学の頃 大村君が苗字音読みでダイソンって呼ばれてて
それが元で梅村君はバイソン 若村君はジャクソン
下村君はアンダーソンとみんなかっこいいあだ名がついたのに
津村君だけあだ名がバスロマンだったのはイジメに近いし
今思うとバスロマンはツムラじゃなくてアース製薬
0735デフォルトの名無しさん2015/03/07(土) 04:16:44.13ID:4UroII6b
みんなのパイチンくんとチンパイくん
0736デフォルトの名無しさん2015/03/07(土) 12:04:33.35ID:dV5NPacx
>>734
2get
0737デフォルトの名無しさん2015/03/07(土) 12:06:10.75ID:dV5NPacx
>Brython
ブラ依存
0738デフォルトの名無しさん2015/03/07(土) 13:38:30.32ID:JFs2oY1Z
pythonはインデントに意味があるから転送量おさえるためにコンパクト化
する事が出来ないのは不利なんじゃ?
0739デフォルトの名無しさん2015/03/07(土) 15:33:24.76ID:vMIWPrbn
>>734
よく出来てるわ

転送前と後で適当に {} に機械的に置き換える処理入れたら済む気がする
0740デフォルトの名無しさん2015/03/07(土) 17:01:48.08ID:yymwmlBA
サーバで実行するのに転送量もクソもねえよ
0741デフォルトの名無しさん2015/03/07(土) 17:03:40.88ID:G29w8V6C
ファイルロードのコストが増えるじゃん
0742デフォルトの名無しさん2015/03/07(土) 17:20:46.38ID:yymwmlBA
pycが作られるだろうが!
0743デフォルトの名無しさん2015/03/07(土) 17:29:04.98ID:L9NOIbfd
初心者ですがpygtkで簡易画像ビューアを作りました
こうしたほうが良いとかありましたらお願いしたいです
ttp://ideone.com/yxaD2T
0744デフォルトの名無しさん2015/03/07(土) 17:51:50.44ID:JFs2oY1Z
あーゴメン

転送量が気になるのはBrythonの方つうかブラウザのスクリプトね
0745test2015/03/07(土) 20:30:16.03ID:dV5NPacx
import sys, os
import time
import datetime
LED7SEG = [6, 2, 5, 5, 4, 5, 6, 4, 7, 6]
def checkSum(ym):
2return reduce(lambda a, b: a + LED7SEG[int(b)], (ym[0], ym[1], ym[3], ym[4]), 0)
sum, cnt, min, minym, max, maxym = 24, 0, (LED7SEG[8] * 4), '', 0, ''
dt = datetime.datetime(2016, 1, 1)
while True:
2ts = datetime.datetime.strftime(dt, '%Y-%m-%dT%H:%M:%S')
2ym = ts[5:10]
2s = checkSum(ym)
2if s < min: min, minym = s, ym
2if s > max: max, maxym = s, ym
2if s == sum: cnt += 1
2dt += datetime.timedelta(days=1)
2if dt.month == 1 and dt.day == 1: break
print 'cnt: %d, min: %d %s, max: %d %s' % (cnt, min, minym, max, maxym)
0746デフォルトの名無しさん2015/03/08(日) 12:26:06.98ID:+/h1eClM
>>692
っ ttp://python.rdy.jp/wiki.cgi?page=japaneseCharset
0747デフォルトの名無しさん2015/03/11(水) 14:24:22.67ID:vQ4+w4tm
バイナリファイルの処理をしたいと考えております.
コマンドラインでは

file = open("dir", "rb")
file.read()

でバイナリのデータが表示されるのですが,pyscripter上では表示されません.

file = open("dir", "rb")
print file.read()

としても"|"が表示されるだけでした.
pyscripterの設定がおかしいのかと考えておりますがどなたか本件に関して多い当たる点ございますか?
0748デフォルトの名無しさん2015/03/11(水) 15:02:38.66ID:vQ4+w4tm
早速すみません
一応自己解決しました
簡単なバイナリファイルを自分で作ってみたところフォーマット文字列を指定してunpackしないとpyscripterでは表示されないみたいでした
0749デフォルトの名無しさん2015/03/11(水) 15:56:26.71ID:8MeoENMQ
もれもそう思ってたから返事しなかった
0750デフォルトの名無しさん2015/03/12(木) 19:30:34.95ID:IG7CVxL3
pygameのevent.keyで大文字を認識させたい時はどうしたらいいんですか?
0751デフォルトの名無しさん2015/03/12(木) 21:22:09.10ID:kfyJIopR
大文字化無くてshiftを押したかかだろ
0752デフォルトの名無しさん2015/03/14(土) 12:16:32.00ID:jA1R8gSb
count = 0
f = open('sample.txt', 'w')
while True:
count += 1
f.write(str(count))

これを動かしてる最中に特定のキー(Ctrl Cとか)を押したら
f.close()してから終了するにはどうすればいいでしょうか?
0753デフォルトの名無しさん2015/03/14(土) 12:29:45.54ID:mizsz9YY
>>752
import sys
count = 0
f = open('sample.txt', 'w')
try:
    while True:
        count += 1
        f.write(str(count))
except KeyboardInterrupt:
    f.close()
    sys.exit()
0754デフォルトの名無しさん2015/03/14(土) 12:41:18.61ID:jA1R8gSb
>>753
ありがとうございます!
0755デフォルトの名無しさん2015/03/14(土) 16:31:47.61ID:PQiRsuPZ
withも覚えとけ
0756デフォルトの名無しさん2015/03/15(日) 00:48:12.05ID:iNfC0gMp
python2.7で数字を入力した時にinputとint(raw_input())で違いありますか?
0757デフォルトの名無しさん2015/03/15(日) 01:05:17.44ID:rkCwx/om
djang○翻訳チームwww
http://b.hatena.ne.jp/entry/mizchi.hatenablog.com/entry/2015/03/14/133535
0758デフォルトの名無しさん2015/03/16(月) 02:38:40.84ID:1GyT2oWU
http://mizchi.hatenablog.com/entry/2015/03/14/133535
0759デフォルトの名無しさん2015/03/17(火) 08:00:28.18ID:HdJtxgxX
ああこいつか…Qiitaで童貞臭いアイコン使ってる
何度も同じ記事貼るんじゃねえ
0760デフォルトの名無しさん2015/03/17(火) 10:44:44.64ID:Bw8e4yLM
なかのひとですねわかります
http://mizchi.hatenablog.com/entry/2014/10/25/174045
0761デフォルトの名無しさん2015/03/18(水) 05:15:31.92ID:eOz49mYu
"{0:.1f}".format(value)といった具合にfloatを文字列に変換しているのですが
0.0が"0.0"になるものと"-0.0"になるものがあります。
ゼロは符号を付けたくないのですが、方法ありますか?
自分ではroundで0と比較してintの0にしてから変換していたのですが、何か違う気がして・・・
初歩的な質問ですみません。
0762デフォルトの名無しさん2015/03/18(水) 05:42:52.45ID:Zar8QNwZ
>>761
http://stackoverflow.com/questions/11010683/how-to-have-negative-zero-always-formatted-as-positive-zero-in-a-python-string

+0するのがよさげ
0763デフォルトの名無しさん2015/03/18(水) 06:01:55.98ID:eOz49mYu
すごい。できました!ありがとうございます。
0764デフォルトの名無しさん2015/03/18(水) 16:17:27.57ID:J/QK9l4l
pyinstallerを使ってとあるファイルを変換するプログラムを仲間内に配布しようとしていますが
フローズンバイナリ化したexeファイルが置いてあるディレクトリに日本語を含む場合に起動しません

#Coding:UTF-8というのはやったので,プログラムが起動してしまえば変換したいファイルに日本語を含んでいても大丈夫なようにはしているのですが
どなたか回避方法ご存じですか?
0765デフォルトの名無しさん2015/03/19(木) 01:50:21.56ID:j2+spSxx
>>764
パス使ってる所をユニコードに変換
0766デフォルトの名無しさん2015/03/19(木) 02:01:37.06ID:noU2qMQu
1行目にこういう、shebang を書いた?
#!/usr/bin/env python
#!/usr/bin/python3.3

スクリプトファイルに実行権限を付けた?
chmod +x ファイル名.py

環境変数 PATH は?

./ファイル名.py で実行した?

君のOSとバージョンは何?
pythonのバージョンは何?
VirtualEnv, venv などの仮想環境を使っているのか?
エラーメッセージは?
もっと詳しく書け
0767デフォルトの名無しさん2015/03/19(木) 08:00:14.39ID:e0gH4C5r
>>765-766
返信ありがとうございます
exeファイルを実行した際に出てくるエラーメッセージは以下になります

Traceback (most recent call last):
File "<string>", line 21, in <module>
File "c:\python27\lib\site-packages\PyInstaller-2.1-py2.7.egg\PyInstaller\load
er\pyi_importers.py", line 507, in install
sys.meta_path.append(FrozenImporter())
File "c:\python27\lib\site-packages\PyInstaller-2.1-py2.7.egg\PyInstaller\load
er\pyi_importers.py", line 156, in __init__
raise ImportError("Can't load frozen modules.")
ImportError: Can't load frozen modules.

・自分のスクリプトというよりpyinstallerの方の問題でしょうか
・.exeファイルを入れているフォルダ名を移動せずに英語に戻すとちゃんと実行しました
・OSはwindows8.1ですが,他人のXPでも同様でした
・pythonはver.2.7.9です
・pyinstallerはver.2.1です
・仮想環境は使っていません

取り急ぎ
0768デフォルトの名無しさん2015/03/19(木) 20:29:14.85ID:Nd/ot4O0
>>762
コレどうして+0で符号が変わる?
0769デフォルトの名無しさん2015/03/19(木) 22:35:48.43ID:3kge4PG6
pythonのflaskで画像の出力したいんですが
print('Content-Type: image/jpeg;\n\n')
f = open('test.jpeg', 'rb')
img = f.read()
f.close()
print(img)

これじゃバイト列のstrが返ってるので、画像出てくれません。。
ord()しても期待通りにならないし、実はpythonでこういった処理するのって
結構めんどくさいですか?

シェルでcgiとかだと echo -en 'Content-Type: image/jpeg;\n\n'
cat test.jpeg
で行けてたような処理が、pythonだとどうやったらできるのでしょうか?
0770デフォルトの名無しさん2015/03/19(木) 22:37:13.47ID:H9sTIQWx
sys.stdout.write
0771デフォルトの名無しさん2015/03/20(金) 04:24:17.06ID:dOiGdIE8
>>767
pyi_importers.py, line 156, in __init__
raise ImportError("Can't load frozen modules.")

このファイルの156行前後に、print文を埋め込むか、
デバッグなどして、日本語のパス名が、
どのような文字コードになっているか見る
(ただし、元のファイルは取っておくこと)
CP932(Shift-JIS)か、UTF-8か?

Python2では、strがバイト列のまま、文字列を扱っていたが、
Python3からは、strオブジェクトで、ユニコード文字を扱う

漏れも、これ以上はわからないので、
Python2 → 3の、文字列の変換方法を、検索してみて

そして、そのファイルの該当箇所を修正する
(勝手に修正してもいいのかな?
それとも、修正済みのファイルが既にあるかも?
または、作者に知らせるとか)

自分でちょっとしたスクリプトを書いて、
日本語のパス名が、どう解釈されるか試してみて
0772デフォルトの名無しさん2015/03/20(金) 12:05:23.13ID:uw3XCVp4
>>770
ありがと
flaskじゃstdoutはflaskを実行してるターミナルにフックされるけど
とりあえずしらべてみますー
0773デフォルトの名無しさん2015/03/20(金) 15:52:58.84ID:6mVx13Pi
import するモジュールA内のあるクラスa(A)を上書きしたいので,
呼び出す(importする)側Sに同じ名前のクラスa(S)を書いたのですが,
このとき, モジュールAの別のクラスb(A)からクラスaを呼んだら,
同じモジュール内のa(A)がでてきます.
こういうときに上書きする方法はありませんか?
0774デフォルトの名無しさん2015/03/20(金) 16:24:29.11ID:6rxbuNBs
モジュールS内ではモジュールAのクラスbはモジュールSのクラスaを呼び出してほしいということですか?

モジュールAのクラスbからモジュールSのクラスaを呼び出したいということですか?
出来れば上手くいかない状態を表す短いコードがあれば助かります

A.py
class a:
pass
class b:
 def call_a(self):
  a()

S.py
import A
class a: pass
07757742015/03/20(金) 16:28:57.05ID:6rxbuNBs
書きかけを投稿してしまいました
コード片は無視して下さい
0776デフォルトの名無しさん2015/03/20(金) 18:46:50.15ID:zzyYoiYd
>>773
S.py
import A

old_a = A.a #もともとのaクラス
class s_a: pass
A.a = s_a
new_a = A.a #新しいs_aクラス

こうすればA.pyのaを呼び出すコードbもs_aを呼ぶようになるはず
でもこういう置き換え方は筋が悪いからやめたほうがいいと思う
0777デフォルトの名無しさん2015/03/20(金) 21:33:24.77ID:6BjYmIn0
勉強したことの復習するタイミングを教えてくれるプログラムをつくろうとしているのですが、
{勉強したセクション:やるべき日付(datetime型)}としてファイルに入出力していて、そのままだと上手くいかないのでググったりコピペしながらJSONでやったのですが変なエラーが出ます
ファイルの入出力の時文字列型になってしまうのはどうしても避けられないんでしょうか?
また、XMLという別の方法がある模様(ググっただけでまったく知識はないです)なんですがXMLなら型の問題は回避出来るのでしょうか?
07787672015/03/20(金) 23:38:42.36ID:PWi5odoJ
>>771
返信ありがとございます.
該当部分念の為のスクリプトを以下に示します.
http://codepad.org/DOQKMl2m
どうやら実行ファイルのディレクトリがsys.pathに含まれ,これに日本語があると文字化けを起こし,問題となっているようです.
引き続き検討してみます
0779デフォルトの名無しさん2015/03/21(土) 00:04:18.91ID:rUUBEQ0g
>>777
jsonの表現とオブジェクトの表現は一致しないから、それらの対応を書かないとダメ
ある文字列をどうオブジェクトに復元するか、あるオブジェクトをどう文字列として表すかってことね
これはxmlでも同じ
jsonモジュールのobject_hookについて調べてみて

ちなみにとりあえず保存できればいいんならpickleの方が簡単だよ
あと、こういう質問は書いたコードとそのエラーをそのまま貼ったほうが正確に状況が伝わるからまず貼ろう
0780デフォルトの名無しさん2015/03/21(土) 00:15:32.82ID:pulqrllr
>>770
>ファイルの入出力の時文字列型になってしまうのはどうしても避けられないんでしょうか?
バイナリとかもあるけど、基本的にはそう。
PythonのオブジェクトがPythonのオブジェクトでいられるのはPythonの中だけ


JSON云々はその次の話だけど、それでもhttp://docs.python.jp/3.4/library/json.html#py-to-json-tableにある以外の型が渡された場合はTypeErrorがraiseされる。
json.dump()にdefault引数を指定すること上記のテーブルにある以外のオブジェクトが渡されたときに呼ばれる関数を指定できる。
http://docs.python.jp/3.4/library/json.html#json.dump

>>> from datetime import time, date, datetime
>>> import json
>>> with open("test", "w") as fp:
json.dump({"勉強したセクション": datetime(2015, 3, 10, hour=13, minute=15)}, fp, default=str)


>>> with open("test", "r") as fp:
print(json.load(fp))


{'勉強したセクション': '2015-03-10 13:15:00'}
0781デフォルトの名無しさん2015/03/21(土) 00:16:48.24ID:pulqrllr
>>777だった
0782デフォルトの名無しさん2015/03/21(土) 01:54:10.60ID:b4FQIC21
Rubyでは改行コードは、
:universal_newline => true にすると、

Windowsの CRLF、MacOS9までの CR を、LF に置き換える
(Unix系は元々、LF を使っている)

テキストモードではこの変換を行うが、
バイナリモードではこの変換をしない。
テキスト/バイナリモードの違いはこれだけ

JSON, XMLはほとんど同じ。
JSONの方が、データ転送量が少ないので、エコ
07837712015/03/21(土) 02:23:26.60ID:b4FQIC21
>>778
そのソースコードの11行目、print pyz_filepath で、
ファイル名が表示されているので、
それで日本語のパス名を見てみる

たぶんその、ZlibArchive というアプリが、
日本語のパス名に対応していないのだろう

Rubyと違って、外人はユニコード文字に無頓着だから、
Pythonではよくあること

その作者に聞いてみないと、わからない。
勝手に修正すると、他の箇所でバグが生じるかも

まあ業務用なら、日本語のパス名を使わないのが常識
0784デフォルトの名無しさん2015/03/21(土) 03:07:55.56ID:nfoUPo3V
コンパイル時にドキュメンテーション文字列を削除することって出来ますか?
0785デフォルトの名無しさん2015/03/21(土) 10:01:39.10ID:CbFTQJbK
>>779
ありがとうございます
object_hookを使ったコードはググったら出てきたのでつかってます
あと謎のエラーは自己解決しました 元のコードではfrom datetime import datetimeとしていたのをimport datetimeとしてたため型が合わなかったようです
今後エラーが出たらコードとエラー貼って質問します
0786デフォルトの名無しさん2015/03/21(土) 10:04:00.39ID:CbFTQJbK
>>780
>バイナリとかもあるけど、基本的にはそう。
>PythonのオブジェクトがPythonのオブジェクトでいられるのはPythonの中だけ
なるほどやっぱりそうなんですね…
0787デフォルトの名無しさん2015/03/21(土) 11:28:13.55ID:Oxj/Vzj+
>>> '%s %d %08x' % (-1, -1, -1)
'-1 -1 -0000001'
>>> '%s %d %08x' % (0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF)
'4294967295 4294967295 ffffffff'
>>> '%s %d %08x' % (0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF)
'18446744073709551615 18446744073709551615 ffffffffffffffff'
>>> 0xffffffff
4294967295L
>>> 0xffffffff + 1
4294967296L
>>> int(0xffffffff)
4294967295L


n = 0xffffffff という値から
n = -1 と解釈したいのですが
どう書けば良い?
0788デフォルトの名無しさん2015/03/21(土) 12:26:08.81ID:Z0/VNcfN
>>> f = lambda n: n - (1<<32) if n &amp; (1<<31) else n
>>> f(0xffffffff)
-1L
>>> f(0xfffffffe)
-2L
>>> f(0x80000000)
-2147483648L
>>> f(0x7fffffff)
2147483647
0789デフォルトの名無しさん2015/03/21(土) 13:08:11.76ID:GgI7Ng16
ctypes.c_int(0x80000000).valueトカ
0790デフォルトの名無しさん2015/03/21(土) 13:52:09.87ID:2oh5rAiV
>>> int.from_bytes((0xffffffff).to_bytes(4, 'big', signed=False), 'big', signed=True)
-1
0791デフォルトの名無しさん2015/03/21(土) 14:27:58.41ID:sLj+E6BF
wxPythonとクラスになれるために、色々書いていたのですが、行き詰まってしまいました・・・。

https://ideone.com/2AyzFQ

上記コードを実行すると、
self.InsertPage(0,panel,"tab_1")
wx._core.wxAssertionError: C++ assertion "pPage->GetParent() == this" failed at
..\..\src\msw\notebook.cpp(680) in wxNotebook::InsertPage(): notebook pages must
have notebook as parent
と表示されてしまい何が何だか・・・。多分タブを追加する対象がないよとかそういう感じだとおもうのですが、
いかんせんクラスの概念をよく理解していなく、なにか根本的に間違ってる気がしてます・・・・・。
0792デフォルトの名無しさん2015/03/21(土) 14:43:47.74ID:sLj+E6BF
↑
すみません、1日考えてだめだった結果が、単純な構文ミスでした。
しにたい。
0793デフォルトの名無しさん2015/03/21(土) 15:29:45.34ID:QO2AdWWK
>>792
悩んだあげく、人に聞いたら自己解決ってよくあった。
今は頭の中で人に聞いて、それでもダメなら聞くようにしてる。
0794デフォルトの名無しさん2015/03/21(土) 17:55:12.84ID:Fvy98M6G
(テディ)ベアプログラミングを実践しよう
0795デフォルトの名無しさん2015/03/21(土) 18:17:13.22ID:RDMmfQRe
>>789
ありがとう
シンプルなのと仕様通りなのでそれにします

他の回答くれたみんなもありがとう
0796デフォルトの名無しさん2015/03/21(土) 20:26:17.10ID:QO2AdWWK
>>794
冗談かと思ったww
無意識にベアプログラミングやってたわ。
0797デフォルトの名無しさん2015/03/22(日) 02:46:15.14ID:zalLAL+t
>>787
Pythonには、Rubyのような、
pack, unpack のモジュールは無いの?

Rubyの pack, unpack
ttp://docs.ruby-lang.org/ja/1.9.3/doc/pack_template.html
0798デフォルトの名無しさん2015/03/22(日) 04:12:22.47ID:rR9IQ1L/
>>797
基本的にはここらでしょう
ttp://docs.python.jp/3/library/struct.html
ttp://docs.python.jp/3/library/array.html
目的に応じてその他諸々
ttp://docs.python.jp/3/library/stdtypes.html#additional-methods-on-integer-types
ttp://docs.python.jp/3/library/stdtypes.html#memoryview
ttp://docs.python.jp/3/library/ctypes.html#data-types
0799デフォルトの名無しさん2015/03/24(火) 13:43:05.25ID:oT9XT9lZ
メーリングリストわろた
0800デフォルトの名無しさん2015/03/25(水) 11:44:44.34ID:bi42DHFl
今時メーリングリストに聞きに行く時点でなんかズレてる
どこでも回答なんかされないだろうが
0801デフォルトの名無しさん2015/03/25(水) 15:28:04.09ID:jY89TDAe
3.5リリースまで後6ヶ月だけど
4.0の開発の話とかは何年後に出るんだろうか
0802デフォルトの名無しさん2015/03/25(水) 18:08:01.36ID:N9g82RNH
今のペースだと3.10または4.0は2023年ころ
互換性を壊してまで変えたいものがなければ
Perl5のようにずっと3系が続くと予想してる
0803デフォルトの名無しさん2015/03/25(水) 21:47:33.53ID:4eLreSQE
2つの関数の別のローカル変数に同じ名前を使うのはできるだけ避けるべきでしょうか?
それとも気にしなくてもいいのでしょうか?
簡素化した例をかいてみました
http://ideone.com/o0Whl7
0804デフォルトの名無しさん2015/03/25(水) 22:14:06.02ID:fuG7BCjB
気にしなくてもいい
むしろあわせたほうがよさそう
例えば、Managerクラスのインスタンスは必ずmgrではなくmanagerに代入する、など

でも今回の例だとshoppingのnum_appleはnum_itemにしたほうがいいと思う
(おそらく)shoppingの引数はりんごってことに依存しないのに、引数がnum_appleになってると紛らわしいから
0805デフォルトの名無しさん2015/03/26(木) 10:32:43.78ID:ZAP9cAHT
ctypes で python 側のメモリ領域を渡したい場合
create_string_buffer() するしかないですか?
既にある str 型の hoge に対してその中のメモリ領域に書き込みたいのです
テスト用の DLL 作って c_char_p(hoge) を char *hoge で受けて書き換えても
python 側の hoge の中身は書き換わりませんでした
0806デフォルトの名無しさん2015/03/26(木) 12:22:07.15ID:ml9CMOKh
>>805
そういう危険な事をしてはいけません…イミュータブルなオブジェクトを変更すると
ハッシュが無意味になったり、その結果、内容が違うのにイコールとか戯けます
という建前はさておき…それUnicodeならc_wchar_pじゃないのと思ったら…

2と3で挙動が異なるのでソースを眺めてみたところ、Py_UNICODEがwchar_tなら
2系ではPyUnicode_AS_UNICODEでポインタがそのまま渡されているが
3系では関係なくPyUnicode_AsWideCharStringでコピーされてるようですん

bytesなら3でも書き換えられるけど…簡単にアドレス取得は方法ってなかったっけかな
id()にフィールドオフセット加算してくすねてくるのは嫌らしいし
08078062015/03/26(木) 12:38:22.83ID:ml9CMOKh
あーPython上だけで考えちゃったけどpy_objectとして渡して
C側でPython/C API使っていじるとか…いよいよもって破壊的というか
もはやPythonモジュールになってしまうな、そしたらもうbytearrayでも使った方が…
0808デフォルトの名無しさん2015/03/26(木) 13:15:00.63ID:SuVdMCRs
PIL の im.tostring() とか
PyOpenCV の iplimage.imageData とか
bytearray じゃなくて str なんですよね
素直に Python モジュールで書いた方が良いのかな
0809デフォルトの名無しさん2015/03/26(木) 13:49:26.54ID:ml9CMOKh
>>808
うん…?ちょっと待って、それはそれ自体コピーじゃないの?
PILくらいしかそれもちょっと触ったことしかないけど、
ピクセル操作ならputpixelするとか、from*系で戻すとかしないとダメじゃない?
0810デフォルトの名無しさん2015/03/26(木) 15:12:06.80ID:SuVdMCRs
im.tostring() はコピーかもしれないですが(こっちは直接変更するつもりないです)
iplimage.imageData はコピーじゃないと思ってるんですがどうなんでしょう?
iplimage.imageData の指してるアドレスの内容を変更したいです
cvSetData とかはあるようですがこれは全部を置き換えるものみたいで効率悪いんです
0811デフォルトの名無しさん2015/03/26(木) 17:05:39.65ID:H+EftXlX
Rubyのbundlerみたいにプロジェクトごとにパッケージをインストールする方法って
仮想環境を作る以外にはないですか?
プロジェクトごとに仮想環境を作るとバージョンアップした時に作りなおさないといけないし
プロジェクトが増えるに連れて仮想環境にコピーされる実行ファイルとか諸々のファイルサイズも気になりだしてきたので・・・
0812デフォルトの名無しさん2015/03/26(木) 19:14:32.25ID:hd1hb778
そんなバカな
pip install --target=$DIR で指定ディレクトリにインストール
bundle execする代わりにPYTHONPATH=$DIR:$PYTHONPATHとやるか
sys.path.insert(0, '/path/to/$DIR')をやる
ライブラリの管理ファイルはrequirements.txtが慣例になっている
pip freeze > requirements.txtで作成
pip install -r requirements.txt --target=$DIRでインストール

そもそもbundlerが何やってるか知ってれば
こんな質問出てこねえよなあ〜
本当にこんな下々までプログラミングを広めて良いことがあるんだろうか?
飯の種に普及を図ってるようにしか見えねえや
0813デフォルトの名無しさん2015/03/26(木) 20:09:42.08ID:ml9CMOKh
>>810
ざっと見た限りその辺レガシーAPIではないの、pyopencvとopencv触ってみた感じ
ndarray返してきて書き換えれば済んだけど、どっから出てくるのそいつら
0814デフォルトの名無しさん2015/03/26(木) 21:39:52.99ID:qFS8A6Q1
bundlerって何やってるんですか?
0815デフォルトの名無しさん2015/03/26(木) 21:43:36.08ID:qFS8A6Q1
pip freeze > requirements.txtはグローバルなパッケージのほうを記録しちゃってますけどどうしてですか?
0816デフォルトの名無しさん2015/03/26(木) 22:51:30.44ID:GMm8z4wV
ファイルを開いた時
f.read()[1:]
これでエラーになるのは何でですか?
0817デフォルトの名無しさん2015/03/27(金) 03:08:20.78ID:B/xnV6qp
>>805-813
const char * s1 = "ab";
const char * const s2 = "cd";
char s3[] = "ef";

ここで、s1, s2 は変数だが、s3 は変数ではなく!、
配列の先頭アドレスの別名

ちなみに、書き込みできない rodata(ReadOnly)領域には、
ab, cd, s2

書き込みできる data 領域には、
ef, s1 が入る

また、書き込みできない rodata/text 領域は、
ファイルにデータがあるため、
スワップ領域に書き込まれないし、

同じアプリの複数プロセスで、
データが共有されるため、エコであり、
なるべく、const にした方がよい

C言語ではこのように、書き込みできる・できない領域を、
別々に管理しています
0818デフォルトの名無しさん2015/03/27(金) 03:54:25.26ID:zZgFJ1tm
ありがとchar
0819デフォルトの名無しさん2015/03/27(金) 05:29:08.14ID:nMQwVixl
ちんちん擦ってると気持ちよくなってくるのはなんでなんですか!? (><。
0820デフォルトの名無しさん2015/03/27(金) 16:16:59.32ID:P27u+k0y
いま、みんなのpython読んでるところなんだけど
rubyやpearlに比べてpythonが優れてる点って何なのですか。

ユニークで楽しいとは感じますが、まだ文法理解段階なので
これだ!とぐっとこないもので・・
0821デフォルトの名無しさん2015/03/27(金) 17:37:25.30ID:MKjiVFgc
[1,2,2,3] - [2] = [1,2,3]みたいにする方法教えてください
リストから集合に直して引き算すると2が全部消えて[1,3]ってなるので困りました
0822デフォルトの名無しさん2015/03/27(金) 19:58:57.57ID:FOIXdkU1
>>821
set([1,2,2,3])
0823デフォルトの名無しさん2015/03/27(金) 20:05:42.07ID:FOIXdkU1
>>821
list(set([1,2,2,3]))
すまん。こうゆう事で良い?
0824デフォルトの名無しさん2015/03/27(金) 20:10:25.29ID:kqEHE0zo
>>821
a = [1, 2, 2, 6, 2, 3, 3, 4, 3]
b = [2, 3]
for i in b:
del a[a.index(i)]
0825デフォルトの名無しさん2015/03/27(金) 20:35:33.34ID:0J1GAupe
>>821
[1,2,2,3]から2を一つだけ削除したいってことなら
a=[1,2,2,3]
a.remove(2)
破壊的なのがいやだとしたらいったんコピーしてからにするしかないかなあ何か別の方法あるかなあ
0826デフォルトの名無しさん2015/03/28(土) 03:45:43.32ID:vFtQyJKT
>>820
実行速度が速い、リスト内包表記と、
読み取りのみで、書き込みできない(const)タプル

他には、Pythonではこう書ける
x < f() < y

x < f() && f() < y
一般的な言語では、こう書くと、
f()が2回実行されてしまうので、
以下のように書かなければならない

tmp = f()
x < tmp && tmp < y
0827デフォルトの名無しさん2015/03/28(土) 04:24:03.94ID:dPReY2nw
x < (tmp = f()) && tmp < y
0828デフォルトの名無しさん2015/03/28(土) 10:34:49.36ID:aQI1vv/L
>>804
ありがとうございます!
アドバイスにある一般化できる名前を使いたいと思います
0829デフォルトの名無しさん2015/03/29(日) 10:46:06.21ID:OKj2Wzwc
mathなどPythonで書かれていないメソッドの引数情報を取得したいのですが方法ありますか?
inspectではpythonではないとエラーになります。
import inspect
import math
inspect.getargspec(math.floor)
0830デフォルトの名無しさん2015/03/29(日) 12:15:19.66ID:b22zekXj
python docsの翻訳でtransifexが使われているけどこれは個人で借りてるの?
どこかから寄付を募ってるの?
0831デフォルトの名無しさん2015/03/29(日) 19:03:17.14ID:U/seMwAy
オープンソースプロジェクトは無償で使える
Pricingのページをよく読め
0832デフォルトの名無しさん2015/03/29(日) 23:59:34.92ID:yeDB6SnO
>>829
inspectのライブラリリファレンスを読むと、
特定の実装のC定義関数は引数情報を提供してないっていう書き方なので、
あとはソースコードを読むぐらいじゃないですかね
0833デフォルトの名無しさん2015/03/30(月) 01:42:37.41ID:gGNMsyQm
助けてぇ!初心者ですぅ!
min関数の実装をしているのですが、
maxの場合は、
最初に maxv = Noneとしておけば
if maxv < val:
maxv = val
で更新出来るのですが

min関数作る場合で、最初のminvは何に設定すればいいでしょうか?
最も大きい値ってあります?
not None で確認してみたところTrueとなったのですが、これは3とかのintよりも小さいみたいですし

って書いてるうちに気づいた、ループで最初の一回だけは、比較を逆にして処理すればいいのか

もしよければ、絶対的な最大の値ってなんでしょうか、教えてくださいm(__)m
0834デフォルトの名無しさん2015/03/30(月) 02:08:42.08ID:iRUXlAgw
何をしたいのかイマイチ伝わらんぞ
コード貼れコード
0835デフォルトの名無しさん2015/03/30(月) 02:50:49.70ID:gGNMsyQm
あー、やっと解けました
疲れた・・。*argsの引数の部分が、例えば、[1,2,3]のように取ると
args = ([1,2,3],)となってfor文で処理できなくなるのに苦戦しました。
len(args) == 1 のときに、args = args[0]で更新すればいいということに気がついた

>>834さん
minv = ???
for i in ([1,2,3]):
if minv > i:
minv = i
としたいのですが、???が何であれば、[1,2,3]にどんな数や文字列が来ても稼働するかという質問です。
Python3系では、異なるデータ型同士では比較できないっぽい挙動がありましたが
None < -1、None < "a", None < [1,2,2]は全部Trueになりますが
逆に、
??? > 数の無限、??? > "a"、??? > [1,2,3]を満たすような???はないのかということです
結局、一周目だけ分岐させて、minv に i を代入させればいいだけのことなのですが
0836デフォルトの名無しさん2015/03/30(月) 03:07:11.23ID:mMzd4deT
>>835
横からだけどminv=args[0]にしてfor文でargs[1:]を処理するといいよ
ちなみに数の無限はfloat('inf')で作る
ていうかinfの作り方とか初めて知ったわ
0837デフォルトの名無しさん2015/03/30(月) 13:50:49.37ID:FyB5h3Ft
メーリングリストのメールアドレスの人は同一人物なのかな
ああいうのをメーリングリストで質問する神経が分からん
2ちゃんとか知恵袋で質問するようなことだろ
0838デフォルトの名無しさん2015/03/30(月) 15:19:14.24ID:gGNMsyQm
>>836
ありがとうございます
minv=args[0]の方が楽に書けますね

infも内蔵されているのか
知らなかった
0839デフォルトの名無しさん2015/03/31(火) 10:01:44.02ID:vSVUohv/
WindowsでPythonプログラミングしてるウンコに朗報だよー

Unofficial Windows Binaries for Python Extension Packages
http://www.lfd.uci.edu/~gohlke/pythonlibs/

のパッケージがインストーラー形式からwhl形式になったよ
pipでvirtualenvに入るよ
やったね
0840デフォルトの名無しさん2015/03/31(火) 11:33:56.34ID:B5kKsNTd
from . import a

.を使った書き方を見るんですが
この.ってなにを意味してるんですか?
0841デフォルトの名無しさん2015/03/31(火) 11:54:08.82ID:vSVUohv/
相対インポート
0842デフォルトの名無しさん2015/03/31(火) 16:18:18.04ID:iKp7SUfR
なるほどその相対インポートってのを絶対パスを求める方法ありませんか?
0843デフォルトの名無しさん2015/03/31(火) 17:30:58.69ID:vSVUohv/
__file__変数

print a.__file__
0844デフォルトの名無しさん2015/03/31(火) 17:48:50.23ID:vSVUohv/
違うな絶対パスか
確実な方法はない
簡単な方法はsys.pathと__file__を結合して存在チェックすること

確実な方法がない理由は
そもそもモジュールはファイルでなくてもよく
ファイルシステムに存在することも必須でないから
0845デフォルトの名無しさん2015/03/31(火) 17:54:11.80ID:vSVUohv/
http://ja.pymotw.com/2/sys/imports.html
ここにshelveからインポートする例がある
応用するとgithubなんかから直接インポートするようにもできる
意味があるかはともかく
0846デフォルトの名無しさん2015/03/31(火) 18:47:39.74ID:c/ex+3Fj
正規表現で、( )を認識させるためにはどうすればいいですか?
0847デフォルトの名無しさん2015/03/31(火) 18:49:51.04ID:UlHxCFJ1
正規表現 エスケープでググレ
0848デフォルトの名無しさん2015/03/31(火) 19:08:32.94ID:c/ex+3Fj
ありがとうございます
円で一度やってみてできなかったので
間違っているのかと思いましたが、
バックスラッシュでできました
0849デフォルトの名無しさん2015/04/01(水) 01:59:32.71ID:m6CSw1kp
for line in fp:
line = line.rstrip()
data = line.split(",")
number = int(data[0])
fp.close


123,abc という内容のtxtファイルをで読み込ませて、123の部分を数字にしてnumberという変数にいれたいのですが、


Traceback (most recent call last):
File "C:/python/abc.py", line 12, in <module>
number = int(data[0])
ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf123'

というエラーが出てしまいます
どうしたらいいんでしょうか?
0850デフォルトの名無しさん2015/04/01(水) 02:25:42.80ID:mF7dj2uB
data[0]が"123"じゃなくて"\xef\xbb\xbf123"だからintで変換できない
BOMがついてるからBOMなしでUTF-8で保存できるエディタでtext.txtを編集しな
0851デフォルトの名無しさん2015/04/01(水) 05:06:59.46ID:ZJ6YoV9V
fp = open('file.txt', encoding='utf-8-sig')
0852デフォルトの名無しさん2015/04/01(水) 11:57:44.67ID:m6CSw1kp
お二人さんとも有り難うございました!
0853デフォルトの名無しさん2015/04/01(水) 13:31:19.54ID:E9lgPX7z
ラズパイでさわってるが、JavaScriptよりも、利便性が高い部分も
結構あるねこのスクリプト言語。
0854デフォルトの名無しさん2015/04/01(水) 13:46:10.07ID:CKq6Lt/0
$とかendとか書くのが嫌いだからぼくはPythonを使い続けるよ
0855デフォルトの名無しさん2015/04/02(木) 13:41:52.61ID:hZpl+TDZ
python2のraw_input()はpython3ではinput()ですが
python2のinput()はpython3ではinput()ではありませんよね
2と3どっちでも使える書き方をでんじゅして
0856デフォルトの名無しさん2015/04/02(木) 14:04:58.34ID:qqPJ8aIO
Python2.7には、__future__ モジュールに、
3の新機能がバックポートされている

また、2to3 というツールで、2の記述を、3へ変換できる
0857デフォルトの名無しさん2015/04/03(金) 11:16:23.19ID:s3ZVtSco
Python 2.6.1で以下の置換を実行すると、上の式だとうまくいかないのは何故でしょう?
戻り値はA\?Cとなります。

#coding:utf-8
import re
str='A(M)C'
print re.sub('[(]M[)]','',str)
print re.sub('(M)','',str)
0858デフォルトの名無しさん2015/04/03(金) 11:36:23.32ID:leLHgqx2
AMC()を全角文字で書いてるな
これは文字列リテラルにuプレフィックスを付けてユニコード文字列にすれば期待してる動作になるかも
0859デフォルトの名無しさん2015/04/03(金) 13:00:00.52ID:/gPIw7xI
pythonでwebサーバ立ち上げる場合ってサイト数だけサーバ起動コマンドを撃たないとダメなんですよね
10とか20もサイトあるとそれだけコマンドを撃たないとダメなんですか?
こういうものなんですか?
PHPより面倒くさいですね
0860デフォルトの名無しさん2015/04/03(金) 13:44:31.46ID:s3ZVtSco
>>858
ありがとうございます。以下の様にしたら期待通りの結果になりました。
#coding:utf-8
import re
str=u'A(M)C'
print re.sub(u'[((]M[))]','',str)
print re.sub(u'(M)','',str)
0861デフォルトの名無しさん2015/04/03(金) 16:03:48.78ID:I1Qw0OFj
>>859
自動化すればいいと思うのですが?
venvとuwsgiでの設定例なら
upstartはググればすぐ出るし、
sysvintもよく探せばありますよ。
systemdは…偉い人たちが書いてくれるのを待ってる最中です。

起動で文句を言ってたらMySQLを使う時に発狂してしまうのではないかと…。

Pythonエンジニア養成読本が発売されるようです。初心者の私としてはuwsgi・gunicorn・sqlalchemyなどが詳しく解説されている事を願うばかりです。
0862デフォルトの名無しさん2015/04/03(金) 16:26:38.12ID:fygFc6bt
GPIOから流れてくるシリアルデータを受けたらテキストにデータを書き込み
受けたら書き込むというのを繰り返すコードを書きたいのですが、どんな形
で書いたら良いのでしょうか?

またその場合、プログラムは常駐しないと行けないとおもうのですが、特にここ
がわかりずらくて。常駐して待機していて、GPIOから流れてくるデータを受けたら
テキストに書き込むなんて出来るんでしょうか?
0863デフォルトの名無しさん2015/04/03(金) 16:56:30.30ID:QYeOKX2q
>>862
ステートパターン
フラッシュ
0864デフォルトの名無しさん2015/04/03(金) 17:57:33.49ID:aV58CpUC
GPIOとのアクセス方法が不明だけど
単純にスリープはさんでポーリングかな。
それをステートパターンでやるかはどーでもいいかと。
もしこれだけの単機能プログラムじゃないなら
読み書きで別スレッドにして受け渡しすることになると思う。
0865デフォルトの名無しさん2015/04/04(土) 01:45:30.14ID:knpZoffv
>>862
Raspberr Piかな?
USBとか、UARTからシリアルデータ受信なら分かるけど、
GPIOでシリアルデータ受信?
0866デフォルトの名無しさん2015/04/04(土) 01:50:59.00ID:knpZoffv
>>862
こんなんとかかな。

# 参考ページ
# http://chicklab.blog84.fc2.com/blog-entry-46.html

import serial

def main():
# USB-Serialを使用する場合、ttyUSB0
# GPIOピンを使用する場合、ttyAMA0
# con=serial.Serial('/dev/ttyUSB0', 19200, timeout=10)
con = serial.Serial('/dev/ttyAMA0', 19200, timeout=10)
with open('out.txt', 'a')as f:
while True:
str = con.readline()
f.write(str)


if __name__ == '__main__':
main()
0867デフォルトの名無しさん2015/04/04(土) 12:42:54.92ID:0/1TDv54
>>861
でもコマンドの数だけプロセスが立ち上がるじゃないですか
MySQLの場合は起動は1つだけでいいのでどこに発狂する材料はあるんでしょうか
0868デフォルトの名無しさん2015/04/04(土) 13:26:23.20ID:8tbUo2zR
pyenv使うと環境変数PATHのトップに/usr/binが追加された状態でpythonが動作してるみたいなんだけど
これって何か理由があるのかな
出来れば追加をやめたいなあと思いpyenv内をexport PATHとかでgrepしても追加箇所が見当たらずよくわからん

pythonからruby呼び出しがrbenv経由にならなくてハマった
0869デフォルトの名無しさん2015/04/04(土) 13:46:54.64ID:ieuO4P1x
それ本当にpyenv関係あるの?
0870デフォルトの名無しさん2015/04/04(土) 16:49:31.73ID:3ZYdL9yE
インターネット上にあるCSVのファイルを開きたいのですが


import csv
import urllib.request

url = 'http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv'
response = urllib.request.urlopen( url )

reader = csv.reader( response )

for row in reader:
print(row)

以下のエラーがでます。
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

何か良い方法ないでしょうか?
0871デフォルトの名無しさん2015/04/04(土) 17:10:49.44ID:N4lx0lGg
>>867
まじめな話だけど
馬鹿には無理
0872デフォルトの名無しさん2015/04/04(土) 17:21:08.88ID:8tbUo2zR
>>869
pyenvでバージョンをsystemにしておいても
python(つまりpyenv経由)からos.environ["PATH"]を表示すると最初に/usr/binが入っていますが
/usr/bin/pythonから同様にPATHを表示すると入っていません(先頭の/usr/binを除けば同じ)

2環境(どちらもUbuntu14.04)で確認してどちらも同様だったのでpyenvが設定しているのでは、と見ています
0873デフォルトの名無しさん2015/04/04(土) 17:32:31.25ID:8tbUo2zR
すみません確認不足でした
上記の動作は、pyenvでバージョンをsystemにしている状態でのみパスが追加されてました
他のバージョンに設定しておけば追加されないようです

systemでのみパスが追加される理由はわからないですが自分の問題は解消しました
ありがとうございますお騒がせしました
0874デフォルトの名無しさん2015/04/04(土) 18:22:30.45ID:Im19kqOF
>>870
エンコーディングが判明しているなら
responseをcodecs.StreamReaderでラップしてやればいい
本当に初心者ならハードル高いかもね

俺なら
csv.reader(io.StringIO(requests .get(url).text))
とかやっちゃうかな
標準ライブラリ縛りみたいな、無駄な拘りがなければ
0875デフォルトの名無しさん2015/04/06(月) 07:24:32.76ID:PufGX+Fr
>>863-866
サンクス。

今日家に帰ったら早速やってみようと思います。
08768702015/04/06(月) 12:00:16.96ID:WONhOiZc
>>874
ありがとうございます。

import csv
import urllib.request

url = 'http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv'
reader = csv.reader( urllib.request.urlopen(url).read().decode('cp932') )

for row in reader:
print(row)

これで一応エラーはでないで読み込むことはできるようになったのですが
なぜか文字が一文字ずつに分割

他のCSVで試してみると[', ']や改行?の[]が入っているようです。
上記の方法でやればこのようなことにはならないのでしょうか?
0877デフォルトの名無しさん2015/04/06(月) 12:33:37.79ID:b9yIKEaO
やってみてから言えばいいだろう…

行イテレーターを取る関数に文字イテレーターを渡してるから
関数は「一行に一文字しか書かれていないcsv」として処理してしまうわけ
0878デフォルトの名無しさん2015/04/06(月) 13:19:41.59ID:PqzogR9Z
>>876
教えてもらったコードの意味をググって勉強しろよ
s = "abcde"
for c in s: print(c)
print(s)
08798702015/04/06(月) 13:55:04.81ID:WONhOiZc
>>877,878
勉強不足ですみません。
python3なためreauests.getが見つかりませんでした。

http://diveintopython3-ja.rdy.jp/files.html
>io.StringIOを使うと、文字列をテキストファイルのように扱うことができる。

import csv
import io
import urllib.request

url = 'http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv'
reader = csv.reader(io.StringIO(urllib.request.urlopen(url).read().decode('sjis')))

for row in reader:
print(row)

で目的通りに動くようになりました。
responseをcodecs.StreamReaderでラップについては勉強します。
08808702015/04/06(月) 14:04:20.87ID:WONhOiZc
>>877
CSVでもダブルクォーテーションで囲む文字列文字は文字列で処理されています。

こちらの資料によると
http://itdoc.hitachi.co.jp/manuals/3020/30203698A0/swrj0068.htm

ダブルクォーテーションで囲まない文字列
区切り文字の間のすべての文字が値とみなされます。
コンマ(,)を文字列の値として記述することはできません。
区切り文字であるコンマ以外の文字はすべて値となります。したがって,アポストロフィ(')や空白文字も値とみなされます。

CSVの仕様でダブルクォーテーションで囲まないため1文字ずつの処理になっているのだと思います。
0881デフォルトの名無しさん2015/04/06(月) 14:45:47.80ID:fqwipNOH
>>880
膳膳違うから…もうこれで良いよ

from urllib.request import urlopen
import io, csv

with urlopen('http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv') as res:
for row in csv.reader(io.TextIOWrapper(res,'sjis')):
print(row)
08828702015/04/06(月) 15:05:00.21ID:WONhOiZc
>>881
そうなんですか勉強不足ですみません。

プログラムありがとうございます。
勉強させていただきます。
0883デフォルトの名無しさん2015/04/07(火) 14:56:04.94ID:kjLpHpnX
python-pipとpipの違いってなんでしょうか?
両方いれるとまずいのでしょうか
0884デフォルトの名無しさん2015/04/07(火) 15:26:45.84ID:jnQKtoWz
python-pipってどうせyumとかの奴だろ
古いしシステムのPythonは必要に迫られない限り変更すべきでない

pyenv使うなりソースインストールするなりで/optや$HOME下にいれて
パスを張って使え
pipが使いたくてPython2.7.9かPython3.4なら
python -m ensurepipとすればpipが入る
0885デフォルトの名無しさん2015/04/07(火) 16:14:31.84ID:kjLpHpnX
>>884
ありがとうございます。
0886デフォルトの名無しさん2015/04/08(水) 19:34:05.59ID:vhF88cmZ
pyenvとvirtualenvで仮想環境作ったけど
メインのバージョンの方を削除して新しいバージョンをいれた
そうしたら仮想環境を削除して作りなおさないといけないんですか?
またpipでインストールしなおさないといけないんですか?
ちょうだるい何かいいほうほうないっすか?
0887デフォルトの名無しさん2015/04/08(水) 20:08:31.78ID:bA5nfYlZ
残念でした
ありません
もうこの辺でプログラミングから足を洗いましょうそうしましょう
0888デフォルトの名無しさん2015/04/08(水) 23:29:17.83ID:i5GFx/ek
fabric
0889デフォルトの名無しさん2015/04/09(木) 18:49:45.06ID:zb+p9PTi
ねー、メソッド版map関数みたいなのにゃい?
0890デフォルトの名無しさん2015/04/09(木) 18:51:52.08ID:j3QfwzLY
エスパーすると、メソッドチェーンしたいのかな
0891デフォルトの名無しさん2015/04/09(木) 19:00:36.55ID:96U9YCId
エスパーきてんね
0892デフォルトの名無しさん2015/04/09(木) 19:27:20.99ID:zb+p9PTi
初心者だから何言っているのかわかんにゃい
メソッドチェーンでググったけど
Pythonは関数型言語で必要最小限の関数しか標準実装されてないからないってことでおk?
JavescriptとかRubyはあるのね
0893デフォルトの名無しさん2015/04/09(木) 19:27:39.47ID:fQtolgaH
Pythonにメソッドなんて用語あったっけ?
0894デフォルトの名無しさん2015/04/09(木) 19:32:16.77ID:zb+p9PTi
Pythonスタートブックって本読んでるけど
データ型にメソッド付随するみたいなこと書いてあるお
0895デフォルトの名無しさん2015/04/09(木) 20:35:44.30ID:vzdfR+u8
リストにlen属性を持たせないでlen関数使えとか言ってる言語ですよ
お察し
0896デフォルトの名無しさん2015/04/09(木) 23:52:13.62ID:OhY+HYh2
シーケンス型のオブジェクトそれぞれにlengthプロパティ持たせるよりも、標準関数としてlen()実装したほうが一貫性あると思うよ
ていうか、何でリスト限定なの
0897デフォルトの名無しさん2015/04/10(金) 10:52:33.19ID:PAmS8Ow4
>>896
釣りにマジレスしとるぞ
__len__
0898デフォルトの名無しさん2015/04/10(金) 10:53:06.45ID:IGMdEJ+n
>>896
釣りにマジレスしとるぞ
__len__
0899デフォルトの名無しさん2015/04/10(金) 12:42:26.36ID:U/3ufYu+
ここは釣りにマジレスする流れでしょうか
0900デフォルトの名無しさん2015/04/11(土) 14:08:14.55ID:BGNFw9vt
これからPython勉強するんすけど
Pythonのオブジェクト指向機能は
いわゆるJava的サンプルコードで語られることの多い
種々のデザインパターンを網羅できますかね?
それとも仕様のせいで実現困難なパターンもある?
0901デフォルトの名無しさん2015/04/12(日) 06:58:04.10ID:P+OLIv+p
初心者です><
http://ideone.com/rMcVdn
このコードで、32行目のprint (ans) は表示されるのですが
78行目の print (route)は None になります
どこがおかしいのでしょうか?
0902デフォルトの名無しさん2015/04/12(日) 07:20:06.77ID:iQq4nskB
>>901
checkioは再帰関数のようですが、再帰部分のreturn文が足りないように見えます
44, 53, 63行目の部分を修正しました
http://ideone.com/yYx9jq
0903デフォルトの名無しさん2015/04/12(日) 07:26:25.72ID:P+OLIv+p
>>902
ありがとうございますm(_ _)m
おかげ様で助かりました
0904デフォルトの名無しさん2015/04/17(金) 03:58:07.93ID:9h0FsUev
特定の座標をクリックさせるにはどうすればいい?

たとえば、「デスクトップ画面の左から100,上から100の位置をクリックする」みたいな。
0905デフォルトの名無しさん2015/04/17(金) 07:28:00.40ID:737hTa9W
ctypesでSendInputを呼ぶ
サンプルはググれば腐るほどあるので書かない
0906デフォルトの名無しさん2015/04/17(金) 18:47:14.44ID:9h0FsUev
>>905
ありがと
でけた
0907デフォルトの名無しさん2015/04/18(土) 09:12:51.42ID:DNbLuOB8
Windowsだとpyqtの新しいバージョンを入れるのが楽だけど
linuxだとソースコードから入れないと行けないからpyqt5は実用的ではない
pyqt4を使うかpysideを使うべきだ
0908デフォルトの名無しさん2015/04/18(土) 10:32:32.37ID:TNGwH1Lz
ふぁ〜
0909デフォルトの名無しさん2015/04/18(土) 15:18:15.14ID:UFFh6cBw
https://github.com/tweepy/tweepy/pull/574
このコミットをpipでインストールしたtweepyに反映させたいのですが
どういう方法でやれば今後のpip経由のupdateには影響させずにできるのでしょうか?
0910デフォルトの名無しさん2015/04/18(土) 17:48:22.11ID:TNGwH1Lz
どういう方法もないよ
諦めて
0911デフォルトの名無しさん2015/04/18(土) 17:58:09.61ID:TNGwH1Lz
pip install -Uは古いバージョンを削除して新しいバージョンをインストールする機能しかないので
次にupdateする時に、変更のあったファイルだけよしなに対応するような機能はないって意味ね

修正自体は直接ファイル弄るなり、pypiからソース取ってきてパッチ当てて
setup.pyするなりpip installするなりしたらいい
0912デフォルトの名無しさん2015/04/18(土) 23:39:32.23ID:b4TBs1Oe
馬鹿か

コミットid指定してインストールできるだろ
0913デフォルトの名無しさん2015/04/19(日) 19:54:41.97ID:GdN6icOR
インストールした後にrequirement.txtにコミット指定で書けば出来るんじゃないの
モバイルのパケット代もったいないから試してないけど人柱として試してみてね
0914デフォルトの名無しさん2015/04/23(木) 14:41:11.03ID:Eg844cdw
Python(x,y)-2.7.9 を使っています。これの portable 環境を作りたくて、Python(x,y)
の Lib 以下、必要な部分だけを別のディレクトリにコピーしました。

おおむね動いたのですが、import enthought.mayavi.mlab as mlb を実行するとき下の
ようにエラーになってくれます。

//@@
import enthought.mayavi as mlb
//@@@
Traceback (most recent call last):
File "__tmp.py", line 1, in <module>
import enthought.mayavi as mlb
ImportError: No module named enthought.mayavi

なぜ import できないのかと調べています。下の __init__.py ファイルがありませんでした。
Lib\site-packages\enthought\__init__.py

でも、元の Python(x,y) の enthought package の下にも __init__.py ファイルがあり
ません。しかし元の Python(x,y) enthought package は __init__.py ファイルがなく
ても import できています。不思議です。

・ enthout package が __init__.py がなくても import できる理由
・ portble 版でも enthought pakage を動かす方法

を説明できる方がいらっしゃいますでしょうか?
0915デフォルトの名無しさん2015/04/23(木) 15:05:18.54ID:atwBzKak
馬鹿には無理
0916デフォルトの名無しさん2015/04/23(木) 16:38:17.44ID:0VCN8LwS
このご時世でなんでポータブルにする理由を説明するべきだ
0917デフォルトの名無しさん2015/04/25(土) 05:48:49.79ID:7hIFO1+/
for (i=2; i<20; i*=2){
}
これをpythonのfor文で書くにはどうすればいいでしょうか?
while を使うべきでしょうか?
0918デフォルトの名無しさん2015/04/25(土) 09:55:31.18ID:1ezOf5+0
>>917
for i in range(2, 20):
  i *= 2
0919デフォルトの名無しさん2015/04/25(土) 11:05:12.66ID:GiqwOUcG
>>917
どうしてもfor文でやりたいならこんなのはどう?

a = [2**x for x in range(1, 5)]
for i in a:
  print i

>>918
結果出力してみろよ
0920デフォルトの名無しさん2015/04/25(土) 15:49:17.93ID:8i45KO8z
大げさだけど意味合いは表現できてるはず、可読性はどうだかな

from itertools import accumulate, repeat, takewhile
for i in takewhile(lambda x: x < 20, accumulate(repeat(2), int.__mul__)):
    print(i)
0921デフォルトの名無しさん2015/04/27(月) 06:57:48.75ID:4xONkpCF
>>914 です。自分で解決できました。

Enthought は dll に細工をしているようです。 Python ディレクトリの下の DLLs ディ
レクトリ以下を全部コピーしてやったら sight-packages\enthought ディレクトリに
__init__.py がないままで import enthought が可能になりました。どの dll ファイル
が その効いているのかまでの確認はとっていません。
0922デフォルトの名無しさん2015/04/27(月) 07:07:15.35ID:4xONkpCF
>>917 for (i=2; i<20; i*=2){..} これをpythonのfor文で書くにはどうすればいいでしょうか?

Python が C 言語の for loop 構文を使わない理由を分かっていないだろう。C++ STL
で iterator を追加している理由を分かっていないだろう。

for (i=2; i<20; i*=2){..} の構文では、{..} の中でインデックス i が使われる。そ
の変数 i をループの中で変更できてしまえる。

一方で for x in anIterator:... 構文では ... ループ処理の中で anIterator が出て
くることがない。anIterator を介在させずに直接ループごとに処理したい x を扱え
る。これにより、C 言語ループより安全なループ処理が可能になる。STL iterator も同
じ理由で設けられている。
0923デフォルトの名無しさん2015/04/27(月) 15:13:31.26ID:YYXELk6X
それがどうかしましたか?
0924デフォルトの名無しさん2015/04/28(火) 08:22:29.03ID:r3QjeWTk
if "a" < "b": print "OK"

この場合にOKと出力されるのですが
文字で比較する場合のルールってあるんですか?
0925デフォルトの名無しさん2015/04/28(火) 17:52:48.93ID:m+/hFxfU
キャラクタコード順
0926実は男2015/04/28(火) 22:32:29.43ID:iGmhRd88
ぱいそんそわそわ
フォロリクよろしく(^з^)-☆

ややちゃん♂
https://twitter.com/minwqgmg

#ややちゃんかわいい
ややちゃんよりかわいいMTFなどいない
http://i.imgur.com/L7IX75Q.png
http://i.imgur.com/lkujqEZ.png
https://pbs.twimg.com/profile_images/590714340384382977/3_IE5FW8.jpg
http://i.imgur.com/t1dy6yB.jpg

#百合原まこきもいしね
http://light.dotup.org/uploda/light.dotup.org175301.jpg
https://twitter.com/mako_yurigahara
0927デフォルトの名無しさん2015/04/29(水) 18:56:35.62ID:gd7dN52B
>>926
グロ
0928デフォルトの名無しさん2015/05/04(月) 16:33:24.41ID:WcXi0Dqd
import ast
print(ast.literal_eval('3*2'))

足し算引き算は問題ないのに割り算掛け算はえらーになります
どうしてですか?
0929デフォルトの名無しさん2015/05/04(月) 17:05:45.47ID:sKsouBLL
複素数リテラルの表現に必要だから
+と-だけ使えるようになっているらしい
0930デフォルトの名無しさん2015/05/04(月) 17:33:46.03ID:SL6Le6HD
なるほどeval使うようにします
0931デフォルトの名無しさん2015/05/05(火) 00:33:29.74ID:bz0m6DRq
>>914 >>921
import package_A
__init__.py
パッケージをインポートすると、
__init__.py 中に定義した、グローバル定数が使える

パッケージ内のパッケージをインポート
import package_A.subPackage_B

パッケージ内のモジュールをインポート
import package_A.module_C
from package_A import module_C

パッケージ内のモジュールから、
同じパッケージ内のモジュールを、相対パスでインポート。
. は同じパッケージで、.. はその上位のパッケージ
from . import module_C
from .. import module_C
0932デフォルトの名無しさん2015/05/05(火) 00:58:13.81ID:/B8D9JT8
すみません
http://ideone.com/CzVnhF

sum.()
のところでエラーが出てるらしいのですが、理由がわかりません
どなたかわかる方はいらっしゃいませんか?
0933デフォルトの名無しさん2015/05/05(火) 01:14:55.73ID:WXcigvGr
エラーを読みなさい
float(2m)のmがおかしいと言ってるぞ
このmはなんだ?何のつもりでつけた?
0934デフォルトの名無しさん2015/05/05(火) 01:25:25.08ID:/B8D9JT8
>>933
ありがとうございます
公式を見ながらやったので、2 * m にしなければいけないことをすっかり失念していました
http://i.imgur.com/SOnX5u9.png

>float(2m)のmがおかしいと言ってるぞ
これはどうやってわかったのですか?
0935デフォルトの名無しさん2015/05/05(火) 01:29:53.69ID:WXcigvGr
Syntax Errorの行の上にハット記号(これ→^)が出てるだろ
そこが構文解析に失敗した位置を示してる
0936デフォルトの名無しさん2015/05/05(火) 01:37:25.45ID:/B8D9JT8
あ、これsum()の後ろのことではなく、一行上の2mのことだったんですね

ありがとうございます、ひとつ勉強になりましたm(__)m
0937デフォルトの名無しさん2015/05/08(金) 15:13:32.45ID:3zw8TVPp
リストに入っている全ての文字列群から、二番目の文字と三番目の文字を取ってきて新しいリストを作りたい
これ簡単に書くにはどうしたらいい?低レベルですまん
0938デフォルトの名無しさん2015/05/08(金) 19:14:26.89ID:jdfB6B/G
全くのサイト制作初心者です

with open() as f
f.write()

でファイルの書き込みは出来るようになりました

とりあえずサイトの文章部分を別ファイルに書き込み&読込みしたいんですが
その際の文章部分の書式はどうしたらいいんでしょうか?

JSON?SQL?

どちらもよく解りませんが、必要ならば勉強します
コンマ区切りじゃダメでしょうか?

どれを使うにしても、その際に有用な関数なども教えていただければ幸いです
0939デフォルトの名無しさん2015/05/08(金) 20:03:18.24ID:dNCQDJld
>>937
以下のbでもcでもできる

a = ['abc','def','ghij']
b = list(map(lambda x: x[1:3], a))
print(b)
c = [x[1:3] for x in a]
print(c)
0940デフォルトの名無しさん2015/05/08(金) 20:13:07.27ID:rtQrrRIy
>>938
サイトって何よ
cgiでも動かしてんの?
0941デフォルトの名無しさん2015/05/08(金) 21:16:53.81ID:sB39VK3e
>>939
ありがとう!
思ったより難しかった
こういうのすらすら書けるようになりたい
0942デフォルトの名無しさん2015/05/09(土) 01:54:28.71ID:9BMlX8/l
>>940

> サイトって何よ
> cgiでも動かしてんの?

何も動かしてませんが、自宅サーバを立ててまして
実際には運営はしてませんがドメインも取りました
とりあえずNginx、postgres、あとuwsgiを入れてみました
でも、どこから手を付けていいものか解りません

で、Pythonの基本からやろうかと思いまして

問い合わせフォームとかをメアドを表示しない状態で、
などを実装してみたいんです
問い合わせ内容とか、ログに残してみたり、必要かと思って

まずは、ファイル書式関係かな?と思って質問してみました
0943デフォルトの名無しさん2015/05/09(土) 02:30:08.01ID:5NEoo1tP
あなたの言うPythonの基本って何だい
プログラミング初心者ってことならドットインストールでも見てきなよ
Webアプリに突撃するには10日早い
0944デフォルトの名無しさん2015/05/09(土) 02:56:38.93ID:5NEoo1tP
一応質問にもアドバイスする
回答とは違う

書式なんて要件次第だ
何のしがらみもないなら自分で決めていい
というより、その程度の情報ではやりたいようにやれよとしか言えない

コンマ区切りで済むならそれで構わない
コンマ区切りを採用するなら、単純に文字列のsplitメソッドを使うか
csvモジュールを使えばいいだろう
0945デフォルトの名無しさん2015/05/09(土) 10:53:52.49ID:gwDj3Ooh
ここは科学技術計算系(anaconda3)の質問はスレ違いでしょうか?
0946デフォルトの名無しさん2015/05/09(土) 13:14:22.15ID:8RFySLN3
age
0947デフォルトの名無しさん2015/05/09(土) 19:26:11.48ID:EIjgNRBm
{ "text" : text , "tel" : tel , "address" : address }

こんな風にキーの名前とvalueの変数名が同じdictを簡潔に書けないでしょうか?
つまりtextとかtelを二度書きたく無いんです
0948デフォルトの名無しさん2015/05/09(土) 19:42:50.62ID:5NEoo1tP
localsとかglobalsを使えばできないこともない
あまり勧められたものでもないが
0949デフォルトの名無しさん2015/05/09(土) 20:10:35.27ID:l4fGqUab
クラス設計でインスタンス変数をそれぞれ設定していくべきか、辞書を使って一纏めにしてしまうべきか悩んでいます。
具体的には、
self.itemA = 0
self.itemB = 0
...
としていくか、
self.itemBag =
{
"A": 0,
"B": 0,
...
}
のどちらにすべきか、です。
パフォーマンスは求めていませんが、見やすさ、設計の利点などの違い、あるいは好みでどちらにすべきかなどの意見はありますか?
0950デフォルトの名無しさん2015/05/09(土) 20:28:16.96ID:5NEoo1tP
どういう属性かによるね
関連性があるならグループ化する価値はあるだろう
0951デフォルトの名無しさん2015/05/09(土) 20:41:31.62ID:v8DO1laq
そのほかの箇所での設定や参照時も一緒に設定参照するのなら纏める
そうでないのなら逆に見づらくなる気がするから自分なら纏めない
0952デフォルトの名無しさん2015/05/10(日) 01:52:02.10ID:Oozs+Vkj
初心者は、この本を読め!
みんなのPython 第3版

>>938
XML, JSON は単純なテキストとは違って、
フォルダ(ディレクトリ)のような、
親子関係の階層を持つ、いれ物

<A><B>あ</B></A>
Aが親で、Bが子

一方、CSV(カンマ区切り)では、テキスト中にカンマが使えないし、
空白区切りなら、空白が使えない。
タブ区切りなら、タブをテキスト中に使うことはないので良さそう
0953デフォルトの名無しさん2015/05/10(日) 04:45:07.23ID:+HAYqchr
>>942
動的なwebサイトを作りたいのならwebフレームワークを使うのが普通だよ
全くの初心者が自力で実装してたら途方も無い時間がかかるし、
酷いセキュリティのシステムが完成して危ないから絶対やめとくべき

というか何故Python,nginx,postgresという初心者が選んだら辛そうなのばかり選択しちゃったんだ…
手っ取り早く作りたいならpython捨てて
言語:PHP フレームワーク:CakePHPとか DB:MySQL webサーバー:Apache
だとネットに事例が大量にある 手取り足取り解説した情報・書籍がたくさんある
PHP嫌ならRuby+Rails+MySQLもかなり多い

プログラミングもDBもサーバーもネットワークの仕組みもこれから勉強します、
という人がPythonでwebアプリケーション作るのはかなり茨の道
Pythonは良い言語だけどあまりwebアプリには向いてない、というか他にいいのがたくさんある
0954デフォルトの名無しさん2015/05/10(日) 10:57:44.24ID:rm3zFp4J
>>952
>CSV(カンマ区切り)では、テキスト中にカンマが使えないし、

使えるよ。
CSVでカンマを使いたい場合はダブルクォーテーションで囲む。

Say,"Hello, world."

みたいに。
0955デフォルトの名無しさん2015/05/10(日) 16:18:26.18ID:YEjf3LrX
課題を与えてくれて手を動かしてpythonの練習できるサイトかプログラムってありませんか?
ここは良い感じだったんですがクリアしちゃったので次が欲しいです
http://www.codecademy.com/en/tracks/python
0956デフォルトの名無しさん2015/05/10(日) 16:36:49.26ID:5/fle6rz
>>955
Project Euler
0957デフォルトの名無しさん2015/05/10(日) 18:22:15.58ID:nPMc7tjQ
>>955
CheckIO
https://www.checkio.org/
0958デフォルトの名無しさん2015/05/10(日) 19:17:13.50ID:nPMc7tjQ
>>955
あとAOJ。
http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja
0959デフォルトの名無しさん2015/05/10(日) 20:41:01.80ID:YEjf3LrX
>>956
面白そうですね ただ自分はまだ指がpythonの作法を覚えていないので、サンプルコードがあるところで下積みしてからやってみます

>>957
な、なんじゃこりゃあああ
プログラミング学習をゲームに仕立てたものですか すごい
こういうのあったら面白いのにっていうのが本当にあったとはw
全部英語かと思ったら、問題は日本訳されてるし・・
ちょっとインターフェースに慣れが必要そうですが、これやってみます
(背景色変えたり課題を英語にするのはどうやるんだろ・・・w)

おふたりともありがとうございます!
0960デフォルトの名無しさん2015/05/11(月) 00:09:09.73ID:AF0vPJsi
将来使いたいとライブラリが python 2.7 なんで2をインストールしたんですが、基本を勉強するとき2でやるか、3にしておくか悩みますね・・・
2でやろうとしたけどchekioの回答者が95%ぐらい3だった・・・
0961デフォルトの名無しさん2015/05/11(月) 13:24:17.22ID:AF0vPJsi
requests.get()でAPIから取得した結果が、辞書とリストの入れ子になっていました
そこからある値を取り出したいときは分かり辛くても 
response['results'][0]['speaking'][2] みたい書かないといけないんでしょうか?

{u'num_found': 31623,
u'results': [{u'bills': None,
u'bioguide_id': None,
u'speaking': [u'Peace, peace, peace be unto all.'],
u'title': u'prayer',
u'volume': 153}]}
0962デフォルトの名無しさん2015/05/11(月) 13:59:13.97ID:X7iHjzbj
3は動物的感覚で最初から完全無視していたんだが普及しているの?マジ?
0963デフォルトの名無しさん2015/05/11(月) 14:34:01.04ID:pp+etNv4
別に普及してないけど、3が使えて2が使えない人間はいない
逆もいないが、だったら新しい方で勉強するってことじゃねーの

>>961
君はどう書けたらいいと思うんだ?
理想型を提示してみろ
それができるかできないか答えよう
0964デフォルトの名無しさん2015/05/11(月) 16:14:14.42ID:AF0vPJsi
>>963
分かり辛いと感じたのは、どこでリストが使われて、どこに辞書が使われるのか理解していないためでした
あとたぶんサンプルが特殊で、['result']以下には辞書データが一つしか入っていないのに、リストで二重に囲んであって、余計混乱したようです
0965デフォルトの名無しさん2015/05/11(月) 17:35:02.40ID:VLJk5RL1
別の言語だと考えればいいよ
0966デフォルトの名無しさん2015/05/11(月) 19:55:56.52ID:7oTr197Z
互換性が無いとはいえ最初の勉強程度では2でも3でも対して差はない
とりあえず新しいほうの3で勉強しとけば2への変換は苦じゃない
0967デフォルトの名無しさん2015/05/11(月) 22:22:51.09ID:gmi0Ylrg
>>961
規則性があるんだったら、
自分でparserを書いちゃえばいいんでないかい?
そうすればややこしさに頭をひねるのは最初だけで済むし
0968デフォルトの名無しさん2015/05/11(月) 22:38:22.09ID:QviOHirL
>>961
namedtupleあたりで頑張ってプロパティ名でアクセスできるオブジェクトを構築するとか
0969デフォルトの名無しさん2015/05/12(火) 14:59:24.56ID:uttCTI7h
https://github.com/python-doc-ja/python-doc-ja/issues/684

Transifexではラベルを編集できないようですので、ラベルの"��
�"認をお願いします。

"から"までのところが文字化けしてて読めないんですがなんて書いてあるのでしょうか?
0970デフォルトの名無しさん2015/05/12(火) 16:50:35.83ID:xezKBhrJ
>>967
今回のはトレーニングで出てきたAPIなので、自分で繰り返し使うときはparserを書いてみます
>>968
使いこなせたら便利そうですね 黒魔術の香りが
0971デフォルトの名無しさん2015/05/12(火) 20:00:39.59ID:xezKBhrJ
[' '] キー が出現頻度のわりにやたら打ち辛いのでキー割り当て変えてみたらすごい捗ることに気付いたw

シフト←→変換
[]←→() 
0972デフォルトの名無しさん2015/05/13(水) 03:23:59.23ID:QB/uykhN
>>969
その文字列は、漏れにも読めない

何語を使っているのかね?
0973デフォルトの名無しさん2015/05/14(木) 08:45:35.06ID:8IgVcxu1
windowsでpythonを使おうと思うのですが、
・windowsにpythonをインストール
・cygywinの上でpythonを使う
のどちらが良いでしょうか?

deep learning(pylearn2)を使ってみたいので、
前者なら軽くなり、後者なら多くのリファレンスが使えるという点で迷っています。
0974デフォルトの名無しさん2015/05/14(木) 08:56:14.11ID:PRhs144W
遊びたいだけならwinでいいんじゃね
俺ならvagrantでlinux使うが
0975デフォルトの名無しさん2015/05/14(木) 09:05:24.51ID:8IgVcxu1
>>974
仮想環境ですが、考えていませんでした。ありがとうございます。試してみます。
0976デフォルトの名無しさん2015/05/14(木) 16:02:25.18ID:u+ZAZi3S
>>975
windows上で生python入れると科学技術系パッケージが面倒なことになるから、anacondaでまとめて入れたほうが楽だよ
http://continuum.io/downloads

ちゃんと設定すればthanoやpylearn2もGPUアクセラレータ付きで動かせるみたいだね
caffeもwindows上でGPU効かせられる記事みたことあるけどどんなか忘れた
https://my6266blog.wordpress.com/2015/01/21/installing-theano-pylearn2-and-even-gpu-on-windows/
0977デフォルトの名無しさん2015/05/14(木) 16:26:56.71ID:pnnMPsHS
Anacondaってこのスレではむしろトラブルしか聞かないな
初心者にはどっちが面倒なのか俺にはわからん
0978デフォルトの名無しさん2015/05/15(金) 23:49:43.22ID:dTD9FlGn
googleのpython入門コースに出てくる問題

課題:
引数として昇順ソートされたリストを2つ受け取る。
それを一つに統合、昇順ソートされたリストを作成しreturnせよ。
ただしプログラムは  線形時間  で動作すること。
元のリストに手を加えてもよい。

def linear_merge(list1, list2):
# +++your code here+++

return
0979デフォルトの名無しさん2015/05/16(土) 01:18:21.74ID:ZJDdRqxh
>>978
https://paiza.io/projects/M1kcgonXFtWObYaxL3x8Vg
0980デフォルトの名無しさん2015/05/16(土) 01:43:41.58ID:KZsTuDhE
>>978
その入門コースってどこで見れるのか教えてください
0981デフォルトの名無しさん2015/05/16(土) 03:08:11.97ID:OX3JiC1g
>>979
すげえええ 再帰使う人って頭のなかどうなってるの
合わせ鏡覗きこんだときみたいに無限ループに入りそうで不安になる

でも引数のところがシンタックスエラーで動かない・・・
チェック用の関数も提供されてるから一緒に回してみて

def test(got, expected):
if got == expected:
prefix = ' OK '
else:
prefix = ' X '
print '%s got: %s expected: %s' % (prefix, repr(got), repr(expected))


# Calls the above functions with interesting inputs.
def main():
print 'linear_merge'
test(linear_merge(['aa', 'xx', 'zz'], ['bb', 'cc']),
['aa', 'bb', 'cc', 'xx', 'zz'])
test(linear_merge(['aa', 'xx'], ['bb', 'cc', 'zz']),
['aa', 'bb', 'cc', 'xx', 'zz'])
test(linear_merge(['aa', 'aa'], ['aa', 'bb', 'bb']),
['aa', 'aa', 'aa', 'bb', 'bb'])

if __name__ == '__main__':
main()
0982デフォルトの名無しさん2015/05/16(土) 03:10:55.52ID:OX3JiC1g
>>980
https://developers.google.com/edu/python/exercises/basic
これです 自分もいまやってます

>>981
インデント消えた・・・
0983デフォルトの名無しさん2015/05/16(土) 07:09:00.95ID:ZJDdRqxh
>>981
終了時処理を最初に書くのが、コツ。
0984デフォルトの名無しさん2015/05/16(土) 11:16:18.69ID:OX3JiC1g
>>983
while文みたいな感じなんですね
0985デフォルトの名無しさん2015/05/16(土) 11:45:30.93ID:SZ2m/aFp
この前に1時間で解けないと、って話題になった奴か?
解いてて思ったけど1時間で解けない奴は1日でも無理だろうし
そういうのを選別するのが目的であって
早く解けることは意味ないんだろうなと思った
8分で5問解けた
0986デフォルトの名無しさん2015/05/16(土) 14:08:12.61ID:OX3JiC1g
>>982 の mimic.pyが面白いよー

課題:
ファイルを読み込み、【出現単語】をキーにした辞書を作り、【直後に続く単語】をリスト化して納める
{出現単語1 : [隣接単語1, 隣接単語2, 隣接単語3,,,,] }
{出現単語2 : [,,,,] }
*隣接単語は重複を含む ["then", "best", "then", "after", ...]

次に、その辞書を用いてオリジナルのファイルをモノマネする文章を作成する
次の単語選択にはrandom.choice(list)を使う

ただしファイルの最初の単語は空文字 '' とし、辞書にない単語でつかえた場合は空文字を返す
0987デフォルトの名無しさん2015/05/16(土) 14:10:30.03ID:OX3JiC1g
import random
import sys

def mimic_dict(filename):
"""Returns mimic dict mapping each word to list of words which follow it."""
# +++your code here+++
return


def print_mimic(mimic_dict, word):
"""Given mimic dict and start word, prints 200 random words."""
# +++your code here+++


# Provided main(), calls mimic_dict() and mimic()
def main():
if len(sys.argv) != 2:
print 'usage: ./mimic.py file-to-read'
sys.exit(1)

dict = mimic_dict(sys.argv[1])
print_mimic(dict, '')


if __name__ == '__main__':
main()
0988デフォルトの名無しさん2015/05/16(土) 14:17:18.99ID:OX3JiC1g
>>986 辞書の形式書き間違えた・・

{
出現単語1 : [隣接単語1, 隣接単語2, 隣接単語3,,,,],
出現単語2 : [,,,],
出現単語3 : [,,,],
}
0989デフォルトの名無しさん2015/05/16(土) 17:10:57.24ID:QT5s50C8
くだすれPython(超初心者用) その26
http://peace.2ch.net/test/read.cgi/tech/1431763770/l50

メール欄失敗してsageoffって入力しちゃった
0990デフォルトの名無しさん2015/05/16(土) 17:42:18.40ID:ErqOsR1N
別にいいよ
0991デフォルトの名無しさん2015/05/16(土) 20:04:14.71ID:Xo5bM6FI
ここは、埋め.
レス数が950を超えています。1000を超えると書き込みができなくなります。