X



Pythonのお勉強 Part54 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0002テンプレ
垢版 |
2017/09/01(金) 16:47:55.01ID:igIE9hK/
まとめWiki
http://python.rdy.jp/
関連スレ
ttp://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/
0003テンプレ
垢版 |
2017/09/01(金) 16:49:33.54ID:igIE9hK/
PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む
00041からのお詫び
垢版 |
2017/09/01(金) 18:26:56.44ID:igIE9hK/
※NGワードの対象がわからずテンプレが分散してしまった事をお詫びします。本来なら以下の通りでした。

Pythonオフィシャルサイト
http://www.python.org/

まとめWiki
http://python.rdy.jp/
関連スレ
http://find.2ch.net/?BBS=ALL&;TYPE=TITLE&STR=python
( http://find.2ch.net/search?q=python )
日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
http://www.python.jp/

日本語の扱いで戸惑ったらこちらをどうぞ(バッドノウハウ集で笑える)
ttp://atomic.jpn.ph/prog/etc/encode.html
ttp://d.hatena.ne.jp/kakurasan/20100330/p1

PythonのUnicodeEncodeErrorを知る
ttp://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html
よくまとまってた。あとで読む

■前スレ
Pythonのお勉強 Part53
http://mevius.2ch.net/test/read.cgi/tech/1494683284/
0008デフォルトの名無しさん
垢版 |
2017/09/02(土) 14:48:58.40ID:u3n2hLEm
ハロワのブラック企業にはpythonは使いこなせないだろうなwantedlyで探してみたら
0011デフォルトの名無しさん
垢版 |
2017/09/02(土) 23:21:47.79ID:rB4qKA16
ハロワでPHPもJavaも一件もヒットしないなんでだ
0013デフォルトの名無しさん
垢版 |
2017/09/04(月) 20:39:47.81ID:6BPzpkU/
落ちてないですよね?
0016デフォルトの名無しさん
垢版 |
2017/09/05(火) 11:01:56.60ID:HlhBpTL6
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

Pythonのスクリプトでシェバン行って無意味ですか?
ネット上のサンプル等でも書かれてない場合が多い気がするんですが
自分的にはこれはPython3だよ!ってコメント的な意味でも付けて置いた方が
50年後とかに見返した時に間違ってpython4や5で実行しなくて済むと思うんですが
0017デフォルトの名無しさん
垢版 |
2017/09/05(火) 11:56:10.38ID:R7K5cu+n
シェバンの意味を知ってるなら自ずと分かると思うけどなぁ
ただのコメントではないよ
0018デフォルトの名無しさん
垢版 |
2017/09/05(火) 12:21:18.36ID:P2jRu54V
ただのコメントなんですが
0021デフォルトの名無しさん
垢版 |
2017/09/05(火) 12:44:00.50ID:3taXOIUD
>>19
仮にimport secretsしてるなら、何行目でsecretsモジュール使ってるの?
0023デフォルトの名無しさん
垢版 |
2017/09/05(火) 12:49:31.22ID:3taXOIUD
>>14
https://ideone.com/wSgPJA
の実行環境のPythonのバージョンはいくつか確認した?
該当するバージョンのsecretsモジュールのリファレンスは見た?
0024デフォルトの名無しさん
垢版 |
2017/09/05(火) 12:53:44.04ID:3taXOIUD
>>19
https://ideone.com/wSgPJA
の実行結果からどんなエラーが読み取れてますか?
それともどんなエラーが出てるか見当もつかない感じですか?
0026デフォルトの名無しさん
垢版 |
2017/09/05(火) 18:44:37.52ID:WkIFt9xI
>>16-18
shebang シバン

シェルで、コマンドを打った時、
そのファイルの1行目が、#! で始まっていれば、
そこで指定されたアプリが実行される
002916
垢版 |
2017/09/06(水) 13:22:16.53ID:1mqyHkeJ
すいません なぜだかPythonはファイルをダブルクリックしても実行出来ないって思い込んでました
今やったらちゃんとシェバンを解釈して実行できるじゃないですか
0034デフォルトの名無しさん
垢版 |
2017/09/06(水) 22:55:31.03ID:iVD0fgze
py.exeは「3」の数字を読みわけるだけみたいだけどな。
#!python3
#!python
でちゃんと振り分けられる。
0035デフォルトの名無しさん
垢版 |
2017/09/07(木) 00:55:16.38ID:VCE1Bt7S
py.exeは設定ファイル(py.ini)いじれば
#!pypy
とか
#!ironpython
とかなんでも行けるようになるので意外と便利
0036デフォルトの名無しさん
垢版 |
2017/09/07(木) 10:06:23.72ID:tsPQn4YW
>>31
そういうレベルというか処理の深い話をしても >>29 へのレスにならんでしょう。
#!/bin/no-such-file でも設定して実行してみれば、発言趣旨は分かるんじゃないの。
003916
垢版 |
2017/09/07(木) 16:23:55.39ID:iDOikERf
>>36
質問者が馬鹿だからいい加減なことを言ったと言うんですか?
Pythonスクリプトのシェバン行をPython自体が解釈するなんて
そんな再帰的すぎてわけわからんことを私は一言も書いた覚えはありませんよ

馬鹿扱いされたのも不満ですが私自身が誤った仮定をもとに質問をした経緯があるのでそこは我慢しましょう
でも私の程度が低いからあなたは仕方無くいい加減な事を言ったみたいに言われると許せないですね

あと苦し紛れに #!/bin/no-such-file みたいな事を書くのもどうかと思いますよ
0040デフォルトの名無しさん
垢版 |
2017/09/07(木) 19:04:46.94ID:ic17m8+J
>>39
> 質問者が馬鹿
とも、
> Pythonスクリプトのシェバン行をPython自体が解釈するなんて
> そんな再帰的すぎてわけわからんことを私は一言も書いた
とも思わないが、端的に例示したものを、周りに煽られて理解できなくなってしまうのは困ったものだと思うよ。
まぁ俺の問題じゃないので虚実判断はご随意に。
0042デフォルトの名無しさん
垢版 |
2017/09/08(金) 12:55:45.41ID:C2yBG9y5
知ったかぶりして間違いを指摘されて恥ずかしくて開き直る
誰だって一度や二度はあるだろ
優しくしてやれよバカにはw
0043デフォルトの名無しさん
垢版 |
2017/09/08(金) 14:55:29.43ID:nstaVsU2
知らない人が質問して
知ったかが回答して
知らない人が発狂して
便乗バカがイキってる ←今ココ
0046デフォルトの名無しさん
垢版 |
2017/09/08(金) 19:40:11.90ID:uWWlJTJ6
今日の一番の収穫はWSGIの発音
0048デフォルトの名無しさん
垢版 |
2017/09/08(金) 23:13:16.40ID:rvKiayht
そんな事よりTIMTOWTDIの発音を知りたい
0050デフォルトの名無しさん
垢版 |
2017/09/09(土) 03:10:32.81ID:eNKTWyDH
どうせ仕事にならない、使わないで終わるんだからやらなくていいだろ。
エロ画像のファイル名変換程度にしか使わないんだろうし

憤慨してディスクごと再フォーマットで全部消去でいいすよ。すっきりとする。
0051デフォルトの名無しさん
垢版 |
2017/09/09(土) 11:06:25.43ID:2lDsKHBN
giとして利用しない限りwindowsでpythonやるならシェバンなんて書いても意味ない
0052デフォルトの名無しさん
垢版 |
2017/09/09(土) 11:06:41.53ID:2lDsKHBN
cgiとして利用しない限りwindowsでpythonやるならシェバンなんて書いても意味ない
0057デフォルトの名無しさん
垢版 |
2017/09/09(土) 20:22:59.23ID:dz5TMHxm
もみじまんじゅう先生のSQLalchemyの、プロポーザル落選してたのか、聞きたかったな
0058デフォルトの名無しさん
垢版 |
2017/09/09(土) 23:33:44.12ID:vJDwh+Fb
pandasのデータフレームを、SQLで操作できるメソッドとかあります?

イメージは、↓みたいなの
結果 = pandas.execSQL('select var1 from データフレム')
0059デフォルトの名無しさん
垢版 |
2017/09/10(日) 06:08:26.45ID:uXnzsJ3Y
皆さんpythonでの開発には何のエディタ使ってますか?
ちなみに自分はspacemacsです
0072デフォルトの名無しさん
垢版 |
2017/09/10(日) 22:30:05.12ID:3iuxtVQP
>>59
エディタなんて飾りですよ。
えらい人にはわからないんですよ。
ちなみに私はpychamですけどね。
0075デフォルトの名無しさん
垢版 |
2017/09/10(日) 22:53:57.03ID:1ZG5Z0dM
emacs + evil

でも、Python 用のカスタマイズはとくにしてないから、色付け・補完・eldoc くらいしか恩恵がない
0077デフォルトの名無しさん
垢版 |
2017/09/10(日) 23:06:28.31ID:oM7Oueur
ある長い文字列の中から一文字違いの短い文字列を探すアルゴリズムはどう書くとシンプルなのでしょうか?
イメージとしては、gmajtpwjadmjgptwみたいな適当な文字列からwnadと完全一致または一文字違いの部分を探す、というものです
一文字ずつ抽出・スコアリングが良いのかなあと思っているのですが、やたら長くなりそうなので...
0078デフォルトの名無しさん
垢版 |
2017/09/10(日) 23:14:16.74ID:t3bJtGR9
正規表現使って検索するのが楽なのでは。
wnad
.nad
w.ad
wn.d
wna.
の5パターンを検索すれば良いよね。
0082デフォルトの名無しさん
垢版 |
2017/09/11(月) 08:59:52.34ID:0Ujcm9dN
ttp://news.mynavi.jp/news/2017/09/11/021/
最も成長しているプログラミング言語はPythonだそうです
RubyよりPythonを選んだそこのあなた! 正解です
0083デフォルトの名無しさん
垢版 |
2017/09/12(火) 10:05:01.03ID:6IqPqsBl
print文で出力をする際に
print(A + ' ' * B + C) と書くか
print(A +
' ' * B +
C)
と書くかでどちらの方が良いのでしょうか
0084デフォルトの名無しさん
垢版 |
2017/09/12(火) 12:51:54.87ID:JZIOiwXq
本当にシンボルが各1文字なら上
各シンボルが50文字くらいあったら下…ではなく必要十分に省略できるか検討する
無理なら80文字または100文字で折り返す
0086デフォルトの名無しさん
垢版 |
2017/09/12(火) 13:04:48.54ID:6IqPqsBl
>>84 >>85
ありがとうございます
まずは1行で書いてどうしても無理なら折り返すようにします
0087デフォルトの名無しさん
垢版 |
2017/09/12(火) 16:31:14.95ID:682vHb+B
Windows10でpythonのAnacondaディストリビューションを使っています.
最近PCを新調して入れしなおしたのですが,py.exeがインストールされないみたいでshebangが実行されません.
一部のスクリプトで実行環境を分けたい事情があるのですが,何か良い方法ありますか?
0088デフォルトの名無しさん
垢版 |
2017/09/12(火) 17:04:57.41ID:nMB4Ttkq
>>87
python -m venv env
0089デフォルトの名無しさん
垢版 |
2017/09/12(火) 17:27:42.60ID:682vHb+B
>>88
お返事ありがとうございます.仮想環境は作れました.
実行するときにshebangで環境指定して実行というのがしたかったのですが
venvのドキュメント読んでもよくわかりませんでした.
とりあえず,以下のバッチファイルから実行するようにしました.
activate env_name & python script_name.py & decativate
0090デフォルトの名無しさん
垢版 |
2017/09/12(火) 18:35:35.33ID:Yicf3ooe
そもそもAnacondaにpy.exeは付属していない
いつからって?今も昔もだよ

公式のCPythonのインストーラでカスタムインストールを選べば
py.exeだけインストールできる
CPythonのアンインストーラがデフォルトだとpy.exeをアンインストールしないので
後からAnacondaをインストールした時に一緒にインストールされたと
勘違いしたのだろう
0092デフォルトの名無しさん
垢版 |
2017/09/14(木) 21:15:45.82ID:NMG+mSCl
>>7
いまどきハロワで仕事探してる時点でヤバイだろ
あそこは手当もらう人とジジババが行く場所
0093デフォルトの名無しさん
垢版 |
2017/09/15(金) 15:27:03.56ID:In6oP8OB
EXCELのVBAぐらいで開発環境について何もわからないんですが
Pythonista for iOS
これ買おうか迷ってます。1200円ってなんでアプリだと高く感じるのでしょうねw
0100デフォルトの名無しさん
垢版 |
2017/09/16(土) 15:36:59.46ID:eVQeLfYm
pythonのパッケージってあっちのプロジェクトでfoo.bar、こっちのプロジェクトでfoo.bazみたいにできなくて
それぞれfoo_barとfoo_bazみたいな名前でやるものなの?
0101デフォルトの名無しさん
垢版 |
2017/09/16(土) 16:40:44.38ID:ZCzFTInQ
馬鹿には無理
0102デフォルトの名無しさん
垢版 |
2017/09/16(土) 18:32:26.95ID:/JC94Ghp
技術評論社のjupyter本読みたい 固定じゃなくてリフローなのは良いな サンプルで前書だけじゃなくて少し読めるのもいい
ただ3500円はちょっと高いんだよな紙なら中古を狙うんだけど
0107デフォルトの名無しさん
垢版 |
2017/09/19(火) 21:16:48.29ID:fQSnv6qX
pythonでリアルタイムでスクレイピングして得られたデータをf.writeを使ってtxtに書き出しているんですが
たまーに
「PermissionError: [Errno 13] Permission denied:」
が出て止まってしまいます。
書き込みに失敗したんだと思いますが、書き込みに失敗しても無視してプログラムを動作させたいのですが解決策ないでしょうか
0110デフォルトの名無しさん
垢版 |
2017/09/19(火) 23:48:36.68ID:r8s5qxxU
>>109
うっかり読んじまったじゃねーか
何もいい事なかったぞ?
どうしてくれるんだこの時間
0113デフォルトの名無しさん
垢版 |
2017/09/21(木) 01:07:38.58ID:IQO0NcCI
>>110
いやーマルチスレッド環境とかでも整合性保ったままファイル出力をするし、限りなくフェイルセーフだし読み直せよ
0114デフォルトの名無しさん
垢版 |
2017/09/21(木) 12:51:23.09ID:ld/a+CFy
>>113
それを最初から言ってくれれば読まなかったのに
なぜ他人が自分と同程度に無能だと思い込んでる?
0115デフォルトの名無しさん
垢版 |
2017/09/21(木) 19:43:50.84ID:Zrk70d4z
ここってchainer2の話題も使っていいんですかね
一応言語自体はpythonなんですが
0116デフォルトの名無しさん
垢版 |
2017/09/21(木) 19:52:21.47ID:LeiVPv27
google playでandroid版のqpython3入れたんだけど、
pipでnumpyインストールしようとしたら、versionが2.7か3.4以上じゃないとダメと怒られた。
ちなqpython3は3.2.2らしい
どうやればいい?
0118デフォルトの名無しさん
垢版 |
2017/09/21(木) 20:30:03.98ID:eO+K9X9n
>>115
質問の重点がプログラム寄りならいいんじゃねえの
機械学習寄りでも駄目ではないだろうが、機械学習スレの方が回答率はいいだろう
0119デフォルトの名無しさん
垢版 |
2017/09/22(金) 01:50:30.66ID:/scI4GeO
numpyで配列のサイズが[100, 50, 5]のがあった時に
for文で回して要素を取るにはどうすればいいですか?
イメージこんなです

for elem in array:
elem[0] += 1
elem[1] += 2
elem[2] += 3
elem[3] += 4
elem[4] += 5

こんな感じで行列毎に取り出して100,50の部分の要素を別々にインクリメントしたり

for elem in array:
elem += 1

こんな感じで全要素を順に取り出したり
これをforでやる方法ありますか?
0122デフォルトの名無しさん
垢版 |
2017/09/22(金) 14:22:32.57ID:/scI4GeO
>>120
やっぱそれしかないですよね。
せっかくpythonなのでオブジェクトでfor回してスマートにしたいなと思ったのですが
ベタに多重することにします。
0125デフォルトの名無しさん
垢版 |
2017/09/22(金) 16:57:35.09ID:/scI4GeO
>>124
arrayを[100, 50, 3]として全要素をいじりたい時に例えば

rows, cols = array.shape[:2]
for y in rows:
for x in cols:
array[y][x][0] += 1
array[y][x][1] += 2
array[y][x][2] += 3

こんな処理があったとして、これをarrayオブジェクトに対するforで回したい、こんな感じで

for elem in array:
elem[0] += 1
elem[1] += 2
elem[2] += 3

変数elemにarray[y][x]が順に入るイメージ。このままじゃ無理なのは分かってるけど、上のコードと下のコードが等価になるにはどうすればいいかな?
0126デフォルトの名無しさん
垢版 |
2017/09/22(金) 17:31:13.29ID:v2IrJydm
こういう感じ?

>>> a = np.array([[[1,2],[3,4],[5,6]],[[7,8],[9,0],[1,2]]])
>>> a
array([[[1, 2],
[3, 4],
[5, 6]],

[[7, 8],
[9, 0],
[1, 2]]])
>>> a + np.array([1,2])
array([[[ 2, 4],
[ 4, 6],
[ 6, 8]],

[[ 8, 10],
[10, 2],
[ 2, 4]]])
0127デフォルトの名無しさん
垢版 |
2017/09/23(土) 01:03:29.60ID:sifN4c3b
ああ、確かにこの例だとそれでも出来るのですが
本当は各要素に対して関数を適用したいので、全要素を順に取得したいです。
0129デフォルトの名無しさん
垢版 |
2017/09/23(土) 08:21:08.80ID:lzsxMVjf
バカ「こういう風にしたいのですが、何か良い方法はありませんでしょうか?」
親切「うーん、こうすればできるよ」
バカ「ああ、確かにこれならできますが、本当はこうしたいのです」
親切「・・・じゃあ、こうすればどうかな?」
バカ「なるほど、でも実はこうしたいので、これではチョット・・」
親切「・・・(なんじゃこいつ)」
0130デフォルトの名無しさん
垢版 |
2017/09/23(土) 09:05:36.29ID:lzsxMVjf
奥さん、多重ループしたくないならproductですよー
>>> import itertools
>>> elem = itertools.product(range(100), range(50), range(3))
>>> for x, y, z in elem:
print(x,y,z)


0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2

でも、numpyでforループ使うのはイケてないらしいですよ、meshgrid使うんだってさ
ttp://nasing-i.hatenablog.jp/entry/2014/04/13/192446
0131デフォルトの名無しさん
垢版 |
2017/09/23(土) 09:30:18.64ID:sifN4c3b
>>128>>129
小出しというか、ただの例を出しただけであって
やりたいことは全要素の取得のためにforループを回すことってちゃんと書きましたよね?
変な例を出したこっちも悪いですけど揚げ足取るように違うやり方でやられましても。
0133デフォルトの名無しさん
垢版 |
2017/09/23(土) 09:46:00.39ID:RM5wdVZL
>>130
>でも、numpyでforループ使うのはイケてないらしいですよ、meshgrid使うんだってさ
ま、まじか。こんなもんあるとは
0137デフォルトの名無しさん
垢版 |
2017/09/23(土) 22:14:37.07ID:a8WpPeB5
なんで聞く立場でこうも上から行けるんだか。。
自己解決して情報展開もせず立ち去る連中と同じように、質問系では向いてない性格なんだろうな。
0140デフォルトの名無しさん
垢版 |
2017/09/23(土) 23:43:10.17ID:UvR7p8sn
>>137
そもそも質問スレってのは質問者がまわすもんだし
得てして回答者はバカばかりなのだから
普通の人が質問すると自然に立場が上のようになるもんだ
0141デフォルトの名無しさん
垢版 |
2017/09/23(土) 23:45:02.09ID:+YpHx5nV
pyinstallerで実行したファイルくっそ初回起動遅くて苛ついてたけど
--onefileオプション取れば普通に速いのな

フォルダ容量500MBくらいになったけど
不要っぽいファイル消したら70MBくらいになったしようやくexe化捗ってきた
0142デフォルトの名無しさん
垢版 |
2017/09/24(日) 01:41:24.19ID:wQofQkTQ
pyconJPで英語で発表してるやつ死ねばいいのに
下手くそな英語聴くくらいなら海外の見るわ
0145デフォルトの名無しさん
垢版 |
2017/09/24(日) 21:29:13.46ID:YVsG5GQU
質問ッス!
Pythonでパッケージを書くときに、(C++でしばしばみられるような)1クラス1ファイルというスタイルでやったとします
例:
 some_package\__init__.py: (空)
some_package\Foo.py:
  class Foo: ...(中略)...
some_package\Bar.py:
  class Bar: ...(中略)...

Q1. このパッケージで使う側のコードで直に(パッケージ名またはそのエイリアスの修飾無しで)FooとかBarを使いたい場合、
from some_package.Foo import Foo
from some_package.Bar import Bar
とか使う側のコードにどうしてもずらずら書かなければならんのでしょうか…
「impot some_package」一発とか、簡単な記述で済ませる方法とか無し?

Q2. そもそも1クラス1ファイルに代わる良い推奨スタイルってあります?
0146145
垢版 |
2017/09/24(日) 21:32:51.48ID:YVsG5GQU
Q3. >>145のパッケージ構成において、class Barがclass Fooに依存している
 (かつ、パッケージ名の修飾無しで「Foo」と書かれている)という場合、
 やっぱりBar.pyの中に「from Foo import Foo」と手動で書かねばならないのでしょうか。
 同一パッケージ内の依存関係を自動で解決してくれるようなしくみは無し?
0149デフォルトの名無しさん
垢版 |
2017/09/25(月) 08:06:35.04ID:qYcgX0il
インタラクティブシェルで
import pyperclip
pyperclip.copy('Hello World!')
pyperclip.paste()
ってやると'Hello World!'って出したいところ
''ってブランクが返って来ちゃうんですけど何がいけないんですかね?
pythonのversionは3.6.1です
0151デフォルトの名無しさん
垢版 |
2017/09/25(月) 17:59:38.58ID:Xnx02yFE
>>150
おおーまさにmac sierraです
頂いたURL確認しますありがとうございます!
0153デフォルトの名無しさん
垢版 |
2017/09/26(火) 22:31:21.18ID:2AMXc3+5
pythonを業務で使用したいと思っているのですが(オープンソース商用利用可!!)
勝手にパソコンにインストールするとバレて怒られるのでやりたくないです

自宅pcでjupyterを公開で起動して(もちろんパスワードかける)会社からアクセスして使用するのはセーフですよね?
0155デフォルトの名無しさん
垢版 |
2017/09/26(火) 23:12:32.84ID:h5viRmHi
途中で書き込んでしまいました
a="0(123:4)56"
この文字列aから"("と")"を削除するにはどうすれば良いのでしょうか
半角の括弧だけ全て削除したいのです
Python3を使っています
初歩的な質問ですいません
0156デフォルトの名無しさん
垢版 |
2017/09/26(火) 23:23:44.70ID:h5viRmHi
すいません
自己解決しました
re.subで上手く行かなかったため書き込んだのですが、
どうやら取得していた文字列に問題があったようです
失礼しました
0157デフォルトの名無しさん
垢版 |
2017/09/28(木) 03:11:58.16ID:0+WFHGuU
プログラミング入門者におすすめソフト教えてつかぁさい
今現在は geany+python です。

ゼロからはじめて、やっと任意のテキストファイルに書かれた日本語を.pyで読み上げさせる事が出来たレベルのホヤホヤです。
次はLチカに挑戦しようかと。

ラズベリーパイゼロでやってるので
動作の軽いソフトでおすすめお願いします。
0158デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:08:48.48ID:jnkw0HvM
python本体に付属しているturtleとかでいいんじゃないか
幾何学模様作るのそこそこ楽しいぞ
0161デフォルトの名無しさん
垢版 |
2017/09/28(木) 11:32:43.22ID:eTm8mB/K
pythonでhtmlをmysqlに挿入しようとしているんですが、
htmlに#が含まれているとそこから先がコメント扱いになってしまいうまく処理できません。
対応方法ご存知の方はいらっしゃりませんか?
0163デフォルトの名無しさん
垢版 |
2017/09/28(木) 12:27:16.44ID:S/iCH99m
何を参考にしたら>>161みたいな作り方してしまうの
0164デフォルトの名無しさん
垢版 |
2017/09/28(木) 12:36:25.85ID:jI3aCg9x
#がコメントなのはunixのシェルに準じてるのだと思うが
0165デフォルトの名無しさん
垢版 |
2017/09/28(木) 13:33:47.39ID:eTm8mB/K
>>163
何も参考にしてないけど、
htmlタグも一緒に保存できると、リンクとか装飾とかも再現できるんでそうしました。
レス番の頭やURL等にに「#」が使われてるんで、うまく稼働しませんでした。
何か変ですか?
0167デフォルトの名無しさん
垢版 |
2017/09/28(木) 15:32:38.00ID:9F6QyTaM
>>165
何か参考にした方がいいね
自分が扱ってるデータがPythonのコードなのかHTMLなのかごっちゃになってるんでしょ
わざわざMySQLに入れないで普通のファイルとしてディスクに書き出せば
0168デフォルトの名無しさん
垢版 |
2017/09/28(木) 15:39:22.41ID:eTm8mB/K
'[<a href="http://keijiban.com/#pos_box"; title="#951へ返信">#951</a>]',
URLは変えてるけど、atomで見ると、最後の#951 の #以降からグレーアウトされる。(その前の#は問題ないのに)
atomの問題かもしれないが、mysqlで対話式にこのSQLを実行すると正常に完了するが、python から cursor.executeで実行するとsyntax Errorになる。
変数使わずに固定文字でやってるんだけどな。良く分からん。
別の方法で回避してみる。
0172デフォルトの名無しさん
垢版 |
2017/09/28(木) 21:04:17.93ID:S/iCH99m
>>165
最低限使ってるライブラリのリファレンスはちゃんと読んだ方ががいい
そしたら、そんなことにはならんから
0175デフォルトの名無しさん
垢版 |
2017/09/29(金) 18:06:12.42ID:8aksHpnt
(´・ω・`)アマゾンでオライリー検索したらpython系の本がむちゃくちゃ多いね
なんでやろ?
時代の流れ的にpython習ったほうがいいんやろか?
0176デフォルトの名無しさん
垢版 |
2017/09/29(金) 18:58:06.36ID:Q6glRyOo
printと打つつもりがついprintfと打ってしまう。
改行打つ直前についセミコロンを打ってしまう。
コロンはつい2連打してしまう。
勉強し始めはストレスたまるわ。
0178デフォルトの名無しさん
垢版 |
2017/09/29(金) 21:04:42.72ID:ISmjFide
ウェブのチュートリアルで十分
0180デフォルトの名無しさん
垢版 |
2017/09/29(金) 22:14:28.68ID:6Nj+nMkb
自分もPython3の教科書を探してて「実践力を身につける Pythonの教科書」が良さそうと思い
著者名で検索したらマイナビに連載企画があったので読んでみた
「ゼロからはじめるPython」
http://news.mynavi.jp/series/zeropython/001/
ところがパート9で出てきたライフゲーム眺めてるのが楽しくてPythonの勉強はやめてしまった
「9 生物集団の栄枯盛衰"ライフゲーム"を作ってみよう」
http://news.mynavi.jp/series/zeropython/009/
このライフゲームをマス目付きにする方法を教えて下さい
0183デフォルトの名無しさん
垢版 |
2017/09/29(金) 22:32:18.42ID:l6DgfNNU
pythonの教科書よりtubeでいろんな講義聴いたほうが最初はいいよ
pandas, numpy, matplotlibくらいなら幾らでも外人が講義してるやろ
まぁmatplotlibとかbokehとか近いうち死語になるけど
0184デフォルトの名無しさん
垢版 |
2017/09/29(金) 22:44:38.93ID:9gXX4Dyt
.py 1ファイルでクールな事をやってる
初心者が参考になるサンプルがおいてるサイト紹介しろ下さい
0185デフォルトの名無しさん
垢版 |
2017/09/30(土) 00:36:23.07ID:5FWi1qeK
>>180
Libre Office のマクロを、Python で書けば?

Godot ゲームエンジンは、Python 風言語。
Godot をJavaScript にしたものが、Cocos Creator
018635歳
垢版 |
2017/09/30(土) 22:05:00.79ID:y8lb5R8S
こんばんは。頭の悪い皆さん。
setをintに変換するにはどうしたら良いのか教えて下さい。
0188デフォルトの名無しさん
垢版 |
2017/09/30(土) 22:44:23.88ID:V09SfC5o
型ヒントに関する質問です

自分と同じクラスのオブジェクトを返すメソッドの返り値の型ヒントはどう書けばいいのでしょうか>

class Hoge():
def huga(self) -> Hoge:
return self

とか書くと、mypy のチェックは通るのですが、実行時に

Traceback (most recent call last):
 File "hoge.py", line 3, in <module>
  class Hoge ( ):
 File "hoge.py", line 4, in Hoge
  def huga( self ) -> Hoge:
NameError: name 'Hoge' is not defined

とエラーになります。

型ヒントを書かなければ当然エラーにはならないのですが
018935歳
垢版 |
2017/09/30(土) 22:46:32.33ID:y8lb5R8S
意思疎通が図れないアスペの方ですか?
悪いんですけどコード出してくれます。

知能が低い人と会話すると疲れます。
0190デフォルトの名無しさん
垢版 |
2017/09/30(土) 22:48:18.26ID:V09SfC5o
188 です。
クラス定義の方のコード、行頭の半角スペースが消されてしまいました。
全角で書き直すと
class Hoge():
  def huga(self) -> Hoge:
    return self
です。
019135歳
垢版 |
2017/09/30(土) 22:53:15.34ID:y8lb5R8S
真面目に質問してるのに、訳の解らないコードを貼らないで下さい。
怒りますよ?
0192デフォルトの名無しさん
垢版 |
2017/09/30(土) 22:55:43.99ID:1jTnlOmW
set = int
0193デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:07:09.43ID:BzLQ0tVY
setをintでっていうのは、
intをビット配列に見立てて、
i番目の要素があればi番目のビットを立て、i番目の要素がなければビットをオフにする、
ってことだと思う。
setに入りうるものが事前に分かっていて、0から順に連番を割り当てることが出来るなら、setのかわりにintで管理出来る。
競技プログラミングだと、bitDPとかで良く使う手法。
setに入り得る要素が沢山ある時は実用的でない。せいぜい60個くらいまでだと思う。
0194デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:46:15.54ID:0FcI7aTY
>>190
そもそも return self ってオブジェクトのメソッドを呼び出して自分自身を返すの?それとも呼び出されるごとに新しくインスタンス作って返すの?

前者の場合、huga を呼び出せるってことは Hoge のインスタンスにアクセスしてる訳だから意味的におかしい
ファクトリみたいに呼び出されるたびに新しいオブジェクトを作るのか、シングルトンみたいに毎回同じオブジェクトへの参照を返すのか区別をつけなきゃならんと思う

ちょっと調べると似たような質問はあるけど..
https://stackoverflow.com/questions/40149768/python-type-hinting-to-return-class-in-function
0196デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:57:41.26ID:V09SfC5o
>> 194
huga()は、例が悪かったかもしれません。
元々書きたかったのは、ちょっと中身を変えた自分自身のコピーを返す関数です。

なので、新しいオブジェクトを返す関数です。
0198デフォルトの名無しさん
垢版 |
2017/10/01(日) 00:37:55.38ID:K0lZBGAK
>195
コンテナの中の順序があるかないかと、要素自体が順序比較をサポートするかどうかは別の話だよ。
setには、順序比較できる要素を入れることも出来る。

listに順序があるというのは、
[1, 2, 3]と[3, 2, 1]が区別されるということ。コンテナに入っている順番を区別している。
setに順序が無いというのは、コンテナに入っている順番が区別されないということ。

これらは、listやsetの要素が大小関係を持つ持たないということとは違う。
listか、setかに関係なく、1<2という順序関係はある。(この順にコンテナに入っている問
ことでは無い)
また、順序関係を持たない要素(たとえば複素数)であっても、listやsetに入れることはできる。

以上のように、コンテナに入れた順序を保持するかどうかと、要素自体が順序比較をサポートするかどうかは、別の話。

で、ビットマスクで集合を管理するときは、
コンテナに入れた順番は勿論記録されない。(なので、巡回セールスマン問題で訪問済みの頂点だけでなく、最後に訪問した頂点の情報も必要なときは、ビットマスクの他に、最後に訪問した頂点の情報もべっと保持する。)
要素に対しては、どこのビットがその要素を表すかを決める必要があるので、何らかの方法で要素に順序をつけることが必要になる。
0199デフォルトの名無しさん
垢版 |
2017/10/01(日) 01:22:03.33ID:6PWiZt35
Pythonでタブキー押すとエラーが出るんだけどググってもよく分からん
誰か解決法教えてエロい人!
エラー最後の部分がこれ
File "C:\Program Files\Anaconda3\lib\rlcompleter.py", line 80, in complete
readline.redisplay()
AttributeError: module 'readline' has no attribute 'redisplay'
0200デフォルトの名無しさん
垢版 |
2017/10/01(日) 01:22:27.98ID:6PWiZt35
ちな環境は
Python 3.6.2 |Anaconda custom (64-bit)| (default, Jul 20 2017, 12:30:02) [MSC v.
1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
0202デフォルトの名無しさん
垢版 |
2017/10/01(日) 09:45:14.35ID:aVSvWtqd
Python は、半角空白の数が、文法的に意味を持つ

タブ文字を使っちゃ、ダメだろ
0203デフォルトの名無しさん
垢版 |
2017/10/01(日) 09:49:36.32ID:xDsv9kMn
タブ一個と空白一個で数があってりゃ問題ないよ
0205デフォルトの名無しさん
垢版 |
2017/10/01(日) 10:40:49.76ID:6PWiZt35
サンクス
治らないからアナコンダ最新版に入れ直したら一応治った
で、pip-review入れたけど何故かちゃんと動かないからアナコンダアンインスコした
生pythonにした
0206デフォルトの名無しさん
垢版 |
2017/10/01(日) 11:05:40.95ID:Yfu5RE6T
>>205
でもそれだと、anacondaで入るデータ解析とか科学計算のライブラリが入らないですけどいいんですか?
0207デフォルトの名無しさん
垢版 |
2017/10/01(日) 11:29:12.10ID:coFT7XLp
PEP8ではスペースが望ましいとの見解
ttp://pep8-ja.readthedocs.io/ja/latest/#id7

Atomエディターにatom-beauty(とautopep8)入れたら悩まずに済む
※ 個人の感想です
0210デフォルトの名無しさん
垢版 |
2017/10/01(日) 12:03:49.83ID:6PWiZt35
>>209
ええ…
アナコンダ入れるのがオススメって結構あちこち書いてあるじゃん
俺が勝った本には書いてあった
0211デフォルトの名無しさん
垢版 |
2017/10/01(日) 12:44:23.64ID:Q7WarGyN
Anacondaは計算ライブラリとか色々入ってるから初学者にはオススメだとは思う。

ただ、
pipがあるのにcondaという独自パッケージ管理システムをつくっていてややこしいし(pipにはあるのにcondaにはないライブラリがあったり)、
pyenvとの衝突問題もあるので、後で別のpython環境を構築しようとすると苦労する。
あとAnaconda特有のライブラリ間の依存関係とかあったりするけど、初学者には自分のコードが引き起こしたエラーなのかAnacondaのバグなのかわからない。
ので、209の言いたいことはわかるなぁという気持ち。
0212デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:05:17.56ID:4xl9+nd3
俺もオススメとか見て、アナコンダ試してみたけど
かえって面倒くさかった。速攻止めた。生がイチバン。
0213デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:11:25.35ID:kGcvTs6z
初学者が何も考えずにAnacondaをインストールして問題ないって気があんまりしない
相場が分かっている方が環境を作るのが面倒だからって入れるものかなあって
0214デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:24:44.89ID:RQrxfsBp
アナコンダでええよ
でもアップデートや追加インストールや
カスタマイズしようとしてはいけない
それだけ守れば何のトラブルも起きないよ
0215デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:29:15.41ID:GmZqlXb3
anaconda最高

カスタマイズしたかったらconda createで新しい環境作ればいいし要らなくなったらサクッと消せるvenv virtualenvとか面倒くさすぎるだろ初心者には
0217デフォルトの名無しさん
垢版 |
2017/10/01(日) 14:22:23.05ID:Yfu5RE6T
venvで新しい環境サクッと作って、サクッと消せるんだよなぁ
0219デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:04:44.26ID:m+w/jR3z
anacondaとVisual Studio 2017 どっちが良いの?
0220デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:32:15.27ID:dZZybuoZ
>>212
生コンだ
0223デフォルトの名無しさん
垢版 |
2017/10/02(月) 00:39:40.29ID:QmxKy2Z/
Python3.x系の定番の入門書ってある?
0231デフォルトの名無しさん
垢版 |
2017/10/02(月) 19:59:59.92ID:0uNSEDCV
いいえ
どこでそんな半端な知識を得たのか知らないけど、最適化される場合ってのは

* CやC++などで書かれたモジュールが
* ソースコードで配布されていて
* インストール時にビルドされる

場合に限られる
condaでもソースで配布されていて、インストール時にビルドされるライブラリがある
pipでもバイナリで配布されていて、インストールのビルドを行わないライブラリがある
どっちなら最適化される、などと単純な話ではない
0235デフォルトの名無しさん
垢版 |
2017/10/03(火) 00:17:53.29ID:AOU4wQiN
C++でoperator|()と書いていたのを__or__()と書くようになったのは人類の進歩を感じる
これのおかげでインテリセンスで定義元にすぐ飛べるようになた
0236デフォルトの名無しさん
垢版 |
2017/10/03(火) 00:59:07.84ID:bHj+nVig
世紀末氷原(正規表現)
大文字、小文字のA~zの検索
どの様に記載したら良いでしょうか?

「アタタタ……(中略)…タタタタアホワッチャア!!!」 以外でお願いします。
少し、疲れてるかも知れません。
0238デフォルトの名無しさん
垢版 |
2017/10/03(火) 05:17:50.29ID:sYQLzq/r
そういえば、pythonって、POSIX文字クラスには対応してなかったんだな。
[:alpha:] みたいなやつ。
0239デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:16:53.36ID:nH2BZkoP
民間ロケットpythonだったにょ
しかも秋月ω
0240236
垢版 |
2017/10/03(火) 10:55:35.97ID:Rm4YEOHZ
>>237
ありがとうございます。
0241デフォルトの名無しさん
垢版 |
2017/10/03(火) 13:53:20.08ID:YXXLGtFc
北チョンのもくてきはぴょんちゃんの妨害
0242デフォルトの名無しさん
垢版 |
2017/10/04(水) 11:10:49.39ID:5B5peuj1
私、ネットの情報収集などにhttplib2を愛用してまいりました
キャッシュをサポートしているのがhttplib2の良いところなんですが、最近発掘したサイトにアクセスすると
エラーを吐きやがってアクセスできないことに悩まされました。これは稀なケースでほとんどのサイトでは問題なく動作します
ですからこれはhttplib2の問題じゃなくてサイト側が悪いのだと思っていました
思っていましたが、試しにurllib.requestと前々から気になっていたRequestsでその問題のサイトにアクセスしてみたんです
そしたら正常にエロ画・・じゃなくて、そのサイトの有益な画像データを正常に取得できたのです
httplib2がアカンのやとはっきり分かりました

httplib2がサイトにアクセスできないケースは2つあります
1つはSSLError、httplib2のSSL認証設定を無効(disable_ssl_certificate_validation=True)にすれば回避できるサイトもあるのですが回避できないサイトもあり、その場合はお手上げです
もう1つはhttplib2.RedirectLimit、リダイレクトしまくる糞エロサイトでリダイレクト上限に達してエラーになるようなんですが回避策はググっても出てこずこれもお手上げ

これらの問題がurllib.requestやRequestsでは全く起こらず正常にアクセスできます
なので私、この機会にRequestsへの移行を決心しました
httplib2はおすすめしません
0243デフォルトの名無しさん
垢版 |
2017/10/04(水) 11:14:44.63ID:e2PGw4tF
先にurllib.requestでredirect先を確認してから
そこへhttplib2でつなげば医院で内科医
0244デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:02:44.10ID:5B5peuj1
>>243
なるほど、それならRedirectLimitのエラーは回避できそうだねと思って試してみました
そしたらリダイレクトしてないみたい(httplib2のエラー名だけでリダイレクトが原因と思い込んでいたけど・・)

>>> url = '問題のサイトのURL'
>>>
>>> import urllib.request
>>> r = urllib.request.urlopen(url)
>>> r.geturl() == url
True

>>> import requests
>>> r = requests.get(url)
>>> r.history
[]

>>> import httplib2
>>> h = httplib2.Http()
>>> r,c = h.request(url)
httplib2.RedirectLimit: Redirected more times than redirection_limit allows.

原因は分からないけどhttplib2は糞なのは分かった
0245デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:21:27.10ID:e2PGw4tF
どのサイト見てるのかは知らんけど
文字コードとかmetadataのencodingとか可笑しいと
正常に動かないのかもね
0246デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:25:14.78ID:5B5peuj1
ここだよー、水着だから大丈夫だよー
ttp://intervaluesa.com/k/kodamaharuka4.html 👀
Rock54: Caution(BBR-MD5:ea107c9c1581680b0310fcc05371d356)
0247デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:25:50.36ID:1MR+etUU
逆かも
urllib.request とか Requests がリダイレクトを無視してカラっぽのところにアクセスしてるからエラー出ないだけだったり

知らんけど
0248デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:31:04.33ID:5B5peuj1
>>247
urllib.requestやRequestsは>>246のHTMLデータを取得できてるよ
URL貼ったし興味ある人は色々試してくれ  アディオス
0252デフォルトの名無しさん
垢版 |
2017/10/04(水) 19:05:05.58ID:8IzfOwlD
numpyの配列なのですが、1つの配列に一人分のデータが入ってるとして
新しい人のデータを追加したいときはどうすればいいですか?
人の数だけ配列の数を増やしてもいいのですが、for文などで全ての配列を繰り返せるようにしたいです
0254デフォルトの名無しさん
垢版 |
2017/10/04(水) 20:59:49.05ID:8IzfOwlD
people = 5
people_list = np.array((people, 1),np.int64)
for n, h in zip(number, height):
people_list[n].append(h)

numberは人の番号で、その順番通りにheightに身長が入っていますが、こうやるとエラーになります。
どうすればいいですか?
0255デフォルトの名無しさん
垢版 |
2017/10/04(水) 21:37:20.09ID:GgygFLqe
>>254
list だか array に append しよう
people_list[n] はただの数字だから append できない
毎回データを入れたり加工したら print と type で中身が何なのか見るといい
numpy のオブジェクトなら .ndim, .shape, .size あたりでデータがどういう形のなのか見ることができる
0256デフォルトの名無しさん
垢版 |
2017/10/04(水) 21:48:21.78ID:tkJ4WDEe
すいません、教えてください

super(class)とは何でしょうか?
意味が解りません
0259デフォルトの名無しさん
垢版 |
2017/10/04(水) 23:08:34.65ID:JfbK0QFc
>>257
ワイの辺は、よろず屋しかないわ
0260スッキリ厨
垢版 |
2017/10/04(水) 23:26:38.27ID:+JSlwxf3
君は、勉強の順番を、間違った。
スッキリでオブジェクト指向、Ruby で関数型を学ぶ

まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014

その後、この2冊をこの順に読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
0262デフォルトの名無しさん
垢版 |
2017/10/05(木) 10:02:45.98ID:7YYWZIFC
すみません、もう一つ。。

arr = [[]]*3
arr[0].append(0)
print(arr)

とした時に、
[[0],[],[]]
となって欲しいのですが、
[[0],[0],[0]]
になってしまいます。
どうすればいいですか?
0263デフォルトの名無しさん
垢版 |
2017/10/05(木) 11:55:22.98ID:TEqaJXZn
arr=[[] for I in range(3)]
とすればいけるはず。
[[]]*3だと、同じリストを参照するものが、3個あることになって、1つ変えると、他も変わる。
0265デフォルトの名無しさん
垢版 |
2017/10/06(金) 15:47:41.90ID:YIttGZb9
beautifulSoupで

name = a.find(itemprop="name").text

で値を取得しようとしていますが、
ある1つのページだけ、

a??a?\  

みたいな文字化け文字が返ってきてしまいます。

これって何のコードページですかね?
webページは、charaset = 'utf8'の指定があります。

同じひな形の他のページでは問題ありません。

ローカルにファイル落としてから実行してみるときちんと取得できます。
javascriptとかが悪さしてるんですかね?
0266デフォルトの名無しさん
垢版 |
2017/10/06(金) 15:48:52.29ID:YIttGZb9
a??a?\  と変換されてしまいましたが、
本当は、aeみやいな文字から開始されています。
0267デフォルトの名無しさん
垢版 |
2017/10/06(金) 16:41:00.94ID:uoobo3tb
charset通りにエンコされてるとは限らないからなー
0268デフォルトの名無しさん
垢版 |
2017/10/06(金) 19:07:09.04ID:YIttGZb9
>>267
ブラウザーで表示ししても普通の日本語だし、
そのページだけがおかしな結果を返すって、どうやって問題判別したらいいですかね?
0270デフォルトの名無しさん
垢版 |
2017/10/06(金) 21:28:39.22ID:tqIbkLAn
TeraPad でも、中国の地名の「深せん」の「せん」は、? になる。
サロゲートペア(4 byte 文字)

他にも、丸で囲んだ数字は、Windows の環境依存文字。
各スマホ会社の絵文字とか

ブラウザでは見れても、各アプリでは対応していない事が多い。
Ruby 以外の各アプリでは、日本人の開発者がいないから
0272デフォルトの名無しさん
垢版 |
2017/10/06(金) 23:54:24.28ID:k7MGRodg
<?php
 
//ニュースを取得し配列に格納する
$news_array = get_news();
 
//確認する
var_dump($news_array);
 
//最初の挨拶
$say = "最新のニュースをお伝えします。";
exec('/usr/local/bin/jsay '.$say);
 
//ニュース分だけ読み上げる
for($count=0; $count < count($news_array); $count++) {
exec('/usr/local/bin/jsay '.$news_array[$count]);
}
 
//最後の挨拶
$say = "ニュースをお伝えしました。";
exec('/usr/local/bin/jsay '.$say);
 
function get_news() {
//$data = array();
$rss = simplexml_load_file('http://www3.nhk.or.jp/rss/news/cat0.xml');
$array = array();
0273デフォルトの名無しさん
垢版 |
2017/10/06(金) 23:54:46.02ID:k7MGRodg
 
$i = 0;
foreach ($rss->channel->item as $item) {
// $x = array();
// $x['link'] = (string)$item->link;
// $x['title'] = (string)$item->title;
// $x['description'] = (string)$item->description;
// $x['pubDate'] = (string)$item->pubDate;
// $data[] = $x;
 
if ($i == 0) {
$x = "最初のニュースです。";
}
else {
$x = "次のニュースです。";
}
 
$x .= (string)$item->description;
 
$array[] = $x;
$i++;
}
 
return $array;
}
?>
0274デフォルトの名無しさん
垢版 |
2017/10/06(金) 23:56:47.82ID:k7MGRodg
PHPで書かれたラズパイ(OPENJTALK)を喋らせるスクリプトです。

.pyに書き換えできた奴が優勝
よろしくお願いしますm(__)m
0278デフォルトの名無しさん
垢版 |
2017/10/07(土) 04:37:45.13ID:ZHVQCO5Z
>>265
HTTPヘッダで指定されてるのか
HTMLで指定されてるのか
両方で指定されてるのか

curlとか単純なツールでダウンロードしてみてエンコーディングを調べる
odとかfileとかで
0281デフォルトの名無しさん
垢版 |
2017/10/07(土) 16:35:57.38ID:LZpsREVO
先頭に¥マークがついている文字列の数字をintで数字にしたいんですが、先頭の¥はどうやって外すんでしょうか?
stripやreplace使うと、\xが先頭について16進数になってしまいます。
0282デフォルトの名無しさん
垢版 |
2017/10/07(土) 16:53:12.39ID:1zSdZ2Jj
>281
全角の円記号なら、
int(s[1:])

バックスラッシュに相当する円記号だと、よく分からん。
0283デフォルトの名無しさん
垢版 |
2017/10/07(土) 16:55:27.09ID:LZpsREVO
>>282
返信、ありがとうございます。
バックスラッシュに相当する¥記号です。
配列に入れて先頭を消してみます。
0285デフォルトの名無しさん
垢版 |
2017/10/07(土) 19:09:23.60ID:yZrHLHp1
>>281
変換したい文字列をそのまま張り付けろや
やってみた操作と結果を言葉だけじゃなくコードで示せや
0286デフォルトの名無しさん
垢版 |
2017/10/07(土) 22:03:06.13ID:+rsZKcSi
なんでみんな小出しにするんだろうね
入力の文字列やURLを隠したり、関数名をわざわざhogeに直して他人が理解しにくいものにしたり
0289デフォルトの名無しさん
垢版 |
2017/10/08(日) 00:43:20.22ID:UUYMKH1C
>>285

\38,000
が変換したい文字列ですが、
エディターで\が入力できず、バックスラッシュになってしまうために、
s.replace("\\", "")
とは入力できずに、
s.replace("バックスラッシュバックスラッシュ", "")
で試してみましたが駄目でした。
さくらエディタで\でやってもエラーになりました。
linux上でやれば、結果は異なるのかもしれませんが。

windowsでやっているためか、
コード直書きで、\38,000と入力して変換した時と、
プログラムから html getして 変数に入れた場合で
変数の長さが変わったりして変な動きになりましたので、
リストに入れてから\に該当する最初の数桁を削除して対応することにしました。
0292デフォルトの名無しさん
垢版 |
2017/10/08(日) 08:40:50.91ID:Eg4i3QFB
バックスラッシュで置換できなかったってことは、U+005CじゃなくてU+00A5だったとか。
0293デフォルトの名無しさん
垢版 |
2017/10/08(日) 10:01:04.68ID:zWNWnJsd
>>289
\は特殊な記号で、\nは改行を意味するし、\bはバックスペースなの
これらはエスケープシーケンスっていうの

¥という文字を使いたい場合は\\とするの、もしくはraw文字列を使って入力するの
だから'\38,00'と直書きした場合は'\3'というエスケープシーケンス+ '8,00'ってことになるの
正しくは'\\38,00'とするかraw文字のr'\38,00'としないといけないの

html getで取得した文字は正しい文字列の'\\38,00'なの

>>> s='\38,00'
>>> s
'\x038,00'
>>> print(s)
8,00 ←ウンコ
>>>
>>> s='\\38,00'
>>> s
'\\38,00'
>>> print(s)
\38,00 ←正しく表示される
>>>
0294デフォルトの名無しさん
垢版 |
2017/10/08(日) 10:23:11.06ID:zWNWnJsd
ああ、あと>>290-291に言っときんだけど
オマエラさぁー、回答に関連ありそうなURLやキーワード張り付けて教えた気になってんじゃねーぞ
0295デフォルトの名無しさん
垢版 |
2017/10/08(日) 10:27:46.30ID:ACvYQg1d
すまん
ジョークは文化水準がある程度高くないと通じないということを忘れていた
0297デフォルトの名無しさん
垢版 |
2017/10/08(日) 11:56:38.40ID:UUYMKH1C
>>293
>だから'\38,00'と直書きした場合は'\3'というエスケープシーケンス+ '8,00'ってことになるの
ローカル環境でのテストの仕方間違ってましたね。文字の長さが変わる理由もこれでしょうね。


>'\\38,00'
>>> print(s)
>\38,00 ←正しく表示される
この最初の\を外してintにしたいから、(price.replace('\\', '')とかで外そうとしたけど駄目で、
今は配列に入れて強制的に頭からの数桁を削除して対応してます。
0298デフォルトの名無しさん
垢版 |
2017/10/08(日) 13:24:24.77ID:zWNWnJsd
>>> import re
>>> price='¥38,00(税込)' #全角の\
>>> int(re.sub(r'\D', '', price))
3800
>>>
>>> price='\\38,00(税抜)' #半角の\
>>> int(re.sub(r'\D', '', price))
3800
>>>

¥以外も削除する完璧な回答です、どうぞ
0300デフォルトの名無しさん
垢版 |
2017/10/08(日) 13:56:47.36ID:HosRocIl
とりあえず
円マークとバックスラッシュの話なのか
バックスラッシュのエスケープの話なのか
を切り分けてから議論しようよ...
0301デフォルトの名無しさん
垢版 |
2017/10/08(日) 14:04:24.51ID:zWNWnJsd
Pythonに直書きしてたのがバックスラッシュで
html getしてたのが円マーク
そして完璧な回答が>>298
分かったかな?
0308デフォルトの名無しさん
垢版 |
2017/10/08(日) 19:00:51.46ID:UUYMKH1C
>>298
そのsubtractのメソッドでうまくいきました。
ありがとうございま\D


\D 任意の非 Unicode 10 進数文字にマッチします。した。
なんかすごいためになる情報でした。
0309デフォルトの名無しさん
垢版 |
2017/10/08(日) 19:02:36.03ID:UUYMKH1C
>>298
そのsubtractのメソッドでうまくいきました。
ありがとうございました。


'\D 任意の非 Unicode 10 進数文字にマッチします。'
なんかすごくためになる情報ですね。
0310デフォルトの名無しさん
垢版 |
2017/10/09(月) 00:49:09.60ID:XAANZ+GT
ブーメランも糞あるかよw
大学ぐらい普通に出とるわ

知障(高卒)と一緒にすんなっつーの(笑)
0312デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:59:41.58ID:mQYmdfeJ
機種依存文字の ?が削除できないんですが、
aaa.strip('?')じゃ駄目なんですかね?
他の文字だと問題ないんですけどね。
0314デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:33:51.46ID:nnOwdodd
NEET卒のくせにw
0317デフォルトの名無しさん
垢版 |
2017/10/09(月) 13:22:07.49ID:7RuyVWXL
>>314
NEETから卒業してるなら、それはそれで偉くね?
0319デフォルトの名無しさん
垢版 |
2017/10/09(月) 13:25:26.76ID:NAQzkiiY
>>312
機種依存文字の?と、直書きの?は見た目は同じでも文字コード値が違う
?に見えるからって直書きで?で指定しても全く無意味

まず問題の機種依存文字を調べる、ここでは仮にその機種依存文字を'謎'とする
>>> aaa = 'hoge謎'
>>>
>>> for i in aaa: print(ord(i))

104
111
103
101
35598
>>>

ord関数で文字の文字コード値が分かる、'謎'の文字コード値は35598
文字コード値を文字に変換するのはchr関数だから
>>> aaa.strip(chr(35598))
'hoge'
>>>
0320デフォルトの名無しさん
垢版 |
2017/10/09(月) 13:26:50.17ID:NAQzkiiY
括弧を全角の(にしたら書き込めたわ
連続した括弧がアカンのか? よく分からんわ
0321デフォルトの名無しさん
垢版 |
2017/10/09(月) 22:51:02.72ID:XxdTmD6P
(i) <てst
0322デフォルトの名無しさん
垢版 |
2017/10/09(月) 23:02:08.22ID:0FScRfWB
お、おめこや
0328デフォルトの名無しさん
垢版 |
2017/10/10(火) 13:06:27.20ID:aulArmiW
あれれ? 書き込めたわ・・・
chr付けた書き込めなかった→ (chr(33))
chrの外の括弧を外しても書き込めなかった→ chr(33)
chr関数の引数が無い場合も書き込めなかった→ chr()

まとめ
chr関数を書くとダメみたいだね
0329デフォルトの名無しさん
垢版 |
2017/10/10(火) 15:14:21.45ID:SGJO8ou1
>>319
なるほどですね。
何がくっついているのかは、時と場合によるのですが、
機種依存文字だけを取り除く方法ってありますかね?
文字コードが5桁だと機種依存文字って判断したら駄目かな
0332デフォルトの名無しさん
垢版 |
2017/10/11(水) 22:08:46.20ID:nNRWIZy5
python初心者なのですが、

class test:
def testfunc(self, y):
self.x = y
x = y

このself.xとxの変数はスコープ以外に何か違ったりしますか?
0337デフォルトの名無しさん
垢版 |
2017/10/11(水) 22:18:27.93ID:/s7Nkk2O
>>334
とても強いエロを感じる
0338デフォルトの名無しさん
垢版 |
2017/10/11(水) 23:25:24.73ID:Zzyc4gmK
>>331
意義あり!
0342デフォルトの名無しさん
垢版 |
2017/10/13(金) 09:45:02.60ID:BWoTjir1
チラシの裏

windows で tensorflow が 3.6にも対応していたので、3.6.3を入れてみた。
いきなり pip install tensorflow したら、必要なものぜんぶとってきてくれてノーエラーノーウォーニングであっさり入った。
すげー!

ついでに pip install mod_wsgi してみた。
mod_wsgi-express.exe ???
何だそれ?
mod_wsgi-express module-config
で出てきた3行をhttpd.confにコピーしてみた。
エラー。
pipしたのは、まだ、tensorflowとmod_wsgiだけだからな。
アプリで使ってるパッケージをpipしてみた。
どれも難なくというかパーフェクトにサクサク入る。
で、これまたあっさり最新のmod_wsgiでアプリが動いたwww
makeファイルを修正してmod_wsgi.soを作る手間が要らなくなった。

なんかもうwindowsでいいって気分。gpu c++ 関係は割とwindowsの人が多いし。
0343デフォルトの名無しさん
垢版 |
2017/10/13(金) 10:40:59.06ID:pR0qV+RO
test
0344デフォルトの名無しさん
垢版 |
2017/10/13(金) 11:25:21.67ID:Hu5pWW8/
>>342
まぁでも、mod_wsgi作ってる人がWindows上で直に使わ無い方がいいって言ってるんですけどね
せめて、dockerコンテナ内のLinux使えと。
0347デフォルトの名無しさん
垢版 |
2017/10/14(土) 14:33:13.91ID:nAGT83AF
いいか、
Perlは、この世界で一倍いい言語だ!
いちばん優れた軽量プログラミング言語なんだ!!

おれには
Perlしかないんだ!
だから、これがいちばんいいんだ!!
0349デフォルトの名無しさん
垢版 |
2017/10/14(土) 23:20:05.16ID:ZjGmTFeR
>348
[0]*Hは、要素数H個で、値が全て0のリストを作っている。

下のは、二次元配列に相当する入れ子のリストを作っている。
一つ目の添字は0からH+1までのH+2個分で、
二つ目の添字は0からW+1までのW+2個分

c[h][w] で、h行w列目のデータにアクセス出来る。
0350デフォルトの名無しさん
垢版 |
2017/10/16(月) 23:41:10.10ID:pw2zTQ02
pyenvの初期化にはbashとかで
eval "$(pyenv init -)"
とせよとあり、この'-'はUNIXの慣例に照らせば標準出力を表すファイル名としての'-'だと思うのですが
 pyenv init test.txt
とやってもtest.txtができない…
0353デフォルトの名無しさん
垢版 |
2017/10/17(火) 20:15:20.79ID:fO6Q7s1J
>>352
レスdクス、
なんじゃそりゃあああああああああ!

ちなファイルに落とすのはこうやればできていた
$ echo "$(pyenv init -)" > test.txt
ので実はさほど困ってはいなかったが「-」がわけわかんなくてスゲー悩んでた;
0354デフォルトの名無しさん
垢版 |
2017/10/20(金) 15:55:38.53ID:sAkkqhU+
ばかちん
0355デフォルトの名無しさん
垢版 |
2017/10/20(金) 22:03:10.75ID:QqXEyXEA
先月からpython始めた初心者です。
yahooファイナンスにアクセスして、ポートフォリオに登録してある株の現在値一覧を取得するプログラムを書いたんだけど、毎回ログインが必要で結構時間が掛かります。(seleniumのwebdriver使ってheadlessモード)
これって、cookieとか使うとログイン維持できて毎回ログインしなくて済むようになるんすか?
0356デフォルトの名無しさん
垢版 |
2017/10/20(金) 23:00:07.32ID:h7aVEIq7
サイトのHTML を解析すれば、ログインも自動化できる

ユーザー名・パスワードを入力して、フォーム送信ボタンを押す
0357デフォルトの名無しさん
垢版 |
2017/10/21(土) 00:28:34.36ID:ZBCKl1CT
>>356
レスさんくすです。ログイン自動化はできてますが、(yahooなんで) login-nameとpasswordの2段階で、その間にちょっとwait入れたりして、結構時間かかるんですよね。まぁ回線が遅いのが一番の原因だけど。で、毎回ログインしなくてもいけるようにできないのかなと、
0359デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:52:19.07ID:MLpq6jOs
ubuntuの設定で一日使ったわ
全くの素人だから2と3の設定とか共存ワケワカラン
0361名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 11:47:29.26ID:4xyHmATU
付属のspyderすらよく分からないガチな初心者なんやけど、BASICの感覚で覚えられると思ってたら何から何までチンプンカンプンで初心者でも分かりやすいサイトか入門書あれば教えてちょんまげ
最終的にはゲーム作りたい
0364名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 19:53:28.01ID:TNgDAF9+
リアルタイムでmatplotlibのグラフを更新して、その様子を見ながらグラフに使われているパラメータを変更したいです
リアルタイムアニメーションまでは出来ました
アニメーション中にguiでのパラメーター入力を付けるというのは方向性としては良いアプローチでしょうか?

tkinter等でグラフ表示等も一から作る方が普通ですかね?
0365デフォルトの名無しさん
垢版 |
2017/10/22(日) 23:35:20.53ID:T5g6OFOX
おすすめの入門書教えてクレメンス
0367デフォルトの名無しさん
垢版 |
2017/10/23(月) 00:06:18.31ID:Bxzo9A+x
>>364
アニメーションてのが何するつもりなのかよくわからないけど、、、、
matplotlibで描いたグラフはFigureCanvasWxAggを使ってwxのUIに乗せられるよ
やったことないけどtkinterでも何かしら方法があるんじゃないのかな?
0368デフォルトの名無しさん
垢版 |
2017/10/23(月) 00:11:16.58ID:A3jhOkfm
>>365
まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014

その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

いきなり「みんなの」から読むと、難しくて無理
0370デフォルトの名無しさん
垢版 |
2017/10/23(月) 00:58:39.36ID:phfl82OJ
俺、pythonの解説書を一冊も読んだことないけど、
ネット上にある情報で、他の言語のプログラムを、
pythonではどうなるか、とか調べてるうちにそれなりに書けるようになった。
他人の書いたプログラムを改造するのもいいかも。
まぁ、プログラミング初心者ではないから、ちょっと違うか。
0372デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:29:28.55ID:+9jYDrtb
>>366
内容はいいのかもしれんけど、ハゲ散らかしたおっさんがなあ…
金髪白人天才美少女ならよかったのに
0373デフォルトの名無しさん
垢版 |
2017/10/23(月) 07:42:46.52ID:RGFT1PbK
>>366->>372
thx
0374デフォルトの名無しさん
垢版 |
2017/10/23(月) 07:48:09.77ID:BuwAMsXV
ハゲに教わるとハゲるからなその覚悟だけはヨロ
0376デフォルトの名無しさん
垢版 |
2017/10/23(月) 10:13:36.45ID:tj3bY27g
>>367
アニメーションするグラフを見ながら、パラメーターや条件をguiでの入力で少しずつ変更するという事をやりたい(良さそうなパラメーターや条件を試行錯誤で探したい)

ただ、matplotlibを使った用途としてはあまりやらないのかなと思ったので(ざっと探した所ではアニメーション自体も使っている方が少なかった)
そういう用途ならpygameか何かで表示部分を作るのかなと思い質問してみました

もう少し同じような事をやっている方がいないか探してみます
アドバイスありがとうございました
0377デフォルトの名無しさん
垢版 |
2017/10/23(月) 12:23:36.10ID:BXzCXH2k
>>376
いやだから、FigureCanvasWxAggなりTkAggなりを使ってmatplotlibが描くグラフをUIに載せてデータを好きに触ればいいじゃないのさ、、、と言ってるんだけど。

早い話、画面上に配置されたUIを使ってグラフに表示するデータを変えて、そのままグラフが更新できれば良いんじゃないの?
0379デフォルトの名無しさん
垢版 |
2017/10/23(月) 17:07:02.45ID:lCIoxZis
>>364
OK
0380デフォルトの名無しさん
垢版 |
2017/10/23(月) 19:06:04.44ID:BuwAMsXV
>>375
ちょいとそこの毛の少ない、もとい、毛のないお方
その人聞きの悪い言い方ぁ取り下げてもらえませんかねぇ
あっしぁ〜ハゲに対して憐みの感情はありますけどもねぇ
ヘイトなんて気持ちは毛頭ござんせんよぅ
0381デフォルトの名無しさん
垢版 |
2017/10/23(月) 20:19:57.00ID:NosJ+6d4
pcにはanaconda入れてるがandroidタブレット用に同じの入れれないかな。
qpythonてのを入れてるがnumpyが使えないから不便
0383デフォルトの名無しさん
垢版 |
2017/10/23(月) 23:34:34.10ID:NKAmnKE1
>>376
普通はパラメータの変更か、更新ボタンをトリガとして再作成再描画で事足りるな
どこまで感性に訴えるかは自由だが、業務用なんかだと繰り返し使うことにより脳内でイメージされるから無駄と見做してる
0385デフォルトの名無しさん
垢版 |
2017/10/24(火) 06:08:34.30ID:MGKYkkj+
>>381
yoga book
0386デフォルトの名無しさん
垢版 |
2017/10/24(火) 23:40:25.58ID:wj00lXqk
iOSならPythonとかSwiftとか使えるんだっけか
ipadpro持ってるけど試そうと思ったことすらなかった
0388デフォルトの名無しさん
垢版 |
2017/10/25(水) 11:09:52.34ID:SmjJVa23
termuxはgui系だめだしなぁ
結局タブレットでpython使って遊ぼうとするとwindowsタブレットが一番手っ取り早い。
でもatom xN系のCPUで込み入ったことすると重いよ。
0390381
垢版 |
2017/10/25(水) 13:12:31.58ID:brfoWM6t
レスサンクス、いろいろ解がありますね。yogaのwin版良さげだけど自分、開発はpcでやって使うのはもっぱら寝床だから690gはちと辛い。
termuxは知らなかった。root取らなくても行けるらしいので試してみるわ
0391デフォルトの名無しさん
垢版 |
2017/10/25(水) 22:50:38.23ID:hr2UeJHg
しかもRubyとPerlまで使えるのか…いいじゃないかこういうのでいいんだよ
でもJupyterならもっとよかった
0392デフォルトの名無しさん
垢版 |
2017/10/25(水) 23:08:27.31ID:3v0u7VMT
termuxでjupyter?venv作ってpipでインストールできますよ
termux上でサーバ起動して、ブラウザアプリからアクセスする感じ
0394遊園地
垢版 |
2017/10/26(木) 02:20:53.99ID:5Xb4wL2W
django

面倒なら tk
0396遊園地
垢版 |
2017/10/26(木) 03:36:01.71ID:5Xb4wL2W
全部、無視して良い。

web系と業務系で分かれてたけど、C#だとIEちゃん残念
とか言われなかったら、なぁー。

別に言語は2,3個 適当に使えば良いと思う。

PCがCore 2 Duo以上でグラボ1G積んで無いなら
win10のVisual StudioでC#はきついな。

MonoDevelopでgtkは
初心者、向きでは無いので、オススメしない。

低スペPCでXPじゃないなら、GUIはweb系に行った方が
ストレスが無い。
0397デフォルトの名無しさん
垢版 |
2017/10/26(木) 04:18:55.79ID:tVSriKDm
Core2っていつの時代だよ。
0399デフォルトの名無しさん
垢版 |
2017/10/26(木) 11:33:08.51ID:v4GCj7LM
また無のひとか
0400デフォルトの名無しさん
垢版 |
2017/10/26(木) 12:03:34.74ID:UgYuFv5Z
ちょっと教えて下さい
def fn():
if i==0:
print(i)

i=0
fn()

のとき、iはグローバルなのでfn()の中で0がプリントされますよね
ところがfn()のif文の下に
i += 1を置くと、1が出力されずにエラーになってしまいます。これはなぜなんでしょう?
0401デフォルトの名無しさん
垢版 |
2017/10/26(木) 12:06:31.15ID:UgYuFv5Z
あれ、投稿したらインデントがなくなってしまいました。
プログラム上は入ってます
0402デフォルトの名無しさん
垢版 |
2017/10/26(木) 12:22:36.98ID:1mIrKNx5
>>400
最初はiを変更してないからグローバルとして解決された。
i += 1 とするとiはローカルになるが、その前にi==0といきなりiを使用しているのでエラーになる。
この場合はfn()の下にglobal iと宣言すればエラーは出ない。
0403デフォルトの名無しさん
垢版 |
2017/10/26(木) 12:23:15.31ID:v4GCj7LM
def fn():
global i
if i==0:
i += 1
print(i)
0404デフォルトの名無しさん
垢版 |
2017/10/26(木) 12:24:32.76ID:v4GCj7LM
これでもいい

i=0

def fn():
if i==0:
i += 1
print(i)

fn()
0405デフォルトの名無しさん
垢版 |
2017/10/26(木) 14:27:13.45ID:wCeqqEld
ありがとうございます、そういうことでしたか。
代入より先に比較するからグローバルになるのかと思ってしまいました。(汗)
0406デフォルトの名無しさん
垢版 |
2017/10/27(金) 01:35:46.75ID:+mfQY/AS
>>392
おー、できるんですか。
venvって環境切り分けるやつですよね…
それさえ手に余る程度のスキルだけど、いずれ試してみます。
0407デフォルトの名無しさん
垢版 |
2017/10/27(金) 01:41:44.56ID:+mfQY/AS
あとtermuxのスタイルを買ったけどカラーが貧弱すぎてお金払うほどじゃなかった。
QPythonと違ってソラライズみたいなテーマが無いしフォントの大きさも変更できない。
0410デフォルトの名無しさん
垢版 |
2017/10/27(金) 15:47:59.49ID:Ia7Vn2FS
from multiprocessing import Process

if __name__ == "__main__":
  def hoge():
    print("ok")
  p = Process(target=hoge)
  p.start() # AttributeError: Can't get attribute 'hoge' on ....

↑動かない

def hoge():
  print("ok")

if __name__ == "__main__":
  p = Process(target=hoge)
  p.start()

↑これなら動く

なんでこうなるん?
0411デフォルトの名無しさん
垢版 |
2017/10/27(金) 15:55:05.74ID:mb/ytpAQ
if __name__ == "__main__":
global hoge
  def hoge():
    print("ok")
  p = Process(target=hoge)
  p.start()
0412デフォルトの名無しさん
垢版 |
2017/10/27(金) 15:58:36.58ID:Ia7Vn2FS
>>411
それ試したけど動かなかった。
あと、確かpythonはif文で変数のスコープは変わらないはず。
0413デフォルトの名無しさん
垢版 |
2017/10/27(金) 18:03:22.59ID:QrHJDMLe
その場合、Processはメインモジュールをpickleで
シリアライズしてサブプロセスに送信する、
サブプロセス側でデシリアライズされるときに__name__のif文はfalseになるのでifの中で定義している関数を使うことができない。

と、理解してるんだけど違うかも。
0414デフォルトの名無しさん
垢版 |
2017/10/27(金) 18:20:23.20ID:YYNNkiX3
バージョンの問題かもしれんが
macのpython3.6では動かないと言ってる方も普通に動いた
0415デフォルトの名無しさん
垢版 |
2017/10/27(金) 22:27:56.86ID:ukcOGy2Y
>>410
もう解決してるだろうけどその関数とエラーメッセージで
Stackoverflowで検索するとズバリの答えがあったぞ
0416デフォルトの名無しさん
垢版 |
2017/10/28(土) 09:48:33.05ID:6bG+Py6x
1番効率いい勉強法ってなんなの
0417デフォルトの名無しさん
垢版 |
2017/10/28(土) 10:58:46.08ID:OzR/VQB1
作りたいものを作ること。分からない時だけ都度調べること。
駄目なのは最初からぶ厚い文法の本を読んでお勉強すること。
0418デフォルトの名無しさん
垢版 |
2017/10/28(土) 11:46:56.10ID:YrbVG7kU
if __name__ == "__main__":
  hoge = lambda : print("ok")
  p = Process(target=hoge)
  p.start()
0421デフォルトの名無しさん
垢版 |
2017/10/28(土) 14:03:58.05ID:YrbVG7kU
>>420
女の子がかわいい
0422デフォルトの名無しさん
垢版 |
2017/10/28(土) 15:47:40.47ID:6bG+Py6x
>>420
AV?
0427デフォルトの名無しさん
垢版 |
2017/10/29(日) 01:11:44.25ID:Q3rUUFx5
pythonで検索すると
ヘビ好きのアカウントが出てくる
ちょっとヘビが可愛く見えてきた
0433デフォルトの名無しさん
垢版 |
2017/10/29(日) 19:27:00.91ID:Xc9r6MI9
サイトから一括で画像落としたいんだけど
/img/omake.jpg
/img/oppai.jpg
/img/hage.jpg

みたいにあったら差異がある部分を配列に入れて、
for i in imgs:
requests.get(i)

みたいにやる以外に方法無いかな?
0437デフォルトの名無しさん
垢版 |
2017/10/29(日) 21:34:23.54ID:PoMNlXaU
二次元タプルの数字の数値としての要素指定ソート、
itemgetterで出来なくて、前処理でフラット化、再リスト化なんてことやってたけど、
lambda使ったら一発で出来た、ワロタw
0445デフォルトの名無しさん
垢版 |
2017/10/31(火) 10:10:28.40ID:0NpgMbSB
無能だなおまえ
0446デフォルトの名無しさん
垢版 |
2017/11/02(木) 11:14:04.55ID:lxfc7DAt
ここそんなに活発なスレじゃなかったのに
IP出したくないへたれ質問者がなだれ込んできたのかな
0447デフォルトの名無しさん (ワッチョイ 2b9f-1mNv [118.152.82.239])
垢版 |
2017/11/03(金) 14:14:08.21ID:1lWviljw0
IPぐらい幾らでも出しゃいいのにね
0448デフォルトの名無しさん
垢版 |
2017/11/04(土) 20:55:44.17ID:u0Id6X+H
メソッドに
@staticmethod
ていうデコレーターをつけるのはなんの意味があるんですか?
0449デフォルトの名無しさん
垢版 |
2017/11/04(土) 21:26:45.42ID:yrOuXGbd
オブジェクトを作らなくても使えるメソッドでインスタンスの状態に依存しないもの
実質ただの関数
0451デフォルトの名無しさん
垢版 |
2017/11/04(土) 21:55:36.95ID:u0Id6X+H
>>449
>>450
わかりやすい説明ありがとうございます

ただの関数をクラス内に置いて継承したときにオーバーライドできるようにしてるんですね
0453デフォルトの名無しさん
垢版 |
2017/11/05(日) 11:40:23.20ID:3rzD9nGQ
クラスアトリビュートをインスタンスから参照するとアトリビュートエラーになるの?なぜ
0454デフォルトの名無しさん
垢版 |
2017/11/05(日) 11:58:10.91ID:EdgfVjEx
python3.4.2でurllib.request.urlretrieveをUAを指定して使用するにはどうすればいいんだろう…
死ぬほど調べたけど情報が錯綜してて困った

http://d.hatena.ne.jp/kenpy/20110706/1309964450
これとか参考にしたんだけどHTTPError403で変わらないよ…
urllib.requestで記載しているのが一切ないよ
0455デフォルトの名無しさん
垢版 |
2017/11/05(日) 12:27:29.10ID:WZULYqMq
urllibはインターフェースを見ると目眩がするし
ソースを見ると吐き気がする
0457デフォルトの名無しさん
垢版 |
2017/11/05(日) 15:48:30.04ID:tWAi3wrN
>>454
urllib.request.urlretrieveでリクエストヘッダーを指定する方法は分からなかったけど、
公式ドキュメントに書いてあるようにリクエストオブジェクトでリクエストヘッダーを指定する方法でできた
試したサイトはUser-Agentを指定しないと403になるサイト(たまたま見つけた)
これでダメならRefererも指定してみてはどうでしょうか

>>> import urllib.request
>>> def my_urlretrieve(req):
with urllib.request.urlopen(req) as r:
print(f'statu code: {r.getcode()}')
with open(req.full_url.split('/')[-1], 'wb') as f:
f.write(r.read())

>>> url = 'Hな何かのサイトの画像URL.jpg'
>>> headers = {} #リクエストヘッダー未指定でやってみる
>>> req = urllib.request.Request(url=url, headers=headers) #リクエストオブジェクト作成
>>>
>>> my_urlretrieve(req) #作成したリクエストオブジェクトでアクセス → エラー403
(エラーが長すぎて書き込みないから省略)
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
>>>
>>> headers = {'User-Agent': 'Mozilla/5.0'} #リクエストヘッダーにUser-Agentを適当に指定
>>> req = urllib.request.Request(url=url, headers=headers) #リクエストオブジェクト作成
>>>
>>> my_urlretrieve(req) #作成したリクエストオブジェクトでアクセス&保存
statu code: 200
>>>
0458デフォルトの名無しさん
垢版 |
2017/11/05(日) 15:52:43.90ID:tWAi3wrN
自作関数のとこの空白が潰れちゃったけど、こんな感じ

>>> def my_urlretrieve(req):
   with urllib.request.urlopen(req) as r:
     print(f'statu code: {r.getcode()}')
     with open(req.full_url.split('/')[-1], 'wb') as f:
       f.write(r.read())
0463デフォルトの名無しさん
垢版 |
2017/11/05(日) 20:54:02.10ID:7MAqq2ks
firefox拡張じゃあかんの?
自分で苦労して手に入れた画像のほうが興奮するん?
0465デフォルトの名無しさん
垢版 |
2017/11/05(日) 21:15:55.01ID:tWAi3wrN
>>454
urllib.request.urlretrieveはレガシーなインターフェイスで将来廃止されるかもって
公式ドキュメントに書いてありますがな、死ぬほど調べても情報出てこない理由が分かったね♪
0468デフォルトの名無しさん
垢版 |
2017/11/06(月) 17:03:47.07ID:3B98F6OL
Hなこと、自動化したいなぁ
0474デフォルトの名無しさん
垢版 |
2017/11/07(火) 11:49:33.97ID:RfmiegB6
PythonのためにWin7 64bit AnacondaをインストールしたらJupyterもついてきた。
しかし、Webブラウザがシェルになっているって気持ち悪すぎ。
0478デフォルトの名無しさん
垢版 |
2017/11/07(火) 20:01:04.34ID:OAzchH0a
clangのstatic analyzerみたいにコマンドラインから補完候補を取る方法ってないっすか?
ipythonで補完候補取れたら楽なんだけどさ
もしできたらエディタの補完プラグイン作るのに便利
0479デフォルトの名無しさん
垢版 |
2017/11/07(火) 20:05:37.92ID:2Ksb3k9T
>>477
それってオワコンではないのか?
0482デフォルトの名無しさん
垢版 |
2017/11/08(水) 07:00:45.63ID:ZWKv78KM
webでもmatplotlibのanimationって使えるんだっけ
0483デフォルトの名無しさん
垢版 |
2017/11/10(金) 18:14:55.78ID:3yUKSNr0
pythonでmac用のGUIを作ったんですがスケーリング?が自動で有効になってしまってぼやけてしまいます
スケーリングを無効化する方法ってどうすればいいでしょうか
WindowsならwindllのSetProcessDPIAware()で無効化できました
0484デフォルトの名無しさん
垢版 |
2017/11/11(土) 18:44:34.44ID:pgImKQ1T
>>479それは僕の使っているelpyだと思う。
世界で最後の一人になっても使い続けるけどね
0485デフォルトの名無しさん
垢版 |
2017/11/11(土) 19:15:43.44ID:TpLoCFAx
>>481
notebookとかの拡張子?が
.ipynb だけど
最近まで
.jpynb だと思ってたわ
0487デフォルトの名無しさん
垢版 |
2017/11/12(日) 08:50:34.61ID:U3HKGrlh
ggrks と略されることもある言葉だとググってわかりました。
0490デフォルトの名無しさん
垢版 |
2017/11/13(月) 09:48:22.85ID:eLWSSjrk
今日から使えカス
0492デフォルトの名無しさん
垢版 |
2017/11/13(月) 13:25:18.01ID:K9osSosX
I would never call U short and fat.
0495デフォルトの名無しさん
垢版 |
2017/11/13(月) 17:22:59.78ID:hc328vRK
IPythonで文字列を表示する場合に、その都度先頭から上書きできませんか?
例えば、

あいうえお
かきくけこ
さしすせそ

と文字列を3行で表示した後、次に表示させる時も「あ」の位置から上書きしたいです
1行だけならsys.stdout.writeの\r指定で可能ですが、
1度に複数行を表示する場合だと、当然最後の行(さの位置)からしか上書きできません
何か良い方法があれば教えて下さい
0498デフォルトの名無しさん
垢版 |
2017/11/14(火) 06:36:04.42ID:cUNtLaY6
>>495
まず、IPYTHONを立ち上げる前に、
format c:を実行する。

システムが何か言ってきたら、迷わずYを
押し、エンター

これで3行表示後に上書きモードになるぞ
0499デフォルトの名無しさん
垢版 |
2017/11/14(火) 12:58:47.90ID:+qsraNW9
rm -Rf /
0500デフォルトの名無しさん
垢版 |
2017/11/14(火) 13:49:43.17ID:hsklwpX/
cx_freezeでpython3.6とpygameをexeにしても
動かない検索して何個か試したけど無理だった
原因になりそうなこと分かるかたいますか?
0501デフォルトの名無しさん
垢版 |
2017/11/14(火) 15:02:54.87ID:2GLW+Ngf
おりますん
0504デフォルトの名無しさん
垢版 |
2017/11/14(火) 18:22:01.22ID:2GLW+Ngf
そうなのー!?(東急リバブル)
0505デフォルトの名無しさん
垢版 |
2017/11/14(火) 18:31:21.81ID:O63UZurg
なんでwindowsだって言ってんのにrmなんだよww
覚えたての言葉使いたがる糞餓鬼かな?ww
0507デフォルトの名無しさん
垢版 |
2017/11/14(火) 19:39:43.24ID:dDwPa6pv
幾ら職場に、上司に腹がたっても
退職直前にlsコマンドをrmに結びつけたり
しちゃダメだぞ。
0508デフォルトの名無しさん
垢版 |
2017/11/14(火) 21:19:52.04ID:QREtRkA7
readline()でファイル上の文字列を読み込むと、最後に「\n」がつきますよね。
この「\n」を除去するためスライス([:-1])を使っているのですが
もっとパイソニックな方法がありますか?
0514デフォルトの名無しさん
垢版 |
2017/11/16(木) 11:41:36.69ID:daoo5ECa
word2vecがやりたくて、windowsにanaconda経由でPythonやgensim
を入れました
gensimは全部がPythonで実装されているわけではなく
C言語で書かれたプログラムを呼び出しているらしいですが
このC言語のプログラムをコマンドラインから呼び出すにはどうすればいいのでしょう?
それとも単体の実行ファイルにはなっておらず
Pythonからしか呼び出せないのでしょうか?
0517デフォルトの名無しさん
垢版 |
2017/11/16(木) 13:26:34.44ID:vPSoPucO
みんなeditorなに使ってるの?
とりあえずanacondaに入ってたspyderを使い始めてみたけど
判断ミスってない?大丈夫かな?
0522デフォルトの名無しさん
垢版 |
2017/11/16(木) 21:07:50.00ID:OeeTdsNn
WindowsでUnixコマンド使いたくて仮想環境構築したいんだけど
Windows10 homeで出来る方法ないかな。
Windows10 proじゃないと無理?
0523デフォルトの名無しさん
垢版 |
2017/11/16(木) 21:31:14.53ID:OeeTdsNn
↑とりあえずWindows Subsistems for Linuxでやってみます
完全な仮想環境じゃないみたいだけど
0526デフォルトの名無しさん
垢版 |
2017/11/16(木) 23:32:08.74ID:RKGUyWMS
>>518
atom
0527デフォルトの名無しさん
垢版 |
2017/11/16(木) 23:39:23.17ID:oecYP9Jt
おれもatom
ただ最近目がチカチカするのよね
いいテーマがあったら教えて欲しい
0530デフォルトの名無しさん
垢版 |
2017/11/17(金) 00:51:59.32ID:2Dbdjz86
開発環境に要求されるもの次第のような気もする。
実際何があれば満足する?

構文色分けやオートインデントはマストとして、
補完機能や、構文チェックがあればまぁ困らないとは思うんだけど。

それともコンソールなんかも一緒になったIDEの方がいい?
0531デフォルトの名無しさん
垢版 |
2017/11/17(金) 02:57:46.92ID:maCd6qKU
ガチ初心者なんだけどモジュールがどういうものなのか教えてつかーさい
APIみたいなものと思っていいの?
0537デフォルトの名無しさん
垢版 |
2017/11/17(金) 15:09:03.37ID:Rty9CsyS
>>535
どんな悪いことしたら、eclipseでの開発を強いられるの?
0539デフォルトの名無しさん
垢版 |
2017/11/17(金) 15:18:39.21ID:ymzw4hJ5
慣れとか惰性で使い続けてるのはまだ分かるけど正直2017年にeclipse選ぶ理由なんてないぞ
0541デフォルトの名無しさん
垢版 |
2017/11/17(金) 16:02:38.77ID:fTr2hBdB
ころころエディタ変える人は
その度に設定しなおしたり、ツール作り直したりしてるの?
0545デフォルトの名無しさん
垢版 |
2017/11/18(土) 12:36:10.85ID:FEn0Kapw
スクレイピングについて詳しくないのですが、https://pastebin.com/pw5MY5em
このようなXPathがあった時に、tr[i](i は可変)/td[1]/aを指定する方法ってありますか?
0546デフォルトの名無しさん
垢版 |
2017/11/18(土) 15:20:17.48ID:CUoz+hOS
pastebin.com ← 嫌な予感しかしないドメインだよね。
0549デフォルトの名無しさん
垢版 |
2017/11/18(土) 16:22:07.83ID:kkjtCBRp
>>546
えっ
0551デフォルトの名無しさん
垢版 |
2017/11/18(土) 17:55:35.92ID:RZqekwb+
>>498-499
有難うございます、。ディスクの空き容量が増えてPythonが軽快に動作するようになりました!
0552デフォルトの名無しさん
垢版 |
2017/11/18(土) 19:22:34.68ID:K92jR5uJ
以前はこんな誘導に引っかかるマヌケがいるかと思ってたが
フェンリルってコテが似たような誘導でVPSを飛ばしたのを見てからは考え直した
0553デフォルトの名無しさん
垢版 |
2017/11/18(土) 19:30:30.88ID:pU7DmZxX
>>552
無知はマヌケじゃねえよ
無知をマヌケだと思っているお前がマヌケなんだ
0556デフォルトの名無しさん
垢版 |
2017/11/18(土) 21:51:04.20ID:feVOO+Au
jupiter notebookについて、
noteの保存先や読込先を別ドライブからにしたいのですが、どのようにしたらよいでしょうか。
ご存知の方教えてください。
0557デフォルトの名無しさん
垢版 |
2017/11/19(日) 12:27:46.83ID:+ydD/daI
>cd 別ドライブ
>cd 別ディレクトリ
>jupyter notebook
0558デフォルトの名無しさん
垢版 |
2017/11/19(日) 12:28:56.23ID:0sXGB0BG
jupyter notebook --generate-config

作成されたファイルを開くと、コメントアウトされた設定が並んでいます。内容を確認して、必要な設定を有効にしましょう。

設定を全て確認してはいませんが、とりあえず以下を設定しています。

# The port the notebook server will listen on.
c.NotebookApp.port = 8080

# The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'/Path/to/notebooks/'


ディレクトリ指定
同様に「c.NotebookApp.notebook_dir」という文字列を探す。これを指定することでいつも同じディレクトリで動かせる。

c.NotebookApp.notebook_dir = 'your/favorite/notebook/directory'
0560デフォルトの名無しさん
垢版 |
2017/11/19(日) 12:52:51.48ID:wldwR+dE
エクセルのセルの内容をIEに貼り付けて次のセルへ移動させて繰り返していきたいのですが方法ありますか?
0561デフォルトの名無しさん
垢版 |
2017/11/19(日) 14:58:02.79ID:0maIvd8f
パイトンではできないと思うわよ。
多分、OLE使うのかな?
dim youtsheet worksheet
set yoursheet = activeworkbook.worksheet("your sheet")
targetsell = yoursheet.cells(yourrow,yourcol)

'以下略



'move next cell
targetsell = yoursheet.cells(yourrow+rowoffset,yourcol+coloffset)
0562デフォルトの名無しさん
垢版 |
2017/11/19(日) 15:00:37.95ID:0sXGB0BG
一旦、エクセルの内容全部読み込めばいいじゃん
いちいち、ファイルにアクセスする必要ないだろ
0563デフォルトの名無しさん
垢版 |
2017/11/19(日) 15:36:04.87ID:v+DVGmxm
csvかなんかにエクスポートしてpandasで読んでselenium使ってブラウザに貼り付ける
0567デフォルトの名無しさん
垢版 |
2017/11/19(日) 17:28:27.90ID:sxn02hI9
例えば大きさ(4, 5)の配列xを6層×10層繰り返してy(4, 5, 6, 10)の配列が欲しい時、どんな演算するのがスマートですかね?
y=((x*np.ones((6, 10, 1, 1))).transpose(2,3,0,1))
は流石にもっといい方法がありそうで……
0569デフォルトの名無しさん
垢版 |
2017/11/19(日) 19:04:14.07ID:1/mWyqVE
>>559
お前も>>552と同じマヌケだなあ
0570遊園
垢版 |
2017/11/20(月) 15:45:22.22ID:24SMIr3R
>>560
ココナラで依頼してた人?
0571デフォルトの名無しさん
垢版 |
2017/11/20(月) 21:06:23.08ID:2+FvKnlV
PerlもRubyも滅んでPythonだけ残る?
0572デフォルトの名無しさん
垢版 |
2017/11/20(月) 22:45:31.79ID:Pkea+7u9
ルビーは滅びんやろ
誰もユーザー居なくなっても一人でメンテしてそう
0573デフォルトの名無しさん
垢版 |
2017/11/20(月) 22:49:26.01ID:ab2J4plE
RubyはRoR以外にキラーソフトがないしなぁ
個人的には好きだが初心者に勧めるならパイソになる
0577デフォルトの名無しさん
垢版 |
2017/11/20(月) 23:36:25.15ID:W/KAhSi0
pythonでも静的型チェックしたい
haskellみたいに関数型っぽい記法がもっと欲しい
0578デフォルトの名無しさん
垢版 |
2017/11/20(月) 23:40:38.86ID:GkhyFhEh
Ruby は、Vagrant, Chef もある

開発者は誰も、Vagrant の作者、
Mitchell Hashimoto (HashiCorp)を避けて通れない、と言われている
0586デフォルトの名無しさん
垢版 |
2017/11/21(火) 21:00:39.52ID:aoTpu/Dr
>>574
僕達の見解としては、これからはアセンブラだと思うよ。
0589デフォルトの名無しさん
垢版 |
2017/11/22(水) 16:17:07.47ID:9hdU5G5U
pythonチュートリアル読んでるけど細かすぎねえかこれ
0590デフォルトの名無しさん
垢版 |
2017/11/22(水) 16:38:05.76ID:tp3rvCxZ
こまいかどうかはともかく
体系がなっとらん
0591デフォルトの名無しさん
垢版 |
2017/11/22(水) 17:50:18.07ID:a2w0tA5i
ドキュメントは必要なところを読めばいいから、ある程度細かいことは歓迎だけどな。
プログラミング自体の初心者だと、たしかにわかりづらい部分はあるかもね。
プログラミング経験者からすると、Python独自の作法とか、
他言語との対照表みたいなのがあるといい。
0592遊園 ◆ExGQrDul2E
垢版 |
2017/11/22(水) 18:08:23.92ID:MeIRWi6F
俺も欲しい。

できればC#と比べてくれると嬉しい。
0593デフォルトの名無しさん
垢版 |
2017/11/22(水) 22:00:33.41ID:pEQ0GCud
けどそのチュートリアル大事やで。
読み終わったあと、さぁ何をしようってなるよ。
0594遊園
垢版 |
2017/11/22(水) 23:24:22.00ID:MeIRWi6F
就職かな?w

 エクセル操作に一票
0595デフォルトの名無しさん
垢版 |
2017/11/22(水) 23:50:34.03ID:a2w0tA5i
>>593
そうだよね。

くだすれの方でネタになったargparseのチュートリアルも正直かなり細かいけど、
ああ、こんなことまで出来るんだぁ、から始まって、
結局その例をパクリながら、自作スクリプトを書き直ししたしなぁ。

チュートリアルは興味を持ってもらってなんぼというところもあるかも知れないけど、
とりあえずマネてみればそれなりに応用は利くようになると思うのが実感。
0596デフォルトの名無しさん
垢版 |
2017/11/23(木) 01:32:49.79ID:dN4AoUwX
初歩的な質問ですいませんが誰か教えてください
def calc(self, event):
#押されたボタンのテキストを取得
char = event.widget['text']
#resetが押された場合
if char == 'reset':
self.k = ['0']
#rが押された場合
elif char == 'r':
self.k = ['0']
#+が押された場合
elif char == '+':
x = x + 1
self.k = [str(x)]#今の値に+1する
elif char == '-':
x = x - 1
self.k = [str(x)] #今の値から-1する

self.dp_var.set(
' '.join(self.k)
)
というプログラムの現在ディスプレイに表示されてる値に+1をするという部分の作り方
で詰まってしまいました
誰かヒントだけでも教えてください・・・
0597デフォルトの名無しさん
垢版 |
2017/11/23(木) 05:48:11.38ID:uF7hi9HH
>>596
どんな方法を使ったか知らないが普通
ディスプレイに表示されている値は出力されたものであり変更できない
一旦削除してまた別の数字を出力すれば
0598デフォルトの名無しさん
垢版 |
2017/11/23(木) 08:55:51.04ID:XBDj7YCq
>>590
素晴らしい体系を提案してくれ給え。
0599デフォルトの名無しさん
垢版 |
2017/11/23(木) 10:45:32.24ID:A/UsFlMH
event.widget.setlabel(str(self.k))
0600デフォルトの名無しさん
垢版 |
2017/11/23(木) 10:57:35.66ID:BHLx1drH
event.widget.configure(width=20, height=5, text=str(x), font=('Migu 1M', '24'), fg='red)
0601デフォルトの名無しさん
垢版 |
2017/11/23(木) 13:35:00.16ID:Gsw8xDzr
>598
80 60 85辺りかな?
0603デフォルトの名無しさん
垢版 |
2017/11/23(木) 17:55:27.07ID:OEoWdmlz
2次元リストで要素はintとstrの混在,ファイルから読んで更新,ファイルに書き出すということをやってます。
1行ごとに読んでsplitで要素に分解して特定の列だけintに変換してlistに格納、書き出すときはint要素をstrに変換してjoinで結合, 1行ごとに書き込みという風にやってますがなんか無駄なような気がします。
2次元リストごと一括でread,writeする簡単な方法はありませんか?
0604デフォルトの名無しさん
垢版 |
2017/11/23(木) 18:31:53.82ID:V6s4lnHY
A,B,C(改行)
X,Y,Z(改行)

CSV だと、列区切りにカンマ、行区切りに改行を使うから、
1行ずつしか読み書きできない

全部の行をまとめると、行区切りがなくなる。
A,B,CX,Y,Z
0607605
垢版 |
2017/11/23(木) 18:50:50.08ID:Gsw8xDzr
>>606
マジか!!
0608デフォルトの名無しさん
垢版 |
2017/11/23(木) 19:00:56.02ID:A7IWH6W8
>>604
全部一気に読みこむと改行て消えるんか?
0609デフォルトの名無しさん
垢版 |
2017/11/23(木) 19:49:19.59ID:DyM7pS8r
>>603
json, pickle, sqlite3好きなの選べ
0610デフォルトの名無しさん
垢版 |
2017/11/23(木) 20:13:58.63ID:EP8I35kw
  ●●●宇宙の外側に何があるのか?●●●
  http://jbbs.livedoor.jp/bbs/read.cgi/stud▲y/3729/1069922074/84-87

  この掲示板(万▲有サロン)に優秀な書き▲込みをして、総額148万円の賞金をゲットしよう!(*^^)v
  http://jbbs.livedoor.jp/stu▲dy/3729/ →リンクが不良なら、検▲索窓に入れる!
0611デフォルトの名無しさん
垢版 |
2017/11/23(木) 20:42:54.38ID:V6s4lnHY
>>608
改行はあるかも知れないけど、

その改行をすべて拾っていかないと、1行ずつ処理できない
0613デフォルトの名無しさん
垢版 |
2017/11/23(木) 21:11:52.18ID:3u99Ww5l
>>603
とりあえずCSV処理するときにsplitだのstrtokだの使うな。大人しくcsvモジュール使え。
エスケープシーケンスどころか空セルにすら対応できなくなるから。
0615デフォルトの名無しさん
垢版 |
2017/11/23(木) 21:24:21.79ID:dN4AoUwX
596です
ありがとうございます
0618デフォルトの名無しさん
垢版 |
2017/11/24(金) 10:34:27.08ID:W4G6A7kr
>>603
>>> csv_raw_data = """hoge,1,10,fuga
apple,2,20,pineapple
strawberry,3,30,mango"""
>>>
>>> print(csv_raw_data)
hoge,1,10,fuga
apple,2,20,pineapple
strawberry,3,30,mango
>>>
>>> csv_data = [[int(col) if col.isdigit() else col for col in row.split(',')] for row in csv_raw_data.split('\n')] #数字の文字列はintに変換して2次元リスト化
>>> csv_data
[['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
>>> [row[1] for row in csv_data] #2列目のデータ抜き出し
[1, 2, 3]
>>>
>>> new_col_1 = [111,112,113] #2列目のNEWデータ
>>> new_csv_data = [[new_col_1[row_idx] if col_idx==1 else col_data for col_idx, col_data in enumerate(row_data)] for row_idx, row_data in enumerate(csv_data)]
>>> new_csv_data
[['hoge', 111, 10, 'fuga'], ['apple', 112, 20, 'pineapple'], ['strawberry', 113, 30, 'mango']]
>>>
>>> new_csv_raw_data = '\n'.join([','.join([str(col) for col in row]) for row in new_csv_data]) #intはstrに変換して文字列化
>>> print(new_csv_raw_data)
hoge,111,10,fuga
apple,112,20,pineapple
strawberry,113,30,mango
>>>
0619デフォルトの名無しさん
垢版 |
2017/11/24(金) 11:33:00.39ID:W4G6A7kr
>>609がすすめるjsonは癖があるし、pickleはバイナリデータだからdumpしないと読めないし編集できないし
sqlite3はしらんけども・・、csvのデータを扱うなら>>613の言うようにcsvモジュール使うのがベストだと思う

しかし、>>603の質問を考察するに特殊なcsvを扱うわけではなく
自分で作った2次元リストの保存にcsvにするというだけなのだから>>618でいいと思う(csvモジュール勉強するのめんどいじゃん)
さらに>>618は自由にカスタマイズ可能、例えば各列の先頭をそろえるためにスペースを入れるとかなんとか
うーん、>>618がベストアンサーであると確定してしまったね
0622デフォルトの名無しさん
垢版 |
2017/11/24(金) 11:51:38.02ID:GsVE4oKd
次に値域を尋ねるべきだった
フォーマットについて話すのはそれからで良かった
0624デフォルトの名無しさん
垢版 |
2017/11/24(金) 12:42:09.24ID:znYgKojB
(自分が)使えない事を世間では「クセがある」と言うんやで
覚えとき
0626デフォルトの名無しさん
垢版 |
2017/11/24(金) 13:33:05.64ID:gyq0zbJn
雑魚にも難しいことができるように言語は進歩してきた
もっと雑魚の言い分に耳を傾けろおら
0627デフォルトの名無しさん
垢版 |
2017/11/24(金) 14:40:46.80ID:W4G6A7kr
>>603
おいっ! すごい方法を思いついちまった、天才かもしれん
2次元リストをstr()で文字列化して、それをファイルに保存
データを復元するときは、exec("value_name " + "=" + "ファイルから読み込んだ文字列”)

>>> data = [['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
>>> import re
>>> save_data = re.sub(r'(\],)','],\n', str(data)) #ファイル直接見た時に見やすいように改行挿入
>>> print(save_data)
[['hoge', 1, 10, 'fuga'],
['apple', 2, 20, 'pineapple'],
['strawberry', 3, 30, 'mango']]
>>>
>>> exec("value_name" + "=" + save_data)
>>> print(value_name)
[['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
0628デフォルトの名無しさん
垢版 |
2017/11/24(金) 14:57:34.18ID:W4G6A7kr
execよりevalの方がいいわ安全だし
>>> value_name = eval(save_data)
>>> print(value_name)
[['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
0630デフォルトの名無しさん
垢版 |
2017/11/24(金) 18:45:37.50ID:FT0GxPR+
そう卑下するな
コピペでも職人の域に逹してるなら大したもんだ
0631603
垢版 |
2017/11/24(金) 20:40:44.33ID:SOBToF3l
たくさんレスありがとさんです
pickleとかpandasとか知らなかったので大変勉強になりました。今回はファイルを直接編集する道も残しておきたかったのでcsvにしました。リードもライトもfor文がなくなってすっきりしましたw
0632デフォルトの名無しさん
垢版 |
2017/11/24(金) 21:23:09.23ID:t572wEhv
Pythonは貴方にとって何?
1. 飯の種
2. 仕事の道具
3. 趣味のツール
4. 楽しいおもちゃ
0634デフォルトの名無しさん
垢版 |
2017/11/24(金) 21:53:56.64ID:W4G6A7kr
>>631
csvモジュール使ってみたけどコレなかなか良いよ
数字の文字列を自動でintに変換してくれるようなことはしてくれないみたいだけど、なかなか良いよ

>>> import csv
>>> csv_data = [['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
>>> with open('csv_test.csv', 'w', newline='') as csvfile:
   s = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_NONE)
   s.writerows(csv_data)


>>> with open('csv_test.csv', newline='') as csvfile:
   s = csv.reader(csvfile, delimiter=',')
   read_csv_data = [[int(col) if col.isdigit() else col for col in row] for row in s]


>>> read_csv_data
[['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
0635デフォルトの名無しさん
垢版 |
2017/11/24(金) 22:18:26.44ID:W4G6A7kr
ちょっと待って、ちょっと待ってぇ、>>618と比較してみようか

>>> csv_data = [['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
>>> with open('csv_test.csv', 'w') as f:
   f.write('\n'.join([','.join([str(col) for col in row]) for row in csv_data]))


57
>>> with open('csv_test.csv') as f:
   read_csv_data = [[int(col) if col.isdigit() else col for col in row.split(',')] for row in f.read().split('\n')]


>>> read_csv_data
[['hoge', 1, 10, 'fuga'], ['apple', 2, 20, 'pineapple'], ['strawberry', 3, 30, 'mango']]
>>>
うーん、こっちもナウイよね
0642デフォルトの名無しさん
垢版 |
2017/11/25(土) 16:01:20.11ID:mxSpQEHX
方言つか、JSONの仕様に従わないものはそもそもJSONじゃない。
まあツールによっては読み込み時に末尾カンマを許容していたりする場合があるけど、
それも癖というほどのものでもないだろう。
0643デフォルトの名無しさん
垢版 |
2017/11/25(土) 17:42:47.00ID:Liv5eBGp
bottleってなんでHTMLの拡張子が.tplなんだろう?pycharmでシンタックスハイライトできないじゃん
0644デフォルトの名無しさん
垢版 |
2017/11/25(土) 21:15:56.32ID:WUmHjByJ
Pythonチュートリアル読み終えたんだけど何作ればいい?
0647デフォルトの名無しさん
垢版 |
2017/11/26(日) 11:25:37.85ID:mDBTtSZ5
>>631
オレオレcsvモジュールcsv_normal.py作ってみたよ(https://ideone.com/E2XicF)
フィールドはカンマで区切り、行は改行で分けるノーマルなcsvを扱うモジュールだよ
※フィールドの左右の空白は無視するよ(stripするよ)

 ・フィールドは見やすいように文字幅を揃えて保存するよ
 ・intに変換できる文字列フィールドはintに変換するよ
 ・floatに変換できる文字列フィールドはfloatに変換するよ
 ・列の追加関数と削除関数を用意しているよ
0648デフォルトの名無しさん
垢版 |
2017/11/26(日) 11:37:41.95ID:WsfHWCB2
そんなRFCにも対応できてないゴミをわざわざ作って公開してなにが楽しいのやら。
0649デフォルトの名無しさん
垢版 |
2017/11/26(日) 11:47:38.84ID:7Eh10X3o
上にも書いたけど、それpandasで遥かに高度なことできるよ
pd.read_csvのdtypeにフィールド名と型の組み合わせの辞書を渡すだけだしastypeメソッドで特定の要素だけ後から型変えれるし
0650デフォルトの名無しさん
垢版 |
2017/11/26(日) 11:56:20.97ID:esw4gVHx
>>648
プログラマレベル1から2に上がったくらいだと
謎の全能感を持ってるから何でも楽しいのよ
0656デフォルトの名無しさん
垢版 |
2017/11/26(日) 13:46:26.16ID:d4hGNmNC
肯定意見しか認めないのもどうかと
それでも批判意見に反対するなら批判内容まで触れるべきと思います
0658デフォルトの名無しさん
垢版 |
2017/11/26(日) 13:54:24.74ID:Ry1/J8TT
>>653
例え無駄でもがんばった子を褒めるのは小学校の先生までで十分です。

公式に出てるcsvモジュールのサンプルコードをコピペ改変してデータを読み書きするまでどんなノロマでも5分もかからない作業なのに半端な独自実装を書く奴はただのアホです。
0661デフォルトの名無しさん
垢版 |
2017/11/26(日) 14:16:57.73ID:Vsmdvm4Z
虚勢を張ったコピペ職人
自覚を持ったコピペ職人
僕はね自覚を持ったコピペ職人になりたいんだ
0662デフォルトの名無しさん
垢版 |
2017/11/26(日) 14:58:36.17ID:mDBTtSZ5
ふぅー 落ち着いたか、、大興奮のレスバトルだったね、見ててワクワクしましたわ
さっきまでのワイの感想「今日はワイがスレの主役やでぇー、 キャッ、イケメンが擁護してくれてはるー、イケメン頑張れっ!」
あとは>>631の感想があれば満足やで、あっちなみにワイは1%の天才側やでぇコピペしてへんから

あと21行目とコメントがいまいちなのと、26行目のコメントが間違ってたから修正な
21行目
 # #csv_dataのインデックス4の列に[1, 2, 3, 4, 5.9, 12, 15, 16]を追加
  ↓
 # #csv_dataのインデックス4に列[1, 2, 3, 4, 5.9, 12, 15, 16]を追加

26行目
 # #csv_dataのインデックス4の列に[1, 2, 3, 4, 5.9, 12, 15, 16]を追加
  ↓
 # #csv_dataのインデックス1に列[1, 2, 3, 4, 5.9, 12, 15, 16]を追加
0667デフォルトの名無しさん
垢版 |
2017/11/26(日) 16:12:31.86ID:kUxrkBSh
うぉおおコードがキモいよぅ……

2次元配列を確保していじるあたりの雰囲気がC++っぽくてPython的ではない
というかクラス使えと

def _csvfield2str(csv_data):
"""
csvのフィールドを全て文字列に変える
"""
return [[str(field).strip() for field in row] for row in csv_data]
この辺がキモすぎる
コメント一行にしたいし二重for inを崩したいのと同じような関数が並んでいるのをどげんかしたい

その原因はこの関数か?
def _str2int(string):
なんでcsv_readで重要そうな型の概念がこんな奥底にあるんだよ
というかこの関数必要なのか
0669デフォルトの名無しさん
垢版 |
2017/11/26(日) 16:51:34.28ID:mDBTtSZ5
>>667
おっ、コード見てくれるなんて有り難いね
状態は保持しないからクラスはいらないかな、デリミタをカンマ以外に
選べるようにする場合はデリミタ保持しないとアレだからクラスにするけど

関数のコメントは増えるかもしれないし”””が好みだね
エディタの色分け表示の関係もあって”””使ってるけど、こだわりはそんなにない

内包表記の二重forは全然抵抗無いんだけど、csvは2次元配列だし、むしろ分かりやすいかと

_str2int関数とかは内包表記で使うために用意した
文字列をintにする場合、isdigit()で変換可能かどうかチェックしてというのを三項演算子で書いてたけど
長くなるし分かりにくいし、’  10 ’のような文字列だとisdigit()でFalseになるからisdigit()する前に
文字列をstrip()しないとだし、floatはどうすんの?というアレがアレでこうなったというわけです
’2e+3’とかもfloat変換に対応すると判定がわけわかめなんで、一度float変換してみてエラーならダメなのねって感じです
0672デフォルトの名無しさん
垢版 |
2017/11/26(日) 19:27:04.78ID:qKR3tC8i
業務に使わせてもらっていいですか?!
あとコメント行で俺が作ったことにして書き換えたいのですが
0674デフォルトの名無しさん
垢版 |
2017/11/26(日) 20:03:10.38ID:Ry1/J8TT
さすがに冗談だろ。
業務のコードにこんな独自実装なゴミ書いたら小一時間説教される。ていうか、俺はしたことある。
c++でstrtok使ってcsv読んでトラブル起こしたアホを。
0677デフォルトの名無しさん
垢版 |
2017/11/26(日) 21:49:03.89ID:mDBTtSZ5
ふぅー 落ち着いたか、、大興奮のレスバトルだったね、見ててワクワクしましたわ
さっきまでのワイの感想「今日はワイがスレの主役やでぇー、エェ? 業務使用の話まで来てるぅ 出典元はワイにしとけやガハハハ」
0679デフォルトの名無しさん
垢版 |
2017/11/26(日) 21:51:38.81ID:S6NQJbZd
>>678
ジーンズはリーバイス以外履くな
靴はPuma

ここからだな
0681デフォルトの名無しさん
垢版 |
2017/11/27(月) 06:18:15.08ID:+ucRUmut
俺も書いてみた
実用性のない気持ち悪くいコードを書いたつもり
import functools
save=lambda data:'\n'.join(map(','.join,map(functools.partial(map,str),data)))
def foo(s):
try:return int(s)
except ValueError:return s.strip()
load=lambda s:[list(map(foo,s.split(',')))for s in s.splitlines()]
0682デフォルトの名無しさん
垢版 |
2017/11/27(月) 12:00:08.96ID:kaiasZZ9
>>647
csv_normal.pyがバージョンアップしたよ(https://ideone.com/78qd00)

 ・フィールドに日本語が混じっていても位置ズレしないよ
 ・csvファイルの読み書きにencoding指定できるようにしたよ

pandasってフィールドに日本語混じってると列が位置ズレして表示されるでしょ?
よく知らんけど、ある意味pandas超えたわガハハハ
0683デフォルトの名無しさん
垢版 |
2017/11/27(月) 17:53:10.75ID:kaiasZZ9
>>682
csv_normal.pyが更にバージョンアップしたよ(https://ideone.com/E3CpT8

 ・クラス化したよ
    モジュール.関数でいちいち呼び出すのめんどくせーと感じ>>667ご指摘の通りクラス化したよ、快適になったよ

十分楽しんだので、これで最後にするよ
0684デフォルトの名無しさん
垢版 |
2017/11/27(月) 18:41:37.25ID:kbE8zzrJ
自ら進化を止めるとき、それは己の負けを意味するのだ。
負けるな>>683
0685デフォルトの名無しさん
垢版 |
2017/11/27(月) 18:46:50.34ID:qn8iMzPT
strtokは非スレッドセーフだったよな?
マルチスレッド環境でアホやったのかな
0686デフォルトの名無しさん
垢版 |
2017/11/27(月) 19:02:21.35ID:x+zk8UEy
Excel のCSV でも、日本語UTF-8 を扱えないのに、
文字化けしないのは、Ruby 以外では初めてかも

すごい技術力!
0687デフォルトの名無しさん
垢版 |
2017/11/28(火) 09:17:45.29ID:eQEpQbXs
車輪を作る仕事は特殊性癖の人がやればいい
普通の人はそれをどう使うかに頭使った方がいい
0688デフォルトの名無しさん
垢版 |
2017/11/28(火) 12:23:03.74ID:s1leOSNl
ちんこを踏んづける用の車輪とか?
0689遊園
垢版 |
2017/11/29(水) 02:03:12.38ID:jnHcEkAi
マはデータ管理しやすい様に隙間(行間)を無くすが、事務は見やすい様に適度に謎の改行を
入れるから、csvファイルは型を崩さずに計算して出力した方が良い。
0690デフォルトの名無しさん
垢版 |
2017/11/29(水) 09:20:15.32ID:0Jcv/v+k
クラスのプライベートなインスタンス変数定義するとき、アンダースコア1つか2つどっち使ってる?
今すごい悩んでる。
0692デフォルトの名無しさん
垢版 |
2017/11/29(水) 10:46:10.68ID:N1ji+G5b
kivyの質問いいかな?
AsyncImageってので画像表示させてるんだけど、py側から渡すファイル名が同じだと画像の中身が変わっていても表示が変わらない。どうもcacheから読み込んでるらしい。kivyファイルの方に、
. AsyncImage:
. nocache: True
. source: root.file_name
とかやってみたけどダメだった。わかる人いたら教えてくらさい
0693デフォルトの名無しさん
垢版 |
2017/11/29(水) 16:14:26.22ID:wmbD4JNt
.reload()
0694価格が取れない(><)
垢版 |
2017/11/30(木) 02:48:08.03ID:4quHV4wq
世界の株価URL (http://sekai-kabuka.com/)から、
日経先物ミニの価格をスクレイピングしたいのだが、出来ない。
以下のコードで見ても価格が取れてない。
どうしたらいい?
XPathや正規表現で取れるかな?
誰か分かる人、お願いしますm(__)m
開発者ツールで見ると、価格が変わるとspanタブが閉じてしまうことと関係あるのかな?

import requests,bs4
from bs4 import BeautifulSoup
URL = "http://sekai-kabuka.com/";
res = requests.get(URL)
print(res.status_code)
r = res.content#html
soup = BeautifulSoup(r, "html.parser")
print(soup)
0696デフォルトの名無しさん
垢版 |
2017/11/30(木) 07:44:44.70ID:FOYY/rMw
>>691
ヤッパリそうなるよね。
けど標準ライブラリのソース見たら2つ使ってるものがあまりなかったから質問してみた。
0698694
垢版 |
2017/11/30(木) 13:15:32.27ID:4quHV4wq
>>697
thx
0701デフォルトの名無しさん
垢版 |
2017/12/01(金) 09:32:39.92ID:I+G4kv/i
いらね
0702デフォルトの名無しさん
垢版 |
2017/12/01(金) 10:46:17.10ID:r85+E8jD
anaconda使ってるけどライブラリをcondaでインストしたりpipでインストしたりで混合してる
今は普通に動いてるけど多分後で困るよね?
0703デフォルトの名無しさん
垢版 |
2017/12/01(金) 15:06:05.69ID:vWwQdnV3
>>702
結構、困る。
0704デフォルトの名無しさん
垢版 |
2017/12/01(金) 15:08:37.42ID:vWwQdnV3
質問です:
anaconda/Jupyterで勉強していましたが、
どうしても理解できない文法とか調べるのがつらくてIDEに頼ろうと思います。
PyCharmをインストール実行できたのですが、
anacondaで作った環境との連携方法がどうしてもわかりません。
連携して使うんですよね?
0706704
垢版 |
2017/12/01(金) 16:39:36.60ID:vWwQdnV3
>>705

有難うございました。
今まで出ていた、
tokenを設定しろ、
といったエラーメッセージは出なくなりました。

?を押しても次のセルに移動せずに止まったままです。
動いているのか動いていないのか。。。

pythonw.exeじゃなくて、python.exeであってますよね。
0707704
垢版 |
2017/12/01(金) 17:25:31.64ID:vWwQdnV3
再起動したら、ちゃんと動作しましたorz

つ I
0708遊園
垢版 |
2017/12/01(金) 18:51:20.39ID:yuRPywGm
0.00XXを掛けたい

数値
25

入力
1
望む出力
2.5

入力
2
望む出力
0.25


入力
4

望む出力
0.0025


どうすれば実現できますか?
0709デフォルトの名無しさん
垢版 |
2017/12/01(金) 19:01:06.10ID:6ID1L61I
おまえ5ちゃん始めてか?
肩の力抜けよ
0712遊園
垢版 |
2017/12/01(金) 20:04:00.18ID:yuRPywGm
>>711
ありがとう、ございます。


2ch時代から居て、無職で、もう5年目
10年前の中学時代から、アニメスレ覗き初めてボチボチ参加
無職になってから、ずっと5chだけど?>>709
お前こそ力抜けよw
0713デフォルトの名無しさん
垢版 |
2017/12/01(金) 20:09:03.81ID:EkSYQR1K
ネタにマジレス、カコワルイ
0714デフォルトの名無しさん
垢版 |
2017/12/01(金) 20:10:42.06ID:u7IYBZzj
この煽り耐性の無さに「2ch時代」のワードの破壊力
>>662といいこのスレ優秀なコピペ原料多すぎない?
0716デフォルトの名無しさん
垢版 |
2017/12/01(金) 22:16:12.30ID:WVxyYcg9
なんというかまあ…古参としては安上りに盛り上がれる>>714が少し羨ましい
0720デフォルトの名無しさん
垢版 |
2017/12/02(土) 11:38:23.11ID:q2D6Ausw
ラズベリーパイ3、python2.7、wxpythonで
単純にスレッドで1づつ増加させてカウントした値をTextboxに表示させるとソフトが落ちるんですけど、これってどうしたらいいですか?
0725デフォルトの名無しさん
垢版 |
2017/12/02(土) 13:03:18.70ID:w/JXzpFE
>>720
wxWidgetsはワーカースレッドでUIさわるなって注意書きがどこかに書いてたはず。実際スレッド立ててUI触ると落ちることがよくある。
wxpythonでもうまいことやってくれてないなら同じじゃないかな。
0726デフォルトの名無しさん
垢版 |
2017/12/02(土) 13:44:23.20ID:q2D6Ausw
あ、なるほど
C#のwpfだとワーカースレッドでUIを変更する場合、Dispatcherしないといけないけど
xpythonでも同じなんでですね
while内で連続的に変更する以外はワーカースレッドでも変更しても大丈夫だったので大丈夫だと思ってました。
何かUIスレッドにする記述が必要なわけですね。
0727デフォルトの名無しさん
垢版 |
2017/12/02(土) 16:27:12.49ID:0ej/FWav
Aくん「さわっちゃいけないんだって」
Bくん「あ、なるほど、記述すればさわっていいんだね」
Aくん「え?」
0728遊園
垢版 |
2017/12/02(土) 18:01:34.68ID:p9+QOh+8
応援したいキャラは多くても、結婚したいキャラはニパちゃんだけですなww
0729デフォルトの名無しさん
垢版 |
2017/12/02(土) 18:40:52.07ID:PL6F8Ywp
>>727
ワーカーじゃない本スレッドにDispatchするんだろ

人の言うこと聞くけど理解が表面的なAくんは伸びしろがないな
0731デフォルトの名無しさん
垢版 |
2017/12/02(土) 18:50:20.83ID:0ej/FWav
Aくん「さわっちゃいけないんだって」
Bくん「あ、なるほど、記述すればさわっていいんだね」
Aくん「え?」
Cくん「ワーカーじゃない本スレッドにDispatchするんだろ」
Bくん「違うよ」
0733デフォルトの名無しさん
垢版 |
2017/12/02(土) 19:38:15.65ID:q2D6Ausw
あ、プログラム知ってる人なら分かるけど、本スレッドという言い方はみないよ
メインスレッドかUIスレッドって言い方でいうから
0734デフォルトの名無しさん
垢版 |
2017/12/02(土) 19:43:03.42ID:XRYOyseR
メインなら本でいいだろ
0735デフォルトの名無しさん
垢版 |
2017/12/02(土) 19:43:18.26ID:q2D6Ausw
プログラマーならDispatherの意味も分からないなら教えてあげてもいいんだけど
0736デフォルトの名無しさん
垢版 |
2017/12/02(土) 19:48:39.81ID:PL6F8Ywp
わかんないからおしえて
JavaでDispatchなんちゃらってかいたら
全部UI用のスレッドがやってくれるんですよーって教わった記憶しかない
0738デフォルトの名無しさん
垢版 |
2017/12/02(土) 20:00:22.95ID:PL6F8Ywp
Pythonとか触ったことすらないが
多分>>720でつまずいてるおまいよりはわかるぞ!
お前ソフトより電機屋寄りだろ!
0739デフォルトの名無しさん
垢版 |
2017/12/02(土) 20:06:05.91ID:q2D6Ausw
いや俺もC#、C++、C、javaでならやり方分かってるんだけど
ここpythonのスレですよね
まー電機もある程度分かるけど
0741デフォルトの名無しさん
垢版 |
2017/12/02(土) 20:16:41.97ID:UE7qzU9L
各言語の細かい違いまでは知らないけど、10言語ぐらい知ってる

ビジネスロジックを考える時は、
仮想言語とか、Ruby みたいな簡単な言語で考えてる

後は、それを各言語に置き換えるだけ
0742デフォルトの名無しさん
垢版 |
2017/12/02(土) 20:18:48.37ID:q2D6Ausw
ちなみにちゃんとプログラム分かってやったことある人ならC#でのやり方は知ってるんだなってのは分かるだろうし
冷やかしじゃなく真摯に知りたければ教えてあげるんだけど
0743デフォルトの名無しさん
垢版 |
2017/12/02(土) 20:24:04.53ID:UE7qzU9L
>>725
>wxWidgetsは、ワーカースレッドでUIさわるな

これは、イベント駆動の基本。
Android とか、Node.js とか、どの言語・フレームワークでも、そう

UI スレッド用の関数と、ワーカースレッド用の関数は別で、相互に呼び出し不可能

ワーカー側から呼び出せる、UI スレッド用の関数は、
特別に定義されているものだけしか使えない
0748デフォルトの名無しさん
垢版 |
2017/12/02(土) 21:13:46.46ID:0ej/FWav
なにジャブ打ち合ってんねん、はやく右ストレート打てや! はやく右ストレート打てや!
0750デフォルトの名無しさん
垢版 |
2017/12/02(土) 22:30:34.39ID:MpD85WIC
>>745
仁徳天皇陵が鍵穴になるように、コード書かれたのも、あなたでしたか。
恐れ入りました。
0751デフォルトの名無しさん
垢版 |
2017/12/02(土) 23:53:17.58ID:7+Ics+9V
えぇ?あれって鍵穴じゃなくて壷なんやけどなぁ
前方が方形で後方が円な前方後円墳なのにぃ
0752デフォルトの名無しさん
垢版 |
2017/12/03(日) 10:12:03.55ID:8r9g9dEn
ここのスレの人達って全然プログラムの話しないし、プログラム全然できないはったりだけの人達ばかりだけと何が目的でこのスレにいるのかな。
実は一応密かにはプログラムできるようになりたいなとは思ってたりするの。
0753デフォルトの名無しさん
垢版 |
2017/12/03(日) 10:17:55.31ID:+3DjBnuM
とりあえず、752は酔った上司に
ビール瓶とかリモコンで殴られるタイプ
だろうなとは思った
0754デフォルトの名無しさん
垢版 |
2017/12/03(日) 10:48:02.08ID:rWJ7c/fb
pythonはどんな感じか知りたくてこのスレ見てる
pythonでできたプログラムさわった事ないんだけど
ホントにpythonって流行ってるの
何かに騙されている感じがする
0756デフォルトの名無しさん
垢版 |
2017/12/03(日) 12:30:43.20ID:rQ6QHFnc
>>751
キン肉マン知らないゆとりですか?
0759リアルタイムデータから4本値を作りたい。
垢版 |
2017/12/03(日) 23:23:11.49ID:Dy/ti4X6
3秒ごとにウエブスクレイピングして、15秒足の4本値を作りたい。
list object has no attribute 'resample'のエラーが出ます。
いいアイデアはないでしょうか?

import numpy as np
import pandas as pd
from pandas.core import resample
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
data1 = []
df = [[],[],[],[],[]] #time・o・h・l・c

def get_data():
#ウエブスクレイピングの処理
return d
def update_data1():
global data1
global df
web_data = get_data()
data1.append(web_data)
df = data1.resample('15S').ohlc()
new_data = dict(t=df[0], o=df[1], h=df[2], l=df[3], c=df[4])

source1 = ColumnDataSource(dict(t=[], o=[], h=[], l=[], c=[]))
#グラフ描画の処理
fig1 = figure(x_axis_type="datetime",width=900, height=600)
fig1.line(source=source1, x='t', y='c')
#o,h,lの描画処理(省略)
plots = fig1
curdoc().add_root(plots)
curdoc().add_periodic_callback(update_data1, 3000) #3秒ごとにウエブスクレイピング
0761デフォルトの名無しさん
垢版 |
2017/12/03(日) 23:31:30.91ID:67hCGbBc
というかふつう「15秒足の4本値」って言われてなんのことかわかるのか?
俺はその世界の住人だからわかるけど・・・・・
0762デフォルトの名無しさん
垢版 |
2017/12/03(日) 23:35:40.00ID:KCu7dhdt
コメントも関数の命名規則もクソだし、ここまで人に物を伝えるのができない人もめずらしいよね
0763デフォルトの名無しさん
垢版 |
2017/12/04(月) 00:36:36.29ID:hHBqwzph
data1にresampleってメソッドを持ったオブジェクトが入ってねえ
ってエラーなんだから
resampleってメソッドを持ったオブジェクトを入れてやればいいんだよ
簡単だろ
0764デフォルトの名無しさん
垢版 |
2017/12/04(月) 02:28:21.14ID:6+W+PiHG
「15秒足の4本値」って相場か?

15秒毎の、4本値は、始値・終値・Min・Max か?
0765デフォルトの名無しさん
垢版 |
2017/12/04(月) 05:46:38.24ID:oJQByMY6
O,H,L,C open high low close
ディトレーダさんだから、
素直に取引業者に毎月使用料払ってapi
つこうた方が良いぞよ
0769デフォルトの名無しさん
垢版 |
2017/12/04(月) 10:33:16.39ID:Mo18QjMW
>>766
ソース全部貼れよって人は手取り足取り教える気だと思うけど
無視しといてその言い草は何なのかね
よほど躾が良かったんだね、君は
0770デフォルトの名無しさん
垢版 |
2017/12/04(月) 11:36:30.19ID:I4PnxWkn
PyChamでファイル編集して、
Save All
しても保存されないんですが、
何が起きてるんでしょう。
0771770
垢版 |
2017/12/04(月) 12:03:43.49ID:I4PnxWkn
ファイルが勝手に読み取り専用になってました。何が起きたんでしょう。。。

それに保存できないのに警告もないとか。。。
0773デフォルトの名無しさん
垢版 |
2017/12/04(月) 14:01:43.03ID:e4rLPkBy
重い数値計算だけはpythonを使うのが辛いけど
他はもうpythonでいいや
0774デフォルトの名無しさん
垢版 |
2017/12/04(月) 14:28:42.48ID:Gq/ps5oZ
>>754
githubとか見ればいくらでも転がってるだろ
それともプログラムじゃなくてアプリケーションソフトってことか?
アプリ見ただけで言語わかるのか?
0775遊園
垢版 |
2017/12/04(月) 14:57:00.06ID:0LjC1FIJ
大学生辺りがアフェサイトに引っかかって、プログラミング始めました(笑)だろ。
本場がアメリカなのに、英語検索もせずに、記事が見つからない!! wwww
とかww 流行ってないwww 情報が少ない(笑)ww なんだろ?www

 なんでww 他人が完成させたコードをお前が触る前提なんだよwwww

どんな感じか知りたいならwww 公式ドキュメントでも読んでろよwww

俺は読まないけどなwww あーーー 読めないんだったwwww
0776デフォルトの名無しさん
垢版 |
2017/12/04(月) 16:43:34.07ID:PtiyKmP1
>>771
保存先が変わったんだろ
0777デフォルトの名無しさん
垢版 |
2017/12/05(火) 08:42:53.12ID:XmJBBuQL
>>775
言語仕様が良いから凄い方が集まってきて
凄い方が作ったものを見て集まってくる方がいて
集まってきた方が作ったものを見てまた集まってくる方がいて
みたな事を具体例付きで知りたいんじゃなかろうか

自分は知らないけどこういう理想的なものでも問題点があったりするのかな
0778デフォルトの名無しさん
垢版 |
2017/12/05(火) 11:15:29.06ID:7xD7c4WI
numpyで作った2次元配列をそのままバイナリファイルにして、
ImageJとかで画像でみたいのですが、
numpyにバイナリファイル出力すると、
勝手にヘッダー部を付けてしまうんですね。

ヘッダーを無しにするには?_・」
0779778
垢版 |
2017/12/05(火) 14:00:06.38ID:7xD7c4WI
flattenで1次元配列にして、forで回してファイル出力したら、ダンプファイル作れました。
0782遊園
垢版 |
2017/12/06(水) 15:42:47.87ID:Ypzu7JTf
>>777
問題は無いけど、頭大丈夫?
0783遊園
垢版 |
2017/12/06(水) 15:53:41.15ID:Ypzu7JTf
pythonと関係ないけど、君の視点が消費者そのもの
良い物に集まるのは確かだけど、作ったものを見て集まるのが仕組みが解らない。

そもそも、凄い人って幾らでソレを公開するの? 無料?
それなら、俺が有料で売る。
0784遊園
垢版 |
2017/12/06(水) 15:54:58.64ID:Ypzu7JTf
と言うネタをAndroidで一度やっただろwwww
0785デフォルトの名無しさん
垢版 |
2017/12/06(水) 16:47:58.36ID:dzmJfTfx
Pythonの優秀な機械学習ライブラリに有料なのあったっけ
有料で公開して売れるようなの作ってよ
0786sage
垢版 |
2017/12/06(水) 17:40:30.08ID:oBvdSzU/
sage
0787デフォルトの名無しさん
垢版 |
2017/12/06(水) 17:51:00.82ID:52oM5RyB
>>783
pythonの人気ってライブラリの豊富さも大きいと思うんだけど
それは凄い方がpythonの何かに惹かれて作ったものだよね、多分
そのライブラリを使って何かを作りたいって集まる方が消費者ってのは違うと思う
0788遊園
垢版 |
2017/12/06(水) 19:31:26.71ID:Ypzu7JTf
馬鹿だなwww お前らwwww

 俺がプログラム何て分かる訳ねぇだろwwwwww

ぶひいいいいいいいいいいいwwwwwwwwww
0789遊園
垢版 |
2017/12/06(水) 19:33:51.41ID:Ypzu7JTf
5ch荒らしながらwww そろそろ無職6年目だしなwwww

 wwwww wwww www

ばーーーかwwww
0791遊園
垢版 |
2017/12/06(水) 20:16:42.16ID:Ypzu7JTf
そもそも、煽りレスに反応するだけで荒らし。
0792遊園
垢版 |
2017/12/06(水) 20:30:19.27ID:Ypzu7JTf
この忙しい時期に煽りに反応してんじゃねぇよ!!!

 今年中に、おちんちんにベロが届かなかったら、お前ら覚悟しとけよ!wwww

ぶひいいいいいいいいいいいいいいいwwwwwwwww
0795デフォルトの名無しさん
垢版 |
2017/12/06(水) 22:14:54.34ID:CzBkxT44
こういう煽りを機械学習であしらうコード書いてみたい。
0796遊園
垢版 |
2017/12/06(水) 23:40:00.89ID:Ypzu7JTf
冗談抜きで、何が格好良くて。何がダサいのか解らない。
誰か教えて下さい。
0798遊園
垢版 |
2017/12/07(木) 00:01:29.58ID:AoT+leNM
Bottle 1ページに収める時に多様する(練習用)
Django 普通に多機能 (設定が面倒いがチュートリアルをggりながらするとできる)
0799遊園
垢版 |
2017/12/07(木) 00:22:14.53ID:AoT+leNM
ふっざけんなよぉおおおおおおおwwww 糞野郎wwwww

 俺は神だぞwwww クソPCがっ!っ!!wwwwwwwww

俺の願いぐらいいいいいいいいい 叶えやがれlwえっうぇえええwwwww

(^q^)「んぐぅうううううwwwwwwwwww 気持ちいい」(裏声)
0800遊園
垢版 |
2017/12/07(木) 00:45:38.62ID:AoT+leNM
Djangoでグラフ作成もできなくも無いけど、
昨日のグーグルニュースでブラウザーとオフィスが合体した奴が
その内でるらしいから、どんな形式に変わるのかは分からない。

勉強して置いて、損は無いと思う。
オフィスが絡むから出力形式が変わるんか? あーー分からん。
(俺の言う事は信じるなよwww)
0801デフォルトの名無しさん
垢版 |
2017/12/07(木) 01:34:21.85ID:wt1P4+bg
>>799
何オナッてんのさ
もちろん、いっぱい出たんやろな
0802遊園
垢版 |
2017/12/07(木) 02:00:30.02ID:AoT+leNM
>>800
消えろ!! てめぇ俺の真似しやがって!”!

 ぶひいいいいいいいいいいいいいwwwwwwwwwww
0803遊園
垢版 |
2017/12/07(木) 02:01:27.29ID:AoT+leNM
IDでバレた。
0806デフォルトの名無しさん
垢版 |
2017/12/07(木) 22:21:39.17ID:QxT2u2P9
これだから5ちゃん初心者は。
逝ってよし。
0807遊園
垢版 |
2017/12/08(金) 14:01:50.34ID:2yGEQiN1
0809デフォルトの名無しさん
垢版 |
2017/12/08(金) 15:32:07.46ID:1R9LnMxY
dat[0, :] = x

これは何ていう記法?
コンマが無ければただのスライシングだけど…
オライリーの本2冊持ってるけど出てない
0811遊園
垢版 |
2017/12/08(金) 16:02:45.11ID:2yGEQiN1
(^q^)「しりとりってどうやったらできますかあーーー?」(大声)

l=[]
#x=int(input())
#[l.append(input()) for i in range(x)]
l=['O','K','N','I','T','O']
[print(i) for i in reversed(l)]
0812遊園
垢版 |
2017/12/08(金) 16:05:45.08ID:2yGEQiN1
あーーーwww つまんね。
0813デフォルトの名無しさん
垢版 |
2017/12/08(金) 16:10:18.64ID:Awh7gcIc
タプルを返す関数つくるのに
return (a,)
とか書く人いるけど全く無駄だよな
return a,
でいい
0815デフォルトの名無しさん
垢版 |
2017/12/08(金) 18:24:03.80ID:1R9LnMxY
シーケンスの要素にタプルを格納できるのはもちろん知ってるけど
インデクシングやスライシングのためにタプルを指定するという事はつまり何なんだ…

この辺きちんと理解できてなかったな。もう少し考えてみる
0816デフォルトの名無しさん
垢版 |
2017/12/08(金) 18:54:11.00ID:0q0HX+Cj
>>809
おっ、お前もいっちょ前にようやく覚えたんか
そりゃ覚えたら、使ってみたい年頃や
0817デフォルトの名無しさん
垢版 |
2017/12/08(金) 18:55:59.34ID:0q0HX+Cj
>>816はレス番間違いや
正しくは>>808
マジで宇津田氏脳や
0821デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:44:46.35ID:TcYdv7Hd
>>810
ダウト

>>> 1,
(1,)
>>> 1,,
SyntaxError: invalid syntax
>>> 1,,,,
SyntaxError: invalid syntax
0822デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:46:52.40ID:ZGFIMoCw
pythonをはじめてnumpyとmatplotlibで遊んでて
あまりにグラフの表示が遅かったのでpyopenglに行って作ったのだけど
せっかくpythonを使っているのにあまりライブラリを生かしている気がしません

で、Pythonらしく、物体検出が面白そうなpypenCVに行こうかなと思っているのだけれど
pyopenCVに行くならこれは勉強しておけみたいな事があれば教えてください
結構バグがあるという噂を聞いたのでちょっと怖い
0823デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:50:16.53ID:TcYdv7Hd
>>820
site.py削除してみ
0824デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:51:02.64ID:IrdOezu+
>>823
消して大丈夫なやつ?
0825デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:52:12.41ID:TcYdv7Hd
>>822
>pyopenCVに行くならこれは勉強しておけ

C/C++
0826デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:52:35.95ID:TcYdv7Hd
>>824
いやなら site.py_ みたいに rename
0827デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:54:24.95ID:IrdOezu+
>>826
やってみる

一応python3.4と3.6の仮想環境作ったら問題なかったからデフォルトのpython3.5が邪魔してる感じなのかな
0828デフォルトの名無しさん
垢版 |
2017/12/08(金) 23:46:58.75ID:bn9A+3KX
>>814
if文とかでも、andやorを併用するときは、条件をパレンで囲ったほうがわかりやすい場合もある
基本的に非推奨みたいだけど、JSの時のクセで、単一条件でもついやってしまうわ
0832デフォルトの名無しさん
垢版 |
2017/12/09(土) 12:33:10.45ID:nuTX+Pqx
>>829
パーレン()
ブラ<
ケット>
スケブラ[]
カリブラ{}
0833デフォルトの名無しさん
垢版 |
2017/12/09(土) 15:39:10.91ID:J8x37gzD
>>830-832
ブラケット、スクエアブラケットは知ってたけど'()'ってパーレンって言うのか
普通に括弧って呼んでた
0836遊園
垢版 |
2017/12/09(土) 21:25:28.79ID:J0X0FLOJ
空の配列って連番作成できないの?
L=[]
R=[]
とか、毎回書いてるんだけど、面倒だからA-Zまで上記の方式でまとめて作成できない?
0838デフォルトの名無しさん
垢版 |
2017/12/09(土) 22:26:59.60ID:r6QOq0kp
>>836
毎回プログラムで
プログラムをファイルに書き出す
プログラムをつくれば
いいんじゃないかな?
0842デフォルトの名無しさん
垢版 |
2017/12/09(土) 23:37:36.78ID:k2/GOVIp
>>836 できましたぁ!
>>> from collections import defaultdict
>>> d = defaultdict(lambda:[])
>>>
>>> d['A'] = [1,2,3]
>>> d['A']
[1, 2, 3]
>>> d['B']
[]
>>> d['B'].append(3)
>>> d['B']
[3]
>>> d['C']
[]
>>> d['Z']
[]
>>>
0844デフォルトの名無しさん
垢版 |
2017/12/10(日) 05:19:39.14ID:Ivp7Fyt3
グローバル汚すな
0845遊園
垢版 |
2017/12/10(日) 09:25:58.63ID:DUp9AezH
A.append(123)とか書いたら name 'A' is not defined
と出るので、仕方なく A=[] と毎回かいてる。

とりあえず、>>843を使わせて頂きます。

 ありがとうございました。
0849おはようござます。
垢版 |
2017/12/10(日) 12:38:55.38ID:9429WHjp
質問なのですが
pythonで書いたコードを実行中に

一分後にコードをすべて再実行するロジックを入れたいのですが
どういったコードをかけばいいでしょうか
0851おはようございます
垢版 |
2017/12/10(日) 12:53:54.45ID:9429WHjp
sleep とかの 一時停止後の再実行ではなくて

計算したのをすべてなしにして
初めから再実行をかけたいんですよね
こまってます
0853デフォルトの名無しさん
垢版 |
2017/12/10(日) 13:23:12.64ID:ye/uOlZy
普通に、1度目の処理は最後にsleep(60)が実行されて、2度目で終了するループ処理では駄目なの?
0854デフォルトの名無しさん
垢版 |
2017/12/10(日) 13:26:15.13ID:rNGiIPu5
>>851
sleepからあけた後に勝手に一からやり直しゃいいと思うよ。

別に一分間隔でプロセス起動しても良いけど。
0856デフォルトの名無しさん
垢版 |
2017/12/10(日) 14:51:53.96ID:Z/uH3qH0
クラスの中でそのクラスのメソッドを呼びたいんだけど
class Test(Parent):
Test().func()

def func(self):
....
....
じゃだめなの?
not defined のエラーが出る
0860デフォルトの名無しさん
垢版 |
2017/12/10(日) 17:31:27.35ID:UOQUQi73
@staticmethod
def func(self):
0861デフォルトの名無しさん
垢版 |
2017/12/10(日) 17:31:52.03ID:UOQUQi73
IDわろた
0862デフォルトの名無しさん
垢版 |
2017/12/10(日) 17:32:30.40ID:UOQUQi73
ああすまそ @staticmethod なら self いらんかった
0864デフォルトの名無しさん
垢版 |
2017/12/11(月) 03:42:41.94ID:hBs7hPmg
自己レス、取りあえずインスタンス生成したとき1回呼ぶだけなんで以下でいいみたいだ。
class Test(Parent):
def __init__(self,**kwargs):
super(Test,self).__init__(**kwargs)
self.func()

def func(self):
.....
.....
0865デフォルトの名無しさん
垢版 |
2017/12/11(月) 06:41:20.17ID:4+bid6rw
ふつうはそうするが
別の理由があって聞いてるんだと思った
0866デフォルトの名無しさん
垢版 |
2017/12/12(火) 17:44:13.16ID:3MG0X84S
>>699
csv_normal.pyがバージョン2.4.0にバージョンアップしたよ(https://ideone.com/u5Ji8H

 Version: 2.4.0
  ・csvデータを罫線で囲む機能を追加したよ(csvデータの可読性アップ)
  ・関数名などをスネークケースに統一したよ(コードの可読性アップ)
  ・関数、メソッドを沢山追加したよ(csvデータの処理機能アップ)
  ・数値リテラル内のアンダースコア表示に対応したよ(数値の可読性アップ )

思いついた機能は全部入れたよ、頑張りすぎてコードが千行超えちゃったよw
目玉は罫線で囲む機能で、罫線パターンは簡単に自作できるようになっているよ
少し早いけどクリスマスプレゼントだよ
0867デフォルトの名無しさん
垢版 |
2017/12/12(火) 18:05:44.87ID:98iDbaWn
まだ続けとったんか
メッチャよくなったやん
0869デフォルトの名無しさん
垢版 |
2017/12/12(火) 21:45:38.63ID:3MG0X84S
>>> import csv_normal as csv
>>> s='''
今日は何かめっちゃ褒められてますがな
ところでまた機能を1つ思いついてしまった・・
この縦書き機能を・・天才かもしれん'''
>>> c = csv.csv([list(string) for string in s.split('\n') if string])
>>> c.fill(); c.refresh_field(); c.replace_field('', ' ')
>>> c.csv = c.csv[::-1]; c.csv = csv.row2column(c.csv)
>>> c._display_delimiter=''
>>> c.print()
こと今
のこ日
縦ろは
書で何
きまか
機ため
能機っ
を能ち
・をゃ
・ 1褒
天つめ
才思ら
かいれ
もつて
しいま
れてす
んしが
 まな
 っ 
 た 
 ・ 
 ・ 
0870デフォルトの名無しさん
垢版 |
2017/12/13(水) 16:02:33.73ID:SHWRPW1I
ボタンを押したときに01〜03の関数を動かしたいんだけど、

btn.OnClick.Add(01,02,03)

とかやってもうまくいかなくて、

btn.OnClick.Add(01)
btn.OnClick.Add(02)
btn.OnClick.Add(03)

みたいにやらないといけない
でもこれだと02や03が不安定で、動くときと動かない時がある
どうすればいいでしょうか
0871デフォルトの名無しさん
垢版 |
2017/12/13(水) 17:49:16.91ID:5NvkV9BJ
>>866
csv_normal.pyがバージョン2.5.0にバージョンアップしたよ(https://ux.getuploader.com/codes/download/6

 Version: 2.5.0
  ・print_idx2メソッドを追加したよ(インデックス表示+罫線で囲むからcsvデータが更に見やすくなるよ)

ideoneサイトだとコード容量オーバーで貼り付けられなかったからコードアップローダーにアップしたよ
※Python3.6から追加された機能を使用しているから古いPythonだと動かないので注意だよ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
0872デフォルトの名無しさん
垢版 |
2017/12/13(水) 19:02:23.16ID:b34l3iDJ
BBQおめ
0873デフォルトの名無しさん
垢版 |
2017/12/13(水) 19:35:28.14ID:X0jO0ehF
>>870
01-03の関数を大きな関数の中で呼び出して、btn.OnClick.Add() にはその大きな関数を渡せばいいんじゃないの
0875デフォルトの名無しさん
垢版 |
2017/12/14(木) 18:31:20.18ID:ehF4QImV
お構いなしに型変換して同じ変数にぶち込むスタイルのコーディングがいつまで経っても慣れんわ
0877デフォルトの名無しさん
垢版 |
2017/12/14(木) 19:32:40.08ID:oezENCsV
>>875
おまえ関数型勢に消されんぞ
0878デフォルトの名無しさん
垢版 |
2017/12/14(木) 19:56:37.07ID:rn0SmpIP
自分も変数なるべく使いまわしてるんだけどこれ速度と可読性の観点でどうなの?
0879デフォルトの名無しさん
垢版 |
2017/12/14(木) 20:48:58.99ID:vpKUBjgx
df何度も上書きして使いまわし
0881デフォルトの名無しさん
垢版 |
2017/12/15(金) 00:17:15.09ID:yw8gSH0I
for文をなるだけ使わないってのは速度の点で重要だけど
素直にc++なりで書いた方が慣れないうちは楽だなと思ったり
0885デフォルトの名無しさん
垢版 |
2017/12/15(金) 11:08:31.56ID:Z44X65Q/
>>871
少し使ってみたけどデータはpandasよりも格段に見やすい
データ抽出はpandasのqueryの方が簡潔で分かりやすい、csv_normalは冗長的だがPythonに慣れてる人はこっちでもいいかも
データを枠で囲む機能はまあまあ気に入った
感想はこんな感じかな、なかなか良い出来だと思うよグラフ化することが無いならこっち使ってもいいかもな
0886デフォルトの名無しさん
垢版 |
2017/12/15(金) 14:57:01.36ID:jrk+Uh93
いやいや変数の使い回しなんて小手先すぎるだろ…
勿論、コマ落ち防止でgc発生を絶対抑止しないといけないとか、変数使い回しが必要な場面もあるけどさ。

あえて書くまでもないことだけど、pythonに限らず、変数を使いまわして可読性メンテナンス性を下げるより、アルゴリズムを変えることを検討した方がいい
0889デフォルトの名無しさん
垢版 |
2017/12/16(土) 13:18:54.64ID:9Fve7Q6b
変数を使い回すということは、前のデータはいらないってこと、そして前のデータと意味は同じってこと
baka = >>875
baka.ng()
baka = >>886
baka.ng()
0890デフォルトの名無しさん
垢版 |
2017/12/16(土) 13:54:20.53ID:MCFqyxDm
変数使いまわさないと
事実上変数のスコープがずっと続いて読みづらいことある
0891デフォルトの名無しさん
垢版 |
2017/12/16(土) 13:56:22.78ID:tthKlmuc
>>889
例えば"aの色"という変数があって、aの色が変わったのなら、当然もとの"aの色"変数に格納する。
これをそもそも使いまわしと言わない。

意味が違うのにデータがいらないという理由で使いまわしてるのなら話にならない。

>>887
何だって例外はあると思うよ。
0897デフォルトの名無しさん
垢版 |
2017/12/16(土) 14:49:36.51ID:9Fve7Q6b
>>891
せっかくbakaを例に出してんのに例を例で被せてくんなよバカ
オマエの例でいえばbakaは"色"という変数だマヌケ
"色"にaの色を格納して、いらなくなったから"色"にbの色を入れてんの
そして色という意味は同じわけ、bakaの例みれば分かるだろ
0898デフォルトの名無しさん
垢版 |
2017/12/16(土) 15:35:32.16ID:9Fve7Q6b
ちっ、せっかくカウンター用意してたのに噛みついてこいやぁ!!
つまり変数の使い回しというのはfor文の変数だ
for baka in (>>876, >>886, >>891):
 baka.ng()

はい、論破ァーww
0899デフォルトの名無しさん
垢版 |
2017/12/16(土) 18:30:11.61ID:PKDI5VWV
最近勉強始めたばっかの初心者なんだけど質問すまん
これの下の方の二つの input って誤植だよね? 正しくは print であってる?
http://imgur.com/fy1mnRS.jpg
0900デフォルトの名無しさん
垢版 |
2017/12/16(土) 19:53:43.43ID:PDgCh/4m
>>899
このコードをそのまま実行した場合と
該当箇所の input を print に書き換えて実行した場合を比較すればわかるけど
「そういう動作」を狙って著者さんがこう書いただけだと思う
初心者向けのサンプルプログラム以外で、こういう input() の使い方ってしないと思うけどね
出版社に問い合わせても図書カードとかはもらえなさそう
0901デフォルトの名無しさん
垢版 |
2017/12/16(土) 19:58:38.21ID:rq6V2ypo
kbhit()だな
0904デフォルトの名無しさん
垢版 |
2017/12/17(日) 00:11:06.04ID:OP5LAhHm
同じidなら結合して出力したい。

l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]

求める結果
id0 python
id1 aiueo
0907デフォルトの名無しさん
垢版 |
2017/12/17(日) 00:56:13.28ID:OP5LAhHm
coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
A01='Coordinates: {latitude}, {longitude}'.format(**coord)

print(A01)
0908デフォルトの名無しさん
垢版 |
2017/12/17(日) 00:57:29.44ID:/cDASRuF
グラフ描画はやっぱりseabornですかね?
他にお勧めのふつくしいパッケージあったら教えてください
0911デフォルトの名無しさん
垢版 |
2017/12/17(日) 06:37:55.25ID:nW0iFIyL
>904

defaultdict 使うと楽だよ。

import collections


l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]

dic = collections.defaultdict(str)
for k, v in l: dic[k] += v
for k, v in dic.items(): print(k, v)
0912デフォルトの名無しさん
垢版 |
2017/12/17(日) 08:24:35.52ID:VH1yLn0n
import seaborn as sns
これ何でsnsにするの? sbが適当じゃない?? seaborn調べると皆snsにしている
0913デフォルトの名無しさん
垢版 |
2017/12/17(日) 11:08:28.09ID:nW0iFIyL
Samuel Norman Seaborn っていう架空の人物が登場するテレビドラマがあって、それに掛けたジョークらしいよ
0914904
垢版 |
2017/12/17(日) 12:36:13.88ID:OP5LAhHm
>>911
助かりました。ありがとうございます。
0918デフォルトの名無しさん
垢版 |
2017/12/17(日) 16:25:27.84ID:GUabbIAG
プログラム初心者なんだけど質問第2すまん
pip installについてなんだけど
教本通りにQRコードを生成するパッケージをインストールしたいんで
pip install pillow qrcodeって入力したら
Collecting pillow って出てきてずっと固まってる
時間経てばインストールし終わる?
0919デフォルトの名無しさん
垢版 |
2017/12/17(日) 16:32:17.61ID:XxtCNzg/
バージョンは
0920デフォルトの名無しさん
垢版 |
2017/12/17(日) 16:42:51.96ID:VH1yLn0n
Windowsならコマンドプロンプトを起動するときに右クリック→"管理者として実行"
で起動しないとpip install失敗するよん
0922デフォルトの名無しさん
垢版 |
2017/12/17(日) 17:01:02.18ID:GUabbIAG
Microsoft Windows[Version 6.0.6002]って書いてある
管理者として実行も試してみたんだけどCollecting pillowから進まない

うーん何か足りないんかな
0923デフォルトの名無しさん
垢版 |
2017/12/17(日) 17:21:26.29ID:XxtCNzg/
どっちにしろおま環だから何とも言えんが
pillowがだめでもPIL入れてればいけるんじゃね
0924デフォルトの名無しさん
垢版 |
2017/12/17(日) 17:35:08.16ID:VH1yLn0n
pip install pillow qrcode
でインストールできたでぇー、QRコードも生成できた

pythonのバージョンは3.6.1
pipのバージョンは9.0.1
Pillow(4.0.0)インストール済み
0925デフォルトの名無しさん
垢版 |
2017/12/17(日) 18:12:47.56ID:GUabbIAG
解決した!
恥ずかしくて言えないくらい初歩的なミスだった……
すまん、ありがとうございました
0926デフォルトの名無しさん
垢版 |
2017/12/17(日) 18:56:07.30ID:VH1yLn0n
csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7
もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ

 Version: 2.7.7
  ・使用例の説明を改善

  ・冗長性の改善(>>885のご指摘を受けて)
     ・冗長な関数名、メソッド名、引数名などを簡潔に改名
     ・ヘッダー情報を更に便利に簡単にアクセスできるように改善

  ・メソッド追加
     ・shapeメソッド - 行列のサイズを表示(pandasからパクった)
     ・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから)
     ・inquire_field_valueメソッド(>>904もこれで解決)
などなど


あとがき:
 csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき
 簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました
 特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します
 これはpandas越えたわ・・ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
0927デフォルトの名無しさん
垢版 |
2017/12/17(日) 19:11:04.86ID:VH1yLn0n
>>871
csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7
もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ

 Version: 2.7.7
  ・使用例の説明を改善

  ・冗長性の改善(>>885のご指摘を受けて)
     ・冗長な関数名、メソッド名、引数名などを簡潔に改名
     ・ヘッダー情報を更に便利に簡単にアクセスできるように改善

  ・メソッド追加
     ・shapeメソッド - 行列のサイズを表示(pandasからパクった)
     ・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから)
     ・inquire_field_valueメソッド(>>904もこれで解決)
     などなど


あとがき:
 csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき
 簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました
 特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します
 これはpandas越えたわ・・ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
0928デフォルトの名無しさん
垢版 |
2017/12/17(日) 19:17:52.67ID:XxtCNzg/
test
なんか専ブラの動きが変だな
また仕様かわったか
0929デフォルトの名無しさん
垢版 |
2017/12/18(月) 10:05:45.20ID:vfjnbjyE
ライブラリをインストールしてチュートリアルのプログラムを一通り動かすまでに結構時間を消費しちゃう
バージョンによってチュートリアルを結構改変しないと動かないのが多いし
魅力的なライブラリが多いけどそこまで直ぐに使えるようにはならないと思いましたまる
0932デフォルトの名無しさん
垢版 |
2017/12/18(月) 12:30:50.45ID:MRRIpNjB
>>909
どうせ書くなら、組み込みメソッドの Enumerable#inject と Hash#merge を
使った関数型プログラミングのスタイルが Ruby らしいのではないかと思われ

https://ideone.com/v02Ldy

for文のループをゴリゴリ回す手続き型プログラミングのスタイル(>>911)とは対照的だね
0933デフォルトの名無しさん
垢版 |
2017/12/18(月) 13:49:20.75ID:qOhnl7Wk
l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
from itertools import groupby
for r in [(k, ''.join([item[1] for item in i])) for k,i in groupby(l, key=lambda x:x[0])]: print(*r)

はい、オレが優勝
0935デフォルトの名無しさん
垢版 |
2017/12/18(月) 14:15:11.80ID:qOhnl7Wk
┐(´- ` )┌ ハッ、イテレータが欲しいのだよ、これだからググっただけの奴はw
0937デフォルトの名無しさん
垢版 |
2017/12/18(月) 14:32:10.96ID:qOhnl7Wk
あ、これ何も考えてない奴の常套句だわ 回答書けないならレス汚さないでくれる?
0938デフォルトの名無しさん
垢版 |
2017/12/18(月) 14:50:33.65ID:kA+4TLLO
え?真面目に言ってるの?どのみちイテレータ返るでしょ、ジェネレータを言ってるにしてもジェネレータ式はないし
リストが欲しいというならギリギリ分からなくもないが、それでもコールバックを与えるgroupbyには関係ないよね
0939デフォルトの名無しさん
垢版 |
2017/12/18(月) 15:01:14.41ID:qOhnl7Wk
ブヒョヒョヒョヒョッw operator.itemgetter使った例書いてみろよバーカ
オレのより良くなるわけねーんだよバーカ 知ったかバカがww
0940デフォルトの名無しさん
垢版 |
2017/12/18(月) 15:03:03.28ID:ucgqtJiU
流れぶった切って初心者の質問3つめすまん
pipで暗号化だかなんだかのパッケージをインストールするのに
pip install pycrypto って入力したんだがエラーになった
赤文字が言うにはimport setuptools,tokenize;_
file_ってことらしい(たぶん)んだけどどうすればいい?パソコン自体にも明るくないんで初歩的な質問だったらすまん
0941デフォルトの名無しさん
垢版 |
2017/12/18(月) 15:04:12.98ID:ucgqtJiU
Anacondaってのはインストールした
たぶん出来てると思う
0942デフォルトの名無しさん
垢版 |
2017/12/18(月) 15:15:46.03ID:iOib+Cu3
>>911
>>933

そのまま、ソートできたりしますか?
0943デフォルトの名無しさん
垢版 |
2017/12/18(月) 15:29:33.59ID:qOhnl7Wk
マジで君の葛藤
 そんなに言うなら書いてやらぁ、import operator ・・はっ!?
 あいつのより一行増えちまうぅぅ・・operatorをimportするだけで負けちまうぅぅ
 どーすればいいんだあぁ  マジで負けちまう、マジでマジでぇぇええ
0944デフォルトの名無しさん
垢版 |
2017/12/18(月) 19:35:06.39ID:uz+0MMm5
Scipy lecture notes は難しいなあ
0945デフォルトの名無しさん
垢版 |
2017/12/18(月) 20:23:19.81ID:nEpzfrhn
>942

911 は、
lst = sorted(dic.items())
でキーの昇順のリストlstを作ることができるよ。
0947デフォルトの名無しさん
垢版 |
2017/12/18(月) 21:31:04.85ID:80YjRLEJ
Excelに「Python」搭載検討 Microsoftがアンケート実施中
(ITmedia NEWS)
[続きを読む]
0952デフォルトの名無しさん
垢版 |
2017/12/19(火) 01:50:12.54ID:zg2/LW0i
同じタブで開くにはどうしたら良いのでしょうか?
実行すると、同じウィンドウで開いてしまいます。

https://ideone.com/Rb3ecO
0954デフォルトの名無しさん
垢版 |
2017/12/19(火) 07:05:30.29ID:YlLsk3YD
Pythonでサーバー系の勉強をしたいんだけれども分かりやすい書籍知りませんか?
0956デフォルトの名無しさん
垢版 |
2017/12/19(火) 08:36:34.83ID:lTMrJ03e
>>953
俺もそう思ったけど、イミディエートウィンドでちょっと試しに実行したりするのはスクリプト言語の方がいいのかも
スクリプト言語の中ではPythonは悪い選択じゃない
0957デフォルトの名無しさん
垢版 |
2017/12/19(火) 09:02:13.56ID:I9cB5PBv
>>952
webbrowserのopen_new, open_new_tabは可能であれば新しいウィンドウ、新しいタブで開くという仕様
動作が同じということは不可能ということなのでsubprocessで直接ブラウザの実行ファイルを叩きましょう

chromeなら(参考: ttps://blogs.yahoo.co.jp/kerupani/15783349.html)
>>> import subprocess
>>> open_new = [r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', '--new-window']
>>> open_new_tab =[r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe']
>>> url='https://ideone.com/Rb3ecO'
>>>
>>> subprocess.call(open_new + [url])
0
>>> subprocess.call(open_new_tab + [url])
0
>>>
0958デフォルトの名無しさん
垢版 |
2017/12/19(火) 11:38:37.78ID:I9cB5PBv
>>904
>>> l = [['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
>>> for k,v in {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()}.items(): print(k, ''.join(v))

id0 python
id1 aiueo
>>>

リストlをidの数ぶんなめるからdefaultdict版よりも遅いのかな?と心配でしたが爆速でした
内包表記爆速でした(https://ideone.com/CQmM0C
0959デフォルトの名無しさん
垢版 |
2017/12/19(火) 12:24:14.54ID:R9z7S8/c
>>955
ありがとうございます
Pythonプロフェッショナルプログラミング-第2版-株式会社ビープラウド
ってやつでしょうか
0960デフォルトの名無しさん
垢版 |
2017/12/19(火) 13:40:41.77ID:I9cB5PBv
>>958
もうちょっと速度評価してみた結果、idの種類が5で内包表記版とdefaultdict(list)版が同じくらいの処理速度になる
idの種類が増える毎にdefaultdict(list)版の方が速くなる、defaultdictの方が優れているね、分かりやすいし
Ruby版はどのくらい速いのかな?

>>> l=[[f'id{i}', 'hoge'] for i in range(5)]*10000
>>> with get_time():
d = {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()}


0.014081239700317383
>>> with get_time():
d = defaultdict(list)
for k,v in l: d[k].append(v)


0.014064788818359375
>>>
>>> l=[[f'id{i}', 'hoge'] for i in range(50)]*10000
>>> with get_time():
d = {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()}


1.0660841464996338
>>> with get_time():
d = defaultdict(list)
for k,v in l: d[k].append(v)


0.14391684532165527
>>>
0962952
垢版 |
2017/12/20(水) 02:35:33.39ID:TssXo4IA
>>957
遅れながら、ありがとうございます
0963デフォルトの名無しさん
垢版 |
2017/12/20(水) 12:35:28.42ID:TssXo4IA
こういう処理は一行で書けますか?
for i in range(2):
__if i==j:
____print('end')
__for j in range(2):
____print(i,j,'',end='')
0965デフォルトの名無しさん
垢版 |
2017/12/20(水) 13:03:05.99ID:NDzik5IP
造作もなきこと!Pythonのテクニックを使えば多重ループを1行で書くことなど造作もなきこと!
exec("""j=None\nfor i in range(2):\n if i==j:\n print('end')\n for j in range(2):\n print(i,j,'',end='')""")
0967デフォルトの名無しさん
垢版 |
2017/12/20(水) 13:15:05.63ID:NDzik5IP
空白が潰れちゃったよから\tに変更
exec("""j=0\nfor i in range(2):\n\tif i==j:\n\t\tprint('end')\n\tfor j in range(2):\n\t\tprint(i,j,'',end='')""")
0968デフォルトの名無しさん
垢版 |
2017/12/20(水) 14:07:50.11ID:TssXo4IA
>>965
>>967
ありがとうございます。

exec("a = 5; b = 7; print(a+b)")

と言う既述方法は知ってましたが、
 制御分などの盛り込み方が不明だったので助かりました。

これで、制御分の横にコメント文を
 スペースで埋めて揃える作業をしなく良くなりました。
0970デフォルトの名無しさん
垢版 |
2017/12/21(木) 00:07:07.98ID:d67IHLei
グラフ描画についてbokehとplotlyが気になるのですが,使っている方いらっしゃいますか?
0971デフォルトの名無しさん
垢版 |
2017/12/21(木) 00:17:01.47ID:0vv650Fk
リスト内の要素を部分一致で検索したいのですが、どう書けば良いのでしょうか?
完全一致ならば上手くいくのですが…
0972デフォルトの名無しさん
垢版 |
2017/12/21(木) 00:33:32.51ID:1OazE8Sd
# コメント コメント
[[l.append(i) for i in range(1,6)] for j in range(int(input()))]
exec("""print(l)\nfor i in l:\n\tif i==2:\n\t continue\n\tr.append(i)\nprint(i,'',end='')""")
exec("""def Sample0(x):\n\treturn x**2\nfor i in r:\n\tprint(Sample0(i))""")
0973雪風,遊園地 ◆ExGQrDul2E
垢版 |
2017/12/21(木) 00:52:50.09ID:1OazE8Sd
>>971
import re
l=['I']
r=['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
#[print (match.group()) for match in re.finditer(l[0],r[0])]

for match in re.finditer(l[0],r[0]):
____print (match.group())


ゆっきーは、頭が可笑しいので他の人に聞いて下さい。
0975デフォルトの名無しさん
垢版 |
2017/12/21(木) 00:54:55.56ID:sOyGlBrQ
>971
リスト内の要素を部分一致で検索する、というのが曖昧な表現なので、具体例で説明して欲しい
["abc", "bcd", "xyz"]
があった時に、
"bc"を検索して、
["abc", "bcd"]
を返すような関数を作りたいの?

[1, 2, 3]と[2, 3, 4]と[9, 5, 19, 7, 9] があった時に、
[0, 1, 2, 3] を検索して、
[1, 2, 3] と[2, 3, 4] を返すような関数を作りたいの?
0979デフォルトの名無しさん
垢版 |
2017/12/21(木) 08:50:58.63ID:NvhGrRKb
>>971, >>976
>>> list_1 = ["abc", "bcd", "xyz"]
>>> list_2 = [[1,2,3], [2,3,4], [9,5,19,7,9]]
>>>
>>> import re
>>> [i for i in list_1 if re.search(r'bc', i)]
['abc', 'bcd']
>>>
>>> [i for i in list_2 if all(j in [0,1,2,3,4] for j in i)]
[[1, 2, 3], [2, 3, 4]]
>>>
0981雪風,遊園地
垢版 |
2017/12/21(木) 10:03:44.67ID:1OazE8Sd
>>979
>>980
こっちの方がシンプルで良いですね。
ありがとうです ( ゚д゚ )クワッ!!
0982デフォルトの名無しさん
垢版 |
2017/12/21(木) 12:40:18.22ID:MXajmGMH
うんこしたいよー
もう漏れそうだ
0983デフォルトの名無しさん
垢版 |
2017/12/21(木) 21:48:50.35ID:WjYU61tx
Pythonってプログラミング言語として難しいほう?
0987デフォルトの名無しさん
垢版 |
2017/12/22(金) 00:45:25.25ID:7leJrkq3
言語だけでも自分の3割り増しの実力のプログラムが作れる感じのノリが好き
0988デフォルトの名無しさん
垢版 |
2017/12/22(金) 04:10:33.70ID:pVzUn8R6
動作
トランプデッキから5枚引いて、引いたカードをデッキから削除
手持ちのカードのマークをカウントする


もっと、スタイリッシュに書き直してくれる人居ませんか?

 https://ideone.com/0bukfh
0989デフォルトの名無しさん
垢版 |
2017/12/22(金) 05:39:58.07ID:RZt5N+k9
スペードの1〜13・ハートの1〜13・クローバーの1〜13・ダイアの1〜13の順で、
1〜52のカードID をつけているから、

カードID を13で割って、その商と余りで、スートと数がわかる
0990デフォルトの名無しさん
垢版 |
2017/12/22(金) 10:33:03.12ID:RZt5N+k9
def suit_and_number (card_id)
suit = card_id / 13
num = card_id % 13

if num == 0 then
num = 13
suit -= 1
end
return suit, num
end

ary = (1..52).to_a.shuffle!

(0..10).each do |i|
suit, num = suit_and_number (ary[i])
puts "id : #{ary[i]}, suit : #{suit}, num : #{num}"
end

Ruby でやった
https://paiza.io/projects/sJs_Ge5be9uq44J6SHoJdw

結果を並び替えたもの
id : 1, suit : 0, num : 1
id : 14, suit : 1, num : 1
id : 27, suit : 2, num : 1
id : 40, suit : 3, num : 1

id : 13, suit : 0, num : 13
id : 26, suit : 1, num : 13
id : 39, suit : 2, num : 13
id : 52, suit : 3, num : 13
0991デフォルトの名無しさん
垢版 |
2017/12/22(金) 11:00:21.87ID:2CqGXpCv
>>990
わざわざ通し番号から数字やスートを算出している合理性がない
テクニカルな雰囲気な方法を思い付いて嬉しいのはわかるが、効率が悪く分かりにくいだけだから素直に別々に分けなさい
0994990
垢版 |
2017/12/22(金) 12:03:54.91ID:RZt5N+k9
>>991
カードクラスを作って、インスタンス毎に、カードの画像を持たせたりしても良いけど、
インスタンス毎に、スート・数を持たせるのは、メモリの無駄だろ

ID から簡単に計算できるのだから、それらを計算値で返しても良いのじゃないか?
0997デフォルトの名無しさん
垢版 |
2017/12/22(金) 12:46:03.11ID:sp7ymsVp
>>994
> インスタンス毎に、スート・数を持たせるのは、メモリの無駄だろ
おじいさま今時はそう言うことを気にしなくてもよくなったのよ
0998デフォルトの名無しさん
垢版 |
2017/12/22(金) 13:33:46.30ID:u2VnRzIy
ふぅー 落ち着いたか、、大興奮・・あれ? ワイのもイジれや、ワイのもイジれや
0999988
垢版 |
2017/12/22(金) 14:02:56.88ID:pVzUn8R6
テラテイルでも聞いて来ましたが、色々有るようです。

 https://ideone.com/Mg9oG7

次スレは>>1000が建てて下さい。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 111日 21時間 36分 51秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況