5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん 転載ダメ©2ch.net:2014/11/05(水) 16:40:01.25 ID: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/

2 :デフォルトの名無しさん:2014/11/05(水) 16:40:34.10 ID:Awvl8HhM
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

3 :天麩羅ここまで:2014/11/05(水) 16:41:12.77 ID:Awvl8HhM
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

4 :デフォルトの名無しさん:2014/11/05(水) 16:54:56.84 ID:FFOVrxV7
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::

5 :デフォルトの名無しさん:2014/11/06(木) 09:56:27.31 ID:Jg48RgBo


6 :デフォルトの名無しさん:2014/11/06(木) 18:01:40.45 ID:ntLQp+bs
おつ

7 :デフォルトの名無しさん:2014/11/07(金) 07:53:53.16 ID:u+2F0oww
readやreadlinesに漠然とした恐怖感を感じることが第一歩だ。
gcの動きは?セキュリティホールは?スクリプト言語も実は楽じゃない。

8 :デフォルトの名無しさん:2014/11/07(金) 22:17:14.18 ID:0uoUgHvR
そんなん気にする奴はスクリプト言語使わない

9 :デフォルトの名無しさん:2014/11/09(日) 18:59:46.36 ID:kpf0ITqg
django一応チュートリアルだけ翻訳したけどこれ公開していいのかよくわかんないからメールで問い合わせたけど返信こねぇぞ

10 :デフォルトの名無しさん:2014/11/09(日) 19:18:50.90 ID:SLONFsRa
>>9
プルリク送ればいいんじゃね?

11 :デフォルトの名無しさん:2014/11/09(日) 19:59:55.69 ID:kpf0ITqg
おれがメール出したのは本家のほうだぜ
やる気のない日本人のグループじゃない

12 :デフォルトの名無しさん:2014/11/09(日) 20:04:26.51 ID:RjxQ6mlt
チュートリアルのライセンスにすら目が行ってないのに本当に翻訳できてんですか?あ?

13 :デフォルトの名無しさん:2014/11/09(日) 20:08:54.75 ID:kpf0ITqg
チュートリアル専用にライセンスなんてあるの?ねえねえどこ?
おれはhttps://github.com/django/django/blob/master/LICENSEしかしらないよ?
これで勝手に翻訳公開しても言いわけ?ねえねえねえ?

14 :デフォルトの名無しさん:2014/11/09(日) 20:10:01.92 ID:RjxQ6mlt
目くらはすっこんでな
もしくは電車に飛び込んでろ

15 :デフォルトの名無しさん:2014/11/09(日) 20:11:00.30 ID:kpf0ITqg
(^_-)-☆

16 :デフォルトの名無しさん:2014/11/09(日) 20:13:48.84 ID:GNe3oHbG
とりあえず無断で公開しとけば?
問題があるなら文句が来るでしょう
もっとも、本家が目くじら立てる理由はないと思うが

17 :デフォルトの名無しさん:2014/11/09(日) 20:16:18.63 ID:GNe3oHbG
あ、これがやる気のない日本人のグループを煽るdisるための口実で
実際はアウトプットするようなものが何もなくても私は責めないですよ
安心してね

18 :デフォルトの名無しさん:2014/11/09(日) 20:30:32.09 ID:RjxQ6mlt
なんだかんだ理由をつけて最終的には逃走するからよく見とけ

19 :デフォルトの名無しさん:2014/11/09(日) 20:49:53.37 ID:Hbypsl7w
id:RjxQ6mlt お前もういいよ

20 :デフォルトの名無しさん:2014/11/09(日) 20:57:17.53 ID:zM7Eaqbs
ドットインストールでPythonをひと通り勉強したのですが今この段階でどのようなアプリがつくれるのですか?
応用もふくめてでお願いします。

21 :デフォルトの名無しさん:2014/11/09(日) 21:13:32.97 ID:T8NGFKFe
あとは時間さえかければあなたが想像できるすべてのソフトが作れます

22 :デフォルトの名無しさん:2014/11/09(日) 22:04:45.32 ID:ZPwU2EoE
三角コーンの上に白いまきまきしたの乗せたやつだな>>ソフト

23 :デフォルトの名無しさん:2014/11/09(日) 23:45:55.04 ID:RjxQ6mlt
>>19
何がもういいんだって?
何様だお前は。ウンコの国の国王陛下か何か?

24 :デフォルトの名無しさん:2014/11/09(日) 23:50:58.47 ID:GQTMLQvA
RjxQ6mltはやる気のない日本人グループの一員なのかい

25 :デフォルトの名無しさん:2014/11/13(木) 11:12:50.58 ID:dS9drdDA
pystache
https://pypi.python.org/pypi/pystache/0.5.4

26 :デフォルトの名無しさん:2014/11/13(木) 14:32:30.78 ID:LQqLt9Sh
人生はゼロから生まれゼロに戻るのだから、失敗しても何も損はしない
(英コント集団モンティ・パイソンから)
※いやホント、生まれてくるときは素ッ裸だけど、死ぬときは少なくともパンツははいてるからね(笑)。
どれだけ失敗しても生まれたときよりマイナスになるこたぁない。気楽にいこう。

27 :デフォルトの名無しさん:2014/11/13(木) 14:55:37.85 ID:1IhIdMPE
>>11
返事来た?公開まだw?

28 :デフォルトの名無しさん:2014/11/13(木) 20:24:34.70 ID:Bexk6xV/
公式ドキュメントの和訳がお粗末に尽きる
プログラミングの知識のない人が原文をそのまんま訳してる感じ
日本のPython技術者はこれを見て育つのだから、もっとしっかりやってもらいたい

29 :デフォルトの名無しさん:2014/11/14(金) 02:41:17.45 ID:gEKLwuxR
>>1 のテンプレにあえて ttp://www.python.jp/ 入れてなかったのに
復活させた馬鹿の罪は重い

30 :デフォルトの名無しさん:2014/11/14(金) 02:51:55.43 ID:O4zm7PQU
英語は読解の努力で済むけど
日本語の方は解読から始めないといけなくて
結局原文を読むことになることなったりする

31 :デフォルトの名無しさん:2014/11/14(金) 03:02:03.32 ID:fyhc9+Ta
翻訳のできが悪いというならあなたがやってもいいんですよ?

32 :デフォルトの名無しさん:2014/11/14(金) 03:04:42.46 ID:gEKLwuxR
原文見て判る人
→翻訳の悪さに気付いても原文見て済ますから自分で翻訳しようとは思わない


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



だれも翻訳の修正をしない

33 :デフォルトの名無しさん:2014/11/14(金) 03:07:52.91 ID:fyhc9+Ta
>>32
自分がいままでこの手の翻訳プロジェクトに参加したことがなのをさらすカキコですね。

34 :デフォルトの名無しさん:2014/11/14(金) 03:22:17.38 ID:gEKLwuxR
お金をもらう人
→誰が読もうが読まなかろうが成果物納品して金だけもらう

35 :デフォルトの名無しさん:2014/11/14(金) 07:37:58.22 ID:wpiv66DF
病んでれ

36 :デフォルトの名無しさん:2014/11/14(金) 07:49:08.66 ID:jAGOFrlY
>>32
その例だと別に誰も悪くはないよね
誰かを悪だと言いたいのかもしれないが
例えばDj…

37 :デフォルトの名無しさん:2014/11/14(金) 11:22:51.71 ID:G/qLyVZA
DJ KAORI?

38 :デフォルトの名無しさん:2014/11/14(金) 13:30:42.89 ID:rxnPKvOr
文法を覚えたところで、それはプログラミングの前衛知識のひとつを得たにすぎない
日本語の文法覚えたことと、日本語で面白い本を書けることは別だよね
プログラミングの奥深さはその先にあるんだよ
まあ仕事でやってる人でも、特にドカタ的な人は理解してないことが多いけどね

39 :デフォルトの名無しさん:2014/11/14(金) 14:29:39.90 ID:5Xz45IZb
文法覚えるだけで前衛的な知識が得られるなんて、すげぇじゃんwww

40 :デフォルトの名無しさん:2014/11/14(金) 15:03:56.14 ID:PoP9COyz
というか前衛じゃなくて前衛だと思うんだ(小声

41 :デフォルトの名無しさん:2014/11/14(金) 15:05:02.66 ID:PoP9COyz
前提って言いたかったんだ・・・

42 :デフォルトの名無しさん:2014/11/14(金) 15:14:02.87 ID:cYY7mpaQ
盾役カモーン

43 :デフォルトの名無しさん:2014/11/15(土) 00:38:03.71 ID:56omsSeh
もうこの業界離れたんだけど、今でも派遣と言う名の偽装請負連中は
ifとforが書ければ言語はマスターしたと見做すみたいな風潮なん?

44 :デフォルトの名無しさん:2014/11/15(土) 04:23:32.76 ID:L1YjzjuF
そんなもんじゃねえの
書けない奴すら未だにセット割とかでねじ込んで来るという

45 :デフォルトの名無しさん:2014/11/15(土) 04:31:04.40 ID:2FIfZBqH
セット割!そういうのもあるのか!

46 :デフォルトの名無しさん:2014/11/15(土) 04:34:23.14 ID:L1YjzjuF
3人だとお安いけど1人は足引っ張るよって感じ

47 :デフォルトの名無しさん:2014/11/15(土) 08:15:47.24 ID:9oSuAzwe
人月で発注するからそうなる

48 :デフォルトの名無しさん:2014/11/16(日) 08:27:33.56 ID:lR2mulvd
日本語が出来てもプロとして仕事が出来るってことじゃないしね
俺、プログラム言語(Pythonとか)はすごく出来る。
そうか、じゃ車のエンジン制御のプログラム(プロとしての仕事)やってって言われても
車のエンジン制御のしかたさっぱり分からん><って良くあるしね

49 :デフォルトの名無しさん:2014/11/17(月) 19:56:20.02 ID:dw5uN+ZK
パイパイ

50 :デフォルトの名無しさん:2014/11/18(火) 18:52:11.63 ID:Eijilsh0
import __main__
ってどゆ意味ですか

51 :デフォルトの名無しさん:2014/11/18(火) 23:48:09.74 ID:G2suecvD
str.isalnum()が日本語も通してしまうのですが、英数字のみ通すにはどうしたらいいでしょうか

52 :デフォルトの名無しさん:2014/11/19(水) 00:17:06.82 ID:qPp6+7V/
> 'あ'.isalnum()
True
> 'あ'.encode('sjis').isalnum()
False
> '1'.encode('sjis').isalnum()
True

...とかはないなぁ、もっと違うやり方があるよね...

53 :デフォルトの名無しさん:2014/11/19(水) 06:24:02.86 ID:Ec+tJ+no
c.isalnum() and ord(c) < 128
全角のあるなむを含む方法は分かりません

54 :デフォルトの名無しさん:2014/11/19(水) 11:14:52.25 ID:zPQMYzMI
日本語でおk

55 :デフォルトの名無しさん:2014/11/19(水) 11:47:34.09 ID:Fl85R1m1
>>51
正規表現を使うのが明示的で無難だと思う

>>> import re
>>> re.match(r'^[0-9A-Za-z]+$', 'あ')

56 :デフォルトの名無しさん:2014/11/19(水) 12:01:30.79 ID: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'

57 :デフォルトの名無しさん:2014/11/19(水) 12:20:31.01 ID:akX+E6PE
>>53
SJISの2バイト目を甘く見すぎ

58 :デフォルトの名無しさん:2014/11/19(水) 17:55:24.86 ID:JZ2oYyd9
http://melpon.org/wandbox

59 :デフォルトの名無しさん:2014/11/19(水) 21:58:52.42 ID:3pB6QtrL
if __name__ == "__main__"ってどういうときに使うものですか?

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

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

これで十分な気がするんですが

60 :デフォルトの名無しさん:2014/11/19(水) 22:21:53.16 ID:iy1M9qAa
>>59
ライブラリとしてもトップレベルのスクリプトとしても
使えるようにしたいときにそうする
SimpleHTTPServer あたり見てみるといい

61 :デフォルトの名無しさん:2014/11/20(木) 11:29:06.22 ID:eVYyucNI
クラスやライブラリ関数を定義しておいて、mainブロックにはそのテストコードを書くとか

62 :デフォルトの名無しさん:2014/11/20(木) 11:43:26.71 ID:Tt8JtOUX
メインの起動スクリプトに関数とからクラスを書くことがおかしい
そういうのは外部ファイルにまとめるべきだ

63 :デフォルトの名無しさん:2014/11/20(木) 11:57:12.20 ID:EmAWw9wC
main() と __main__ は無関係だけど
書き捨てスクリプトでも
main() や __main__ は書く習慣にしといた方が無難

64 :デフォルトの名無しさん:2014/11/20(木) 12:56:04.22 ID:jwSFt3Jc
ターミナルでコマンドとして使えるようなものを作りたくて、PyPIにあるソフトのソースをみてみたりしたのだが、構造というか設計の意味?がまだ自分は理解できません
例えばmain.pyの役割とか

$ python pugyaaa.py というのではなく
$ pugyaa -option_x hogefile というやり方で動くプログラムはどうやって作ればいいのかということなんですが
良いサイト、知っておくべき事柄などがあればググる言葉でいいので教えてください

65 :デフォルトの名無しさん:2014/11/20(木) 13:27:01.58 ID:6q5qt+KO
pythonらしいプログラムの構造が分かりません
C言語で書いたような感じになってしまいます
局所的なものでは綺麗なforの書き方とかはググって出たのですが
もっと全体的な設計?というのが知りたいです

66 :デフォルトの名無しさん:2014/11/20(木) 13:46:32.82 ID:EmAWw9wC
> $ pugyaa -option_x hogefile というやり方

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

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

オプションやコマンドラインの使い方は python より linux/bsd/unix の板で聞いた方が良い

67 :デフォルトの名無しさん:2014/11/20(木) 17:03:21.21 ID:jwSFt3Jc
>>66
質問の仕方が不味かったのにレスをもらって気がつきました
自分がやりたいのは、例えばunittestのように
$ unittest -c hoge.py
と呼び出しができるプログラムのことです(オプションは適当)
pugyaa.pyという単独のスクリプトではなくpugyaaというパッケージ?のプログラムを作成して、それをターミナルで呼び出せるものにしたいということです
$ pugyaa_command -option_x hogefile と書くべきでした

68 :デフォルトの名無しさん:2014/11/20(木) 17:06:40.35 ID:7mTde6YP
後出しアウト

69 :デフォルトの名無しさん:2014/11/20(木) 17:08:51.73 ID:kM/REAEx
>>67
そういうふうにできるパッケージのソースコードを読むところから始めろよ

70 :デフォルトの名無しさん:2014/11/21(金) 21:29:10.12 ID:emLR1Bt2
文字列を正規表現で普通の文字列として扱われるようにエスケープしたいのですが、そのようなライブラリは有りますか?

71 :デフォルトの名無しさん:2014/11/21(金) 21:43:07.20 ID:J6SMxvGo
re.escape

72 :デフォルトの名無しさん:2014/11/21(金) 22:19:56.43 ID:emLR1Bt2
>>71
それだと日本語までエスケープされてしまいます。
*等の正規表現に使われる文字だけエスケープする方法はありませんか?

73 :デフォルトの名無しさん:2014/11/21(金) 22:23:07.27 ID:Z4gL4MHq
ええやんけ別に

74 :デフォルトの名無しさん:2014/11/21(金) 22:41:06.57 ID:zMe5L6ad
どういうふうにしたいのかサンプルをいくつか書いて

75 :70:2014/11/23(日) 16:17:12.18 ID:Pt0iPmF5
解決しました

76 :デフォルトの名無しさん:2014/11/23(日) 20:26:38.42 ID:yEbURLmy
「Python文法詳解」って本ちょっと気になっててアマゾンレビュー付くの待ってたんだけど
付いた評価が2ww あーこりゃ買わないかなぁ・・ もちょっと情報出てるかなとググッてみたら
正誤表が出てやんの、んで正誤表見てみたら間違いだらけwwwwww
しかも舐めてんのかっていうくらいのヒドイ内容の間違いだらけwww

もう買う買わない以前に本として終わってるわ、こんな本出してる著者終わったなって思ったね
なんかさPython関連の本ってクオリティ低いの多くね? ウンコが本書いてんじゃねーよw

77 :デフォルトの名無しさん:2014/11/23(日) 20:29:42.60 ID:E0tXkl0n
公式見ればいいから
そういう本を買う必要が・・・
買って価値があると思ったのはエキスパートパイソンぐらい

78 :デフォルトの名無しさん:2014/11/23(日) 20:45:24.94 ID:QgGlHFFa
>>76
ひどいレビューだった。著者かわいそす

正誤表、正と誤で入力が同一なのに出力が違うのはなんでだろう
プロンプトの入出力をコピペしたのではなく
それっぽく手書きしたんじゃないかと勘ぐっちゃうな

79 :デフォルトの名無しさん:2014/11/23(日) 21:53:19.92 ID:N3XI4gdr
>>78
たぶん手打ちテキストを画面っぽく印刷してるんだと思う
プロンプト画面を取り込むのってそんなに難しいんだっけ?

しかしホント舐めてるよね
技術本って高価なうえにそれを信じて仕事に使う人も多いわけで
普通の本よりも誤植には注意して作ってもらわないと困るのに
最終原稿をいっぺん著者側で通して読み直すとか、サンプルコードが
画面通りの結果になるか試してみるとか、それすらしないんだからな
編集者たちの顔が見てみたいよ

80 :デフォルトの名無しさん:2014/11/23(日) 22:39:05.56 ID:u5wQpN3r
ちょっと毛色違うけど
WordPressとかのガバガバな設定例とか載せてる本はホント死ねよ
くびり殺されろ

81 :デフォルトの名無しさん:2014/11/24(月) 00:12:17.03 ID:NFvfX/bb
python見たいな動的型付け言語ってリファレンス読みにくくね?
みんなどうしてんの?

82 :デフォルトの名無しさん:2014/11/24(月) 06:10:59.07 ID:eOmEBZPc
>技術本って高価なうえに
(略)
>サンプルコードが画面通りの結果になるか試してみるとか、それすらしないんだからな

高価なのは理由があるのに
これじゃ詐欺だね

83 :デフォルトの名無しさん:2014/11/24(月) 10:20:24.44 ID:fpTO9n+F
較正の回数を減らして値段を下げている面もあるし
別本だけど、本の値段が1500円上がったわ

84 :デフォルトの名無しさん:2014/11/24(月) 10:23:28.17 ID:gIu/y3Pi
x 較正
o 校正

85 :デフォルトの名無しさん:2014/11/24(月) 10:46:07.76 ID:Rjvgb28d
パーフェクトPythonは、3千円以上するのにコードミスを含む誤植が100箇所以上あって
未だに出版社から正誤表が出ていないというひどい本

これでパーフェクトを名乗って恥ずかしくないんだろうかと著者紹介を見ると、
Pythonサポーターズと称する様々な職業の人の寄せ集めで、要は出版というものに
プライドを持っていない、バイト感覚の人たちなんだろうと推測する
だからこんなお粗末なことをして平気でいられるんだろう
誤植一箇所につき10円返金しろと言いたい

86 :デフォルトの名無しさん:2014/11/24(月) 11:23:11.38 ID:fpTO9n+F
>>84
oh...

>>85
重版か改訂かからないと修正もままならぬものよな
だが、そこはビジネスチャンスでもあるので
我々はうまいことやっているわけです

87 :デフォルトの名無しさん:2014/11/24(月) 11:35:25.73 ID:xDPsuXis
俺は○○サポーターズとユーザー会の本は買わないとお星様に誓った

88 :デフォルトの名無しさん:2014/11/24(月) 12:48:05.69 ID:JyotAVq+
正解

89 :デフォルトの名無しさん:2014/11/24(月) 13:20:55.47 ID:2tzTlBla
悲しいわね・・・

90 :デフォルトの名無しさん:2014/11/24(月) 13:24:21.42 ID:fhSaIGeE
オライリーしかないと思うけど、初心者はどのオライリー買えばいいの?

91 :デフォルトの名無しさん:2014/11/24(月) 14:45:10.67 ID:TKxlIcb/
>>85
10年以上前に買った同じ出版社の access vba の本も寄せ集めだった
それは承知の上だったが、HPからDLしたソースの番号がでたらめで、どの
ファイルがどのサンプルなのか、いちいち開いてみないと分からないのには呆れた
メールしたけど返事も無く、訂正もされなかった

92 :デフォルトの名無しさん:2014/11/24(月) 23:08:21.66 ID:vrf5+UU7
>>76
目次がショボいと思いました。
技術評論社のポケットリファレンスみたいな使い道の本だと思うのでもっと目次を充実させてサイズをコンパクトにして欲しかったです。

パーフェクトPythonは広く浅くな本なので中途半端に不便さを感じました。

93 :デフォルトの名無しさん:2014/11/25(火) 10:48:39.01 ID:gsquWzs9
>>90
初心者は公式ドキュメント読めよ
オライリーの日本語訳って未だにPython2しかなかった希ガス

94 :デフォルトの名無しさん:2014/11/25(火) 21:40:46.47 ID:WbGS6JfL
Linux環境でPythonってどんなときに使ってますか?
シェルコマンドを駆使する場合、シェルスクリプト使ったほうが簡単に出来るのでどういう用途で使われてるのか知りたかった限りです

95 :デフォルトの名無しさん:2014/11/25(火) 21:50:23.83 ID:8ektkpGa
Linux環境でPythonプログラミングするときに使ってますけど

96 :デフォルトの名無しさん:2014/11/25(火) 22:07:04.47 ID:OAu3+orl
>>95
ありがとうございます!
非常に助かりました!

97 :デフォルトの名無しさん:2014/11/25(火) 22:17:44.19 ID:C5WEAxvj
いえいえ!どういたしまして!

98 :デフォルトの名無しさん:2014/11/25(火) 22:36:43.77 ID:USvtmY11
おい

99 :デフォルトの名無しさん:2014/11/25(火) 22:36:44.24 ID:rjfdVhTp
>>93
Pythonチュートリアル第2版はPython3

100 :デフォルトの名無しさん:2014/11/25(火) 22:43:47.84 ID:w3TN5Y2v
マジレスするとオブジェクト指向

101 :デフォルトの名無しさん:2014/11/26(水) 01:32:58.87 ID:9zht01Nx
Linuxだと、GUIの小物ツールとか結構Python製だったりするよ

102 :デフォルトの名無しさん:2014/11/26(水) 04:18:04.68 ID:xLpFKyQi
ソフトバンクの変なロボットはpythonで動かせるとか
海の向こうでは何でもpythonなんですかね。日本でも今後需要増えるんでしょうか?

103 :デフォルトの名無しさん:2014/11/26(水) 08:13:16.30 ID:vFf7Ls5f
増えないと思いますよ
だって君、英語読めないでしょう?

104 :デフォルトの名無しさん:2014/11/26(水) 09:42:58.11 ID: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の継承クラスをわざわざ定義していますが、特定のキーイベントを親に流したいだけなので冗長に思います。
特定のキーイベントだけ(あるいは全部)親に渡すような簡単な方法があれば教えてください。

105 :デフォルトの名無しさん:2014/11/26(水) 09:58:30.16 ID:lSnM4E9y
qtextedit にフォーカスがあるか親フレームにフォーカスがあるか
qtextedit から親にプレスイベントをemitすれば良い

106 :デフォルトの名無しさん:2014/11/26(水) 10:18:50.29 ID:tFYAbi6x
104<<githubでコード検索すれば答えはあるでしょう

107 :デフォルトの名無しさん:2014/11/26(水) 11:42:48.43 ID: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覗くことにします。

108 :デフォルトの名無しさん:2014/11/27(木) 11:39:19.19 ID:hJm0HB30
TATSUO IKURA の写真がかわったぞ

109 :デフォルトの名無しさん:2014/11/27(木) 11:42:08.95 ID:ZoBqTrPg
脂っこさがなくなったな
無機的になったとも言うw

110 :デフォルトの名無しさん:2014/11/30(日) 03:56:42.59 ID:b4nmdqGs
判ってない人の判ってないブログ

111 :デフォルトの名無しさん:2014/11/30(日) 04:10:16.40 ID:CR+pCvU9
あの内容のなさで検索上位に居続けるのは驚嘆すべきSEO技術だと思うわ

112 :デフォルトの名無しさん:2014/11/30(日) 12:29:01.21 ID:tTeiN462
a_list= None
b_list= list()
として、
if a_list: 又は if b_list: だと、a_list も b_list も Falseが返ります。
b_list だけ Trueを返すような判定法で、おすすめは何でしょうか。

113 :デフォルトの名無しさん:2014/11/30(日) 12:36:28.58 ID:5iCvS2Es
>>112

b_list is not None

isinstance(b_list, list)

114 :112:2014/11/30(日) 13:17:40.35 ID:tTeiN462
ありがとうございます。
False と Noneの違いが、よく分かっていませんでした。

115 :デフォルトの名無しさん:2014/11/30(日) 13:56:20.48 ID:Q44JDfrW
not b_list is None

116 :デフォルトの名無しさん:2014/12/02(火) 20:57:31.65 ID:hSje/okN
複数の引数を取る関数にmapを適用する方法があったら教えて

117 :デフォルトの名無しさん:2014/12/02(火) 21:23:42.55 ID: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)

こういうこと?

118 :デフォルトの名無しさん:2014/12/03(水) 07:47:26.04 ID:/RLfm3vM
>>117
そうです
引数をどうやって与えるのかわからなくて
示していただいたコードで考えてみます

119 :デフォルトの名無しさん:2014/12/03(水) 08:06:51.70 ID: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']

正直あんまり使わない

120 :デフォルトの名無しさん:2014/12/03(水) 15:57:22.96 ID:YLIoypJg
pip installをしてみても
raise ValueError(str(list(result.keys())))
ValueError['path']
とでるだけで出来ないのですがどうすれば良いでしょうか
python3.4.2で今朝インストールしたばかりです

121 :デフォルトの名無しさん:2014/12/03(水) 19:18:39.57 ID:CAxPUjtZ
釣りかな?

122 :デフォルトの名無しさん:2014/12/04(木) 17:05:09.33 ID: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"

123 :デフォルトの名無しさん:2014/12/04(木) 17:10:47.43 ID:UwyMS5sV
釣りかな?

124 :デフォルトの名無しさん:2014/12/07(日) 16:26:57.55 ID:JyUOAjZz
apacheでmultipart/form-data形式でファイルを送信されたとき、
cgiモジュールは標準入力の内容を一度全部メモリ上に読み込んでいるんでしょうか?
もしそうなら、最初の要素から順に読み込ませてメモリ使用量を抑える方法はありますか?

