くだすれPython(超初心者用) その25©2ch.net
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
┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは
>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
乙
おつ
7 :
デフォルトの名無しさん:2014/11/07(金) 07:53:53.16 ID:u+2F0oww
readやreadlinesに漠然とした恐怖感を感じることが第一歩だ。
gcの動きは?セキュリティホールは?スクリプト言語も実は楽じゃない。
そんなん気にする奴はスクリプト言語使わない
django一応チュートリアルだけ翻訳したけどこれ公開していいのかよくわかんないからメールで問い合わせたけど返信こねぇぞ
おれがメール出したのは本家のほうだぜ
やる気のない日本人のグループじゃない
チュートリアルのライセンスにすら目が行ってないのに本当に翻訳できてんですか?あ?
目くらはすっこんでな
もしくは電車に飛び込んでろ
(^_-)-☆
とりあえず無断で公開しとけば?
問題があるなら文句が来るでしょう
もっとも、本家が目くじら立てる理由はないと思うが
あ、これがやる気のない日本人のグループを煽るdisるための口実で
実際はアウトプットするようなものが何もなくても私は責めないですよ
安心してね
なんだかんだ理由をつけて最終的には逃走するからよく見とけ
id:RjxQ6mlt お前もういいよ
ドットインストールでPythonをひと通り勉強したのですが今この段階でどのようなアプリがつくれるのですか?
応用もふくめてでお願いします。
あとは時間さえかければあなたが想像できるすべてのソフトが作れます
22 :
デフォルトの名無しさん:2014/11/09(日) 22:04:45.32 ID:ZPwU2EoE
三角コーンの上に白いまきまきしたの乗せたやつだな>>ソフト
>>19 何がもういいんだって?
何様だお前は。ウンコの国の国王陛下か何か?
RjxQ6mltはやる気のない日本人グループの一員なのかい
人生はゼロから生まれゼロに戻るのだから、失敗しても何も損はしない
(英コント集団モンティ・パイソンから)
※いやホント、生まれてくるときは素ッ裸だけど、死ぬときは少なくともパンツははいてるからね(笑)。
どれだけ失敗しても生まれたときよりマイナスになるこたぁない。気楽にいこう。
公式ドキュメントの和訳がお粗末に尽きる
プログラミングの知識のない人が原文をそのまんま訳してる感じ
日本のPython技術者はこれを見て育つのだから、もっとしっかりやってもらいたい
英語は読解の努力で済むけど
日本語の方は解読から始めないといけなくて
結局原文を読むことになることなったりする
翻訳のできが悪いというならあなたがやってもいいんですよ?
原文見て判る人
→翻訳の悪さに気付いても原文見て済ますから自分で翻訳しようとは思わない
原文が判らない人
→翻訳の悪さに気付かない&気付いてもなにも出来ない
↓
だれも翻訳の修正をしない
>>32 自分がいままでこの手の翻訳プロジェクトに参加したことがなのをさらすカキコですね。
お金をもらう人
→誰が読もうが読まなかろうが成果物納品して金だけもらう
病んでれ
>>32 その例だと別に誰も悪くはないよね
誰かを悪だと言いたいのかもしれないが
例えばDj…
DJ KAORI?
38 :
デフォルトの名無しさん:2014/11/14(金) 13:30:42.89 ID:rxnPKvOr
文法を覚えたところで、それはプログラミングの前衛知識のひとつを得たにすぎない
日本語の文法覚えたことと、日本語で面白い本を書けることは別だよね
プログラミングの奥深さはその先にあるんだよ
まあ仕事でやってる人でも、特にドカタ的な人は理解してないことが多いけどね
文法覚えるだけで前衛的な知識が得られるなんて、すげぇじゃんwww
というか前衛じゃなくて前衛だと思うんだ(小声
前提って言いたかったんだ・・・
盾役カモーン
もうこの業界離れたんだけど、今でも派遣と言う名の偽装請負連中は
ifとforが書ければ言語はマスターしたと見做すみたいな風潮なん?
そんなもんじゃねえの
書けない奴すら未だにセット割とかでねじ込んで来るという
セット割!そういうのもあるのか!
3人だとお安いけど1人は足引っ張るよって感じ
人月で発注するからそうなる
日本語が出来てもプロとして仕事が出来るってことじゃないしね
俺、プログラム言語(Pythonとか)はすごく出来る。
そうか、じゃ車のエンジン制御のプログラム(プロとしての仕事)やってって言われても
車のエンジン制御のしかたさっぱり分からん><って良くあるしね
パイパイ
50 :
デフォルトの名無しさん:2014/11/18(火) 18:52:11.63 ID:Eijilsh0
import __main__
ってどゆ意味ですか
str.isalnum()が日本語も通してしまうのですが、英数字のみ通すにはどうしたらいいでしょうか
> 'あ'.isalnum()
True
> 'あ'.encode('sjis').isalnum()
False
> '1'.encode('sjis').isalnum()
True
...とかはないなぁ、もっと違うやり方があるよね...
c.isalnum() and ord(c) < 128
全角のあるなむを含む方法は分かりません
日本語でおk
>>51 正規表現を使うのが明示的で無難だと思う
>>> import re
>>> re.match(r'^[0-9A-Za-z]+$', 'あ')
>>> 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'
if __name__ == "__main__"ってどういうときに使うものですか?
[b.py]
def aaa():
print(1)
[a.py]
import b
b.aaa()
これで十分な気がするんですが
>>59 ライブラリとしてもトップレベルのスクリプトとしても
使えるようにしたいときにそうする
SimpleHTTPServer あたり見てみるといい
クラスやライブラリ関数を定義しておいて、mainブロックにはそのテストコードを書くとか
メインの起動スクリプトに関数とからクラスを書くことがおかしい
そういうのは外部ファイルにまとめるべきだ
main() と __main__ は無関係だけど
書き捨てスクリプトでも
main() や __main__ は書く習慣にしといた方が無難
ターミナルでコマンドとして使えるようなものを作りたくて、PyPIにあるソフトのソースをみてみたりしたのだが、構造というか設計の意味?がまだ自分は理解できません
例えばmain.pyの役割とか
$ python pugyaaa.py というのではなく
$ pugyaa -option_x hogefile というやり方で動くプログラムはどうやって作ればいいのかということなんですが
良いサイト、知っておくべき事柄などがあればググる言葉でいいので教えてください
pythonらしいプログラムの構造が分かりません
C言語で書いたような感じになってしまいます
局所的なものでは綺麗なforの書き方とかはググって出たのですが
もっと全体的な設計?というのが知りたいです
> $ pugyaa -option_x hogefile というやり方
$ pugyaa.py -option_x hogefile
でも良ければ
pugyaa.py の先頭に shebang を書く
shebang 書いてあれば
$ pugyaa
でも逝けるとは思うが紛らわしいかも知れない
オプションやコマンドラインの使い方は python より linux/bsd/unix の板で聞いた方が良い
>>66 質問の仕方が不味かったのにレスをもらって気がつきました
自分がやりたいのは、例えばunittestのように
$ unittest -c hoge.py
と呼び出しができるプログラムのことです(オプションは適当)
pugyaa.pyという単独のスクリプトではなくpugyaaというパッケージ?のプログラムを作成して、それをターミナルで呼び出せるものにしたいということです
$ pugyaa_command -option_x hogefile と書くべきでした
後出しアウト
>>67 そういうふうにできるパッケージのソースコードを読むところから始めろよ
文字列を正規表現で普通の文字列として扱われるようにエスケープしたいのですが、そのようなライブラリは有りますか?
re.escape
>>71 それだと日本語までエスケープされてしまいます。
*等の正規表現に使われる文字だけエスケープする方法はありませんか?
ええやんけ別に
どういうふうにしたいのかサンプルをいくつか書いて
75 :
70:2014/11/23(日) 16:17:12.18 ID:Pt0iPmF5
解決しました
「Python文法詳解」って本ちょっと気になっててアマゾンレビュー付くの待ってたんだけど
付いた評価が2ww あーこりゃ買わないかなぁ・・ もちょっと情報出てるかなとググッてみたら
正誤表が出てやんの、んで正誤表見てみたら間違いだらけwwwwww
しかも舐めてんのかっていうくらいのヒドイ内容の間違いだらけwww
もう買う買わない以前に本として終わってるわ、こんな本出してる著者終わったなって思ったね
なんかさPython関連の本ってクオリティ低いの多くね? ウンコが本書いてんじゃねーよw
77 :
デフォルトの名無しさん:2014/11/23(日) 20:29:42.60 ID:E0tXkl0n
公式見ればいいから
そういう本を買う必要が・・・
買って価値があると思ったのはエキスパートパイソンぐらい
>>76 ひどいレビューだった。著者かわいそす
正誤表、正と誤で入力が同一なのに出力が違うのはなんでだろう
プロンプトの入出力をコピペしたのではなく
それっぽく手書きしたんじゃないかと勘ぐっちゃうな
>>78 たぶん手打ちテキストを画面っぽく印刷してるんだと思う
プロンプト画面を取り込むのってそんなに難しいんだっけ?
しかしホント舐めてるよね
技術本って高価なうえにそれを信じて仕事に使う人も多いわけで
普通の本よりも誤植には注意して作ってもらわないと困るのに
最終原稿をいっぺん著者側で通して読み直すとか、サンプルコードが
画面通りの結果になるか試してみるとか、それすらしないんだからな
編集者たちの顔が見てみたいよ
ちょっと毛色違うけど
WordPressとかのガバガバな設定例とか載せてる本はホント死ねよ
くびり殺されろ
81 :
デフォルトの名無しさん:2014/11/24(月) 00:12:17.03 ID:NFvfX/bb
python見たいな動的型付け言語ってリファレンス読みにくくね?
みんなどうしてんの?
>技術本って高価なうえに
(略)
>サンプルコードが画面通りの結果になるか試してみるとか、それすらしないんだからな
高価なのは理由があるのに
これじゃ詐欺だね
較正の回数を減らして値段を下げている面もあるし
別本だけど、本の値段が1500円上がったわ
x 較正
o 校正
パーフェクトPythonは、3千円以上するのにコードミスを含む誤植が100箇所以上あって
未だに出版社から正誤表が出ていないというひどい本
これでパーフェクトを名乗って恥ずかしくないんだろうかと著者紹介を見ると、
Pythonサポーターズと称する様々な職業の人の寄せ集めで、要は出版というものに
プライドを持っていない、バイト感覚の人たちなんだろうと推測する
だからこんなお粗末なことをして平気でいられるんだろう
誤植一箇所につき10円返金しろと言いたい
>>84 oh...
>>85 重版か改訂かからないと修正もままならぬものよな
だが、そこはビジネスチャンスでもあるので
我々はうまいことやっているわけです
俺は○○サポーターズとユーザー会の本は買わないとお星様に誓った
正解
悲しいわね・・・
オライリーしかないと思うけど、初心者はどのオライリー買えばいいの?
>>85 10年以上前に買った同じ出版社の access vba の本も寄せ集めだった
それは承知の上だったが、HPからDLしたソースの番号がでたらめで、どの
ファイルがどのサンプルなのか、いちいち開いてみないと分からないのには呆れた
メールしたけど返事も無く、訂正もされなかった
>>76 目次がショボいと思いました。
技術評論社のポケットリファレンスみたいな使い道の本だと思うのでもっと目次を充実させてサイズをコンパクトにして欲しかったです。
パーフェクトPythonは広く浅くな本なので中途半端に不便さを感じました。
>>90 初心者は公式ドキュメント読めよ
オライリーの日本語訳って未だにPython2しかなかった希ガス
Linux環境でPythonってどんなときに使ってますか?
シェルコマンドを駆使する場合、シェルスクリプト使ったほうが簡単に出来るのでどういう用途で使われてるのか知りたかった限りです
Linux環境でPythonプログラミングするときに使ってますけど
>>95 ありがとうございます!
非常に助かりました!
いえいえ!どういたしまして!
おい
>>93 Pythonチュートリアル第2版はPython3
マジレスするとオブジェクト指向
Linuxだと、GUIの小物ツールとか結構Python製だったりするよ
ソフトバンクの変なロボットはpythonで動かせるとか
海の向こうでは何でもpythonなんですかね。日本でも今後需要増えるんでしょうか?
増えないと思いますよ
だって君、英語読めないでしょう?
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の継承クラスをわざわざ定義していますが、特定のキーイベントを親に流したいだけなので冗長に思います。
特定のキーイベントだけ(あるいは全部)親に渡すような簡単な方法があれば教えてください。
qtextedit にフォーカスがあるか親フレームにフォーカスがあるか
qtextedit から親にプレスイベントをemitすれば良い
104<<githubでコード検索すれば答えはあるでしょう
>>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 の写真がかわったぞ
脂っこさがなくなったな
無機的になったとも言うw
110 :
デフォルトの名無しさん:2014/11/30(日) 03:56:42.59 ID:b4nmdqGs
判ってない人の判ってないブログ
あの内容のなさで検索上位に居続けるのは驚嘆すべき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を返すような判定法で、おすすめは何でしょうか。
>>112 b_list is not None
isinstance(b_list, list)
114 :
112:2014/11/30(日) 13:17:40.35 ID:tTeiN462
ありがとうございます。
False と Noneの違いが、よく分かっていませんでした。
not b_list is None
複数の引数を取る関数にmapを適用する方法があったら教えて
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)
こういうこと?
>>117 そうです
引数をどうやって与えるのかわからなくて
示していただいたコードで考えてみます
>>> 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']
正直あんまり使わない
pip installをしてみても
raise ValueError(str(list(result.keys())))
ValueError['path']
とでるだけで出来ないのですがどうすれば良いでしょうか
python3.4.2で今朝インストールしたばかりです
釣りかな?
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"
釣りかな?
apacheでmultipart/form-data形式でファイルを送信されたとき、
cgiモジュールは標準入力の内容を一度全部メモリ上に読み込んでいるんでしょうか?
もしそうなら、最初の要素から順に読み込ませてメモリ使用量を抑える方法はありますか?
ソースを読む限りは、必要になった分だけ順次read/readlineしているようだよ
Python2.7.8の場合、cgi.pyの230行目くらいにある
ものすげー前代未聞なくらい空目ったぞ
今のなし
2.7で
print("あ")
print(["あ"])
2番目、なんでアスキーコードに変換されるんですか
pythonって初見だと
日本語の扱いで苦労しまくるよなあ
むしろPythonに限らず日本語とかうまく扱えるはずないじゃん!と思ってとりかかるべき
日本語がどうのこうの言ってんの2までじゃないの
まだ2.7が主流ですし
と、ロートルが申しております。
>>129 勝手によきにはからって後になって忘れた頃に文字化けに悩まされるより
最初から例外出してくれた方がありがたいという思想だということに気付けばあとは氷解
2.7で日本語扱う場合はu'あ'みたいにuをつけとけばいいってことで合ってますか?
それは必要条件であって充分条件ではないよ
あと
a = u'あ'
の代わりに
b = 'あ'.decode('ファイルを保存したときのエンコード')
と書いてもいける
日本語とかを含む文字列リテラルに u つけないのは
sjisと0x5cみたいなのが気になるからあんまりよくないはず
釣りかな?
from pprint import pprint as print
みたいにprintを上書きする方法ありませんか?
random.shuffle(xrange(10))はエラーで
random.shuffle(range(10))はエラーじゃないのは何故ですか
shuffleの受け取る引数はリストで
rangeの返り値はリストで
xrangeの返り値はxrangeオブジェクトだから
143 :
デフォルトの名無しさん:2014/12/11(木) 16:04:01.78 ID:qKHRQsDr
>>140 from pprint import pprint
print = pprint
Python2はprintが文だから無理
145 :
デフォルトの名無しさん:2014/12/11(木) 17:25:04.80 ID:qKHRQsDr
global print
とか宣言して上書きできないかな
釣りかな?
147 :
デフォルトの名無しさん:2014/12/11(木) 19:28:09.16 ID:6slixBmx
質問です。
Javascriptでブラウザ上から操作してある値を得て
その値をAjaxを使ってサーバー側のPythonに送って処理して
その処理した値をJavascriptの方に返したいのですが
どうすればいいでしょうか?
根本的にHTTPの知識が足りないんじゃねーの
pyscripterを使い始めたのですが、モジュールのインポートでエラーが起こります。
コマンドプロンプトからだとしっかりインポートできるので、pyscripter上の設定がうまく言ってないのかなぁと思うのですが、どなたか解決方法をご存知の方は居られますか?
このあとつくレスの内容がわかるよな?
答えはエラーの内容を貼れだ
エラー読めエラー
エラー文程度の英語は読もう
辞書引け辞書
エラー内容は
Inport Error:No module named '〜'
というものです。先にも書きましたが、同じスクリプトをコマンドプロンプトから実行した場合にはしっかりインポートできました。なのでインポートしたいモジュールのディレクトリが間違ってるとかはないと思うのですが
・・・
sys.path表示してみろよ
printか何かで
モジュールはそこにないと読まれない
なるほど
ただ、今pyscripter上でprint(sys.path)したらNameError:global name 'sys' is not definedとなってしまいました。
さて、申し訳ないのですが明日早いのでひとまず持ち越しさせてください。
有難うございました。
156 :
デフォルトの名無しさん:2014/12/11(木) 22:46:42.90 ID:6slixBmx
馬鹿には無理
馬鹿には無理の馬鹿キタ━(゚∀゚)━!
嬉しそう
くやしいのぅ
無理には馬鹿
釣りかな?
高橋是清
すんません。
"my_list"というリストがあって、リストを先頭から操作するにはfor文を使って
以下のように記述すると思うのですが、先頭からではなく、最後から先頭に向かって
ループを回す方法を探しています。いい方法はあるでしょうか。
for my_line in my_list:
print my_line
for i in range(len(a)-1, -1, -1):
print(a[i])
a.reverse()
for i in a:
print(i)
>>164 for myline in reversed(my_list):
print(n)
これでどうでしょう?
while a:
print(a.pop())
nじゃなかった。
for myline in reversed(my_list):
print(myline)
みなさん
ありがとうございます。
おかげでうまく行きそうです。
助かりました。
171 :
デフォルトの名無しさん:2014/12/14(日) 20:17:12.91 ID:QEpJ0bQG
Pythonなら書き方はひとつ(キリっ
言いだしっぺは今どんな顔をしているのだろう
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')
>>173 お前がバカだからだよ。
> if〜elif〜elseとif〜if〜elseって動作が同じだから
同じじゃない。
ちったあ頭使え。
釣りかな?
>>175 読んでもよくわからないので素直にelif使うことにする
switchがあればこんな苦労は要らないんだが
if elif と同じなのは if else if だぞ
そういう理解だと他のswitchがある言語使っても
バグを作り込むんじゃないか
>>177 これこそ「馬鹿には無理」ってやつだな
お前みたいなのはswitchがある言語の世界から出てきてくれるなよ
>>173 Pythonはインデントの深さでブロックのネストを表してる
2nd tryがやってることはC風にするとこういうこと
if (a == 0) print('a is 0');
if (a == 1) {
print('a is 1');
} else {
print('other');
}
intって少数の文字列は変換できないんですね
int(float("123.4"))
184 :
デフォルトの名無しさん:2014/12/16(火) 22:29:10.07 ID:JLxuIaVb
int(float("1234e-1"))
(´・ω・`)わかったよ
186 :
デフォルトの名無しさん:2014/12/16(火) 22:37:24.96 ID:t3ZeiYLt
あん?わかんねーよ?
釣りかな?
188 :
デフォルトの名無しさん:2014/12/17(水) 04:04:06.27 ID:tVZ6iM4c
.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("実行される")
windowsはインストーラーが勝手にパス通してくれてる
>>188 作成したプログラムファイルを実行するときは、直接ファイルをダブルクリックして実行するのではなく、
IDLEでそのプログラムファイルの編集ウィンドウを開いたまま、
IDLEの Run メニューから Run Module を選んで実行させる。
そうすれば Python Shell ウィンドウ(対話型実行用ウィンドウ)にエラーメッセージやprint関数の結果が出力される。
インターネット上のプログラムを参考にするときは、それがPython2での実行を前提に書かれているのか、
それともPython3での実行を前提に書かれているのかに注意する。
Python2用に書かれたプログラムをそのまま写すと、Python3では動かないことがある。
実際、urllib 周りは Python2 と Python3 では変更があったので、その可能性が高い。
挙げられている3つのサイトのうち、上と下はPython2を前提にしているので、そのままプログラムを書き写すと動かない可能性がある。
真ん中のサイトはPython3を前提にしているので、その点は心配しなくてもいい。
一番下の公式サイトのリファレンスは、左上のドロップボックスで3.3を選べば、
Python3用のページに移動するので、そのページを参考にする。
>>188 補足
IDLEを使ってるとのことなので
>>192のように書いたが、
もちろん
>>189さんの言うようにコマンドプロントから実行してもよい。
「上記のことができれば」というのは「上記」が何を指しているのか、
リンクを貼っているサイトのことを言っているにしても
リンク先にはいろいろコードが書いてあるので
どれを指しているのか不明なのでそういう聞き方はよくない。
例えば一番上のサイトのプログラム例だと、サイトのソースを取得する以外は何もしてないので、
実行に成功しても何も表示されないし何も保存されない。
真ん中のサイトのプログラム例だと、取得した内容がファイルに保存される。
一番下の公式リファレンスの最後の「使用例」のプログラムだと、取得した内容が画面に表示される。
…といったように、それぞれやっていることが違う。
ちなみに標準ライブラリにはhtml.parserというhtml文をパースするモジュールがあるよ
196 :
188:2014/12/17(水) 13:36:33.70 ID:tVZ6iM4c
みなさんいろいろありがとうございます。
ちょっと整理して、またわからないことがあったら参ります。
htmlのボタンを押した時にシリアル通信で
文字列を送るプログラムを作りたいんだけど可能?
何と何をシリアル通信させるのか?
htmlを配備するサーバーはお前が自由にできるのか?
htmlはお前が自由にできるのか?
をはっきりとさせて
サーバーとマイコンボードを通信させたい
html,サーバーは自由
httpじゃなくて?
>>199 サーバーとマイコンボードが繋がってるなら大丈夫だろう
普通のWebアプリケーションなら、ユーザーからの入力に応じてデータベースなんかをいじくるところ
代わりにマイコンボードをいじくるように作る
pyenvで2.7.8を入れたんですけど
新しい2.7.9を入れたいのですが
これってvirtualenvで作った環境も削除して作りなおさないといけないってことですよね?
そうですね
仮想環境は設定や扱いが面倒臭いね
PythonのバージョンごとにPCを別々に用意した方が
スッキリするんじゃね?と思った
ノートPCが2〜3万で買えるご時世だしな
釣りかな?
PCを分けたいけど、今はVMに入れてるよ
1台でサーバ・クライアント運用も出来るし
PC複数台がめんどくさいから仮想環境にしたけど
仮想環境がめんどくさいからPC複数台にするのか
python本体だけアップグレードしてpipで入れたものとか仮想環境もそのまま使えるようにならないのかな
このへん不便
あ、pyenvでの話ね
もっと釣り名人になろう
仮想環境もそうだが、俺はスクリプト言語であるPythonにpipとかを使っての
「アプリインストール」という概念があるのが理解できん
スクリプト言語つーたら、フォルダにスクリプトファイルを置いて
デスクトップにショートカット作ってWクリ一発で済ますもんじゃないの?
お手軽さが命のスクリプト言語をわざわざ難しく使っているとしか思えない
pipがrubyのbundleのようなものになるのが一番いい
好きなように使えばいいだろー
道具に使われている諸君?
pip freezeやpip bundle、pip wheelがあるだろ
>>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
このように書いてるのですが、何度か行うも同じ結果が返ってきます
なぜなのでしょうか?
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は一週間前に触り始めたばかりです。
どうかおねがいいたします。
どんな出力を想定してるかもう少し詳しく
上のコードが[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は練習のために使っています。
よろしくお願い致します。
まずIndentationError: expected an indented blockでググったの?
Rubyなら、
String.split(区切り文字)で、
指定した区切り文字で、文字列を分割できる
たぶん、Pythonでも出来るでしょう
>>223 220での説明の言葉が間違ってる事だって有り得るから、期待してる出力例を書くべき。
227 :
デフォルトの名無しさん:2014/12/20(土) 12:02:57.42 ID:e+FqSQyU
馬鹿には無理
そのエラーでぐぐれば一発で日本語記事で解決策がヒットするわけなんだけど
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
マジックナンバーを使うな
うまく行かない時はエラーをよめつってんだろ
>>231は質問時にエラーメッセージを貼る癖を付けような
うまくいきませんでした、では答えようがない
くっそわろた
エラー報告はメッセージをただ貼るのが一番楽なはずなんだけど
なぜ誰もが自分の言葉で説明しようとしてしまうのか
エラーは出ないけど思った結果になってないのかもしれない
ぱっと見はファイルを上書きしまくってるように見えるが
まあ回答する側のこと考えて再提出するのが筋だと思う
>>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()
len(l)にしたけど、len(l)+1じゃなきゃあかんかった
すまんこ
240 :
デフォルトの名無しさん:2014/12/21(日) 09:25:46.04 ID:c9w7SJVP
>>233, 234, 235
エラーが出なかったんですよ
>>236 エスパー、ありがとうございます
>>237, 238
うまくできました
ありがとうございます
メモ帳でのコピペやエクセルでの関数の複雑な組み合わせから脱出できそうで
感動しきりです
>>237, 238を見ながら、いろいろいじってみようと思います
どんな話?
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"となりますが、これはたまたま?
それとも、律儀に全てのキーと値のペアをチェックしているのでしょうか。
>>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.
どっちかっていうと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.
とあって、なぜかソートすることになっていて、興味深いです。
ただ単にif and only ifと言ってるだけなんだから、
実際にソートされたリストを比較してるとは限らない
たしかに…(パッと何も考えずに貼っつけたけど色々なるほどという感じだ)
ついでに、
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]
のように分けたい場合はどうすればいいのでしょうか?
釣りかな?
array[::3]
array[1::3]
array[2::3]
>>252 これ冗談かと思ってたらマジだった
コロン2つというスライスの活用方法はドキュメントに載ってましたっけ?
254 :
デフォルトの名無しさん:2014/12/28(日) 09:21:45.11 ID:6jddN626
馬鹿には読めない
おれがPythonを初めて勉強しようと思った時に入門とかチュートリアル当たりを読んでたらそんな事書いてあった覚えがある
とりあえずドキュメント読めばいいんじゃないのか
>>256 サンクス
恥ずかしながら、スライスにSTEPを指定できること自体知りませんでした
ライブラリのドキュメントばっかり見ていてはダメですね
えっ
range([start], stop[, step])やslice([start], stop[, step])のように、最初の引数にデフォルト値があるように定義するのってどうすればいいんでしょう
任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?
釣りかな?
>>259 >任意引数リストにして引数の数に応じて処理を変えるしかないでしょうか?
そうだけど、なんでまたそんなことに
そのうち引数の区切りに:使いたいとか言い出しそう
>>261 ありがとうございますやっぱそうなりますか
xrangeにCのlongに収まらない数を入れたい場合につかう代替関数を定義しておこうと思ったんです
使い方はxrangeと同じにしておきたいな、と思いまして
generatorに汁
>>264 どういうことでしょう?
リストを返すつもりはなくxrangeオブジェクトももちろん作れないのでジェネレータにするつもりですが
ジェネレータにすると引数の課題が解決する案があるのでしょうか?
それよりもpython3がお勧めだ
>>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])
def foo(*args):
n = len(args)
if n == 1:
pass
elif n == 2:
pass
elif n == 3:
pass
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 それ試したらうまくいった
でもpython2の環境でやるときはコメントアウトしないといかんな面倒だなと色々試してたら、
仮想環境ではsyntastic自体がエラー吐いて動かなくなった
syntastic入れ直しても直らないしお手上げ
他にpythonで開発するに当たって他にいいエディタがあったら教えてくれ
syntasticつかってるけど2.7でも3.4でも問題ないね
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
日本語を含むテキストファイルを読み込ませたいです
これでデコードエラーを吐いてしまうんですがどうしたらいいんでしょうか?
釣りかな?
>>273 質問するときはエラーメッセージもいっしょに貼ってね。
test.txtファイルの文字コードがutf-8じゃないんじゃないかな。
別の文字コード指定してみたら。
>>275 出来ました
これに費やした元旦がもったいなく感じてきました
ありがとうございました
>>276は気にしないでください
いや、元旦にプログラミングしてること自体もったいないと思うよ?
まあやってんだけどさ
むしろプログラミングに没頭できるのでありがたい
起きてコード書いて腹が減ったらあめ玉舐めながら続けて
いつの間にかぶっ倒れて寝て…の繰り返し
まさに至福
没頭も楽しいけど、ちゃんと寝た方が頭も冴えて効率良かったりする
勉強したいんですが、オープンソースのアプリケーションって無いですか?
まずアプリーケーションの意味が分かってから質問に来るように(キリッ
>>281 PyPIやGitHub等にいくらでもあるけど
添付ライブラリのソース読むのもいいよ
自分のよく知ってるライブラリがあるなら尚更
for文を使ってある文字列リストの中の文字列の数だけ動作を繰り返したいのですが、
for i in listのiの部分は何にするべきでしょうか?
s
ありがとうございます
>>285 何でもよい
forの一時変数だというのは、見れば誰でもわかることだからな
lxml ってcygwinでもインストール出来るでしょうか?
ちょっと困っています。
ちょっとした疑問なのですが、なぜリストのreverse()メソッドは逆順にしたリストを返さないのでしょうか?
返すことでメリットはあるもののデメリットがあるようには思えません。
そのためにどうしても無駄な1行が増えてしまいます。
>>290 list.reverseは破壊的だから
>>290 たぶんあなたの用途としてはreversed(L)だとかL[::-1]を使えばいいんじゃないかな
>>289 VirtualBoxにLinuxいれれば?
それかcolinux
>>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.
append もそうだけど、インプレースであることを知らしめたいからって None を返すのは
オレ様仕様だと言われても仕方ないとは思う。
なんならそういうのの返り値を代入しようとしたら例外出すくらいにしたほうがはっきりしててわかりやすい。
そういう代入を拾うってどうやればいいのかよくわからんけど。
Noneを返さないのはどこの誰様仕様なんだ
©ファウラー?
とりあえず、俺様仕様が嫌なら人が作った言語なんか使わない方がいいぜ
俺様仕様が全くなくなったら世の中には同じ言語しかないはずだろ
仕様に不満があるなら、自分で改造して使えばいいじゃん
そのためのオープンソースなのだから
reverse も reversed も
メソッドチェーンが好きな人には使いにくい
好みの問題だから仕方ない
郷に入っては郷に慣れるしかない
メソッドチェーンって言葉使われるとrubyやjquery厨の好みの問題だろって言いたくなるけど
パイプラインと言うとunix哲学を反映した高尚な雰囲気が醸しだされるよな
自分は好みの問題じゃないと思うけど
js でも Ruby でも return self しないメソッド作ったらおしまいですしおすし
303 :
デフォルトの名無しさん:2015/01/05(月) 23:11:18.16 ID:cIvzrzOv
すいません
フレームワークを作るうえで参考になるサイトなどありますか?
えーと、フレームワーク「を」作るんですか?
フレームワークにもいろいろあります(Webアプリ、統計処理etc・・・)が、何のフレームワークですか?
フレームワークのソースコードは参考になりませんか?
306 :
デフォルトの名無しさん:2015/01/05(月) 23:19:21.41 ID:cIvzrzOv
>>304 クローラーを作ってるんですけど作っていくうちにフレームワークも作ってみたいって思ってしまって
scrapyの読もうとしたんですけど複雑すぎて難しかったので質問しました・・・
>>305 凄い参考になりそうです。
ありがとうございます。
python3で文字列を指定した区切り文字で改行して
出力したい(できれば''のない形で)んですが、どうやればいいですか?
splitを使って分割はできたんですがその先がわかりません
例:"1月、2月、3月…"を
1月
2月
3月…と表示したいです
改行コードで区切り文字を置換してprintするのが手っ取り早いんじゃないですかね!
禿げ死苦同意
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'))
置換するのが普通なの?
splitしてjoinするのが普通じゃないの?
print "\n".join("1月、2月、3月…".split("、"))
おたくの言う普通の基準って何
世のプログラムで
ある同じ目的を達成するための手段のうち採用されている割合が多いもののこと
まあ実際にどれが多いかなんて集計してみないとわからんし無理だから、各人の経験則として
>>312 置換しちゃうと、後で(一週間後とか)仕様変更で元の文字列をもう一度使いたいときに、
置換してたのを忘れてる時が有るから、ちょっと要注意。
そういう意味で、俺はこの場合はsplit、join。
まあデータが小さければ、コピーして好きに変更でもいいんだろうけど。
俺はprint(s.split('、'), sep='¥n')かな(大嘘
317 :
デフォルトの名無しさん:2015/01/08(木) 19:07:15.67 ID:qIfkunGX
代入しなきゃいいだけだろ
経験則として代入するから
言ってて馬鹿らしい
BeatifulSoup って使いずらくね。CSSセレクタかXpathのやつないの。
XMLでXPathのサブセットが使えればいいならElementTree
HTMLとXMLでXPathとCSSセレクタが使いたければlxml
今時はもっといいのがあるかもしれない
322 :
デフォルトの名無しさん:2015/01/08(木) 20:50:38.49 ID:fhc4fEXM
BeatifulSoupが使いにくいと言うより
そもそもDOMが使いにくい
pyqueryならHTMLerにも使いやすいで
import hogeA.hogeB as hogeB
from hogeA import hogeB
って同じです?
同じじゃない
hogeBがクラスや関数なら上の書き方ではImportError
ありがとうございます。たしかにそうですね。
>>269,
>>271だけど日を改めてやってみたらなんとなく原因がわかった
syntastic自体にエラーが出て機能しないのは、どうやらjmcantrell/vim-virtualenvとsyntasticが競合してるみたいだった
ただUbuntuで似たような環境を作ったときはなぜか問題なかった
syntasticに仮想環境のPythonを認識させるのは
>>270で上手くいった
pythonやpygameではメイリオは使えないのでしょうか?
pygame.font.get_fontsでmeiryomeiryomeiryouimeiryouiitalicというメイリオのフォントがPC中にあると確認できたのですが、
pygame.font.SysFont("meiryomeiryomeiryouimeiryouiitalic", 10)という感じでフォントをセットしても起動しても画面が真っ黒のままで動きません
他のフォントにするとちゃんと動くのでコーディングエラーはないと思います
どうしたらいいんでしょうか?
'meiryo'だけでよくね?
meiryoという感じで区切ってしまうと、日本語が表示されなくなり、フォント自体もおそらくメイリオではないデフォルトのフォントになってしまいます
ちなみに、画面が真っ黒のままでもエラーメッセージ等は出てきてません
うちも一緒だった (win8.1)
pygame.font.SysFont("meiryomeiryomeiryouimeiryouiitalic", 10)
のところで止まって次の行逝ってないね
pygame.font.SysFont("msminchomspmincho", 10)
なら通る
copy c:\windows\fonts\meiryo.ttc .
hogefont = pygame.font.Font('meiryo.ttc', 10)
これならうまくいくな
>>331 本当だねー
しゃーないから2段階で
fontpath = pygame.font.match_font('meiryomeiryoboldmeiryouiboldmeiryouibolditalic')
font = pygame.font.Font(fontpath, 10)
かぶっちゃったww
フォントフォルダにパスとおせばいいんじゃねえのか
337 :
デフォルトの名無しさん:2015/01/10(土) 06:04:13.05 ID:rmYnkCrg
Python3系は、Win8でも動くの?
font = pygame.font.Font(fontpath, 10, bold=True, italic=True)
これも効かないよね
font = pygame.font.Font(fontpath, 10)
font.set_bold(True)
font.set_italic(True)
font.set_underline(True)
Linux使っててプログラミングしたいのですが、最初から入ってるPythonにしたいです。
コマンドラインでPythonと打つと安価みたいなものが出てきました
print "test"と打ったらtestとでました。
しかしこれでは一行しか書けません。
どうすれば一行より多くかけますか?
それともテキストエディタてコードを書いてそれをコマンドラインで読み取り実行するのですか?
初心者なので全くわかりません
Pythonの使い方を教えてもらえないですか?
解説してるサイトでもいいです
if 1 == 1:
print 1
これを2行に分けて入力してみろ
できるだろ
ドットインストールでも見たらいいんじゃないですか(投げやり)
ここに来れたのに見つからないわけないしね
>>343みたいな質問もたまにある分には
同様のレベルにある人の励みにもなるし良いかなと思ったりする
Pythonスクリプトをファイルにして実行する方法を
まず調べてみるといいのでは?
公式ドキュメントだといきなりインタープリタ出てきて
ナンカコレジャナイって事態に陥りがちだよね。
まあでも解説がポンポン出てくるだけいい世の中になったわ
俺も今頃に思春期を迎えたかったな
引きこもってからpythonの勉強始めてたけどたしか5年前はまったく情報がなかったよ
すいません、
net4=ipaddress.ip_network('10.0.0.0/24')
for i in net4:
print(i)
の出力をファイルに書き込みたいのですが、どの様にすればいいのでしょうか。
printで欲しい値が出力できてるんならリダイレクトでいいんじゃないか
python print_ipaddr.py > result.txt のように
354 :
デフォルトの名無しさん:2015/01/11(日) 23:19:34.43 ID:jQsmpaL2
>>343 一番簡単なのは、Pythonインタープリタを実行して、
その中でソースコードを書いて実行する
また、テキストファイルの中に、
ソースコードを書いて、端末から実行もできる
「みんなのPython 第3版」を読んで
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)
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()
ipython入れて補完できるか確認してみて
自己解決した
解決する前はbackendがaggになっててたぶんそれのせいで上手くできなかったんだと思う
そんでtgkで起動するためにtkinterを入れてmatplotlib入れ直したらできた
そもそもpyenvでtkinterが上手く入ってなかったみたいで、必要そうなもの色々とインストールしてpyenvのpythonのバージョンを入れ直してようやくtkinterが動いたんだけどね
そりゃあtkはpythonに含まれてないからね
361 :
デフォルトの名無しさん:2015/01/14(水) 09:43:45.67 ID:EnBoJmyV
エラーが不親切(というかそもそも出てないんじゃね)って意味なら同意
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 単体なら問題ないのに
他の色んなモジュールと組み合わせると動かなくなるってのが困るよねー
あるある
366 :
354:2015/01/15(木) 02:22:06.28 ID:KHeQBVOf
>>354 訂正
>一番簡単なのは、Pythonインタープリタを実行して、
>その中でソースコードを書いて実行する
インタープリタではなく、インタラクティブシェル。
またそれを高機能にした、IPythonもある
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)
モジュールとライブラリってどう違うの?
importの対象であり名前空間を提供するモノとしての側面を強調するならモジュール
お役立ち関数/クラス群としてならライブラリってとこじゃないか
>368-370
ありがとうございます!
374 :
デフォルトの名無しさん:2015/01/27(火) 03:05:51.48 ID:JE8N2DrC
ある特定少数のソフトウェア向けの何かならモジュール
ある程度幅広いソフトウェア向けの何かならライブラリ
日本語でおk
377 :
デフォルトの名無しさん:2015/01/28(水) 01:19:49.99 ID:s4FF0JvS
アーカイブは、ライブラリですか?
アーカイブは書庫じゃね
zipとかrarとか
まずは単語の意味を調べろ。
話はそれからだ。
オブジェクトファイルをアーカイブコマンドarでまとめたものを
ライブラリとすることもあるけど、
それはそういう扱いをしているということでな
sys.path.add() で .tgz とかも追加出来るお
まちがえた
x sys.path.add()
o sys.path.append()
.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 だったり
とんとん。調べてみるお
調査報告
.py入りの.zipのimportはうまくいくけど.tgzはImportErrorだった
388 :
デフォルトの名無しさん:2015/01/28(水) 13:30:34.09 ID:U/zfeC5A
馬鹿には無理
インポートできる名前空間の単位(=定数や関数を定義したファイル名)がモジュール
再利用可能な形にまとめたものがライブラリ(Pythonとしての言葉の定義はないのでは?)
一つのモジュールでライブラリということもあるだろうし
ライブラリの中に関連した複数のモジュールがある場合もあるだろうし
標準ライブラリというようにモジュールのまとまりを指すこともある
え、お前のPythonはgzをimportできないの?
偽者だよそれ
とか言ってみようかと思ったけど
勇気なし
391 :
デフォルトの名無しさん:2015/01/28(水) 19:48:32.43 ID:nz1FZefG
mutiprocessingを使っていて
queueのサイズを確認する方法ってありますか?
え、 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.
え、え、え、ええー、ええ、え、
すみません
やだこのスレこわい
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です
そのコードを実行したときどうなってほしいのか書いてもらえないだろうか
そのモジュールの使い方は知らんがimage.jpgが無えって言われてるんじゃないの
>>397 コマンドプロンプトにコマンドを打ちこんだような挙動をさせたいです
元々exiftoolという外部ソフトをpythonから動かそうとしていたのですがわかりづらくなるかと思い単純なコマンドにしました
一昨日からプログラミングを始めた身なので変なこと言ってるかもしれませんがお願いします
>>398 デタラメなパスを打ち込んでもフルパスを打ち込んでも同じエラーがでます
check_output([exiftoolへのフルパス, "image.jpg"]) の実行例を省略しないで貼ってくれないか
>>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で正常に動くコマンドを打ち込んでもこのエラーと同じものが出てきます
C:\\image\x07bc.jpg
なんかおかしくね
となると 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'
いやいやいやエスケープ忘れてるって
raw文字列使うといいと思いますよ
subprocess.check_output([r"C:\Program Files (x86)\exiftool-9.82\exiftool.exe", r"C:\image\abc.jpg"])
エスケープシーケンスで引っかかったのか
rawでない文字列の中で\は通常印字しない特殊な文字を表わすために使う
\として書く場合は2つ重ねて\\と書かなければならない
軽く罠だよね
\記号の後ろがエスケープシーケンスでない場合エラーにならずスルーするの
この仕様で誰が得をしたのか未だによく分からない
¥a はエスケープシーケンスでベルだよ
>>405 うわああああああ!!!!ありがとうございます!!
IDLEのバグかと思ってました・・・
バックスラッシュをスラッシュに変えたらうまく動きました
ああ・・・
警告するようなら最初の\Pでとまるっしょ
そこで「認識できないエスケープシーケンスです」って出たら「知らねー単語だわ」だってググるっしょ
そういう意味よ
× 警告するようなら
○ エラーになるようなら
そうじゃなくても凡ミスによるエスケープ忘れは高確率で止められるよね
>>411 仰るとおりで...
cmdで動くなら中身に問題はないだろうという先入観がありました
恐らく聞かずに一人では気付かなかったと思います
おかげさまで画像収集が捗ります
c apiで可変長の引数を受け取り、シーケンシャルに処理するにはどうしたらいいでしょうか?
pythonコードだと、*argsで受け取るのをc apiでやりたい
PyArg_の関数ではなく、タプルとして処理できることはわかってますが、それご正しいのか分からない
415 :
デフォルトの名無しさん:2015/01/29(木) 15:08:58.70 ID:8k6H8xeW
それご正しい
>>415 おおおありがとう
python c APIで期待する結果を得ること自体は、apiが直感的なので難しくないけど
こういう時こうする的なtipsがあまりなくて、けっこう不安です
最新版libgit2をインストール
cmake .
make
sudo make install
pygit2をインストール
pip install pygit2
この流れではpygit2のインストールに失敗しました
どうやってインストールできるか教えてください
Debian
だからエラー読め質問するならエラー貼れっていってんじゃねえかよ
420 :
418:2015/01/30(金) 19:30:56.43 ID:JD65IaYR
422 :
418:2015/01/30(金) 19:57:46.76 ID:o5DeHUoq
Debianは64bit?
424 :
418:2015/01/30(金) 21:37:01.52 ID:/koRDY8e
wheezy 64bitです
となると厳しいので諦めます
調べていただきありがとうございます
struct git_checkout_optionsのサイズが違うって出てる
libgit2は開発版じゃなくてv0.22.1の方を使えばうまくいくんじゃない
pygameがないと動かないのでエラーになってますが、こういう文字列を画像にして表示するプログラムを書きました
http://ideone.com/tNXFHQ 【現状】
textクラス中の__init__に文字列を画像にするrenderコマンドを置いているが、これではゲームなどに使ったときに文字列を自由に指定できない
【やりたい事】
main()中で文字列を指定し、画像化、描写を一つの命令文で行えるようにしたい
何かいい方法はないでしょうか
キャッシュ
キャッシュ?
>>428 ほとんど同じような物を作ったことがあります
今だって text_image で持っているものを blit で描画できていますよね
何がしたいのかもう少し
>>431 例えば、このプログラムを応用してゲームのテキストエンジンとして利用したとき、
今の状況ですとテキストクラスからrender(str)を呼び出した後にdraw(screen, pos)を呼び出して描画しなくてはいけないですよね
勿論このままでも動きますが、一文描画するのに2つの動作を呼び出すのは少し面倒です
そこでもう少し簡潔に、例としてdraw(screen, pos, str)という風に、一文で文字列を描画できるようにしたい訳です
draw()の中にself.render()を入れてみましたが、際限なく新たな描画が続いて上手くいきませんでした
見た感じ、drawにself.renderを加えても際限なく描画されるようには見えない
54行目から56行目の間に書かなければ
>>432 Textにscreenかsurfaceを渡す窓口(あるいはrenderの引数)を用意して
renderの方にdrawを入れて、メインループの中ではblitによるバッファ転送だけする形でどうですか
その場合は、画面管理クラスを別に作った方がよさそうです
drawの中でrender呼んだらself.text_imagesに要素を追加し続けるから
とんでも座標で描画を続けたのが原因なんじゃないの
python.jpに求人情報とかやめとけよ。。。
やめるも何も、出す奴いないよ
出す奴いない
求人はすでに載ってるから
応募するバカはいないって意味でいいのかな
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
になる
権限の問題だと思うんですけど、一括で変更する方法が知りたいです
コマンドプロンプトでできた気はするのですが
>>441 c:/windows/system32は書き込みに管理者権限が必要で権限変更するのは論外
他の場所(c:/workとか)にディレクトリ作ってcdで移動してそこで作業すればいい
>>441 ぼくはねD:¥programfilesフォルダを作って全部そこにエディタやらIDEやら言語やらオフィスやら全部インストールしてますよ
システムフォルダを避けるのはWindowsの鉄板ですよ
避けてても C:\hoge\common とかにインスコする糞アプリもある VS とか
VS とか VS とか
一つのファイル内にpythonのバージョン2.7と3.4を分けて書く方法ありませんか?
例えば
2.7用にprint 1
3.4用にprint(1)
みたいにバージョン特有のコードが書きたいんです。
future importを検討しろ
>>447 OSはUNIX系じゃなくWindows?
だったらEOFErrorを捕まえるとかになるんだろうか
UNIXですLinux
何が起きたのか書きなよ
そこに載ってるサンプルを動かしてctrl+zするとどうなったの
何も起きずに動作し続ける?
一時停止してしまう?
何も表示せずに終了する?
>>449 ついでにOSやPythonのバージョン、ターミナル何使ってるかとか環境も詳しく
>>445 sysモジュールのsys.version_infoでバージョン番号を取得できるから、
プログラムの頭で取得しておいて、あとはこれを使ってif文で分岐したらいい。
ただしprintはprint関数で統一する必要がある。
3で実行するときにprint文が混じってると実行以前に文法エラーでこける。
>>445 投稿してから思い出したけど他にも文法レベルで2と3で互換性なくて
しかもprintのようには2と3で共通して使える書き方がないのがあったような気がする
だからそういう場合はこの方法は使えないな ごめん
どうしてもバージョンで分岐させたければ
文字列でバージョン違いの文法を入れて置いてevalすればなんとかなる
関数で各eval処理をラップしとけばそれなりに違和感ないコードになるんじゃね
six使えんの?
457 :
447:2015/02/03(火) 21:26:13.21 ID:lVjwn/n/
あ、すいませんちょっと特定の環境っぽいので質問取り消します
特定の環境が原因ぽかったらそれ書いてくれないと
回答者やROMってる人の助けにならないぞ
459 :
447:2015/02/03(火) 22:40:19.19 ID:hLrKLBVf
確認したいことがあるので1日待ってください
本当のトラブルをお見せしますよ
print() と print を使い分ける wrapper で printf() ってのを作って
そっちだけ使うように書けば良い
map使う場合は?イテレータ返すか返さないかになるけどどうしたらいいの?
from itertools import imap as map
pythonのクラス仕様ってphpよりも貧弱なのが気になってる
無様なことを強力というならそうかもね
特定の環境でもなんでもなく
ただVim上でプログラムを動作させてctrl+zしたらプログラムじゃなくてVimがそれを受け取ってバックグラウンドになっていたのを
プログラムが落ちたと勘違いしていたということね
>>467 vimがバックグラウンドに移行するのはいいとして
>>447のpythonで書いたシグナルハンドラも実行されてない?
>>442-443 ご返信ありがとうございました
確かにsystem32でゴニョゴニョすること自体間違ってますよね
初心者過ぎてすいません
pythonで、連立方程式は解けるんでしょうか?
例えば、
"a+b=6"
"a-b=2"
のように式が文字列で与えられたら、
a=5
b=3
という解を導きたいです。
pythonに限らずプログラミング言語はどれもできるよ
>>472 pythonではどうやるんでしょうか?
evalでは上手く行かなかったので。
>>474 ありがとうございます!
こんな事が出来るのが不思議ですね。
>>476 行列で処理する連立方程式とかで数学ぐぐれば
一般解見れるよ
xの二次方程式の解とかと同じぐらいワンパターンで処理できる
中学生にも門戸が開かれているpython
どういう意図で言ってるのか知らんけどPython for kidsなんて本も出てるくらいだからまったく不思議な点はないんだよなあ
開かれてない言語って何?w
scratchは5才からって本があるけどw
世界一の難解さを目的に作られたMalbolgeとかかな
普通の言語ではないが
どなたかアドバイスお願いします。
pythonまったくの初心者です。CENTOS6で、python2.6を使っています。
tweepyを使って特定のツイートを収集、ファイルに書き出していますが
何かの拍子で、データ書き出しがストップしてしまいます。以降、まったく
データを吐き出さなくなります。問題ないときもあるのですが。。。
標準出力をファイルに書き出しているわけではなく、tweepyのスクリプト
内で、f = open() f.write() f.close()しています。
同様の経験されている方はおられますでしょうか。
sys.stderr.write("prompt>> ")
print(sys.stdin.readline())
とやるとpython2.7では
prompt>> userinput
userinput
と出力されるのに対しpython3.4では
userinput
userinput
prompt>>
と出力されてしまいます.
3.4でも2.7の様に動かす方法は無いでしょうか?
標準入力以外のファイルオブジェクトからも入力したいので組み込み関数のinputを使うことを考えていません。
>>482 codec の確認とか
encode に error='ignore'
あとちゃんと例外補足汁
>>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)
こんな感じでバッファリングされなくする事はできる。
あと単位時間当たりのAPI呼び出し回数制限越えるとロックが有るな
ひどいとそのまま垢凍結まで逝く
>>483 flush()
>>488 一個づつprintすればタブ区切りになってるから何も問題ない。
for t in tags: print t
やってみ
stderrが行バファリングしてるとか驚き最大限の法則
492 :
デフォルトの名無しさん:2015/02/09(月) 07:43:46.29 ID:iJdyGTL3
>>490はバグという言葉に反応して大好きなパイソンが貶されてるとでも思ったん?
なるほど仕様とバグの区別が付かないのか
496 :
488:2015/02/09(月) 12:27:31.03 ID:99yenudv
>>489 ありがとうございます
正規表現だとタブは\tでしたね、、とんちんかんな質問でした
python -u じゃだめなん?
処理の早いファイルの可逆暗号で手軽な方法ないでしょうか。
入門ページとかだとMD5やらSHA1が紹介されてるものの、これはただのハッシュ直ですよね?
base64→rot13みたいな隙だらけなものでもいいのですがこれだとファイル容量が膨らみすぎるため、
blowfishのようなもう少し使いやすいものものが理想です。
厳密な暗号じゃなくていいなら
乱数のシードを鍵にしてxorでも取れば
500 :
デフォルトの名無しさん:2015/02/09(月) 19:59:04.73 ID:sBN76GX2
漏れは aes-256-cbc 使ってる
すいません。
正規表現を使って文字列の置き換えを
変数で行いたいんですけど、どのようにすれば良いでしょうか?
------------------------------------------------------
SET_NUM = 111
r1 = r'("NUMBER":")\d+(")'
re.compile(r1)
flow.response.replace(r1, r'\g<1>${SET_NUM}\g<2>', 5)
------------------------------------------------------
よろしくお願いします、、、。
投稿する場所間違ってねーか?
自己解決しますた。
【FFRK】FFレコードキーパー升スレが出てくるわ
チーターか君は
タイミング的にrubyスレでmitmproxyのこと聞いてた奴も臭い
Rubyで書いたりPerlっぽいPython書いたり忙しすぎるだろう
スレ眺めてきたけど
仮想マシンにpython入れてmitmproxy立てて
root取ってSSL証明書をインストールして
素人の割になかなか根性あるなと思った
エロに掛ける情熱といい勝負
windowsで2.7を使っているのですが、
ディレクトリ一覧を見るtreeコマンドを使うためにはどうすればよいのでしょうか
pipとdistributeは入れていて、easy_install treeってやってみたのですが
うまくいきません
510 :
デフォルトの名無しさん:2015/02/10(火) 03:14:34.62 ID:S8aa6Cnw
os.walk
>>510 ありがとうございました
今はtreeは使えないということでしょうか。
ありがとうございました
>>513 すいません
pythonでもlinuxコマンドが特に気にせず使えるものだと勘違いしていました
アホすぎますね、もっと勉強します
import sys.os
たっけ?
nihongodeok
試す暇があったらお前らになんか聞かんわ
>>519 ここに書き込むより自分で試したほうがよっぽど速い。
それをしないお前はクズ。
sqlalchemyのcommit()とflush()てどう違うんでしょうか?
同じですか?
522 :
デフォルトの名無しさん:2015/02/11(水) 06:05:02.34 ID:29qyXWgk
commitはボットン便所
flushは水洗便所
すみませんもうちょっと詳しく教えていただけないでしょうか
さよならpyscripter
君の事は大好きだったけどraw_inputが読み込めないのが怖くて使えないんだ……
はぁ、開発環境どないしよ
pycharmのオープンソース版とかいう奴でええんかな
>>510 ファイル数が少ないならいいけどos.walkって糞遅いんだよね
その部分だけc/c++で書いてswigとかで呼び出したほうが幸せだわ
パス列挙する以外に余計な機能持ってるかんね
ディレクトリとファイルを分ける為に一つ一つシステムコール打ちやがるし
初期のナンセンスな設計そのままって感じ
質問です
python でopenしたファイル(テキストファイル)を、10行ずつ別ファイルに
書き込みたいです。
別の変数を用意して、
ファイルを読み込んで、1行ずつ書き込んでいくごとに1足していって、10になったら
別ファイルに書くようにすればいいかと思うのですが、もっといい方法あったら教えてください。
それでいいよ
いい方法かどうかはわかんないけど、こんなやり方もあるって程度で↓
1. 全部一気に読む
2. 改行文字でsplit()
3. 2で出力されたリストを10個ずつ書き出す
この方法だとメモリを食うのが難点だけど、ファイル書き出しを始める前にファイル総数が分かる点はメリット。
532 :
デフォルトの名無しさん:2015/02/13(金) 13:51:43.35 ID:dpVVOxpY
だめよ
だめだめ
親切だな・・・と、思ったらw
なにこのわざわざPythonをRubyに変換したかのようなRubyらしくないコード
import itertools
lines=10
filename="input.txt"
for i in itertools.zip_longest(*[open(filename,"r")]*lines): print(i)
# ファイルへの出力に自分で変えてね
その発想はなかったけど嫌なコードだなw
その場限りならインタフェースと動作さえ分かってれば実装はどうでもよいのさ
そういった書き捨てや簡単な文字列処理のコードは、perlやシェルの方が
適しているのかな
んなこたあない
そもそもテキストファイルを特定行数単位で処理するのって
どの言語も不得意なテーマだよ
データ処理のエキスパートであるSQLですら、上位xx行という機能はあっても
xx行ずつレコードを抜き出すという機能は持ち合わせていない
不得意も何もPythonのzip_longestやRubyのeach_sliceでサクッと解いてるじゃないか
>>541 MySQLにはlimit句で行数の取得制限あるよ
じゃないとwebのページング処理とか作れない
544 :
デフォルトの名無しさん:2015/02/14(土) 10:31:16.03 ID:xzkKcWkn
limitって上位xx行だけじゃなくて
上位oo行から上位ωω行までって指定も出来たっけ
>>544 例えば3ページ目の15件なら
select * from xxxx limit 30, 15
のようにカンマの前にスキップ数を指定
通常は順序が不定にならないようにorder byも入れるかな?
limit offsetだろ
まあ素人がスロークエリー作りやすい機能だけど
2点間の経度緯度の距離を求めるパッケージってありませんか?
国土地理院で公開されている計算式が読めなくてコードにするのに挫折したんですが
パッケージなら有りそうな気がするので
経度緯度 距離 javascript
でググって出てくる1ページ目の記事で公開されているコードの実行結果と
国土地理院での結果があまりにも違いすぎて
東京駅から埼玉の大宮駅の間だけで5000kmもの差が出てるのでググって出てきた記事ですら信用できません
549 :
デフォルトの名無しさん:2015/02/14(土) 11:14:55.18 ID:xzkKcWkn
それ地球一周してないか
そもそもなんでjavascriptなんだ
質問するところ間違ってねえか
npmのパッケージ探してますとか言ったらころすぞ
551 :
デフォルトの名無しさん:2015/02/14(土) 11:22:49.17 ID:xzkKcWkn
地球を球体として扱っている式は、緯度方向のずれが大きくなるので止めた方がいい
球体扱いとvincentyの式では、東京大宮間ですら4kmも差が出る
またコード1から書いてくれちゃんですか
コードば書いてくれちゃらんですかに見えた
557 :
デフォルトの名無しさん:2015/02/14(土) 13:55:07.13 ID:G55HU/jn
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)
560 :
デフォルトの名無しさん:2015/02/14(土) 18:30:14.71 ID:LnLkdXvp
PythonでWindowsアプリというかクロスプラットフォームアプリを作る時
Windowsではpy2exeでまとめるのが今も一般的ですか?
>>555 何かヒントだけでも良いので教えてもらえると・・・
>>557 これはJavaスクリプトですか。
>>559 ありがとうございます。
調べてみます。
俺ぐらいの実力ならシェルスクリプトでcurl使うけどね
>>560 俺の観測範囲では利用例を見たことがない
今もってことは昔は一般的だったのか?
>>563 知らないです。ぐぐったらそれが出てきたので。
Windowsでサービス化したアプリを作りたいと思っているのですが、
どうすればいいのかなーと思って。
おれならpyqtを使う
サービスなんかスクリプトのままでも登録できる
普通に作るとサービスイベントに反応できないが、そりゃexeにしたって同じだろう
sc create hoge binPath= C:\path\to\python.exe C:\path\to\script.py
>>565 それGUIじゃないんですか?
サービスなのでGUIはいらないです。
>>566 問題はサービスに登録する方法ではなくて、
普通のユーザーはpython.exeを持っていないので、
どうやって配布するかという問題です。
python.exeをzipに詰めて、install.batすればいいんでしょうか?
つまり、パッケージ化の方法。
使っているライブラリを全部含めないといけない。
比較したことないけどcxfreezeが簡単だったょ
>>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度変わることを期待したのですが同じ値になってしまうのです。なぜでしょうか?どう治せば良いですか?
>>570 ありがとうございます。
py2exeはPython3には対応してないみたいですね。
PyInstallerというのも見つけたけど同様。
vimをIDE化しようとして挫折しました
windows環境でオススメのIDE教えて頂けませんか
PyCharm
windowsだとunicornとか使えなくて色々不便に感じませんか
>>574 ありがとうございます
英語の勉強と思って暫く頑張ってみます
>>575 まだpython初めて2週間そこらなんです
何か不便に感じる部分があったらまた相談に来たいと思います
IDE化より先にやることあるだろバカ
先にやることとは?
初学者ほどIDEあると簡単に文法チェックや動作確認デバッグできるから有用だと思う
リファレンスとか見なくても書けるようになると一時期はエディタだけでもよくなり
大きいソフトを書くようになるとまたIDEで管理が有用になる感じだなあ
シェルの扱いにも慣れていないようなずぶの初心者にIDE勧める奴は理屈抜きで銃殺されてほしい
これも煽り学習法厨かぁ
vim でいえば python 初学者に必要なのはいいとこ
quickrun と python-pep8-indent と好きなカラースキームくらいでしょ。
せっかくの動的型付けのインタープリタ言語なのだし(ガシガシ実行してエラー吐けば良い)
# vim のメインの魅力はそこにはない…と思うので、IDE化挫折でストレスなく他の環境に移れるなら
# それもいいとはおもうけど
584 :
デフォルトの名無しさん:2015/02/15(日) 11:42:33.69 ID:NqF+36Lb
チョンチョンうるせー
将来性がなさそうなSublimeですか
開発者はぼっちを卒業できたの?
プラグインとか入れすぎると設定ファイルやらキーバインディングやらわけわからなくなるw
なんてったってIDLE〜
589 :
デフォルトの名無しさん:2015/02/15(日) 16:07:55.41 ID:bX6frV1s
節子それ綴りちゃう
590 :
デフォルトの名無しさん:2015/02/15(日) 21:50:40.79 ID:yEZCPie2
pycharmが便利すぎるんだもの・・・
>>568-569 「パーフェクトPython」によると、
標準ライブラリの distutils をベースにした、
distribute がよく使われているらしい
プロジェクトには、setup.py モジュールを含める
README.txt は、reST記法で書く。
reSTは、Sphinx ユーザ会を参照
アプリをPyPIで公開
>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.
pythonのtkってドキュメントに書いてあることが圧倒的に少ないんですが書いてないのは未実装ってことですか?
はい?
596 :
デフォルトの名無しさん:2015/02/21(土) 14:25:07.32 ID:gDUcfidl
from moduleName import ClassName
とクラスをインポートしてリロードしたい場合どう書くのでしょう?
リロードってなに?ブラウザ上?
内容を修正して再読み込みしたいときに
モジュールでfrom modulePath import moduleNameとインポートしていれば
reload(moduleName)と書いていたのですが
from moduleName import ClassName
とクラスをインポートしている場合、どう書くのかなと
余談だが、フレームワークの機能によくあるautoreloadは
自分自身を再起動する or execfileでソースから実行する
などの方法を使っている
ありがとうございました
修正がありそうなものはクラスで読み込まないように書こうと思います
もう一点インポートについて
import modulePath.moduleName as moduleName
といったモジュール名と同じ名前を別名に与えているコードがあります
個人的に名前を変更しないならfromのほうが自然のような気がするのですが
from modulePath import moduleName
何か利点があるのでしょうか?
602 :
デフォルトの名無しさん:2015/02/21(土) 20:16:12.87 ID:HRR/gGfP
__init__.py を敢えて使いたくない(書きたくない)ときとかかな
なんで
hensu, hensu2 = map(int, raw_input().split())
print(hensu, hensu2)
print hensu, hensu2
プリントの出力が違うのはなぜですか
print(a, b)は引数のタプル(a,b)をprintしてる
一方print a, bは引数aと引数bをprintしてる
python3だと
print((hensu, hensu2))
print(hensu, hensu2)
こうなっちゃうね
いまどきPython2なんかつかってるロートルほど自分のPythonのバージョン書かないのな。
>>606 print文なんてFAQレベルじゃん
つーかPython2なんかをつかわない環境を明記してくれよw
コード見てpython2だという事がわからない無知がいるのかよ
from __future__ import print_function
Python2なら書いとけよ
最初の質問者じゃないんだけど、疑問に思ったので便乗質問させてください。
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関数を有効にしなければならない。
この理解であっていますか?
>同じprint関数なのになんで挙動が違う?
だれが同じprint関数って言ってた?
そうだよ、両方使えると言えば使えるが
future文による切り替えで混在している訳ではない
括弧つけたくらいでキーワードが識別子になるものか
614 :
デフォルトの名無しさん:2015/02/22(日) 12:08:42.83 ID:x6DbFD5S
オライリーのデータ分析入門やってる。最初のサンプルデータから、エンコードのエラー出るんだけど…。どうしたらいいの…。
いきなりスポーツカーに乗らないで教習所から始めたらどうですか
616 :
デフォルトの名無しさん:2015/02/22(日) 12:22:07.32 ID:x6DbFD5S
ホームページから落としたサンプルを本の通りに数行入力しただけなんだけど。それがスポーツカーなのか?
まあもう少し調べてみるが。
・エラーを見て何が原因か調査する
・サンプルが動く動作環境を満たしているか確認する
Python3にはまだ早い
あと2年待て
と、言われ続けてはや幾年
運転免許には、車の点検・整備の責務もあるんだよなぁ
自賠責加入も義務だな
窃盗無免許だと保険下りないだろうけど
その本はPythonの入門書ではない
Pythonという言語の使い方が分かっている人向けの、Pythonを使ってデータ分析する入門書
車に乗れないのに、車に乗れる人向けのスポーツカーの乗り方を見てるようなもの
スポーツカーの乗り方って普通の車とそんなに違うの?
僕は乗り方(Python自体のチュートリアル)から学んだらどうですかと言ったつもりなんですが
なんかへんな方向に進んでますね
たとえ話は適切に用いないと読み手に却って混乱を来たすという好例ですね。
>>625 違う
まっすぐ走るのも結構難しい
何もない直線で自分の車なのにガードレールに突っ込むやつとか見たこと無い?
低速で走る方が難しい、車高が低いから視界が悪い
>>595 panedWindowの説明も載ってない
Tclコードを書く必要はないが、TkやTclのドキュメント見てね、か
すいません、本当に下らない質問をさせて下さい。
datetime.dateでは2つの日時で引き算が出来るのですが、datetime.timeで2つの時刻を使った引き算が出来ません。
s = datetime.time(15,20)
e = datetime.time(21,30)
t = e - s
何を使えば良いのでしょうか?
>>> 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)
>>635 ありがとうございます。
ちなみに「時??分」の入力だけで求められる方法ってないでしょうか?
特に年月日が決まってない際には困るなぁと思いまして。
GoogleAppEngineもなんかtimezone可笑しいんだよな
>>636 日本みたいに夏時間使ってなくてtimezoneも一つしかない国ならそれが一番良いんだけどね
俺にも解けた!
phpは夏時間にも対応している
pythonも対応するべきだ
>>641 python で解くプログラム書いてみ
>>637 年月日がきまってないっていうことはその2つの時刻が
同日だという保証もないので計算不能が正しいのでは?
もし同日と見なしてもいい場合は、そういうメソッドは
ないので自分で求めましょう。
646 :
デフォルトの名無しさん:2015/02/26(木) 21:51:55.23 ID:EQFLZ0n/
うるう秒のある日だったらどうするんだろうな
>>637 端からTimeDelta同士にすれば良…くないかな?
s = datetime.timedelta(hours=15,minutes=20)
e = datetime.timedelta(hours=21,minutes=30)
t = e - s
>>637 import datetime
x = lambda h, m: datetime.timedelta(hours=h, minutes=m)
s = x(1, 2)
e = x(5, 7)
print(e - s)
>>634 e>=sの条件が絶対に成り立っているの?
時刻だけで計算したいって言うならsが23:59でeが0:00みたいなときはどうすんの?
21時30から15時20を引くなら単純に
2130-1520でもいいんだけどさ
このスレは条件後出し推奨ですか?
ツッコミだと思います先生
653 :
デフォルトの名無しさん:2015/02/27(金) 13:30:03.74 ID:EtM70Hm1
今からpython学ぶ場合、2と3ではどっちのほうがいいんだよ
両方やれ
Pythonに横道なし
俺も新しもの好きで3.3から始めた俺がアドバイスしてやる。
競技プログラミングだと2.7で書かれることが多い。
Linuxだと2.7が標準で入っていて3は3.2が入っていることが多いので、世の中の実行環境は2.7のほうが3よりも多いから便利なツールなどはいろんな環境で動かせるように2.7で作るようにしている。
djangoなどのWebフレームワークを使ってWebアプリを作る場合は3.4使ってる
用途にあわせてバージョンを変えて使っていけば自然と両方書けるようになる
GAEのPython3待ち
そういやCentoOSもようやく2.7にしやがったのか
ABAQUSと連携してる方、なんかおもしろいのあったら教えてちょ!
>>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)
PHPからPythonに移行して感動したコード
a = 1
b = 2
a, b = b, a
総当たりつまらんな
>>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が可能だったのでしょうか?
全く見当外れな質問かもしれませんが、よろしくお願いします。長文失礼しました。
Anaconda入れてるんだけど、Anaconda自体は結局どういう役割なんだ?
ライブラリの管理?
scientific computing in pythonな環境を最初からフルセットで提供していることに意味があるのでは
実際楽だし
書き方が悪かったかも
コマンドプロンプトで
conda list
でモジュールの一覧が見られるのだが
Anacondaというモジュールがあるし、時々アップデートもされる。
モジュールとしてのAbacondaは一体何をやってるんだろうと疑問。
667 :
デフォルトの名無しさん:2015/03/01(日) 04:30:32.48 ID:LYwpGVQL
VM
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'])
ためしてないけど.python-versionの中身を書き換えて実行するとか
そもそも動かしているpythonからバージョンを切り替えて実行するっておかしい気もするけど・・・
シェルスクリプトから操作すればいい話だと思うんだけどなあ
subprocess.popen
>>663です。
結局のところ、virtualenvはAnacondaには対応しておらず、
同バージョンで仮想環境を分けることは少なくともvirtualenvを用いてはできないということでしょうか?
>>672 ぼくは初心者だからわかんないけど
そもそもvirtualenvで仮想環境を作るときにパッケージも仮想環境にコピーされるように設定して作ってますか?
もし何もしてないならそりゃあインポートできなくて当たり前だし、それなら再度パッケージをインストールしないといけないとおもうんですけど。
macだったらanacondaなんて使わなくても仮想環境ごとにnumpyとかscipyとかインストールしたらんんではないでしょうか
面倒なインストール作業なんてシェルスクリプトを書けばいいわけですしね
>>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になってました
そりゃあ環境変数がどうなっていようが変わらないですよね
>>672 Anacondaはpyenvでインストール後に有効にしてあるんだよね?
virtualenvはどうやってインストールしたの?
俺のAnaconda環境でvirtualenvをインストールしようとすると、
Anacondaでの使用は推奨されないって警告が出る。
警告を無視してインストールすることはできるけど、
エラーが出てvirtualenvコマンドは使えない。
あなたの環境ではvirtualenvは使えてるみたいだけど、
>>673さんの言うように、仮想環境をつくるとまっさらな環境がつくられるので、
numpyとかの外部モジュールは(たとえAnacondaではプリインストールされてたとしても)
その仮想環境ではインストールされていない状態になるので、使えない。
プリインストールされてるいろんな外部モジュールを、
仮想環境でもそのまま使いたいんだったら、仮想環境つくるときに
--system-site-packages オプションをつけたら使える。
インストール時の警告にもあるように、virtualenvの使用はAnacondaでは推奨されていない。
かわりに、同梱されているパッケージ管理ツールのcondaコマンドを使う。
仮想環境ごとに、Pythonとライブラリがあらためてインストールされる。
プリインストールされている外部モジュールをすべて使える仮想環境をつくる、みたいな使い方はできない。
その場合はあらためてAnacondaの全モジュールをインストールする形になる。
Python3でしか使えないけど、標準モジュールのvenvを使う手もある。
使い方はvirtualenvと一緒。手軽に使えるので俺はよく使う。
>>673 >>676 ありがとうございます。
Anacondaというディストリビューションがあることを知り、せっかくなら使ってみようと思った次第です。
私の場合はpyenv及びvirtualenvを先にインストールした後にAnacondaをpyenvでインストールし、
virtualenvを用いて仮想環境を構築するという順番をとりました。
警告文は見ておりませんし、Anacondaの仮想環境をvirtualenvを用いて構築できましたので、
それはおそらくこのインストール順が関係しているのではないかと思います。
やはりvirtualenvの使用はAnacondaでは推奨されていないのですか…
condaコマンドを用いてもAnaconda付属モジュールごと仮想環境を複数構築することは想定されていないわけですね。
venvに関して存在自体は聞いたことがあったのですが、Python3からの実装ということもあり、文献が少ないため使うことを避けていました。
virtualenvと同じように使えるのであれば次の機会に使ってみたいと思います。
このような初心者相手に様々丁寧に教えていただきありがとうございました。
もしかしてvirtualenvで作った仮想環境をactivateしてないとか?
別に消さなくてもいいのに
せっかく新しい翻訳なんだから公開したらいいのに
なんでちょっと言われたただけ顔真っ赤になって消すのかな
自意識過剰
中二病
童貞
>>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
重いこんだら
ご助言いただきありがとうございます。
>>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
とかしなくちゃいけない?
>>684 conda update conda; conda update anaconda だけでいいよ。
自分で入れたパッケージは個別に自分でアップデートしてね。
conda update --all を使うと、パッケージひとつひとつをそれぞれ最新にアップデートしようとするので、
anacondaモジュールに書いてあるバージョンの組み合わせと整合性が取れなくて、
その旨表示して処理はキャンセルされる。
そしたら安定して動作することが確認された
Anacondaに最初からインストールされているパッケージだけを、
安定して動作することが確認されたバージョンの組み合わせでアップデートするだけだったら、
ごめん空行以降は無視して
書きかけの説明を削除するの忘れてた
住所氏名消し忘れて投稿する夢みた
688 :
デフォルトの名無しさん:2015/03/04(水) 09:08:02.54 ID:DU9HoCMy
scipyのminimizeについて教えてもらいたいのですが,フィッティングするパラメータの精度を指定することは出来るのでしょうか.
たとえばa, b, c・・・とパラメータがあった時にaは0~10を0.1刻みで・・・のようにです.
0~10という部分はboundsで指定できますが,刻みの指定がわかりません.
>685
便利だな
thanx
ニワカです
pythonでxlwtを使ってエクセルのグラフを描きたいのだけどサンプルが見つかりません。
誰か教えて m( )m
ちなみに自分はnetへの書き込みは必要最小限にとどめている
今日はこれが最後だと思う
netの書き込み数激減(少なくとも1/3以下へ)というまごうことなき数字を突きつけることが
現状打開のために必要だと思うから
でも皆に同じことをしてくれともそうすべきとも思わない
自分のことは自分で決めればいいんだよ
質問です。
環境: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
このスレでは全角チルダで表示されてしまうようですが
問題が起こるのは波ダッシュの方です
Pythonは開発効率が良いと聞いて試しましたがイマイチですね
本当にC#より速く堅牢なアプリケーションを作れるのですか?
人によっては作れます
一体どこでそんな事聞いてきたの?w
無理して使わなくていいからね
pythonのweb frameworkって言ったらとりあえずdjangoをやっとけば通じるみたいだけど
djangoのベストプラクティスな情報がな圧倒的に足りない
>>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書き換えてみます
ご親切にどうもありがとうございました!
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.
もう春休みの宿題の時期か
長いのはideoneに貼ってくれないとコピペがだるい
Python3 はこんな風に書かなくても良くなったのか
num1=int(input(prompt1))
num2=int(input(prompt2))
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
>>> print int(1.0)
1
>>> n
1.0000000000000007
>>> a = 1 / n
>>> a
0.99999999999999933
>>> int(a)
0
浮動小数点数の誤差の蓄積やね
どうして?目に見えない部分にデータがあるの?
逆
目に見えないデータを見えるところで切ってる
PHPみたいにクソ仕様だな
この場合はprintに原因があるのか
math.fsumで誤差を補正できる
>>> n = math.fsum(1.0 / 1000 for _ in xrange(1000))
>>> a = 1 / n
>>> print a
1.0
>>> print int(a)
1
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
719 :
デフォルトの名無しさん:2015/03/05(木) 18:25:51.88 ID:wT1PXWMM
ipythonを起動した時に自動的にimport mathをしたいんですけど
そういう設定教えてください
echo "import math" > ~/.ipython/profile_default/startup/000.py
722 :
デフォルトの名無しさん:2015/03/05(木) 19:05:58.30 ID:0TrB/Lm6
>>719 CoffeeScriptもPythonとは違うんでしょ?
sites.py
ラッソンゴレライ
javascriptに対する現実解はtypescript程度だと思うよ
まあアレも結構面倒な部分は残ってるんだが
ゆるさと開発効率のバランスが絶妙
CoffeeScript
729 :
デフォルトの名無しさん:2015/03/06(金) 09:22:14.27 ID:TaB/WAXS
CoffeeScript 良いよね
Python もだけどなんで日本だと流行らないんだろう
a = 0
b = 'p'
a += b == 'p'
こういう式はなんていうの?
なんでちゃんと動くのか知りたい
b=='p'は比較だから返り値がTrueかFalse(ここではTrue)
bool型はintのサブクラスだからa += Trueはa += 1と同じ
ありがとうございます!
真面目に使ったことはないけど、Brython っていうのは javascript で動く python3 実装
script type=text/python3 で python のスクリプトをそのまま書けるというやつだ
中学の頃 大村君が苗字音読みでダイソンって呼ばれてて
それが元で梅村君はバイソン 若村君はジャクソン
下村君はアンダーソンとみんなかっこいいあだ名がついたのに
津村君だけあだ名がバスロマンだったのはイジメに近いし
今思うとバスロマンはツムラじゃなくてアース製薬
735 :
デフォルトの名無しさん:2015/03/07(土) 04:16:44.13 ID:4UroII6b
みんなのパイチンくんとチンパイくん
>Brython
ブラ依存
pythonはインデントに意味があるから転送量おさえるためにコンパクト化
する事が出来ないのは不利なんじゃ?
>>734 よく出来てるわ
転送前と後で適当に {} に機械的に置き換える処理入れたら済む気がする
サーバで実行するのに転送量もクソもねえよ
ファイルロードのコストが増えるじゃん
pycが作られるだろうが!
あーゴメン
転送量が気になるのは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)
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の設定がおかしいのかと考えておりますがどなたか本件に関して多い当たる点ございますか?
早速すみません
一応自己解決しました
簡単なバイナリファイルを自分で作ってみたところフォーマット文字列を指定してunpackしないとpyscripterでは表示されないみたいでした
もれもそう思ってたから返事しなかった