くだすれPython(超初心者用) その27©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net
2015/09/04(金) 07:05:12.28ID:6Gds/3zTもしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その26
http://peace.2ch.net/test/read.cgi/tech/1431763770/
関連スレ
Pythonのお勉強 Part50
http://peace.2ch.net/test/read.cgi/tech/1413474092/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
◆まとめwiki
ttp://python.rdy.jp/
0002デフォルトの名無しさん
2015/09/04(金) 07:09:43.39ID:x7fRT8f0|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
0003デフォルトの名無しさん
2015/09/04(金) 07:10:37.53ID:x7fRT8f0│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
0004デフォルトの名無しさん
2015/09/04(金) 10:18:55.12ID:efXmgHpK,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0005デフォルトの名無しさん
2015/09/04(金) 20:27:20.54ID:x7fRT8f00006デフォルトの名無しさん
2015/09/05(土) 05:28:45.51ID:ZKXW4+L0日本じゃマイナーな言語なのに
その中で知識を誇っても虚しいだけだ
0007デフォルトの名無しさん
2015/09/05(土) 05:45:34.94ID:xb8mS1yp>>973 は
どうすればよかった?
0008デフォルトの名無しさん
2015/09/05(土) 07:07:24.04ID:SHK8Doz80009デフォルトの名無しさん
2015/09/05(土) 09:14:00.49ID:DTTTMVx9ndarrayのリストを渡して任意のaxisで結合してほしい。
0010デフォルトの名無しさん
2015/09/05(土) 11:25:39.64ID:yNAOhLZf0011デフォルトの名無しさん
2015/09/06(日) 08:28:38.97ID:0LRHIEGwリストやタプルに格納する方法を知りたい
Cの構造体定義みたいな感じで指定できると嬉しい
0012デフォルトの名無しさん
2015/09/06(日) 08:45:32.50ID:rNg8wlTpstruct.unpack()
struct.pack()
でできるのでは。
0013デフォルトの名無しさん
2015/09/06(日) 09:22:56.63ID:2A7JkPdq>>> a='\x01\x02\x03\x04\x05\x06\x07\x08'
>>> a
'\x01\x02\x03\x04\x05\x06\x07\x08'
>>> struct.unpack('8c', a)
('\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07', '\x08')
>>> struct.unpack('2i', a)
(67305985, 134678021)
>>> struct.unpack('i4c', a)
(67305985, '\x05', '\x06', '\x07', '\x08')
>>> map(hex, struct.unpack('2i', a))
['0x4030201', '0x8070605']
0014デフォルトの名無しさん
2015/09/06(日) 09:32:31.32ID:2A7JkPdq['0x201', '0x403', '0x605', '0x807']
>>> map(hex, struct.unpack('i2h', '\x01\x02\x03\x04\x05\x06\x07\x08'))
['0x4030201', '0x605', '0x807']
>>> map(hex, struct.unpack('hhhh', '\x01\x02\x03\x04\x05\x06\x07\x08'))
['0x201', '0x403', '0x605', '0x807']
>>> map(hex, struct.unpack('hih', '\x01\x02\x03\x04\x05\x06\x07\x08'))
struct.error: unpack requires a string argument of length 10
>>> map(hex, struct.unpack('hih', '\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a'))
['0x201', '0x8070605', '0xa09']
0015デフォルトの名無しさん
2015/09/07(月) 21:32:31.39ID:4CGTGSEXWebスクレイピングをしたいと思ってPython2.7をインストールし、次のサイト通りに試したんですが、
text_content属性がないとのエラーが起こるので、対処方法を教えていただけると嬉しいです。
http://qiita.com/beatinaniwa/items/72b777e23ef2390e13f8
(ちょうど最下のコメントと同じ状況です)
もう一つ、cssselectorの代わりにXPathを使う方法も試したのですが、
出力結果が"[]"だったのでこっちも失敗してしまったようです。
ソース:print root.xpath('//*[@id=news_body]')
一応、ターゲットのHTMLソースも確認してみましたが、
記述したCSSセレクタが間違っているということもなさそうです。
以下はpip freezeで調べたパッケージのバージョン情報のコピーです。
cssselect==0.9.1
lxml==3.4.4
requests==2.7.0
0016デフォルトの名無しさん
2015/09/07(月) 22:04:59.68ID:9ljv166A0017デフォルトの名無しさん
2015/09/07(月) 22:27:39.09ID:M58p8v+Fサイトの構造の変化を調べて動くように直すだけ。
その手間が嫌なら(あるいは自力で解決できないなら)
スクレイピングなんてやるべきじゃない。
0018デフォルトの名無しさん
2015/09/07(月) 22:28:21.93ID:LXZrJgTOエラーは例外
XPathはchromeで抽出できるんだから勝手にやればいい
001915
2015/09/08(火) 00:22:09.29ID:LVYNmHjhレスにも含んでますが、同じ内容のコメントが数カ月前にあります。
>>17
これも最初に書いた通りですが、一応再確認してきました。
セレクタは#news_body > pで間違いありません。
>>18
あ、chromeで抽出して気づいたんですが、
XPathの方はidを二重引用符で囲んでなかったのが原因みたいです。失礼しました。
っていうかcssselect('body')でもxpath('//*')でも結果は同じなんですが、
このチュートリアルは正しいんですか?
0020デフォルトの名無しさん
2015/09/08(火) 01:36:04.31ID:WpGjOpsu#news_body > p で、
<div class="maintext" id="news_body">タグの子要素の<p>タグを表す
text_content()メソッドは、
そのタグ以下にある、すべてのテキストを取得するから、
root.cssselect('#news_body > p').text_content()
<id="news_body">タグの子要素の<p>タグの、テキストを取得する
このソースコードは、そのサイトを書いた時点では、
正しく動作していたが、その後、
URL(テレ朝)のHTMLの内容が変わったのだろう
IEの開発者ツール(F12を押す)などで、
使われているタグを確かめながら、デバッグするべし。
それとHTML, CSSの基礎も勉強した方がよい
002115
2015/09/08(火) 02:06:30.22ID:LVYNmHjhCSSセレクタも開発者ツールから該当する要素のを引っ張ってきたんですが、
これって「#news_body > p」で示されているテキストですよね?
<div class="maintext" id="news_body">
<p> 安倍総理大臣は国会で、(略)
</p>
</div>
(09/08現在のテレ朝の記事から抜粋)
0022デフォルトの名無しさん
2015/09/08(火) 02:26:01.65ID:WpGjOpsuこれで取得できないの?
print文で、内容を見てみたら?
どの命令文でおかしくなるのか、
すべての文を、printしていくなど、
地道に順番に、デバッグしていくしかない
0023デフォルトの名無しさん
2015/09/08(火) 02:54:38.44ID:G+naPLuH"'list' object has no attribute 'text_content'"
っていうことは「リストオブジェクトにはtext_contentなんてメソッドはないよ」ってことだよね
print(type(root.cssselect('#news_body > p')))
してみると確かに
<type 'list'>
ってなってる
print(root.cssselect('#news_body > p'))
してみると
[<Element p at 0x101baeaf8>]
ってなってて、リストの中にlxmlのオブジェクトがひとつ入ってる
一方ネットで見かけたtext_contextの使用例をそのまま使わせてもらうけど
>>> p = lxml.html.fromstring(u'<p>はじめ<strong>注意</strong>おわり</p>')
>>> print p.text_content()
はじめ注意おわり
>>> print(type(p))
<class 'lxml.html.HtmlElement'>
>>> print(p)
<Element p at 0x10156b4c8>
この違いの原因をどこに見つけるかだよね
002415
2015/09/08(火) 03:03:56.29ID:LVYNmHjhfor attr in dir(obj):
if callable(getattr(obj, str(attr))):
print attr
ダンプ代わりにこれで最初に調べたときは、rootそのものはtext_contentを持ってますが、
root.cssselect(...)やroot.xpath(...)にはcountとかinsertとか一見配列のプロトタイプっぽいメソッドしかありませんでした。
rootも含めて、どれもprintすると<Element at なんたら>と表示されるのでエラーではなさそう……と悩んでいたんですが、
今さっき、それに[]が付いてたり付いてなかったりするのに気が付きました。
最初は飾りだと思って意識していなかったんですが、きっとリスト?を表す記号ですね。
root.cssselect('#news_body > p')[0].text_content() だと成功しました。
となるとやはりサンプルソースの書き間違いだったようです。
0025デフォルトの名無しさん
2015/09/08(火) 03:23:05.25ID:WpGjOpsulist は、複数のオブジェクト(コンテナ)だから、
[0]で最初の要素を取れる
for で、全要素にもアクセスできる
0026デフォルトの名無しさん
2015/09/08(火) 03:55:50.81ID:haPw6oSapyhton main.py
で実行しているのですが、sshでの接続が切れるとpythonスクリプト自体も止まってしまいます
これを回避する方法は無いのでしょうか
0027デフォルトの名無しさん
2015/09/08(火) 05:10:52.55ID:WpGjOpsuその端末を終了したら、そのシェルスクリプトも終了する
それは、端末が親プロセスになっていて、
端末から起動したシェルスクリプトが子プロセスだから、
親プロセスが終了すると、子プロセスも終了してしまう
つまり、親亀こけたら、子亀もこける
たぶん、それと同じで、sshが親プロセスで、
そこから起動したパイソンスクリプトが、
子プロセスになっているのだろう
sshにプロセス間の親子関係を切る、
オプションは無いかね?
0028デフォルトの名無しさん
2015/09/08(火) 06:27:30.26ID:uyQlx19r$ nohup python main.py &
って実行するのが一番手っ取り早い方法かな。
処理に時間がかかるから実行しといてログアウトしたいだけで、
サーバみたいに常時起動しときたいわけじゃないよね?
0029デフォルトの名無しさん
2015/09/08(火) 08:36:07.19ID:LW57ufqa0030デフォルトの名無しさん
2015/09/08(火) 22:10:29.11ID:QvAVInF00031デフォルトの名無しさん
2015/09/08(火) 22:40:41.81ID:XiTHgORh・環境の問題
・コードの問題
・君の問題
さあどれだ
0032デフォルトの名無しさん
2015/09/08(火) 23:32:13.22ID:UfRS9P/L0033デフォルトの名無しさん
2015/09/09(水) 07:24:03.26ID:WpKwoiR80034デフォルトの名無しさん
2015/09/09(水) 08:04:42.08ID:kfehcr7u正解
pythonで最も覚える価値がないのがurlopenと一連のハンドラ
唯一認められる価値は
下手くそな抽象化がどれだけユーザビリティを損ねるかという教材になる、その一点だけ
0035デフォルトの名無しさん
2015/09/09(水) 13:31:50.70ID:n+TAyw9Xクォートとかもそのまま入れるのに、どのような処理を入れたら良いでしょうか
keyとjson文字列のテーブルを作って使いたいと思っています。
0036デフォルトの名無しさん
2015/09/09(水) 13:48:05.45ID:cLSarNth0037デフォルトの名無しさん
2015/09/09(水) 14:05:57.50ID:9XF7xRTwありがとうございます!nohupかなりいいです
pythonだけじゃなくてlinux/unix系の勉強もしていこうと思います
0038デフォルトの名無しさん
2015/09/09(水) 14:28:09.61ID:kfehcr7uまさかクエリの組み立てでどうエスケープするか聞いているのか?
それなら手作業でやるな
プレースホルダ使え
というかkey-valueならshelve使えば?
dictと互換だから下手な考え起こさなくて済むし
0039デフォルトの名無しさん
2015/09/09(水) 17:10:08.25ID:n+TAyw9Xはいエスケープさせたいのですが、華麗にやる方法はないかと思いききました。
sqlite3よりshelveのほうが便利ですか?2.7で標準なら使ってみようかと思います。
テーブル作成とかも必要なさそうですし
0040デフォルトの名無しさん
2015/09/09(水) 17:12:53.82ID:n+TAyw9X0041デフォルトの名無しさん
2015/09/09(水) 18:31:31.79ID:z0dYPSvJ0042デフォルトの名無しさん
2015/09/09(水) 18:51:47.12ID:kfehcr7upickleできる型なら何を突っ込んでもいい
0043デフォルトの名無しさん
2015/09/09(水) 22:23:26.23ID:pI2H1r76改行のみの行を判定するコードを書いています
ifの条件部分の line[0] っていうのがやや泥臭く感じるんですけど
望ましい書き方があるなら教えてください
with open('fileread.txt','r') as f:
for line in f:
if line[0] == '\n':
print('改行のみ')
else:
print(line)
0044デフォルトの名無しさん
2015/09/09(水) 22:34:07.87ID:gU9sAx8fwith open('fileread.txt') as f:
for line in f:
line = line.strip()
if not line:
print('空行です。')
else:
print(line)
0045デフォルトの名無しさん
2015/09/10(木) 02:47:46.05ID:OdK7pfypline == '¥n'でいいように見える
0046デフォルトの名無しさん
2015/09/10(木) 05:48:45.58ID:nqOdWtep聞いて良かった
自己流は恐い
0047デフォルトの名無しさん
2015/09/10(木) 20:22:09.14ID:KmumwdfOYosemiteでJupyterというのを入れたのですが、
線とか円とかテキスト程度の簡単な2Dをやるモジュール
(独立ウィンドウがた立ち上がるのではなくブラウザ内に出るような)
があれば使いたいのですがデフォルトで何が入ってるのかわからず
ivisualやmatplotlibもオーバースペックなので何かよいのがあれば
教えていただけないでしょうか。
0048デフォルトの名無しさん
2015/09/10(木) 21:37:03.46ID:VH/iB+Cq0049デフォルトの名無しさん
2015/09/10(木) 22:25:58.69ID:t/qMnqiP標準で付いてくるし
0050デフォルトの名無しさん
2015/09/11(金) 00:07:02.78ID:VUYanu//Tkintetはブラウザ内にブラウザのセルとおなじようにたてつづけに出力できるのでしょうか。
0051デフォルトの名無しさん
2015/09/11(金) 00:32:52.66ID:7w0dDVba0052デフォルトの名無しさん
2015/09/11(金) 01:10:41.50ID:lS37PnBXtkinterをJupyterでブラウザ内に埋め込むとか聞いたことないなあ。
turtleの描画を埋め込むのはやってる人いるみたいだけど機能を拡張したIPython使ってるみたいだからあなたには敷居が高いんじゃないかな。
俺も前同じこと調べかけて放置してたんで改めて調べたけど、Pythonで気軽に使える2Dグラフィックスライブラリって意外にないね。JupyterのセルでJavaScriptも使えたらprocessing.jsとか使えるんだけど。
目的は何かな?グラフとかを描画するんだったらオーバースペックとか言わずmatplotlib使うのが一番いいんだけど。
jupyterにとってmatplotlibは不可分の一部と言っていいような存在だし、もちろんブラウザ内で表示できるしね。
いちおう図形の描画もできるみたいよ。テキストの描画は厳しそうだけど。
http://matplotlib.org/examples/shapes_and_collections/artist_reference.html
0053デフォルトの名無しさん
2015/09/11(金) 01:18:21.77ID:WbJ+VPpl例(標準入出力で制御する必要がありませんが)
mysqlを起動し、mysqlのコンソールでshow databases;コマンドを実行したい
自分の考えたコード
>import commands
>return = commands.getoutput("mysql -u aaa -p bbb")・・・・ちゃんと起動する
>return = commands.getoutput("show databases;")・・・・上手くいかない!
0054デフォルトの名無しさん
2015/09/11(金) 02:31:50.28ID:KoJW2sNo>>> import subprocess
>>> args = ['mysql', '-u', 'aaa', '-p', 'bbb']
>>> proc = subprocess.Popen(args, stdin=subprocess.PIPE)
>>> proc.communicate(b'show database;')
>>> proc.returncode
0055デフォルトの名無しさん
2015/09/11(金) 03:48:03.80ID:WbJ+VPplありがとうございます
何時間も分からなくて困っていたので本当に助かりました
0056デフォルトの名無しさん
2015/09/11(金) 12:59:26.56ID:+0sGE2Zy{"b":1},
{"c":3},
{"a":2},
]
これを数字で昇順にソートする方法を教えてください
0057デフォルトの名無しさん
2015/09/11(金) 13:07:18.29ID:Eesd1ubKlist1.sort(key=lambda d:d.values()[0])
python3
list1.sort(key=lambda d:list(d.values())[0])
0058デフォルトの名無しさん
2015/09/11(金) 20:27:40.65ID:KFEb2g7zという4次元numpy.arrayから
要素数3の1次元numpy.arrayのlistを内包表記で得るには、
どうしたらいいのでしょうか?
0059デフォルトの名無しさん
2015/09/11(金) 22:55:06.94ID:VUYanu//有難うございます。ちょっとやってみます。
0060デフォルトの名無しさん
2015/09/12(土) 00:38:03.31ID:Y0QkDcDuvec = [[1,2,3],[4,5,6]]
res = [num for elem in vec for num in elem]
print(res)
#=> [1, 2, 3, 4, 5, 6]
[num (for elem in vec) (for num in elem)]
まず最初の( )が実行されて、
次に次の( )が実行されて、それが先頭のnumに入る
0061デフォルトの名無しさん
2015/09/12(土) 09:33:30.79ID:ZU+GZSdr>>57
0062デフォルトの名無しさん
2015/09/12(土) 09:35:13.10ID:ypYaVLmK0063デフォルトの名無しさん
2015/09/12(土) 09:53:07.89ID:Y0QkDcDunot_num = [elem[1:] for elem in vec]
print(not_num)
#=> [['a', 'b', 'c'], ['x', 'y', 'z']]
elem[1:]は、インデックス1〜最後の要素までを、取り出す
ちなみに質問とは関係ないが、
Pythonには、インデックス0以外の要素を取り出す、
elem[not 0]のような表記はあるのか?
0064デフォルトの名無しさん
2015/09/12(土) 09:55:20.42ID:J6pfiWXJ>>> import numpy as np
>>> a = np.mgrid[0:4,0:5,0:6]
>>> a.shape
(3,4,5,6)
>>> b = [x for z in a for y in z for x in y]
>>> len(b)
60
>>> b[0].shape
(6,)
となりまして、望む結果は得られませんでした。
0065デフォルトの名無しさん
2015/09/12(土) 10:06:26.07ID:J6pfiWXJ(3,4,5,6)
>>> b = [a[:,i,j,k] for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3]) ]
これでとりあえず望んだ結果が得られました。
これと等価な結果が得られるコードをもっとシンプルで高速に書けませんか?
0066デフォルトの名無しさん
2015/09/12(土) 16:04:27.55ID:EVegchqElist(a.transpose(1,2,3,0).reshape(a.strides[1],a.shape[0]))
これで良いと思うけど内包表記じゃないといかんの?
0067デフォルトの名無しさん
2015/09/12(土) 22:44:40.18ID:J6pfiWXJ実際は
b = [ myfunc(a[:,i,j,k]) for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3])]
という処理をやりたいんです。
次にようなループはpythonでは遅いと評判ですので、
内包表記だと速いと聞いて試したいと考えています。
for k in range(a.shape[3]):
for j in range(a.shape[2]):
for i in range(a.shape[1]):
b.append(myfunc(a[:,i,j,k]))
0068デフォルトの名無しさん
2015/09/12(土) 22:54:47.78ID:ypYaVLmK0069デフォルトの名無しさん
2015/09/12(土) 23:46:18.84ID:EVegchqE内包表記のが速いといっても多少効率的なくらいです
素直にnumpyに用意されている物を使いましょう
…ところでそれだと順序が違うんですが…たぶんこの辺のどちらか?
b = np.apply_along_axis(myfunc, 1, a.T.reshape(-1, a.shape[0]))
b = np.apply_along_axis(myfunc, 1, np.rollaxis(a, 0, a.ndim).reshape(-1, a.shape[0]))
0070デフォルトの名無しさん
2015/09/13(日) 00:11:21.34ID:3BsRFwaL呼び出しコストを、軽減できる
0071デフォルトの名無しさん
2015/09/13(日) 00:21:30.45ID:gbWUhzZU行数増えるのが嫌なときはとことん内包で書くぐらいで、
そもそも内包で事足りるぐらいの処理ならforでもあんま変わらないし
それに比べてnumpyはそれこそ処理の桁が2~4個違う
ユニバーサル関数とかでちゃんと書ければの話だけど、難しいよね…まだ慣れなくてささっと書けない
0072デフォルトの名無しさん
2015/09/13(日) 00:53:31.30ID:tUSkN1m60073デフォルトの名無しさん
2015/09/13(日) 00:53:55.70ID:0P9tp9Btありがとうございます。
b = np.apply_along_axis(myfunc, 1, a.T.reshape(-1, a.shape[0]))
これを使うのが妥当そうですね。
np.apply_along_axisの存在は知りませんでした。
.Tと.reshapeの組み合わせもまったく考えてませんでした。
あとはargsの扱いがわかればいろいろできそうです。
ありがとうございました。
0074デフォルトの名無しさん
2015/09/13(日) 01:27:57.78ID:gbWUhzZUバージョン2と古いけど
0075デフォルトの名無しさん
2015/09/13(日) 11:25:09.70ID:8QNbCh1F0076デフォルトの名無しさん
2015/09/13(日) 12:31:02.93ID:wQ68FTxr2010からずいぶん飛んだな
0077デフォルトの名無しさん
2015/09/13(日) 14:37:01.47ID:PRQtmn5Eなんで値が1つしか含まれないで8バイトを返すんですか?
from numpy import arange
a = arange(1).reshape(1, 1)
print(a.itemsize)
0078デフォルトの名無しさん
2015/09/13(日) 14:53:19.49ID:+IlipKsH0079デフォルトの名無しさん
2015/09/13(日) 15:43:23.53ID:wQ68FTxrそのnumpyarrayの要素の型が8バイトなのでは(int64とか)
書いてて思ったけど、きみ、itemsizeの意味を勘違いしてないか?
>>78
お前のプログラムに書いてあるtry~exceptを全部外せ
0080デフォルトの名無しさん
2015/09/13(日) 16:30:01.00ID:tUSkN1m6・メソッド書く時にselfを自動で書いてくれる
・docstringにsphinx形式のコメント入れとくと、型を推論して、「.」後に候補出してくれたり、型のミスマッチで警告出しくれたり
・virtualenv対応
でも重い
0081デフォルトの名無しさん
2015/09/13(日) 16:51:27.34ID:7OO4CwOOこれは確かに便利。他のIDEでもあるのかもしれないけど
おかげでdocstringやannotationちゃんと書く癖がついた
0082デフォルトの名無しさん
2015/09/13(日) 21:24:08.38ID:gbWUhzZU0083デフォルトの名無しさん
2015/09/14(月) 07:26:20.71ID:FgrvG3+J0084デフォルトの名無しさん
2015/09/14(月) 07:31:56.77ID:tOm8GBtxドザーと言うだけでアレなのに
XPなんて救済しようがないもんね
0085デフォルトの名無しさん
2015/09/14(月) 07:45:37.19ID:pXK5pJDJまだまだ使うんだ
0086デフォルトの名無しさん
2015/09/14(月) 08:09:20.42ID:tOm8GBtx0087デフォルトの名無しさん
2015/09/14(月) 08:28:56.52ID:tOm8GBtx* v140_xpで使えない機能を使っているためやむを得ず
1番なら自分でビルドすればまだ使える
2番だと自分で該当部分のコードを(副作用が出ないように)取り除かなければならない
ActiveStateはxp対応すると思うから待ってれば?
ただ商用利用するならライセンス買わないとだけど
xp更新するよりは安いだろうたぶん
0088デフォルトの名無しさん
2015/09/14(月) 10:35:57.05ID:mCvgVIilさっさと別の言語にいってくれ
0089デフォルトの名無しさん
2015/09/14(月) 12:54:41.78ID:9k/gGGx4Traceback (most recent call last):
File "2kyoku.py", line 72, in <module>
text_pn.pn(s)
File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 64, in pn
print('{0}\npoint = {1}'.format(s, avg_point))
File "/usr/lib/python2.7/codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
0090デフォルトの名無しさん
2015/09/14(月) 13:00:21.02ID:9k/gGGx4Traceback (most recent call last):
File "2kyoku.py", line 72, in <module>
text_pn.pn(s)
File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 64, in pn
print('{0}\npoint = {1}'.format(s, avg_point))
File "/usr/lib/python2.7/codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
0091デフォルトの名無しさん
2015/09/14(月) 14:31:52.59ID:tOm8GBtx0092デフォルトの名無しさん
2015/09/14(月) 14:35:45.43ID:tOm8GBtxprint('{0}\npoint = {1}'.format(s, avg_point))
の行でsにunicodeが入ってるせいで、
asciiへの自動エンコードが働いてエラーになってる
ここにstrが入るように使用側のコードを修正すればいい
できない場合はやはりpython3を使え
それも出来ないならお前は力不足だ
すべてを諦めろ
0093デフォルトの名無しさん
2015/09/14(月) 14:39:00.35ID:tOm8GBtxprint(u'{0}\npoint = {1}'.format(s, avg_point))
とする手もあるが、おそらくこれは
sys.stdout内でエラーを発生させるので、更にもう一工夫要る
0094デフォルトの名無しさん
2015/09/14(月) 15:21:15.73ID:6vR7q2Zm0095デフォルトの名無しさん
2015/09/14(月) 16:59:49.83ID:c4/y2sTKgithubでテスト実装されてるのをちょこっと試したい時に
import http:~~.py
のようにできたら便利だなあと
0096デフォルトの名無しさん
2015/09/14(月) 17:13:10.00ID:NxoyOIVd0097デフォルトの名無しさん
2015/09/14(月) 17:19:37.00ID:tOm8GBtxmodule loaderを実装すればgithubのモジュールをimpoptすること自体は不可能じゃない
君の希望しているシンタックスでは無理だがな
0098デフォルトの名無しさん
2015/09/14(月) 20:18:49.71ID:cXb4kIiN0099デフォルトの名無しさん
2015/09/14(月) 20:30:56.48ID:6vR7q2Zm>>> f = open("a.bin", "wb")
>>> f.fileno()
3
>>> os.write(f.fileno(), "hello world!".encode())
12
>>> f.close()
$ cat ./a.bin
hello world!%
0100デフォルトの名無しさん
2015/09/14(月) 21:04:32.25ID:cXb4kIiNfwriteはポインタとサイズ、数を指定できますが
型とサイズ、要素数はどう処理しますか?
0101デフォルトの名無しさん
2015/09/14(月) 21:22:17.80ID:6vR7q2Zmbytes書き込みたいって話かと思ったのに。
f.write()
も意味ないっぽいな。
型とサイズ、要素数は、
type(obj), obj.__sizeof__(), len(obj)
で頑張るんですね。
一体全体何をしたくて、fwrite相当の関数を知りたいんです?
ないと思う。が答えだけど。
どうしても、fwrite相当が欲しいなら、C 拡張書いた方が賢いよ。
絶対。
0102デフォルトの名無しさん
2015/09/15(火) 01:48:36.14ID:OASNotDFsの中身のテキストをutf-8にしていたので元に戻したのですが以下の様なエラーが出て
戸惑っているんですがわかりますか?
Traceback (most recent call last):
File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 72, in <module>
text_pn.pn(s)
File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 45, in pn
for line in self.mecab_list(s):
File "/home/fujiiiiiiiiiiiiiiiiiiiiiiiiiiiin/2kyoku.py", line 40, in mecab_list
s = self.m.parse(s)
File "/usr/local/lib/python2.7/dist-packages/mecab_python-0.996-py2.7-linux-x86_64.egg/MeCab.py", line 281, in parse
def parse(self, *args): return _MeCab.Tagger_parse(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded function 'Tagger_parse'.
Possible C/C++ prototypes are:
MeCab::Tagger::parse(MeCab::Model const &,MeCab::Lattice *)
MeCab::Tagger::parse(MeCab::Lattice *) const
MeCab::Tagger::parse(char const *)
0103デフォルトの名無しさん
2015/09/15(火) 02:37:49.32ID:8nVq9fpMC++の関数呼び出し時にwchar_t*になってる
で、オーバーロードの解決に失敗してる
何が起きているか自体は一目で分かるが
これはこのまま続けでも時間の無駄だろ
0104デフォルトの名無しさん
2015/09/15(火) 02:45:20.70ID:8nVq9fpM登山初体験で雪山チャレンジしてるような感じだ
そんなに死にたいのか?
0105デフォルトの名無しさん
2015/09/15(火) 03:59:55.46ID:Yag5SRe5君は病院行ったほうがいいよ
昨日から酷すぎ
0106デフォルトの名無しさん
2015/09/15(火) 04:09:06.42ID:XNHa+TUYUnicode文字列型から、
ByteStr(8bit文字列)へ、encodeすれば?
0107デフォルトの名無しさん
2015/09/15(火) 08:37:54.75ID:tzZBlg8kゴミ虫が人間様に一丁前の口を聞くんじゃねえ
中央線に突き落とすぞ
0108デフォルトの名無しさん
2015/09/15(火) 09:57:27.75ID:8nVq9fpMそんな通報されそうな発言しねえよ
不用意な奴
0109デフォルトの名無しさん
2015/09/15(火) 10:17:50.34ID:mcggslDF関係ない人が巻き込まれる恐れがあるためJR東日本に念の為連絡しました
0110デフォルトの名無しさん
2015/09/15(火) 20:55:08.78ID:J59fOGwQ#rrecur1.py
x = 1 #�@
import recur2 #�A
y = 2 #�B
#recur2.py
from recur1 import x #�C
from recur2 import y #�D
A:対話型シェルで import recur1 を実行すると �@�A�C�Dとなり、�Dでエラー ←なんとなくわかる
(�Cの後に�@�Aと�Bが実行されないのは、recur1のオブジェクトが不完全でも既にあるから?)
B:対話型シェルで import recur2 を実行すると �C�@�A�B�Dとなる ←怪しい
(A同様、�Aはオブジェクトがあるので、�C�@�A�C�Dにはならない?)
C:python recur1.pyを実行すると �@�A�C�@�A�B�Dとなる ←ものすごく怪しい
(�@�Aは2回実行され、�Aの2回めは�Cでオブジェクトができるからそのまま?)
D:python recur2.pyを実行すると �C�@�A(�C)�Dとなり、�DでAと同じエラー ←だいぶ怪しい
理解が間違ってる、足りなさそうな所を指摘してもらえると助かります。
0111デフォルトの名無しさん
2015/09/15(火) 20:58:49.38ID:XjGjWAl20112デフォルトの名無しさん
2015/09/15(火) 21:15:56.27ID:Jw4sxLAi#rrecur1.py
print("0 in recur1.py")
x = 1 #�@
print("1 in recur1.py")
import recur2 #�A
print("2 in recur1.py")
y = 2 #�B
#recur2.py
print("0 in recur2.py")
from recur1 import x #�C
print("1 in recur2.py")
from recur2 import y #�D
print("2 in recur2.py")
0113デフォルトの名無しさん
2015/09/15(火) 21:40:23.07ID:J59fOGwQ確認しました。
最初からprint文挟めばよかったですね、ありがとうございます。
0114デフォルトの名無しさん
2015/09/15(火) 22:33:38.30ID:RlUnFo2M>np.apply_along_axis
これじゃ全然速くなんなかったよ
バーカバーカ
0115デフォルトの名無しさん
2015/09/15(火) 22:39:17.01ID:8nVq9fpM0116デフォルトの名無しさん
2015/09/16(水) 02:29:05.06ID:aiEEwWsO学校にjavaの授業しかありません。
javaを学ぶとpythonを理解しやすくなったりしますか?
逆に混乱するでしょうか?
0117デフォルトの名無しさん
2015/09/16(水) 03:23:01.55ID:2Yj1o+46そこで挫けるか、違いを理解して乗り越えるかが分かれ道
でJava→Pythonのハードルは低くはないと思う
初見のインパクトとして、インデント構文が人を選ぶ曲者
0118デフォルトの名無しさん
2015/09/16(水) 06:33:05.21ID:Aossrj8U基本的にプログラミング言語はひとつ覚えたら次はめっちゃ楽になるよ
条件分岐とかループなどの基礎的な概念はほぼ変わらないからね
ただ理想はPythonからのJavaかなあ
自分は色々やってきたけど初学者に最適なメジャー言語としてPythonはかなり優秀だと思う
JavaはPythonと違って重厚なんで、ちょっとした事をやるにしてもコードを書く量が半端なく多い
普通はIDEっていう支援ソフトを使う言語だけど授業では全部手打ちだろうし「むきー!」ってなりそう
0119デフォルトの名無しさん
2015/09/16(水) 15:13:00.75ID:BdvYksDFこのスレの住人はJavaでもC#でも何でもできるから最初はPythonでいいと思ってるかもしれないけど・・・・
普通の人は飽きて一つしか習得しない可能性もあるわけで、それを考慮したらJAVAをやるべきだろう
0120デフォルトの名無しさん
2015/09/16(水) 15:46:15.28ID:X4VHrapaやはりC/C++、C#、Javaなんかの方が向いてる事もある、しかし覚える必須事項も多い
とりあえず言語を通じて原理を学ぶなら、まずは取っ付き易いPythonだけってなるけど
自分は簡便なPHPからPythonに乗り換えC#を経て速度に取り付かれC++/x86まで逝ったが
Pythonは文法が少なく抑えられている一方、トリック的にプロパティを実装していたり
self引数など内部的にどう作用しているのかも教えてくれる、学習用には最適だと思う
0121スッキリ厨
2015/09/16(水) 15:54:45.41ID:9fL6Ueyi以下が漏れの定番
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
たのしいRuby 第4版、2013
みんなのPython 第3版
オブジェクト指向を学ぶと、
C#, JavaScriptも理解しやすいし、
Ruby,Pythonは、お互いに影響を受けているから、
同時に学ぶと、共通点が多い
0122デフォルトの名無しさん
2015/09/16(水) 19:56:17.21ID:yg+sr1CP誰がどう設計するとあんなことになるのだろう
0123デフォルトの名無しさん
2015/09/16(水) 20:38:43.26ID:6/Mj4kG1まだ生き残ってるんだな
0124デフォルトの名無しさん
2015/09/16(水) 23:18:03.83ID:CBuGCxGj0125デフォルトの名無しさん
2015/09/16(水) 23:21:41.06ID:awIPWlQAあと、何が悪い?
0126デフォルトの名無しさん
2015/09/16(水) 23:23:14.44ID:9fL6Ueyi"123".to_i
と、Stringのメソッドだが、
Javaでは、Integer.parseInt()と、
Integerのメソッドに、違和感を覚える
0127デフォルトの名無しさん
2015/09/16(水) 23:55:42.75ID:jnCVqJ3t奥村先生のアルゴリズム入門以外で入門とかいてある本は買ったことがない
0128デフォルトの名無しさん
2015/09/17(木) 00:38:19.54ID:196gWGO2まずはjavaを学んで、同一事項もできればpythonで勉強しようと思います。
皆さん回答ありがとうございました!
0129デフォルトの名無しさん
2015/09/17(木) 08:15:31.21ID:SBwAu0s00130デフォルトの名無しさん
2015/09/17(木) 14:55:21.13ID:ku8KDabsあの後、うまくいかないのpython3から実行してみたのですが、うまくいきませんでした。
内容としては、http://naokiwatanabe.blogspot.jp/2015/02/judge-positive-vs-negative-of-text.html
のサイトに載っているソースコードを実行したいのですが、、、
エラー内容は
/usr/lib/python3/dist-packages/numpy/core/_methods.py:55: RuntimeWarning: Mean of empty slice.
warnings.warn("Mean of empty slice.", RuntimeWarning)
とでています。
python2から実行すると、いろいろ試したのですが文字コードのエラーで実行できませんでした。
知識不足というのは重々承知なのですが解決方法を教えてもらえると幸いです。
0131デフォルトの名無しさん
2015/09/17(木) 14:59:40.79ID:ku8KDabshttp://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic
0132デフォルトの名無しさん
2015/09/17(木) 16:46:48.82ID:iMuV3iOg2to3.pyはもう実行済みなの?
実行済みという前提でだけど、
48: points_of_s = np.array(points_of_s)
49: avg_point = np.mean(points_of_s)
numpy 使ってるのってここの行だけでしょ?
48行目のpoints_of_s に何が入っているかを確かめて、
meanを計算するfunctionを自分で実装すれば?
つnumpy.mean
http://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html
0133デフォルトの名無しさん
2015/09/17(木) 16:48:53.78ID:iMuV3iOg>>130
なんか、points_of_s が空で文句言ってそうだけど。
多分、40行目の行が上手くいってない
ここもword, i['kanji'], i['yomi'] の中身をprintで見てみるんだね
40: if word == i['kanji'] or word == i['yomi']:
0134デフォルトの名無しさん
2015/09/17(木) 19:26:17.87ID:JmTKZ5WP漢字が混ざっても大丈夫にして欲しい
English onlyならば動作する
エラー文によればは以下の部分に間違いがある
for line in exif_out:
key_and_value = line.partition(':')
if key_and_value[0].strip() == "File Name":
name.append(key_and_value[2].strip())
if key_and_value[0].strip() == "Duration":
play_time.append(key_and_value[2].strip())
0135デフォルトの名無しさん
2015/09/17(木) 19:51:59.85ID:JmTKZ5WPpythonスクリプトに接続する前のコマンドの一つが shift-jisで文字を返してきたことが原因で
nkf -w を挟むことで修正無く正常に動作しました
0136デフォルトの名無しさん
2015/09/17(木) 20:15:35.92ID:CxP5vej7タイガーアッパーカットの刑だ
0137デフォルトの名無しさん
2015/09/18(金) 20:10:21.07ID:STdqpX+z0138デフォルトの名無しさん
2015/09/18(金) 20:48:38.78ID:tgrC/XXe0139デフォルトの名無しさん
2015/09/18(金) 21:00:47.36ID:iv+WFVpkある依存モジュールの*.jsonファイルがlibrary.zipアーカイブ下に置かれてしまって、openができなくなってしまいます。
なんとかこれを回避する手段はありませんか?
0140デフォルトの名無しさん
2015/09/19(土) 14:16:36.35ID:zRSvfcVsimportを使うとスコープでグローバルを拾ってくれないので困っていますが
こういう時どうするのが普通でしょうか
0141デフォルトの名無しさん
2015/09/19(土) 14:22:56.25ID:EhBxb2se0142デフォルトの名無しさん
2015/09/19(土) 14:37:57.81ID:zRSvfcVs引数で渡してやれば、いちょう解決はするんですが、
これだと必ずその引数を付けなくてはいけなくて、シンプルではないと感じています。
0143デフォルトの名無しさん
2015/09/19(土) 14:59:47.59ID:c6kn+dRMpythonの参考書で迷っています。
『みんなのPython』『プログラミング超初心者が初心者になるためのPython入門』
『Pythonスタートブック』
の3つなのですが、どれがおすすめでしょうか。
また、他にもおすすめがあったら教えていただきたいです。
0144デフォルトの名無しさん
2015/09/19(土) 15:12:57.41ID:9MmBL6K2プログラミング経験あるならみんなのPython。他のは初歩すぎると思う
あとこのサイト読むだけで十分だったりもする
http://diveintopython3-ja.rdy.jp/index.html
0145デフォルトの名無しさん
2015/09/19(土) 15:51:56.79ID:rqtLrpco分割したいほど長くなった時点で、もはやスクリプト言語を使う利点は失われている
今後の保守を考えて、Javaなど大規模プロジェクトに対応できる言語へ移行すべきだ
0146デフォルトの名無しさん
2015/09/19(土) 15:55:05.11ID:zRSvfcVspythonがやりたいことの条件なのでしょうがありません
クラス作って__init__の引数で渡して使うことにしようと思います。
0147デフォルトの名無しさん
2015/09/19(土) 15:57:04.47ID:IG+tqa6Q0148デフォルトの名無しさん
2015/09/19(土) 16:24:59.93ID:zRSvfcVs0149デフォルトの名無しさん
2015/09/19(土) 17:27:54.66ID:KApqc+U60150デフォルトの名無しさん
2015/09/19(土) 18:14:50.96ID:iv6k6MQz0151デフォルトの名無しさん
2015/09/19(土) 19:25:03.83ID:vrCh8asH秘匿するの以外はぜんぶインスタンス変数でいいじゃないか
0152デフォルトの名無しさん
2015/09/19(土) 19:57:54.93ID:WfpuSZ1G俺も144さんと同意見です。
『みんなのPython』と『Dive into Python日本語版』。
あとは公式のドキュメントを調べる癖をつけとくといいと思います。
http://docs.python.jp/3.4/
本当は『初めてのPython』もおすすめしたいところだけど、いかんせん内容が古いので…。
でもちゃんとPython2とPython3の違いを勉強した後でなら、挑戦する価値はあると思います。特に情報系の学科の学生さんなら。
Python2とPython3の違いは上記2冊にも説明があります。
0153デフォルトの名無しさん
2015/09/19(土) 20:09:50.25ID:jbS3DGgI0154デフォルトの名無しさん
2015/09/19(土) 20:52:50.71ID:vrCh8asH>あとは公式のドキュメントを調べる癖をつけとくといいと思います。
これ以外必要ない。
0155デフォルトの名無しさん
2015/09/19(土) 22:47:02.90ID:3d9rW/SJ別に煽ってるつもりはないよ
率直な感想
0156デフォルトの名無しさん
2015/09/20(日) 00:55:26.23ID:hPx7plFD0157デフォルトの名無しさん
2015/09/20(日) 01:28:28.89ID:Nh5TR33w古代エジプトの遺跡にも、そう書いてあったらしいね( ・ω・)y─┛〜〜
0158デフォルトの名無しさん
2015/09/20(日) 01:37:06.96ID:NJwlDPWnそれガセネタだってば
まだ信じてる人いたんだ
0159デフォルトの名無しさん
2015/09/20(日) 02:14:36.98ID:Itn3Bpzpもっと古いけどな。
せっかくのレスだが、ポイントはそこじゃない。
0160スッキリ厨
2015/09/20(日) 03:31:11.34ID:vBjKt0IWプログラミング最速メソッドでも、
この3冊をこの順番で読むよ
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
たのしいRuby 第4版、2013
みんなのPython 第3版
0161デフォルトの名無しさん
2015/09/20(日) 04:37:13.68ID:iy8xPLn/わけわかんない
こういう戯言を初心者は真に受けないように
0162デフォルトの名無しさん
2015/09/20(日) 11:10:20.99ID:c50Q0ipw>>152
英語が苦にならないなら、"初めてのパイソン"の原著 Learning Python もお薦めします。原著は2013年に第5版が出ています。改定版を重ねているのは、売れている証。
Learning Python では、mutable と imutable の違いや、変数は参照であるといったあたりの説明が丁寧で良いです。みんなのPython や、codecademy の python コースでは、これらの説明が不十分だったように思います。
m = 1
n = m
m = 2
print(m, n) # 2 1
a = [1]
b = a
c = a[:]
a[0] = 2
print(a, b, c) # [2], [2], [1]
a = [3]
print(a, b, c) # [3], [2], [1]
0163デフォルトの名無しさん
2015/09/20(日) 11:46:23.95ID:zfBSqDqL設定ファイルにかかれているキーとなる文字列のみを読み取って
辞書(値の中にさらに辞書やリストが定義されています)アクセスを行いたいのですがどのようなコードを書けば実現可能でしょうか。
0164デフォルトの名無しさん
2015/09/20(日) 11:57:36.33ID:UBP8lCYf$ cat tech163.py
if __name__ == "__main__":
d = {"a": 1, "b": 2}
with open("tech163-keys.txt") as f:
for line in f:
key = line.strip()
value = d[key]
print("key={}, value={}".format(key, value))
$ cat tech163-keys.txt
b
a
b
b
b
a
0165デフォルトの名無しさん
2015/09/20(日) 12:04:06.29ID:vBjKt0IW何階層ネストするかなど、複雑だから難しい
XML,JSONなど、ライブラリがある、
既成のデータ構造を使うべき
0166デフォルトの名無しさん
2015/09/21(月) 14:36:46.18ID:3JRegwp7ctypes.cdll.LoadLibraryじゃダメなケースが?
0167デフォルトの名無しさん
2015/09/21(月) 16:15:55.92ID:QY3cLhl9ということは, そこまでの過程に意味があるということ
0168デフォルトの名無しさん
2015/09/21(月) 16:58:58.71ID:o0er9rYI0169デフォルトの名無しさん
2015/09/21(月) 17:18:00.57ID:QY3cLhl90170デフォルトの名無しさん
2015/09/21(月) 17:43:45.00ID:o0er9rYI0171デフォルトの名無しさん
2015/09/21(月) 17:52:42.15ID:QY3cLhl90172デフォルトの名無しさん
2015/09/22(火) 22:51:54.28ID:w0LnM0Y7import requests
payload = {'username':'user_id','passwd':'user_pass'}
r = requests.post('https://login.yahoo.co.jp/config/login?',data=payload)
これで実行したんですがエラーログも表示されず困っております。助けてください<(_ _)>
0173デフォルトの名無しさん
2015/09/22(火) 22:56:03.50ID:w0LnM0Y7print rとしたら<Response[200]>と返ってきました。ggっても出てこないんですが
これって何を表しているのでしょうか?ログイン自体は成功していませんが成功と捕らえても良いのでしょうか?
0174デフォルトの名無しさん
2015/09/22(火) 23:31:22.08ID:0pZRAY1l>payload = {'username':'user_id','passwd':'user_pass'}
payload = {'username':'本当のユーザー名',
'passwd':'本当のパスワード'}
そこに本当のユーザー名・パスワードを入れないと、
ログインできない
でも、それらをそのまま、暗号化せずに送るのかな?
暗号化しなかったら、危険な気もする
0175デフォルトの名無しさん
2015/09/22(火) 23:35:00.63ID:+lAdjAEI200はHTTPステータスコードというものでこの場合は「成功」
ただしこの場合の成功とはログインに成功じゃなくてたんにそのページヘのアクセスが成功したというだけ
一般的にログイン失敗の場合は40*系が返ってくることが多い
r.textなどを見たらエラー文というかブラウザに表示されてるはずの文がでるはずです
「現在お使いのブラウザの設定ではログインできません。クッキーの設定を確認し、クッキーを有効にしてください。」
なぜそれでログインできると思ったのか、どこの情報を参考にしたのかわからないけども、それはログインを試みてすらもいない
たんにpostでusernameとpasswordを送ってログインできる仕様になってない
ログインページにアクセス、ログインフォームを読み取り、そこに値を入力、ログインボタンを押す、ページ遷移後の処理
という一連の流れでやる必要があるので最初はわりと敷居高いです
ログイン後のページ遷移等を処理したい場合はそれ専用のライブラリ使ったほうがいいと思います
自分はmechanicalsoupとかでログインしてます
あんまり日本語の情報無いからおすすめしづらいけどpython3系対応って少ないんだよね
元気があったら後でログインできるそのまんまのコード書くかも 眠いから書かないかも
0176デフォルトの名無しさん
2015/09/22(火) 23:39:07.37ID:w0LnM0Y7回答ありがとうございます
自分はただログインができればそれで良いです。
>>175
回答ありがとうございます
書いていただければ参考にさせてもらいます。勿論書いてもらわなくても大丈夫です!
0177デフォルトの名無しさん
2015/09/22(火) 23:39:44.08ID:w0LnM0Y70178デフォルトの名無しさん
2015/09/22(火) 23:42:41.04ID:+lAdjAEIhttps://gist.github.com/romichi/5567611
自分はmechanize入れてないから試せないけど
こういうのはログイン画面の仕様が変わるとダメになるので2年前の記事だとそのまんま使えないかも
0179デフォルトの名無しさん
2015/09/22(火) 23:44:38.87ID:0pZRAY1lそれにそのサイトのHTMLを分析してから、やっているのか?
'username','passwd'も正しいのか?
それに、クエリ文字列は、その2つだけなのか?
本・サイトに書いてある通りに、
プログラミングしても動かないよ
0180デフォルトの名無しさん
2015/09/22(火) 23:54:17.74ID:+lAdjAEIなんとなくusernameとpasswordをpostしたらログインできるんじゃ?って最初思うのはしょうがない気が
実際は人間と同じようにページにアクセスしてフォームの場所を特定してusername等を打ち込んで…という泥臭いコードを書く必要が
0181デフォルトの名無しさん
2015/09/22(火) 23:58:50.34ID:w0LnM0Y7ありがとうございます。参考にさせてもらいます
>>179
そこらへんはしっかりとソースを見てやっています
>>180
ほうほう なるほど。
初心者に付き合っていただいて有難うございました、では失礼します<(_ _)>
0182デフォルトの名無しさん
2015/09/23(水) 08:34:14.30ID:DOrhv1Zgwireshark でパケット見た方が早いと思う
0183デフォルトの名無しさん
2015/09/23(水) 12:08:54.96ID:bddtCb1z[["a","b"],["c","d"],["e","f"],["g","h"]]
↓
[["a","b"],["e","f"],["g","h"]]
としたいんですが、delやpopで消しても以下のように空要素が残ってしまいます
[["a","b"],[],["e","f"],["g","h"]]
0184デフォルトの名無しさん
2015/09/23(水) 12:37:13.95ID:gS0ZJsKt>>> L.remove(L[1])
>>> L
[['a', 'b'], ['e', 'f'], ['g', 'h']]
0185デフォルトの名無しさん
2015/09/23(水) 12:43:08.41ID:YxG82JoQ>>> del outer[1]
>>> outer
[[1, 2], [5, 6], [7, 8]]
>>> outer.pop()
[7, 8]
>>> outer
[[1, 2], [5, 6]]
0186デフォルトの名無しさん
2015/09/23(水) 13:02:38.50ID:bddtCb1zできましたありがとうございます.
0187デフォルトの名無しさん
2015/09/23(水) 18:05:24.51ID:mJPpIkis0188デフォルトの名無しさん
2015/09/23(水) 19:38:01.53ID:fW96BSwR辞書をリストにしたものから、あるキーを持つものだけを拾い出して、リストにしたいんです。
具体的には
mylist = [{'a':12, 'b':8},{a':5, 'b':19}]
とあるものから、キーがaのものだけを取って、(12, 5)という配列を作りたいのです。
map(lambda x:x[キー用の変数]), mylist)
もしくは、
map(lambda x:x.get(キー用の変数)), mylist)
と書いてみたのですが、どちらも
None
という値が返ってきます。
もう半日これで悩んでいます。
どなたかお詳しい方、教えてください。
0189デフォルトの名無しさん
2015/09/23(水) 20:00:36.15ID:2XlOP4Gj>>> mylist = [{'a':12, 'b':8},{'a':5, 'b':19}]
>>> [d["a"] for d in mylist]
[12, 5]
どの辞書にも"a"がある前提だけど
0190デフォルトの名無しさん
2015/09/23(水) 20:03:59.03ID:YxG82JoQ>>188のmapについてはカッコが合ってないから何もいえない
>>> L = [{'a': 12, 'b': 8}, {'a': 5, 'b': 19}]
>>> map(lambda d: d['a'], L)
[12, 5]
>>> map(lambda d: d['a'], filter(lambda d: 'a' in d, L))
[12, 5]
>>> [d['a'] for d in L if 'a' in d]
[12, 5]
0191デフォルトの名無しさん
2015/09/23(水) 20:04:10.98ID:2XlOP4Gjあと,map使いたいんだったら
>>> list(map(lambda x:x["a"], mylist))
[12, 5]
0192デフォルトの名無しさん
2015/09/23(水) 20:33:24.83ID:IBQotI2X0193デフォルトの名無しさん
2015/09/23(水) 20:46:03.49ID:fW96BSwR190様の、一番最初のコードが、自分の意図したものでした。
括弧の間違いなどは直して、再度書いてみたのですが、動きません。
(問題の切り分けのために簡略化してしまったのですが、実際は
def mapping(self, key_hensu):
map(lambda d: d[key_hensu], self.list)
とし、
これに基づいて作ったインスタンスの
self.listに辞書を含む配列を入れた後、
newlist = hug_ instance.mapping('a')
Print newlist
としても、noneが帰ってくるのです)
教えていただいた式で、コードを組み直してみようと思いますが、動かないのはmap以外の部分の問題かもしれません…
0194デフォルトの名無しさん
2015/09/23(水) 21:18:05.32ID:VUzU7jGHちなみに特定メンバー抽出だけならlambdaを書くより
operatorモジュールに複数指定も可能な専用クラスがあったりするよ
>>192
time.time()#POSIXタイムスタンプ(float)
datetime.datetime.now()#datetimeインスタンス(microsecond)
とかそういうのではなく?
0195デフォルトの名無しさん
2015/09/23(水) 22:35:52.54ID:fW96BSwRお恥ずかしいかぎりです。
Return文がありませんでした。
pythonで本格的にプログラムを組むのが初めてだっので、お騒がせいたしました。
ちなみに、return文は、この場合、MAPの結果を変数に格納し、return その変数、
とやるのでいいのでしょうか。
このメソッドを多用する場合、変数は、プライベート変数にした方がいいですか?
0196デフォルトの名無しさん
2015/09/24(木) 01:08:23.75ID:1RjIiiuuL = []
for m in mylist:
for key , value in m.items():
if key == "a":
L.append(value)
これが当然読み書きできた上で、もっとシンプルにor高速にという人ならいいんだけどさ
いきなりワンライナー目指そうとして何時間も時間使っちゃうもはもったいない気がする
mapとか内包とかlambda使って長時間悩むよりforでシンプルにやってもいいと思うんだよね
まあ多分これは書けた上で短く洗練したいという人だと思われるので余計なお世話かもしれんが一応
0197デフォルトの名無しさん
2015/09/24(木) 03:21:21.13ID:KIwTvfAfWhiteBox Test の基本だよ
rtn = func()
func(out)
戻り値・引数のどちらで、結果を返しても、
それらをチェックするのは当然
0198デフォルトの名無しさん
2015/09/24(木) 09:07:42.02ID:oyhXYwprhoge = serial.Serial('/dev/ttyACM0', 9600, timeout = 0.1)
で文法エラー吐くんだけど、どんな理由が考えられる?
import serialはしてある
0199デフォルトの名無しさん
2015/09/24(木) 09:19:04.50ID:XLoPykDH真っ先に文法エラーの内容を貼るべきだったな
0200デフォルトの名無しさん
2015/09/24(木) 17:56:16.23ID:7vafZHZr0201デフォルトの名無しさん
2015/09/24(木) 18:02:55.63ID:7vafZHZrそれはミリ秒までしか取れなくね
0202デフォルトの名無しさん
2015/09/24(木) 18:18:35.45ID:O2om78VJhttp://php.net/manual/ja/function.microtime.php
0204デフォルトの名無しさん
2015/09/24(木) 20:52:58.68ID:2Vopl4xtパフォーマンスカウンタならtime.perf_counter()とか、time.clock()で代用とかだけど
0205デフォルトの名無しさん
2015/09/25(金) 01:12:24.27ID:tuRmYaRB全角文字を使っているとか、
SerialのSが、小文字の間違いとか、
timeout = 0.1 を、辞書にするとか、
' 'で囲むとか、0.1だけにするとか
まあ、エラーメッセージで検索すれば?
0206デフォルトの名無しさん
2015/09/25(金) 04:44:01.92ID:tuRmYaRB「timeout = 0.1」のように、引数の中で、= を使って、
代入されているものを、デフォルト引数といって、
省略可能な引数のこと
引数を省略すると、0.1を渡したのと同じ扱いになる。
この2つは、どちらも同じ
hoge = serial.Serial('/dev/ttyACM0', 9600)
hoge = serial.Serial('/dev/ttyACM0', 9600, 0.1)
もちろん引数を省略せず、任意の数値を渡してもよい
hoge = serial.Serial('/dev/ttyACM0', 9600, 0.2)
それより、この本でも読んでから、プログラミングしなよ
「みんなのPython 第3版」
0207デフォルトの名無しさん
2015/09/25(金) 07:40:45.23ID:OdLQBYES0208デフォルトの名無しさん
2015/09/25(金) 08:12:39.72ID:EM2/ouOX> デフォルト引数といって、
名前つき引数だろ
ちゃんと覚えておかないと恥ずかしいぞ
0209デフォルトの名無しさん
2015/09/25(金) 08:31:28.74ID:rmMgHZ3nLanguage Referenceにくらいは目を通して喋ってるのか?
もちろん英語版な
日本語版は公式でない上に訳がゴミなのは常識だぞ
0210デフォルトの名無しさん
2015/09/25(金) 08:32:15.00ID:rmMgHZ3nまだ読んでなくて読めるなら読んでおきたまえ
0211デフォルトの名無しさん
2015/09/25(金) 08:38:33.98ID:rmMgHZ3ndef文中にある parameter = expression 形式の引数の正しい呼び方は “default parameter values” だ
混同しないように
あとステマ野郎は死ね
ここ数日しつこいぞお前
0212デフォルトの名無しさん
2015/09/25(金) 09:35:38.22ID:pvZibk7rclass Arei(list):
def __init__(self):
list.__init__(self)
def goukei(self):
return sum(self)
#sumは元からあるわけですが、例ということで。
このクラスは
t = Arei()
t.append(1)
t.append(2)
print t.goukei()
とすると、ちゃんと3を返します。
ただ、自分としては、リストクラスの代わりにこれを使っていきたいので、
u = Arei()
u = [1,2]
print u.goukei()
みたいにuの中身を指定したいのですが、
Attribute errorで、リストオブジェクトはそんなメソッド知らないよ、と言われてしまいます。
areiではなく、リストオブジェクトになってしまっているようです。
areiの中身は[ ]で代入したいのですが、何かいい方法はないでしょうか。
0213デフォルトの名無しさん
2015/09/25(金) 10:54:47.14ID:KIr5Cth60214デフォルトの名無しさん
2015/09/25(金) 11:01:44.67ID:rmMgHZ3n0215デフォルトの名無しさん
2015/09/25(金) 11:58:30.93ID:0lz/blt5pythonの代入は文であって式ではないので動作を変更するのは不可能です
「何かいい方法」はありません
pythonのコレクションは大抵イテレータを受け取るようになっていますので
そのスタイルに従うなら
t = Arei([1, 2])
などと書くことになるでしょう
くどいようですが、あなたの希望は叶いませんのであきらめてください
0216デフォルトの名無しさん
2015/09/25(金) 17:46:42.43ID:KRQogbtQみたいには出来ないです。
諦めてください。
[] を使いたいのであれば、
u.extend([1, 2])
としてください。
0217デフォルトの名無しさん
2015/09/25(金) 18:38:53.08ID:APxH2mFVこの...っていうのはPythonのなんて機能なんですか?
0218デフォルトの名無しさん
2015/09/25(金) 18:43:08.84ID:BcpKoy3C気付いてるひともいるみたいだけど
123.456000
って感じで6桁あっても下3桁が常に000なんで
実質ミリ秒なんですよ
0219デフォルトの名無しさん
2015/09/25(金) 19:29:40.05ID:PrLLHSVR...はellipsisと呼ぶ
その文法自体は拡張スライス構文(extended slicing syntax)と呼ぶ
0220デフォルトの名無しさん
2015/09/25(金) 19:42:42.20ID:ktFzwPFOそれはtime.time()の実装しだい、例を挙げると
win版2.7.9ではtime()の小数点以下は3桁だった
win版3.4.3では6桁計算されてる
0221デフォルトの名無しさん
2015/09/25(金) 19:55:16.04ID:EAOTXXYi0222220
2015/09/25(金) 20:58:57.37ID:ktFzwPFOdebian 8 jessieの2.7.9のtime.time()は小数点以下6桁でる
0223デフォルトの名無しさん
2015/09/26(土) 00:10:21.83ID:bNSOOO19先輩方は出来てますか?
0224デフォルトの名無しさん
2015/09/26(土) 00:14:31.09ID:uTIKCoPrpipのバージョンと
OSと
インストールできなかったパッケージの一例を
書 い て ね
0225デフォルトの名無しさん
2015/09/26(土) 00:19:25.04ID:bNSOOO19pip 7.1.2
python 2.7.10
です
0226デフォルトの名無しさん
2015/09/26(土) 00:23:00.51ID:uTIKCoPrきみ、人の話を半分に聞いていると指摘されたことはないか?
0227デフォルトの名無しさん
2015/09/26(土) 00:26:09.13ID:bNSOOO190228デフォルトの名無しさん
2015/09/26(土) 00:29:22.09ID:uTIKCoPr踏切に飛び込んで死ねや
…windowsでは基本的にC拡張を含むパッケージを
pipでpypiからインストールすることはできない
(コンパイル環境を整えればインストールできるが、かなり面倒)
下記などからコンパイル済みパッケージを入手し、pip install <ファイル名>とやってインストールする
http://www.lfd.uci.edu/~gohlke/pythonlibs/
0229デフォルトの名無しさん
2015/09/26(土) 00:29:55.36ID:bNSOOO19ちなみに1番最初に書いた内容でわからないのでしたら無理に書き込みしなくてもいいんですよ?
0230デフォルトの名無しさん
2015/09/26(土) 00:30:00.09ID:SlXJkQSm0231デフォルトの名無しさん
2015/09/26(土) 00:31:21.58ID:uTIKCoPr本当に期待を裏切らないなw
殺すぞチンカス
0232デフォルトの名無しさん
2015/09/26(土) 00:53:44.20ID:VnXY6/gAuには、Areiオブジェクトのインスタンスが入る
u = Arei()
uには、リストオブジェクトのインスタンスが入る
u = [1,2]
そもそも、最初にuに代入された、Areiオブジェクトは、
使われないオブジェクトになってしまって、
どこからも参照されていない
Pythonを基本から勉強すべし。
初心者用の本を読め
0233デフォルトの名無しさん
2015/09/26(土) 01:11:01.94ID:IUg2r09A遠慮なさらずに。
罵倒されるかもしれないけど。
0234デフォルトの名無しさん
2015/09/26(土) 01:22:48.90ID:ycKW7TV10235デフォルトの名無しさん
2015/09/26(土) 01:40:34.00ID:VnXY6/gAみんなのPython 第3版
どちらも、いい本だよ
図書館では、「みんなの」は常に、
誰かが借りている状態だから、
何年も見たことはない
0236デフォルトの名無しさん
2015/09/26(土) 08:22:07.31ID:uTIKCoPr片方は簡潔すぎ片方はくどすぎ
0237デフォルトの名無しさん
2015/09/26(土) 09:19:45.50ID:nnT9rfzZあんな感じのがPythonには無い
0238デフォルトの名無しさん
2015/09/26(土) 09:28:15.51ID:YULo0X4G悩んだり選んだりしてる暇があったら全部買って片っ端から読破すりゃいい
技術を学ぶのに金は惜しむな時間を惜しめ
0239デフォルトの名無しさん
2015/09/26(土) 09:37:35.10ID:K7CQzQ4M0240デフォルトの名無しさん
2015/09/26(土) 09:52:23.29ID:sS2VkfxBここの回答者は馬鹿が多いから、
そんなのに目を付けられたら運が悪かったと思ってね
複数の要素を追加したい時、u.append()ばかり何行も書くのは嫌だから、
[]を使って、複数の要素を一行で追加したいという事だろうけど、
それなら、>>216で書いたように、u.extend()を使えば、
[]の表記を使って複数の要素を追加する事が出来ます。
0241デフォルトの名無しさん
2015/09/26(土) 10:17:36.27ID:uTIKCoPr本人が戻ってこないからどうしようもないけど
0242デフォルトの名無しさん
2015/09/26(土) 13:58:51.24ID:SlXJkQSm初心者さん
0243デフォルトの名無しさん
2015/09/26(土) 15:55:00.04ID:/Er1ur9S0244デフォルトの名無しさん
2015/09/26(土) 16:02:42.71ID:T6SMaGA2環境より別の問題を抱えてそうだけど。
主に頭に。
0245デフォルトの名無しさん
2015/09/26(土) 16:28:15.94ID:ARPouMbCそれに噛み付いた奴も頭悪いけど。
0246デフォルトの名無しさん
2015/09/26(土) 16:33:54.02ID:PeXvMpg9お前の予想なんか聞いてないから無理に書き込みしなくてもいいんですよ。
断定できるようになったらどうぞ。
0247デフォルトの名無しさん
2015/09/26(土) 16:41:56.09ID:uTIKCoPr0248デフォルトの名無しさん
2015/09/26(土) 17:58:48.50ID:A0xbZm860249デフォルトの名無しさん
2015/09/26(土) 19:16:59.29ID:z8a3JaoE0250デフォルトの名無しさん
2015/09/26(土) 19:47:50.72ID:nnT9rfzZあんた質問の意味わかってんの?
リストを拡張したclassでも完全にリストっぽく扱いたいって話なんだけど
0251デフォルトの名無しさん
2015/09/26(土) 20:01:43.67ID:jMWgOOyZPHPスレみたいになってきた
0252デフォルトの名無しさん
2015/09/26(土) 21:58:24.07ID:6OIyVqiT加えて一歩引いた目線で意識高く冷静に事を傍観する俺様系クズとかな
0253デフォルトの名無しさん
2015/09/26(土) 23:01:17.56ID:uTIKCoPr半年に一回くらいは同じ内容のレスを見るね
0254デフォルトの名無しさん
2015/09/26(土) 23:23:51.88ID:P25DxxnJ0255デフォルトの名無しさん
2015/09/27(日) 10:32:38.05ID:ChKmlAhY0256デフォルトの名無しさん
2015/09/27(日) 10:58:22.61ID:8A5jeRhu知らないなら黙っててください. ウザイだけです」
の応酬で埋め尽くされるのも時間の問題か
0257デフォルトの名無しさん
2015/09/27(日) 11:08:50.48ID:Oa1I2Bnn(バージョンは? 表示されてるエラーを貼れ etc)
素人の判断力で勝手に端折るな
0258デフォルトの名無しさん
2015/09/27(日) 12:13:27.45ID:ChKmlAhY0259デフォルトの名無しさん
2015/09/27(日) 17:11:01.07ID:OFhEpgzS0260デフォルトの名無しさん
2015/09/27(日) 17:50:14.04ID:8A5jeRhu0261デフォルトの名無しさん
2015/09/27(日) 18:04:52.67ID:V6V0Y/p4自分以外のPythonユーザーに出会うことなんてまずないからな
0262デフォルトの名無しさん
2015/09/27(日) 18:13:58.17ID:8A5jeRhu0263デフォルトの名無しさん
2015/09/27(日) 18:27:22.29ID:v7AofSm8railsが盛り上がったのはherokuのお陰
0264デフォルトの名無しさん
2015/09/27(日) 18:39:32.12ID:8A5jeRhuフリーライダーにdisられるのは嫌だろう)
0265デフォルトの名無しさん
2015/09/27(日) 21:03:25.98ID:JhPkHi9i0266デフォルトの名無しさん
2015/09/27(日) 21:19:21.14ID:8A5jeRhu0267デフォルトの名無しさん
2015/09/28(月) 10:43:08.25ID:0RjOK4Zpそれな
プログラマでもpythonなにそれ?っていうのが日本人には多い
0268デフォルトの名無しさん
2015/09/28(月) 10:43:41.72ID:0RjOK4ZpGAEとは何だったのか
0269デフォルトの名無しさん
2015/09/28(月) 13:43:06.22ID:JfTylyW8やっぱりocnってクソだわ
0270デフォルトの名無しさん
2015/09/28(月) 14:52:33.76ID:izcdLHq/今まで基本的には開発はlinux派だったんだけど、iTunesとか他のソフトを使いながら出来ないからWindows環境に興味を持ってる
フレームワークはDjango、DBはMySQLを使おうと思ってる
PHP、MySQL、ApacheのLAMP環境は結構WindowsとcentOSでは差があったけれど
0271デフォルトの名無しさん
2015/09/28(月) 14:55:29.22ID:JfTylyW80272デフォルトの名無しさん
2015/09/28(月) 15:31:14.44ID:izcdLHq/使った事ないんだけど、重くならないの?
以前VMWare使ってた時は、便利と思ったけど個人使用にはオーバースペックすぎたw
ってか皆どんな開発環境でやってるの?
俺はcentOSでLinuxなんだけど、macはまだしも、Windowsの人も多いのかな?
結構、関連ソフト入れに苦労しそうな気がするけど
0273デフォルトの名無しさん
2015/09/28(月) 15:42:48.17ID:d6SLnFcK開発だけならギリギリのパフォーマンスみたいなのは関係ないだろうし…
テキストエディタだけならWinがなれてるとか?
統合開発環境みたいなのが欲しいてこと?
0274デフォルトの名無しさん
2015/09/28(月) 15:45:06.76ID:dlMXkm1Yおれはgunicornを使いたいからlinuxを選んだだけ
0275デフォルトの名無しさん
2015/09/28(月) 16:01:44.58ID:izcdLHq/個人的にコンピューターの動作が遅いのは苛々するんよ
例えばEclipseを起動させる、同時に画像処理ソフトを起動させるとか
ソフトウェアでの仮想環境ってことはCPUやメモリのリソースも使うだろうし
Linuxだけだと、他にExcelでの仕事やAdobe系を呼び出す際に再起動しなくちゃいけないもので
今デュアルブートでやってるから
でもWindowsで開発環境をもしできたら再起動いらずに楽かなと
まぁLinux環境には敵わないだろうけれども
0276デフォルトの名無しさん
2015/09/28(月) 16:04:58.41ID:izcdLHq/import django
でinvalid syntaxエラーが出た
めんどくさいなぁ...
0277デフォルトの名無しさん
2015/09/28(月) 16:05:51.54ID:d6SLnFcK2,3台は常時稼働しておくのが普通じゃないのか?
#今現在、4台を自分専用に稼働中、ディスプレイも3台あるよ?
0278デフォルトの名無しさん
2015/09/28(月) 16:07:12.31ID:izcdLHq/暫くプログラミングから離れてたのよ
0279デフォルトの名無しさん
2015/09/28(月) 16:07:36.37ID:s7G6tMwD> まぁLinux環境には敵わないだろうけれども
答え出てるじゃん
0280デフォルトの名無しさん
2015/09/28(月) 16:13:44.68ID:izcdLHq/持ち運び便利そうだからどこでも出来るな、と
なんかWindowsに慣れていないせいか、Djangoの件もエラーの詳細が分かりにくい
環境構築はほんとWindowsはめんどくさい気がする
ここの人達は流石にWindows環境の人はいないか
0281デフォルトの名無しさん
2015/09/28(月) 16:23:21.76ID:s7G6tMwD好きなのにすりゃいいと思うよ
まさかSurfaceで(本番環境として)django動かす訳じゃないんだろ?
0282デフォルトの名無しさん
2015/09/28(月) 16:50:55.17ID:dlMXkm1Y0283デフォルトの名無しさん
2015/09/28(月) 20:32:49.45ID:91/ACm3S> 個人的にコンピューターの動作が遅いのは苛々するんよ
とか言ってる奴が
> 今デュアルブートでやってるから
ってネタか余程の間抜けにしか見えない…
0284デフォルトの名無しさん
2015/09/28(月) 20:54:33.35ID:EuxVMsYV0285デフォルトの名無しさん
2015/09/28(月) 21:00:24.89ID:OmBgfqlEデュアルブートの煩雑さを解消するためにWindows1本にしたいが重くならないか心配だって言ってんだからまったく矛盾はない
0286デフォルトの名無しさん
2015/09/28(月) 21:02:13.54ID:EuxVMsYVこういうやつだしな
0287デフォルトの名無しさん
2015/09/28(月) 21:07:00.43ID:JfTylyW82時間も遅れて来るなよクソックソッ
重くなるに決まってるが、許容できるかどうかは本人次第だろう
嫌なら我慢してデュアルブート続けるか、意味不明なエラーと死ぬまでつきあってろ
0288デフォルトの名無しさん
2015/09/28(月) 21:11:04.78ID:OmBgfqlEそこは訂正
0289デフォルトの名無しさん
2015/09/29(火) 10:34:31.22ID:5DFpZmVK・PythonでWebサイトを作るな
・コマンドラインツールや機械学習でのみPythonを使うべき
0290デフォルトの名無しさん
2015/09/29(火) 10:48:20.13ID:9FBYnxt5そんな事気にする前にバグを直せよ…
0291デフォルトの名無しさん
2015/09/29(火) 12:02:07.30ID:5DFpZmVK0292デフォルトの名無しさん
2015/09/29(火) 12:52:29.49ID:qVFuDZbI0293デフォルトの名無しさん
2015/09/29(火) 14:05:42.97ID:Up7l2XRn最近全く同じこと思ったわ
0294デフォルトの名無しさん
2015/09/29(火) 16:19:17.26ID:9FBYnxt5前提でCGIという単語を敢えて使ったんだが…
>>299 は自分が書いたことを覚えていないのだろうか?
それともWSGIはゲートウェイインターフェイスではないと言い張る為だろうか?
変な奴の考える事は謎だ…
0295デフォルトの名無しさん
2015/09/29(火) 16:30:36.57ID:qVFuDZbI0296デフォルトの名無しさん
2015/09/29(火) 17:03:47.09ID:9Cv+9YBrCGI==WGSIと考えてるところも理解できない・・・
ちょっとググって間違った知識を植え付けられたか
0297デフォルトの名無しさん
2015/09/29(火) 17:17:36.56ID:kWYiG2HY0298デフォルトの名無しさん
2015/09/29(火) 18:17:12.76ID:cUhHTA84どうしてなんですか
Webに手を出すつもりはない初心者ですが
理由がちょっと気になるので参考までに教えてください
0299デフォルトの名無しさん
2015/09/29(火) 20:55:53.94ID:tsybo51+ちゃんとフレームワーク使ってる?
0300デフォルトの名無しさん
2015/09/29(火) 20:56:26.09ID:r6tWHKV4機能があちこちのモジュールに分散していて覚えづらい
歴史を重ねながら拡張してきたからかな?
コピー
shutil.copyfile
shutil.copy
shutil.copy2
リネーム
os.rename
os.replace
移動
shutil.move
削除
os.remove
os.unlink
存在確認
os.access
os.path.exists
ファイル一覧取得
os.listdir
glob.glob
0301デフォルトの名無しさん
2015/09/29(火) 22:10:12.45ID:Pz1/YzO9実はオブジェクト指向で設計されたpathlibがあります!
今(3.4以降)ならなんと標準ライブラリに入っています!
0302デフォルトの名無しさん
2015/09/29(火) 22:26:18.69ID:38981mSj0303デフォルトの名無しさん
2015/09/29(火) 22:36:08.60ID:Pz1/YzO9※個人の感想だけどpathlibはOOP全力なインターフェースで少々くどい
でもRubyからライブラリを移植するときに物凄く便利だった
0304デフォルトの名無しさん
2015/09/29(火) 22:45:21.06ID:kWYiG2HYいつの間にか引き返せなくなりそうですね
引き返すなら今のうち・・・
0305デフォルトの名無しさん
2015/09/29(火) 22:45:59.57ID:xmaTIn9P0306デフォルトの名無しさん
2015/09/29(火) 22:51:16.84ID:WyeI8SJL知ったかしたいだけでしょ
スルーでいいと思うよ
0307デフォルトの名無しさん
2015/09/29(火) 22:56:57.65ID:qVFuDZbIstrしないと使えないモジュール多すぎますよ
0308デフォルトの名無しさん
2015/09/29(火) 22:57:22.54ID:R456hPpB0309デフォルトの名無しさん
2015/09/29(火) 23:10:32.65ID:Pz1/YzO9RubyのPathnameっぽい、というか考え方が同じだからコピペ手直しで大体動く
>>307
open()への引数くらいは対応しろとよく思う
関数やオブジェクトを超えてやりとりすると必然的に他も強制されるから嫌い
0310デフォルトの名無しさん
2015/09/30(水) 03:47:27.46ID:EX9JFA6FPythonには、標準ライブラリだけで動作する、
Bottle というWEBアプリ・フレームワークがある
でも、Rubyでsinatraなら、何も考えなくても、
これだけで、hello というWEBサイトが表示されるw
require 'sinatra'
get '/' do
'hello' // ここに処理を書く
end
0311デフォルトの名無しさん
2015/09/30(水) 04:23:57.36ID:w7SPUet/初心者はなんとなく使えて便利だけど
遅かれ早かれ全部確認しないと気が済まなくなる。
0312デフォルトの名無しさん
2015/09/30(水) 05:20:59.27ID:YJQV+FkT1+"1"
1+True
1+1.1
全部選んだ人:演算子オーバーロードは許さないよ派(OCaml)
1+"1"を選んだ人:真偽値ってぶっちゃけ0か1でしょ派(C、Python)
1+"1"と1+Trueを選んだ人:式文の意味を重視するよ派(Haskell、Ruby)
1+Trueを選んだ人:真偽値リテラルはないよ派(Perl5)
0313デフォルトの名無しさん
2015/09/30(水) 06:18:59.36ID:4e29nm1yなるほどありがとう
0314デフォルトの名無しさん
2015/09/30(水) 06:39:52.37ID:7Lys9n7q童貞乙
0315デフォルトの名無しさん
2015/09/30(水) 08:00:23.13ID:BGePcDbg理解がめちゃくちゃだな
0316デフォルトの名無しさん
2015/09/30(水) 08:02:02.39ID:BGePcDbg色んな人に突っ込まれてるけど
君は読解力が無いねってよく言われない?
0317デフォルトの名無しさん
2015/09/30(水) 08:02:52.14ID:9ZgwE0tZメソッドにファイルのコピーと移動がないっぽい
パスを1つのオブジェクトとして扱うクラスがゆえに
コピー元、コピー先の2つを指定する必要のある機能は想定していないのか?
>>300の表がますますカオスになる…
0318デフォルトの名無しさん
2015/09/30(水) 08:02:58.84ID:BGePcDbg>以前VMWare使ってた時は、便利と思ったけど個人使用にはオーバースペックすぎたw
オーバースペックの意味を間違ってるね
まるっきり逆の意味で使ってるよ
0319デフォルトの名無しさん
2015/09/30(水) 08:48:55.48ID:+AX0hMMC0320デフォルトの名無しさん
2015/09/30(水) 09:20:28.89ID:YJQV+FkTrename()とreplace()で移動はある
コピーはない、バグトラッカーでの追加の要望には否定的な回答が付いてる
0321デフォルトの名無しさん
2015/09/30(水) 12:51:24.45ID:g5Kwg8L4ファイルの rename や削除はOSの機能だけどコピーや移動は違うからでしょ
0322デフォルトの名無しさん
2015/09/30(水) 12:53:57.81ID:g5Kwg8L4オーバースペックで重たかったと言ってるんだろ
何も間違えてないと思うが
0323デフォルトの名無しさん
2015/09/30(水) 13:21:14.91ID:v45HhpVr文句を言う前に金払って開発環境を揃えればいいだけ
12万で買えるクラスののデスクトップ買ったばかりだけどストレスを感じたことはない
0324デフォルトの名無しさん
2015/09/30(水) 13:36:32.56ID:DDo+L8wAプログラミングはファッションレベルに決まってるで
開発に使うようなマシンじゃねー
0325デフォルトの名無しさん
2015/09/30(水) 17:34:03.91ID:EKYNYvpv0326デフォルトの名無しさん
2015/09/30(水) 21:19:52.50ID:upKJw7Zd0327デフォルトの名無しさん
2015/09/30(水) 22:17:31.18ID:4e29nm1y0328デフォルトの名無しさん
2015/09/30(水) 23:13:40.03ID:NW4C2hiZ0329デフォルトの名無しさん
2015/09/30(水) 23:36:34.92ID:aEcL3JaV↑ ↑ ↑ ↑ ↑
0330デフォルトの名無しさん
2015/10/01(木) 01:20:40.78ID:jlLOirXX0331デフォルトの名無しさん
2015/10/01(木) 06:28:28.23ID:NYBY5O+Jっていう質問に、タマネギ入れろよって答えるような人が多いよねここ
色々な制約が人によってあってその範囲内での質問回答が求められてるのにタマネギ入れろよしか言えない人
馬鹿だと思う
0332デフォルトの名無しさん
2015/10/01(木) 07:26:15.35ID:r8teaEYTITってとりあえず自分で試せよってのが基本じゃないかなぁ
やったことないことにまともな答えなんてできねーじゃん
「俺の質問に答えてくれないから糞」ってのはバカな人の思考だよね
0333デフォルトの名無しさん
2015/10/01(木) 07:37:18.85ID:/jpbfw6N>>331のいう、それ、そのものやないかい
相手の言う事を理解できてなくて、
自分の思う事を言ってるだけって事なんだよね。
要するに。
0334デフォルトの名無しさん
2015/10/01(木) 08:34:30.11ID:f5gJwSlFまぁ学校とかでも友達や彼女もいないで一人暗く過ごしてたような奴らが多いからなましてやここは2ch
0335デフォルトの名無しさん
2015/10/01(木) 10:39:30.62ID:ZcWNnYYPスレタイ読めよw
お前さんの例えで言えば
質問が「お米は洗剤で洗ったあと何回すすげばいいんですか?」
だとすると、それの答えが「水で洗え、お湯で洗う人もいる」
これの何が悪い?
0336デフォルトの名無しさん
2015/10/01(木) 11:04:54.82ID:mpdw7HPU0337デフォルトの名無しさん
2015/10/01(木) 11:21:52.65ID:Td7LqfLC0338デフォルトの名無しさん
2015/10/01(木) 12:24:39.57ID:9rEn1f0E0339デフォルトの名無しさん
2015/10/01(木) 12:28:09.16ID:VU6YL+ln0340デフォルトの名無しさん
2015/10/01(木) 12:33:38.49ID:9rEn1f0E0341デフォルトの名無しさん
2015/10/01(木) 12:41:46.95ID:/jpbfw6N>>335
質問の内容がおかしいだろ
「米を洗剤で洗った」と聞けば、あなた頭おかしいんじゃないの?
と普通の人はなる
だから、「水で洗え、お湯で洗う人もいる」
という答えになる。
「タマネギ無しでカレー作る」と聞いても、あなた頭おかしいんじゃないの?
とはならない
質問を聞いて「あなた頭おかしいんじゃないの?」と、
なる・ならないの前提が違うので話にならない
0342デフォルトの名無しさん
2015/10/01(木) 13:25:17.91ID:dS12aCbLタマネギだの米だのスレ違いだろ
続きはここでやってくれ
http://peace.2ch.net/test/read.cgi/tech/1427572389/
0343デフォルトの名無しさん
2015/10/01(木) 13:28:37.33ID:BBaRIJcZなるほど一理ある
0344デフォルトの名無しさん
2015/10/01(木) 14:42:14.05ID:Td7LqfLC0345デフォルトの名無しさん
2015/10/01(木) 14:55:28.04ID:/jpbfw6N0346デフォルトの名無しさん
2015/10/01(木) 16:59:38.46ID:5+pXOgtKお前さんが想像力がないやつだと言うのがよくわかったよ
超初心者は米を洗剤で洗うような質問をする
Pythonに詳しいやつからみればな
お前さんは、米を洗剤で洗わないのは常識だ、というのがただの思い込みだということにそもそも気づいてないだろ
だから理解できないんだよ
0347デフォルトの名無しさん
2015/10/01(木) 17:27:16.41ID:/jpbfw6Nこいつ
0348デフォルトの名無しさん
2015/10/01(木) 19:15:47.64ID:AxFWNbqN0349デフォルトの名無しさん
2015/10/01(木) 19:46:08.96ID:M/7MGMo60350デフォルトの名無しさん
2015/10/01(木) 21:36:59.41ID:s3U6j/Jt0351デフォルトの名無しさん
2015/10/01(木) 21:53:03.78ID:6DvvsA2I0352デフォルトの名無しさん
2015/10/02(金) 06:41:28.52ID:AkqrFCcIpythonで書けよ。
0353デフォルトの名無しさん
2015/10/02(金) 07:47:24.13ID:gd9xqVj70354デフォルトの名無しさん
2015/10/02(金) 09:35:38.01ID:8oryoHg9畳み掛けてるやつ、そろそろやめておけ
ところで、いま初心者にすすめるんだったら2.7?3?
0355デフォルトの名無しさん
2015/10/02(金) 11:19:05.47ID:KgiramNs0356デフォルトの名無しさん
2015/10/02(金) 11:50:00.62ID:yPSgHmJT3系
と答えたいが、どっちがいい?ときいてくる人には
最初に学習に使う書籍やWEBサイトを決めて、使っているバージョンに従えと答える
あとPythonがプログラミング初学ではないからおススメの書籍とかは分からない
0357デフォルトの名無しさん
2015/10/02(金) 12:27:15.25ID:7uxKcXjP0358デフォルトの名無しさん
2015/10/02(金) 17:08:55.30ID:x7S/CcUObottleでHello Worldを出すのも同じぐらい簡単だったと思うのですが。
実際に運用する際はuwsgiやrackなどを使うので全体で比較するとファイルを置くだけでインストールが完了するbottleの方が楽なのではないかと。
0359デフォルトの名無しさん
2015/10/02(金) 19:06:49.68ID:m/wHrWte3でしょ
2でしか使えないライブラリがあって,どうしてもそれを使いたいのなら別だけど
0360デフォルトの名無しさん
2015/10/03(土) 08:59:26.91ID:fomIpGMDimport networkx as nx
from matplotlib import pyplot
def main():
g = nx.Graph()
g.add_edge(10,20)
g.add_edges_from([(30,40),(40,50),(1,2)])
print(g.edges())
nx.draw(g, node_color = 'b')
pyplot.show()
if __name__ == '__main__':
main()
0361デフォルトの名無しさん
2015/10/03(土) 08:59:56.37ID:fomIpGMD○-○
○‐○
○‐○-○
とノード付きのグラフが表示されるのはいいのだけど、
○の中に肝心の数字が何も入らなくて困っています。
くぐっても分からないので、知っている方はご解答、よろしくお願いします。
使っているpythonは、2.7系です。windowsユーザーです。
0362デフォルトの名無しさん
2015/10/03(土) 09:10:26.14ID:fomIpGMDdef pyramid(n): # nでピラミッドの段数を指定する
i = 0
while i < n:
pad = ' ' * (n - i - 1)
block = '★' * (2 * i + 1)
print pad + block
i += 1
def pyramid2(n):
i = 0
while i < n:
pad = ' ' * (n - i - 1)
block = '☆' * (2 * i + 1)
print pad + block
i += 1
0363デフォルトの名無しさん
2015/10/03(土) 09:10:58.08ID:fomIpGMDprint '\n'
i = 0
while i < n:
block = '★' * (n - i)
pad = ' ' * i
print pad + block
i += 1
def pyramid4(n): #逆ピラミッド
print '\n'
i = 0
while i < n:
block = '☆' * (n - i)
pad = ' ' * i
print pad + block
i += 1
0364デフォルトの名無しさん
2015/10/03(土) 09:16:04.36ID:RHKUDZj0たぶんnodeの追加が足りない
ライブラリに詳しくないから検索してヒットしたページを張っとく(@はrockよけ)
http://oceanmarine.sak@ura.ne.jp/sphinx/group/group_networkx.html#networkx-node
0365デフォルトの名無しさん
2015/10/03(土) 09:22:53.10ID:RHKUDZj00366デフォルトの名無しさん
2015/10/03(土) 09:52:32.56ID:fomIpGMDありがとうございます。教えて頂いたサイトの最後の箇所にあったコードを文字コードをwin用に
変えて実行してみたところ、同じグラフがノードに数字入りで出ました。まだ初心者なので、少し
コードを見ただけでは全然分からないのですが、あとで、じっくり検証してみます。ありがとうございました。
windowsユーザーの方もいるかもしれないので、一応、その変更コードも一応、貼っておきます。
0367デフォルトの名無しさん
2015/10/03(土) 09:53:14.04ID:fomIpGMDimport networkx as nx
import pylab as plt
import matplotlib
from pylab import *
import matplotlib.font_manager
prop = matplotlib.font_manager.FontProperties(fname=r'C:\Windows\Fonts\meiryo.ttc', size=15)
0368デフォルトの名無しさん
2015/10/03(土) 09:53:45.59ID:fomIpGMDG = nx.Graph()
nodes = G.add_nodes_from([0, 1, 2, 3])
G.add_edges_from([(0, 1), (0, 2), (0, 3)])
pos = nx.spring_layout(G)
degree_dic = nx.degree(G)
print(degree_dic)
degree_pos = {}
for k, (x, y) in pos.items():
degree_pos[k] = (x+0.05, y+0.05)
nx.draw_networkx_nodes(G, pos, node_color='b', alpha=0.5)
nx.draw_networkx_edges(G, pos, alpha=0.5)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_labels(G, degree_pos, degree_dic)
plt.title(u'各ノードの枝数をノードの右上に表示してみた',fontproperties=prop)
plt.axis(u'off',fontproperties=prop)
plt.show()
def main():
graph()
if __name__ == '__main__':
main()
0369デフォルトの名無しさん
2015/10/03(土) 10:46:52.36ID:2BaZKaXa…
def 関数2:
…
def 関数3:
…
def main:
関数1()
関数2()
関数3()
…
if __name__ == '__main__':
main()
という風に関数を上から順に呼び出していく定型処理のスクリプトがあったとして
開始時のユーザー選択により、関数1でなく任意の関数から開始する、という
フロー制御は、どう書けば実現できるだろう
関数が20個くらいあるので、呼び出しパターン全てをmainにifで書くのはできればやりたくない
GOTOのある言語なら、ラベルを付けておいて各々に飛ばせば済むんだが
0370デフォルトの名無しさん
2015/10/03(土) 11:04:10.76ID:tCbgZp8xクラス名を書くとエラーになってしまいます
class Test:
def func(self) -> Test:
return self
Test().func()
Traceback (most recent call last):
File "a.py", line 2, in <module>
class Test:
File "a.py", line 3, in Test
def func(self) -> Test:
NameError: name 'Test' is not defined
0371デフォルトの名無しさん
2015/10/03(土) 11:06:58.47ID:tCbgZp8xすごい適当ですけど,関数をリストにいれればいいんじゃないですか?
0372デフォルトの名無しさん
2015/10/03(土) 12:04:35.06ID:jyP1OZ7g>開始時のユーザー選択により
どう選ばせるかはもう決まってる?
0373デフォルトの名無しさん
2015/10/03(土) 12:05:48.02ID:C7I9pgK8すべての関数をリストに入れて、
インデックスで呼び出す
関数をキーで呼び出したいのなら、辞書に入れる
0374デフォルトの名無しさん
2015/10/03(土) 12:11:47.91ID:tCbgZp8x"Test"のようにするしかないみたいでした
0375デフォルトの名無しさん
2015/10/03(土) 12:13:10.05ID:2BaZKaXa関数をリストに入れられること自体知らなかったよ…
>>372
この程度でいいと思ってる
1が先頭の関数を示す
a = int(input("開始処理番号を入力してください"))
0376デフォルトの名無しさん
2015/10/03(土) 12:34:50.58ID:jyP1OZ7glocals()[a]()
あるいは
globals()[a]()
0377デフォルトの名無しさん
2015/10/03(土) 13:09:33.52ID:C7I9pgK8Python,Ruby,JavaScriptなどでは、関数もオブジェクト。
実行コードを持ったオブジェクト
第一級関数とは、変数・配列などに格納できる。
関数に引数として渡したり、
関数の戻り値として返したりできる
関数型プログラミング、高階関数、遅延評価、
クロージャ、ラムダ(無名関数)などを勉強して
0378369
2015/10/03(土) 15:07:27.49ID:2BaZKaXadef 関数1():
…
def 関数2():
…
def 関数3():
…
def main():
funclist = [関数1, 関数2, 関数3]
a = int(input("開始処理番号を入力してください")) -1
for func in funclist[a:]
func()
if __name__ == '__main__':
main()
0379デフォルトの名無しさん
2015/10/03(土) 17:28:27.28ID:qqIklWzldef func1():
pass
def func2():
pass
def func3():
pass
def exclude():
pass
def __init__():
pass
func1_var="func1 variable"
func2_var="func2 variable"
0380デフォルトの名無しさん
2015/10/03(土) 17:30:32.50ID:qqIklWzl続き
if __name__ == "__main__":
# see unittest/loader.py
testMethodPrefix = "func"
def isTestMethod(attrname, testCaseClass=Func,
prefix=testMethodPrefix):
return attrname.startswith(prefix) and \
callable(getattr(testCaseClass, attrname))
D = dir(Func)
print("D =", D)
testFnNames = list(filter(isTestMethod, D))
print("testFnNames =", testFnNames)
print("func1_var =", Func.func1_var)
0381デフォルトの名無しさん
2015/10/03(土) 17:33:40.18ID:qqIklWzl>>369,378用
これくらいの芸は見せてもらえるんだと思ってました。。。
大丈夫か?日本。
0382デフォルトの名無しさん
2015/10/03(土) 18:50:36.31ID:gQH+PRqq芸ってのはそれをごちゃごちゃこねくり回すことを言うの?
0383デフォルトの名無しさん
2015/10/03(土) 19:15:59.94ID:qqIklWzlを自動化する芸くらい見せてもらえると思ってた
関数20までずらっと↓って書くの?
funclist = [関数1, 関数2, 関数3, 関数4, 関数5,
関数6, 関数7, 関数8, 関数9, 関数10,
関数11, 関数12, 関数13, 関数14, 関数15,
関数16, 関数17, 関数18, 関数19, 関数20]
関数21とか成長すると、その都度funclist更新するの?
・・・悪いけど、頭悪ーって思うよ。
# see unittest/loader.py
の通り、該当箇所を抜き出しただけです。
unittest 使うと testXXX を自動実行してくれる事くらい知ってますよね?
source 公開している意味ないよ。。。
0384デフォルトの名無しさん
2015/10/03(土) 20:09:29.61ID:TDca+yKY0385デフォルトの名無しさん
2015/10/03(土) 20:35:15.81ID:d7sRTTd70386デフォルトの名無しさん
2015/10/03(土) 22:41:09.78ID:pj0qXq1g0387デフォルトの名無しさん
2015/10/04(日) 07:44:18.13ID:ohsfWQtz0388デフォルトの名無しさん
2015/10/04(日) 08:58:12.84ID:UyyPHyaLそうなったらclass使う
0389デフォルトの名無しさん
2015/10/04(日) 09:18:15.75ID:yoEktSyw圧倒的に楽になる時が来るんだよな
0390デフォルトの名無しさん
2015/10/04(日) 10:29:02.28ID:LEXjibpb「多分こういうところでクラスってのを使うと便利なんだろうな」とぼんやり見えてくる時期があって、
でネット上の解説とかを読んだりしてやっぱよくわかんねーわ、というのを何度か繰り返してやっと理解できた
0391デフォルトの名無しさん
2015/10/04(日) 10:40:27.06ID:eV6iuRhJ必要だから「在る」んだよ
必要じゃないと思ってる間は無理して使わなくて良い
0392デフォルトの名無しさん
2015/10/04(日) 10:42:40.07ID:J4whK/1Y関数、クロージャ、ラムダ(無名関数)、Procなど、
どういう表現をしようと、オブジェクト(クラス)と同じ
つまり、オブジェクトは人間から見て、
わかりやすくした、単なる容れ物(名前空間)で、
その中に、データ・メソッド(実行コード)を持つ
0393デフォルトの名無しさん
2015/10/04(日) 10:48:23.01ID:+OAHHRmxよく似た関数の大軍に苦しめられたので、継承だけは使う。
0394369
2015/10/04(日) 11:03:33.97ID:KmO0NZWkPythonの内部情報をユーザーアプリから利用する手法を
リフレクションって言うんだっけ?
超初心者スレにはちと厳しい内容だが、いろいろ参考になるよサンクスコ
0395デフォルトの名無しさん
2015/10/04(日) 11:26:28.06ID:clqtTSXWA-Zの組み合わせを出力する方法をカンマ区切りで教えてください
AA,AB・・・ZX,ZY,ZZ
0396デフォルトの名無しさん
2015/10/04(日) 11:34:24.18ID:4W1SFQbp0397デフォルトの名無しさん
2015/10/04(日) 11:36:30.63ID:eV6iuRhJ文字候補'python'からn文字の文字列を生成する(重複なしの場合)
文字候補'python'からn文字の文字列を生成する(重複ありの場合)
0398デフォルトの名無しさん
2015/10/04(日) 11:40:47.45ID:4W1SFQbpAZ = "".join(chr(x) for x in range(ord('A'), ord('Z')+1))
print(AZ)
xy = []
for y in AZ:
for x in AZ:
xy.append(x + y)
print("xy =")
print(xy)
0399デフォルトの名無しさん
2015/10/04(日) 15:45:40.47ID:DtYtvb6Rこの文字列から日本のタイムゾーン(GMT+9)に変換して2015/10/04 0:02:59に変換する方法を教えてください
0400デフォルトの名無しさん
2015/10/04(日) 18:00:07.02ID:tfBvgUb10401デフォルトの名無しさん
2015/10/04(日) 18:04:44.84ID:m8Ix8uLjhttp://wwp.greenwichmeantime.com/to/jst/
0402デフォルトの名無しさん
2015/10/04(日) 18:06:31.52ID:tfBvgUb1合ってたか
勘違いしてた
ごめん
0403デフォルトの名無しさん
2015/10/04(日) 18:07:12.28ID:tfBvgUb1日付変わってないからやっぱり変だな
0404デフォルトの名無しさん
2015/10/04(日) 19:40:29.06ID:m8Ix8uLj0405デフォルトの名無しさん
2015/10/05(月) 05:35:00.42ID:Efh3UhbF>>> from datetime import datetime, timedelta, timezone
>>> s = '10月 4, 2015 15時:2分:59秒 GMT'
>>> d = datetime.strptime(s, '%m月 %d, %Y %H時:%M分:%S秒 %Z').replace(tzinfo=timezone.utc)
>>> d = d.astimezone(timezone(offset=timedelta(hours=9)))
>>> d.isoformat()
'2015-10-05T00:02:59+09:00'
%Zはタイムゾーン名からtzinfoを解析しなかった
sのタイムゾーンが変わるならサードパーティ製のpytzやdateutilなどを利用する
0406デフォルトの名無しさん
2015/10/05(月) 12:04:10.12ID:JPV4Vzjz()
.()
.()
datetime.strptime(s, '%m月 %d, %Y %H時:%M分:%S秒 %Z')
____.replace(tzinfo=timezone.utc)
エラーがでます
.replace(tzinfo=timezone.utc)
^
IndentationError: unexpected indent
0407デフォルトの名無しさん
2015/10/05(月) 12:45:10.22ID:MX7oHHYL何が言いたいの?
エラーが出るんなら直せばいいでしょう。
どう直せばいいか分からないの?
言いたいことを他人にもちゃんと分かるように書いてください。
0408デフォルトの名無しさん
2015/10/05(月) 12:51:48.03ID:Efh3UhbFPythonは改行で式や文の区切りを判断するから、行を継続する式を書く場合は
下のように全体をカッコでくくって1つの式とするか
(foo()
.bar()
.baz())
下のように継続させる行の末尾にバックスラッシュを付ける
foo()\
.bar()\
.baz()
0409デフォルトの名無しさん
2015/10/05(月) 22:22:20.57ID:5PLQveQrlinuxの時は全然気にしてなかったけどmacはシステムのpython使うの嫌ってpyenv使う人多いのかな?
0410デフォルトの名無しさん
2015/10/05(月) 22:33:57.30ID:MI7O5egC作者にひつ例だからあえて理由は言わない
0411デフォルトの名無しさん
2015/10/06(火) 00:32:33.09ID:gui0gkO2システムのpython使うの嫌ってというよりも、最初はPython3を使いたい、もしくは2.7の最新を使いたいっていう理由からじゃないですかね。
何も知らなければシステムのPythonをバージョンアップしようとするかもしれませんが、いろいろ調べる過程でシステムのPythonはそのまま置いておいた方がいいと知って…という感じかと。
しかし同じ理由から入るにしても、公式のインストーラ使うとかAnacondaなどのディストリビューション使うとか複数の選択肢があるわけで、その中からpyenvを使うのを選ぶっていうのは、多分に偶然が作用していると思います。
私自身は公式→pyenv→Anacondaっていう感じに流れて、今はAnacondaで落ち着いてますね。
0412デフォルトの名無しさん
2015/10/06(火) 02:00:25.19ID:ECst51So0413デフォルトの名無しさん
2015/10/06(火) 02:22:15.60ID:9QX2zML5ただシステムのは古いんじゃなかったけ
だから新しいのに入れ替えると元から入ってたのとごちゃごちゃになって
os詳しくない人は混乱する恐れあるのでenv使うみたいな
ubuntuはわりと新しいの入ってるから楽だよね
Windowsってデフォルトで入ってるのかな?
0414デフォルトの名無しさん
2015/10/06(火) 02:31:15.46ID:ECst51So>ただシステムのは古いんじゃなかったけ
>だから新しいのに入れ替えると元から入ってたのとごちゃごちゃになって
システムのは入れ替えずに、それとは別に使いたいバージョンのPythonをいれて、そっちを使うといいじゃない
Macではそれをpyenv使わずにできないの?
0415デフォルトの名無しさん
2015/10/06(火) 07:43:44.36ID:PGXF9dFG誰もpyenv使わないとできないとは言ってないでしょ
最初のネタふりがpyenv使ってる?だったからpyenv中心に話が流れてるだけでしょうに
0416デフォルトの名無しさん
2015/10/06(火) 18:09:20.96ID:9QX2zML5日本語不自由なのかな…
できるけどパス設定等自信ない人はデフォルトを弄りたくないんじゃないのっていう話
0417デフォルトの名無しさん
2015/10/06(火) 18:58:10.30ID:qzKSIZnO0418デフォルトの名無しさん
2015/10/06(火) 19:00:13.29ID:zH4YnSEx0419デフォルトの名無しさん
2015/10/06(火) 19:10:38.33ID:rjAeuINg0420417
2015/10/06(火) 19:57:09.50ID:qzKSIZnO自分はMacのXcodeの環境なので、gccがない環境のことがよくわかりませんでした。
0421デフォルトの名無しさん
2015/10/06(火) 20:24:51.24ID:I6zakUtC0422デフォルトの名無しさん
2015/10/07(水) 09:40:03.07ID:1r79YyMuID:ECst51Soがmacになんか変な憎しみを抱いてそうってだけの話で
0423デフォルトの名無しさん
2015/10/07(水) 18:54:50.06ID:aFLFxckR呆れたり侮蔑の色を示す人は、スレの主旨がわかっていないわけだから
来ないで欲しいところ
0424デフォルトの名無しさん
2015/10/07(水) 19:38:39.70ID:X5WUW4ju0425デフォルトの名無しさん
2015/10/07(水) 20:17:30.86ID:VfagUZdF叩かれて顔真っ赤になって悔しい思いをしたのはわかるけど
その発言は火に油を注ぐことになることを忘れるな
0426デフォルトの名無しさん
2015/10/07(水) 21:07:09.24ID:jcTVQzQqそれすらわからん奴は質問しないで欲しい
0427デフォルトの名無しさん
2015/10/07(水) 21:29:59.61ID:iZEXRK2I0428デフォルトの名無しさん
2015/10/07(水) 22:33:15.73ID:ax7wmSsY0429スッキリ厨
2015/10/07(水) 22:49:29.29ID:0iwSPjqOまずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読むと、すごくよくわかる
たのしいRuby 第4版、2013
みんなのPython 第3版
0430デフォルトの名無しさん
2015/10/07(水) 23:59:44.13ID:DipKTZIc無難にJava?
でもPythonと比べたらまどろっこしいと思う
0431デフォルトの名無しさん
2015/10/08(木) 01:42:29.21ID:jk8nLMhn作るもん作れよ
0432デフォルトの名無しさん
2015/10/08(木) 02:41:43.60ID:pfU24EX7スレ見始めた四年前はこんな人あんまりいなかったけどなあ
0433デフォルトの名無しさん
2015/10/08(木) 03:29:15.17ID:TuKbDO7sここ以外のPythonスレはひどく過疎っている
つまり上級ユーザー同士で語り合える場所がない
そのため比較的活発なこのスレに来て初心者に当たり散らす
正義に燃える魔法少女が、成長し強大な力を身につけると
魔女となり害悪をもたらす存在に変わる、という某アニメで見た光景
0434デフォルトの名無しさん
2015/10/08(木) 05:19:20.93ID:clkY52aF0435デフォルトの名無しさん
2015/10/08(木) 10:41:54.11ID:2A2luB2d0436デフォルトの名無しさん
2015/10/08(木) 11:54:07.65ID:1kxTq/Y8http://qiita.com/s15007/items/17d492c48c326c737ec1
0437デフォルトの名無しさん
2015/10/08(木) 13:12:46.49ID:sRIRMnFEdef anyProb(numTrials):
anyMonth48=0
for trials in range(numTrials):
months = [0]*12
for i in range(446):
months[random.randint(0,11)] += 1
if max(months) >= 48:
anyMonth48 += 1
aProb =anyMonth48/float(numTrials)
print u'\n446人の拒食症患者のうち、同一の誕生月の患者が48人以上になるケースが\n少なくとも1つは存在する確率は、', aProb,'です。'
0438デフォルトの名無しさん
2015/10/08(木) 13:13:21.84ID:sRIRMnFE何かで作っていると思うのですが、実際にインタラクティヴシェルでこの部分だけを実行してみると、
[0]*12 = [0,0,0,0,0,0,0,0,0,0,0,0]となります。months[random.randint(0,11)]の箇所で、0〜11の乱数を取り出して、それを
変数monthsと紐付けているのはなんとなく分かるのですが、具体的にどういう形式になっているのでしょうか。
たとえば、それがmonths[0]やmonth[10]みたいになのか、それともmonths[0,0,0,0,0,0,0,0,0,0,0,0]になったり、
months[9,9,9,9,9,9,9,9,9,9,9,9]、もしくは、months[1,3,5,7,2,9,11,0,4,8,2,2]みたいな感じでrandint(0,11)の乱数が
どのように配分されているのかが、よく分かりません。
anyProb(numTrials)のnumTrialsの箇所で試行回数を設定するのですが、これを仮に10000に設定します。この意味は、たぶん
range(446)分あるfor文の式を1万回繰り返して、それを0〜11のmonthsにランダムに割り当てて、それを
インクリメントしていった値が、48以上になるものをさらにanyMonth48 += 1ところで、+1ずつインクリメントする
というものですよね。
0439デフォルトの名無しさん
2015/10/08(木) 13:13:48.46ID:sRIRMnFE0〜11へのランダムな配分をしていって、その合計が48以上になる月(0〜11)が少なくとも1つは存在する確率がどれくらい
あるかを求めているのですが、 months = [0]*12の部分やmonths[random.randint(0,11)] += 1で本当に行っていることや
、そこで実際に展開されている式などがよく分かりません。その確認のため、[0]*12の部分を[1]や[8]など別の数字を
入れてみると、アウトレンジ、範囲外になっています、みたいなエラーメッセージが出ます。
知っている方がいたら、ご教示をよろしくお願いします。
ちなみに、この確率を何度か計算・実行してみると、0.4…前後の値が出やすい。だからそれは、range(446)の
範囲にあるfor文に1万回の試行をすると、48以上の値を得る月(0〜11)が、40%前後の確率で存在するという意味
だと思われます。
0440デフォルトの名無しさん
2015/10/08(木) 13:27:57.28ID:sRIRMnFE読みづらくなっているので、再投稿する。これでも、ダメだったら今回は諦める。'''
def anyProb(numTrials):
anyMonth48=0
for trials in range(numTrials):
months = [0]*12
for i in range(446):
months[random.randint(0,11)] += 1
if max(months) >= 48:
anyMonth48 += 1
aProb =anyMonth48/float(numTrials)
print u'\n拒食症患者のうち、少なくとも48人以上の患者が発生した誕生月が\n少なくともひとつは存在する確率は、', aProb,'です。'
0441デフォルトの名無しさん
2015/10/08(木) 13:30:28.89ID:qk4fmR9Dmonths[0] = 1
months[1] = 2
month[random.randint(0, 1)] = 1000
random.randintが何をするかはドキュメントに書いてある
http://docs.python.jp/2/library/random.htmlをrandom.randint
0442デフォルトの名無しさん
2015/10/08(木) 13:31:48.39ID:qk4fmR9Ddef a():
____print(1)
____return 1
0443デフォルトの名無しさん
2015/10/08(木) 13:49:51.31ID:x1B1+vrdコード全体の流れについてはあなたの見解で合っていると思います
個々の部分、変数への代入やリストの操作について分からないということですね
最初の点、months = [0]*12の内[0]*12の部分の意味はあなたの見解で合っています
シェルで確認したとおり[0]*12は[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]へと計算されます
この計算を言葉で書き下すと「数値の0が1つ入ったリストを12個複製して1つにつなげる」
この計算結果は=の文でmonthsと名づけた変数へ代入されます
Pythonでは変数へ代入によって計算した値を保持し、後のタイミングで再び計算に利用します
0444デフォルトの名無しさん
2015/10/08(木) 14:07:53.32ID:sRIRMnFE解答ありがとうございます。 months[0] = 1 や months[1] = 2 になっているのですね。ということは、
リストに入る要素の個数を指定出来るということか、あるいは、順番(順・序数)を示しているのかのいずれか
という感じ。とりあえず、書いていただいたように months[0] = 1 と考えると、 months = [0]*12 は
months = 12 になりそうだけど、詳細の理解はあやしいです。
書いていただいた month[random.randint(0, 1)] = 1000 の意味さえ分からないです。0〜1の範囲にある
無限の実数の中かから1000個分の要素を取り出すのか、あるいは、それが1000と等しくなるようになにかの
作業をするのか。この程度の初心者です。
>>443
解答ありがとうございます。ご指摘頂いた段階までの計算の展開は分かりました。もしよろしければ、
その次段階で、どのような式が展開されているのかを、ご教示して下さい。変数monthsに紐づけられた乱数が、
どのように実際に割り当てられているかの例をいくつか式や形式と一緒に挙げて頂ければ、幸いです。
よろしくお願いします。
0445デフォルトの名無しさん
2015/10/08(木) 14:44:11.87ID:x1B1+vrdリストに入っている値には添え字[]を使ってアクセスできます
添え字には通常、先頭(0)から最後尾(リストの長さ-1)まで指定できます
months[random.randint(0, 11)] += 1の[]の中の部分を取り出して文を2つにわけると
i = random.randint(0, 11)
months[i] += 1
「0から11の範囲でランダムな整数値をiに代入する。
monthsの(変数iに入っている数値)番目の値に1加算する。」
0446デフォルトの名無しさん
2015/10/08(木) 15:21:00.78ID:sRIRMnFE解答ありがとうございます。なんとなく少し解ってきた感じです。
入れ子構造で理解できるのですね。それなら、iの部分に実際の乱数(0〜11)
を入れてみると、
months[0]
months[1]
months[2]
months[3]
months[4]
months[5]
months[6]
months[7]
months[8]
months[9]
months[10]
months[11]
になるのですが、添え字ということなので、たぶんmonths[_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11]
という風な(形)式が見えない内部では展開されていて、イテレーション?みたいな感じで
、添え字に該当している月の数値(0〜11)「ここでは、添え字(_0〜_11)と月を表す0〜11が一致しているので」に、
ランダムに配分された乱数は、リストmonths内の添え字を指示するようになって、それがそれぞれの別の添え字(=月ごと)
にランダムに乱数として配分されていくことで、それぞれの添え字=月にインクリメントされていっているという理解でいいのでしょうか。
0447デフォルトの名無しさん
2015/10/08(木) 18:21:07.57ID:sRIRMnFEで実行すると、確率の値 aProbが0.4…の範囲に出やすいの理論上正しい
のだけど、たとえば、指定している乱数random.randint(0,11)の中で一番
大きな乱数の値である11を使って、months = [11]*12 のコードに変更して
みると、途端に確率が1.0となって、倍以上に増えて表示されてしまう。
その意味は、1万回の試行の全てにおいて、446人の拒食症患者のうち、同じ誕生月の
拒食症患者が48人以上になるケースが少なくともひとつは存在する確率が100%で
あるということ。
どうもmonths = [0]*12の[]の部分の数値が大きくなるのと連動して、確率値も
どんどん上昇していくようなコードや計算上の仕様になっている感じがする。
months = [0]*12の時が1番低いaProbの確率で、0.4…くらいの値。
months = [11]*12の時は、aProbの確率が1.0、つまり100%。
乱数がリストmonthsの添え字として配分されているのであれば、months = []*12
の[]の箇所に0〜11のどの乱数を入れても、そこに結び付けられる添え字は同じ
なのだから、最終確率も類似のものになってもよさそうなのに、どうも
[]の中に0<1<2<3<4<5<6<7<8<9<10<11という関係と比例する形で、aProbの確率が
最初の0.4〜5の範囲から、最終的には1.0(months = [11]*12の時)にまで達する
ぐらいに値が理論上の計算値からズレてきてしまうのです。
その理由が分かりません。
0448デフォルトの名無しさん
2015/10/08(木) 18:56:24.52ID:2HMBHL9M読む価値無いわ
0449デフォルトの名無しさん
2015/10/08(木) 18:57:04.57ID:sRIRMnFEmonths[0,1,2,3,4,5,6,7,8,9,10,11]、もしくはmonths[1,2,3,4,5,6,7,8,9,10,11,12]
といった感じのmonthsリストが形成されて、それに割り振られた0〜11の覧瑞狽フ
添bヲ字によって、bサれぞれの月ごbニにインクリメャ塔gされた値かb迯ナ終的な確率bェ
正しく涛アき出されるのbノ対して、
months = [11]*12 のコードの実行時は、months[11,11,11,11,11,11,11,11,11,11,11]か
months[12,12,12,12,12,12,12,12,12,12,12]みたいに、とにかくリスト内の要素が
すべて同一の値(別に11でなくてもいい)になってしまっていて、そのことによって、
0から11の乱数としてどの添え字が配分されても、同一の要素(月)だけが
インクリメントされてしまっているので、最終的な確率が1.0=100%と表示されてしまうのかな。
でも、教えてくれた方は、months = [0]*12で、[0,0,0,0,0,0,0,0,0,0,0,0]
が作られて、リスト内の要素には添え字でアクセスする、と言っていた。
私は、その添え字をrandom.randint(0,11)から渡される(0〜11)の値だと
思っていたのだけど、その理解が違うのでしょうか。
>>441さんの
month = [0] * 2
months[0] = 1
months[1] = 2
という数え方の方が、なんとなく、計算結果と合致するのですが。
0450デフォルトの名無しさん
2015/10/08(木) 19:05:44.30ID:/mg/zjarMS-Windows版Python 2.6です。
ZipFile.write(u'ソング.txt', u'ソング.txt'.encode('cp932'))
で、zip内のファイル名の「ソ」(文字コードにバックスラッシュを含む)が化けます。
0451デフォルトの名無しさん
2015/10/08(木) 19:48:03.02ID:29V1SYaYpythonでutf-16に変換できるか知らないが試してみておしえて
0452デフォルトの名無しさん
2015/10/08(木) 20:03:10.67ID:TEWEdEIy何を勘違いしてるのか謎だけどリストに対する乗算は、それを乗数分繰り返したリストを生成する
つまり[0]*12は要素が12個で全てが0のリスト…なのでその理解はいい、そのリストへの参照がmonthsに割り当てられる
しかし変数にくっついた鉤括弧はリストに使うと要素に(0から始まる)インデックスよってアクセスすることを意味する
random.randintによってそのインデックスをランダムに決定することで患者数をインクリメントする月をランダムにする
month = [11] * 12では各月に最初から11人罹患していることになってしまう
>>450
ZipInfoにos.sepを/に置き換えるコードが入ってるのでねぇ…手っ取り早くos.sep = '/'とかしても回避できるけど
ドライブのセパレータを除去できなくなったりするので大人しくUnicode渡してUTF-8で記録させた方が…
0453デフォルトの名無しさん
2015/10/08(木) 20:26:13.91ID:TEWEdEIyzipfile.ZipInfo._encodeFilenameFlags = lambda self: (self.filename.encode('cp932'), self.flag_bits)
でも挿入してみるとか、ファイル名は全部unicodeで渡して
0454デフォルトの名無しさん
2015/10/09(金) 00:31:33.88ID:rd4aRhyU0455デフォルトの名無しさん
2015/10/09(金) 04:06:48.90ID:351lCfXPその説明で、ようやく分かりました。感謝です。
リストに複数入った要素へ乱数をインデックスに割り当ててインクリメントしていく状態といった
コードが、自分的には見慣れないレアなコードだったので、そのイメージが得にくかったのです。
x+=1やx*=5みたいに1つの変数xに対して、インクリメントするのなら理解しやすいのに。
months = [0]*12で最初の状態は、[0,0,0,0,0,0,0,0,0,0,0,0]になって、range(446)の条件で
インデックスに乱数が配分されて、[random.randint(0,11)] += 1でインクリメントされた時は、
たとえば、[33,50,36,42,17,69,24,44,34,35,40,19,43] みたいな感じにリストの値が変わるということ
なのでしょう。
> month = [11] * 12では各月に最初から11人罹患していることになってしまう
と教えていただいたので、それは、 months[11,11,11,11,11,11,11,11,11,11,11,11] のリストの状態から
インクリメントがスタートしてしまっている状態なので、のちに得られる最終的な確率も
months = [0]*12の[0,0,0,0,0,0,0,0,0,0,0,0]からスタートしたものよりは、当然上がってくる、ということ
なのだろう。教えて頂いて、助かりました。>>452さん 再感謝です。
0456デフォルトの名無しさん
2015/10/09(金) 04:58:55.41ID:SqKziDAZファイル名には、半角英数字と、_(アンダーバー)だけを使う
外人が作るアプリでは、
日本語・空白文字・ダメ文字などを想定していないから、
まともには動かない
>>437
連想配列と同じ。
文章内に出てくる、単語数を数える処理などで、よく見る
words['dog'] += 1
words['cat'] += 1
dogという単語は3回・catは5回、出現したとか
そのプログラムも、キーを患者の番号ではなく、
名前・患者IDなどで考えたら、よくわかる
初心者は、>>429 の本を読んだ方が速い
0457名無したん(;´Д`)ハァハァ
2015/10/09(金) 07:26:12.88ID:R/fihbLN0458デフォルトの名無しさん
2015/10/09(金) 08:16:42.93ID:8cGzmkg30459デフォルトの名無しさん
2015/10/09(金) 09:42:45.91ID:Pt9XGpl20460450
2015/10/09(金) 23:14:14.52ID:CLF1T+DBレスありがとうございます。
ZipInfo.__init__() 内で'\\'を'/'にreplace()した部分を無効化しました。
関数もオブジェクトなので書き換えられるという発想がありませんでした。
0461デフォルトの名無しさん
2015/10/09(金) 23:30:48.74ID:LjniZf+RVisual Studio
GUIから仮想環境作ったり、pipでパッケージ入れたりできるの便利だった。
0462デフォルトの名無しさん
2015/10/10(土) 06:25:13.56ID:xKeKrZ5aもう見てないかもしれないけど、コードの意味がわからなかったらそれを逐一printして確認すれば大抵のことは解決します
初心者がプログラムを見て自分でアレコレ推論するほど意味の無い行為はありません
上級者でも袋小路に陥ったらそうします(実際はデバッガーを使うけど初心者はprintで頑張る)
今回の場合はforの中のmonthsをprintしてれば長時間悩むこと無く解決してたかと思います
0463デフォルトの名無しさん
2015/10/10(土) 07:39:28.47ID:xRAr0t1Sわたし、print()、logger()で頑張ってたけど、、、
0464デフォルトの名無しさん
2015/10/10(土) 08:04:17.66ID:qrMNhsm1これを逆にして、ソースコード → 仕様書
では、ソースコードの作者が、
わかりやすく書いているとは限らないから、
理解するのに数倍の時間がかかる
ソースコードは読まない方がいい。
達人が書くソースコードは、変数名・関数名を見たら、
すぐに処理がわかるので、読む必要もない
達人は、バーッとすごい勢いで、
ソースコードを書いたりしない
作業時間の1/3はじっくりと、
わかりやすい名前を考えている
また1/3は、ソースコードの構成について考えている。
残り1/3が、プログラム・デバッグなのだが、
ほとんどバグを起こさない
つまり、バグのほとんどは設計段階で生じるから、
プログラム・デバッグの段階では、生じないのだ
0465デフォルトの名無しさん
2015/10/10(土) 08:37:11.80ID:336gnDzB0466デフォルトの名無しさん
2015/10/10(土) 09:48:22.09ID:GwjphGt7Spyder だと、コードのステップ実行したり、ブレイクポイント置いたり、実行中の変数を見たりが出来て、便利だよ。
print のみで十分なことの方が多いけどね。
0467デフォルトの名無しさん
2015/10/10(土) 11:54:13.99ID:3ApnBNOY0468デフォルトの名無しさん
2015/10/10(土) 12:27:29.78ID:/egW/Cb1http://www.oreilly.co.jp/books/9784873114484/
0469デフォルトの名無しさん
2015/10/10(土) 12:39:41.31ID:xKeKrZ5aもしその変数じゃなくて関連する別のやつが原因だった時にそれじゃ特定にめっちゃ時間かかる
デバッガ使えばその状態の変数がすべて見られるから片っ端から調べる事が可能
あとprintだと可読性が悪すぎるし(特にclass)GUIデバッガは閲覧性高くて便利
0470デフォルトの名無しさん
2015/10/10(土) 13:07:52.25ID:3vz2/iUj0471デフォルトの名無しさん
2015/10/10(土) 13:53:22.01ID:/rn3qk7+「みんなのPython第3版」は持っています。時々、部分的に参照しています。
連想配列のことも、この本の後ろの索引には載ってましたが、「ディクショナリはハッシュ(連想
配列に似ている)」みたいに書かれているだけでした。
>>462
さっそく、その方法を今、試してみました。range(446)のfor文から
print months を対話シェルで実行してみたところ、
[33,28,36,43,41,43,39,36,40,32,40,36] と表示されていました。
私が、こういう感じのものが見えない部分で計算・表示されているのでは?と脳裏に
イメージしていたのと同様のものが、実際に表示されてて、嬉しかったです。
ありがとうございます。教えていただいたように、コードが分からない時には、
print文で、小さくチェックして動作検証を行うというスタイルを試すようにしてみます。
「small is beautiful」というプログラミング言語に関する格言もあるようですし。
まさに、pythonの対話シェルの仕様など、その利点を生かせそうです。
ちなみに上記のリストの要素の値を全部足してみたところ、447になっているので、
range(446)=447 ということで、乱数がインデックスに配分されてインクリメント
+1された値も、当然ながら無事に合致してました。
0472デフォルトの名無しさん
2015/10/10(土) 14:07:59.78ID:UQMKf0jM[hog, 2]
[ho, 3]
[h, 4]
.
.
.
というような沢山のリストをループ処理の結果、出力する、というような関数を作ったのですが、返し値にうまく入ってくれません。
一回目のループ結果、つまりこの例で言う一番上の
[hoge, 1]だけが値に入って返されてしまいます。
とうすれば全てのループ処理の後のデータが返し値に入ってくれるでしょうか。
ループの外にreturnをおいてもダメでした。
宜しくお願いします。
0473デフォルトの名無しさん
2015/10/10(土) 14:12:03.68ID:/egW/Cb1???
0474デフォルトの名無しさん
2015/10/10(土) 14:13:33.49ID:/egW/Cb1関数のソース貼る気は無い?
0475デフォルトの名無しさん
2015/10/10(土) 15:06:45.71ID:/rn3qk7+range(10)だと、0〜9の意味なので、
range(446)たと、0〜445になって、
各インクリメントごとに+1の仕様なので、ご指摘の疑問のように
計446になっていてよさそうなものなのに、でも、理由が分かりました。
別の計算をしてリストの要素のひとつに1が入った状態のまま合計してしまったので
+1増えた状態で計算してしまったみたい。
なので、もう一度、対話シェルを使ってやり直してみると、
months[34,34,39,33,34,38,27,41,33,46,46,41]
で各要素を合計したところ、446になったので=range(446)で、今度は合ってますね。
たぶん、インデックスの数え方が0から始まるので+1なっていてもいいのだと、
勘違いしていたので、range(446)=447でOKなのだと、誤解していました。
ご指摘、ありがとうございます。
0476デフォルトの名無しさん
2015/10/10(土) 16:13:00.22ID:jcnnPVwy0477デフォルトの名無しさん
2015/10/10(土) 16:28:13.84ID:5vRp+uuJ質問に不向きなんだよ
0478デフォルトの名無しさん
2015/10/10(土) 18:05:20.74ID:UQMKf0jMすみません、こんな感じです
f = open(u"data.txt")
data1 = f.readlines()
f.close
f = open(u"del.txt", "r")
del = [line.strip("\n") for line in f]
f.close
number = "150"
def get():
_____for data in data1:
_____list_a = data.strip("\n").split("\t")
_____dict_a = {"name":list_a[0], "cluster":list_a[1]}_____if number in dict_a.values():
_______data2 = dict_a["name"].split()
_______del_data = [d for d in data2 if d not in del]
_______return del_data
data.txtには
文字列、番号のセットのデータが大量に、
del.txtには削除したい文字列が改行区切りで入ってます。
番号は被っており、番号というよりかはグループのイメージです。
このコードだと、150という番号を持った文字列を抜き出し、さらにそこから所定の文字列を削除する、という処理が目的です。
宜しくお願いします。
0479デフォルトの名無しさん
2015/10/10(土) 18:26:22.18ID:LR5ASwn1数学の知識が無いときついな
0480デフォルトの名無しさん
2015/10/10(土) 18:30:55.73ID:LR5ASwn1とりあえず短めのサンプルデータと、そのサンプルデータを使って返されるデータを張って
0481デフォルトの名無しさん
2015/10/10(土) 18:53:57.48ID:evwOALkb0482デフォルトの名無しさん
2015/10/10(土) 19:02:30.99ID:UQMKf0jM例えばdata.txtの中身が
abcd 1
efgh 1
ijkl 1
mnop 2
qrst 2
uvwx 2
yz12 3
3456 3
789@ 3
(全てタブ区切り)
だとして、numberを”1”とした場合、本当は
['abcd']
['efgh']
['ijkl']
が返ってきてほしいのにこのままだと
['abcd']
しか返ってこない、ということです。
>>481
変数名は適当に変えただけなので、都合のいいものに変換してくださると助かります。
0483デフォルトの名無しさん
2015/10/10(土) 19:12:43.97ID:evwOALkb最初に条件に合うものが見つかった時点で処理が終了してしまうから
返り値用のリストをつくってそれにappendしてさいごにそのリストを返すとか
yield文つかうとか
0484デフォルトの名無しさん
2015/10/10(土) 20:06:54.52ID:KhrHeyZL['abcd', 1],
['efgh', 1],
['ijkl', 1],
['mnop', 2],
['qrst', 2],
['uvwx', 2],
['yz12', 3],
['3456', 3],
['789@', 3],
]
ary = []
for i in data:
____if i[1] == 1:
________ary.append(i)
print(ary)
0485デフォルトの名無しさん
2015/10/10(土) 20:07:25.80ID:KhrHeyZL0486デフォルトの名無しさん
2015/10/10(土) 21:09:48.83ID:xRAr0t1Sほらよっ。
if __name__ == "__main__":
path = "tech482.txt"
number = "1"
L = []
with open(path) as f:
for l in f:
l = l.strip()
# print(l)
if not l:
# 空行
continue
key, value = l.split()
if value == number:
L.append(key)
print("L =")
print(L)
0487デフォルトの名無しさん
2015/10/10(土) 21:58:40.61ID:BkPjyjwr478によればファイルの1行はタブで区切られた文字列と数字で構成されており、さらに文字列内部にスペースによる区切りを持っている。そのコードでは期待した結果にならないし、質問者を混乱させると思う。
あと、辞書でもなく、keyとvalueの関係でもない値をkey, valueという変数名で受けるのは、初心者を混乱させると思う。
0488デフォルトの名無しさん
2015/10/11(日) 02:21:59.87ID:AyUJcJIA>>478のgetをジェネレーターにした
def get(number, data_list, del_list):
for data in data_list:
name, cluster = data.strip("\n").rsplit("\t", 2)
if number in (name, cluster):
yield [d2 for d2 in name.split() if d2 not in del_list]
def main():
number = "1"
with open(u"data.txt") as f:
data1 = f.readlines()
with open(u"del.txt") as d:
del_list = d.read().split("\n")
for L in get(number, data1, del_list):
print L
if __name__ == '__main__':
main()
0489デフォルトの名無しさん
2015/10/11(日) 07:35:19.16ID:gtAaD4ZLif number in dict_a.values(): のところだか、
確認したいのはclusterの値がnumberの値と同じかどうかなんだから、
values()で辞書のすべての値を取得してチェックしているのは、おかしい。
無駄な処理をしてるし、潜在的なバグになる可能性だってないとは言えない。
if dict_a['cluster'] == number: と意図をストレートに反映したプログラムにした方がいい。
0490デフォルトの名無しさん
2015/10/11(日) 09:05:37.55ID:ejMduT14いろいろな手法があり、とても勉強になります。
取り敢えずは堅実にyieldでデータを返してforで回す、という方法をとりたいと思います。
ご協力有難うございました。
0491デフォルトの名無しさん
2015/10/11(日) 10:42:31.52ID:ngi+Bnfdx f.close
o f.close()
0492デフォルトの名無しさん
2015/10/11(日) 20:56:16.47ID:bs+FqhpV0493デフォルトの名無しさん
2015/10/11(日) 21:58:33.87ID:WJzfMgSC学生バイトに申し込みたい
0494デフォルトの名無しさん
2015/10/11(日) 21:59:43.94ID:WJzfMgSC連投すいません。
私は、入門書を1周した程度の、超初心者です。。。
0495デフォルトの名無しさん
2015/10/11(日) 22:04:29.32ID:Y91Ji1zq誰も話題にしないから開催前に気づかなかった
0496デフォルトの名無しさん
2015/10/12(月) 01:24:18.28ID:3+p+nAKf経験の意味合いは人によって異なる
そのバイト先に問い合わせなさい
0497デフォルトの名無しさん
2015/10/12(月) 09:37:30.89ID:cfQqiQeE0498デフォルトの名無しさん
2015/10/12(月) 12:14:02.34ID:Y/lDePmzアンテナが足りないんじゃねえの人のせいにするなよ
0499デフォルトの名無しさん
2015/10/12(月) 12:17:32.49ID:ntYAJ4A2飯でも食えよ腹減ってんだろ?
0500デフォルトの名無しさん
2015/10/12(月) 12:22:29.41ID:ObyDPERj0501デフォルトの名無しさん
2015/10/12(月) 12:31:32.04ID:LCoCFKNBvenvモジュールはPython3.3から付属するから、あなたは現在すでに3.3以上をインストールしていて、でも2.7も試したい、それも仮想環境の中で試したい、ということでいいのかな。
結論から言うと、venvモジュールにはPythonのバージョンを指定して切り替える機能はないので、venvではできない。
Pythonのバージョンを指定しつつ仮想環境を構築できる方法としては、大雑把に言うと
1. virtualenvを使う
2. pyenvを使う
3. anacondaを使う
の3つがある。
大雑把過ぎてこれだけだと不正確な説明だけど、正確に説明しようとするといくらでも長文になるので、とりあえず方向性としては3つあるんだな、と理解しておいてください。
0502デフォルトの名無しさん
2015/10/12(月) 12:34:10.25ID:ntYAJ4A2俺2ヶ月前にこのスレでPyConに言及したし
ただPyCon行くよりは, その金でyapcに行くか
焼き肉をたらふく食べることを勧めるね
役に立たないから
0503デフォルトの名無しさん
2015/10/12(月) 14:06:52.66ID:QD0vOYoj0504デフォルトの名無しさん
2015/10/12(月) 20:45:14.34ID:TeZNppeg2.7では、
str_data = str_data + chr(0xfd) + str_adddata
などとしていました。
元のstr_dataが"00"でstr_adddataが"11"だとすると、この式の後ろでは、str_dataをhexで表現すると"3030fd3131"となっていました。
これは期待動作でした。
しかし、これをpython3.4で動かすと、"3030c3bd3131"となってしまっています。
どう記述すれば、同じ意味にできるのでしょうか。
教えてください。
0505デフォルトの名無しさん
2015/10/12(月) 21:30:25.92ID:fqUNFNRvstr_data = "00"
str_adddata = "11"
str_data = str_data + chr(0xfd) + str_adddata
print("str_data =", str_data)
print("str_data =", str_data.encode())
print("len(str_data) =", len(str_data))
print("len(str_data.encode()) =", len(str_data.encode()))
print()
bytes_data = "00".encode()
bytes_adddata = "11".encode()
bytes_data = bytes_data + b"\xfd" + bytes_adddata
print("bytes_data =", bytes_data)
print("len(bytes_data) =", len(bytes_data))
0506デフォルトの名無しさん
2015/10/12(月) 21:56:20.19ID:TeZNppegありがとうございます。
バイト同士ならOKだったのですね。
期待動作を確認できました。
0507デフォルトの名無しさん
2015/10/12(月) 23:50:56.76ID:dF+vuBUQ環境は関係なさそうですが、一応Python2.7でWindowsです
一つ目:
import Aとfrom A import *って同じですか?
二つ目:
from ctypes import *
windll.user32.SendMessage()
上記のようにしてWin32APIを呼び出しているのですが、
user32.SendMessage()のようにwindllを略して書けるimportの書き方を教えていただけませんか?
以下は自分で試してみたパターンです
from ctypes.windll import user32
import ctypes.windll.user32 as user32
from ctypes import windll.user32 as user32
三つ目:
ctypesを使って書いたスクリプトをこのモジュールごと同梱して配布したいのですが、
これは内部で_ctypesというモジュールをインポートしているようなので、
ファイル検索してみた結果、DLLs/_ctypes.pydとlibs/_ctypes.libで、
らしきファイルを二つ見つけました。これは両方共必要ですか?
以上です。お手数ですがよろしくお願いします
0508デフォルトの名無しさん
2015/10/13(火) 00:06:17.74ID:YzZ6qWCc違う
二つ目
windllはモジュールじゃないからimportでは無理
user32 = windll.user32を自分で書く以外ない
三つ目
libは要らん
0510デフォルトの名無しさん
2015/10/13(火) 07:04:34.55ID:mv2XvxUtimport math as m
m.cos(1)
from math import cos, sin, tan
from math import *
cos(1)
上のように、モジュール名を付けた方が、わかりやすい
0511デフォルトの名無しさん
2015/10/13(火) 07:41:15.88ID:f2cwsjVv>モジュール名を付けた方が、わかりやすい
一文字が分かり易いか否かは、人によるかと。
0512デフォルトの名無しさん
2015/10/13(火) 08:19:51.17ID:YzZ6qWCca, b, c, i, j, k, n, m, v, x, y, zあたりはループやラムダ変数に使うから
0513デフォルトの名無しさん
2015/10/13(火) 08:24:58.45ID:YzZ6qWCc0514デフォルトの名無しさん
2015/10/13(火) 08:49:11.87ID:cqCsA1PS0515デフォルトの名無しさん
2015/10/13(火) 08:57:46.94ID:Fh+xbXsmcosとかはサードパーティライブラリにもあったりする可能性があるので名前が被って思わぬハマりポイントになりがち
短い書捨てコードなら付けなくてもいいけど
0516デフォルトの名無しさん
2015/10/13(火) 11:01:59.94ID:ULA4zX5N0517デフォルトの名無しさん
2015/10/13(火) 18:00:29.09ID:XHQqqM3uif a == "a":
print ("アタリ")
else == "b":
print ("ハズレ")
入力→結果→再入力の繰り返しにしたいです。
どのように書き加えればうまくいくでしょうか…
お願いします
0518デフォルトの名無しさん
2015/10/13(火) 18:01:40.60ID:XHQqqM3uelse:
print ("ハズレ")
書き間違えました…
0519デフォルトの名無しさん
2015/10/13(火) 20:01:45.04ID:U/y2WxCwa = raw_input()
if a == "a":
print ("アタリ")
else:
print ("ハズレ")
0520デフォルトの名無しさん
2015/10/13(火) 20:15:14.36ID:Qx5knz2Nbreakする条件も一応は入れてあげた方がいいんじゃないかw
0521デフォルトの名無しさん
2015/10/13(火) 20:27:20.82ID:fswW2dsD時計の45分のところを0度、0分を90度として計算するにはどうしたらいいですか?
0522デフォルトの名無しさん
2015/10/13(火) 20:43:26.84ID:XHQqqM3u>>520
ありがとうございます
continueについてばかり考えてwhileを忘れてました。
breakについては調べたら分かりましたので多分大丈夫です…
0523デフォルトの名無しさん
2015/10/14(水) 01:35:04.90ID:xEnjhypGグラフを書いてみたらイメージ湧くと思うけど、引数に-1掛けて計算すればいける。
0524デフォルトの名無しさん
2015/10/14(水) 11:47:27.53ID:NJzvazWx1,2,3
4,5,6
7,8,9
10,11,12
13,14,15
↓
13,14,15
10,11,12
7,8,9
4,5,6
1,2,3
このような感じで反転させ、保存したいです。
0525デフォルトの名無しさん
2015/10/14(水) 11:52:24.96ID:8Sy25YjX0526デフォルトの名無しさん
2015/10/14(水) 11:58:10.57ID:8Sy25YjXこれでいいわ
open('out.csv', 'wb').write(''.join(reversed(open('in.csv', 'rb').readlines())))
0527デフォルトの名無しさん
2015/10/14(水) 12:02:14.65ID:NJzvazWxこんなに簡単なコードで実現させてくれてありがとうございます。
0528デフォルトの名無しさん
2015/10/14(水) 12:12:04.99ID:8Sy25YjX0529デフォルトの名無しさん
2015/10/14(水) 13:34:42.51ID:tbd5i+Zu0530デフォルトの名無しさん
2015/10/14(水) 21:01:13.38ID:aVFYhswzごめんちょっと質問
そういうふうに書いたときと
with open('in.csv', 'rb') as f:
__tmp = f.readlines()
__tmp = ''.join(reversed(tmp)
with open('out.csv', 'wb') as f:
__f.write(tmp)
こんな感じに分けて書いた時とでは、機械語になったときに違いがある?
どっちの書き方がいいとかいう話じゃなくて、純粋にマシン語になっても違うのかそれとも最終的に同じになるのかっていう疑問なんだけど。
あとそういう書き方をしたらcloseはしなくてもいい?
0531デフォルトの名無しさん
2015/10/14(水) 21:51:09.53ID:O2Vg9iRA0532デフォルトの名無しさん
2015/10/14(水) 21:51:30.64ID:travUk60機械語じゃないけどdisを使ってバイトコードを見ることはできる
結果は張らないけどwith文なしの方が簡潔だがクリーンアップ処理をしない
closeを呼ばない場合、変数の寿命までファイルハンドルを解放しないだろう
0533デフォルトの名無しさん
2015/10/14(水) 22:04:45.01ID:9V9DYJOqそのうちモヒカンとレザースーツの怖いオッサンにハンドアックスで襲われるぞw
0534デフォルトの名無しさん
2015/10/14(水) 22:26:22.36ID:V5hvgk/k基本的にはこれがあるので解放されないことはない
ttp://docs.python.jp/3/library/io.html#io.IOBase.__del__
が、__del__が呼ばれるタイミングは保証されないので
ttp://docs.python.jp/3/reference/datamodel.html#object.__del__
大人しくwith文を使いましょう、1行にしたければwith ~ as ~,~ as ~: ~
0535デフォルトの名無しさん
2015/10/14(水) 23:33:45.74ID:aVFYhswz・disモジュール
・バイトコードとはなんぞや、また機械語との違い
・io.IOBase.__del__、object.__del__
・with文が複数のコンテキスト式を持てること
知らなかったこと、意識したことがなかったことがこんなにたくさん出てくるとは…
ひと通りリンク先など公式リファレンスを中心に読んでみて、理解できたことも、理解できなかったこともあったけど、勉強になったよ
0536デフォルトの名無しさん
2015/10/15(木) 00:11:21.54ID:E11DY73q0537デフォルトの名無しさん
2015/10/15(木) 10:27:00.45ID:bdlPZJI1今でもf=open()してf.closeとか書いちゃうひともいるけど
0538デフォルトの名無しさん
2015/10/15(木) 11:29:08.43ID:oh5EEV7k両方のライブラリを読む方法を教えてください
0539デフォルトの名無しさん
2015/10/15(木) 12:20:50.64ID:bdlPZJI10540デフォルトの名無しさん
2015/10/15(木) 12:32:12.53ID:E11DY73q死ねの間違いでしょ
0541デフォルトの名無しさん
2015/10/15(木) 20:53:36.44ID:teOaKAE0無理です
カレントの方を
module2.py
等に変更してください
0542デフォルトの名無しさん
2015/10/16(金) 00:48:05.36ID:NRJXYjK/system
* 3.5.0 (set by /Users/Yuya/.pyenv/version)
Yuya-no-MacBook-Pro:~ Yuya$ pyenv global 3.5.0
Yuya-no-MacBook-Pro:~ Yuya$ pyenv rehash
Yuya-no-MacBook-Pro:~ Yuya$ pyenv version
3.5.0 (set by /Users/Yuya/.pyenv/version)
Yuya-no-MacBook-Pro:~ Yuya$ python --version
Python 2.7.10
なんかいやってもversion切り替えできませんどうしてですか。
0543デフォルトの名無しさん
2015/10/16(金) 02:28:13.47ID:nO2Tiq060544デフォルトの名無しさん
2015/10/16(金) 07:05:02.10ID:AgtpvZ0j0545デフォルトの名無しさん
2015/10/16(金) 08:27:28.01ID:FC1Yc6+lRTFM
それが嫌なら死ね
0546デフォルトの名無しさん
2015/10/16(金) 08:32:35.07ID:jXGfcQ6Gactivate で仮想環境をアクティブにしなくても良いの?
0547デフォルトの名無しさん
2015/10/16(金) 09:38:35.71ID:D33QNIgDpyenv globalは仮想環境外で使用するpythonを切り替えるコマンドだから
ただし, 適切なPATHが設定されていないと動作しない
指摘されているように, READMEに書いてある
0548デフォルトの名無しさん
2015/10/16(金) 10:47:31.18ID:x5kkqrSP0549デフォルトの名無しさん
2015/10/16(金) 10:58:20.93ID:gZzQyjNXrehashはinstallしたあとに実行しろ
俺はこうしてるよ
systemに最初から入っているpythonは使わない
pyenvで2.7.10と3.5.0をインストールする
pyenv install 2.7.10 && pyenv rehash
pyenv install 3.5.0 && pyenv rehash
pyenv global 2.7.10 3.5.0
python --version # これは2.7.10
python3 --version # これは3.5.0
~/hogeの中ではpythonで3.5.0を使いたいなら
cd ~/hoge && pyenv local 3.5.0
0550デフォルトの名無しさん
2015/10/17(土) 13:11:14.95ID:ycnfRT7Zソースを見てみると"cdef"や"cimport"といった文があります
cythonではないAnacondaでこれらの文が使えるのはなぜでしょうか
0551デフォルトの名無しさん
2015/10/17(土) 13:25:51.00ID:ycnfRT7Z自己解決しました
コンパイルしたものを使っていたのですね
0552デフォルトの名無しさん
2015/10/17(土) 14:17:16.78ID:8crV4oii0553デフォルトの名無しさん
2015/10/17(土) 18:09:19.66ID:XWWnk8miデーモンプログラム作ってるんだけど、自動GCだとメモリがどんどん増加したんで、ループの最後とかにgc.collect()を仕込んだらある一定で安定するようになった
0554デフォルトの名無しさん
2015/10/17(土) 18:17:48.87ID:0116KRBh長時間稼働させる場合は特に必要だと思う。
0555デフォルトの名無しさん
2015/10/17(土) 21:25:28.58ID:wyhUq8vl0556デフォルトの名無しさん
2015/10/17(土) 22:10:15.90ID:FxuDpipI月、日はChoiceField()でシコシコ打ち込めば問題ないけど、年のところは2015年から1900年とかまでと数が多すぎるので何とかならないかなと
皆はどうしてる?
0557デフォルトの名無しさん
2015/10/17(土) 22:49:42.62ID:uNJQ9dbe0558デフォルトの名無しさん
2015/10/17(土) 23:04:50.32ID:wyhUq8vl俺が選んで良いならドロップダウンにする
0559デフォルトの名無しさん
2015/10/18(日) 01:24:23.00ID:hYDptRZPweb固有の質問はwebprog板で行うのが2ちゃんのルール
【Python】Webフレームワーク Djangoスレ Part2
http://kanae.2ch.net/test/read.cgi/php/1323960422/
0560デフォルトの名無しさん
2015/10/18(日) 05:20:34.38ID:B0fgHUNRコマンドウインドウからのローカルテキスト操作がスクリプト言語の本業だと思うけど
あらゆる技術がWebに向かっちまってて嫌になるねえ
0561デフォルトの名無しさん
2015/10/18(日) 09:30:38.82ID:yRFVTkanただしママに報告するかチラシの裏以外に書くな
0562デフォルトの名無しさん
2015/10/18(日) 09:53:23.91ID:shRS8GNgいや選択方法じゃなくて、コードの記述方法
choices = (
('1980', 1980),
('1981', 1981),
...
)
とかずっと書いていかんといけないのかなと思って
0563デフォルトの名無しさん
2015/10/18(日) 10:28:26.07ID:aPDgrt4L0564デフォルトの名無しさん
2015/10/18(日) 10:56:32.84ID:vJDQVwJW同意
0565デフォルトの名無しさん
2015/10/18(日) 10:58:51.68ID:vJDQVwJWchoices = [(_, _) for _ in range(1980, datetime.now().year + 1)]
0566デフォルトの名無しさん
2015/10/18(日) 13:57:39.20ID:doKDXU1P自作classのimportが上手くできず早くも泣きそうです。どなたかお助けください・・・。
下記2ファイルを作成しました。
・D:\dev\src\Controller.py
・D:\dev\src\Config.py
Controller.pyから、Config.pyの中の「Config」クラスを呼び出したいです。
ですが、import文のところに「no module named Config」と表示され
実行すると「TypeError: 'module' object is not callable」とエラーになります。
コードは下記です。
●Controller.py
# -*- coding: utf-8 -*-
import Config
cfg = Config("config.json")
print(cfg.get_all())
●Config.py
# -*- coding: utf-8 -*-
import json
class Config:
def __init__(self, path):
file = open(path, mode = "r", encoding = "UTF-8")
self.json = json.load(file)
file.close()
def get_all(self):
return self.json
どなたかお優しいパイソナーの方いらっしゃいましたら、何とぞよろしくお願いいたします。
0567デフォルトの名無しさん
2015/10/18(日) 14:20:28.98ID:1p1QfgSsimport Config
ではなくて
from Config import Config
にすればいけるかと
0568デフォルトの名無しさん
2015/10/18(日) 14:33:03.80ID:ePPgzDx9pythonの場合はPHPみたいにファイル名の先頭を大文字にする慣習はない
こういう時のためにipythonを入れなさい
import Cを打ったあとにtabをおせば補完候補が出てくる
0569デフォルトの名無しさん
2015/10/18(日) 15:05:17.61ID:sPJe7rRiimportの書き方も、参照
0570デフォルトの名無しさん
2015/10/18(日) 15:55:36.36ID:81sora9Q嘘ではないけど
その解決方法はおすすめじゃない感じがする
0571デフォルトの名無しさん
2015/10/18(日) 16:34:04.95ID:doKDXU1Pありがとうございます!!
importの書き方と、ファイル名・クラス名をPEP8準拠に直しました。
おかげさまで、とりあえず動作させることはできました。
ただ、今度は、
「This inspection detects names that should resolve but don't.」
なるエラーが出てしまい、さらにcfg.から先のコード補完が動作してくれません・・・
このエラー文について、stack overflowの英語記事しか引っかからずよくわかりませんが
PyCharmのバグ?っぽいです・・・
http://stackoverflow.com/questions/25147180/opening-attempting-to-read-a-file
>>570
もしよければ、よりよい解法をご教示いただけるとありがたいです
0572デフォルトの名無しさん
2015/10/18(日) 16:39:02.91ID:doKDXU1PPyCharmでエラーや警告文を常時表示してくれるウィンドウはあれば教えていただけないでしょうか
eclipseの「問題」ビューみたいなやつです
標準だと、エラー箇所にカーソルあわせてctrl+F1を押さないとエラー文が表示されないし
しかも表示してくれるエラー文がポップアップのためコピペできず
非常に不便です・・・
0573デフォルトの名無しさん
2015/10/18(日) 16:56:46.31ID:doKDXU1Pとすることで直りました!エラーも出ず、補完もできるように・・・
ありがとうございます。
ただ、この書き方だとディレクトリがsrcじゃなくなったらおしまいですね・・・
相対パスで上手く書けないんでしょうか
0574デフォルトの名無しさん
2015/10/18(日) 17:02:08.43ID:81sora9Qこれもおすすめじゃないけど
0575デフォルトの名無しさん
2015/10/18(日) 17:49:41.55ID:HDTZmcWKclass A:
__def __m(self):
____print(1)
これだとクラスオブジェクトさえあれば_外部から__mにアクセスできてしまいます
0576デフォルトの名無しさん
2015/10/18(日) 17:53:24.96ID:sMC62kag2と3で名前が変わった標準ライブラリがあるじゃないですかurllibとか。
この場合ならrequests使えばいいんですがこれはあくまでも例えってことで。
サードパーティのライブラリを使わない場合でこういうのはどう解決したらいいですか?
0577デフォルトの名無しさん
2015/10/18(日) 17:57:46.56ID:IrNm6I6CCodeメニュー>Inspect Codeで警告やらエラーの一覧がツールウィンドウに表示される
https://www.jetbrains.com/pycharm/help/inspection-tool-window.html
0578デフォルトの名無しさん
2015/10/18(日) 18:02:26.27ID:IrNm6I6CPython のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER
http://blog.amedama.jp/entry/2015/09/06/204552
0579デフォルトの名無しさん
2015/10/18(日) 18:03:00.25ID:81sora9Qこれ見たら?
https://www.youtube.com/watch?v=U1CSxd-kklY
0580デフォルトの名無しさん
2015/10/18(日) 18:08:41.08ID:jvqZfICyテストケース毎に実行させるほうほうってありませんか?
0581デフォルトの名無しさん
2015/10/18(日) 18:20:27.29ID:zFgX1Igtアンダースコア2つでアクセス出来なくなるわけじゃないけど
みんな大人だからさ、人の意図に反する行為はやらないよね?
0582デフォルトの名無しさん
2015/10/18(日) 18:43:48.85ID:P+8yiDHOrename Config.py config.py
rename Controller.py controller.py
import config
cfg = config.Config("")
>>573
http://diveintopython3-ja.rdy.jp/
一通り読むと良いよ。
>>575
無理です。
紳士協定で、_(under score)付きのmethodは使用しないってなってるので、
def _m(self):
pass
とでもして下さい。
0583デフォルトの名無しさん
2015/10/18(日) 18:57:05.39ID:iFZOaEXb俺はこんな感じで対処してる
import sys
if sys.version[0] == '2':
__from urllib import urlopen
if sys.version[0] == '3':
__from urllib.request import urlopen
0584デフォルトの名無しさん
2015/10/18(日) 19:11:48.90ID:doKDXU1Pprivateなし
ライブラリはpython2にしがみつく老害のゴミだらけ
ideの補完もゴミ
数値と文字列の連結に、型を気にしてstr()をしてあげないといけないなんて
鼻で笑っちまったわ
なんだこのゴミ言語
ペチピー以下じゃねえか
マイナー言語なわけだわ・・・
0585デフォルトの名無しさん
2015/10/18(日) 19:13:41.50ID:doKDXU1Pこれ言語仕様酷すぎません??
python作ってる人ってまともな教育受けてなかったのかな・・・なんか憐れみすら覚える
0586デフォルトの名無しさん
2015/10/18(日) 19:27:51.65ID:8xhftPvG0587デフォルトの名無しさん
2015/10/18(日) 19:28:34.75ID:doKDXU1P驚きモモヒキケンタッキーだわ
こんな糞言語にしがみついて生産性落としてる奴らって・・・
電気の無駄、時間の無駄、酸素の無駄
公害だわ、全人類の敵、地球の敵、みんなちょっと死んだ方がいいんではないですか?
0588デフォルトの名無しさん
2015/10/18(日) 19:29:37.82ID:doKDXU1Pお、ドMゥー!
0589デフォルトの名無しさん
2015/10/18(日) 19:49:01.65ID:iFZOaEXb1つのクラスで1つのテストケースを実装するとして、
単一モジュール内で複数のテストケースを実行する場合に、
それぞれのテストケースごとにそれぞれ違う処理をその前後にさせたいっていうこと?
0590デフォルトの名無しさん
2015/10/18(日) 21:43:53.39ID:9gnwfSc10591デフォルトの名無しさん
2015/10/18(日) 22:23:34.51ID:Tu8sQdti天才なら君が選んだ言語を教えてね。あと、名前も付けてね。
0592デフォルトの名無しさん
2015/10/18(日) 22:28:57.28ID:s8XdCc41さぞや気分がいいんだろうね?
0593デフォルトの名無しさん
2015/10/18(日) 23:16:27.50ID:u1NWdmdHC#みたいに
var i = 0
var str = 'hoge'
とか宣言できたらいいのにと思った
(もちろん宣言せずにいきなり参照・代入したらエラーで)
0594デフォルトの名無しさん
2015/10/18(日) 23:20:56.38ID:9gnwfSc1リファレンス内(logging how toを見よ)で平気でyamlを使う神経だけは理解できない
0595デフォルトの名無しさん
2015/10/18(日) 23:34:59.60ID:B0fgHUNR何でそう思うの?
タイプ量が増えるだけでメリットを感じないが
0596デフォルトの名無しさん
2015/10/18(日) 23:39:16.81ID:zFgX1Igt既にある変数に再代入するコードと区別がつかないのが問題ということかな
後はif-else文はブロックを作らないから
分岐中に代入して合流後に使うコードでNameErrorが発生したり
0597デフォルトの名無しさん
2015/10/19(月) 00:22:08.90ID:Oh7pgbBtIDE使ってればいきなり参照は警告してくれる
それよりもmapとかfilterがメソッド形式になってくれた方が嬉しい
0598デフォルトの名無しさん
2015/10/19(月) 09:24:54.60ID:0FeynMogその宣言は無意味なんだ
0599デフォルトの名無しさん
2015/10/19(月) 09:26:07.01ID:0FeynMog馬鹿には無理
0600デフォルトの名無しさん
2015/10/19(月) 17:00:46.05ID:BVriihZ8テストされていないコード行が知りたいんですが知る方法ありませんか?
pytestにこだわってるわけでもないので別のテストライブラリで実現できるならそれを教えてください
phpunitだとこんなふうにテストされた箇所が視覚的にわかるのでこういう風に知りたいです
http://cdn-ak.f.st-hatena.com/images/fotolife/s/secret_hamuhamu/20150527/20150527005349.png
0601デフォルトの名無しさん
2015/10/19(月) 17:56:28.36ID:0FeynMog0602デフォルトの名無しさん
2015/10/19(月) 19:31:13.79ID:TQDUnBKM{"a": 1, "b": 2}から {"b": 2}を引いて{"a": 1}にしたいです
0603デフォルトの名無しさん
2015/10/19(月) 19:49:18.75ID:QZomG315諦めよ
dictに集合演算機能はない
0604デフォルトの名無しさん
2015/10/19(月) 20:26:02.75ID:OhaGgHJ3dictに集合演算機能はない(がdictviewにはある)
0605デフォルトの名無しさん
2015/10/19(月) 20:29:26.87ID:OhaGgHJ3pytestの実行時に--cov-report htmlオプションを与えるとhtmlを出力する
はず
俺はnose派だから詳しくない
0606デフォルトの名無しさん
2015/10/19(月) 20:29:35.87ID:pRRTzcrodel a[0]
print(a)
とか
a = [[[0], [1], [2]],[[3], [4], [5]]]
del a[1][2]
print(a)
みたいに異なる階層の値を削除したい
深い階層に行くほど[]を複数書いていくことになりますが
リストの階層に合わせてハードコーディングしないといけませんよね
上のaの場合だと[n]と[n][i]の2つをハードコーディングしなければいけません
aがもっと深い階層まで拡大することに備えて、動的にインデックスを指定して削除したいのですが方法を教えてください 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0607デフォルトの名無しさん
2015/10/19(月) 20:30:52.13ID:OhaGgHJ3http://i.stack.imgur.com/PNhkb.png
0608デフォルトの名無しさん
2015/10/19(月) 20:33:59.18ID:CabTOv+aいくつか引き算の定義が考えられるけど、fooがあるとする
>>> foo = {"a": 1, "b": 2}
1.指定したキーを取り除く
>>> bar = {"b"}
>>> {key: value for key, value in foo.items() if key not in bar}
{'a': 1}
2.指定した値を取り除く
>>> bar = {2}
>>> {key: value for key, value in foo.items() if value not in bar}
{'a': 1}
3.キーと値が一致するものを取り除く
>>> bar = {"a": 1000, "b": 2}
>>> dict(item for item in foo.items() if item not in bar.items())
{'a': 1}
0609デフォルトの名無しさん
2015/10/19(月) 20:58:50.51ID:OhaGgHJ3そーゆーときは一段ずつ処理するんだ
1, 2を消したいならまずa[1]を適当な変数tmpに取り出す
それからdel tmp[2]する
同様に1, 2, 3, 4なら
tmp = a[1]
tmp = tmp[2]
tmp = tmp[3]
del tmp[4]
これをループを使って書き直す
その程度は自分でやれ
0610デフォルトの名無しさん
2015/10/19(月) 21:12:23.56ID:CabTOv+a高階関数を定義する
funcへ渡す関数をlambdaではなくdefで定義すれば複雑な処理もできる
def f(func, a, ns):
b = a[ns[0]]
for i in ns[1:]:
b = b[i]
return func(b)
>>> a = [[[0], [1], [2]], [[3], [4], [5]]]
>>> f(lambda x: print("result =", x), a, [0])
result = [[0], [1], [2]]
>>> f(lambda x: print("result =", x), a, [1, 2])
result = [5]
0611デフォルトの名無しさん
2015/10/20(火) 08:05:56.35ID:+y34cH6IPyCharmの補完が糞過ぎて草も生えない
0612デフォルトの名無しさん
2015/10/20(火) 12:48:49.01ID:W9uB5SNnhttp://qiita.com/methane/items/e95c578c3d8fc5f1f62e
0613デフォルトの名無しさん
2015/10/20(火) 16:59:27.98ID:aHZFphRvそりゃeclipseみたいなゴミに比べれば良いものだろうけど
0614デフォルトの名無しさん
2015/10/20(火) 21:35:59.87ID:TC/ibFEV>>612
ofなんて使えたのか
list[str]って書いてたわ
0615デフォルトの名無しさん
2015/10/20(火) 21:44:43.19ID:IcBvDclU0616デフォルトの名無しさん
2015/10/20(火) 22:25:47.27ID:7U/Y/4//char value_a = 'b' - 1;
char value_c = 'a' + 2;
のような。
0617デフォルトの名無しさん
2015/10/20(火) 22:37:00.70ID:A1vNd6F70618デフォルトの名無しさん
2015/10/20(火) 22:49:37.80ID:aHZFphRv0619デフォルトの名無しさん
2015/10/21(水) 01:44:43.22ID:k2x/6pgEあとcoutの最後にstd::endlもつけてやってくれ。
0620デフォルトの名無しさん
2015/10/21(水) 05:26:59.47ID:YZnuen5o特殊な環境だけ
0621デフォルトの名無しさん
2015/10/21(水) 10:28:15.90ID:TJeiUleNを
array = [
__1,
__2,
__[
____3,
____ 4
__]
]
こんなふうに深さを視覚的に見やすく出力する方法ありませんか?
0622デフォルトの名無しさん
2015/10/21(水) 10:35:46.90ID:4CVMjexC0623デフォルトの名無しさん
2015/10/21(水) 11:19:38.96ID:TJeiUleN0624デフォルトの名無しさん
2015/10/21(水) 11:25:07.13ID:zc5Cc/IW0625デフォルトの名無しさん
2015/10/21(水) 11:51:29.99ID:az0eFhYYb = a
del b[0]
print(a)
print(b)
f([0, 1])
aとbが同じなんですが何故ですか?
何でbの値を消したのにaの値も消えてるんですか?
0626デフォルトの名無しさん
2015/10/21(水) 11:59:23.07ID:/9+8IY9r0627デフォルトの名無しさん
2015/10/21(水) 12:34:35.50ID:4CVMjexCdef f(a):
# see
# http://diveintopython3-ja.rdy.jp/table-of-contents.html#native-datatypes
# http://diveintopython3-ja.rdy.jp/native-datatypes.html#lists
c = a.copy()
d = a[:]
b = a
print("f() ==========================================================")
print("id(a) =", id(a))
print("id(b) =", id(b))
print("id(a) == id(b),", id(a) == id(b))
print("id(c) =", id(c))
print("id(d) =", id(d))
print()
0628デフォルトの名無しさん
2015/10/21(水) 12:36:40.14ID:4CVMjexCdel b[0] # del a[0] と同じ。
# なぜならば、id(a) == id(b) だから。
print(a)
print(b)
print()
a.append(100) # [1].append(100)
c.append(200) # [0, 1, 100].append(200)
d.append(300) # [0, 1, 100].append(300)
print(a)
print(b)
print(c)
print(d)
0629デフォルトの名無しさん
2015/10/21(水) 12:41:02.67ID:4CVMjexCdef g():
print("g() ==========================================================")
# see http://docs.python.jp/3/library/pprint.html
pp = pprint.PrettyPrinter(width=10)
pp2 = pprint.PrettyPrinter(width=10, compact=True) # python3.4
array = [1, 2, [3, 4]]
pp.pprint(array)
pp2.pprint(array)
# help(pprint)
if __name__ == "__main__":
f([0, 1])
g()
>>625
b = a
だけでは、bもaも同じなの
0630デフォルトの名無しさん
2015/10/21(水) 12:57:30.65ID:Zr5MZtBCb = a[:]
0631デフォルトの名無しさん
2015/10/21(水) 16:35:41.70ID:ZXMR/M8nintなどの単純型(primitive)では値自体がコピーされる
クラス・配列などの複合型(コンテナ)は、
一々各要素はコピーされず、
複合型を指す参照(アドレス値)だけがコピーされる
0632デフォルトの名無しさん
2015/10/21(水) 17:00:07.91ID:t8SS3rgX> Pythonについてはよく知らないけど、一般的に代入では、
おまえは「くだすれPython(超初心者用) その27」スレで何を言ってるんだ?
0633よこ
2015/10/21(水) 17:43:08.75ID:mNcocD1t最後に一括して、ファイルに出力する方法を教えて下さい。
例)入力ファイルを最後まで読み込み、全レコードがえらーがない場合のみ、
入力ファイルの全レコードを出力ファイルに出力する。
よろしくお願いいたします。
0634デフォルトの名無しさん
2015/10/21(水) 18:23:19.49ID:/9+8IY9r0635デフォルトの名無しさん
2015/10/21(水) 18:26:03.86ID:Lz4gKDdZみたいにutf-8として読まないといけないのにunicodeとして取得しちゃった文字列を
後から
u'\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9' → '\xe3\x82\xab\xe3\x83\xa1\xe3\x83\xa9'
に変換する方法はありますか?
よろしくお願いします。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0636デフォルトの名無しさん
2015/10/21(水) 18:27:12.66ID:/9+8IY9rヒントになるのかどうかも分からないけど
list(file)で全行を一旦リストに入れて
書き込む時はfile.writelines使うといい
0637デフォルトの名無しさん
2015/10/21(水) 18:37:08.05ID:/9+8IY9rstr.encode('iso-8859-1')
0638デフォルトの名無しさん
2015/10/21(水) 18:41:47.54ID:Lz4gKDdZありがとうございます!
文字コード関連は難しい…
0639デフォルトの名無しさん
2015/10/21(水) 19:16:11.15ID:T5Qpsw3wdef a(self):
pass
def b(self):
pass
クラスのメソッド名を取得する方法を教えてください
この場合ではaとbの2つのみが知りたいです
0640デフォルトの名無しさん
2015/10/21(水) 19:33:16.82ID:C0yBgOIh0641デフォルトの名無しさん
2015/10/21(水) 19:35:52.39ID:4CVMjexC['func1', 'func2']
0642デフォルトの名無しさん
2015/10/21(水) 19:51:09.86ID:4CVMjexC>>> [name for name, func in A.__dict__.items() if callable(func)]
['func2', 'func1']
>>641 は止めで
0643デフォルトの名無しさん
2015/10/21(水) 20:43:25.36ID:T5Qpsw3w0644デフォルトの名無しさん
2015/10/21(水) 20:47:43.46ID:T5Qpsw3w>>642
ライブラリを使う方法使わない方法両方でできました
どうもありがとうございました
0645デフォルトの名無しさん
2015/10/21(水) 20:58:54.64ID:Lxq5Xv0Nutf-8以外使ってるど阿呆はrm -rfや
0646デフォルトの名無しさん
2015/10/21(水) 21:03:13.41ID:/9+8IY9r0647デフォルトの名無しさん
2015/10/21(水) 23:50:21.15ID:+lQNWzhB0648デフォルトの名無しさん
2015/10/22(木) 00:10:17.03ID:TKCRaEBUつ sudo
0649デフォルトの名無しさん
2015/10/22(木) 06:53:13.03ID:oin5XU3S0650デフォルトの名無しさん
2015/10/22(木) 07:38:22.61ID:svRgbvpo0651デフォルトの名無しさん
2015/10/22(木) 13:09:56.29ID:522gqyPw2ちゃんも消えるな
0652デフォルトの名無しさん
2015/10/22(木) 14:04:55.07ID:LYhTv0Jgprint(dic)
こうしたときに{"a":1, "b":1, "c":1}ってかいた順番通りに出力させる方法ありませんか?
{"b":1, "c":1, "a":1}みたいにランダムで出力されるので
0653デフォルトの名無しさん
2015/10/22(木) 14:09:07.14ID:Clh0KPl/0654デフォルトの名無しさん
2015/10/22(木) 14:27:56.50ID:522gqyPw0655デフォルトの名無しさん
2015/10/22(木) 14:58:25.49ID:oin5XU3Sという所から考えるに, 少なくとも4倍遅いでしょう
ボトルネックになるかどうかは使用頻度次第でしょうが
0656デフォルトの名無しさん
2015/10/22(木) 15:43:51.12ID:522gqyPw0657デフォルトの名無しさん
2015/10/22(木) 16:23:09.80ID:ySLNTuee0658デフォルトの名無しさん
2015/10/22(木) 16:35:35.84ID:oin5XU3Sdict=1とすると
1=dict<OrderedDict
Python3.5ではCで書き直されたということだから,
OrderedDictの速度はdictに近くなったと考えられるが,
アルゴリズム的にdictを上回ることはない
したがって
1=dict<OrderedDict(3.5)<OrderedDict(~3.4)
で, 右の不等号の部分は4~100倍らしいから,
Python3.4までのOrderedDictは, 少なくともdictより4~100倍遅いと見積もれる
0659デフォルトの名無しさん
2015/10/22(木) 16:38:17.11ID:oin5XU3S「OrderedDictの話だよ」ってどういう意味?
0660デフォルトの名無しさん
2015/10/22(木) 17:02:35.71ID:522gqyPw0661デフォルトの名無しさん
2015/10/22(木) 17:07:06.98ID:ySLNTueeあかんわ
0662デフォルトの名無しさん
2015/10/22(木) 17:53:46.10ID:522gqyPw0663デフォルトの名無しさん
2015/10/22(木) 18:14:47.89ID:5FjGz1l/print(lxml.etree)
>>AttributeError: module 'lxml' has no attribute 'etree'
from lxml import etree
print(etree)
こっちはエラーがでません
何でfromでかいたほうがエラーにならないのにlxml.etreeって書くのはエラーになるんですか?
0664デフォルトの名無しさん
2015/10/22(木) 19:23:19.51ID:oin5XU3Sさすがに二の句が継げない
数年したら分かるよ
>>663
lxmlパッケージの__init__.pyが何もimportしてないから
パッケージ配下のモジュールが暗黙的にimportされることはない
一部のライブラリで
import パッケージ名
するとモジュールも使用可能になるのは
__init__.pyの中にimportが書いてあるから
0665デフォルトの名無しさん
2015/10/22(木) 19:58:24.03ID:Gknfkluf> アルゴリズム的にdictを上回ることはない
アルゴリズムはいいけどクソ実装の可能性を何故無視する?
0666デフォルトの名無しさん
2015/10/22(木) 20:34:39.24ID:bQPHsZ7Gそんなんだから馬鹿にされるんだよ。
0667デフォルトの名無しさん
2015/10/22(木) 20:42:33.47ID:+naZ/uDab/lib.py
b/lib.pyでimport a.libしてもインポートできませんが
空のb/__init__.pyを作成するとインポートできるようになりました
何故インポートできるんですか?
0668デフォルトの名無しさん
2015/10/22(木) 20:51:04.42ID:oin5XU3Sそりゃあ最初の書き込み前にソースコードを読んで断定しましたから
可能性が割り込む余地はないですね
0669デフォルトの名無しさん
2015/10/22(木) 21:57:09.36ID:svRgbvpoんで、何が素のdictより遅くなる原因なの?
dict+linkedlistだったら参照コストは素のdictと同じでも良さそうなもんだけど?
0670デフォルトの名無しさん
2015/10/22(木) 22:08:14.49ID:kinLxVE3詭弁のガイドラインなんて久々に聞いたわ w
爺乙
0671デフォルトの名無しさん
2015/10/22(木) 22:13:34.49ID:lrbbaRKO0672デフォルトの名無しさん
2015/10/22(木) 22:54:36.60ID:svRgbvpo0673デフォルトの名無しさん
2015/10/23(金) 02:51:11.81ID:KbxpAfMHパッケージは普通のディレクトリで、
そのディレクトリ内に、__init__.pyモジュールが必要で、
__init__.py内に、定数なども定義できる
import パッケージ
で、__init__.pyの内容が読み込まれる
from パッケージ import モジュール
の形式もある
パッケージ内には、サブパッケージ・モジュールを置ける
0674デフォルトの名無しさん
2015/10/23(金) 04:10:41.08ID:bes8qU3y参照コストは変わらんと思うよ
誰も参照コストに限定した話なんてしてないけどね...
アホが必死にマウント取ろうとしてる姿は哀れだな
shi3zみたいだ
0675デフォルトの名無しさん
2015/10/23(金) 04:17:10.90ID:bes8qU3y「OrderedDictの話だよ」を好きなだけ続ければいい
0676デフォルトの名無しさん
2015/10/23(金) 04:27:56.04ID:bes8qU3yその構造ではb/__init__.pyがあってもimport a.libではimportできない...
状況説明が不正確か, あるいは説明されていない所に理由があると思う
0677デフォルトの名無しさん
2015/10/23(金) 05:12:27.64ID:NKqGTZsQ追加も大して変わらんのだけどな
また居なくなっちゃう?w
0678デフォルトの名無しさん
2015/10/23(金) 05:43:20.27ID:NKqGTZsQOrderedDictがdictと同じアルゴリズムでキーの管理にリンクドリストを使っているとすると
・__getitem__l, values
速度は同じ
・__setitem__
リストの末尾に追加する分非常に僅かに遅い可能性がある
・keys, items
リストを辿るだけなので実装によってはdictより速い可能性もある
という結果になる
つまりID:oin5XU3Sによる発言
1. OrderedDictの実装はdict+linkedlist
2. 少なくともdictより4~100倍遅い
3. ソースコードを読んで断定しました
このうち、1.を正しいと仮定する事で、2. or 3. のいずれかが誤りである事が分かる
「必死にマウント取ろうと」したいのは分かるけどウソはいかんよ
だってすぐバレちゃうんだもんw
あとアルゴリズムの勉強しようねw
0679デフォルトの名無しさん
2015/10/23(金) 11:45:28.19ID:EGmG1R8fクラウドソーシングってどれくらいの腕なら食えるくらい稼げる?
自分プログラミング歴はpython2.7が初学初心者で、
これから「はじめてのPython」をがっつりやってみる予定です。
この本のコードが書けるようになったら挑戦しても大丈夫かな?
0680デフォルトの名無しさん
2015/10/23(金) 11:49:28.66ID:KfqstdW8平日の昼間から2ちゃんやってる人には頼みたくならない
0681デフォルトの名無しさん
2015/10/23(金) 12:28:02.26ID:8qkwY/Qu0682デフォルトの名無しさん
2015/10/23(金) 13:19:50.74ID:EGmG1R8f初めのpythonが2009年、クックブックが2007年dkr
本は新版待ってsbrkネットで勉強しよう
0683デフォルトの名無しさん
2015/10/23(金) 13:22:35.30ID:gdSvDFNq0684デフォルトの名無しさん
2015/10/23(金) 15:54:14.99ID:8qkwY/Qu自決。普通に正規表現で処理した
0685デフォルトの名無しさん
2015/10/23(金) 16:41:16.69ID:aB7VvuXv0686デフォルトの名無しさん
2015/10/23(金) 16:42:56.91ID:aB7VvuXv0687デフォルトの名無しさん
2015/10/23(金) 17:27:19.46ID:1FmkefyV0688デフォルトの名無しさん
2015/10/23(金) 18:11:34.08ID:CLZQE+Gq0689デフォルトの名無しさん
2015/10/23(金) 21:02:59.00ID:Mcb87votpypyって何て発音してる?
0690デフォルトの名無しさん
2015/10/23(金) 21:06:52.18ID:NKqGTZsQ0691デフォルトの名無しさん
2015/10/23(金) 21:14:03.19ID:1FmkefyV0692デフォルトの名無しさん
2015/10/23(金) 21:17:12.56ID:Bkh3nx47ぴいぴい
0693デフォルトの名無しさん
2015/10/23(金) 21:31:36.92ID:1egZ0Qog0694デフォルトの名無しさん
2015/10/23(金) 21:40:58.03ID:1FmkefyV0695デフォルトの名無しさん
2015/10/23(金) 22:40:20.71ID:cNciiAbaPythonの仕事なんてクラウドソーシングであるの?
ちょっと想像できない
theano使って論文実装できるレベルの人にならいくらでも仕事頼みたいけどそんな人転がってないし
0696デフォルトの名無しさん
2015/10/23(金) 22:52:43.10ID:pRrg/BSt0697デフォルトの名無しさん
2015/10/23(金) 23:55:47.60ID:KbxpAfMH0698デフォルトの名無しさん
2015/10/24(土) 12:02:59.08ID:niXzNvfm汁出しながら話してる
0699デフォルトの名無しさん
2015/10/24(土) 19:03:17.43ID:3slC6hthオリジナルファイルがひとつある。
ファイルをコピーして、ファイルを開き、変数部分を書き換えて保存して閉じる。
これを水準数分実行したいです。
ざっくりで良いのでコードを教えて下さい。
0700デフォルトの名無しさん
2015/10/24(土) 19:22:20.34ID:Gv3c0teSごめんDOEって何?プログラムでやりたいことと関係ある?
あと水準っていわれてもわかんないので一般的な言葉で説明してほしい
オリジナルファイルが複数あってそのファイルごとに同じ処理を実行したいってことでいいのかな?
0701デフォルトの名無しさん
2015/10/24(土) 19:31:47.80ID:wB/X7nCW水準数って単語が出てくるってことは
ただやってることは単なるテキスト処理でDOEは全く関係ないと思うけど
ファイルの出所のことであって
0702デフォルトの名無しさん
2015/10/24(土) 20:32:34.04ID:Gv3c0teS変数名を書き換えるってことかと思ってたけどそうじゃなくて変数の値を書き換えるってことで
その変数の値を書き換える処理を実験の数の分だけしたいってことなのかな?とかも思っちゃう
それだけならわざわざ物理的にファイルをコピーしなくてもいいじゃんとかも思ったり
適切な抽象度で正確にやりたいことを説明してくれないと
ざっくりにしろじっくりにしろ回答できないよ
0703デフォルトの名無しさん
2015/10/24(土) 22:07:12.51ID:89dPDR9H0704デフォルトの名無しさん
2015/10/24(土) 23:49:34.74ID:brrrlGfC死んでほしい
0705デフォルトの名無しさん
2015/10/25(日) 00:04:58.86ID:cAm39BSn作者小一時間ほど説教して引っぱたいてやりたいわ、この無能が
0706デフォルトの名無しさん
2015/10/25(日) 00:14:42.13ID:YZ5g+13y老害のゴミ屑みたいな環境を使わざるを得ないからだよ。
俺は今 python2.4を使ってるよ。何気ないことの実現がひどく難しい。
0707デフォルトの名無しさん
2015/10/25(日) 00:17:54.93ID:xV04ZCve殺せない無力なガキが喚くな
0708デフォルトの名無しさん
2015/10/25(日) 00:21:52.09ID:yRM5qJHB0709デフォルトの名無しさん
2015/10/25(日) 00:25:42.91ID:lfnNH8vu自業自得というヤツさ
0710デフォルトの名無しさん
2015/10/25(日) 00:47:38.08ID:BK3Evb4v今時2.4は酷いわ
0711デフォルトの名無しさん
2015/10/25(日) 01:30:18.97ID:xV04ZCve一応現役(ProductionSupport期間内という意味で)だからな
俺は生涯そんな仕事受けないが
0712デフォルトの名無しさん
2015/10/25(日) 02:26:37.55ID:IGihUR6Pcopyfile()で、ファイルをコピーする
ファイル関連
open(), close()
with open()
read(), readline(), readlines(), write()
データ形式
CSV, YAML, XML, JSON
0713デフォルトの名無しさん
2015/10/25(日) 10:36:26.32ID:VXAWkuKH0714デフォルトの名無しさん
2015/10/25(日) 10:50:28.67ID:yfABSQf+return a + b
メソッドの引数に型を指定する方法ありませんか?
上の例ではaとbはintでくることにしたいんですが
他の言語みたいなdef tasizan(a:int, b:int)みたいに指定することって出来ませんか?
0715デフォルトの名無しさん
2015/10/25(日) 11:04:56.28ID:aYhTdN9Fそんな高度なことはできません
安心してStringのtasizanをお楽しみください
0716デフォルトの名無しさん
2015/10/25(日) 11:08:56.82ID:6KzvrzU/def tasizan(a: int, b: int) -> int:
0717デフォルトの名無しさん
2015/10/25(日) 11:09:52.32ID:6KzvrzU/0718デフォルトの名無しさん
2015/10/25(日) 11:28:27.06ID:yfABSQf+doc stringに書いた引数の型をチェックしてくれるテストツールとかもないですか?
0719デフォルトの名無しさん
2015/10/25(日) 11:51:38.37ID:6KzvrzU/名前忘れちゃったんで調べてみて
pyCharmとかのIDE使えばコーディング時に教えてくれるからオススメ
型アノテーションはまさに今議論されているところ
0720デフォルトの名無しさん
2015/10/25(日) 13:44:06.22ID:xV04ZCve0721デフォルトの名無しさん
2015/10/25(日) 15:00:01.27ID:aYhTdN9Fどーしてもパイチョンでしか実現できない要件以外
こんな言語触れる価値ないわ
0722デフォルトの名無しさん
2015/10/25(日) 15:12:57.29ID:ljG3KemPしかしPythonはこの2つの言語よりもWeb以外で強力なライブラリがある
0723デフォルトの名無しさん
2015/10/25(日) 15:15:05.59ID:xV04ZCve一般的にはいらねーよな
0724デフォルトの名無しさん
2015/10/25(日) 15:21:48.75ID:xV04ZCve古いとは言え、大抵の環境でインストール直後から使える
ゴミドザは座ってろ
しゃしゃんな
Perlも引っ込んでろ暗号コードジェネレータが
0725デフォルトの名無しさん
2015/10/25(日) 15:41:11.48ID:aYhTdN9F0726デフォルトの名無しさん
2015/10/25(日) 15:42:26.88ID:xV04ZCve0727デフォルトの名無しさん
2015/10/25(日) 17:02:57.52ID:BK3Evb4vアホばっかり
0728デフォルトの名無しさん
2015/10/25(日) 18:16:21.03ID:aYhTdN9F0729デフォルトの名無しさん
2015/10/25(日) 18:49:35.48ID:ip/vnDdd犬糞は2%にも満たないくせに更に偉そう
0730デフォルトの名無しさん
2015/10/25(日) 20:38:40.30ID:mN/1fWbVユーザー入力を非表示に出来れば良いんです
cursesを使う以外でお願いします
0731デフォルトの名無しさん
2015/10/25(日) 20:47:13.53ID:tTPtowO4真面目にやるならlogging
入力はgetpass
0732デフォルトの名無しさん
2015/10/26(月) 00:50:41.23ID:DUZkD9lW0733デフォルトの名無しさん
2015/10/26(月) 01:03:26.03ID:39wMuITq0734デフォルトの名無しさん
2015/10/26(月) 01:05:56.43ID:Pu2c6+a/あえて冗長な記述、おまじないをすることが上級者だと
誰も読めない・読みたくないコードがかっこいいと
本気で信じてる池沼が作ってる言語だから
受け入れるのが大事
上司が右を向けと言ったら右を向くように
思考することをやめ、Pythonこそが至高と唱え続ければ
きっと幸せになれます
0735デフォルトの名無しさん
2015/10/26(月) 01:11:55.55ID:jSFkYHTf0736デフォルトの名無しさん
2015/10/26(月) 01:18:45.17ID:Pu2c6+a/0737デフォルトの名無しさん
2015/10/26(月) 01:20:11.05ID:jSFkYHTf0738デフォルトの名無しさん
2015/10/26(月) 01:25:17.68ID:39wMuITq実行する理由が限られてるスクリプト、例えばsetup.pyとかは
setup()を直に呼び出してるパッケージが多数派だと思う
0739デフォルトの名無しさん
2015/10/26(月) 02:43:29.68ID:r0xKHFxJ常にmain()から始まるようにしておけば起点が見つけやすい
0740732
2015/10/26(月) 05:58:55.24ID:DUZkD9lW変数でモジュールが汚れるというのは、inspectでいうとf_globalsに変数が多く存在するということですか?
C言語から来たのでグローバル領域に物が沢山あると汚いとは思いますが、同じような理由でしょうか?
>>734
私はプログラミング言語の慣習には大抵何か理由があると思っています。
Pythonはインデントスタイルを縛ることでユーザー間の可読率を上げています。
そういった縛りや慣習も大勢が使う言語では可読率向上に有効に働くものかと思います。
>>739
確かにそれは他言語のユーザーからでもわかりやすくて良いですね。
しかし言語としてmain()から始まるようには設計していないのにこの書き方が広まっているのは、
言語の開発側とmain()から始めたいユーザーの静かな戦いですね。笑
0741デフォルトの名無しさん
2015/10/26(月) 06:15:32.44ID:Mjft3WHN変数の観点からもう少し突っ込むと関数ブロックでは代入がSTORE_FASTになるけど
モジュールやクラスブロックではSTORE_NAMEなのでループになると割合馬鹿に出来ない
0742732
2015/10/26(月) 09:41:24.58ID:DUZkD9lWhttp://www.nasuinfo.or.jp/FreeSpace/kenji/sf/python/virtualMachine/PyVM.htm#STORE_GLOBAL_STORE_NAME
にあるようにSTORE_NAMEの場合、保存先のオブジェクトの種類を判定する分遅いということでしょうか?
pyグラマというのはここまで気にしながらプログラミングしているのですか……脱帽です。
0743デフォルトの名無しさん
2015/10/26(月) 12:02:42.95ID:jSFkYHTfそんなコンマ数秒の勝負なら無能でなければC/C++使って書くよ
0744デフォルトの名無しさん
2015/10/26(月) 12:37:33.42ID:8OJDIDJG0745デフォルトの名無しさん
2015/10/26(月) 13:31:08.66ID:luKrPwO7if not isinstance(a, int) or not isinstance(b, int):
raise TypeError("not int!")
0746デフォルトの名無しさん
2015/10/26(月) 16:38:17.04ID:2MNiZRij原発の非常用電源みたいにSBOになるよ
0747デフォルトの名無しさん
2015/10/26(月) 16:39:27.82ID:2MNiZRij__name__ == "__main__" 書かないのと
from hoge import * と
どっちが許せる?
0748デフォルトの名無しさん
2015/10/26(月) 17:05:58.94ID:Mjft3WHN勿論速度に取り付かれた人だけです、素が倍違えど処理が入ると雀の涙、C/C++拡張へと…
ただコンパイラ言語と違って強い最適化は掛けられないので、書き方は結構重要になります
いくらか古い情報ですがPythonSpeedの記事はまだ有用でしょう、少し話がそれてきました
結局速度を気にするならasync/awaitが導入されたりとI/Oを非同期でやれということでしょう
また限定的用途ですがLLVMでJITするnumbaなる物も台頭してきた模様(anaconda.orgにビルド済み有
話を戻して…スレッド、JIT等にコードを渡すにしてもブロックにしておくと、というのもあります
0749デフォルトの名無しさん
2015/10/26(月) 17:25:15.26ID:39wMuITq許せる場合ならどっちも書く、滅多に書かないけどね
zen of pythonで言われてるように、盲目的なルール厳守は上手くないと思う
標準ライブラリにもfrom tkinter import *とか使われている
0750デフォルトの名無しさん
2015/10/26(月) 17:28:34.67ID:39wMuITq0751デフォルトの名無しさん
2015/10/26(月) 17:40:23.13ID:jZMivBq60752デフォルトの名無しさん
2015/10/27(火) 12:43:56.79ID:XeOEre3W以下のin1.csvとin2.csvを結合してout.csvを出力する方法を教えてほしいです。
in1.csv
0,1,2
5,6,7
in2.csv
3,4
8,9
out.csv
0,1,2,3,4
5,6,7,8,9
0753デフォルトの名無しさん
2015/10/27(火) 13:05:06.87ID:dbz6tEeFf1 = open("./tech752-2-in1.csv")
f2 = open("./tech752-2-in2.csv")
while True:
l1 = f1.readline()
l2 = f2.readline()
l1 = l1.strip()
l2 = l2.strip()
if not l1 and not l2:
break
print(l1, l2)
f2.close()
f1.close()
0754デフォルトの名無しさん
2015/10/27(火) 13:17:58.24ID:dbz6tEeFimport csv, sys
if __name__ == "__main__":
f1 = open("./tech752-2-in1.csv")
f2 = open("./tech752-2-in2.csv")
csv1 = csv.reader(f1)
csv2 = csv.reader(f2)
csv_writer = csv.writer(sys.stdout)
0755デフォルトの名無しさん
2015/10/27(火) 13:20:03.27ID:dbz6tEeFwhile True:
try:
row1 = next(csv1)
except StopIteration as e:
print("except StopIteration by next(csv1)")
break
try:
row2 = next(csv2)
except StopIteration:
print("except StopIteration by next(csv2)")
break
csv_writer.writerow(row1 + row2)
f2.close()
f1.close()
0756デフォルトの名無しさん
2015/10/27(火) 13:45:46.10ID:XeOEre3Wありがとうございます
思い通りの処理ができました
0757デフォルトの名無しさん
2015/10/27(火) 14:20:42.65ID:Lj8iPgFJ0758デフォルトの名無しさん
2015/10/27(火) 14:33:02.28ID:xzF47nt/0759デフォルトの名無しさん
2015/10/27(火) 15:09:50.45ID:oZ3zd0d4今回の指摘は最もな気がするので止めておきます
0760デフォルトの名無しさん
2015/10/27(火) 15:13:53.02ID:D1Dn3dXQ俺ならこう書くかな
0761デフォルトの名無しさん
2015/10/28(水) 02:17:21.27ID:Mi86mFov簡単に出来なきゃおかしい
f1の行 + ',' + f2の行
0762デフォルトの名無しさん
2015/10/28(水) 04:54:06.79ID:2vlbbPP00763デフォルトの名無しさん
2015/10/28(水) 17:58:54.09ID:9t2jSX/tスレ違い
0764デフォルトの名無しさん
2015/10/29(木) 10:53:51.63ID:/yhPxtsE状態で、ちゃんとコピーされるということを最近、知った。これ、なにげに
便利な機能だった。
あと、IPythonのMagic Functionsで、%save history 数字-数字の指定で
で、対話シェルで使ったコードが、pyファイル化してくれる機能も、最近知って
良かった。対話シェルで書いたものが保存できないのが嫌だなと、思っていた
のに、その難点が解消された。ファイル名はhistoryだけじゃなくて、なんでも
使えるというのを、今、知ったw
pythonのテキストを書く人は、この機能があることをもっと周知して欲しい。
0765デフォルトの名無しさん
2015/10/30(金) 11:42:12.01ID:tF82mK6t0766デフォルトの名無しさん
2015/10/30(金) 11:57:50.52ID:4xsCLJ1M読んだだけでは使い方・メリットがわからないことも多い
こうやって書いてくれることはありがたいものだよ
0767デフォルトの名無しさん
2015/10/30(金) 12:02:04.54ID:bGTI8z09ありがとうω
0768デフォルトの名無しさん
2015/10/30(金) 12:37:33.93ID:LbGz8JT9そこに出来たpyファイルの中身は、get_ipython().magic(u'paste')みたいに
なって、後に使えないような問題が生じていました。
そこで、その理由を調べてみると、
ttp://stackoverflow.com/questions/29968038/how-to-save-an-ipython-session-if-i-used-magic-paste-magic-save-doesnt-wor
という英文のサイトに、How to save an ipython session if i used magic %paste ? (magic %save doesn't work)
Of course, I would like the pasted code to be saved instead.Any ideas?
という同じトラブルの質問がなされていた。
0769デフォルトの名無しさん
2015/10/30(金) 12:38:03.64ID:LbGz8JT9It is only saving the commands you type at the prompt, and the command you entered was paste,
which the magic converts to get_ipython().magic(u'paste ').
While the first behavior may not be a bug (even if it's not particularly helpful),
this editing behavior definitely seems like one.
%pasteでIPythonの対話シェルにペーストしたものを%saveでpyファイル化したものは、
get_ipython().magic(u'paste')になるのがデフォルトの仕様です、ユーザーが
コマンドを実行した箇所の%paste=(u'paste ')の部分しかファイル化されない仕様になってます。と、
書いてある感じ。%pasteを使わないで、普通にコードをコピペ・ペースト出来たものは、%saveで普通に
pyファイル化されている感じでした。
0770デフォルトの名無しさん
2015/10/30(金) 19:08:49.11ID:GTAHUN3Jforで回して特定列のみ数値型にするしか思い当たらなかったのですが、nullの扱いでつまずいてます…
0771デフォルトの名無しさん
2015/10/30(金) 20:35:32.03ID:zUZa21Gd�@
#: :type: int
num = dic['num']
�A
num = dic['num']
""":type: int"""
�@って公式から消えてるから�Aの方がいい?
0772デフォルトの名無しさん
2015/10/30(金) 21:18:19.73ID:V5n94Kuvそのfor文とその中身を提示してみれば?
コードを見て改善点を出してくれる人が居るかもよ。
0773デフォルトの名無しさん
2015/10/30(金) 23:42:08.77ID:k5vGnOwJそういうのを参考にすれば、お好みの形式が見つかるかも
0774デフォルトの名無しさん
2015/10/31(土) 12:09:44.66ID:v1FiNzJT>forで回して特定列のみ数値型にするしか思い当たらなかったのですが、nullの扱いでつまずいてます…
値をクオートしたくないから数値に変換したい意味が分からない
どのような文字列が使われるのか説明を省くな
"a","b"
↓
a,"b"
"\"a\"","\"b\""
↓
"a","\"b\""
0775デフォルトの名無しさん
2015/10/31(土) 12:34:13.12ID:EqUq4cF0pythonはどうか知らんけど。
0776デフォルトの名無しさん
2015/10/31(土) 13:23:56.28ID:v1FiNzJT0777デフォルトの名無しさん
2015/10/31(土) 15:02:35.84ID:HfRtIykb0778デフォルトの名無しさん
2015/10/31(土) 22:00:10.15ID:UVsvdy88python 3.4.3 shellで
>>>class Prism:
def _init_(self,width,height,depth):
self.width=width
self.height=height
self.depth=depth
def content(self):
return self.width*self.height*self.depth(インデントはしてあります)
>>>p1=Prism(10,20,30)
TypeError:object() takes no parameters
となりました。みんなのpython第3刷です。
超初心者ですいません。回答お願いします。
0779デフォルトの名無しさん
2015/10/31(土) 22:12:53.41ID:2GL7tPRL>python超初心者です。
>return self.width*self.height*self.depth(インデントはしてあります)
超初心者のコードの評価なら、こっちに書いてからリンク貼ってくれたほうが確実です
http://pastebin.com/
0780デフォルトの名無しさん
2015/10/31(土) 22:17:35.38ID:/ed7opaBclass Prism():
カッコが足りないのでは?
0781デフォルトの名無しさん
2015/10/31(土) 22:37:57.22ID:UVsvdy88()つけてみましたが、だめでした…
すいません>>>778です http://pastebin.com/zEKVssb3
0782デフォルトの名無しさん
2015/10/31(土) 22:46:51.47ID:kMFTk0iK>>778
initの前後のアンダーバーはそれぞれ2つ必要。
_init_ ではなくて __init__
0783デフォルトの名無しさん
2015/10/31(土) 23:36:52.77ID:UVsvdy88質問書くのを忘れていました すいませんでした
0784デフォルトの名無しさん
2015/10/31(土) 23:50:10.10ID:9xmCXk3+select,delete,update,insertができればいいんです
sqlite3が使いたかったんですが
データベースファイルを暗号化するので、復号化するときにファイルに書き出さないといけないので使えません。
0785デフォルトの名無しさん
2015/11/01(日) 00:02:29.68ID:cJRHBIPWaes.py なんて腐るほどあるでしょ
0786デフォルトの名無しさん
2015/11/01(日) 00:14:32.34ID:ePhs0pxt0787デフォルトの名無しさん
2015/11/01(日) 01:00:13.13ID:8yFkftFrデータベースをSQL testフォーマットでダンプするためのイテレータを返します。
in-memory データベースの内容を、後でリストアするための保存する場合に便利です。
0788デフォルトの名無しさん
2015/11/01(日) 03:15:39.57ID:FP4yCWl/使えないとかじゃなくて、
まず、要件だけ列挙してみ?
0789デフォルトの名無しさん
2015/11/01(日) 04:42:00.75ID:8yFkftFrそれよりIronPythonを…
0790デフォルトの名無しさん
2015/11/01(日) 10:42:45.97ID:X/WSAqc0iterdumpいいですね
これでsqlを読み込ませたいんですが
下のコードを実行したらsqlite3.Warning: You can only execute one statement at a time.ってなりました
import sqlite3
c = sqlite3.connect(':memory:')
sql="""
BEGIN TRANSACTION;
CREATE TABLE tbl(id, title);
INSERT INTO "tbl" VALUES(1,'a');
INSERT INTO "tbl" VALUES(2,'b');
INSERT INTO "tbl" VALUES(3,'c');
COMMIT;
"""
c.execute(sql)
0791デフォルトの名無しさん
2015/11/01(日) 10:44:53.49ID:X/WSAqc0sqlをそのまま利用できる方法ありませんか?
0792デフォルトの名無しさん
2015/11/01(日) 11:45:19.76ID:8yFkftFr0793デフォルトの名無しさん
2015/11/01(日) 11:50:17.00ID:DnVZClszこれだから低脳老害池沼は困るンゴね
頭がしゃしゃしゃんのパイチョナーだからしゃーなしだけど
0794デフォルトの名無しさん
2015/11/01(日) 16:05:16.17ID:fsJJdRPt入力している株価は平日のみなのですが、チャート図には休日部分でも軸があり見辛いです。
平日のみを表示するにはどうしたらいいですか?
0795デフォルトの名無しさん
2015/11/01(日) 16:37:13.71ID:MdE+0m3/a = [0.2192670820092546 0.38922684417371245 9 9 'A' 0.39194839474978815 4 8 7 'B']
split(a)
['A' 'B']
[ 0.21926708 0.38922684 0.39194839 4. 7. 8. 9. ]
以下のように素朴に組んでみましたが、スマートで高速な方法はないでしょうか。
取りうる値を調べたいのでnp.uniqueをかけています。
def split(a):
_nom = []
_num = []
_for i in a:
__if isinstance(i, str):
___nom.append(i)
__else:
___num.append(i)
_return np.unique(nom), np.unique(num)
0796デフォルトの名無しさん
2015/11/01(日) 17:10:46.37ID:B8LcATC90797デフォルトの名無しさん
2015/11/01(日) 17:18:18.36ID:eXne5FsEそもそもどうやって作るんだ?
0798デフォルトの名無しさん
2015/11/01(日) 17:37:27.10ID:MdE+0m3/異なる型を入れるなと言われたらまあそれまでなのですが
作る分には最初にobject型を指定しておけば作れます
a = np.zeros(4, dtype=object)
a[0] = 1
a[1] = 1.1
a[2] = "A"
0799デフォルトの名無しさん
2015/11/01(日) 18:37:42.62ID:eXne5FsEforループあり、取りうる型の範囲の指定もありで
以下の感じしか思い浮かばなかった。
import numpy as np
def_type = [str, int, float]
a = np.zeros(6, dtype=object)
a[0] = 1
a[1] = 1.1
a[2] = "A"
a[3] = 2
a[4] = 2.2
a[5] = "B"
type__lists = {}
for v in a:
for t in def_type:
if isinstance(v, t):
type__lists.setdefault(t, []).append(v)
break
print type__lists
0800デフォルトの名無しさん
2015/11/01(日) 19:15:23.10ID:Unza4uUwarray([0.2192670820092546, 0.38922684417371245, 9, 9, 'A', 0.39194839474978815, 4, 8, 7, 'B'], dtype=object)
>>> idx = np.frompyfunc(type, 1, 1)(a) == str
>>> a[idx]
array(['A', 'B'], dtype=object)
>>> a[~idx]
array([0.2192670820092546, 0.38922684417371245, 9, 9, 0.39194839474978815, 4, 8, 7], dtype=object)
0801デフォルトの名無しさん
2015/11/01(日) 19:23:10.95ID:eXne5FsE俺氏numpy疎すぎ
0802デフォルトの名無しさん
2015/11/01(日) 20:32:39.16ID:mdIJAfuo試してみたが特に軸について指定しなかったら自動的に入力されてる日付だけで描画されるようだが
http://i.imgur.com/ppQAZQ5.png
0803デフォルトの名無しさん
2015/11/01(日) 21:28:45.75ID:MdE+0m3/ありがとうございました。
種々の型に分離できて便利そうです。
setdefaultを初めて知りました。覚えておきます。
>>800
圧倒的にスマートですね。
frompyfuncというのがあるのですね。np.vectrizeでもいけますね。
恐らく ==, [], ~, [] で走査が何回か走っているので実行速度面ではやや遅くなっています。
非常に勉強になりました。ありがとうございました。
0804デフォルトの名無しさん
2015/11/01(日) 21:42:10.43ID:eXne5FsE超基礎っぽくて重大なことを2つも知りました
どうもです
0805デフォルトの名無しさん
2015/11/01(日) 22:38:21.96ID:+Y9Yxcopそういう質問の前提をひっくり返すような返答しかできないなら黙ってたほうがいいかと
業務で使ってたらいくらでもこういう状況に巡り合うし
前にも書いたけど「タマネギ無しでカレー作りたい」っていう質問に「玉ねぎ入れろよ」は無能回答者の極み
0806デフォルトの名無しさん
2015/11/01(日) 23:07:44.84ID:5bGNIrSnImportError:No module named 'aaaa'というエラーがでます。
どうすればimportできるようになるのでしょうか?
環境変数にはC:\Python34のpassを追加してあります。
スクリプトを保存する場所がまちがっていたのでしょうか?
スクリプトの名前の打ち間違えはしてません。
0807デフォルトの名無しさん
2015/11/01(日) 23:32:55.24ID:5bGNIrSn0808デフォルトの名無しさん
2015/11/02(月) 10:40:16.36ID:u1Xcwdjg今回はやっちゃった後だから仕方ないが次から気を付けようね
0809デフォルトの名無しさん
2015/11/02(月) 11:08:32.73ID:NqGvXyH8うわあ
0810デフォルトの名無しさん
2015/11/02(月) 11:34:42.87ID:8MrUu8oz[
{"age":20,"tanaka"},
{"age":30, "satou"},
{"age":12, "suzuki},
],
[
{"age":50,"nakano"},
{"age":3, "miura"},
{"age":21, "nakamura",
]
]
これをageの値が小さい順で、もし値が同じなら名前順でソートして
ary = [
[
{"age":12, "suzuki},
{"age":20,"tanaka"},
{"age":30, "satou"},
],
[
{"age":3, "miura"},
{"age":21, "nakamura",
{"age":50,"nakano"},
]
]
となるようにするコードを教えてください
0811デフォルトの名無しさん
2015/11/02(月) 12:10:41.79ID:O/IYQSjt辞書には、キーと値のペアが必要だから、
{"age":12, "name":" Sato"}
とかにすることが必要。
for lst in ary:
____lst.sort(key=lambda person: person["age"], person["name"])
で並べ替えできるはず。
0812770
2015/11/02(月) 12:16:55.14ID:pKvKRT4w色々と情報足りていませんでした。すいません。
やりたいのは、
・csvファイルを読み込む
・文字コード、区切り文字、囲み文字、改行コードを変換
・別ファイルのcsvを出力
です。
csv.readerで読み込んだあと、csv.writerで区切り文字などを変換して出力しようとしたのですが、csv.readerの時点で文字列になってしまうため、変換前はクォートされていなかった項目も囲まれてしまいました。
そこで、特定項目のみ数値型に変換しようとしたのですが、データにnullがあったため、数値型に変換できないレコードがあって。。。
という流れです。
ちなみに、文字コードはcodecs.openで別処理で行います。
0813デフォルトの名無しさん
2015/11/02(月) 12:48:27.98ID:u1Xcwdjgどのバージョンがおすすめですか?
0814デフォルトの名無しさん
2015/11/02(月) 13:42:34.52ID:e8sSwe/F具体的には
print predict_dicの結果を
{0: 0.0, 1: 0.53333333333333333, 2: 0.46666666666666662}から
{0: 0.0, 1: 0.53, 2: 0.47}としたいです。
0815デフォルトの名無しさん
2015/11/02(月) 14:03:29.71ID:ysex+PePor
floatを継承して__repr__をオーバーライド
0816デフォルトの名無しさん
2015/11/02(月) 15:28:13.00ID:f3Dk5D9Qstr.format
0817デフォルトの名無しさん
2015/11/02(月) 15:58:48.25ID:cuo/lEqsdef one():
__return 1
./test/test_sample.py
sample.pyをtest/test_sample.pyでテストしたいんですが
import sampleってしてもロードできません
bottleとかflaskのテストファイルには__init__.pyを使ってないのにimportできてます
どういうふうにして__init__.pyを使わないでテストを実現しているのか教えてください
0818デフォルトの名無しさん
2015/11/02(月) 16:11:03.17ID:xjce4HXM具体的にどんな値がいつの時点でどのようにクォートされるって言ってるのかわかりません。
文字列だからクォートされるっていうのもよくわからないし。
それが再現する最低限のプログラムと最小のデータを作って >>>779 のサイトに上げてもらえますか?
0819uy ◆Qawu9.2l1E
2015/11/02(月) 18:46:55.92ID:SGzzuciz0820デフォルトの名無しさん
2015/11/02(月) 20:45:56.04ID:D1MIq598バージョンごとの互換性低いし、言語の可読性も悪いし
なんか良いとこなしの言語ですねえ
科学分野の人はなんでこんなゴミ言語ありがたがってるんでしょ?
バカなんですかね?
0821デフォルトの名無しさん
2015/11/02(月) 20:55:08.20ID:2rFXfmu60822デフォルトの名無しさん
2015/11/03(火) 01:37:42.37ID:GCahsqg0また、それらを使うにはPython2より3の方が良いんですか?
0823デフォルトの名無しさん
2015/11/03(火) 03:09:22.00ID:7F8rrZeRモジュールの検索パス
import sys
print(sys.path)
python a.py
のように、ファイル名だけを指定して、パスを付けない場合、
sys.pathの冒頭には、空文字列が表示され、
カレントディレクトリを表すが、
./test/test_sample.py
のように、パスを付けると、./test/ となるので、
./sample.py
のパスとは1階層異なる
0824デフォルトの名無しさん
2015/11/03(火) 03:50:27.00ID:7F8rrZeRSQLAlchemyのような、O/Rマッパーを使うのは?
他にも、SQLObject, Django付属のライブラリとか
NULL許容のInt型を指定すれば?
NULLは例えば、生徒が休んだときの、
テストの点数などで、平均値から除外する
CSV → O/Rマッパー → CSV
0825デフォルトの名無しさん
2015/11/03(火) 04:45:57.16ID:FYipsz6F0826デフォルトの名無しさん
2015/11/03(火) 05:02:40.71ID:7F8rrZeRsqliteで、CSVでもクォートで囲っていて、その中にカンマがあったり、
クォートの中で開業したりしていたら、インポートできないみたい
タブ文字はデータ中で使わないだろうし、
TSV(タブ区切り)がまぎれが無くて、よいかも
0827デフォルトの名無しさん
2015/11/03(火) 07:08:57.26ID:Y2+tMywR相手するなよ…
0828デフォルトの名無しさん
2015/11/03(火) 08:44:08.74ID:WA/pYWccその、bottleやflaskではどういうふうにして__init__.pyを使わないでテストを実現しているのかという質問には、
あなたがbottleやflaskの、あるいは他のモジュールの、どんな機能を利用してテストを書いて、どんなふうにファイルを配置して、どんなテストプログラムを書いて実行したのかが分からないと、答えようがありません。
というのも、あなたが何を指して、何を以って、bottleとかflaskのテストファイルには__init__.pyを使ってないのにimportできてると言っているのかが、あなたのその説明からは、さっぱりわからないからです。
あなたが前段で書いていることは、それを読んだ人が誰でも、同じことを自分でして試してみることができます。
でも後段のbottleやflaskのテストについては、そうじゃないでしょう?
その上で、さらに個別のライブラリに関する質問に回答するには、そのライブラリのソースやドキュメントを確認することも必要になることがある、ということも理解してくださいね。
ここで回答してくれる人がみんな、bottleやflaskに詳しいわけじゃないですからね。だから具体的に説明してくれないと、答えようがないんですよ。
0829デフォルトの名無しさん
2015/11/03(火) 08:45:27.58ID:9FtI+eCg俺がFF○○スレを荒らした時は
荒らし役、反応役、茶化し役、諫め役*2で5役を演じたぞ
0830デフォルトの名無しさん
2015/11/03(火) 09:25:18.42ID:SQf02+gYそれとも、醜い生き物だからPythonを使っているのか
0831デフォルトの名無しさん
2015/11/03(火) 10:39:32.94ID:pSFTI+Npなんとなくだけど君はあんまりテストを書いたことがない初心者に見える
0832デフォルトの名無しさん
2015/11/03(火) 13:12:09.08ID:WA/pYWcc当たりです。
テスト書いたことって一度だけしかありません。
あと実を言えばインポートの仕組みもまだよくわかってません。
単純に「上の階層にあるモジュールをインポートする方法」を答えればいいものを、それが分からないので、
でもなんか誰もレスつけなくてそのまま流れちゃいそうで可哀想だったから、無理矢理レスつけたら、>>828みたいになっちゃった。
0833デフォルトの名無しさん
2015/11/03(火) 13:30:27.73ID:SQf02+gY恥ずかしいな
これが平均的パイチョナーか
0834デフォルトの名無しさん
2015/11/03(火) 13:54:53.91ID:C0Kah9v/0835デフォルトの名無しさん
2015/11/03(火) 13:56:51.14ID:C0Kah9v/from .. import hoge
で出来ますよ
0836デフォルトの名無しさん
2015/11/03(火) 18:14:34.35ID:zqIPD6fbありがとうございます。
ん〜
SystemError: Parent module '' not loaded, cannot perform relative import
って表示されてインポートできません…
0837デフォルトの名無しさん
2015/11/03(火) 18:36:28.88ID:SQf02+gY0838デフォルトの名無しさん
2015/11/03(火) 23:13:09.88ID:7F8rrZeR1階層上には来ない
通常、実行ファイルと同じフォルダか、1階層下にある
.exe
.dll
.exe
./lib/dll
そもそも、実行ファイルを置いていないフォルダから、
実行できたらおかしいので、
ディレクトリを移動してから、実行すれば?
cd test
python test_sample.py
カレントディレクトリがtestになり、
そこでパス無しファイル名だけで実行する
0839812
2015/11/03(火) 23:29:30.37ID:8GVwcxa5http://pastebin.com/GZ3KavP5
カンマ区切りをタブ区切りに変更したいのですが、
"uuu",,"ううう"
こんなレコードがあると
"uuu" "" "ううう"
空文字部分がクオートされてしまうのです
0840デフォルトの名無しさん
2015/11/04(水) 00:23:17.38ID:UvMmqNQlquotingをNONNUMERICにしてるんだから文字列が常にクオートされるのは当たり前だろ
オプションの説明読んだのか?
0841デフォルトの名無しさん
2015/11/04(水) 01:16:46.33ID:J7mxnqPB最初にデータを作るときに、
TSVで出力すればよいのでは?
0842812
2015/11/04(水) 08:00:58.11ID:FPu3J/EA文字列はクオートしたいんです
したくない項目があるので、NONNUMERICにして無理矢理一部を数値型に変換しようとしました。
0844デフォルトの名無しさん
2015/11/04(水) 08:24:06.08ID:JNCv00QTあとはそのクッサイゴミレガシーシステムを捨てろ
0845デフォルトの名無しさん
2015/11/04(水) 09:00:19.72ID:UvMmqNQl自殺志願なら駅のホームで好きなだけやってろ
0846デフォルトの名無しさん
2015/11/04(水) 09:02:03.22ID:UvMmqNQlQUOTE_NONEにして自力でクオートすればいいと気づくだろ
0847デフォルトの名無しさん
2015/11/04(水) 09:02:19.29ID:p+tN+eCM0848812
2015/11/04(水) 09:47:11.09ID:lqTMDHCANONEにして手動でダブルクオートなどで囲むと
それ自体がエスケープ処理されてしまうのですが
設定で回避出来たりしますか?
0849デフォルトの名無しさん
2015/11/04(水) 10:10:16.47ID:qgDdiE2u0850デフォルトの名無しさん
2015/11/04(水) 10:11:10.96ID:JBTH8cVOwriterのオプションでquotechar="$"みたいに別の文字を指定してできないかな?
あとプログラムのコメントに「囲み文字変換」って書いてあるけど、これは元のcsvファイルで文字列は既にクォートされてて、それを出力時に別の文字でクォートし直してるってこと?
例えばシングルクォートされてるのをダブルクォートにし直してるとか。
0851デフォルトの名無しさん
2015/11/04(水) 10:28:20.86ID:wf5P/Bdz[[1 2 3][4 5 6]]のように変更するにはどうしたらいいですか?
0852デフォルトの名無しさん
2015/11/04(水) 10:51:40.90ID:9/gYWAhoできません。が答えだけど。
http://docs.python.jp/3.4/library/itertools.html
>>> import itertools
>>> list(itertools.chain(*L))
[1, 2, 3, 4, 5, 6]
これを欲しかったの?
>>> L1 = itertools.chain(*L)
>>> L1
<itertools.chain object at 0x7fec403ba518>
>>> list(L1)
[1, 2, 3, 4, 5, 6]
>>> L1
<itertools.chain object at 0x7fec403ba518>
>>> list(L1)
[]
itertools.chain()のobjectを受け取る方法では
2回目は空を返すから注意が必要
0853デフォルトの名無しさん
2015/11/04(水) 10:59:31.12ID:dx4sHopx0854デフォルトの名無しさん
2015/11/04(水) 12:54:11.15ID:HK3+KEXAvalues = [[1, 2], [3, 4]]
これを
[
{"a": 1, "b": 2},
{"a": 3, "b": 4},
]
ってするコードを教えてください
もしdictkeysが["a", "b", "c", "d"]だったら
valuesは[[1,2,3,4]]な感じになります
valuesの1次元がrow、2次元がcellだとお考えください
インデックスをハードコーディングしないで配列のサイズが変わっても対応できるコードを教えてください
0855デフォルトの名無しさん
2015/11/04(水) 14:47:48.67ID:9/gYWAhokeys = ["a", "b"]
values = [[1, 2], [3, 4]]
L = []
for v in values:
# v [1, 2]
d = dict()
for index, k in enumerate(keys):
d[k] = v[index]
L.append(d)
print("L =")
print(L)
L = []
for v in values:
d = dict(zip(keys, v))
L.append(d)
print("L =")
print(L)
0856デフォルトの名無しさん
2015/11/04(水) 15:07:52.15ID:GRQA3RSV0857デフォルトの名無しさん
2015/11/05(木) 05:24:41.14ID:eUJR5oE/ライブラリ・O/Rマッパーに変換させる
CSV, TSVでも、
文字列中に、" があれば、"" か \" とする
文字列中に改行があっても、行区切りとして扱わない。
文字列中に、カンマがあっても、列区切りとして扱わない
0858デフォルトの名無しさん
2015/11/05(木) 09:11:13.17ID:JJ7nSOtGその辺に転がってる駄文の再記述は必要か?
おう駄人間君
0859デフォルトの名無しさん
2015/11/05(木) 09:35:52.77ID:ei6H30jI0860デフォルトの名無しさん
2015/11/05(木) 13:51:24.38ID:6sxJWh0mそろそろ3.2を切ってくれないかな
0861デフォルトの名無しさん
2015/11/05(木) 17:06:48.32ID:+0qX7jvBhttps://www.phoronix.com/scan.php?page=news_item&amp;px=Ubuntu-16.04-Python-3-Hopes
0862デフォルトの名無しさん
2015/11/05(木) 21:56:07.96ID:2Sos2Ru/ただでさえ言語仕様が汚いんだから、多少なりともマシな3系にさっさと移れ
2系使ってる下級旧猿人類どもが心臓発作で死ぬようなバグ見つからないかな
0863デフォルトの名無しさん
2015/11/05(木) 22:17:25.93ID:ZoSoHeJ6いろいろ調べても出てこない…
他にフルスクリーンの表示ができるものがあったら教えてください
0864デフォルトの名無しさん
2015/11/05(木) 23:58:54.75ID:9I1HGcpx0865デフォルトの名無しさん
2015/11/06(金) 00:11:40.98ID:B1D86SPpカスみたいな言語仕様は直さない上に
レガシーにしがみつく老害の糞虫どもと慣れ合う蛆虫
こんなんだからいつまで経ってもシェアゼロコンマ代のドマイナー池沼言語なんだよ
開発はヴァカなのか?俺が足の指でコーディングしてやった方がまだマシなレベルだな
0866デフォルトの名無しさん
2015/11/06(金) 02:12:26.59ID:IQJ89P+Vいつもの病気の人ですね
0867デフォルトの名無しさん
2015/11/06(金) 04:07:07.10ID:H5bwMtpa会社の1996年ものHP-UX(当然Pythonなし)が、このたびRHELに更新された
これでPyhtonが使える!と勇んで中身を見たら、2.4だった…
0868デフォルトの名無しさん
2015/11/06(金) 09:17:29.97ID:lDi+bZZ1そんな仕事絶対受けないわ
無能と違って仕事選べるって素晴らしい
0869デフォルトの名無しさん
2015/11/06(金) 12:39:35.88ID:Q49rkf95これをlambdaで書いたコードを教えてください
def f():
__print(1)
__print(1)
0870デフォルトの名無しさん
2015/11/06(金) 13:37:10.69ID:qqK0gbSQattributes("-fullscreen", True)
0871デフォルトの名無しさん
2015/11/06(金) 17:04:18.62ID:F7EIvq3APyString_FromFormatで%fとかについ最近まで対応してなかったんだなー
0872デフォルトの名無しさん
2015/11/06(金) 17:05:20.79ID:F7EIvq3A2.6じゃないのか
0873デフォルトの名無しさん
2015/11/06(金) 17:06:57.33ID:F7EIvq3Alambda: [print(1), print(1)]
0874デフォルトの名無しさん
2015/11/06(金) 19:45:50.48ID:H8/mSBf40875デフォルトの名無しさん
2015/11/06(金) 20:43:53.17ID:bL8oHt+CFedoraはもう3に変わってるんだけどね。
Debianは次の次ぐらいいけるかな?
0876デフォルトの名無しさん
2015/11/06(金) 21:07:59.85ID:H8/mSBf4/usr/bin/pythonの保守はディストリビューションのメンテナの仕事だから
0877デフォルトの名無しさん
2015/11/06(金) 22:12:57.42ID:lDi+bZZ1yumがどういう状況にあり、なぜpython3への移行を妨げているかは
dnfの開発経緯を読めば分かる
0878デフォルトの名無しさん
2015/11/06(金) 22:21:08.44ID:qoQoDq6D流石に仕様がクソすぎやろ…
0879デフォルトの名無しさん
2015/11/06(金) 22:21:32.36ID:lDi+bZZ1RHEL8か9では移行するんじゃないですかね
それでも低能君が使うPythonは2だけどね
0880デフォルトの名無しさん
2015/11/06(金) 22:22:29.75ID:lDi+bZZ10881デフォルトの名無しさん
2015/11/06(金) 22:34:39.32ID:H8/mSBf4PYTHONPATHに含まれてないとimport対象にならないことを言ってると思う。
某下品な言語なんかだと、どこからでもインポートできるせいで、
お漏らしの原因になってるでしょ。
汚物好きのマニアックな言語ユーザーが、
なぜPythonを使おうとしているのか、全く分からないけど。
0882デフォルトの名無しさん
2015/11/06(金) 22:55:38.29ID:A8OcAOd1セキュリティが滅茶苦茶になる
chroot, DocumentRootなども効かなくなる
そんな危険なアプリは、商用では使えない
0883デフォルトの名無しさん
2015/11/06(金) 22:55:58.24ID:3ce6Taxjそしてsetup.pyを書いてパッケージ化しpipで導入する
システム環境へのインストールを避けたいならvirtualenvなどを使う
0884デフォルトの名無しさん
2015/11/07(土) 04:21:01.63ID:J5i3UOGI> dnfの開発経緯を読めば分かる
探すの面倒だから説明して。
0885デフォルトの名無しさん
2015/11/07(土) 06:17:43.27ID:zFF1fNmFクォートもはずせるようだし、
こういうツールで、CSVを変換すれば?
自分で変換するより、安全かも
csvkit 0.9.1
ttp://csvkit.readthedocs.org/en/0.9.1/
日本人のサイトもあるよ
csvkit を使ってみる
ttp://kshigeru.blogspot.jp/2012/06/csvkit.html
他には、SQLAlchemyのような、O/Rマッパーを使うとか、
SQLObject, Django付属のライブラリとか
0886885
2015/11/07(土) 11:43:31.50ID:zFF1fNmFcsvkitの使い方まとめ
ttp://qiita.com/gingi99/items/d5add3aa062bf4f10cad
csvclean で、正しいファイル形式かどうか、チェックする
csvformat -T a.csv で、タブ区切りに変換できる
0887デフォルトの名無しさん
2015/11/07(土) 13:56:55.26ID:4yddep+9data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}]
個数が固定の場合は
data[0] & data[1] & data[2]
とすればできるのですが
空のsetだと積集合できないのでいい方法ないでしょうか?
0888887
2015/11/07(土) 14:11:29.67ID:4yddep+9すみませんできました。
data = [{5, 6, 7, 9, 10, 11, 13, 14, 15}, {0, 2, 3, 8, 10, 11, 12, 14, 15}, {0, 1, 3, 4, 5, 7, 12, 13, 15}]
if len(data) > 2:
ans = data[0]
for i in data[1:]:
ans &= i
else:
ans = data[0]
0889デフォルトの名無しさん
2015/11/07(土) 14:15:11.47ID:4yddep+9の間違えでした
0890デフォルトの名無しさん
2015/11/07(土) 14:29:49.04ID:ys3xAbOvimport functools
import operator
it = iter(data)
ans = functools.reduce(operator.and_, it, next(it, set()))
標準ライブラリを使わない場合は
ans, *tail = data or [set()]
for s in tail:
ans &= s
0891デフォルトの名無しさん
2015/11/07(土) 16:06:19.43ID:vxghkHwRって誰かがつくったアプリを組み合わせて使うやり方みたいなもの?
初心者です
0892デフォルトの名無しさん
2015/11/07(土) 16:08:44.82ID:vxghkHwRpythonをうまく使うって
誰かがつくったアプリをうまく組み合わせて使うってこと?
初心者です
0893デフォルトの名無しさん
2015/11/07(土) 16:10:11.64ID:E6FLvPzhと手を出すも糞すぎる言語仕様に苦しみのたうち回り
糞尿まみれの汚物パイチョナーの吐瀉物に沈むもののことです
パイチョン狂信者はパイソンこそが世界唯一の最強言語だと信じて疑わない基地害しかいないので
彼らの言葉に耳を傾けるのはやめましょう
0894887
2015/11/07(土) 16:32:21.23ID:4yddep+9上の方はよくわからないので勉強します。
functoolsのreduceのサンプルを参考に
http://docs.python.jp/3/library/functools.html
reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) は ((((1+2)+3)+4)+5)
functools.reduce(lambda x, y: x & y, data)
これでも同様の結果ができました。
ありがとうございます。
0895デフォルトの名無しさん
2015/11/07(土) 16:33:27.12ID:vxghkHwR0896デフォルトの名無しさん
2015/11/07(土) 17:56:54.73ID:aWGmA87m使い勝手とかじゃない?
0897uy ◆Qawu9.2l1E
2015/11/07(土) 18:32:03.46ID:Rb6TxNfK「うん、鉄帽団栗、大蝦蟇、猩猩、大井守の尾肉、鬼鮟鱇の肝臓で合成できる
それよりお前のライブラリとフレームワークもスゲーな」
「あーこれか、これは碩老樹瞑想窟で手に入るぞ、馬鳥免許取ったら馬鳥馬留から馬鳥乗ってスグいけるよ
刻苦勉励と天佑神助の効果アップだからマジオススメ」
0898デフォルトの名無しさん
2015/11/07(土) 18:36:03.88ID:vxghkHwR人間の言語仕様とか使い勝手を
理解しやすい語彙で
他の言語よりも簡単に改善できる言語だと
よいライブラリが増える可能性が増える、
ということになるかも。
0899デフォルトの名無しさん
2015/11/07(土) 18:36:56.26ID:vxghkHwR人間の問題かも。
言語仕様とか使い勝手を
人間が理解しやすい語彙で
他の言語よりも簡単に改善できる言語だと
よいライブラリが増える可能性が増える、
ということになるかも。
0900デフォルトの名無しさん
2015/11/07(土) 18:40:14.59ID:LOAJFMP+人間の問題かも。
言語仕様とか鬼鮟鱇を
人間が理解しやすい語彙で
他の碩老樹瞑想窟よりも簡単に天佑神助できる言語だと
よいライブラリが増える可能性が増える、
刻苦勉励ということになるかも。
0901uy ◆Qawu9.2l1E
2015/11/07(土) 18:40:46.36ID:oj5NSdiM0902デフォルトの名無しさん
2015/11/07(土) 18:49:25.03ID:vxghkHwR初心者からしたら役に立つ
主要なプログラミング技法
だとわかった
0903uy ◆Qawu9.2l1E
2015/11/07(土) 20:56:20.74ID:SyMt01ZbSE音声の最初の1語だけをループさせるのも
ゲーム製作において初歩的な演出の技術
覚えておいて損はない
主にこれが敵を連続キルした時などに
最初の1語がキル数に応じて連続したりするので
特にゲーム関係スレでは煽りに使われる事が多い
このスレでは今
「パパパパパイソニスタwwwwwwwww」という書き込みがありましたね
これは
1パ2パ3パ4パ
5パイソニスタ kill streakという意味なのです
0904デフォルトの名無しさん
2015/11/07(土) 22:26:03.03ID:7dMVr59b863です
できました!
ありがとうございます!
0905デフォルトの名無しさん
2015/11/07(土) 23:25:46.96ID:qRUcE/WB0906デフォルトの名無しさん
2015/11/08(日) 16:11:22.60ID:bzkojXZx値が特定の条件を満たす行を抽出し、その行のインデックスを取得したいのですが
どのようにすればいいでしょうか?
以下の例であれば101と102を取得したいです。
iris[iris['Species'] == 'virginica']
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 101 6.3 3.3 6.0 2.5 virginica
# 102 5.8 2.7 5.1 1.9 virginica
0907デフォルトの名無しさん
2015/11/08(日) 17:23:36.71ID:1OA1jslNぱよ?ぱよぉ〜〜
0908デフォルトの名無しさん
2015/11/08(日) 17:36:35.67ID:gCsNpOay初心者ですが力になりたいと思いますのでまず動くコードで貰えませんか?
0909デフォルトの名無しさん
2015/11/08(日) 17:56:33.43ID:QZOkMdD8iris.index[iris['Species'] == 'virginica']
0910デフォルトの名無しさん
2015/11/08(日) 18:57:43.50ID:SrvFrSJP0911デフォルトの名無しさん
2015/11/08(日) 19:10:42.17ID:ia91nugD0912デフォルトの名無しさん
2015/11/09(月) 07:49:41.66ID:+0craglA0913デフォルトの名無しさん
2015/11/09(月) 07:54:50.62ID:eW5XCVAC0914デフォルトの名無しさん
2015/11/09(月) 10:33:26.93ID:uso1536/覚えたことを一つづつwikiに書いていけばいいじゃない
俺はそうやって覚えていったよ
0915デフォルトの名無しさん
2015/11/09(月) 11:07:35.20ID:G9VzJ3Ey有るか無いかを聞いてんだ
質問には適切に答えろ
Pythonやってると基本的な日本語能力も失われていくのか?
0916デフォルトの名無しさん
2015/11/09(月) 11:19:25.44ID:3CasijgB0917デフォルトの名無しさん
2015/11/09(月) 12:28:06.78ID:eW5XCVAC0918デフォルトの名無しさん
2015/11/09(月) 12:57:42.65ID:xaDjTNLo答えてるだろ、ボケ ⇒ >>913
基本的な日本語能力すらないのかよ w
0919デフォルトの名無しさん
2015/11/09(月) 13:23:35.15ID:eW5XCVAC殺すぞ
0920デフォルトの名無しさん
2015/11/09(月) 13:52:30.13ID:wYunBSWO0921デフォルトの名無しさん
2015/11/09(月) 19:58:50.95ID:IWnxWu8E糞みたいな言語仕様のせいで
心まで糞色の下級国民になる
このスレを読んでるとよく分かる
0922デフォルトの名無しさん
2015/11/09(月) 20:47:09.91ID:XHl8ePvc0923デフォルトの名無しさん
2015/11/09(月) 23:51:55.64ID:2w0H6sf5Rubyは書籍もサイトもあるけど
だんだん使用者増えてるし今後出てくるでしょ
0924デフォルトの名無しさん
2015/11/10(火) 06:02:51.47ID:7NcmQmNc他言語と比較してなんでpythonの入門者はこんなに質が悪いの?
0925デフォルトの名無しさん
2015/11/10(火) 06:29:10.56ID:vvTaEHDBむしろRubyが酷かった
機械学習絡みで入ってくる人が多いんじゃないかな
Rubyの時はRails全盛期だった
0926デフォルトの名無しさん
2015/11/10(火) 07:53:03.36ID:qtRGqLdH0927デフォルトの名無しさん
2015/11/10(火) 11:53:12.11ID:YT7kbsA+Pythonはそれ以上
0928デフォルトの名無しさん
2015/11/10(火) 12:08:49.93ID:mVStRMDa雰囲気なんて感じ取れないから大丈夫だと思うけどなあ
0929デフォルトの名無しさん
2015/11/10(火) 12:43:17.14ID:DjP7y1Ap2chで世界が判った気になり始めたら、色んな意味でヤバい。
0930デフォルトの名無しさん
2015/11/10(火) 13:06:07.16ID:mVStRMDa0931デフォルトの名無しさん
2015/11/10(火) 17:55:00.04ID:76sPbOPF以下の文章であれば埼玉を指定することで大阪、奈良を削除したいです。
東京
神奈川
埼玉
大阪
奈良
0932デフォルトの名無しさん
2015/11/10(火) 18:19:57.63ID:NawThMKT方法1
>>> n = s.index('埼玉') + len('埼玉')
>>> s[:n]
'東京\n神奈川\n埼玉'
方法2
>>> ''.join(s.partition('埼玉')[:2])
'東京\n神奈川\n埼玉'
0933デフォルトの名無しさん
2015/11/10(火) 18:57:09.26ID:76sPbOPF方法1を採用し、思い通りのことができました。
もう一つ質問なのですが文章中に埼玉がない場合の例外処理はどのようにしたらいいでしょうか?
0934デフォルトの名無しさん
2015/11/10(火) 19:34:44.64ID:Qd1cQuvU例外は自分で決めなよ
0935デフォルトの名無しさん
2015/11/10(火) 19:58:18.89ID:qupILkXi0936デフォルトの名無しさん
2015/11/10(火) 20:10:36.11ID:mVStRMDaってことではなく?
0937デフォルトの名無しさん
2015/11/10(火) 21:15:15.20ID:YT7kbsA+(forの下)if e == '埼玉': break
(forの行頭)else:
raise Exception('hage')
0938デフォルトの名無しさん
2015/11/11(水) 01:54:54.80ID:YoWmnP0i俺が初心者の頃ならまず文章中に埼玉があるか調べて、あるなら処理続行する
調べ方はfindとかいくらでもある
0939デフォルトの名無しさん
2015/11/11(水) 10:38:24.94ID:xDrXt5W4for i in xrange(100000):などではi=1〜99999となってしまい困っています
0940デフォルトの名無しさん
2015/11/11(水) 11:50:15.61ID:1POahPwI数値は無理
print map(lambda x:('%05d' % x), xrange(10000))
print(list(map(lambda x:'{:05}'.format(x), range(10000))))
0941デフォルトの名無しさん
2015/11/11(水) 20:13:18.99ID:2zY5wKX6の{}ってどういう意味?
辞書でもないよね
functionのreturnで{"a", "b"}型で返すことを要求されてるんだけどdict()とかしてもエラーになるし
普通にa = {"a", "b"}とかしてもエラーになるし
どうすればいい?
0942デフォルトの名無しさん
2015/11/11(水) 20:37:17.00ID:ZcY7VKQP集合型じゃないかな
http://docs.python.jp/3.4/library/stdtypes.html#set-types-set-frozenset
0943デフォルトの名無しさん
2015/11/11(水) 20:42:16.94ID:ZcY7VKQPこっちのほうがよかったかな
http://docs.python.jp/3.4/tutorial/datastructures.html#sets
0944デフォルトの名無しさん
2015/11/11(水) 20:45:27.47ID:2zY5wKX6今から読んでみる
ありがとう
0945デフォルトの名無しさん
2015/11/11(水) 20:48:00.37ID:2zY5wKX6ごめん
これってPython3のみ?
自分のPython2.6でやったら
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
はSyntaxError: invalid syntaxが出るんだけど?
0946デフォルトの名無しさん
2015/11/11(水) 20:55:05.50ID:2zY5wKX6http://docs.python.jp/2/tutorial/datastructures.html#tut-sets
教えてくれてありがとう
0947デフォルトの名無しさん
2015/11/11(水) 20:58:01.18ID:ZcY7VKQP2.7なら使えるようだよ
http://docs.python.jp/2.7/library/stdtypes.html#set-set-frozenset
0948デフォルトの名無しさん
2015/11/11(水) 20:58:34.78ID:o24YVROx2.6ってことはCentOS6か
0949デフォルトの名無しさん
2015/11/11(水) 22:35:41.90ID:fNWMP0gm0950デフォルトの名無しさん
2015/11/12(木) 02:12:32.41ID:Los5n9AY0951デフォルトの名無しさん
2015/11/12(木) 09:32:46.11ID:temb17Y90952デフォルトの名無しさん
2015/11/12(木) 11:56:24.53ID:RtfqPlY60953デフォルトの名無しさん
2015/11/12(木) 13:32:05.58ID:VAIEdV8u0954デフォルトの名無しさん
2015/11/12(木) 20:42:34.40ID:pgvdnRZv0955デフォルトの名無しさん
2015/11/12(木) 20:57:07.42ID:VAIEdV8u土方の下っ端の環境は知らないけど
0956デフォルトの名無しさん
2015/11/12(木) 22:24:53.24ID:ek1zC/dAそれ以外なら2.7使わないと無駄にトラブルに遭遇する2.7オンリー
0957デフォルトの名無しさん
2015/11/12(木) 22:26:24.62ID:pgvdnRZva = {}
a is None # False
a is {} # False
a == None # False
a == {} # True
一番下でもいいのかもだけど、これでいいのかなと思って...
0958デフォルトの名無しさん
2015/11/12(木) 22:36:13.57ID:xD3c0Nin0959デフォルトの名無しさん
2015/11/12(木) 23:02:35.96ID:U/3XcmWuif a:
0960デフォルトの名無しさん
2015/11/12(木) 23:05:46.77ID:U/3XcmWu0961デフォルトの名無しさん
2015/11/12(木) 23:07:11.64ID:LaziVsQ5a={}
if a:
____print("empty")
else:
____print("not empty")
空の辞書やリストは、真偽評価のコンテクストでは False として扱われるよ。
len(a)とするのは冗長だけど、可読性は良くなるかもね。
0962デフォルトの名無しさん
2015/11/12(木) 23:11:35.25ID:LaziVsQ5ごめん。プリント文の中身を間違えた。
if a:
__print("not empty")
else:
__print("empty")
とかきたかった。
混乱させたら失礼。
0963957
2015/11/12(木) 23:14:23.05ID:pgvdnRZv0964デフォルトの名無しさん
2015/11/13(金) 08:06:42.96ID:4OOsT4lg0965デフォルトの名無しさん
2015/11/13(金) 10:14:03.39ID:2p+ArX3V0966デフォルトの名無しさん
2015/11/13(金) 10:44:57.02ID:Y7QLtqllprint("{}" == str(a))
a = {"a":1}
print("{}" == str(a))
0967デフォルトの名無しさん
2015/11/13(金) 11:54:49.21ID:SOgWzJHNele1=("key", "apple")
ele2=("key", "orange")
ele3=("words", "hat")
などがあった際に
dict={"key":("apple", "orange", "tiger"), "words":("hat", "hot")}
のようにdictにkeyの値によって動的に加えていくにはどうすればいいですか?
0968デフォルトの名無しさん
2015/11/13(金) 11:57:54.20ID:SOgWzJHNdict={"key":"apple", "key":"orange"}
などはそんな難しくないですが
0969デフォルトの名無しさん
2015/11/13(金) 12:27:22.95ID:umsjSeCwimport collections
es = [('key', 'apple'), ('key', 'orange'), ('words', 'hat')]
dic = collections.defaultdict(list)
for key, value in es:
dic[key].append(value)
0970デフォルトの名無しさん
2015/11/13(金) 13:01:14.70ID:v5Sm1rWOPEP8 の公式スタイルガイドでも、
If seq:
が推奨されていて、
If len(seq):
は避けるべきとされているよ。
一度 PEP8 に目を通すといいんじゃないかな。
pep8というパッケージもあって、スタイルガイドにそっているか、チェックしてくれるよ。
0971デフォルトの名無しさん
2015/11/13(金) 13:08:48.25ID:SOgWzJHN助かりました
0972デフォルトの名無しさん
2015/11/14(土) 01:21:00.91ID:yJ0THCOhd:\Python27\python.exe test.py %1
このバッチファイルに?.txtというファイルをドロップすると
コマンドプロンプトには
>d:\Python27\python.exe test.py d:\?.txt
という風にちゃんと?.txtと表示されますが
バッチファイルを
d:\Python27\python.exe test.py ?.txt
と書き換えて保存しようとするとunicode文字列があると表示されて
unicodeで保存するかの選択肢が出ます
保存して実行すると
>d:\Python27\python.exe test.py d:\ 笑、.txt
こんな感じで文字化けします
コマンドプロンプトのコードページはshift-jisなのに
unicodeである?が表示されるのはなぜでしょうか?
最終的にはバッチで取得したファイルをpythonで取得して
ファイルの存在チェックをしたいんですが
print sys.argv[1]
とすると?.txtと表示されます
文字コードで躓いてしまって混乱してます
どなたかお助けください
vs2015+python2.7.3
0973デフォルトの名無しさん
2015/11/14(土) 01:25:36.97ID:yJ0THCOh(ハート)の部分はハートの機種依存文字です
cd /d %~dp0
d:\Python27\python.exe test.py %1
このバッチファイルに(ハート).txtというファイルをドロップすると
コマンドプロンプトには
>d:\Python27\python.exe test.py d:\(ハート).txt
という風に(ハート).txtと表示されますが
バッチファイルを
d:\Python27\python.exe test.py (ハート).txt
と書き換えて保存しようとするとunicode文字列があると表示されて
unicodeで保存するかの選択肢が出ます
保存して実行すると
>d:\Python27\python.exe test.py d:\ 笑、.txt
こんな感じで文字化けします
コマンドプロンプトのコードページはshift-jisなのに
unicodeである?が表示されるのはなぜでしょうか?
最終的にはバッチで取得したファイルをpythonで取得して
ファイルの存在チェックをしたいんですが
print sys.argv[1]
とすると?.txtとなりうまく表示されません
文字コードで躓いてしまって混乱してます
どなたかお助けください
vs2015+python2.7.3
0974デフォルトの名無しさん
2015/11/14(土) 06:23:05.33ID:3qZz0Yz4Shift_JISの範囲に無いUnicode文字を出力するときに文字化け("?"に変換)する
コマンドプロンプト上で動くバッチファイルやソフトはコードページの影響を受ける
以下投げやりなツッコミ
ファイル名はASCII文字を使え
コマンドプロンプトではShift_JISで保存したファイルを使え
Unicode文字(例えば♥)を使いたいならコマンドプロンプトはやめとけ
0975デフォルトの名無しさん
2015/11/14(土) 06:49:27.34ID:OtdRrL2O日本語ファイル名すら滅多に使わないのに…
0976デフォルトの名無しさん
2015/11/14(土) 08:08:55.11ID:Hu5fAc9a? は、たぶんASCII内にある文字かも?
仕事ではファイル名は、半角英数字と、_ のみを使う
半角空白・ハイフンなども使っちゃダメ!
0977デフォルトの名無しさん
2015/11/14(土) 12:10:28.77ID:kYx4kaK6>>> a = {'a': a}
>>> a = {'a': a}
>>> a = {'a': a}
>>> a = {'a': a}
>>> a = {'a': a}
>>> a
{'a': {'a': {'a': {'a': {'a': {}}}}}}
エラーにならんのかこれ
0978デフォルトの名無しさん
2015/11/14(土) 12:21:32.79ID:eCyNFUOR>>> L = []
>>> L = [L]
>>> L = [L]
>>> L = [L]
>>> L = [L]
>>> L = [L]
>>> L
[[[[[[]]]]]]
0979デフォルトの名無しさん
2015/11/14(土) 13:57:20.69ID:POuVuGhz当たり前だろ
a = {}
a = {'a': {}}
a = {'a': {'a': {}}}
0980973
2015/11/14(土) 14:51:46.82ID:yJ0THCOhこれから作るファイルなど、変更可能ならもちろん機種依存文字は使いませんが
既存のファイル名を変更せずにwindows上で使えるファイル名なら
どれでも読めるようにしたいんですが、不可能ですか?
コマンドプロンプトを使うなとのことですが
pythonにファイル名を引数で渡す場合、他に方法があるのでしょうか?
0981デフォルトの名無しさん
2015/11/14(土) 14:55:22.21ID:kYx4kaK60982デフォルトの名無しさん
2015/11/14(土) 15:45:10.68ID:l5Uj6Um+Shift_JISのWindowsで範囲外の文字を使うのが間違い
0983デフォルトの名無しさん
2015/11/14(土) 16:08:44.41ID:eCyNFUOR> 既存のファイル名を変更せずに
ここを諦めたら?変更しよう
> pythonにファイル名を引数で渡す場合、他に方法があるのでしょうか?
a.txt の各行にファイル名を書いておいて、
pythonから一行ずつ読めばいいじゃない。
with open("a.txt") as f:
for line in f:
filename = line.strip()
f2 = open(filename)
print(f2.read())
f2.close()
0984デフォルトの名無しさん
2015/11/14(土) 16:13:21.90ID:yJ0THCOhreload(sys)
sys.setdefaultencoding('cp932')
enc = 'shift-jis'
sys.stdin = codecs.getreader(enc)(sys.stdin)
sys.stdout = codecs.getwriter(enc)(sys.stdout)
sys.stderr = codecs.getwriter(enc)(sys.stdout)
if __name__ == "__main__":
str=sys.argv[1]
if(os.path.exists(str)):
print "true"
else:
print "false"
print type(str)
print str
このようにしても、printした文字列は?.txtになって文字化けしますし
ファイルの存在もfalseになります
どうすればいいでしょうか?
>>982
コードページがshift-jisのコマンドプロンプトでも
バッチファイルでの出力に対しては正しくハートが表示されていますが
これはなぜですか?
0985デフォルトの名無しさん
2015/11/14(土) 16:25:17.15ID:yJ0THCOh変更は無理です。商品名なので。
テキストファイル経由するにしても
結局別の言語なりでD&Dしたファイルパスをテキストに
出力する必要があるわけで…
IPythonならいけるのかなぁ…
概要見た限りpythonは記述が簡単でいいなって思ったんだけど
実践すると、まさか、こんなところで躓くとは
今後Webページの情報も取得したいと思ってたけど
また文字コードに悩まされそうだし、やめとこうかな
0986デフォルトの名無しさん
2015/11/14(土) 16:35:01.68ID:eCyNFUOR業務で使うんだったら金払って仕事として誰かに依頼するんだね
これで表示されるファイル名を足掛かりに頑張るんだね
import fnmatch
import os
for filename in os.listdir('.'):
if fnmatch.fnmatch(filename, '*'):
print filename
駄目だったら諦めろ
0987デフォルトの名無しさん
2015/11/14(土) 16:36:20.91ID:EX5Vv4GfPython2はマルチバイト文字セットなんでsys.argvからはエンコード失敗後しか取れない
Unicode文字セット対応のPython3を使うか、2ならctypesからGetCommandLineWとCommandLineToArgvWを使うとかかな
0988デフォルトの名無しさん
2015/11/14(土) 18:10:26.12ID:yJ0THCOhそれも文字化けしてます
意図的には文字化け以外をマッチで取得して…的なことですか?
正確性に欠けると思うんだけど
この文字列問題さえなければなぁ、確かに色々手軽なのに
f = codecs.open('pyfilename.txt', 'w',enc2) # 書き込みモードで開く
for filename in os.listdir('.'):
if fnmatch.fnmatch(filename, "*"):
f.write(filename) # 引数の文字列をファイルに書き込む
f.close()
これもUnicodeDecodeError
なんで?内部でUnicode使っているんじゃないの?
もうね、訳わかりません。文字列使うとどれもこんな感じ
>>987
コードページに関係なく臨機応変にunicode文字も出力してる感じなんですかね
結局sys.argvでも上記のでもやっぱり文字化け
あらゆるデコード、エンコード試したけど、ハート文字だけ文字化け
もうpythonで取得している時点で文字コードが壊れてるとしか思えんわ
半日ずっとこんなつまらんところで足踏みしててイライラするわ
とりあえず、3かIPython試してみる
2はもう2度と使わない
0989デフォルトの名無しさん
2015/11/14(土) 18:24:13.20ID:3qZz0Yz4PYTHONIOENCODING環境変数にUnicodeを指定して出力はファイルへリダイレクトする
argvがどうなるかは分からん
set PYTHONIOENCODING="utf-16"
c\:python34\python.exe -c "print('\u2665')" >out.txt
notepad out.txt
0990デフォルトの名無しさん
2015/11/14(土) 18:24:19.89ID:OtdRrL2O0991デフォルトの名無しさん
2015/11/14(土) 19:05:46.61ID:yJ0THCOhコマンドライン引数の問題もあっさりクリア
これは楽ちん、最初からこっちにしとけばよかったわ
0992デフォルトの名無しさん
2015/11/14(土) 20:12:05.26ID:eCyNFUOR0993デフォルトの名無しさん
2015/11/14(土) 20:33:56.54ID:yJ0THCOhzip解凍>画像処理>zip圧縮
しかも3.5-64bitにしてPillowで画像処理やったら
2と同じコードなのに4倍も速くなった!
4k画像なのに0.1秒もかからない
なんでこんなに違うんだ?
未だに2を勧める意味がわからんわ
ほんと騙された
C#と比べたらかなり簡潔でわかりやすいコーディングができるなあこれ
DB操作はEFが圧倒的に楽だからC#でやるとして
あとはスクレイピングツールとファイル仕分けツールだなー
0994デフォルトの名無しさん
2015/11/14(土) 20:34:51.64ID:Jkl9KIFo0995デフォルトの名無しさん
2015/11/14(土) 22:25:54.61ID:duU50ZfM解決したようでよかった
0996デフォルトの名無しさん
2015/11/14(土) 22:55:21.87ID:0kN6s8T80997デフォルトの名無しさん
2015/11/14(土) 23:18:05.48ID:duU50ZfMおまえはもっかいスレタイ読んどけよw
0998デフォルトの名無しさん
2015/11/14(土) 23:22:13.37ID:hqNg22Fndef foo(*args):
for i in args:
print(i)
結果:[1,2,3,4,5]
これを
結果:1
2
3
4
5
にするにはどうすればいいですか?
0999デフォルトの名無しさん
2015/11/14(土) 23:34:08.80ID:/ADqMz2ddef f(*args)
を
def f(args)
にすればいい。
1000デフォルトの名無しさん
2015/11/15(日) 00:45:09.16ID:D/e506/x10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。