125 :デフォルトの名無しさん:2014/12/07(日) 16:45:32.79 ID:GOj11zUj
ソースを読む限りは、必要になった分だけ順次read/readlineしているようだよ
Python2.7.8の場合、cgi.pyの230行目くらいにある

126 :デフォルトの名無しさん:2014/12/07(日) 16:46:50.73 ID:GOj11zUj
ものすげー前代未聞なくらい空目ったぞ
今のなし

127 :デフォルトの名無しさん:2014/12/08(月) 18:09:03.96 ID:d6bXZb5C
2.7で
print("あ")
print(["あ"])

2番目、なんでアスキーコードに変換されるんですか

128 :デフォルトの名無しさん:2014/12/08(月) 19:04:12.44 ID:KCPal8fz
>>> print(str([u'あ']).decode('unicode-escape'))
[u'あ']
>>> print(str(['あ']).decode('string-escape'))
['あ']

http://python.rdy.jp/wiki.cgi?page=japaneseCharset

129 :デフォルトの名無しさん:2014/12/08(月) 20:21:46.23 ID:uo19JAd8
pythonって初見だと
日本語の扱いで苦労しまくるよなあ

130 :デフォルトの名無しさん:2014/12/08(月) 21:18:01.42 ID:3j8XWElx
むしろPythonに限らず日本語とかうまく扱えるはずないじゃん!と思ってとりかかるべき

131 :デフォルトの名無しさん:2014/12/08(月) 21:44:22.73 ID:bX3RsKhP
日本語がどうのこうの言ってんの2までじゃないの

132 :デフォルトの名無しさん:2014/12/08(月) 22:29:47.15 ID:XOsA95NW
まだ2.7が主流ですし

133 :デフォルトの名無しさん:2014/12/09(火) 01:18:13.63 ID:mUiJkLsL
と、ロートルが申しております。

134 :デフォルトの名無しさん:2014/12/10(水) 09:51:38.10 ID:kUP0yqqm
>>129
勝手によきにはからって後になって忘れた頃に文字化けに悩まされるより
最初から例外出してくれた方がありがたいという思想だということに気付けばあとは氷解

135 :デフォルトの名無しさん:2014/12/10(水) 10:35:42.16 ID:McT8v6hQ
2.7で日本語扱う場合はu'あ'みたいにuをつけとけばいいってことで合ってますか?

136 :デフォルトの名無しさん:2014/12/10(水) 13:52:43.52 ID:evPa2cl4
それは必要条件であって充分条件ではないよ

あと
a = u'あ'
の代わりに
b = 'あ'.decode('ファイルを保存したときのエンコード')
と書いてもいける

137 :デフォルトの名無しさん:2014/12/10(水) 14:34:29.37 ID:ChUOhoY6
日本語とかを含む文字列リテラルに u つけないのは
sjisと0x5cみたいなのが気になるからあんまりよくないはず

138 :デフォルトの名無しさん:2014/12/10(水) 14:42:56.96 ID:X/Vb7CZT
>>136 必要と十分が逆じゃね

139 :デフォルトの名無しさん:2014/12/10(水) 15:00:18.04 ID:yfExYDOY
釣りかな?

140 :デフォルトの名無しさん:2014/12/11(木) 10:28:15.97 ID:o0EaoagT
from pprint import pprint as print
みたいにprintを上書きする方法ありませんか?

141 :デフォルトの名無しさん:2014/12/11(木) 11:04:22.29 ID:o0EaoagT
random.shuffle(xrange(10))はエラーで
random.shuffle(range(10))はエラーじゃないのは何故ですか

142 :デフォルトの名無しさん:2014/12/11(木) 11:15:14.43 ID:SY3PmBw7
shuffleの受け取る引数はリストで
rangeの返り値はリストで
xrangeの返り値はxrangeオブジェクトだから

143 :デフォルトの名無しさん:2014/12/11(木) 16:04:01.78 ID:qKHRQsDr
>>140
from pprint import pprint
print = pprint

144 :デフォルトの名無しさん:2014/12/11(木) 16:13:08.54 ID:SY3PmBw7
Python2はprintが文だから無理

145 :デフォルトの名無しさん:2014/12/11(木) 17:25:04.80 ID:qKHRQsDr
global print
とか宣言して上書きできないかな

146 :デフォルトの名無しさん:2014/12/11(木) 18:57:11.12 ID:YFaDd8+H
釣りかな?

147 :デフォルトの名無しさん:2014/12/11(木) 19:28:09.16 ID:6slixBmx
質問です。
Javascriptでブラウザ上から操作してある値を得て
その値をAjaxを使ってサーバー側のPythonに送って処理して
その処理した値をJavascriptの方に返したいのですが
どうすればいいでしょうか?

148 :デフォルトの名無しさん:2014/12/11(木) 19:49:24.50 ID:dUmItZfA
根本的にHTTPの知識が足りないんじゃねーの

149 :デフォルトの名無しさん:2014/12/11(木) 20:04:44.45 ID:7wRfLV17
pyscripterを使い始めたのですが、モジュールのインポートでエラーが起こります。
コマンドプロンプトからだとしっかりインポートできるので、pyscripter上の設定がうまく言ってないのかなぁと思うのですが、どなたか解決方法をご存知の方は居られますか?

150 :デフォルトの名無しさん:2014/12/11(木) 21:24:43.54 ID:zZIL+BW/
このあとつくレスの内容がわかるよな?
答えはエラーの内容を貼れだ

151 :デフォルトの名無しさん:2014/12/11(木) 21:32:59.99 ID:ZURpiEMX
エラー読めエラー
エラー文程度の英語は読もう
辞書引け辞書

152 :デフォルトの名無しさん:2014/12/11(木) 21:34:38.15 ID:GpAyUabF
>>147
ここは言語スレだから、Webプログラミングについては
WebProg板にある以下のスレで質問したほうがいいと思う
・【Python】Python Webフレームワーク総合スレ
 http://kanae.2ch.net/test/read.cgi/php/1329996601/

153 :デフォルトの名無しさん:2014/12/11(木) 22:10:38.95 ID:7wRfLV17
エラー内容は

Inport Error:No module named '〜'

というものです。先にも書きましたが、同じスクリプトをコマンドプロンプトから実行した場合にはしっかりインポートできました。なのでインポートしたいモジュールのディレクトリが間違ってるとかはないと思うのですが
・・・

154 :デフォルトの名無しさん:2014/12/11(木) 22:12:50.22 ID:dUmItZfA
sys.path表示してみろよ
printか何かで

モジュールはそこにないと読まれない

155 :デフォルトの名無しさん:2014/12/11(木) 22:30:40.27 ID:7wRfLV17
なるほど

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

さて、申し訳ないのですが明日早いのでひとまず持ち越しさせてください。
有難うございました。

156 :デフォルトの名無しさん:2014/12/11(木) 22:46:42.90 ID:6slixBmx
>>152
ありがとうございます

157 :デフォルトの名無しさん:2014/12/12(金) 03:53:45.69 ID:iNQHvDR7
馬鹿には無理

158 :デフォルトの名無しさん:2014/12/12(金) 04:23:40.16 ID:l0cPHPUF
馬鹿には無理の馬鹿キタ━(゚∀゚)━!

159 :デフォルトの名無しさん:2014/12/12(金) 06:08:08.67 ID:iNQHvDR7
嬉しそう

160 :デフォルトの名無しさん:2014/12/12(金) 07:53:04.64 ID:B5AH1Q7I
くやしいのぅ

161 :デフォルトの名無しさん:2014/12/12(金) 10:05:51.16 ID:5NCaXpKG
無理には馬鹿

162 :デフォルトの名無しさん:2014/12/12(金) 17:05:33.34 ID:3ynwoAwo
釣りかな?

163 :デフォルトの名無しさん:2014/12/12(金) 17:07:31.62 ID:z5EZhpJA
高橋是清

164 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:29:47.89 ID:iMl+g16a
すんません。

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

for my_line in my_list:
print my_line

165 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:33:34.26 ID:cr5Eplup
for i in range(len(a)-1, -1, -1):
print(a[i])

166 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:34:15.67 ID:cr5Eplup
a.reverse()
for i in a:
print(i)

167 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:35:00.18 ID:OgL3dLSe
>>164
for myline in reversed(my_list):
print(n)

これでどうでしょう?

168 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:35:17.44 ID:cr5Eplup
while a:
print(a.pop())

169 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:36:21.37 ID:OgL3dLSe
nじゃなかった。
for myline in reversed(my_list):
print(myline)

170 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 12:04:30.74 ID:iMl+g16a
みなさん
ありがとうございます。
おかげでうまく行きそうです。
助かりました。

171 :デフォルトの名無しさん:2014/12/14(日) 20:17:12.91 ID:QEpJ0bQG
Pythonなら書き方はひとつ(キリっ

172 :デフォルトの名無しさん:2014/12/14(日) 22:32:20.84 ID:AdYRt8Z2
言いだしっぺは今どんな顔をしているのだろう

173 :デフォルトの名無しさん:2014/12/14(日) 23:06:35.23 ID: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')

174 :デフォルトの名無しさん:2014/12/14(日) 23:12:32.49 ID:HQm6Xl4s
>>173
お前がバカだからだよ。

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

同じじゃない。
ちったあ頭使え。

175 :デフォルトの名無しさん:2014/12/14(日) 23:14:55.22 ID:9CZ8nEqT
if elifとif if は違うから
本当に同じかよく見てごらん
http://docs.python.jp/2/reference/compound_stmts.html#else

176 :デフォルトの名無しさん:2014/12/15(月) 00:28:04.02 ID:L0jrf9lW
釣りかな?

177 :デフォルトの名無しさん:2014/12/15(月) 00:41:15.09 ID:Vqj9ldUp
>>175
読んでもよくわからないので素直にelif使うことにする
switchがあればこんな苦労は要らないんだが

178 :デフォルトの名無しさん:2014/12/15(月) 00:48:57.38 ID:DDIABndf
if elif と同じなのは if else if だぞ

179 :デフォルトの名無しさん:2014/12/15(月) 00:50:53.54 ID:ukim46sj
そういう理解だと他のswitchがある言語使っても
バグを作り込むんじゃないか

180 :デフォルトの名無しさん:2014/12/15(月) 02:02:32.89 ID:kIlAV+GQ
>>177
これこそ「馬鹿には無理」ってやつだな
お前みたいなのはswitchがある言語の世界から出てきてくれるなよ

181 :デフォルトの名無しさん:2014/12/15(月) 08:46:39.20 ID:oT27jdsU
>>173
Pythonはインデントの深さでブロックのネストを表してる
2nd tryがやってることはC風にするとこういうこと

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

if (a == 1) {
  print('a is 1');
} else {
  print('other');
}

182 :デフォルトの名無しさん:2014/12/15(月) 09:41:52.79 ID:KFNfkcvV
intって少数の文字列は変換できないんですね

183 :デフォルトの名無しさん:2014/12/15(月) 10:27:24.74 ID:Gn/AO2ID
int(float("123.4"))

184 :デフォルトの名無しさん:2014/12/16(火) 22:29:10.07 ID:JLxuIaVb
int(float("1234e-1"))

185 :デフォルトの名無しさん:2014/12/16(火) 22:30:01.24 ID:BUbjQCv4
(´・ω・`)わかったよ

186 :デフォルトの名無しさん:2014/12/16(火) 22:37:24.96 ID:t3ZeiYLt
あん?わかんねーよ?

187 :デフォルトの名無しさん:2014/12/16(火) 22:52:05.87 ID:GPOj3jaH
釣りかな?

188 :デフォルトの名無しさん:2014/12/17(水) 04:04:06.27 ID: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が一瞬開いて閉じるだけで、フォルダを見ても何もない)

なにか根本的なことが分かっていないようなんですが、
どこがわかっていないのか、お教えください
上記のことができればどうなるのか
ご教授願います。

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

python example.py

って具合に
もちろんPythonへのパスは通してね

190 :デフォルトの名無しさん:2014/12/17(水) 08:00:43.45 ID:rr+ZuKh0
if a == 0:
a = 1
elif a == 1:
print("実行されない")

if a == 0:
a = 1
if a == 1:
print("実行される")

191 :デフォルトの名無しさん:2014/12/17(水) 09:12:18.09 ID:92SEZchH
windowsはインストーラーが勝手にパス通してくれてる

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

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

挙げられている3つのサイトのうち、上と下はPython2を前提にしているので、そのままプログラムを書き写すと動かない可能性がある。
真ん中のサイトはPython3を前提にしているので、その点は心配しなくてもいい。
一番下の公式サイトのリファレンスは、左上のドロップボックスで3.3を選べば、
Python3用のページに移動するので、そのページを参考にする。

193 :デフォルトの名無しさん:2014/12/17(水) 12:40:16.79 ID:BcALhq1a
>>188
補足
IDLEを使ってるとのことなので>>192のように書いたが、
もちろん>>189さんの言うようにコマンドプロントから実行してもよい。

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

例えば一番上のサイトのプログラム例だと、サイトのソースを取得する以外は何もしてないので、
実行に成功しても何も表示されないし何も保存されない。
真ん中のサイトのプログラム例だと、取得した内容がファイルに保存される。
一番下の公式リファレンスの最後の「使用例」のプログラムだと、取得した内容が画面に表示される。
…といったように、それぞれやっていることが違う。

194 :デフォルトの名無しさん:2014/12/17(水) 12:54:30.07 ID:fm55ZjWq
ちなみに標準ライブラリにはhtml.parserというhtml文をパースするモジュールがあるよ

195 :デフォルトの名無しさん:2014/12/17(水) 13:03:05.68 ID:tYIZwmKq
>>188
f = open("hoge.txt") の意味はわかる?
もしわかるなら f = urllib.urlopen("http://www.example.com") の意味は想像つかない?

196 :188:2014/12/17(水) 13:36:33.70 ID:tVZ6iM4c
みなさんいろいろありがとうございます。
ちょっと整理して、またわからないことがあったら参ります。

197 :デフォルトの名無しさん:2014/12/17(水) 19:19:30.00 ID:jNjOuaaM
htmlのボタンを押した時にシリアル通信で
文字列を送るプログラムを作りたいんだけど可能?

198 :デフォルトの名無しさん:2014/12/17(水) 19:53:52.14 ID:BchJU/pT
何と何をシリアル通信させるのか?
htmlを配備するサーバーはお前が自由にできるのか?
htmlはお前が自由にできるのか?

をはっきりとさせて

199 :デフォルトの名無しさん:2014/12/17(水) 20:45:25.23 ID:jNjOuaaM
サーバーとマイコンボードを通信させたい
html,サーバーは自由

200 :デフォルトの名無しさん:2014/12/17(水) 21:03:14.12 ID:yd7uYEg4
httpじゃなくて?

201 :デフォルトの名無しさん:2014/12/17(水) 22:32:45.18 ID:BchJU/pT
>>199
サーバーとマイコンボードが繋がってるなら大丈夫だろう
普通のWebアプリケーションなら、ユーザーからの入力に応じてデータベースなんかをいじくるところ
代わりにマイコンボードをいじくるように作る

202 :デフォルトの名無しさん:2014/12/18(木) 15:33:07.08 ID:KTe/oi6X
pyenvで2.7.8を入れたんですけど
新しい2.7.9を入れたいのですが
これってvirtualenvで作った環境も削除して作りなおさないといけないってことですよね?

203 :デフォルトの名無しさん:2014/12/18(木) 17:31:54.42 ID:B30EcXiG
そうですね

204 :デフォルトの名無しさん:2014/12/18(木) 19:05:28.76 ID:p76oanwJ
仮想環境は設定や扱いが面倒臭いね
PythonのバージョンごとにPCを別々に用意した方が
スッキリするんじゃね?と思った
ノートPCが2〜3万で買えるご時世だしな

205 :デフォルトの名無しさん:2014/12/18(木) 19:07:42.94 ID:nABCaYDf
釣りかな?

206 :デフォルトの名無しさん:2014/12/18(木) 19:30:15.44 ID:j26dZxyw
PCを分けたいけど、今はVMに入れてるよ
1台でサーバ・クライアント運用も出来るし

207 :デフォルトの名無しさん:2014/12/18(木) 19:47:40.92 ID:siOJVJ1k
PC複数台がめんどくさいから仮想環境にしたけど
仮想環境がめんどくさいからPC複数台にするのか

208 :デフォルトの名無しさん:2014/12/18(木) 21:58:37.10 ID:wCefEqGM
python本体だけアップグレードしてpipで入れたものとか仮想環境もそのまま使えるようにならないのかな
このへん不便

209 :デフォルトの名無しさん:2014/12/18(木) 21:59:06.02 ID:wCefEqGM
あ、pyenvでの話ね

210 :デフォルトの名無しさん:2014/12/18(木) 22:00:18.43 ID:HI8EE6st
もっと釣り名人になろう

211 :デフォルトの名無しさん:2014/12/18(木) 22:17:58.44 ID:p76oanwJ
仮想環境もそうだが、俺はスクリプト言語であるPythonにpipとかを使っての
「アプリインストール」という概念があるのが理解できん
スクリプト言語つーたら、フォルダにスクリプトファイルを置いて
デスクトップにショートカット作ってWクリ一発で済ますもんじゃないの?
お手軽さが命のスクリプト言語をわざわざ難しく使っているとしか思えない

212 :デフォルトの名無しさん:2014/12/18(木) 22:40:44.84 ID:wCefEqGM
pipがrubyのbundleのようなものになるのが一番いい

213 :デフォルトの名無しさん:2014/12/18(木) 23:58:25.67 ID:XtM22rPl
好きなように使えばいいだろー
道具に使われている諸君?

214 :デフォルトの名無しさん:2014/12/19(金) 05:22:59.53 ID:ezHQ1wXp
pip freezeやpip bundle、pip wheelがあるだろ

215 :デフォルトの名無しさん:2014/12/19(金) 07:55:56.26 ID:iA6Ogp4V
>>207
scipyとかVMごと配布してるぞ

216 :デフォルトの名無しさん:2014/12/19(金) 07:58:09.77 ID:iA6Ogp4V
>>211
eggファイル展開してsite-packagesにコピーするだけで使えてるよ

217 :デフォルトの名無しさん:2014/12/19(金) 15:00:32.75 ID: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

このように書いてるのですが、何度か行うも同じ結果が返ってきます
なぜなのでしょうか?

218 :デフォルトの名無しさん:2014/12/19(金) 15:52:55.09 ID:M007GgfU
result_type='recent', max_id=''

219 :デフォルトの名無しさん:2014/12/19(金) 17:10:24.73 ID:ZtksDXjz
>>218
ありがとうございます。
デフォルトがmixedだったので数が少ないと
人気のツイートしか取れてなかったのですね。
解決しました。

220 :デフォルトの名無しさん:2014/12/19(金) 19:00:53.01 ID: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は一週間前に触り始めたばかりです。
どうかおねがいいたします。

221 :デフォルトの名無しさん:2014/12/19(金) 19:56:03.87 ID:EwlKzh3K
どんな出力を想定してるかもう少し詳しく
上のコードが[m]と[lの組み合わせ]の直積になってるように思えるけど、何がだめなのか

222 :デフォルトの名無しさん:2014/12/20(土) 09:08:45.35 ID: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できませんでした。

223 :デフォルトの名無しさん:2014/12/20(土) 09:09:59.08 ID: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は練習のために使っています。

よろしくお願い致します。

224 :デフォルトの名無しさん:2014/12/20(土) 09:28:34.71 ID:hZSDfw1l
まずIndentationError: expected an indented blockでググったの?

225 :デフォルトの名無しさん:2014/12/20(土) 09:31:19.15 ID:dWuhsWfV
Rubyなら、
String.split(区切り文字)で、
指定した区切り文字で、文字列を分割できる

たぶん、Pythonでも出来るでしょう

226 :デフォルトの名無しさん:2014/12/20(土) 09:41:34.31 ID:+GgZ8JtG
>>223
220での説明の言葉が間違ってる事だって有り得るから、期待してる出力例を書くべき。

227 :デフォルトの名無しさん:2014/12/20(土) 12:02:57.42 ID:e+FqSQyU
馬鹿には無理

228 :デフォルトの名無しさん:2014/12/20(土) 12:41:41.73 ID:HICU3D2K
そのエラーでぐぐれば一発で日本語記事で解決策がヒットするわけなんだけど

229 :デフォルトの名無しさん:2014/12/20(土) 15:01:59.30 ID:KBX+SOS/
>>223
チュートリアルや入門書読みたくないならこういうのがある
6.制御文のところ
http://d.hatena.ne.jp/dplusplus/20100126

230 :デフォルトの名無しさん:2014/12/20(土) 16:41:37.86 ID: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)
で、うまくできました。
手作業、エクセルでのチマチマ作業から解放されそうです。
しかも高速。

231 :デフォルトの名無しさん:2014/12/20(土) 19:29:01.25 ID: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()

としてみたのですけど、うまくいきませんでした。
どこが間違っていますか?
よろしくお願い致します。

232 :デフォルトの名無しさん:2014/12/20(土) 19:30:17.48 ID:e+FqSQyU
マジックナンバーを使うな

233 :デフォルトの名無しさん:2014/12/20(土) 19:35:40.59 ID:Bp15tF+m
うまく行かない時はエラーをよめつってんだろ

234 :デフォルトの名無しさん:2014/12/20(土) 19:36:51.43 ID:Uj8rcLat
>>231は質問時にエラーメッセージを貼る癖を付けような
うまくいきませんでした、では答えようがない

235 :デフォルトの名無しさん:2014/12/20(土) 19:46:32.60 ID:mAbPDdUl
くっそわろた
エラー報告はメッセージをただ貼るのが一番楽なはずなんだけど
なぜ誰もが自分の言葉で説明しようとしてしまうのか

236 :デフォルトの名無しさん:2014/12/20(土) 20:28:57.19 ID:KBX+SOS/
エラーは出ないけど思った結果になってないのかもしれない
ぱっと見はファイルを上書きしまくってるように見えるが
まあ回答する側のこと考えて再提出するのが筋だと思う

237 :デフォルトの名無しさん:2014/12/20(土) 21:04:01.06 ID: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()

238 :デフォルトの名無しさん:2014/12/20(土) 22:24:36.79 ID:z/wvtsdM
>>231
http://ideone.com/bSgNSL
こんな感じかね

239 :デフォルトの名無しさん:2014/12/20(土) 22:26:57.60 ID:z/wvtsdM
len(l)にしたけど、len(l)+1じゃなきゃあかんかった
すまんこ

240 :デフォルトの名無しさん:2014/12/21(日) 09:25:46.04 ID:c9w7SJVP
>>233, 234, 235
エラーが出なかったんですよ

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

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

メモ帳でのコピペやエクセルでの関数の複雑な組み合わせから脱出できそうで
感動しきりです
>>237, 238を見ながら、いろいろいじってみようと思います

241 :デフォルトの名無しさん:2014/12/21(日) 12:16:28.95 ID:kqogwpUD
http://www.amazon.co.jp/exec/obidos/ASIN/4764904691/
そういえばそんな話あったね…感

242 :デフォルトの名無しさん:2014/12/21(日) 14:00:37.49 ID:iWOfGUHH
どんな話?

243 :デフォルトの名無しさん:2014/12/21(日) 14:57:18.13 ID:c9w7SJVP
enumerateを使って、各組み合わせに番号を振ることができました
すごい
Python様様です
今まで知らなかったのが悔やまれます

244 :デフォルトの名無しさん:2014/12/23(火) 22:16:30.69 ID: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"となりますが、これはたまたま?
それとも、律儀に全てのキーと値のペアをチェックしているのでしょうか。

245 :デフォルトの名無しさん:2014/12/23(火) 22:23:40.75 ID: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.

246 :デフォルトの名無しさん:2014/12/23(火) 22:32:50.19 ID:JQ5oTczV
どっちかっていうとstdtypes.htmlに書かれるべき事柄のような気もする

現にsetとfrozensetについては等値性の比較方法が書いてある
なんでdictは書いてないのかよく分からん

247 :244:2014/12/23(火) 22:35:52.17 ID:y5PKzINj
全てのキーと値のペアをチェックしているわけですね。
早速ありがとうございます。

教えて頂いたページから、2.7の方のドキュメントを見たら、
Mappings (dictionaries) compare equal if and only if their sorted (key, value) lists compare equal.
とあって、なぜかソートすることになっていて、興味深いです。

248 :デフォルトの名無しさん:2014/12/23(火) 22:56:27.32 ID:1p817Cux
ただ単にif and only ifと言ってるだけなんだから、
実際にソートされたリストを比較してるとは限らない

249 :デフォルトの名無しさん:2014/12/23(火) 22:57:40.37 ID: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 になるのかな?

250 :デフォルトの名無しさん:2014/12/26(金) 23:24:58.42 ID:/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]

のように分けたい場合はどうすればいいのでしょうか?

251 :デフォルトの名無しさん:2014/12/26(金) 23:32:01.21 ID:nageX3sv
釣りかな?

252 :デフォルトの名無しさん:2014/12/26(金) 23:40:44.86 ID:5KQP9Kr2
array[::3]
array[1::3]
array[2::3]

253 :デフォルトの名無しさん:2014/12/28(日) 08:05:52.17 ID:4QS7TPLU
>>252
これ冗談かと思ってたらマジだった
コロン2つというスライスの活用方法はドキュメントに載ってましたっけ?

254 :デフォルトの名無しさん:2014/12/28(日) 09:21:45.11 ID:6jddN626
馬鹿には読めない

255 :デフォルトの名無しさん:2014/12/28(日) 09:44:49.02 ID:ozX5G0tT
おれがPythonを初めて勉強しようと思った時に入門とかチュートリアル当たりを読んでたらそんな事書いてあった覚えがある
とりあえずドキュメント読めばいいんじゃないのか

256 :デフォルトの名無しさん:2014/12/28(日) 09:53:20.79 ID:kC+gL6KL
https://docs.python.org/3/library/stdtypes.html#sequence-types-list-tuple-range

257 :デフォルトの名無しさん:2014/12/28(日) 10:37:47.65 ID:4QS7TPLU
>>256
サンクス
恥ずかしながら、スライスにSTEPを指定できること自体知りませんでした
ライブラリのドキュメントばっかり見ていてはダメですね

258 :デフォルトの名無しさん:2014/12/28(日) 13:52:16.01 ID:6jddN626
えっ

259 :デフォルトの名無しさん:2014/12/28(日) 21:25:11.89 ID:FC75I7qD
range([start], stop[, step])やslice([start], stop[, step])のように、最初の引数にデフォルト値があるように定義するのってどうすればいいんでしょう
任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?

260 :デフォルトの名無しさん:2014/12/28(日) 21:29:14.77 ID:JNVMabVt
釣りかな?

261 :デフォルトの名無しさん:2014/12/28(日) 23:57:43.32 ID:yyfsiGm1
>>259
>任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?
そうだけど、なんでまたそんなことに

262 :デフォルトの名無しさん:2014/12/29(月) 02:06:20.88 ID:IvunUA3V
そのうち引数の区切りに:使いたいとか言い出しそう

263 :デフォルトの名無しさん:2014/12/29(月) 09:43:14.39 ID:n7jX+JFQ
>>261
ありがとうございますやっぱそうなりますか
xrangeにCのlongに収まらない数を入れたい場合につかう代替関数を定義しておこうと思ったんです
使い方はxrangeと同じにしておきたいな、と思いまして

264 :デフォルトの名無しさん:2014/12/29(月) 10:47:52.09 ID:/fu+2Q3X
generatorに汁

265 :デフォルトの名無しさん:2014/12/29(月) 14:41:33.17 ID:n7jX+JFQ
>>264
どういうことでしょう?
リストを返すつもりはなくxrangeオブジェクトももちろん作れないのでジェネレータにするつもりですが
ジェネレータにすると引数の課題が解決する案があるのでしょうか?

266 :デフォルトの名無しさん:2014/12/29(月) 16:00:06.38 ID:PZi3Q5CQ
それよりもpython3がお勧めだ

267 :デフォルトの名無しさん:2014/12/29(月) 16:01:43.94 ID: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])

268 :デフォルトの名無しさん:2014/12/30(火) 00:07:44.20 ID:CXcTj8nU
def foo(*args):
    n = len(args)
    if n == 1:
        pass
    elif n == 2:
        pass
    elif n == 3:
        pass

269 :デフォルトの名無しさん:2014/12/30(火) 17:04:23.25 ID: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が効いてるせいか上手くいく
大人しく構文エラー系プラグインは諦めるしかないのか・・・

270 :デフォルトの名無しさん:2014/12/30(火) 17:39:30.47 ID:9P21+37r
>>269
syntasticはこれじゃダメ?
https://github.com/scrooloose/syntastic#faqpython3

271 :デフォルトの名無しさん:2014/12/31(水) 04:11:56.40 ID:14cQZHHy
>>270
それ試したらうまくいった
でもpython2の環境でやるときはコメントアウトしないといかんな面倒だなと色々試してたら、
仮想環境ではsyntastic自体がエラー吐いて動かなくなった
syntastic入れ直しても直らないしお手上げ

他にpythonで開発するに当たって他にいいエディタがあったら教えてくれ

272 :デフォルトの名無しさん:2014/12/31(水) 17:47:51.00 ID:GF3OSzJC
syntasticつかってるけど2.7でも3.4でも問題ないね

273 :デフォルトの名無しさん:2015/01/01(木) 18:24:39.87 ID: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
日本語を含むテキストファイルを読み込ませたいです
これでデコードエラーを吐いてしまうんですがどうしたらいいんでしょうか?

274 :デフォルトの名無しさん:2015/01/01(木) 18:31:38.61 ID:z6L3lvtQ
釣りかな?

275 :デフォルトの名無しさん:2015/01/01(木) 19:05:40.59 ID:fSkzpZdc
>>273
質問するときはエラーメッセージもいっしょに貼ってね。
test.txtファイルの文字コードがutf-8じゃないんじゃないかな。
別の文字コード指定してみたら。

276 :デフォルトの名無しさん:2015/01/01(木) 19:10:16.68 ID:JHoRJU5D
>>273の続き
以下のブログからダウンロードできるpyファイルの170〜180行とほぼ同じなのに自分のは動きません

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

誰か教えてください

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

>>276は気にしないでください

278 :デフォルトの名無しさん:2015/01/01(木) 19:22:37.37 ID:2oZHmgl+
いや、元旦にプログラミングしてること自体もったいないと思うよ?
まあやってんだけどさ

279 :デフォルトの名無しさん:2015/01/01(木) 19:26:09.99 ID:+8s0q9XW
むしろプログラミングに没頭できるのでありがたい
起きてコード書いて腹が減ったらあめ玉舐めながら続けて
いつの間にかぶっ倒れて寝て…の繰り返し
まさに至福

280 :デフォルトの名無しさん:2015/01/01(木) 19:33:40.55 ID:X1h/FK2S
没頭も楽しいけど、ちゃんと寝た方が頭も冴えて効率良かったりする

281 :デフォルトの名無しさん:2015/01/01(木) 21:54:12.80 ID:LHyBpEGI
勉強したいんですが、オープンソースのアプリケーションって無いですか?

282 :デフォルトの名無しさん:2015/01/01(木) 21:59:14.57 ID:yTun5dKq
まずアプリーケーションの意味が分かってから質問に来るように(キリッ

283 :デフォルトの名無しさん:2015/01/01(木) 22:30:15.49 ID:FCYF6h54
>>281
PyPIやGitHub等にいくらでもあるけど
添付ライブラリのソース読むのもいいよ
自分のよく知ってるライブラリがあるなら尚更

284 :デフォルトの名無しさん:2015/01/01(木) 22:32:20.07 ID:LHyBpEGI
>>283
あざーす
見てみます

285 :デフォルトの名無しさん:2015/01/02(金) 22:46:05.90 ID:+rPr6kmK
for文を使ってある文字列リストの中の文字列の数だけ動作を繰り返したいのですが、
for i in listのiの部分は何にするべきでしょうか?

286 :デフォルトの名無しさん:2015/01/02(金) 23:03:00.94 ID:r6ijCflG
s

287 :デフォルトの名無しさん:2015/01/02(金) 23:22:24.79 ID:+rPr6kmK
ありがとうございます

288 :デフォルトの名無しさん:2015/01/02(金) 23:23:04.72 ID:wbZK8R83
>>285
何でもよい
forの一時変数だというのは、見れば誰でもわかることだからな

289 :デフォルトの名無しさん:2015/01/03(土) 19:59:48.68 ID:xipCHlwk
lxml ってcygwinでもインストール出来るでしょうか?
ちょっと困っています。

290 :デフォルトの名無しさん:2015/01/03(土) 20:34:38.88 ID:HZb4mH38
ちょっとした疑問なのですが、なぜリストのreverse()メソッドは逆順にしたリストを返さないのでしょうか?
返すことでメリットはあるもののデメリットがあるようには思えません。

そのためにどうしても無駄な1行が増えてしまいます。

291 :デフォルトの名無しさん:2015/01/03(土) 20:38:17.12 ID:+Pr3g4uI
>>290
list.reverseは破壊的だから

292 :デフォルトの名無しさん:2015/01/03(土) 20:42:15.31 ID:xBaFv3y/
>>290
たぶんあなたの用途としてはreversed(L)だとかL[::-1]を使えばいいんじゃないかな

293 :デフォルトの名無しさん:2015/01/03(土) 21:07:56.40 ID:0Z0PurY4
>>290
これのFAQやCommand-Query Separationを引いてる回答が勉強になる
http://stackoverflow.com/questions/9777122/

294 :デフォルトの名無しさん:2015/01/03(土) 21:16:35.46 ID:3rHEixuF
>>289
VirtualBoxにLinuxいれれば?
それかcolinux

295 :デフォルトの名無しさん:2015/01/03(土) 21:22:24.18 ID: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.

296 :デフォルトの名無しさん:2015/01/04(日) 00:38:02.16 ID:+pjKxmj1
append もそうだけど、インプレースであることを知らしめたいからって None を返すのは
オレ様仕様だと言われても仕方ないとは思う。
なんならそういうのの返り値を代入しようとしたら例外出すくらいにしたほうがはっきりしててわかりやすい。
そういう代入を拾うってどうやればいいのかよくわからんけど。

297 :デフォルトの名無しさん:2015/01/04(日) 01:12:41.97 ID:+rZjO+Yw
Noneを返さないのはどこの誰様仕様なんだ
©ファウラー?

298 :デフォルトの名無しさん:2015/01/04(日) 01:25:15.17 ID:+rZjO+Yw
とりあえず、俺様仕様が嫌なら人が作った言語なんか使わない方がいいぜ
俺様仕様が全くなくなったら世の中には同じ言語しかないはずだろ

299 :デフォルトの名無しさん:2015/01/04(日) 01:39:35.12 ID:/kYaXME3
仕様に不満があるなら、自分で改造して使えばいいじゃん
そのためのオープンソースなのだから

300 :デフォルトの名無しさん:2015/01/04(日) 16:42:55.74 ID:w2TCoU2v
reverse も reversed も
メソッドチェーンが好きな人には使いにくい
好みの問題だから仕方ない
郷に入っては郷に慣れるしかない

301 :デフォルトの名無しさん:2015/01/04(日) 17:03:47.53 ID:MTkS6+IW
メソッドチェーンって言葉使われるとrubyやjquery厨の好みの問題だろって言いたくなるけど
パイプラインと言うとunix哲学を反映した高尚な雰囲気が醸しだされるよな
自分は好みの問題じゃないと思うけど

302 :デフォルトの名無しさん:2015/01/04(日) 17:09:40.11 ID:w2TCoU2v
js でも Ruby でも return self しないメソッド作ったらおしまいですしおすし

303 :デフォルトの名無しさん:2015/01/05(月) 23:11:18.16 ID:cIvzrzOv
すいません
フレームワークを作るうえで参考になるサイトなどありますか?

304 :デフォルトの名無しさん:2015/01/05(月) 23:13:19.47 ID:Y6BCcXgq
えーと、フレームワーク「を」作るんですか?
フレームワークにもいろいろあります(Webアプリ、統計処理etc・・・)が、何のフレームワークですか?
フレームワークのソースコードは参考になりませんか?

305 :デフォルトの名無しさん:2015/01/05(月) 23:16:02.21 ID:DStV81SR
>>303
ちいたん

306 :デフォルトの名無しさん:2015/01/05(月) 23:19:21.41 ID:cIvzrzOv
>>304
クローラーを作ってるんですけど作っていくうちにフレームワークも作ってみたいって思ってしまって
scrapyの読もうとしたんですけど複雑すぎて難しかったので質問しました・・・

>>305
凄い参考になりそうです。
ありがとうございます。

307 :デフォルトの名無しさん:2015/01/08(木) 08:58:53.70 ID:hf9nU0p5
python3で文字列を指定した区切り文字で改行して
出力したい(できれば''のない形で)んですが、どうやればいいですか?
splitを使って分割はできたんですがその先がわかりません
例:"1月、2月、3月…"を
1月
2月
3月…と表示したいです

308 :デフォルトの名無しさん:2015/01/08(木) 09:02:10.21 ID:5iJyKn99
改行コードで区切り文字を置換してprintするのが手っ取り早いんじゃないですかね!

309 :デフォルトの名無しさん:2015/01/08(木) 09:26:37.64 ID:PNOntX36
禿げ死苦同意

310 :デフォルトの名無しさん:2015/01/08(木) 09:48:16.38 ID:hf9nU0p5
>>308-309
ありがとうございます、できました
初歩的なことで失礼しました

311 :デフォルトの名無しさん:2015/01/08(木) 13:06:39.90 ID: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'))

312 :デフォルトの名無しさん:2015/01/08(木) 13:15:36.83 ID:0An2B4E8
置換するのが普通なの?
splitしてjoinするのが普通じゃないの?
print "\n".join("1月、2月、3月…".split("、"))

313 :デフォルトの名無しさん:2015/01/08(木) 13:33:24.76 ID:5iJyKn99
おたくの言う普通の基準って何

314 :デフォルトの名無しさん:2015/01/08(木) 18:14:53.37 ID:0An2B4E8
世のプログラムで
ある同じ目的を達成するための手段のうち採用されている割合が多いもののこと
まあ実際にどれが多いかなんて集計してみないとわからんし無理だから、各人の経験則として

315 :デフォルトの名無しさん:2015/01/08(木) 18:31:11.44 ID:nx8fIEJ5
>>312
置換しちゃうと、後で(一週間後とか)仕様変更で元の文字列をもう一度使いたいときに、
置換してたのを忘れてる時が有るから、ちょっと要注意。
そういう意味で、俺はこの場合はsplit、join。
まあデータが小さければ、コピーして好きに変更でもいいんだろうけど。

316 :デフォルトの名無しさん:2015/01/08(木) 18:38:11.40 ID:XOR/qKrs
俺はprint(s.split('、'), sep='¥n')かな(大嘘

317 :デフォルトの名無しさん:2015/01/08(木) 19:07:15.67 ID:qIfkunGX
今日は鯖落ちまくりで暇だったので
https://paiza.io/projects/2qNzkOVEN5gKqjmXz9KkOw

318 :デフォルトの名無しさん:2015/01/08(木) 19:09:18.71 ID:X+YvwCCE
代入しなきゃいいだけだろ

319 :デフォルトの名無しさん:2015/01/08(木) 19:36:49.69 ID:5iJyKn99
経験則として代入するから
言ってて馬鹿らしい

320 :デフォルトの名無しさん:2015/01/08(木) 20:16:14.92 ID:qR5vxfrT
BeatifulSoup って使いずらくね。CSSセレクタかXpathのやつないの。

321 :デフォルトの名無しさん:2015/01/08(木) 20:48:28.31 ID:XOR/qKrs
XMLでXPathのサブセットが使えればいいならElementTree
HTMLとXMLでXPathとCSSセレクタが使いたければlxml
今時はもっといいのがあるかもしれない

322 :デフォルトの名無しさん:2015/01/08(木) 20:50:38.49 ID:fhc4fEXM
BeatifulSoupが使いにくいと言うより
そもそもDOMが使いにくい

323 :デフォルトの名無しさん:2015/01/08(木) 21:18:24.52 ID:GqWH++TS
pyqueryならHTMLerにも使いやすいで

324 :デフォルトの名無しさん:2015/01/08(木) 22:55:01.67 ID:J74p3gKV
import hogeA.hogeB as hogeB
from hogeA import hogeB
って同じです?

325 :デフォルトの名無しさん:2015/01/08(木) 23:26:22.09 ID:sfR//wXE
同じじゃない
hogeBがクラスや関数なら上の書き方ではImportError

326 :デフォルトの名無しさん:2015/01/08(木) 23:57:14.72 ID:KQjbFOAv
>>319
処理の流れによるのではないかね

327 :デフォルトの名無しさん:2015/01/09(金) 00:01:17.16 ID:J74p3gKV
ありがとうございます。たしかにそうですね。

328 :デフォルトの名無しさん:2015/01/09(金) 02:26:05.19 ID:Zx8Mee6A
>>269,>>271だけど日を改めてやってみたらなんとなく原因がわかった

syntastic自体にエラーが出て機能しないのは、どうやらjmcantrell/vim-virtualenvとsyntasticが競合してるみたいだった
ただUbuntuで似たような環境を作ったときはなぜか問題なかった
syntasticに仮想環境のPythonを認識させるのは>>270で上手くいった

329 :デフォルトの名無しさん:2015/01/09(金) 17:28:59.68 ID:Q82CWQ0g
pythonやpygameではメイリオは使えないのでしょうか?

pygame.font.get_fontsでmeiryomeiryomeiryouimeiryouiitalicというメイリオのフォントがPC中にあると確認できたのですが、
pygame.font.SysFont("meiryomeiryomeiryouimeiryouiitalic", 10)という感じでフォントをセットしても起動しても画面が真っ黒のままで動きません
他のフォントにするとちゃんと動くのでコーディングエラーはないと思います
どうしたらいいんでしょうか?

330 :デフォルトの名無しさん:2015/01/09(金) 17:44:54.43 ID:ERxK07PY
'meiryo'だけでよくね?

331 :デフォルトの名無しさん:2015/01/09(金) 17:52:21.39 ID:Q82CWQ0g
meiryoという感じで区切ってしまうと、日本語が表示されなくなり、フォント自体もおそらくメイリオではないデフォルトのフォントになってしまいます
ちなみに、画面が真っ黒のままでもエラーメッセージ等は出てきてません

332 :デフォルトの名無しさん:2015/01/09(金) 17:59:20.57 ID:JoT/J+XX
うちも一緒だった (win8.1)

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

pygame.font.SysFont("msminchomspmincho", 10)
なら通る

333 :デフォルトの名無しさん:2015/01/09(金) 18:22:02.96 ID:JoT/J+XX
copy c:\windows\fonts\meiryo.ttc .

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

これならうまくいくな

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

fontpath = pygame.font.match_font('meiryomeiryoboldmeiryouiboldmeiryouibolditalic')
font = pygame.font.Font(fontpath, 10)

335 :デフォルトの名無しさん:2015/01/09(金) 18:25:51.42 ID:ERxK07PY
かぶっちゃったww

336 :デフォルトの名無しさん:2015/01/09(金) 21:45:48.85 ID:cpWCapOI
フォントフォルダにパスとおせばいいんじゃねえのか

337 :デフォルトの名無しさん:2015/01/10(土) 06:04:13.05 ID:rmYnkCrg
Python3系は、Win8でも動くの?

338 :デフォルトの名無しさん:2015/01/10(土) 06:06:25.45 ID:n7roigOl
>>337
動くよ

339 :デフォルトの名無しさん:2015/01/10(土) 07:22:52.05 ID:gS0g5gRi
font = pygame.font.Font(fontpath, 10, bold=True, italic=True)
これも効かないよね

340 :デフォルトの名無しさん:2015/01/10(土) 10:11:08.17 ID:8jyfhdtq
font = pygame.font.Font(fontpath, 10)
font.set_bold(True)
font.set_italic(True)
font.set_underline(True)

341 :デフォルトの名無しさん:2015/01/11(日) 00:25:51.82 ID:CAsTcRy+
>>317 さんと >>329 さんに inpire されたので
鯖監視ツール書いてみたよ
https://paiza.io/projects/K-MM5FG-jwflANF-3AnFDQ

342 :デフォルトの名無しさん:2015/01/11(日) 14:08:16.48 ID: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

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

344 :デフォルトの名無しさん:2015/01/11(日) 20:59:21.92 ID:p7O2XLcs
if 1 == 1:
print 1

これを2行に分けて入力してみろ
できるだろ

345 :デフォルトの名無しさん:2015/01/11(日) 20:59:23.22 ID:hXDAFv79
ドットインストールでも見たらいいんじゃないですか(投げやり)

346 :デフォルトの名無しさん:2015/01/11(日) 20:59:33.10 ID:0FZ9h/6J
>>343
解説
http://dotinstall.com/lessons/basic_python_v2
公式のチュートリアル
http://docs.python.jp/2/tutorial/index.html

pythonの前にグーグルでの調べ方を勉強しましょう
初心者なので、は理由になりません
このスレを少しでも読めばわかると思いますが、そんなレベルから手とり足取り教えてもらう人も教えている人もいません
まず自分で「勉強」してください
それでわからなかったら質問してください
勉強頑張ってね

347 :デフォルトの名無しさん:2015/01/11(日) 21:08:05.04 ID:uJ5bpItj
ここに来れたのに見つからないわけないしね

348 :デフォルトの名無しさん:2015/01/11(日) 21:31:32.06 ID:kmCRN0/L
>>343みたいな質問もたまにある分には
同様のレベルにある人の励みにもなるし良いかなと思ったりする

349 :デフォルトの名無しさん:2015/01/11(日) 21:31:45.41 ID:WpzutThS
Pythonスクリプトをファイルにして実行する方法を
まず調べてみるといいのでは?
公式ドキュメントだといきなりインタープリタ出てきて
ナンカコレジャナイって事態に陥りがちだよね。

350 :デフォルトの名無しさん:2015/01/11(日) 21:34:00.21 ID:hXDAFv79
まあでも解説がポンポン出てくるだけいい世の中になったわ
俺も今頃に思春期を迎えたかったな

351 :デフォルトの名無しさん:2015/01/11(日) 21:55:22.92 ID:vLTVs/HV
引きこもってからpythonの勉強始めてたけどたしか5年前はまったく情報がなかったよ

352 :デフォルトの名無しさん:2015/01/11(日) 22:30:48.30 ID:sGm64abe
すいません、

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

for i in net4:
print(i)

の出力をファイルに書き込みたいのですが、どの様にすればいいのでしょうか。

353 :デフォルトの名無しさん:2015/01/11(日) 22:50:42.95 ID:kmCRN0/L
printで欲しい値が出力できてるんならリダイレクトでいいんじゃないか
python print_ipaddr.py > result.txt のように

354 :デフォルトの名無しさん:2015/01/11(日) 23:19:34.43 ID:jQsmpaL2
>>343
一番簡単なのは、Pythonインタープリタを実行して、
その中でソースコードを書いて実行する

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

「みんなのPython 第3版」を読んで

355 :デフォルトの名無しさん:2015/01/11(日) 23:44:11.83 ID: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)

356 :デフォルトの名無しさん:2015/01/12(月) 11:28:11.80 ID: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()を使ってください

357 :デフォルトの名無しさん:2015/01/13(火) 18:20:42.59 ID: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()

358 :デフォルトの名無しさん:2015/01/13(火) 18:28:57.46 ID:eeRd4u2J
ipython入れて補完できるか確認してみて

359 :デフォルトの名無しさん:2015/01/13(火) 19:23:32.17 ID:j8KuOTF/
自己解決した
解決する前はbackendがaggになっててたぶんそれのせいで上手くできなかったんだと思う
そんでtgkで起動するためにtkinterを入れてmatplotlib入れ直したらできた

そもそもpyenvでtkinterが上手く入ってなかったみたいで、必要そうなもの色々とインストールしてpyenvのpythonのバージョンを入れ直してようやくtkinterが動いたんだけどね

360 :デフォルトの名無しさん:2015/01/13(火) 21:44:56.75 ID:8u//ndKD
そりゃあtkはpythonに含まれてないからね

361 :デフォルトの名無しさん:2015/01/14(水) 09:43:45.67 ID:EnBoJmyV
エラーが不親切(というかそもそも出てないんじゃね)って意味なら同意

362 :デフォルトの名無しさん:2015/01/14(水) 18:29:08.04 ID:GE1H21pw
matplotlibはバックエンドどれにするかが悩みどころで
結局使わなくなっちゃったなあ

363 :デフォルトの名無しさん:2015/01/14(水) 18:35:27.23 ID:/jk0RY/v
matplotlib とか basemap とか入れたら
いつの間にか httplib2 が古いバージョンに置き換えられてたでござる

364 :デフォルトの名無しさん:2015/01/14(水) 18:37:26.08 ID:/jk0RY/v
>>362
単体なら問題ないのに
他の色んなモジュールと組み合わせると動かなくなるってのが困るよねー

365 :デフォルトの名無しさん:2015/01/14(水) 19:04:19.55 ID:IigJrcbt
あるある

366 :354:2015/01/15(木) 02:22:06.28 ID:KHeQBVOf
>>354
訂正
>一番簡単なのは、Pythonインタープリタを実行して、
>その中でソースコードを書いて実行する

インタープリタではなく、インタラクティブシェル。
またそれを高機能にした、IPythonもある

367 :デフォルトの名無しさん:2015/01/26(月) 02:28:32.17 ID:fdPK5fY8
if A != Bとif not A == Bは同じ意味ですか?

368 :デフォルトの名無しさん:2015/01/26(月) 02:58:59.75 ID: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
'''

369 :デフォルトの名無しさん:2015/01/26(月) 03:24:48.29 ID: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
'''

370 :デフォルトの名無しさん:2015/01/26(月) 06:11:56.81 ID: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)

371 :デフォルトの名無しさん:2015/01/26(月) 16:45:12.25 ID:34ZvbZ5E
モジュールとライブラリってどう違うの?

372 :デフォルトの名無しさん:2015/01/26(月) 17:11:41.13 ID:OM9k+a/d
importの対象であり名前空間を提供するモノとしての側面を強調するならモジュール
お役立ち関数/クラス群としてならライブラリってとこじゃないか

373 :デフォルトの名無しさん:2015/01/26(月) 23:55:57.91 ID:nAw6e05Y
>368-370
ありがとうございます!

374 :デフォルトの名無しさん:2015/01/27(火) 03:05:51.48 ID:JE8N2DrC
ある特定少数のソフトウェア向けの何かならモジュール
ある程度幅広いソフトウェア向けの何かならライブラリ

375 :デフォルトの名無しさん:2015/01/27(火) 11:29:49.50 ID:t2UBLXgk
日本語でおk

376 :デフォルトの名無しさん:2015/01/27(火) 20:51:44.07 ID:OJ5SgUcW
>>371
もぢゅるもあつまればらいぶらりとなる

377 :デフォルトの名無しさん:2015/01/28(水) 01:19:49.99 ID:s4FF0JvS
アーカイブは、ライブラリですか?

378 :デフォルトの名無しさん:2015/01/28(水) 02:46:40.94 ID:Tm33obPu
アーカイブは書庫じゃね
zipとかrarとか

379 :デフォルトの名無しさん:2015/01/28(水) 02:50:13.49 ID:iRn2n6c7
まずは単語の意味を調べろ。
話はそれからだ。

380 :デフォルトの名無しさん:2015/01/28(水) 07:56:59.24 ID:U+4OJYJI
オブジェクトファイルをアーカイブコマンドarでまとめたものを
ライブラリとすることもあるけど、
それはそういう扱いをしているということでな

381 :デフォルトの名無しさん:2015/01/28(水) 08:26:27.39 ID:h5fNpxJ2
sys.path.add() で .tgz とかも追加出来るお

382 :デフォルトの名無しさん:2015/01/28(水) 08:27:05.37 ID:h5fNpxJ2
まちがえた
x sys.path.add()
o sys.path.append()

383 :デフォルトの名無しさん:2015/01/28(水) 08:39:12.31 ID:OirFWuRy
.zipじゃなくて.tgz?

384 :デフォルトの名無しさん:2015/01/28(水) 09:04:14.35 ID:h5fNpxJ2
どっちでもいけるで

385 :デフォルトの名無しさん:2015/01/28(水) 09:04:46.21 ID:h5fNpxJ2
あと egg も中身は zip だったり tgz だったり

386 :デフォルトの名無しさん:2015/01/28(水) 09:13:02.21 ID:OirFWuRy
とんとん。調べてみるお

387 :デフォルトの名無しさん:2015/01/28(水) 13:02:51.65 ID:OirFWuRy
調査報告
.py入りの.zipのimportはうまくいくけど.tgzはImportErrorだった

388 :デフォルトの名無しさん:2015/01/28(水) 13:30:34.09 ID:U/zfeC5A
馬鹿には無理

389 :デフォルトの名無しさん:2015/01/28(水) 14:11:24.25 ID:ncVbnS0H
インポートできる名前空間の単位(=定数や関数を定義したファイル名)がモジュール

再利用可能な形にまとめたものがライブラリ(Pythonとしての言葉の定義はないのでは?)
一つのモジュールでライブラリということもあるだろうし
ライブラリの中に関連した複数のモジュールがある場合もあるだろうし
標準ライブラリというようにモジュールのまとまりを指すこともある

390 :デフォルトの名無しさん:2015/01/28(水) 19:44:20.03 ID:93RLbcHP
え、お前のPythonはgzをimportできないの?
偽者だよそれ

とか言ってみようかと思ったけど
勇気なし

391 :デフォルトの名無しさん:2015/01/28(水) 19:48:32.43 ID:nz1FZefG
mutiprocessingを使っていて
queueのサイズを確認する方法ってありますか?

392 :デフォルトの名無しさん:2015/01/28(水) 19:54:05.16 ID: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.

393 :デフォルトの名無しさん:2015/01/28(水) 19:55:51.11 ID:zZ5T+Bp9
え、え、え、ええー、ええ、え、

394 :デフォルトの名無しさん:2015/01/28(水) 20:04:13.99 ID:93RLbcHP
すみません

395 :デフォルトの名無しさん:2015/01/28(水) 20:18:14.56 ID:OirFWuRy
やだこのスレこわい

396 :デフォルトの名無しさん:2015/01/28(水) 22:45:26.89 ID: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です

397 :デフォルトの名無しさん:2015/01/28(水) 22:49:34.83 ID:SqboHAEq
そのコードを実行したときどうなってほしいのか書いてもらえないだろうか

398 :デフォルトの名無しさん:2015/01/28(水) 22:55:11.45 ID:q1oY2hNP
そのモジュールの使い方は知らんがimage.jpgが無えって言われてるんじゃないの

399 :デフォルトの名無しさん:2015/01/28(水) 22:55:36.45 ID:Pj5TPfOs
>>397
コマンドプロンプトにコマンドを打ちこんだような挙動をさせたいです
元々exiftoolという外部ソフトをpythonから動かそうとしていたのですがわかりづらくなるかと思い単純なコマンドにしました
一昨日からプログラミングを始めた身なので変なこと言ってるかもしれませんがお願いします

400 :デフォルトの名無しさん:2015/01/28(水) 22:57:43.90 ID:Pj5TPfOs
>>398
デタラメなパスを打ち込んでもフルパスを打ち込んでも同じエラーがでます

401 :デフォルトの名無しさん:2015/01/28(水) 23:01:27.57 ID:OirFWuRy
check_output([exiftoolへのフルパス, "image.jpg"]) の実行例を省略しないで貼ってくれないか

402 :デフォルトの名無しさん:2015/01/28(水) 23:25:49.39 ID: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で正常に動くコマンドを打ち込んでもこのエラーと同じものが出てきます

403 :デフォルトの名無しさん:2015/01/28(水) 23:31:31.66 ID:93RLbcHP
C:\\image\x07bc.jpg

なんかおかしくね

404 :デフォルトの名無しさん:2015/01/28(水) 23:35:45.24 ID: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'

405 :デフォルトの名無しさん:2015/01/28(水) 23:37:27.85 ID:93RLbcHP
いやいやいやエスケープ忘れてるって

406 :デフォルトの名無しさん:2015/01/28(水) 23:42:15.92 ID:93RLbcHP
raw文字列使うといいと思いますよ

subprocess.check_output([r"C:\Program Files (x86)\exiftool-9.82\exiftool.exe", r"C:\image\abc.jpg"])

407 :デフォルトの名無しさん:2015/01/28(水) 23:43:40.70 ID:SqboHAEq
エスケープシーケンスで引っかかったのか
rawでない文字列の中で\は通常印字しない特殊な文字を表わすために使う
\として書く場合は2つ重ねて\\と書かなければならない

408 :デフォルトの名無しさん:2015/01/28(水) 23:44:40.11 ID:93RLbcHP
軽く罠だよね
\記号の後ろがエスケープシーケンスでない場合エラーにならずスルーするの
この仕様で誰が得をしたのか未だによく分からない

409 :デフォルトの名無しさん:2015/01/28(水) 23:48:19.26 ID:OirFWuRy
¥a はエスケープシーケンスでベルだよ

410 :デフォルトの名無しさん:2015/01/28(水) 23:49:35.88 ID:Pj5TPfOs
>>405
うわああああああ!!!!ありがとうございます!!
IDLEのバグかと思ってました・・・
バックスラッシュをスラッシュに変えたらうまく動きました
ああ・・・

411 :デフォルトの名無しさん:2015/01/28(水) 23:50:39.16 ID:93RLbcHP
警告するようなら最初の\Pでとまるっしょ
そこで「認識できないエスケープシーケンスです」って出たら「知らねー単語だわ」だってググるっしょ
そういう意味よ

412 :デフォルトの名無しさん:2015/01/28(水) 23:52:57.36 ID:93RLbcHP
× 警告するようなら
○ エラーになるようなら

そうじゃなくても凡ミスによるエスケープ忘れは高確率で止められるよね

413 :デフォルトの名無しさん:2015/01/28(水) 23:56:07.55 ID:Pj5TPfOs
>>411
仰るとおりで...
cmdで動くなら中身に問題はないだろうという先入観がありました
恐らく聞かずに一人では気付かなかったと思います
おかげさまで画像収集が捗ります

414 :デフォルトの名無しさん:2015/01/29(木) 15:06:56.93 ID:M+KmZpw4
c apiで可変長の引数を受け取り、シーケンシャルに処理するにはどうしたらいいでしょうか?
pythonコードだと、*argsで受け取るのをc apiでやりたい

PyArg_の関数ではなく、タプルとして処理できることはわかってますが、それご正しいのか分からない

415 :デフォルトの名無しさん:2015/01/29(木) 15:08:58.70 ID:8k6H8xeW
それご正しい

416 :デフォルトの名無しさん:2015/01/29(木) 15:10:46.28 ID:8k6H8xeW
http://grokbase.com/t/python/python-ideas/145qha8ygm/faster-pyarg-parsetupleandkeywords-kwargs

417 :デフォルトの名無しさん:2015/01/30(金) 01:09:55.87 ID:s163V8A4
>>415
おおおありがとう
python c APIで期待する結果を得ること自体は、apiが直感的なので難しくないけど
こういう時こうする的なtipsがあまりなくて、けっこう不安です

418 :デフォルトの名無しさん:2015/01/30(金) 16:14:35.48 ID:Oq+uAeyG
最新版libgit2をインストール
cmake .
make
sudo make install

pygit2をインストール
pip install pygit2

この流れではpygit2のインストールに失敗しました
どうやってインストールできるか教えてください
Debian

419 :デフォルトの名無しさん:2015/01/30(金) 18:55:08.68 ID:ETWlTvgQ
だからエラー読め質問するならエラー貼れっていってんじゃねえかよ

420 :418:2015/01/30(金) 19:30:56.43 ID:JD65IaYR
先輩すいません。
エラーはこれですhttp://ideone.com/io5P8C

421 :デフォルトの名無しさん:2015/01/30(金) 19:45:17.65 ID:ETWlTvgQ
libgit2を入れたって書いてあるけど他の外部依存ライブラリは入れたのか?

http://www.pygit2.org/install.html
ここのRequirementsにcffi 0.8.1+も必要って書いてあるが

422 :418:2015/01/30(金) 19:57:46.76 ID:o5DeHUoq
入れてませんでした。pip install cffiして入れた後にpip install pygit2やりましたがエラーでインストールできません
http://ideone.com/ZRhtKq

423 :デフォルトの名無しさん:2015/01/30(金) 20:21:22.21 ID:ETWlTvgQ
Debianは64bit?

424 :418:2015/01/30(金) 21:37:01.52 ID:/koRDY8e
wheezy 64bitです

425 :デフォルトの名無しさん:2015/01/30(金) 22:24:15.18 ID:ETWlTvgQ
ソースコードが64bit環境に対応してないんじゃないかと思う
手間だけど32bitOSを使えば上手くいくかもしれない

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

俺にはこれ以上分からん

426 :デフォルトの名無しさん:2015/01/30(金) 22:41:10.32 ID:/koRDY8e
となると厳しいので諦めます
調べていただきありがとうございます

427 :デフォルトの名無しさん:2015/01/31(土) 19:59:50.02 ID:C4epDZHv
struct git_checkout_optionsのサイズが違うって出てる
libgit2は開発版じゃなくてv0.22.1の方を使えばうまくいくんじゃない

428 :デフォルトの名無しさん:2015/02/01(日) 14:42:33.21 ID:uQt+NoZh
pygameがないと動かないのでエラーになってますが、こういう文字列を画像にして表示するプログラムを書きました

http://ideone.com/tNXFHQ

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

何かいい方法はないでしょうか

429 :デフォルトの名無しさん:2015/02/01(日) 16:25:19.85 ID:k8MZj5zh
キャッシュ

430 :デフォルトの名無しさん:2015/02/01(日) 16:54:47.36 ID:uQt+NoZh
キャッシュ?

431 :デフォルトの名無しさん:2015/02/01(日) 17:44:16.23 ID:JrPrq0o+
>>428
ほとんど同じような物を作ったことがあります

今だって text_image で持っているものを blit で描画できていますよね
何がしたいのかもう少し

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

433 :デフォルトの名無しさん:2015/02/01(日) 19:22:26.67 ID:ymu35Jul
見た感じ、drawにself.renderを加えても際限なく描画されるようには見えない

54行目から56行目の間に書かなければ

434 :デフォルトの名無しさん:2015/02/01(日) 19:35:41.85 ID:uQt+NoZh
>>433
def draw():の後に入れてみましたがやはりダメでした

http://i.imgur.com/GOwjBhI.png

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

その場合は、画面管理クラスを別に作った方がよさそうです

436 :デフォルトの名無しさん:2015/02/01(日) 20:36:19.28 ID:y6cHpPmK
drawの中でrender呼んだらself.text_imagesに要素を追加し続けるから
とんでも座標で描画を続けたのが原因なんじゃないの

437 :デフォルトの名無しさん:2015/02/01(日) 20:48:26.84 ID:uQt+NoZh
>>435>>436
お陰様で後は自力で何とかできそうです
有り難うございました!

438 :デフォルトの名無しさん:2015/02/02(月) 15:06:57.29 ID:m/5VlGOo
python.jpに求人情報とかやめとけよ。。。

439 :デフォルトの名無しさん:2015/02/02(月) 15:13:47.28 ID:EgeABrdT
やめるも何も、出す奴いないよ

440 :デフォルトの名無しさん:2015/02/02(月) 15:19:04.42 ID:lRVyPaO0
出す奴いない
求人はすでに載ってるから
応募するバカはいないって意味でいいのかな

441 :デフォルトの名無しさん:2015/02/03(火) 01:37:03.68 ID: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
になる

権限の問題だと思うんですけど、一括で変更する方法が知りたいです
コマンドプロンプトでできた気はするのですが

442 :デフォルトの名無しさん:2015/02/03(火) 01:48:43.72 ID:bJajSEki
>>441
c:/windows/system32は書き込みに管理者権限が必要で権限変更するのは論外
他の場所(c:/workとか)にディレクトリ作ってcdで移動してそこで作業すればいい

443 :デフォルトの名無しさん:2015/02/03(火) 09:17:55.84 ID:TBm/nFR4
>>441
ぼくはねD:¥programfilesフォルダを作って全部そこにエディタやらIDEやら言語やらオフィスやら全部インストールしてますよ
システムフォルダを避けるのはWindowsの鉄板ですよ

444 :デフォルトの名無しさん:2015/02/03(火) 14:55:47.62 ID:00JNNVea
避けてても C:\hoge\common とかにインスコする糞アプリもある VS とか
VS とか VS とか

445 :デフォルトの名無しさん:2015/02/03(火) 15:06:26.79 ID:1xtDyTMh
一つのファイル内にpythonのバージョン2.7と3.4を分けて書く方法ありませんか?
例えば
2.7用にprint 1
3.4用にprint(1)
みたいにバージョン特有のコードが書きたいんです。

446 :デフォルトの名無しさん:2015/02/03(火) 15:22:21.92 ID:TZB29Y9v
future importを検討しろ

447 :デフォルトの名無しさん:2015/02/03(火) 17:59:14.94 ID:RUeaq0xn
Ctrl+zで終了させるときに特定の処理を行いたいんですが
http://stackoverflow.com/questions/9174799/how-to-prevent-user-stopping-script-by-ctrl-z
ここに載ってるsignalを使った方法をためしても実行されませんでした
何か解決方法を教えてください

448 :デフォルトの名無しさん:2015/02/03(火) 18:52:31.46 ID:bJajSEki
>>447
OSはUNIX系じゃなくWindows?
だったらEOFErrorを捕まえるとかになるんだろうか

449 :デフォルトの名無しさん:2015/02/03(火) 19:28:28.28 ID:RUeaq0xn
UNIXですLinux

450 :デフォルトの名無しさん:2015/02/03(火) 19:45:37.25 ID:zRw9wgG/
何が起きたのか書きなよ
そこに載ってるサンプルを動かしてctrl+zするとどうなったの
何も起きずに動作し続ける?
一時停止してしまう?
何も表示せずに終了する?

451 :デフォルトの名無しさん:2015/02/03(火) 20:02:39.16 ID:bJajSEki
>>449
ついでにOSやPythonのバージョン、ターミナル何使ってるかとか環境も詳しく

452 :デフォルトの名無しさん:2015/02/03(火) 20:03:03.13 ID:4Ne+gXZ7
>>445
sysモジュールのsys.version_infoでバージョン番号を取得できるから、
プログラムの頭で取得しておいて、あとはこれを使ってif文で分岐したらいい。
ただしprintはprint関数で統一する必要がある。
3で実行するときにprint文が混じってると実行以前に文法エラーでこける。

453 :デフォルトの名無しさん:2015/02/03(火) 20:12:23.60 ID:4Ne+gXZ7
>>445
投稿してから思い出したけど他にも文法レベルで2と3で互換性なくて
しかもprintのようには2と3で共通して使える書き方がないのがあったような気がする
だからそういう場合はこの方法は使えないな ごめん

454 :デフォルトの名無しさん:2015/02/03(火) 20:31:32.93 ID:zRw9wgG/
どうしてもバージョンで分岐させたければ
文字列でバージョン違いの文法を入れて置いてevalすればなんとかなる
関数で各eval処理をラップしとけばそれなりに違和感ないコードになるんじゃね

455 :デフォルトの名無しさん:2015/02/03(火) 20:35:54.43 ID:zK4Db0E5
six使えんの?

456 :デフォルトの名無しさん:2015/02/03(火) 20:39:15.68 ID:jTfu7rnB
>>455
まだしたことないです

457 :447:2015/02/03(火) 21:26:13.21 ID:lVjwn/n/
あ、すいませんちょっと特定の環境っぽいので質問取り消します

458 :デフォルトの名無しさん:2015/02/03(火) 21:50:16.32 ID:bJajSEki
特定の環境が原因ぽかったらそれ書いてくれないと
回答者やROMってる人の助けにならないぞ

459 :447:2015/02/03(火) 22:40:19.19 ID:hLrKLBVf
確認したいことがあるので1日待ってください

460 :デフォルトの名無しさん:2015/02/03(火) 23:07:39.51 ID:bJajSEki
>>459
面倒くさいかもしれないけどよろしく

461 :デフォルトの名無しさん:2015/02/04(水) 00:17:16.42 ID:E92Eb1xr
本当のトラブルをお見せしますよ

462 :デフォルトの名無しさん:2015/02/04(水) 09:25:13.37 ID:fF80T871
print() と print を使い分ける wrapper で printf() ってのを作って
そっちだけ使うように書けば良い

463 :デフォルトの名無しさん:2015/02/04(水) 09:36:28.27 ID:qNYKp0Ci
map使う場合は?イテレータ返すか返さないかになるけどどうしたらいいの?

464 :デフォルトの名無しさん:2015/02/04(水) 09:46:49.93 ID:2cmJ/TzB
from itertools import imap as map

465 :デフォルトの名無しさん:2015/02/04(水) 12:58:12.77 ID:rvhcdKCh
pythonのクラス仕様ってphpよりも貧弱なのが気になってる

466 :デフォルトの名無しさん:2015/02/04(水) 13:00:05.45 ID:2cmJ/TzB
無様なことを強力というならそうかもね

467 :デフォルトの名無しさん:2015/02/04(水) 16:11:54.38 ID:EhRerTxk
昨日のctrl+zですがこういうことでした
http://peace.2ch.net/test/read.cgi/unix/1413122189/611-

468 :デフォルトの名無しさん:2015/02/04(水) 17:26:53.56 ID:Hvq8z1KY
特定の環境でもなんでもなく
ただVim上でプログラムを動作させてctrl+zしたらプログラムじゃなくてVimがそれを受け取ってバックグラウンドになっていたのを
プログラムが落ちたと勘違いしていたということね

469 :デフォルトの名無しさん:2015/02/04(水) 22:31:45.96 ID:ZzO5YX2o
>>467
vimがバックグラウンドに移行するのはいいとして
>>447のpythonで書いたシグナルハンドラも実行されてない?

470 :デフォルトの名無しさん:2015/02/05(木) 21:27:51.71 ID:gy1V0AJT
>>442-443
ご返信ありがとうございました
確かにsystem32でゴニョゴニョすること自体間違ってますよね
初心者過ぎてすいません

471 :デフォルトの名無しさん:2015/02/06(金) 00:02:22.85 ID:OhT+VurR
pythonで、連立方程式は解けるんでしょうか?
例えば、
"a+b=6"
"a-b=2"
のように式が文字列で与えられたら、
a=5
b=3
という解を導きたいです。

472 :デフォルトの名無しさん:2015/02/06(金) 00:05:53.24 ID:LVKoZcPO
pythonに限らずプログラミング言語はどれもできるよ

473 :デフォルトの名無しさん:2015/02/06(金) 00:13:41.62 ID:OhT+VurR
>>472
pythonではどうやるんでしょうか?
evalでは上手く行かなかったので。

474 :デフォルトの名無しさん:2015/02/06(金) 00:16:47.41 ID:gUq3o64m
>>471
Sympy というのがあってな
まずはオンラインで試してみるがよろし
http://live.sympy.org/

>>> a, b = symbols('a b')
>>> solve([a + b - 6, a - b - 2])
{a:4,b:2}

475 :デフォルトの名無しさん:2015/02/06(金) 00:31:12.53 ID:AimmmYil
>>474
所見
おもろい

476 :デフォルトの名無しさん:2015/02/06(金) 00:51:51.42 ID:OhT+VurR
>>474
ありがとうございます!
こんな事が出来るのが不思議ですね。

477 :デフォルトの名無しさん:2015/02/06(金) 13:19:38.69 ID:kKwSzCeq
>>476
行列で処理する連立方程式とかで数学ぐぐれば
一般解見れるよ

xの二次方程式の解とかと同じぐらいワンパターンで処理できる

478 :デフォルトの名無しさん:2015/02/06(金) 13:58:51.52 ID:+HsTLx7S
中学生にも門戸が開かれているpython

479 :デフォルトの名無しさん:2015/02/06(金) 14:24:05.89 ID:dY44XvYt
どういう意図で言ってるのか知らんけどPython for kidsなんて本も出てるくらいだからまったく不思議な点はないんだよなあ

480 :デフォルトの名無しさん:2015/02/06(金) 14:40:14.58 ID:90DsWNY6
開かれてない言語って何?w

scratchは5才からって本があるけどw

481 :デフォルトの名無しさん:2015/02/06(金) 23:04:41.99 ID:c0NRoLXk
世界一の難解さを目的に作られたMalbolgeとかかな
普通の言語ではないが

482 :デフォルトの名無しさん:2015/02/08(日) 18:13:20.80 ID:Yey/sLzg
どなたかアドバイスお願いします。
pythonまったくの初心者です。CENTOS6で、python2.6を使っています。

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

同様の経験されている方はおられますでしょうか。

483 :デフォルトの名無しさん:2015/02/08(日) 19:19:24.27 ID:hk971H9N
sys.stderr.write("prompt>> ")
print(sys.stdin.readline())

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

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

userinput
userinput

prompt>>

と出力されてしまいます.
3.4でも2.7の様に動かす方法は無いでしょうか?
標準入力以外のファイルオブジェクトからも入力したいので組み込み関数のinputを使うことを考えていません。

484 :デフォルトの名無しさん:2015/02/08(日) 19:32:09.79 ID:tUjKNEQ0
>>482
codec の確認とか
encode に error='ignore'
あとちゃんと例外補足汁

485 :デフォルトの名無しさん:2015/02/08(日) 19:34:53.55 ID: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)

こんな感じでバッファリングされなくする事はできる。

486 :デフォルトの名無しさん:2015/02/08(日) 19:35:11.54 ID:tUjKNEQ0
あと単位時間当たりのAPI呼び出し回数制限越えるとロックが有るな
ひどいとそのまま垢凍結まで逝く

>>483
flush()

487 :デフォルトの名無しさん:2015/02/08(日) 21:58:45.05 ID: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.']
品詞と

488 :デフォルトの名無しさん:2015/02/08(日) 22:08:48.85 ID: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の外すこととタブ区切りの出力がしたいのですが、どうすればよいでしょうか。。

489 :デフォルトの名無しさん:2015/02/08(日) 22:17:20.08 ID:iT8Ynbpt
>>488
一個づつprintすればタブ区切りになってるから何も問題ない。
for t in tags: print t
やってみ

490 :デフォルトの名無しさん:2015/02/09(月) 02:30:34.77 ID:LINxt01k
>>485
仕様とバグの区別ができない人?

491 :デフォルトの名無しさん:2015/02/09(月) 05:36:57.48 ID:0p2uaiNK
stderrが行バファリングしてるとか驚き最大限の法則

492 :デフォルトの名無しさん:2015/02/09(月) 07:43:46.29 ID:iJdyGTL3
>>490
仕様がバグらないと思ってるひと?

493 :デフォルトの名無しさん:2015/02/09(月) 08:07:54.75 ID:aQfcHbG+
>>490はバグという言葉に反応して大好きなパイソンが貶されてるとでも思ったん?

494 :デフォルトの名無しさん:2015/02/09(月) 08:09:53.18 ID:cxy5oANg
コミッターも挙動にびっくりしてるのが面白い
http://bugs.python.org/issue13597

495 :デフォルトの名無しさん:2015/02/09(月) 12:02:19.52 ID:LINxt01k
なるほど仕様とバグの区別が付かないのか

496 :488:2015/02/09(月) 12:27:31.03 ID:99yenudv
>>489
ありがとうございます
正規表現だとタブは\tでしたね、、とんちんかんな質問でした

497 :デフォルトの名無しさん:2015/02/09(月) 12:31:28.62 ID:pXLa1zoS
python -u じゃだめなん?

498 :デフォルトの名無しさん:2015/02/09(月) 19:52:09.93 ID:+MNuqsBS
処理の早いファイルの可逆暗号で手軽な方法ないでしょうか。
入門ページとかだとMD5やらSHA1が紹介されてるものの、これはただのハッシュ直ですよね?

base64→rot13みたいな隙だらけなものでもいいのですがこれだとファイル容量が膨らみすぎるため、
blowfishのようなもう少し使いやすいものものが理想です。

499 :デフォルトの名無しさん:2015/02/09(月) 19:59:02.45 ID:vkRnUcmL
厳密な暗号じゃなくていいなら
乱数のシードを鍵にしてxorでも取れば

500 :デフォルトの名無しさん:2015/02/09(月) 19:59:04.73 ID:sBN76GX2
漏れは aes-256-cbc 使ってる

501 :デフォルトの名無しさん:2015/02/09(月) 22:42:37.71 ID:FMJ5hSgn
すいません。
正規表現を使って文字列の置き換えを
変数で行いたいんですけど、どのようにすれば良いでしょうか?

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

よろしくお願いします、、、。

502 :デフォルトの名無しさん:2015/02/09(月) 23:32:37.54 ID:hYgUeUM1
投稿する場所間違ってねーか?

503 :デフォルトの名無しさん:2015/02/09(月) 23:34:24.62 ID:FMJ5hSgn
自己解決しますた。

504 :デフォルトの名無しさん:2015/02/09(月) 23:34:46.48 ID:hYgUeUM1
【FFRK】FFレコードキーパー升スレが出てくるわ
チーターか君は

505 :デフォルトの名無しさん:2015/02/09(月) 23:36:23.52 ID:hYgUeUM1
タイミング的にrubyスレでmitmproxyのこと聞いてた奴も臭い

506 :デフォルトの名無しさん:2015/02/09(月) 23:38:30.27 ID:0p2uaiNK
Rubyで書いたりPerlっぽいPython書いたり忙しすぎるだろう

507 :デフォルトの名無しさん:2015/02/09(月) 23:54:01.03 ID:hYgUeUM1
スレ眺めてきたけど
仮想マシンにpython入れてmitmproxy立てて
root取ってSSL証明書をインストールして
素人の割になかなか根性あるなと思った

エロに掛ける情熱といい勝負

508 :デフォルトの名無しさん:2015/02/09(月) 23:56:55.33 ID:bwEZbR4B
http://jbbs.shitaraba.net/sports/42269/

509 :デフォルトの名無しさん:2015/02/10(火) 00:41:07.61 ID:MYjHodlR
windowsで2.7を使っているのですが、
ディレクトリ一覧を見るtreeコマンドを使うためにはどうすればよいのでしょうか

pipとdistributeは入れていて、easy_install treeってやってみたのですが
うまくいきません

510 :デフォルトの名無しさん:2015/02/10(火) 03:14:34.62 ID:S8aa6Cnw
os.walk

511 :デフォルトの名無しさん:2015/02/10(火) 14:19:25.82 ID:MYjHodlR
>>510
ありがとうございました
今はtreeは使えないということでしょうか。

512 :デフォルトの名無しさん:2015/02/10(火) 15:04:06.09 ID:ALeeSDV7
>>509
まずtreeとはなんでしょうか
そして何がうまくいかないのか情報がたりません。何をして何のエラーがをはいたかなどを書きましょう。
treeとはhttps://pypi.python.org/に登録されているパッケージのことですか?それなら該当するページを貼ってください。

513 :デフォルトの名無しさん:2015/02/10(火) 15:05:58.43 ID:ALeeSDV7
ひょっとしてlinuxのtreeコマンドを実行したいなら
http://docs.python.jp/2/library/subprocess.htmlをみましょう

514 :デフォルトの名無しさん:2015/02/10(火) 15:55:52.25 ID:Hs3TdF+4
ありがとうございました

515 :デフォルトの名無しさん:2015/02/10(火) 16:01:52.74 ID:MYjHodlR
>>513
すいません
pythonでもlinuxコマンドが特に気にせず使えるものだと勘違いしていました
アホすぎますね、もっと勉強します

516 :デフォルトの名無しさん:2015/02/10(火) 19:55:29.72 ID:V4ts0ZsF
import sys.os
たっけ?

517 :デフォルトの名無しさん:2015/02/10(火) 20:45:04.04 ID:sLQgIheM
nihongodeok

518 :デフォルトの名無しさん:2015/02/10(火) 20:46:14.92 ID:0/TZRNUl
>>516
とりあえず試そう

519 :デフォルトの名無しさん:2015/02/11(水) 01:12:51.19 ID:GkIWFUyF
試す暇があったらお前らになんか聞かんわ

520 :デフォルトの名無しさん:2015/02/11(水) 02:45:25.74 ID:sfXJxhtA
>>519
ここに書き込むより自分で試したほうがよっぽど速い。
それをしないお前はクズ。

521 :デフォルトの名無しさん:2015/02/11(水) 04:19:45.07 ID:G6Qrpf6L
sqlalchemyのcommit()とflush()てどう違うんでしょうか?
同じですか?

522 :デフォルトの名無しさん:2015/02/11(水) 06:05:02.34 ID:29qyXWgk
commitはボットン便所
flushは水洗便所

523 :デフォルトの名無しさん:2015/02/11(水) 13:33:17.98 ID:G6Qrpf6L
すみませんもうちょっと詳しく教えていただけないでしょうか

524 :デフォルトの名無しさん:2015/02/11(水) 13:50:03.72 ID:luZixpFu
http://stackoverflow.com/questions/4201455/sqlalchemy-whats-the-difference-between-flush-and-commit

525 :デフォルトの名無しさん:2015/02/11(水) 19:06:05.92 ID:G6Qrpf6L
>>524
ありがとうございます

526 :デフォルトの名無しさん:2015/02/12(木) 02:16:08.34 ID:l8sOurZL
さよならpyscripter
君の事は大好きだったけどraw_inputが読み込めないのが怖くて使えないんだ……

はぁ、開発環境どないしよ
pycharmのオープンソース版とかいう奴でええんかな

527 :デフォルトの名無しさん:2015/02/12(木) 04:09:05.71 ID:nz2ivqB0
>>510
ファイル数が少ないならいいけどos.walkって糞遅いんだよね
その部分だけc/c++で書いてswigとかで呼び出したほうが幸せだわ

528 :デフォルトの名無しさん:2015/02/12(木) 04:32:53.18 ID:/kBvo1zT
パス列挙する以外に余計な機能持ってるかんね
ディレクトリとファイルを分ける為に一つ一つシステムコール打ちやがるし
初期のナンセンスな設計そのままって感じ

529 :デフォルトの名無しさん:2015/02/13(金) 09:43:12.40 ID:BrAGpUh6
質問です
python でopenしたファイル(テキストファイル)を、10行ずつ別ファイルに
書き込みたいです。
別の変数を用意して、
ファイルを読み込んで、1行ずつ書き込んでいくごとに1足していって、10になったら
別ファイルに書くようにすればいいかと思うのですが、もっといい方法あったら教えてください。

530 :デフォルトの名無しさん:2015/02/13(金) 09:49:37.42 ID:OQXQ5SVC
それでいいよ

531 :デフォルトの名無しさん:2015/02/13(金) 13:51:13.72 ID:XSQtTg3s
いい方法かどうかはわかんないけど、こんなやり方もあるって程度で↓
1. 全部一気に読む
2. 改行文字でsplit()
3. 2で出力されたリストを10個ずつ書き出す

この方法だとメモリを食うのが難点だけど、ファイル書き出しを始める前にファイル総数が分かる点はメリット。

532 :デフォルトの名無しさん:2015/02/13(金) 13:51:43.35 ID:dpVVOxpY
だめよ
だめだめ

533 :デフォルトの名無しさん:2015/02/13(金) 22:13:40.15 ID:SVZa3gOz
>>529
https://ideone.com/Q9PeAV

534 :デフォルトの名無しさん:2015/02/13(金) 22:17:50.53 ID:bVuUfGGH
親切だな・・・と、思ったらw

535 :デフォルトの名無しさん:2015/02/13(金) 22:30:06.64 ID:VTed8hSx
なにこのわざわざPythonをRubyに変換したかのようなRubyらしくないコード

536 :デフォルトの名無しさん:2015/02/13(金) 22:50:58.97 ID:VTed8hSx
import itertools
lines=10
filename="input.txt"
for i in itertools.zip_longest(*[open(filename,"r")]*lines): print(i)
# ファイルへの出力に自分で変えてね

537 :デフォルトの名無しさん:2015/02/13(金) 23:10:45.29 ID:kDDtzzsz
その発想はなかったけど嫌なコードだなw

538 :デフォルトの名無しさん:2015/02/13(金) 23:17:03.64 ID:VTed8hSx
その場限りならインタフェースと動作さえ分かってれば実装はどうでもよいのさ

539 :デフォルトの名無しさん:2015/02/14(土) 01:17:41.83 ID:eT51Fssc
そういった書き捨てや簡単な文字列処理のコードは、perlやシェルの方が
適しているのかな

540 :デフォルトの名無しさん:2015/02/14(土) 02:11:22.92 ID:6+v8Aa7S
んなこたあない

541 :デフォルトの名無しさん:2015/02/14(土) 09:45:13.69 ID:9lOVDoz+
そもそもテキストファイルを特定行数単位で処理するのって
どの言語も不得意なテーマだよ
データ処理のエキスパートであるSQLですら、上位xx行という機能はあっても
xx行ずつレコードを抜き出すという機能は持ち合わせていない

542 :デフォルトの名無しさん:2015/02/14(土) 10:01:16.90 ID:AJcG1brN
不得意も何もPythonのzip_longestやRubyのeach_sliceでサクッと解いてるじゃないか

543 :デフォルトの名無しさん:2015/02/14(土) 10:26:53.77 ID:L/dx5qmH
>>541
MySQLにはlimit句で行数の取得制限あるよ
じゃないとwebのページング処理とか作れない

544 :デフォルトの名無しさん:2015/02/14(土) 10:31:16.03 ID:xzkKcWkn
limitって上位xx行だけじゃなくて
上位oo行から上位ωω行までって指定も出来たっけ

545 :デフォルトの名無しさん:2015/02/14(土) 10:43:37.86 ID:L/dx5qmH
>>544
例えば3ページ目の15件なら
select * from xxxx limit 30, 15
のようにカンマの前にスキップ数を指定

通常は順序が不定にならないようにorder byも入れるかな?

546 :デフォルトの名無しさん:2015/02/14(土) 10:44:23.21 ID:pzGXmezT
limit offsetだろ
まあ素人がスロークエリー作りやすい機能だけど

547 :デフォルトの名無しさん:2015/02/14(土) 10:59:52.77 ID:Tntf/sjh
2点間の経度緯度の距離を求めるパッケージってありませんか?
国土地理院で公開されている計算式が読めなくてコードにするのに挫折したんですが
パッケージなら有りそうな気がするので

548 :デフォルトの名無しさん:2015/02/14(土) 11:02:16.61 ID:Tntf/sjh
経度緯度 距離 javascript
でググって出てくる1ページ目の記事で公開されているコードの実行結果と
国土地理院での結果があまりにも違いすぎて

東京駅から埼玉の大宮駅の間だけで5000kmもの差が出てるのでググって出てきた記事ですら信用できません

549 :デフォルトの名無しさん:2015/02/14(土) 11:14:55.18 ID:xzkKcWkn
それ地球一周してないか

550 :デフォルトの名無しさん:2015/02/14(土) 11:21:14.79 ID:pzGXmezT
そもそもなんでjavascriptなんだ
質問するところ間違ってねえか
npmのパッケージ探してますとか言ったらころすぞ

551 :デフォルトの名無しさん:2015/02/14(土) 11:22:49.17 ID:xzkKcWkn
ここのがまとも
http://keisan.casio.jp/exec/system/1257670779

552 :デフォルトの名無しさん:2015/02/14(土) 11:22:53.64 ID:pzGXmezT
本当にPythonなら https://pypi.python.org/pypi/geopy を使うとよい

553 :デフォルトの名無しさん:2015/02/14(土) 11:31:36.15 ID:pzGXmezT
地球を球体として扱っている式は、緯度方向のずれが大きくなるので止めた方がいい
球体扱いとvincentyの式では、東京大宮間ですら4kmも差が出る

554 :デフォルトの名無しさん:2015/02/14(土) 13:16:06.26 ID:4Ppy833I
語学学習のための動画ファイルを自動的にダウンロードすることを考えています。
以下のサイトの再生ボタンを python から操作したいのですが、良い方法があれば教えていただけると助かります。

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

※RTMPDUMP というソフトを事前に起動しておけば、動画を再生することで動画ファイルを保存出来るため。

555 :デフォルトの名無しさん:2015/02/14(土) 13:29:52.55 ID:FOX5OGDf
またコード1から書いてくれちゃんですか

556 :デフォルトの名無しさん:2015/02/14(土) 13:41:06.49 ID:AJcG1brN
コードば書いてくれちゃらんですかに見えた

557 :デフォルトの名無しさん:2015/02/14(土) 13:55:07.13 ID: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>');

558 :デフォルトの名無しさん:2015/02/14(土) 14:28:40.47 ID: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)

559 :デフォルトの名無しさん:2015/02/14(土) 15:02:52.37 ID:4RlJzBDK
>>554
ブラウザ操作ならSelenium

560 :デフォルトの名無しさん:2015/02/14(土) 18:30:14.71 ID:LnLkdXvp
PythonでWindowsアプリというかクロスプラットフォームアプリを作る時
Windowsではpy2exeでまとめるのが今も一般的ですか?

561 :デフォルトの名無しさん:2015/02/14(土) 18:30:17.32 ID:4Ppy833I
>>555
何かヒントだけでも良いので教えてもらえると・・・

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

>>559
ありがとうございます。
調べてみます。

562 :デフォルトの名無しさん:2015/02/14(土) 18:41:31.98 ID:IBf+xnKf
俺ぐらいの実力ならシェルスクリプトでcurl使うけどね

563 :デフォルトの名無しさん:2015/02/14(土) 19:03:22.47 ID:pzGXmezT
>>560
俺の観測範囲では利用例を見たことがない
今もってことは昔は一般的だったのか?

564 :デフォルトの名無しさん:2015/02/14(土) 19:09:06.71 ID:LnLkdXvp
>>563
知らないです。ぐぐったらそれが出てきたので。

Windowsでサービス化したアプリを作りたいと思っているのですが、
どうすればいいのかなーと思って。

565 :デフォルトの名無しさん:2015/02/14(土) 19:11:41.05 ID:Wks88uPG
おれならpyqtを使う

566 :デフォルトの名無しさん:2015/02/14(土) 19:19:52.96 ID:pzGXmezT
サービスなんかスクリプトのままでも登録できる
普通に作るとサービスイベントに反応できないが、そりゃexeにしたって同じだろう

sc create hoge binPath= C:\path\to\python.exe C:\path\to\script.py

567 :デフォルトの名無しさん:2015/02/14(土) 19:26:03.33 ID:pzGXmezT
こっちの方がいいかな
http://masahito.hatenablog.com/entry/20110511/1305107553

568 :デフォルトの名無しさん:2015/02/14(土) 19:30:28.97 ID:LnLkdXvp
>>565
それGUIじゃないんですか?
サービスなのでGUIはいらないです。

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

python.exeをzipに詰めて、install.batすればいいんでしょうか?

569 :デフォルトの名無しさん:2015/02/14(土) 19:31:08.99 ID:LnLkdXvp
つまり、パッケージ化の方法。
使っているライブラリを全部含めないといけない。

570 :デフォルトの名無しさん:2015/02/14(土) 20:16:55.59 ID:4RlJzBDK
比較したことないけどcxfreezeが簡単だったょ

571 :デフォルトの名無しさん:2015/02/14(土) 20:35:10.46 ID: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度変わることを期待したのですが同じ値になってしまうのです。なぜでしょうか?どう治せば良いですか?

572 :デフォルトの名無しさん:2015/02/14(土) 20:36:26.54 ID:a/Aaml5q
>>570
ありがとうございます。

py2exeはPython3には対応してないみたいですね。
PyInstallerというのも見つけたけど同様。

573 :デフォルトの名無しさん:2015/02/14(土) 23:15:17.17 ID:j6SWj+8+
vimをIDE化しようとして挫折しました
windows環境でオススメのIDE教えて頂けませんか

574 :デフォルトの名無しさん:2015/02/14(土) 23:45:07.95 ID:15MsuvIH
PyCharm

575 :デフォルトの名無しさん:2015/02/14(土) 23:51:26.64 ID:3EzoAznx
windowsだとunicornとか使えなくて色々不便に感じませんか

576 :デフォルトの名無しさん:2015/02/15(日) 00:20:33.75 ID:emBVm4wS
>>574
ありがとうございます
英語の勉強と思って暫く頑張ってみます

>>575
まだpython初めて2週間そこらなんです
何か不便に感じる部分があったらまた相談に来たいと思います

577 :デフォルトの名無しさん:2015/02/15(日) 01:30:39.60 ID:l4Ml7vAk
IDE化より先にやることあるだろバカ

578 :デフォルトの名無しさん:2015/02/15(日) 08:38:55.42 ID:m8EyiHEU
先にやることとは?

初学者ほどIDEあると簡単に文法チェックや動作確認デバッグできるから有用だと思う
リファレンスとか見なくても書けるようになると一時期はエディタだけでもよくなり
大きいソフトを書くようになるとまたIDEで管理が有用になる感じだなあ

579 :デフォルトの名無しさん:2015/02/15(日) 09:25:20.88 ID:MIyWYvDB
>>578
577は、煽り学習法厨。

580 :デフォルトの名無しさん:2015/02/15(日) 09:30:41.96 ID:p1zacc3e
シェルの扱いにも慣れていないようなずぶの初心者にIDE勧める奴は理屈抜きで銃殺されてほしい

581 :デフォルトの名無しさん:2015/02/15(日) 09:41:23.77 ID:oBnjhPw1
これも煽り学習法厨かぁ

582 :デフォルトの名無しさん:2015/02/15(日) 10:05:45.91 ID:BnNo2fCr
>>556
ワロタwww

583 :デフォルトの名無しさん:2015/02/15(日) 11:09:44.10 ID:cXPo/aFG
vim でいえば python 初学者に必要なのはいいとこ
quickrun と python-pep8-indent と好きなカラースキームくらいでしょ。
せっかくの動的型付けのインタープリタ言語なのだし(ガシガシ実行してエラー吐けば良い)
# vim のメインの魅力はそこにはない…と思うので、IDE化挫折でストレスなく他の環境に移れるなら
# それもいいとはおもうけど

584 :デフォルトの名無しさん:2015/02/15(日) 11:42:33.69 ID:NqF+36Lb
チョンチョンうるせー

585 :デフォルトの名無しさん:2015/02/15(日) 12:00:49.78 ID:GsyuIu8e
windowsでsublime text使ってhttps://github.com/srusskih/SublimeJEDIを入れろ

586 :デフォルトの名無しさん:2015/02/15(日) 12:03:15.45 ID:uxAoEDAd
将来性がなさそうなSublimeですか
開発者はぼっちを卒業できたの?

587 :デフォルトの名無しさん:2015/02/15(日) 12:08:59.14 ID:nj8cCepF
プラグインとか入れすぎると設定ファイルやらキーバインディングやらわけわからなくなるw

588 :デフォルトの名無しさん:2015/02/15(日) 12:37:28.07 ID:cwqWcMrx
なんてったってIDLE〜

589 :デフォルトの名無しさん:2015/02/15(日) 16:07:55.41 ID:bX6frV1s
節子それ綴りちゃう

590 :デフォルトの名無しさん:2015/02/15(日) 21:50:40.79 ID:yEZCPie2
pycharmが便利すぎるんだもの・・・

591 :デフォルトの名無しさん:2015/02/16(月) 02:56:11.07 ID:Zn9bWbFW
>>568-569
「パーフェクトPython」によると、
標準ライブラリの distutils をベースにした、
distribute がよく使われているらしい

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

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

アプリをPyPIで公開

592 :デフォルトの名無しさん:2015/02/16(月) 03:51:48.70 ID: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.

593 :デフォルトの名無しさん:2015/02/16(月) 22:56:27.23 ID:bBWfSFB0
>>591
レスありがとうございます。

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

> 原則 pip を使ってパッケージの管理を行う
> setuptools も広く使われているので入れておくとよい。そもそも pip のインストール時に自動的ににインストールされる
> distribute は 2013年に setuptools にマージされたので不要

594 :デフォルトの名無しさん:2015/02/19(木) 21:59:37.47 ID:SeqnhdII
pythonのtkってドキュメントに書いてあることが圧倒的に少ないんですが書いてないのは未実装ってことですか?

595 :デフォルトの名無しさん:2015/02/20(金) 00:10:50.21 ID:0PEQCiTj
はい?

596 :デフォルトの名無しさん:2015/02/21(土) 14:25:07.32 ID:gDUcfidl
from moduleName import ClassName
とクラスをインポートしてリロードしたい場合どう書くのでしょう?

597 :デフォルトの名無しさん:2015/02/21(土) 15:18:29.29 ID:Z8d/Dz/w
リロードってなに?ブラウザ上?

598 :デフォルトの名無しさん:2015/02/21(土) 15:32:18.23 ID:gDUcfidl
内容を修正して再読み込みしたいときに
モジュールでfrom modulePath import moduleNameとインポートしていれば
reload(moduleName)と書いていたのですが
from moduleName import ClassName
とクラスをインポートしている場合、どう書くのかなと

599 :デフォルトの名無しさん:2015/02/21(土) 18:08:48.67 ID:+xlkhew9
>>598
リロードはできる、できるが・・・
君が望んでるリロードではないと思う
もしそうなら君が望んでるリロードはできない
どう書けばいいかでなくそういう機能はない

http://pastebin.com/3CYgfGBF

600 :デフォルトの名無しさん:2015/02/21(土) 18:11:47.69 ID:+xlkhew9
余談だが、フレームワークの機能によくあるautoreloadは
自分自身を再起動する or execfileでソースから実行する
などの方法を使っている

601 :デフォルトの名無しさん:2015/02/21(土) 20:06:37.88 ID:gDUcfidl
ありがとうございました
修正がありそうなものはクラスで読み込まないように書こうと思います

もう一点インポートについて
import modulePath.moduleName as moduleName
といったモジュール名と同じ名前を別名に与えているコードがあります
個人的に名前を変更しないならfromのほうが自然のような気がするのですが
from modulePath import moduleName
何か利点があるのでしょうか?

602 :デフォルトの名無しさん:2015/02/21(土) 20:16:12.87 ID:HRR/gGfP
__init__.py を敢えて使いたくない(書きたくない)ときとかかな

603 :デフォルトの名無しさん:2015/02/21(土) 20:21:48.31 ID:/hoA+ACR
なんで

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

プリントの出力が違うのはなぜですか

604 :デフォルトの名無しさん:2015/02/21(土) 20:36:25.15 ID:sa43Zcnr
print(a, b)は引数のタプル(a,b)をprintしてる
一方print a, bは引数aと引数bをprintしてる

605 :デフォルトの名無しさん:2015/02/21(土) 20:53:32.79 ID:SU8LRiPf
python3だと
print((hensu, hensu2))
print(hensu, hensu2)
こうなっちゃうね

606 :デフォルトの名無しさん:2015/02/22(日) 00:54:32.42 ID:dEB4uEVR
いまどきPython2なんかつかってるロートルほど自分のPythonのバージョン書かないのな。

607 :デフォルトの名無しさん:2015/02/22(日) 00:59:33.32 ID:c7iyE8Go
>>602
ありがとうございます

608 :デフォルトの名無しさん:2015/02/22(日) 01:50:41.10 ID:COKde7BB
>>606
print文なんてFAQレベルじゃん
つーかPython2なんかをつかわない環境を明記してくれよw

609 :デフォルトの名無しさん:2015/02/22(日) 09:52:00.80 ID:LjorwAuy
コード見てpython2だという事がわからない無知がいるのかよ

610 :デフォルトの名無しさん:2015/02/22(日) 10:12:25.02 ID:2vzKbssH
from __future__ import print_function

Python2なら書いとけよ

611 :デフォルトの名無しさん:2015/02/22(日) 10:13:30.86 ID: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関数を有効にしなければならない。

この理解であっていますか?

612 :デフォルトの名無しさん:2015/02/22(日) 11:04:10.99 ID:uX3Bvmht
>同じprint関数なのになんで挙動が違う?

だれが同じprint関数って言ってた?

613 :デフォルトの名無しさん:2015/02/22(日) 11:18:14.17 ID:JdprH66q
そうだよ、両方使えると言えば使えるが
future文による切り替えで混在している訳ではない
括弧つけたくらいでキーワードが識別子になるものか

614 :デフォルトの名無しさん:2015/02/22(日) 12:08:42.83 ID:x6DbFD5S
オライリーのデータ分析入門やってる。最初のサンプルデータから、エンコードのエラー出るんだけど…。どうしたらいいの…。

615 :デフォルトの名無しさん:2015/02/22(日) 12:13:07.50 ID:tq8+HI3u
いきなりスポーツカーに乗らないで教習所から始めたらどうですか

616 :デフォルトの名無しさん:2015/02/22(日) 12:22:07.32 ID:x6DbFD5S
ホームページから落としたサンプルを本の通りに数行入力しただけなんだけど。それがスポーツカーなのか?
まあもう少し調べてみるが。

617 :デフォルトの名無しさん:2015/02/22(日) 12:28:22.61 ID:zI7TF6m8
・エラーを見て何が原因か調査する
・サンプルが動く動作環境を満たしているか確認する

618 :デフォルトの名無しさん:2015/02/22(日) 12:34:03.75 ID:uX3Bvmht
>>616
スポーツカーというか盗難車だな

619 :デフォルトの名無しさん:2015/02/22(日) 13:06:41.71 ID:ZJshy5JI
Python3にはまだ早い
あと2年待て

620 :デフォルトの名無しさん:2015/02/22(日) 13:10:02.34 ID:G9MatKu0
と、言われ続けてはや幾年

621 :デフォルトの名無しさん:2015/02/22(日) 14:23:33.95 ID:TfAgRNIZ
>>616
窃盗と無免許運転です

622 :デフォルトの名無しさん:2015/02/22(日) 14:27:06.89 ID:33oFsXpr
運転免許には、車の点検・整備の責務もあるんだよなぁ

623 :デフォルトの名無しさん:2015/02/22(日) 14:37:59.78 ID:TfAgRNIZ
自賠責加入も義務だな
窃盗無免許だと保険下りないだろうけど

624 :デフォルトの名無しさん:2015/02/22(日) 15:00:42.15 ID:0njaRTk3
その本はPythonの入門書ではない
Pythonという言語の使い方が分かっている人向けの、Pythonを使ってデータ分析する入門書

車に乗れないのに、車に乗れる人向けのスポーツカーの乗り方を見てるようなもの

625 :デフォルトの名無しさん:2015/02/22(日) 16:35:34.11 ID:Y6PClI/L
スポーツカーの乗り方って普通の車とそんなに違うの?

626 :デフォルトの名無しさん:2015/02/22(日) 16:38:56.93 ID:tq8+HI3u
僕は乗り方(Python自体のチュートリアル)から学んだらどうですかと言ったつもりなんですが
なんかへんな方向に進んでますね

627 :デフォルトの名無しさん:2015/02/22(日) 16:46:55.79 ID:TAWF76o2
>>613
ありがとう。

>>612
少なくとも俺はそう思い込んでたっていうこと。

628 :デフォルトの名無しさん:2015/02/22(日) 16:49:20.24 ID:Y6PClI/L
たとえ話は適切に用いないと読み手に却って混乱を来たすという好例ですね。

629 :デフォルトの名無しさん:2015/02/22(日) 17:17:07.83 ID:6dzHQoci
>>625
違う
まっすぐ走るのも結構難しい
何もない直線で自分の車なのにガードレールに突っ込むやつとか見たこと無い?

630 :デフォルトの名無しさん:2015/02/22(日) 17:22:35.88 ID:G9MatKu0
低速で走る方が難しい、車高が低いから視界が悪い

631 :デフォルトの名無しさん:2015/02/23(月) 15:47:08.16 ID:UVXbAF4b
>>595
panedWindowの説明も載ってない

632 :デフォルトの名無しさん:2015/02/23(月) 16:05:20.33 ID: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

633 :デフォルトの名無しさん:2015/02/23(月) 16:51:30.66 ID:Kf7W7KjZ
Tclコードを書く必要はないが、TkやTclのドキュメント見てね、か

634 :デフォルトの名無しさん:2015/02/26(木) 06:37:21.90 ID:7Ps8h7ua
すいません、本当に下らない質問をさせて下さい。

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

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

何を使えば良いのでしょうか?

635 :デフォルトの名無しさん:2015/02/26(木) 07:16:27.97 ID: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)

636 :デフォルトの名無しさん:2015/02/26(木) 07:50:28.11 ID:rnY64eLq
http://bugs.python.org/issue17267
なんか揉めていやがる
ま〜たタイムゾーンか

joda-timeみたいにdateとtimeはlocalオンリーにすればよかったんだよ
マヌケめ

637 :デフォルトの名無しさん:2015/02/26(木) 08:11:23.97 ID:7Ps8h7ua
>>635
ありがとうございます。

ちなみに「時分」の入力だけで求められる方法ってないでしょうか?
特に年月日が決まってない際には困るなぁと思いまして。

638 :デフォルトの名無しさん:2015/02/26(木) 08:33:49.85 ID:rJrYfait
GoogleAppEngineもなんかtimezone可笑しいんだよな

639 :デフォルトの名無しさん:2015/02/26(木) 08:34:41.95 ID:rJrYfait
>>636
日本みたいに夏時間使ってなくてtimezoneも一つしかない国ならそれが一番良いんだけどね

640 :デフォルトの名無しさん:2015/02/26(木) 08:39:28.47 ID:rJrYfait
>>637
http://www.nichinoken.co.jp/images/column/shikakumaru/2014/15_m02/poster_sa_b.jpg

641 :デフォルトの名無しさん:2015/02/26(木) 09:54:48.82 ID:x0eimpI7
俺にも解けた!

642 :デフォルトの名無しさん:2015/02/26(木) 09:55:01.39 ID:h/RT/ene
phpは夏時間にも対応している
pythonも対応するべきだ

643 :デフォルトの名無しさん:2015/02/26(木) 10:55:04.14 ID:rJrYfait
>>641
python で解くプログラム書いてみ

644 :デフォルトの名無しさん:2015/02/26(木) 10:56:05.57 ID:rJrYfait
>>642
pytz が有名だけど

645 :デフォルトの名無しさん:2015/02/26(木) 20:37:03.22 ID:NRaL/N/C
>>637
年月日がきまってないっていうことはその2つの時刻が
同日だという保証もないので計算不能が正しいのでは?
もし同日と見なしてもいい場合は、そういうメソッドは
ないので自分で求めましょう。

646 :デフォルトの名無しさん:2015/02/26(木) 21:51:55.23 ID:EQFLZ0n/
うるう秒のある日だったらどうするんだろうな

647 :デフォルトの名無しさん:2015/02/26(木) 23:14:51.09 ID:s/sSMokI
>>637
端からTimeDelta同士にすれば良…くないかな?

s = datetime.timedelta(hours=15,minutes=20)
e = datetime.timedelta(hours=21,minutes=30)
t = e - s

648 :デフォルトの名無しさん:2015/02/27(金) 10:48:00.29 ID: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)

649 :デフォルトの名無しさん:2015/02/27(金) 11:38:34.02 ID:OVfL6gGI
>>634
e>=sの条件が絶対に成り立っているの?
時刻だけで計算したいって言うならsが23:59でeが0:00みたいなときはどうすんの?

650 :デフォルトの名無しさん:2015/02/27(金) 11:39:40.02 ID:OVfL6gGI
21時30から15時20を引くなら単純に
2130-1520でもいいんだけどさ

651 :デフォルトの名無しさん:2015/02/27(金) 11:46:54.58 ID:rH0Q6QqF
このスレは条件後出し推奨ですか?

652 :デフォルトの名無しさん:2015/02/27(金) 11:49:54.33 ID:RzxKPtwm
ツッコミだと思います先生

653 :デフォルトの名無しさん:2015/02/27(金) 13:30:03.74 ID:EtM70Hm1
今からpython学ぶ場合、2と3ではどっちのほうがいいんだよ

654 :デフォルトの名無しさん:2015/02/27(金) 13:40:23.10 ID:rH0Q6QqF
両方やれ
Pythonに横道なし

655 :デフォルトの名無しさん:2015/02/27(金) 14:01:33.52 ID:kbiroK7N
俺も新しもの好きで3.3から始めた俺がアドバイスしてやる。
競技プログラミングだと2.7で書かれることが多い。
Linuxだと2.7が標準で入っていて3は3.2が入っていることが多いので、世の中の実行環境は2.7のほうが3よりも多いから便利なツールなどはいろんな環境で動かせるように2.7で作るようにしている。
djangoなどのWebフレームワークを使ってWebアプリを作る場合は3.4使ってる
用途にあわせてバージョンを変えて使っていけば自然と両方書けるようになる

656 :デフォルトの名無しさん:2015/02/27(金) 14:19:45.47 ID:LOve8H/f
GAEのPython3待ち

657 :デフォルトの名無しさん:2015/02/27(金) 15:32:43.73 ID:PdlM0W+O
そういやCentoOSもようやく2.7にしやがったのか

658 :デフォルトの名無しさん:2015/02/28(土) 16:09:03.83 ID:n54ECBzp
ABAQUSと連携してる方、なんかおもしろいのあったら教えてちょ!

659 :デフォルトの名無しさん:2015/02/28(土) 16:13:22.37 ID: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)

660 :デフォルトの名無しさん:2015/02/28(土) 17:51:58.21 ID:qDsQcJHp
PHPからPythonに移行して感動したコード

a = 1
b = 2
a, b = b, a

661 :デフォルトの名無しさん:2015/02/28(土) 18:19:10.70 ID:st/D/r/c
総当たりつまらんな

662 :デフォルトの名無しさん:2015/02/28(土) 18:36:42.68 ID:QIv+CRYz
>>658
Abaqus Pythonは叩いたことあるけど
君が何を求めているのかがわからない。

663 :デフォルトの名無しさん:2015/02/28(土) 21:32:31.72 ID: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が可能だったのでしょうか?
全く見当外れな質問かもしれませんが、よろしくお願いします。長文失礼しました。

664 :デフォルトの名無しさん:2015/03/01(日) 02:00:08.10 ID:58loK7uz
Anaconda入れてるんだけど、Anaconda自体は結局どういう役割なんだ?
ライブラリの管理?

665 :デフォルトの名無しさん:2015/03/01(日) 02:10:03.46 ID:DKIg1AyE
scientific computing in pythonな環境を最初からフルセットで提供していることに意味があるのでは
実際楽だし

666 :デフォルトの名無しさん:2015/03/01(日) 02:40:44.85 ID:58loK7uz
書き方が悪かったかも
コマンドプロンプトで
conda list
でモジュールの一覧が見られるのだが
Anacondaというモジュールがあるし、時々アップデートもされる。
モジュールとしてのAbacondaは一体何をやってるんだろうと疑問。

667 :デフォルトの名無しさん:2015/03/01(日) 04:30:32.48 ID:LYwpGVQL
VM

668 :デフォルトの名無しさん:2015/03/01(日) 11:44:33.83 ID: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'])

669 :デフォルトの名無しさん:2015/03/01(日) 12:09:12.37 ID:P8lkcWMS
ためしてないけど.python-versionの中身を書き換えて実行するとか

670 :デフォルトの名無しさん:2015/03/01(日) 12:11:13.12 ID:P8lkcWMS
そもそも動かしているpythonからバージョンを切り替えて実行するっておかしい気もするけど・・・
シェルスクリプトから操作すればいい話だと思うんだけどなあ

671 :デフォルトの名無しさん:2015/03/01(日) 12:22:40.03 ID:Sga1DM1F
subprocess.popen

672 :デフォルトの名無しさん:2015/03/01(日) 16:49:14.49 ID:tQPiHTVG
>>663です。
結局のところ、virtualenvはAnacondaには対応しておらず、
同バージョンで仮想環境を分けることは少なくともvirtualenvを用いてはできないということでしょうか?

673 :デフォルトの名無しさん:2015/03/01(日) 17:00:34.48 ID:lheYQzbz
>>672
ぼくは初心者だからわかんないけど
そもそもvirtualenvで仮想環境を作るときにパッケージも仮想環境にコピーされるように設定して作ってますか?
もし何もしてないならそりゃあインポートできなくて当たり前だし、それなら再度パッケージをインストールしないといけないとおもうんですけど。
macだったらanacondaなんて使わなくても仮想環境ごとにnumpyとかscipyとかインストールしたらんんではないでしょうか
面倒なインストール作業なんてシェルスクリプトを書けばいいわけですしね

674 :デフォルトの名無しさん:2015/03/01(日) 17:35:51.86 ID:BjMRiKz1
>>666
Anacondaに標準で含まれるパッケージの種類やバージョン等を指定するデータの提供。
anacondaモジュールの依存関係を利用して標準パッケージがインストールされる。
ライブラリとしての実体はない。
conda listの一覧の中にipython-notebookっていうのがあるでしょう?これも同じ。
IPython notebook環境を構築するのに必要なライブラリのリストを提供してるけど、
自身にライブラリとしての実体はない。

675 :668:2015/03/01(日) 20:48:15.01 ID:0aLofY9O
アドバイスありがとうございます
>>669,670
確かに複数入出力テストだけならシェルスクリプトでよいと思いますが
すでに色々機能を持たせたpythonスクリプトになっているので別スクリプトではなく一機能として実現できないかと検討してます
>>671
Popenとcallは完了待ちするかどうかの違いのみで引数も同じです

解決はできていませんが、表面的な原因は分かりました
pyenvによってpython実行時にPATHが追加されているようで/usr/binが最上位にきており
subprocessで呼び出すpythonはpyenvの用意したpythonではなく/usr/bin/pythonになってました
そりゃあ環境変数がどうなっていようが変わらないですよね

676 :デフォルトの名無しさん:2015/03/01(日) 22:47:04.78 ID:BjMRiKz1
>>672
Anacondaはpyenvでインストール後に有効にしてあるんだよね?
virtualenvはどうやってインストールしたの?
俺のAnaconda環境でvirtualenvをインストールしようとすると、
Anacondaでの使用は推奨されないって警告が出る。
警告を無視してインストールすることはできるけど、
エラーが出てvirtualenvコマンドは使えない。

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

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

Python3でしか使えないけど、標準モジュールのvenvを使う手もある。
使い方はvirtualenvと一緒。手軽に使えるので俺はよく使う。

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

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

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

このような初心者相手に様々丁寧に教えていただきありがとうございました。

678 :デフォルトの名無しさん:2015/03/02(月) 10:13:50.58 ID:1nxIHbiN
もしかしてvirtualenvで作った仮想環境をactivateしてないとか?

679 :デフォルトの名無しさん:2015/03/02(月) 14:21:20.29 ID:pq1u81iH
別に消さなくてもいいのに
せっかく新しい翻訳なんだから公開したらいいのに
なんでちょっと言われたただけ顔真っ赤になって消すのかな

680 :デフォルトの名無しさん:2015/03/02(月) 14:30:42.39 ID:BRroRxQz
自意識過剰
中二病
童貞

681 :デフォルトの名無しさん:2015/03/02(月) 18:40:33.59 ID: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

682 :デフォルトの名無しさん:2015/03/02(月) 20:24:46.55 ID:AZdlh9F+
重いこんだら

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

>>681
正直なことを申し上げますと、恥ずかしながらこのようなバージョン管理は全く経験がなく右も左もわからない状態でして、
英語の公式ドキュメントを読んでもよくわからず、日本語で解説されたページのみを参考にしながら環境構築を試みていました。
condaコマンドに関してもよく理解できていませんでしたので、丁寧なご解説とても参考になります。
よくわかりました。本当にありがとうございました。

684 :デフォルトの名無しさん:2015/03/03(火) 00:11:34.05 ID:tu3xNi4r
>>674
なるほど
Anacondaの依存関係を保った範囲内で最新にしていくには
conda update conda
conda update anaconda
を実行するだけでいいん?俺はこれしかやってないんだけど。
それとも
conda update --all
とかしなくちゃいけない?

685 :デフォルトの名無しさん:2015/03/04(水) 08:26:34.33 ID:DolSq2VW
>>684
conda update conda; conda update anaconda だけでいいよ。
自分で入れたパッケージは個別に自分でアップデートしてね。
conda update --all を使うと、パッケージひとつひとつをそれぞれ最新にアップデートしようとするので、
anacondaモジュールに書いてあるバージョンの組み合わせと整合性が取れなくて、
その旨表示して処理はキャンセルされる。


そしたら安定して動作することが確認された
Anacondaに最初からインストールされているパッケージだけを、
安定して動作することが確認されたバージョンの組み合わせでアップデートするだけだったら、

686 :デフォルトの名無しさん:2015/03/04(水) 08:28:44.11 ID:DolSq2VW
ごめん空行以降は無視して
書きかけの説明を削除するの忘れてた

687 :デフォルトの名無しさん:2015/03/04(水) 08:57:57.09 ID:UWB+qgaN
住所氏名消し忘れて投稿する夢みた

688 :デフォルトの名無しさん:2015/03/04(水) 09:08:02.54 ID:DU9HoCMy
scipyのminimizeについて教えてもらいたいのですが,フィッティングするパラメータの精度を指定することは出来るのでしょうか.
たとえばa, b, c・・・とパラメータがあった時にaは0~10を0.1刻みで・・・のようにです.
0~10という部分はboundsで指定できますが,刻みの指定がわかりません.

689 :デフォルトの名無しさん:2015/03/04(水) 14:16:28.10 ID:DnsfCac9
>685
便利だな
thanx

690 :デフォルトの名無しさん:2015/03/04(水) 15:03:17.02 ID:kJbztO6w
ニワカです
pythonでxlwtを使ってエクセルのグラフを描きたいのだけどサンプルが見つかりません。
誰か教えて m( )m

691 :デフォルトの名無しさん:2015/03/04(水) 16:15:30.67 ID:1ms42xKS
ちなみに自分はnetへの書き込みは必要最小限にとどめている
今日はこれが最後だと思う
netの書き込み数激減(少なくとも1/3以下へ)というまごうことなき数字を突きつけることが
現状打開のために必要だと思うから
でも皆に同じことをしてくれともそうすべきとも思わない
自分のことは自分で決めればいいんだよ

692 :デフォルトの名無しさん:2015/03/04(水) 20:20:26.62 ID: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()の引数を間違えているのだとは思うのですが
一向に解決できません。
対処法をご存知の方、ご回答お願いします。

693 :692:2015/03/04(水) 20:23:31.83 ID:6TumWt/1
このスレでは全角チルダで表示されてしまうようですが
問題が起こるのは波ダッシュの方です

694 :デフォルトの名無しさん:2015/03/04(水) 21:10:11.17 ID:m03rR+si
Pythonは開発効率が良いと聞いて試しましたがイマイチですね
本当にC#より速く堅牢なアプリケーションを作れるのですか?

695 :デフォルトの名無しさん:2015/03/04(水) 21:21:06.61 ID:tD+/JAWL
人によっては作れます

696 :デフォルトの名無しさん:2015/03/04(水) 21:22:15.38 ID:aiebJTF+
一体どこでそんな事聞いてきたの?w
無理して使わなくていいからね

697 :デフォルトの名無しさん:2015/03/04(水) 21:30:31.17 ID:YgBYjps4
pythonのweb frameworkって言ったらとりあえずdjangoをやっとけば通じるみたいだけど
djangoのベストプラクティスな情報がな圧倒的に足りない

698 :デフォルトの名無しさん:2015/03/04(水) 21:34:05.80 ID:0V1AC57V
>>692
?がUnicodeなので__argvを使ってるPython2ではsys.argvに正しく入ってません
正攻法としてはPython3を使用するか、ベストプラクティスかは知らんけど
是が非でもPython2でやるならctypesでGetCommandLineWをぶっ叩くとか…?

699 :692:2015/03/04(水) 21:43:55.83 ID:6TumWt/1
>>698
>?がUnicodeなので__argvを使ってるPython2ではsys.argvに正しく入ってません

えぇぇぇぇぇぇぇぇぇぇぇぇ…そんな罠があったのですか(汗)
教えて頂いて助かりました!知らなかったらあと何時間ねばってたことか^^;
素直にそのスクリプトだけpython3で実行するように本体とsendto書き換えてみます
ご親切にどうもありがとうございました!

700 :デフォルトの名無しさん:2015/03/04(水) 21:55:44.33 ID:aiebJTF+
波ダッシュ、全角チルダ問題まとめ
ttp://qiita.com/kasei-san/items/3ce2249f0a1c1af1cbd2

701 :デフォルトの名無しさん:2015/03/05(木) 03:44:59.33 ID:n3NecQLR
pythonのせいじゃなくてcmd.exeとかの側の問題だろ
どうしても波ダッシュ使いたいならcmd.exe使うのやめるか
hoge.py < arglistfile.txt
とか

702 :Yuta@:2015/03/05(木) 13:26:12.70 ID: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')

703 :YutaA:2015/03/05(木) 13:27:21.79 ID: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.

704 :デフォルトの名無しさん:2015/03/05(木) 13:42:24.00 ID:NOA7K+lC
もう春休みの宿題の時期か

705 :デフォルトの名無しさん:2015/03/05(木) 13:47:55.86 ID:f/1//Rxj
長いのはideoneに貼ってくれないとコピペがだるい

706 :デフォルトの名無しさん:2015/03/05(木) 13:57:02.72 ID:NOA7K+lC
Python3 はこんな風に書かなくても良くなったのか
num1=int(input(prompt1))
num2=int(input(prompt2))

707 :デフォルトの名無しさん:2015/03/05(木) 14:08:19.71 ID:ookD3nmq
>>704
普通は春休みに宿題なんて出さない。

708 :デフォルトの名無しさん:2015/03/05(木) 14:49:29.81 ID: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

709 :デフォルトの名無しさん:2015/03/05(木) 16:13:24.82 ID:wT1PXWMM
>>> print int(1.0)
1

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

浮動小数点数の誤差の蓄積やね

711 :デフォルトの名無しさん:2015/03/05(木) 16:31:41.01 ID:0eIB5bR0
どうして?目に見えない部分にデータがあるの?

712 :デフォルトの名無しさん:2015/03/05(木) 16:43:05.27 ID:wT1PXWMM

目に見えないデータを見えるところで切ってる

713 :デフォルトの名無しさん:2015/03/05(木) 17:00:37.79 ID:LYdoOvYu
PHPみたいにクソ仕様だな

714 :デフォルトの名無しさん:2015/03/05(木) 17:08:14.83 ID:wT1PXWMM
この場合はprintに原因があるのか

715 :デフォルトの名無しさん:2015/03/05(木) 17:25:55.74 ID:kvzpUYSP
math.fsumで誤差を補正できる
>>> n = math.fsum(1.0 / 1000 for _ in xrange(1000))
>>> a = 1 / n
>>> print a
1.0
>>> print int(a)
1

716 :デフォルトの名無しさん:2015/03/05(木) 17:34:11.17 ID:LYdoOvYu
print(a)で1.0だけどどうやったら誤差が見えるの?

717 :デフォルトの名無しさん:2015/03/05(木) 17:57:25.74 ID:0TrB/Lm6
DartみたいにJavaScript に変換できないの?Pythonって。

インデントが構文になってるとか機能美高いしJavaScript も全てpythonになるべきだと思うのだけども

718 :デフォルトの名無しさん:2015/03/05(木) 18:25:07.36 ID:wT1PXWMM
>>716
心の眼を開く

719 :デフォルトの名無しさん:2015/03/05(木) 18:25:51.88 ID:wT1PXWMM
>>717
っCoffeeScript

720 :デフォルトの名無しさん:2015/03/05(木) 18:27:34.81 ID:0rvjRaI9
ipythonを起動した時に自動的にimport mathをしたいんですけど
そういう設定教えてください

721 :デフォルトの名無しさん:2015/03/05(木) 18:51:54.64 ID:puWRUP/J
echo "import math" > ~/.ipython/profile_default/startup/000.py

722 :デフォルトの名無しさん:2015/03/05(木) 19:05:58.30 ID:0TrB/Lm6
>>719
CoffeeScriptもPythonとは違うんでしょ?

723 :デフォルトの名無しさん:2015/03/05(木) 20:25:20.69 ID:n3NecQLR
sites.py

724 :デフォルトの名無しさん:2015/03/05(木) 21:11:50.07 ID:Z+dMZ8cD
>>722
pythonより良い

725 :デフォルトの名無しさん:2015/03/05(木) 22:26:08.79 ID:qy5l4tP8
>>722
https://github.com/rusthon/Rusthon

726 :デフォルトの名無しさん:2015/03/05(木) 23:04:24.66 ID:xRIr8wDA
ラッソンゴレライ

727 :デフォルトの名無しさん:2015/03/06(金) 00:00:17.25 ID:G4aqU6d9
javascriptに対する現実解はtypescript程度だと思うよ
まあアレも結構面倒な部分は残ってるんだが

728 :デフォルトの名無しさん:2015/03/06(金) 00:53:46.60 ID:dcg9agNJ
ゆるさと開発効率のバランスが絶妙
CoffeeScript

729 :デフォルトの名無しさん:2015/03/06(金) 09:22:14.27 ID:TaB/WAXS
CoffeeScript 良いよね
Python もだけどなんで日本だと流行らないんだろう

730 :デフォルトの名無しさん:2015/03/06(金) 10:36:33.76 ID:gYife3US
a = 0
b = 'p'
a += b == 'p'

こういう式はなんていうの?
なんでちゃんと動くのか知りたい

731 :デフォルトの名無しさん:2015/03/06(金) 10:48:09.94 ID:WzNu1b2w
b=='p'は比較だから返り値がTrueかFalse(ここではTrue)
bool型はintのサブクラスだからa += Trueはa += 1と同じ

732 :デフォルトの名無しさん:2015/03/06(金) 11:05:36.99 ID:gYife3US
ありがとうございます!

733 :デフォルトの名無しさん:2015/03/06(金) 19:46:39.41 ID:oPjT86JG
真面目に使ったことはないけど、Brython っていうのは javascript で動く python3 実装
script type=text/python3 で python のスクリプトをそのまま書けるというやつだ

734 :デフォルトの名無しさん:2015/03/06(金) 22:19:56.79 ID:CTj2h1Ar
中学の頃 大村君が苗字音読みでダイソンって呼ばれてて
それが元で梅村君はバイソン 若村君はジャクソン
下村君はアンダーソンとみんなかっこいいあだ名がついたのに
津村君だけあだ名がバスロマンだったのはイジメに近いし
今思うとバスロマンはツムラじゃなくてアース製薬

735 :デフォルトの名無しさん:2015/03/07(土) 04:16:44.13 ID:4UroII6b
みんなのパイチンくんとチンパイくん

736 :デフォルトの名無しさん:2015/03/07(土) 12:04:33.35 ID:dV5NPacx
>>734
2get

737 :デフォルトの名無しさん:2015/03/07(土) 12:06:10.75 ID:dV5NPacx
>Brython
ブラ依存

738 :デフォルトの名無しさん:2015/03/07(土) 13:38:30.32 ID:JFs2oY1Z
pythonはインデントに意味があるから転送量おさえるためにコンパクト化
する事が出来ないのは不利なんじゃ?

739 :デフォルトの名無しさん:2015/03/07(土) 15:33:24.76 ID:vMIWPrbn
>>734
よく出来てるわ

転送前と後で適当に {} に機械的に置き換える処理入れたら済む気がする

740 :デフォルトの名無しさん:2015/03/07(土) 17:01:48.08 ID:yymwmlBA
サーバで実行するのに転送量もクソもねえよ

741 :デフォルトの名無しさん:2015/03/07(土) 17:03:40.88 ID:G29w8V6C
ファイルロードのコストが増えるじゃん

742 :デフォルトの名無しさん:2015/03/07(土) 17:20:46.38 ID:yymwmlBA
pycが作られるだろうが!

743 :デフォルトの名無しさん:2015/03/07(土) 17:29:04.98 ID:L9NOIbfd
初心者ですがpygtkで簡易画像ビューアを作りました
こうしたほうが良いとかありましたらお願いしたいです
ttp://ideone.com/yxaD2T

744 :デフォルトの名無しさん:2015/03/07(土) 17:51:50.44 ID:JFs2oY1Z
あーゴメン

転送量が気になるのはBrythonの方つうかブラウザのスクリプトね

745 :test:2015/03/07(土) 20:30:16.03 ID: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)

746 :デフォルトの名無しさん:2015/03/08(日) 12:26:06.98 ID:+/h1eClM
>>692
っ ttp://python.rdy.jp/wiki.cgi?page=japaneseCharset

747 :デフォルトの名無しさん:2015/03/11(水) 14:24:22.67 ID:vQ4+w4tm
バイナリファイルの処理をしたいと考えております.
コマンドラインでは

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

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

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

としても"|"が表示されるだけでした.
pyscripterの設定がおかしいのかと考えておりますがどなたか本件に関して多い当たる点ございますか?

748 :デフォルトの名無しさん:2015/03/11(水) 15:02:38.66 ID:vQ4+w4tm
早速すみません
一応自己解決しました
簡単なバイナリファイルを自分で作ってみたところフォーマット文字列を指定してunpackしないとpyscripterでは表示されないみたいでした

749 :デフォルトの名無しさん:2015/03/11(水) 15:56:26.71 ID:8MeoENMQ
もれもそう思ってたから返事しなかった

750 :デフォルトの名無しさん:2015/03/12(木) 19:30:34.95 ID:IG7CVxL3
pygameのevent.keyで大文字を認識させたい時はどうしたらいいんですか?

751 :デフォルトの名無しさん:2015/03/12(木) 21:22:09.10 ID:kfyJIopR
大文字化無くてshiftを押したかかだろ

752 :デフォルトの名無しさん:2015/03/14(土) 12:16:32.00 ID:jA1R8gSb
count = 0
f = open('sample.txt', 'w')
while True:
count += 1
f.write(str(count))

これを動かしてる最中に特定のキー(Ctrl Cとか)を押したら
f.close()してから終了するにはどうすればいいでしょうか?

753 :デフォルトの名無しさん:2015/03/14(土) 12:29:45.54 ID: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()

754 :デフォルトの名無しさん:2015/03/14(土) 12:41:18.61 ID:jA1R8gSb
>>753
ありがとうございます!

755 :デフォルトの名無しさん:2015/03/14(土) 16:31:47.61 ID:PQiRsuPZ
withも覚えとけ

756 :デフォルトの名無しさん:2015/03/15(日) 00:48:12.05 ID:iNfC0gMp
python2.7で数字を入力した時にinputとint(raw_input())で違いありますか?

757 :デフォルトの名無しさん:2015/03/15(日) 01:05:17.44 ID:rkCwx/om
djang○翻訳チームwww
http://b.hatena.ne.jp/entry/mizchi.hatenablog.com/entry/2015/03/14/133535

758 :デフォルトの名無しさん:2015/03/16(月) 02:38:40.84 ID:1GyT2oWU
http://mizchi.hatenablog.com/entry/2015/03/14/133535

759 :デフォルトの名無しさん:2015/03/17(火) 08:00:28.18 ID:HdJtxgxX
ああこいつか…Qiitaで童貞臭いアイコン使ってる
何度も同じ記事貼るんじゃねえ

760 :デフォルトの名無しさん:2015/03/17(火) 10:44:44.64 ID:Bw8e4yLM
なかのひとですねわかります
http://mizchi.hatenablog.com/entry/2014/10/25/174045

761 :デフォルトの名無しさん:2015/03/18(水) 05:15:31.92 ID:eOz49mYu
"{0:.1f}".format(value)といった具合にfloatを文字列に変換しているのですが
0.0が"0.0"になるものと"-0.0"になるものがあります。
ゼロは符号を付けたくないのですが、方法ありますか?
自分ではroundで0と比較してintの0にしてから変換していたのですが、何か違う気がして・・・
初歩的な質問ですみません。

762 :デフォルトの名無しさん:2015/03/18(水) 05:42:52.45 ID:Zar8QNwZ
>>761
http://stackoverflow.com/questions/11010683/how-to-have-negative-zero-always-formatted-as-positive-zero-in-a-python-string

+0するのがよさげ

763 :デフォルトの名無しさん:2015/03/18(水) 06:01:55.98 ID:eOz49mYu
すごい。できました!ありがとうございます。

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

#Coding:UTF-8というのはやったので,プログラムが起動してしまえば変換したいファイルに日本語を含んでいても大丈夫なようにはしているのですが
どなたか回避方法ご存じですか?

765 :デフォルトの名無しさん:2015/03/19(木) 01:50:21.56 ID:j2+spSxx
>>764
パス使ってる所をユニコードに変換

766 :デフォルトの名無しさん:2015/03/19(木) 02:01:37.06 ID:noU2qMQu
1行目にこういう、shebang を書いた?
#!/usr/bin/env python
#!/usr/bin/python3.3

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

環境変数 PATH は?

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

君のOSとバージョンは何?
pythonのバージョンは何?
VirtualEnv, venv などの仮想環境を使っているのか?
エラーメッセージは?
もっと詳しく書け

767 :デフォルトの名無しさん:2015/03/19(木) 08:00:14.39 ID: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です
・仮想環境は使っていません

取り急ぎ

768 :デフォルトの名無しさん:2015/03/19(木) 20:29:14.85 ID:Nd/ot4O0
>>762
コレどうして+0で符号が変わる?

769 :デフォルトの名無しさん:2015/03/19(木) 22:35:48.43 ID: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だとどうやったらできるのでしょうか?

770 :デフォルトの名無しさん:2015/03/19(木) 22:37:13.47 ID:H9sTIQWx
sys.stdout.write

771 :デフォルトの名無しさん:2015/03/20(金) 04:24:17.06 ID: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の、文字列の変換方法を、検索してみて

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

自分でちょっとしたスクリプトを書いて、
日本語のパス名が、どう解釈されるか試してみて

772 :デフォルトの名無しさん:2015/03/20(金) 12:05:23.13 ID:uw3XCVp4
>>770
ありがと
flaskじゃstdoutはflaskを実行してるターミナルにフックされるけど
とりあえずしらべてみますー

773 :デフォルトの名無しさん:2015/03/20(金) 15:52:58.84 ID:6mVx13Pi
import するモジュールA内のあるクラスa(A)を上書きしたいので,
呼び出す(importする)側Sに同じ名前のクラスa(S)を書いたのですが,
このとき, モジュールAの別のクラスb(A)からクラスaを呼んだら,
同じモジュール内のa(A)がでてきます.
こういうときに上書きする方法はありませんか?

774 :デフォルトの名無しさん:2015/03/20(金) 16:24:29.11 ID: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

775 :774:2015/03/20(金) 16:28:57.05 ID:6rxbuNBs
書きかけを投稿してしまいました
コード片は無視して下さい

776 :デフォルトの名無しさん:2015/03/20(金) 18:46:50.15 ID: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を呼ぶようになるはず
でもこういう置き換え方は筋が悪いからやめたほうがいいと思う

777 :デフォルトの名無しさん:2015/03/20(金) 21:33:24.77 ID:6BjYmIn0
勉強したことの復習するタイミングを教えてくれるプログラムをつくろうとしているのですが、
{勉強したセクション:やるべき日付(datetime型)}としてファイルに入出力していて、そのままだと上手くいかないのでググったりコピペしながらJSONでやったのですが変なエラーが出ます
ファイルの入出力の時文字列型になってしまうのはどうしても避けられないんでしょうか?
また、XMLという別の方法がある模様(ググっただけでまったく知識はないです)なんですがXMLなら型の問題は回避出来るのでしょうか?

778 :767:2015/03/20(金) 23:38:42.36 ID:PWi5odoJ
>>771
返信ありがとございます.
該当部分念の為のスクリプトを以下に示します.
http://codepad.org/DOQKMl2m
どうやら実行ファイルのディレクトリがsys.pathに含まれ,これに日本語があると文字化けを起こし,問題となっているようです.
引き続き検討してみます

779 :デフォルトの名無しさん:2015/03/21(土) 00:04:18.91 ID:rUUBEQ0g
>>777
jsonの表現とオブジェクトの表現は一致しないから、それらの対応を書かないとダメ
ある文字列をどうオブジェクトに復元するか、あるオブジェクトをどう文字列として表すかってことね
これはxmlでも同じ
jsonモジュールのobject_hookについて調べてみて

ちなみにとりあえず保存できればいいんならpickleの方が簡単だよ
あと、こういう質問は書いたコードとそのエラーをそのまま貼ったほうが正確に状況が伝わるからまず貼ろう

780 :デフォルトの名無しさん:2015/03/21(土) 00:15:32.82 ID: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'}

781 :デフォルトの名無しさん:2015/03/21(土) 00:16:48.24 ID:pulqrllr
>>777だった

782 :デフォルトの名無しさん:2015/03/21(土) 01:54:10.60 ID:b4FQIC21
Rubyでは改行コードは、
:universal_newline => true にすると、

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

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

JSON, XMLはほとんど同じ。
JSONの方が、データ転送量が少ないので、エコ

783 :771:2015/03/21(土) 02:23:26.60 ID:b4FQIC21
>>778
そのソースコードの11行目、print pyz_filepath で、
ファイル名が表示されているので、
それで日本語のパス名を見てみる

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

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

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

まあ業務用なら、日本語のパス名を使わないのが常識

784 :デフォルトの名無しさん:2015/03/21(土) 03:07:55.56 ID:nfoUPo3V
コンパイル時にドキュメンテーション文字列を削除することって出来ますか?

785 :デフォルトの名無しさん:2015/03/21(土) 10:01:39.10 ID:CbFTQJbK
>>779
ありがとうございます
object_hookを使ったコードはググったら出てきたのでつかってます
あと謎のエラーは自己解決しました 元のコードではfrom datetime import datetimeとしていたのをimport datetimeとしてたため型が合わなかったようです
今後エラーが出たらコードとエラー貼って質問します

786 :デフォルトの名無しさん:2015/03/21(土) 10:04:00.39 ID:CbFTQJbK
>>780
>バイナリとかもあるけど、基本的にはそう。
>PythonのオブジェクトがPythonのオブジェクトでいられるのはPythonの中だけ
なるほどやっぱりそうなんですね…

787 :デフォルトの名無しさん:2015/03/21(土) 11:28:13.55 ID: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 と解釈したいのですが
どう書けば良い?

788 :デフォルトの名無しさん:2015/03/21(土) 12:26:08.81 ID: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

789 :デフォルトの名無しさん:2015/03/21(土) 13:08:11.76 ID:GgI7Ng16
ctypes.c_int(0x80000000).valueトカ

790 :デフォルトの名無しさん:2015/03/21(土) 13:52:09.87 ID:2oh5rAiV
>>> int.from_bytes((0xffffffff).to_bytes(4, 'big', signed=False), 'big', signed=True)
-1

791 :デフォルトの名無しさん:2015/03/21(土) 14:27:58.41 ID: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
と表示されてしまい何が何だか・・・。多分タブを追加する対象がないよとかそういう感じだとおもうのですが、
いかんせんクラスの概念をよく理解していなく、なにか根本的に間違ってる気がしてます・・・・・。

792 :デフォルトの名無しさん:2015/03/21(土) 14:43:47.74 ID:sLj+E6BF

すみません、1日考えてだめだった結果が、単純な構文ミスでした。
しにたい。

793 :デフォルトの名無しさん:2015/03/21(土) 15:29:45.34 ID:QO2AdWWK
>>792
悩んだあげく、人に聞いたら自己解決ってよくあった。
今は頭の中で人に聞いて、それでもダメなら聞くようにしてる。

794 :デフォルトの名無しさん:2015/03/21(土) 17:55:12.84 ID:Fvy98M6G
(テディ)ベアプログラミングを実践しよう

795 :デフォルトの名無しさん:2015/03/21(土) 18:17:13.22 ID:RDMmfQRe
>>789
ありがとう
シンプルなのと仕様通りなのでそれにします

他の回答くれたみんなもありがとう

796 :デフォルトの名無しさん:2015/03/21(土) 20:26:17.10 ID:QO2AdWWK
>>794
冗談かと思ったww
無意識にベアプログラミングやってたわ。

797 :デフォルトの名無しさん:2015/03/22(日) 02:46:15.14 ID:zalLAL+t
>>787
Pythonには、Rubyのような、
pack, unpack のモジュールは無いの?

Rubyの pack, unpack
ttp://docs.ruby-lang.org/ja/1.9.3/doc/pack_template.html

798 :デフォルトの名無しさん:2015/03/22(日) 04:12:22.47 ID: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

799 :デフォルトの名無しさん:2015/03/24(火) 13:43:05.25 ID:oT9XT9lZ
メーリングリストわろた

800 :デフォルトの名無しさん:2015/03/25(水) 11:44:44.34 ID:bi42DHFl
今時メーリングリストに聞きに行く時点でなんかズレてる
どこでも回答なんかされないだろうが

801 :デフォルトの名無しさん:2015/03/25(水) 15:28:04.09 ID:jY89TDAe
3.5リリースまで後6ヶ月だけど
4.0の開発の話とかは何年後に出るんだろうか

802 :デフォルトの名無しさん:2015/03/25(水) 18:08:01.36 ID:N9g82RNH
今のペースだと3.10または4.0は2023年ころ
互換性を壊してまで変えたいものがなければ
Perl5のようにずっと3系が続くと予想してる

803 :デフォルトの名無しさん:2015/03/25(水) 21:47:33.53 ID:4eLreSQE
2つの関数の別のローカル変数に同じ名前を使うのはできるだけ避けるべきでしょうか?
それとも気にしなくてもいいのでしょうか?
簡素化した例をかいてみました
http://ideone.com/o0Whl7

804 :デフォルトの名無しさん:2015/03/25(水) 22:14:06.02 ID:fuG7BCjB
気にしなくてもいい
むしろあわせたほうがよさそう
例えば、Managerクラスのインスタンスは必ずmgrではなくmanagerに代入する、など

でも今回の例だとshoppingのnum_appleはnum_itemにしたほうがいいと思う
(おそらく)shoppingの引数はりんごってことに依存しないのに、引数がnum_appleになってると紛らわしいから

805 :デフォルトの名無しさん:2015/03/26(木) 10:32:43.78 ID:ZAP9cAHT
ctypes で python 側のメモリ領域を渡したい場合
create_string_buffer() するしかないですか?
既にある str 型の hoge に対してその中のメモリ領域に書き込みたいのです
テスト用の DLL 作って c_char_p(hoge) を char *hoge で受けて書き換えても
python 側の hoge の中身は書き換わりませんでした

806 :デフォルトの名無しさん:2015/03/26(木) 12:22:07.15 ID:ml9CMOKh
>>805
そういう危険な事をしてはいけません…イミュータブルなオブジェクトを変更すると
ハッシュが無意味になったり、その結果、内容が違うのにイコールとか戯けます
という建前はさておき…それUnicodeならc_wchar_pじゃないのと思ったら…

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

bytesなら3でも書き換えられるけど…簡単にアドレス取得は方法ってなかったっけかな
id()にフィールドオフセット加算してくすねてくるのは嫌らしいし

807 :806:2015/03/26(木) 12:38:22.83 ID:ml9CMOKh
あーPython上だけで考えちゃったけどpy_objectとして渡して
C側でPython/C API使っていじるとか…いよいよもって破壊的というか
もはやPythonモジュールになってしまうな、そしたらもうbytearrayでも使った方が…

808 :デフォルトの名無しさん:2015/03/26(木) 13:15:00.63 ID:SuVdMCRs
PIL の im.tostring() とか
PyOpenCV の iplimage.imageData とか
bytearray じゃなくて str なんですよね
素直に Python モジュールで書いた方が良いのかな

809 :デフォルトの名無しさん:2015/03/26(木) 13:49:26.54 ID:ml9CMOKh
>>808
うん…?ちょっと待って、それはそれ自体コピーじゃないの?
PILくらいしかそれもちょっと触ったことしかないけど、
ピクセル操作ならputpixelするとか、from*系で戻すとかしないとダメじゃない?

810 :デフォルトの名無しさん:2015/03/26(木) 15:12:06.80 ID:SuVdMCRs
im.tostring() はコピーかもしれないですが(こっちは直接変更するつもりないです)
iplimage.imageData はコピーじゃないと思ってるんですがどうなんでしょう?
iplimage.imageData の指してるアドレスの内容を変更したいです
cvSetData とかはあるようですがこれは全部を置き換えるものみたいで効率悪いんです

811 :デフォルトの名無しさん:2015/03/26(木) 17:05:39.65 ID:H+EftXlX
Rubyのbundlerみたいにプロジェクトごとにパッケージをインストールする方法って
仮想環境を作る以外にはないですか?
プロジェクトごとに仮想環境を作るとバージョンアップした時に作りなおさないといけないし
プロジェクトが増えるに連れて仮想環境にコピーされる実行ファイルとか諸々のファイルサイズも気になりだしてきたので・・・

812 :デフォルトの名無しさん:2015/03/26(木) 19:14:32.25 ID: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が何やってるか知ってれば
こんな質問出てこねえよなあ〜
本当にこんな下々までプログラミングを広めて良いことがあるんだろうか?
飯の種に普及を図ってるようにしか見えねえや

813 :デフォルトの名無しさん:2015/03/26(木) 20:09:42.08 ID:ml9CMOKh
>>810
ざっと見た限りその辺レガシーAPIではないの、pyopencvとopencv触ってみた感じ
ndarray返してきて書き換えれば済んだけど、どっから出てくるのそいつら

814 :デフォルトの名無しさん:2015/03/26(木) 21:39:52.99 ID:qFS8A6Q1
bundlerって何やってるんですか?

815 :デフォルトの名無しさん:2015/03/26(木) 21:43:36.08 ID:qFS8A6Q1
pip freeze > requirements.txtはグローバルなパッケージのほうを記録しちゃってますけどどうしてですか?

816 :デフォルトの名無しさん:2015/03/26(木) 22:51:30.44 ID:GMm8z4wV
ファイルを開いた時
f.read()[1:]
これでエラーになるのは何でですか?

817 :デフォルトの名無しさん:2015/03/27(金) 03:08:20.78 ID: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言語ではこのように、書き込みできる・できない領域を、
別々に管理しています

818 :デフォルトの名無しさん:2015/03/27(金) 03:54:25.26 ID:zZgFJ1tm
ありがとchar

819 :デフォルトの名無しさん:2015/03/27(金) 05:29:08.14 ID:nMQwVixl
ちんちん擦ってると気持ちよくなってくるのはなんでなんですか!? (><。

820 :デフォルトの名無しさん:2015/03/27(金) 16:16:59.32 ID:P27u+k0y
いま、みんなのpython読んでるところなんだけど
rubyやpearlに比べてpythonが優れてる点って何なのですか。

ユニークで楽しいとは感じますが、まだ文法理解段階なので
これだ!とぐっとこないもので・・

821 :デフォルトの名無しさん:2015/03/27(金) 17:37:25.30 ID:MKjiVFgc
[1,2,2,3] - [2] = [1,2,3]みたいにする方法教えてください
リストから集合に直して引き算すると2が全部消えて[1,3]ってなるので困りました

822 :デフォルトの名無しさん:2015/03/27(金) 19:58:57.57 ID:FOIXdkU1
>>821
set([1,2,2,3])

823 :デフォルトの名無しさん:2015/03/27(金) 20:05:42.07 ID:FOIXdkU1
>>821
list(set([1,2,2,3]))
すまん。こうゆう事で良い?

824 :デフォルトの名無しさん:2015/03/27(金) 20:10:25.29 ID:kqEHE0zo
>>821
a = [1, 2, 2, 6, 2, 3, 3, 4, 3]
b = [2, 3]
for i in b:
del a[a.index(i)]

825 :デフォルトの名無しさん:2015/03/27(金) 20:35:33.34 ID:0J1GAupe
>>821
[1,2,2,3]から2を一つだけ削除したいってことなら
a=[1,2,2,3]
a.remove(2)
破壊的なのがいやだとしたらいったんコピーしてからにするしかないかなあ何か別の方法あるかなあ

826 :デフォルトの名無しさん:2015/03/28(土) 03:45:43.32 ID:vFtQyJKT
>>820
実行速度が速い、リスト内包表記と、
読み取りのみで、書き込みできない(const)タプル

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

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

tmp = f()
x < tmp && tmp < y

827 :デフォルトの名無しさん:2015/03/28(土) 04:24:03.94 ID:dPReY2nw
x < (tmp = f()) && tmp < y

828 :デフォルトの名無しさん:2015/03/28(土) 10:34:49.36 ID:aQI1vv/L
>>804
ありがとうございます!
アドバイスにある一般化できる名前を使いたいと思います

829 :デフォルトの名無しさん:2015/03/29(日) 10:46:06.21 ID:OKj2Wzwc
mathなどPythonで書かれていないメソッドの引数情報を取得したいのですが方法ありますか?
inspectではpythonではないとエラーになります。
import inspect
import math
inspect.getargspec(math.floor)

830 :デフォルトの名無しさん:2015/03/29(日) 12:15:19.66 ID:b22zekXj
python docsの翻訳でtransifexが使われているけどこれは個人で借りてるの?
どこかから寄付を募ってるの?

831 :デフォルトの名無しさん:2015/03/29(日) 19:03:17.14 ID:U/seMwAy
オープンソースプロジェクトは無償で使える
Pricingのページをよく読め

832 :デフォルトの名無しさん:2015/03/29(日) 23:59:34.92 ID:yeDB6SnO
>>829
inspectのライブラリリファレンスを読むと、
特定の実装のC定義関数は引数情報を提供してないっていう書き方なので、
あとはソースコードを読むぐらいじゃないですかね

833 :デフォルトの名無しさん:2015/03/30(月) 01:42:37.41 ID:gGNMsyQm
助けてぇ!初心者ですぅ!
min関数の実装をしているのですが、
maxの場合は、
最初に maxv = Noneとしておけば
if maxv < val:
maxv = val
で更新出来るのですが

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

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

もしよければ、絶対的な最大の値ってなんでしょうか、教えてくださいm(__)m

834 :デフォルトの名無しさん:2015/03/30(月) 02:08:42.08 ID:iRUXlAgw
何をしたいのかイマイチ伝わらんぞ
コード貼れコード

835 :デフォルトの名無しさん:2015/03/30(月) 02:50:49.70 ID: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 を代入させればいいだけのことなのですが

836 :デフォルトの名無しさん:2015/03/30(月) 03:07:11.23 ID:mMzd4deT
>>835
横からだけどminv=args[0]にしてfor文でargs[1:]を処理するといいよ
ちなみに数の無限はfloat('inf')で作る
ていうかinfの作り方とか初めて知ったわ

837 :デフォルトの名無しさん:2015/03/30(月) 13:50:49.37 ID:FyB5h3Ft
メーリングリストのメールアドレスの人は同一人物なのかな
ああいうのをメーリングリストで質問する神経が分からん
2ちゃんとか知恵袋で質問するようなことだろ

838 :デフォルトの名無しさん:2015/03/30(月) 15:19:14.24 ID:gGNMsyQm
>>836
ありがとうございます
minv=args[0]の方が楽に書けますね

infも内蔵されているのか
知らなかった

839 :デフォルトの名無しさん:2015/03/31(火) 10:01:44.02 ID:vSVUohv/
WindowsでPythonプログラミングしてるウンコに朗報だよー

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

のパッケージがインストーラー形式からwhl形式になったよ
pipでvirtualenvに入るよ
やったね

840 :デフォルトの名無しさん:2015/03/31(火) 11:33:56.34 ID:B5kKsNTd
from . import a

.を使った書き方を見るんですが
この.ってなにを意味してるんですか?

841 :デフォルトの名無しさん:2015/03/31(火) 11:54:08.82 ID:vSVUohv/
相対インポート

842 :デフォルトの名無しさん:2015/03/31(火) 16:18:18.04 ID:iKp7SUfR
なるほどその相対インポートってのを絶対パスを求める方法ありませんか?

843 :デフォルトの名無しさん:2015/03/31(火) 17:30:58.69 ID:vSVUohv/
__file__変数

print a.__file__

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

確実な方法がない理由は
そもそもモジュールはファイルでなくてもよく
ファイルシステムに存在することも必須でないから

845 :デフォルトの名無しさん:2015/03/31(火) 17:54:11.80 ID:vSVUohv/
http://ja.pymotw.com/2/sys/imports.html
ここにshelveからインポートする例がある
応用するとgithubなんかから直接インポートするようにもできる
意味があるかはともかく

846 :デフォルトの名無しさん:2015/03/31(火) 18:47:39.74 ID:c/ex+3Fj
正規表現で、( )を認識させるためにはどうすればいいですか?

847 :デフォルトの名無しさん:2015/03/31(火) 18:49:51.04 ID:UlHxCFJ1
正規表現 エスケープでググレ

848 :デフォルトの名無しさん:2015/03/31(火) 19:08:32.94 ID:c/ex+3Fj
ありがとうございます
円で一度やってみてできなかったので
間違っているのかと思いましたが、
バックスラッシュでできました

849 :デフォルトの名無しさん:2015/04/01(水) 01:59:32.71 ID: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'

というエラーが出てしまいます
どうしたらいいんでしょうか?

850 :デフォルトの名無しさん:2015/04/01(水) 02:25:42.80 ID:mF7dj2uB
data[0]が"123"じゃなくて"\xef\xbb\xbf123"だからintで変換できない
BOMがついてるからBOMなしでUTF-8で保存できるエディタでtext.txtを編集しな

851 :デフォルトの名無しさん:2015/04/01(水) 05:06:59.46 ID:ZJ6YoV9V
fp = open('file.txt', encoding='utf-8-sig')

852 :デフォルトの名無しさん:2015/04/01(水) 11:57:44.67 ID:m6CSw1kp
お二人さんとも有り難うございました!

853 :デフォルトの名無しさん:2015/04/01(水) 13:31:19.54 ID:E9lgPX7z
ラズパイでさわってるが、JavaScriptよりも、利便性が高い部分も
結構あるねこのスクリプト言語。

854 :デフォルトの名無しさん:2015/04/01(水) 13:46:10.07 ID:CKq6Lt/0
$とかendとか書くのが嫌いだからぼくはPythonを使い続けるよ

855 :デフォルトの名無しさん:2015/04/02(木) 13:41:52.61 ID:hZpl+TDZ
python2のraw_input()はpython3ではinput()ですが
python2のinput()はpython3ではinput()ではありませんよね
2と3どっちでも使える書き方をでんじゅして

856 :デフォルトの名無しさん:2015/04/02(木) 14:04:58.34 ID:qqPJ8aIO
Python2.7には、__future__ モジュールに、
3の新機能がバックポートされている

また、2to3 というツールで、2の記述を、3へ変換できる

857 :デフォルトの名無しさん:2015/04/03(金) 11:16:23.19 ID: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)

858 :デフォルトの名無しさん:2015/04/03(金) 11:36:23.32 ID:leLHgqx2
AMC()を全角文字で書いてるな
これは文字列リテラルにuプレフィックスを付けてユニコード文字列にすれば期待してる動作になるかも

859 :デフォルトの名無しさん:2015/04/03(金) 13:00:00.52 ID:/gPIw7xI
pythonでwebサーバ立ち上げる場合ってサイト数だけサーバ起動コマンドを撃たないとダメなんですよね
10とか20もサイトあるとそれだけコマンドを撃たないとダメなんですか?
こういうものなんですか?
PHPより面倒くさいですね

860 :デフォルトの名無しさん:2015/04/03(金) 13:44:31.46 ID:s3ZVtSco
>>858
ありがとうございます。以下の様にしたら期待通りの結果になりました。
#coding:utf-8
import re
str=u'A(M)C'
print re.sub(u'[((]M[))]','',str)
print re.sub(u'(M)','',str)

861 :デフォルトの名無しさん:2015/04/03(金) 16:03:48.78 ID:I1Qw0OFj
>>859
自動化すればいいと思うのですが?
venvとuwsgiでの設定例なら
upstartはググればすぐ出るし、
sysvintもよく探せばありますよ。
systemdは…偉い人たちが書いてくれるのを待ってる最中です。

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

Pythonエンジニア養成読本が発売されるようです。初心者の私としてはuwsgi・gunicorn・sqlalchemyなどが詳しく解説されている事を願うばかりです。

862 :デフォルトの名無しさん:2015/04/03(金) 16:26:38.12 ID:fygFc6bt
GPIOから流れてくるシリアルデータを受けたらテキストにデータを書き込み
受けたら書き込むというのを繰り返すコードを書きたいのですが、どんな形
で書いたら良いのでしょうか?

またその場合、プログラムは常駐しないと行けないとおもうのですが、特にここ
がわかりずらくて。常駐して待機していて、GPIOから流れてくるデータを受けたら
テキストに書き込むなんて出来るんでしょうか?

863 :デフォルトの名無しさん:2015/04/03(金) 16:56:30.30 ID:QYeOKX2q
>>862
ステートパターン
フラッシュ

864 :デフォルトの名無しさん:2015/04/03(金) 17:57:33.49 ID:aV58CpUC
GPIOとのアクセス方法が不明だけど
単純にスリープはさんでポーリングかな。
それをステートパターンでやるかはどーでもいいかと。
もしこれだけの単機能プログラムじゃないなら
読み書きで別スレッドにして受け渡しすることになると思う。

865 :デフォルトの名無しさん:2015/04/04(土) 01:45:30.14 ID:knpZoffv
>>862
Raspberr Piかな?
USBとか、UARTからシリアルデータ受信なら分かるけど、
GPIOでシリアルデータ受信?

866 :デフォルトの名無しさん:2015/04/04(土) 01:50:59.00 ID: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()

867 :デフォルトの名無しさん:2015/04/04(土) 12:42:54.92 ID:0/1TDv54
>>861
でもコマンドの数だけプロセスが立ち上がるじゃないですか
MySQLの場合は起動は1つだけでいいのでどこに発狂する材料はあるんでしょうか

868 :デフォルトの名無しさん:2015/04/04(土) 13:26:23.20 ID:8tbUo2zR
pyenv使うと環境変数PATHのトップに/usr/binが追加された状態でpythonが動作してるみたいなんだけど
これって何か理由があるのかな
出来れば追加をやめたいなあと思いpyenv内をexport PATHとかでgrepしても追加箇所が見当たらずよくわからん

pythonからruby呼び出しがrbenv経由にならなくてハマった

869 :デフォルトの名無しさん:2015/04/04(土) 13:46:54.64 ID:ieuO4P1x
それ本当にpyenv関係あるの?

870 :デフォルトの名無しさん:2015/04/04(土) 16:49:31.73 ID: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?)

何か良い方法ないでしょうか?

871 :デフォルトの名無しさん:2015/04/04(土) 17:10:49.44 ID:N4lx0lGg
>>867
まじめな話だけど
馬鹿には無理

872 :デフォルトの名無しさん:2015/04/04(土) 17:21:08.88 ID:8tbUo2zR
>>869
pyenvでバージョンをsystemにしておいても
python(つまりpyenv経由)からos.environ["PATH"]を表示すると最初に/usr/binが入っていますが
/usr/bin/pythonから同様にPATHを表示すると入っていません(先頭の/usr/binを除けば同じ)

2環境(どちらもUbuntu14.04)で確認してどちらも同様だったのでpyenvが設定しているのでは、と見ています

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

systemでのみパスが追加される理由はわからないですが自分の問題は解消しました
ありがとうございますお騒がせしました

874 :デフォルトの名無しさん:2015/04/04(土) 18:22:30.45 ID:Im19kqOF
>>870
エンコーディングが判明しているなら
responseをcodecs.StreamReaderでラップしてやればいい
本当に初心者ならハードル高いかもね

俺なら
csv.reader(io.StringIO(requests .get(url).text))
とかやっちゃうかな
標準ライブラリ縛りみたいな、無駄な拘りがなければ

875 :デフォルトの名無しさん:2015/04/06(月) 07:24:32.76 ID:PufGX+Fr
>>863-866
サンクス。

今日家に帰ったら早速やってみようと思います。

876 :870:2015/04/06(月) 12:00:16.96 ID: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で試してみると[', ']や改行?の[]が入っているようです。
上記の方法でやればこのようなことにはならないのでしょうか?

877 :デフォルトの名無しさん:2015/04/06(月) 12:33:37.79 ID:b9yIKEaO
やってみてから言えばいいだろう…

行イテレーターを取る関数に文字イテレーターを渡してるから
関数は「一行に一文字しか書かれていないcsv」として処理してしまうわけ

878 :デフォルトの名無しさん:2015/04/06(月) 13:19:41.59 ID:PqzogR9Z
>>876
教えてもらったコードの意味をググって勉強しろよ
s = "abcde"
for c in s: print(c)
print(s)

879 :870:2015/04/06(月) 13:55:04.81 ID: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でラップについては勉強します。

880 :870:2015/04/06(月) 14:04:20.87 ID:WONhOiZc
>>877
CSVでもダブルクォーテーションで囲む文字列文字は文字列で処理されています。

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

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

CSVの仕様でダブルクォーテーションで囲まないため1文字ずつの処理になっているのだと思います。

881 :デフォルトの名無しさん:2015/04/06(月) 14:45:47.80 ID: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)

882 :870:2015/04/06(月) 15:05:00.21 ID:WONhOiZc
>>881
そうなんですか勉強不足ですみません。

プログラムありがとうございます。
勉強させていただきます。

883 :デフォルトの名無しさん:2015/04/07(火) 14:56:04.94 ID:kjLpHpnX
python-pipとpipの違いってなんでしょうか?
両方いれるとまずいのでしょうか

884 :デフォルトの名無しさん:2015/04/07(火) 15:26:45.84 ID:jnQKtoWz
python-pipってどうせyumとかの奴だろ
古いしシステムのPythonは必要に迫られない限り変更すべきでない

pyenv使うなりソースインストールするなりで/optや$HOME下にいれて
パスを張って使え
pipが使いたくてPython2.7.9かPython3.4なら
python -m ensurepipとすればpipが入る

885 :デフォルトの名無しさん:2015/04/07(火) 16:14:31.84 ID:kjLpHpnX
>>884
ありがとうございます。

886 :デフォルトの名無しさん:2015/04/08(水) 19:34:05.59 ID:vhF88cmZ
pyenvとvirtualenvで仮想環境作ったけど
メインのバージョンの方を削除して新しいバージョンをいれた
そうしたら仮想環境を削除して作りなおさないといけないんですか?
またpipでインストールしなおさないといけないんですか?
ちょうだるい何かいいほうほうないっすか?

887 :デフォルトの名無しさん:2015/04/08(水) 20:08:31.78 ID:bA5nfYlZ
残念でした
ありません
もうこの辺でプログラミングから足を洗いましょうそうしましょう

888 :デフォルトの名無しさん:2015/04/08(水) 23:29:17.83 ID:i5GFx/ek
fabric

889 :デフォルトの名無しさん:2015/04/09(木) 18:49:45.06 ID:zb+p9PTi
ねー、メソッド版map関数みたいなのにゃい?

890 :デフォルトの名無しさん:2015/04/09(木) 18:51:52.08 ID:j3QfwzLY
エスパーすると、メソッドチェーンしたいのかな

891 :デフォルトの名無しさん:2015/04/09(木) 19:00:36.55 ID:96U9YCId
エスパーきてんね

892 :デフォルトの名無しさん:2015/04/09(木) 19:27:20.99 ID:zb+p9PTi
初心者だから何言っているのかわかんにゃい
メソッドチェーンでググったけど
Pythonは関数型言語で必要最小限の関数しか標準実装されてないからないってことでおk?
JavescriptとかRubyはあるのね

893 :デフォルトの名無しさん:2015/04/09(木) 19:27:39.47 ID:fQtolgaH
Pythonにメソッドなんて用語あったっけ?

894 :デフォルトの名無しさん:2015/04/09(木) 19:32:16.77 ID:zb+p9PTi
Pythonスタートブックって本読んでるけど
データ型にメソッド付随するみたいなこと書いてあるお

895 :デフォルトの名無しさん:2015/04/09(木) 20:35:44.30 ID:vzdfR+u8
リストにlen属性を持たせないでlen関数使えとか言ってる言語ですよ
お察し

896 :デフォルトの名無しさん:2015/04/09(木) 23:52:13.62 ID:OhY+HYh2
シーケンス型のオブジェクトそれぞれにlengthプロパティ持たせるよりも、標準関数としてlen()実装したほうが一貫性あると思うよ
ていうか、何でリスト限定なの

897 :デフォルトの名無しさん:2015/04/10(金) 10:52:33.19 ID:PAmS8Ow4
>>896
釣りにマジレスしとるぞ
__len__

898 :デフォルトの名無しさん:2015/04/10(金) 10:53:06.45 ID:IGMdEJ+n
>>896
釣りにマジレスしとるぞ
__len__

899 :デフォルトの名無しさん:2015/04/10(金) 12:42:26.36 ID:U/3ufYu+
ここは釣りにマジレスする流れでしょうか

900 :デフォルトの名無しさん:2015/04/11(土) 14:08:14.55 ID:BGNFw9vt
これからPython勉強するんすけど
Pythonのオブジェクト指向機能は
いわゆるJava的サンプルコードで語られることの多い
種々のデザインパターンを網羅できますかね?
それとも仕様のせいで実現困難なパターンもある?

901 :デフォルトの名無しさん:2015/04/12(日) 06:58:04.10 ID:P+OLIv+p
初心者です><
http://ideone.com/rMcVdn
このコードで、32行目のprint (ans) は表示されるのですが
78行目の print (route)は None になります
どこがおかしいのでしょうか?

902 :デフォルトの名無しさん:2015/04/12(日) 07:20:06.77 ID:iQq4nskB
>>901
checkioは再帰関数のようですが、再帰部分のreturn文が足りないように見えます
44, 53, 63行目の部分を修正しました
http://ideone.com/yYx9jq

903 :デフォルトの名無しさん:2015/04/12(日) 07:26:25.72 ID:P+OLIv+p
>>902
ありがとうございますm(_ _)m
おかげ様で助かりました

904 :デフォルトの名無しさん:2015/04/17(金) 03:58:07.93 ID:9h0FsUev
特定の座標をクリックさせるにはどうすればいい?

たとえば、「デスクトップ画面の左から100,上から100の位置をクリックする」みたいな。

905 :デフォルトの名無しさん:2015/04/17(金) 07:28:00.40 ID:737hTa9W
ctypesでSendInputを呼ぶ
サンプルはググれば腐るほどあるので書かない

906 :デフォルトの名無しさん:2015/04/17(金) 18:47:14.44 ID:9h0FsUev
>>905
ありがと
でけた

907 :デフォルトの名無しさん:2015/04/18(土) 09:12:51.42 ID:DNbLuOB8
Windowsだとpyqtの新しいバージョンを入れるのが楽だけど
linuxだとソースコードから入れないと行けないからpyqt5は実用的ではない
pyqt4を使うかpysideを使うべきだ

908 :デフォルトの名無しさん:2015/04/18(土) 10:32:32.37 ID:TNGwH1Lz
ふぁ〜

909 :デフォルトの名無しさん:2015/04/18(土) 15:18:15.14 ID:UFFh6cBw
https://github.com/tweepy/tweepy/pull/574
このコミットをpipでインストールしたtweepyに反映させたいのですが
どういう方法でやれば今後のpip経由のupdateには影響させずにできるのでしょうか?

910 :デフォルトの名無しさん:2015/04/18(土) 17:48:22.11 ID:TNGwH1Lz
どういう方法もないよ
諦めて

911 :デフォルトの名無しさん:2015/04/18(土) 17:58:09.61 ID:TNGwH1Lz
pip install -Uは古いバージョンを削除して新しいバージョンをインストールする機能しかないので
次にupdateする時に、変更のあったファイルだけよしなに対応するような機能はないって意味ね

修正自体は直接ファイル弄るなり、pypiからソース取ってきてパッチ当てて
setup.pyするなりpip installするなりしたらいい

912 :デフォルトの名無しさん:2015/04/18(土) 23:39:32.23 ID:b4TBs1Oe
馬鹿か

コミットid指定してインストールできるだろ

913 :デフォルトの名無しさん:2015/04/19(日) 19:54:41.97 ID:GdN6icOR
インストールした後にrequirement.txtにコミット指定で書けば出来るんじゃないの
モバイルのパケット代もったいないから試してないけど人柱として試してみてね

914 :デフォルトの名無しさん:2015/04/23(木) 14:41:11.03 ID: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 を動かす方法

を説明できる方がいらっしゃいますでしょうか?

915 :デフォルトの名無しさん:2015/04/23(木) 15:05:18.54 ID:atwBzKak
馬鹿には無理

916 :デフォルトの名無しさん:2015/04/23(木) 16:38:17.44 ID:0VCN8LwS
このご時世でなんでポータブルにする理由を説明するべきだ

917 :デフォルトの名無しさん:2015/04/25(土) 05:48:49.79 ID:7hIFO1+/
for (i=2; i<20; i*=2){
}
これをpythonのfor文で書くにはどうすればいいでしょうか?
while を使うべきでしょうか?

918 :デフォルトの名無しさん:2015/04/25(土) 09:55:31.18 ID:1ezOf5+0
>>917
for i in range(2, 20):
  i *= 2

919 :デフォルトの名無しさん:2015/04/25(土) 11:05:12.66 ID:GiqwOUcG
>>917
どうしてもfor文でやりたいならこんなのはどう?

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

>>918
結果出力してみろよ

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

from itertools import accumulate, repeat, takewhile
for i in takewhile(lambda x: x < 20, accumulate(repeat(2), int.__mul__)):
    print(i)

921 :デフォルトの名無しさん:2015/04/27(月) 06:57:48.75 ID:4xONkpCF
>>914 です。自分で解決できました。

Enthought は dll に細工をしているようです。 Python ディレクトリの下の DLLs ディ
レクトリ以下を全部コピーしてやったら sight-packages\enthought ディレクトリに
__init__.py がないままで import enthought が可能になりました。どの dll ファイル
が その効いているのかまでの確認はとっていません。

922 :デフォルトの名無しさん:2015/04/27(月) 07:07:15.35 ID: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 も同
じ理由で設けられている。

923 :デフォルトの名無しさん:2015/04/27(月) 15:13:31.26 ID:YYXELk6X
それがどうかしましたか?

924 :デフォルトの名無しさん:2015/04/28(火) 08:22:29.03 ID:r3QjeWTk
if "a" < "b": print "OK"

この場合にOKと出力されるのですが
文字で比較する場合のルールってあるんですか?

925 :デフォルトの名無しさん:2015/04/28(火) 17:52:48.93 ID:m+/hFxfU
キャラクタコード順

926 :実は男:2015/04/28(火) 22:32:29.43 ID: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

927 :デフォルトの名無しさん:2015/04/29(水) 18:56:35.62 ID:gd7dN52B
>>926
グロ

928 :デフォルトの名無しさん:2015/05/04(月) 16:33:24.41 ID:WcXi0Dqd
import ast
print(ast.literal_eval('3*2'))

足し算引き算は問題ないのに割り算掛け算はえらーになります
どうしてですか?

929 :デフォルトの名無しさん:2015/05/04(月) 17:05:45.47 ID:sKsouBLL
複素数リテラルの表現に必要だから
+と-だけ使えるようになっているらしい

930 :デフォルトの名無しさん:2015/05/04(月) 17:33:46.03 ID:SL6Le6HD
なるほどeval使うようにします

931 :デフォルトの名無しさん:2015/05/05(火) 00:33:29.74 ID: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

932 :デフォルトの名無しさん:2015/05/05(火) 00:58:13.81 ID:/B8D9JT8
すみません
http://ideone.com/CzVnhF

sum.()
のところでエラーが出てるらしいのですが、理由がわかりません
どなたかわかる方はいらっしゃいませんか?

933 :デフォルトの名無しさん:2015/05/05(火) 01:14:55.73 ID:WXcigvGr
エラーを読みなさい
float(2m)のmがおかしいと言ってるぞ
このmはなんだ?何のつもりでつけた?

934 :デフォルトの名無しさん:2015/05/05(火) 01:25:25.08 ID:/B8D9JT8
>>933
ありがとうございます
公式を見ながらやったので、2 * m にしなければいけないことをすっかり失念していました
http://i.imgur.com/SOnX5u9.png

>float(2m)のmがおかしいと言ってるぞ
これはどうやってわかったのですか?

935 :デフォルトの名無しさん:2015/05/05(火) 01:29:53.69 ID:WXcigvGr
Syntax Errorの行の上にハット記号(これ→^)が出てるだろ
そこが構文解析に失敗した位置を示してる

936 :デフォルトの名無しさん:2015/05/05(火) 01:37:25.45 ID:/B8D9JT8
あ、これsum()の後ろのことではなく、一行上の2mのことだったんですね

ありがとうございます、ひとつ勉強になりましたm(__)m

937 :デフォルトの名無しさん:2015/05/08(金) 15:13:32.45 ID:3zw8TVPp
リストに入っている全ての文字列群から、二番目の文字と三番目の文字を取ってきて新しいリストを作りたい
これ簡単に書くにはどうしたらいい?低レベルですまん

938 :デフォルトの名無しさん:2015/05/08(金) 19:14:26.89 ID:jdfB6B/G
全くのサイト制作初心者です

with open() as f
f.write()

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

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

JSON?SQL?

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

どれを使うにしても、その際に有用な関数なども教えていただければ幸いです

939 :デフォルトの名無しさん:2015/05/08(金) 20:03:18.24 ID: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)

940 :デフォルトの名無しさん:2015/05/08(金) 20:13:07.27 ID:rtQrrRIy
>>938
サイトって何よ
cgiでも動かしてんの?

941 :デフォルトの名無しさん:2015/05/08(金) 21:16:53.81 ID:sB39VK3e
>>939
ありがとう!
思ったより難しかった
こういうのすらすら書けるようになりたい

942 :デフォルトの名無しさん:2015/05/09(土) 01:54:28.71 ID:9BMlX8/l
>>940

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

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

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

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

まずは、ファイル書式関係かな?と思って質問してみました

943 :デフォルトの名無しさん:2015/05/09(土) 02:30:08.01 ID:5NEoo1tP
あなたの言うPythonの基本って何だい
プログラミング初心者ってことならドットインストールでも見てきなよ
Webアプリに突撃するには10日早い

944 :デフォルトの名無しさん:2015/05/09(土) 02:56:38.93 ID:5NEoo1tP
一応質問にもアドバイスする
回答とは違う

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

コンマ区切りで済むならそれで構わない
コンマ区切りを採用するなら、単純に文字列のsplitメソッドを使うか
csvモジュールを使えばいいだろう

945 :デフォルトの名無しさん:2015/05/09(土) 10:53:52.49 ID:gwDj3Ooh
ここは科学技術計算系(anaconda3)の質問はスレ違いでしょうか?

946 :デフォルトの名無しさん:2015/05/09(土) 13:14:22.15 ID:8RFySLN3
age

947 :デフォルトの名無しさん:2015/05/09(土) 19:26:11.48 ID:EIjgNRBm
{ "text" : text , "tel" : tel , "address" : address }

こんな風にキーの名前とvalueの変数名が同じdictを簡潔に書けないでしょうか?
つまりtextとかtelを二度書きたく無いんです

948 :デフォルトの名無しさん:2015/05/09(土) 19:42:50.62 ID:5NEoo1tP
localsとかglobalsを使えばできないこともない
あまり勧められたものでもないが

949 :デフォルトの名無しさん:2015/05/09(土) 20:10:35.27 ID:l4fGqUab
クラス設計でインスタンス変数をそれぞれ設定していくべきか、辞書を使って一纏めにしてしまうべきか悩んでいます。
具体的には、
self.itemA = 0
self.itemB = 0
...
としていくか、
self.itemBag =
{
"A": 0,
"B": 0,
...
}
のどちらにすべきか、です。
パフォーマンスは求めていませんが、見やすさ、設計の利点などの違い、あるいは好みでどちらにすべきかなどの意見はありますか?

950 :デフォルトの名無しさん:2015/05/09(土) 20:28:16.96 ID:5NEoo1tP
どういう属性かによるね
関連性があるならグループ化する価値はあるだろう

951 :デフォルトの名無しさん:2015/05/09(土) 20:41:31.62 ID:v8DO1laq
そのほかの箇所での設定や参照時も一緒に設定参照するのなら纏める
そうでないのなら逆に見づらくなる気がするから自分なら纏めない

952 :デフォルトの名無しさん:2015/05/10(日) 01:52:02.10 ID:Oozs+Vkj
初心者は、この本を読め!
みんなのPython 第3版

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

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

一方、CSV(カンマ区切り)では、テキスト中にカンマが使えないし、
空白区切りなら、空白が使えない。
タブ区切りなら、タブをテキスト中に使うことはないので良さそう

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

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

プログラミングもDBもサーバーもネットワークの仕組みもこれから勉強します、
という人がPythonでwebアプリケーション作るのはかなり茨の道
Pythonは良い言語だけどあまりwebアプリには向いてない、というか他にいいのがたくさんある

954 :デフォルトの名無しさん:2015/05/10(日) 10:57:44.24 ID:rm3zFp4J
>>952
>CSV(カンマ区切り)では、テキスト中にカンマが使えないし、

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

Say,"Hello, world."

みたいに。

955 :デフォルトの名無しさん:2015/05/10(日) 16:18:26.18 ID:YEjf3LrX
課題を与えてくれて手を動かしてpythonの練習できるサイトかプログラムってありませんか?
ここは良い感じだったんですがクリアしちゃったので次が欲しいです
http://www.codecademy.com/en/tracks/python

956 :デフォルトの名無しさん:2015/05/10(日) 16:36:49.26 ID:5/fle6rz
>>955
Project Euler

957 :デフォルトの名無しさん:2015/05/10(日) 18:22:15.58 ID:nPMc7tjQ
>>955
CheckIO
https://www.checkio.org/

958 :デフォルトの名無しさん:2015/05/10(日) 19:17:13.50 ID:nPMc7tjQ
>>955
あとAOJ。
http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja

959 :デフォルトの名無しさん:2015/05/10(日) 20:41:01.80 ID:YEjf3LrX
>>956
面白そうですね ただ自分はまだ指がpythonの作法を覚えていないので、サンプルコードがあるところで下積みしてからやってみます

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

おふたりともありがとうございます!

960 :デフォルトの名無しさん:2015/05/11(月) 00:09:09.73 ID:AF0vPJsi
将来使いたいとライブラリが python 2.7 なんで2をインストールしたんですが、基本を勉強するとき2でやるか、3にしておくか悩みますね・・・
2でやろうとしたけどchekioの回答者が95%ぐらい3だった・・・

961 :デフォルトの名無しさん:2015/05/11(月) 13:24:17.22 ID: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}]}

962 :デフォルトの名無しさん:2015/05/11(月) 13:59:13.97 ID:X7iHjzbj
3は動物的感覚で最初から完全無視していたんだが普及しているの?マジ?

963 :デフォルトの名無しさん:2015/05/11(月) 14:34:01.04 ID:pp+etNv4
別に普及してないけど、3が使えて2が使えない人間はいない
逆もいないが、だったら新しい方で勉強するってことじゃねーの

>>961
君はどう書けたらいいと思うんだ?
理想型を提示してみろ
それができるかできないか答えよう

964 :デフォルトの名無しさん:2015/05/11(月) 16:14:14.42 ID:AF0vPJsi
>>963
分かり辛いと感じたのは、どこでリストが使われて、どこに辞書が使われるのか理解していないためでした
あとたぶんサンプルが特殊で、['result']以下には辞書データが一つしか入っていないのに、リストで二重に囲んであって、余計混乱したようです

965 :デフォルトの名無しさん:2015/05/11(月) 17:35:02.40 ID:VLJk5RL1
別の言語だと考えればいいよ

966 :デフォルトの名無しさん:2015/05/11(月) 19:55:56.52 ID:7oTr197Z
互換性が無いとはいえ最初の勉強程度では2でも3でも対して差はない
とりあえず新しいほうの3で勉強しとけば2への変換は苦じゃない

967 :デフォルトの名無しさん:2015/05/11(月) 22:22:51.09 ID:gmi0Ylrg
>>961
規則性があるんだったら、
自分でparserを書いちゃえばいいんでないかい?
そうすればややこしさに頭をひねるのは最初だけで済むし

968 :デフォルトの名無しさん:2015/05/11(月) 22:38:22.09 ID:QviOHirL
>>961
namedtupleあたりで頑張ってプロパティ名でアクセスできるオブジェクトを構築するとか

969 :デフォルトの名無しさん:2015/05/12(火) 14:59:24.56 ID:uttCTI7h
https://github.com/python-doc-ja/python-doc-ja/issues/684

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

"から"までのところが文字化けしてて読めないんですがなんて書いてあるのでしょうか?

970 :デフォルトの名無しさん:2015/05/12(火) 16:50:35.83 ID:xezKBhrJ
>>967
今回のはトレーニングで出てきたAPIなので、自分で繰り返し使うときはparserを書いてみます
>>968
使いこなせたら便利そうですね 黒魔術の香りが

971 :デフォルトの名無しさん:2015/05/12(火) 20:00:39.59 ID:xezKBhrJ
[' '] キー が出現頻度のわりにやたら打ち辛いのでキー割り当て変えてみたらすごい捗ることに気付いたw

シフト←→変換
[]←→() 

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

何語を使っているのかね?

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

deep learning(pylearn2)を使ってみたいので、
前者なら軽くなり、後者なら多くのリファレンスが使えるという点で迷っています。

974 :デフォルトの名無しさん:2015/05/14(木) 08:56:14.11 ID:PRhs144W
遊びたいだけならwinでいいんじゃね
俺ならvagrantでlinux使うが

975 :デフォルトの名無しさん:2015/05/14(木) 09:05:24.51 ID:8IgVcxu1
>>974
仮想環境ですが、考えていませんでした。ありがとうございます。試してみます。

976 :デフォルトの名無しさん:2015/05/14(木) 16:02:25.18 ID: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/

977 :デフォルトの名無しさん:2015/05/14(木) 16:26:56.71 ID:pnnMPsHS
Anacondaってこのスレではむしろトラブルしか聞かないな
初心者にはどっちが面倒なのか俺にはわからん

978 :デフォルトの名無しさん:2015/05/15(金) 23:49:43.22 ID:dTD9FlGn
googleのpython入門コースに出てくる問題

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

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

return

979 :デフォルトの名無しさん:2015/05/16(土) 01:18:21.74 ID:ZJDdRqxh
>>978
https://paiza.io/projects/M1kcgonXFtWObYaxL3x8Vg

980 :デフォルトの名無しさん:2015/05/16(土) 01:43:41.58 ID:KZsTuDhE
>>978
その入門コースってどこで見れるのか教えてください

981 :デフォルトの名無しさん:2015/05/16(土) 03:08:11.97 ID: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()

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

>>981
インデント消えた・・・

983 :デフォルトの名無しさん:2015/05/16(土) 07:09:00.95 ID:ZJDdRqxh
>>981
終了時処理を最初に書くのが、コツ。

984 :デフォルトの名無しさん:2015/05/16(土) 11:16:18.69 ID:OX3JiC1g
>>983
while文みたいな感じなんですね

985 :デフォルトの名無しさん:2015/05/16(土) 11:45:30.93 ID:SZ2m/aFp
この前に1時間で解けないと、って話題になった奴か?
解いてて思ったけど1時間で解けない奴は1日でも無理だろうし
そういうのを選別するのが目的であって
早く解けることは意味ないんだろうなと思った
8分で5問解けた

986 :デフォルトの名無しさん:2015/05/16(土) 14:08:12.61 ID:OX3JiC1g
>>982 の mimic.pyが面白いよー

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

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

ただしファイルの最初の単語は空文字 '' とし、辞書にない単語でつかえた場合は空文字を返す

987 :デフォルトの名無しさん:2015/05/16(土) 14:10:30.03 ID: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()

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

{
出現単語1 : [隣接単語1, 隣接単語2, 隣接単語3,,,,],
出現単語2 : [,,,],
出現単語3 : [,,,],
}

989 :デフォルトの名無しさん:2015/05/16(土) 17:10:57.24 ID:QT5s50C8
くだすれPython(超初心者用) その26
http://peace.2ch.net/test/read.cgi/tech/1431763770/l50

メール欄失敗してsageoffって入力しちゃった

990 :デフォルトの名無しさん:2015/05/16(土) 17:42:18.40 ID:ErqOsR1N
別にいいよ

991 :デフォルトの名無しさん:2015/05/16(土) 20:04:14.71 ID:Xo5bM6FI
ここは、埋め.

252 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)