X



くだすれPython(超初心者用) その45【Ruby禁止】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2019/10/16(水) 10:17:12.96ID:dCHq3Ix4
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その44【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1563969768/
0002デフォルトの名無しさん
垢版 |
2019/10/16(水) 12:39:03.73ID:dmmazo8P
O2
0003デフォルトの名無しさん
垢版 |
2019/10/16(水) 17:42:35.18ID:dCHq3Ix4
>> http://mevius.5ch.net/test/read.cgi/tech/1563969768/999
C++ (ビープ音でドレミの歌とか、表示文字色を部分変更とかできたころの)
R
Python 2 → 現在3への適応に自分・ソースコードともに苦しんでいる
アセンブラ

>> http://mevius.5ch.net/test/read.cgi/tech/1563969768/1000
そもそもが50GBくらい(64GBに届いてないのはリカバリ用隠しドライブのせい)で
今、空きが11〜12GBくらい。

そういえば、Cygwinとかトートイズとか
おれさまのMP3コレクションとかがんがって泣く泣く消したから
ちょっとあいている状態なんだな。。。

で、
メモリが2GBしかない(拡張できねえ!仕様)し、
CPUも1コア×1.33GHzだから、
のそのそしている。
0005デフォルトの名無しさん
垢版 |
2019/10/16(水) 18:36:03.76ID:dCHq3Ix4
>>4
どっちもこのマシンと、その前に使ってたもうちょいましなやつで
インストール&初回起動までなら、したことがある。

どっちにせよ起動するまでが糞激重くて数分かかってしまって
('A`)ってなってあきらめた。
0009デフォルトの名無しさん
垢版 |
2019/10/17(木) 00:39:00.91ID:OIw2LILw
ちょっとした入門練習ならそれでも良いかもしれないが、本格的にプログラミングをするなら、しっかりした環境を作らないとダメだよ。

1年間の時間のロスがいくらの金になると思ってるんだ?
入門練習でも上達度が違ってくるぞ。

例え今時間はタダだと思っていても、貴重な人生の時間を使ってるんだからよくよく考えた方が良い。
0010デフォルトの名無しさん
垢版 |
2019/10/17(木) 05:01:36.98ID:Yoq2/Gj4
tensorflowjsをインポートするだけでエラーが出るんだが(´;ω;`)
確実にライブラリは入ってるのに
一応、pipやってもalreadyって出てるし
0011デフォルトの名無しさん
垢版 |
2019/10/17(木) 10:34:14.05ID:ewN8FeZ7
20年くらい前のPC使ってる人が居るようだが
それだとpython使っててもpipすら出来ないだろ
0012デフォルトの名無しさん
垢版 |
2019/10/17(木) 10:35:18.01ID:ewN8FeZ7
>>9
来年は死んでる鴨試練な
0014デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:14:31.09ID:ucUV19VT
はい
現代言語では非常に奇特なことにインクリメント演算子は存在いたしません
それをもって欠陥言語と評する派閥も少なくないです
0015デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:20:44.72ID:K9wPxQ06
>>11
Win8→8.1の頃に買った
タブレットとノートパソコンどっちつかずのヤツなんだ・・・

pipはできる
でも機械学習やらせようとか思っちゃうとチヌ
0016デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:31:40.62ID:TwA5RghT
>>13
エラー吐いてくれればまだ良いんだけど
黙ってシレっと動いたフリするから困るよなω
0017デフォルトの名無しさん
垢版 |
2019/10/18(金) 08:59:27.85ID:HFflmsgq
プログラム自体初心者なんですがこのサイトは学習に向いてると思いますか?
https://automatetheboringstuff.com/chapter1/
日本語ので良いサイトありますか?英語はできますが日本語でいい教材があるならそっちのほうが好ましいです
ちなみにテンプレのwikiはページがありませんでした
0019デフォルトの名無しさん
垢版 |
2019/10/18(金) 09:03:55.64ID:YuWkr+rI
1ページあたりの内容が薄すぎてページめくりの回数多くて非効率
また学習に関係ない Youtube Logo がいくつか邪魔
0023デフォルトの名無しさん
垢版 |
2019/10/18(金) 16:23:11.66ID:Zsy+Oz1Z
同じファイルを違うPCで実行したときの挙動が異なって困ってます。
pythonなどのバージョンは同じです。
具体的にはseleniumでchromeを起動する際に画像非表示オプションを設定しているのですが、
macbookair2013では画像が非表示になってもmacbookpro2017は画像非表示になりません。
クリーンインストールしても変わらなかったです。
まったく意味不明です��何か見当つきませんか?
0025デフォルトの名無しさん
垢版 |
2019/10/18(金) 17:40:01.12ID:eYccVr4w
気になるんで教えてください

import numpy as np
lx = np.arange(0.0,6.28,0.01)
ly = np.sin(lx)

この場合
lyはnp.sinクラスのインスタンスを生成
   npのメソッドsinの実行により生成
   npモジュールのsin関数により生成
のどれと考えるのが筋がいいですか
この辺、テキストによって説明がまちまちな気がします
0026デフォルトの名無しさん
垢版 |
2019/10/18(金) 17:41:55.08ID:6zLZDVSS
>>23
>pythonなどのバージョンは同じです
Macのバージョンや設定がちょっとでも違ってたらチネ!!!(・∀・)なんだが。
0027デフォルトの名無しさん
垢版 |
2019/10/18(金) 17:43:09.18ID:6zLZDVSS
>>26 追記
Chromeのサブバージョン番号まで完璧に一緒か
Macのサブバージョン番号まで完璧に一緒か
設定もまったくもって完全一致なのか
0028デフォルトの名無しさん
垢版 |
2019/10/18(金) 17:50:11.58ID:f2FG8XiO
python3.8はWindowsストアからインストールできるんだけど、pybind11に対応してないのでおススメできない。
なので従来通りのやり方でインストールしたほうがいいね。
0029デフォルトの名無しさん
垢版 |
2019/10/18(金) 19:02:27.62ID:q3nDEEoA
>>25
Python 3.7.4 (default, Sep 7 2019, 18:27:02)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import numpy as np

In [2]: type(np)
Out[2]: module

In [3]: type(np.sin)
Out[3]: numpy.ufunc

ということなので、「npモジュールのsin関数により生成」が最も近いんじゃないかな
ufunc自体はそれ自身にメソッドやメンバを持つオブジェクトで、
カッコつきで呼び出されたら関数として振る舞うみたい。
sinはそのオブジェクトのインスタンスの一つだね。
https://numpy.org/devdocs/reference/ufuncs.html?highlight=ufunc
0030デフォルトの名無しさん
垢版 |
2019/10/18(金) 20:38:55.49ID:yMA2qaS5
>>29
ありがとうございます
VBAを少しいじったことがある
程度の初心者なんですが、当面
>>25 のような形式ではでは判断
できない違い(概念の違い?)がプログラム組むに
あたって影響することはあるでしょうか?
とりあえず名前つけて生成の過程はどうであれ
インスタンスができた程度の認識を持っていればよいのでしょうか?
0032デフォルトの名無しさん
垢版 |
2019/10/18(金) 21:06:02.29ID:q3nDEEoA
>>30
プログラムを書く時間をなるべく短く、速く効率よく開発したい、と思うのであれば、
意識してモジュールとはなにか、クラスとはなにか、関数とはなにかということは区別をつけたほうがはまりにくいと思う。
関数を指定すべきところ、インスタンスを指定すべきところがあって、だいたいモジュールは指定できないかな。

試行錯誤する時間が十分にあって、かつ、モジュールやクラスや関数の違いについてまだ慣れていないのなら、
あまり深く悩まず、色々触ってみるのがいいんじゃないかな。
0033デフォルトの名無しさん
垢版 |
2019/10/18(金) 21:52:28.45ID:Zsy+Oz1Z
>>26
>>27
chromedriver, macosは同じですmacの設定は違うところもあると思います。

今気づいたけどwebdriverでchrome出すまでをpythonにやってもらって、その後手動でurl打ち込んで遷移すれば画像非表示有効でした。
なにこれ、こんなことあります?
以前このmacbookpro2017はキーボード問題で修理出して中身総替えしたみたいなのでそれで何かがおかしくなったとか…他のpcではいけてるし何かがおかしい…
0034デフォルトの名無しさん
垢版 |
2019/10/19(土) 07:49:09.51ID:fDUUZQql
>>23
ブラウザのコンソールに、エラー表示されていないの?

漏れは、Ruby で作っているけど、

chrome のselenium webdriver のオプションは、しょっちゅう変わるから、
画像非表示オプションは、昔はあったけど、今は無くなったのかも?
0035デフォルトの名無しさん
垢版 |
2019/10/19(土) 09:05:02.66ID:tUw9vx0/
>>33
だから
Macの設定がどっかちがっつるんじゃねーのって。
ルートレスみたいな「余計なお世話」を
デフォルトON状態でモリモリ盛り込んでくるのがMacクォリティだからな。
0037デフォルトの名無しさん
垢版 |
2019/10/19(土) 23:18:45.68ID:3tMMez23
https://i.imgur.com/mLwF5kR.jpg
すみませんPycharmでmatplotlibというライブラリをインストールしたいのですが画像のようなエラーを吐いて失敗します
pipのバージョンが古いみたいなことを言われていますが、おそらく最新のを使っていると思うので困惑するばかりです
解決方法を教えていただけたら幸いです
0040デフォルトの名無しさん
垢版 |
2019/10/20(日) 00:54:24.37ID:fpGN22wj
>>37
> https://i.imgur.com/mLwF5kR.jpg
エラーメッセージとProposed Solutionがありますが、それは試したましたか?
その結果はどうなりましたか?
0041デフォルトの名無しさん
垢版 |
2019/10/20(日) 01:04:03.95ID:Em7ZfaYJ
system terminalの意味がよくわからなかったのでスルーしてました
ありがとうございます。
ググってやってみた結果次のようなエラーを吐きました
ERROR: Command errored out with exit status 1:
ERROR: Command errored out with exit status 1:
command: 'c:\users\*\untitled\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; s
ys.argv[0] = '"'"'C:\\Users\\*\\AppData\\Local\\Temp\\pip-install-jv9zguo4\\matplotlib\\setup.py'
"'"'; __file__='"'"'C:\\Users\\*\\AppData\\Local\\Temp\\pip-install-jv9zguo4\\matplotlib\\setup.p
y'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"
'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\*\A
ppData\Local\Temp\pip-record-gi1t32x6\install-record.txt' --single-version-externally-managed --compi
le --install-headers 'c:\users\*\untitled\include\site\python3.8\matplotlib'
cwd: C:\Users\*\AppData\Local\Temp\pip-install-jv9zguo4\matplotlib\
Complete output (505 lines):

エラーメッセージのどこを貼ればいいのかわからないので、関係ないとこを貼っているかもしれません
そうでしたら申しわけありません
0042デフォルトの名無しさん
垢版 |
2019/10/20(日) 01:04:56.78ID:Em7ZfaYJ
BUILDING MATPLOTLIB
matplotlib: yes [3.1.1]
python: yes [3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC
v.1916 64 bit (AMD64)]]
platform: yes [win32]

OPTIONAL SUBPACKAGES
sample_data: yes [installing]
tests: no [skipping due to configuration]

OPTIONAL BACKEND EXTENSIONS
agg: yes [installing]
tkagg: yes [installing; run-time loading from Python Tcl/Tk]
macosx: no [Mac OS-X only]

OPTIONAL PACKAGE DATA
dlls: no [skipping due to configuration]
0043デフォルトの名無しさん
垢版 |
2019/10/20(日) 01:11:04.57ID:Em7ZfaYJ
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe
' failed with exit status 2
ここが原因ということでしょうか?
すみません、ズブの素人なのでイラつかせるかもしれません
0044デフォルトの名無しさん
垢版 |
2019/10/20(日) 01:14:33.51ID:Em7ZfaYJ
src/checkdep_freetype2.c(1): fatal error C1083: Cannot open include file: 'ft2build.h': No such f
ile or directory
ft2build.hがないとからかもしれません
少し調べてやってみます。
0047デフォルトの名無しさん
垢版 |
2019/10/20(日) 08:37:42.84ID:+KWnMamE
>>45
>system terminalの意味がよくわからなかったのでスルーしてました
どーせAdministrator権限が足りテナイとかジャネーノ

>>42
REQUIRED DEPENDENCIES AND EXTENSIONS
の欄が
まるっと抜けてる気がするんだが
0048デフォルトの名無しさん
垢版 |
2019/10/20(日) 09:16:37.14ID:Em7ZfaYJ
回答ありがとうございます。
freetypeをインストールしようとしたところ次のエラーは吐きました。
ERROR: Could not find a version that satisfies the requirement Freetype (from versions: none)
ERROR: No matching distribution found for Freetype
環境変数CL,LINKの設定はMSVCのコマンドラインを使うという感じのやつでしょうか?
>>47
管理者として実行しているので権限が足りないということはないと思います
0049デフォルトの名無しさん
垢版 |
2019/10/20(日) 13:03:41.74ID:9lZC9vgy
ズブの素人なら黙って Anaconda 入れろ
0050デフォルトの名無しさん
垢版 |
2019/10/20(日) 17:27:42.65ID:Em7ZfaYJ
まあそのほうがいいかもしれないですね。
ありがとうございました。
他の言語の勉強も含め色々検討したいと思います。
0051デフォルトの名無しさん
垢版 |
2019/10/20(日) 23:50:17.66ID:njFFTJVf
cmd から v8 という javascript をインストール中に
pythonコード内で利用されているファイルディスクリプタの read() 使用時に
UnicodeDecodeError: 'cp932' codec can't decode
というエラーが出ました。

文字コード関係のエラーというのはわかるのですが、
これを治すためにインストールファイルを直接触るのはためらっております。

コードを触ること無く、エラーを解消する方法はないでしょうか?

環境
windows10 Pro 64-bit
python2.7.17
0053デフォルトの名無しさん
垢版 |
2019/10/21(月) 01:48:47.40ID:sLtezmPz
ファイルを、BOM 無しUTF-8(UTF-8N)で、保存しなおすとか、

Ruby の場合は、
ファイル読み込み時に、オプションで文字コードを指定するとか、

OS のユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を追加するとか
0054デフォルトの名無しさん
垢版 |
2019/10/21(月) 02:34:20.40ID:W7vxtZcq
>>53
死ね
0055デフォルトの名無しさん
垢版 |
2019/10/21(月) 08:18:59.40ID:fOBpkiG2
>>50ですが、whlファイルを使うことで無事matplotlibのインストールに成功しました。
ありがとうございました。
0059デフォルトの名無しさん
垢版 |
2019/10/22(火) 22:50:56.34ID:DJm76Xqy
プログラミング自体初心者です

配布することも考えた小規模の自動化ツールを作る場合、GUIアプリにするか、Webアプリにするか、選ぶ基準はありますか?
どちらを選んでも、希望の機能の実装自体は実現できるとします

個人的な意見で大丈夫なので、考え方とかあれば教えていただきたいです
0060デフォルトの名無しさん
垢版 |
2019/10/22(火) 22:59:56.89ID:rCatO9ZB
CUIのWebアプリって存在価値ある?w
0061デフォルトの名無しさん
垢版 |
2019/10/22(火) 23:00:59.51ID:DJm76Xqy
すみません、一応補足すると、
Python で作ることが前提
小規模→社内で使い回す程度
です
連投すみません
0063デフォルトの名無しさん
垢版 |
2019/10/22(火) 23:14:29.44ID:6erEu/jt
基本的にWebを選ぶべき。なぜなら配布が楽だし、環境に依存しにくいし、Pythonでのクライアント(GUI)アプリ開発などという
国内ではほぼ誰もやっていないであろう無価値な技術を習得する壮大な時間の無駄をしなくて済むから。
0064デフォルトの名無しさん
垢版 |
2019/10/22(火) 23:17:39.16ID:3XGI/6ag
おっ、業務支援スクリプトだな
pythonは業務支援スクリプトに最適な言語だからな
0065デフォルトの名無しさん
垢版 |
2019/10/22(火) 23:19:24.23ID:HZuwqM+d
何言ってるのかわからん。GUIアプリなんてググればたくさん出てくるし、
Webはwebでサーバー環境立てる手間が居る。
0066デフォルトの名無しさん
垢版 |
2019/10/22(火) 23:24:10.97ID:lomrvhbn
クライアントアプリはインストールや更新を完全に利用者側の自己責任にできる場合にのみ使っていい
開発者自身が面倒見なきゃいけないなら確実に地獄を見ることになるから絶対にやめておけ
0067デフォルトの名無しさん
垢版 |
2019/10/23(水) 00:00:05.37ID:Nn7/Oh6s
俺も自分一人かもしくはもう一人くらいならGUIでやるかもしれないけど
>>66の言うような理由でWebだなあ。運用保守面だよな問題は
0069デフォルトの名無しさん
垢版 |
2019/10/23(水) 01:01:44.17ID:LHz3zTm6
JavaScript込みならwebアプリ選ぶけど
Python決め打ちなら普通にローカルアプリ作るのが早い
0070デフォルトの名無しさん
垢版 |
2019/10/23(水) 08:27:11.64ID:CVEfmxxh
つかうやつらにアプデを告知し、アプデさせるのがくそめんどうだから
Webアプリできる状況だったらWebのほうが断然おすすぬ
1個でWinだけじゃなく
MacやLinuxの連中にも使えるようになる品
0071デフォルトの名無しさん
垢版 |
2019/10/23(水) 11:02:35.47ID:6YqEyJGa
>>23ですが解決しました。
macbookairでできてproでできないのはdGPUが関係してました。
proの設定>省エネルギーの"グラフィックスの自動切り替え"をオフにすれば画像非表示が適用されました。
↑の設定の他にchomeoptionに"--disable-gpu"を加えることでも解決しましたのでこれを適用させています。
>>26,34-35ありがとうございました。
0072デフォルトの名無しさん
垢版 |
2019/10/23(水) 14:50:28.88ID:CVEfmxxh
>>71
解決おめ!
報告乙!

そういえば近年のchromedriverって、
積んでても積んでなくてもgpuの設定はちゃんとしないと、文句いうよね。
0073デフォルトの名無しさん
垢版 |
2019/10/23(水) 22:20:55.46ID:trzfY3Jq
>>72
そうなんですね。解決しないと諦めてましたけど良かったです。
ちなみにdisable-gpuを設定しなくても
https://www.yahoo.co.jp/の様なdgpuを必要としないサイトでは画像非表示ができて
例えばhttp://taotajima.jp/の様ないかにも画像が重たそうなサイトではdgpuを使用して画像非表示ができなかったみたいです。
0074デフォルトの名無しさん
垢版 |
2019/10/24(木) 11:46:29.45ID:SwAS1ouY
seleniumでchrome起動して、あるページのログインフォームにsend_keysしたいのですが、
開いたchromeのウィンドウがアクティブになっているとelement not interactableでエラーになります
ただchromeのウィンドウを非アクティブ(起動してすぐ別のウィンドウを操作する等)にすると
問題なくsend_keysされます

どのような原因が考えられますでしょうか
0076デフォルトの名無しさん
垢版 |
2019/10/24(木) 12:34:28.28ID:+/4nwafU
>>74
formによってはたまにありますね
xpathをフルパスで指定すればいけたりすることもありました。
あとはexecute_scipt使ってjavascriptで入力はどうでしょうか
0077デフォルトの名無しさん
垢版 |
2019/10/24(木) 21:27:38.63ID:vNmHB0bV
>>69
儂もそう思う。儂はWEBアプリも興味あったけど挫折した。ということはローカルならpythonの方が多分かんたんだと思ふ。
tkinter使えば追加のライブラリ不要なのでGUIアプリも簡単に配布できるだろう。
もっとも、儂はPyQt5派だけど...

Qtにしてもtkにしてもwxにしてもgtkにしても使いやすいguiデザイナがあるから楽だよ。
007974
垢版 |
2019/10/24(木) 21:47:10.35ID:WGoKVguQ
フルパスXpathもJavaScriptも試したけどダメでした

泥臭いっていうか泥そのものみたいなコードですが
そのフォームにsend_keysするときだけウィンドウを最小化するというクソみたいな方法で回避することにしました
悔しいけど自分が使うだけのツールなので我慢します
0081デフォルトの名無しさん
垢版 |
2019/10/27(日) 01:33:19.77ID:xWRzEG7S
モザイク除去ソフトのDeepCreamPyを使うためにPythonの勉強を始めました(正直)。
https://github.com/deeppomf/DeepCreamPy/releases

Ubuntu 18.04でv1.3.0-beta win64のソースコードを取得して実行したのですが下記エラーが出ます。
Traceback (most recent call last):
File "decensor.py", line 8, in <module>
from libs.pconv_hybrid_model import PConvUnet
ImportError: No module named libs.pconv_hybrid_model

なお8行目はこんなです。
from libs.pconv_hybrid_model import PConvUnet

libsディレクトリはあるし、その中にpconv_hybrid_model.pyもあります。
.bashrcにexport PYTHONPATH="libsへのパス:$PYTHONPATH"と加えて再起動してもダメでした。
多分すごく簡単に治ると思うのですが、治し方が分かりません……。どなたか教えていただけないでしょうか。

モザイク外したい……
0083デフォルトの名無しさん
垢版 |
2019/10/27(日) 06:40:09.03ID:3qApEzfh
sympyで連立方程式をといて、その解の値を抜き取る方法が知りたいです。
例えば

import sympy

a = -1/2
b = 3
c = 1/2
d = -1

x = sympy.Symbol('x')
y = sympy.Symbol('y')

eq1 = y - a*x - b
eq2 = y - c*x - d

ans = sympy.solve([eq1, eq2], [x, y])
print(ans)

とすると
{x: 4.00000000000000, y: 1.00000000000000}
となりますが、4.0, 1.0それぞれの値を変数ans1, ans2に
代入する方法がわかりません。教えてください。
0084デフォルトの名無しさん
垢版 |
2019/10/27(日) 06:55:29.34ID:Qb9Ns76Y
>>83
ans1=ans[x]
ans2=ans[y]
0086デフォルトの名無しさん
垢版 |
2019/10/27(日) 11:32:01.32ID:CbvQpcn+
>>> M = numpy.matrix([[-1/2,-1],[1/2,-1]])
>>> M
matrix([[-0.5, -1. ], [ 0.5, -1. ]])
>>> numpy.linalg.inv(M) * numpy.array([[-3],[1]])
matrix([[ 4.], [ 1.]])
0087デフォルトの名無しさん
垢版 |
2019/10/27(日) 11:34:00.06ID:wW7bp+s+
anacondaとcolabってaiにおいて何がちゃうんですか?
0088デフォルトの名無しさん
垢版 |
2019/10/27(日) 12:26:01.35ID:eoJi3rMN
venvでの仮想環境を他のpcでも共有したい時どうすれば良いのでしょうか
家にpcが2つあり、両方で作業出来たら良いなと思っています
ソースコードはgithubで共有しているのですがvenvをpycharmで読み込もうとすると参照パスにpythonインタプリタが無いとかで面倒くさい,何かいい方法がないかと考えております
0089デフォルトの名無しさん
垢版 |
2019/10/27(日) 14:11:47.08ID:hJUpCTqv
>>74
漏れは、Ruby, selenium webdriver で、yahoo に自動ログインしてる

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--begin-maximized')

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym";

driver.manage.window.maximize # 画面最大

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click
0092デフォルトの名無しさん
垢版 |
2019/10/27(日) 20:36:53.36ID:c8KMWt1C
>>88
いろいろ既に揃ってる方のPCのvenvを読み込む

好みの階層で
pip freeze > requirements.txt

でてきたtxtを、
何らかの手段で
もう1台のPCにもっていく。
(方法はメールでもgithubでもなんでもいい)

揃ってない方のPCでvenvをはしらせる

もってきたtxtがある階層にて
pip install -r requirements.txt
0093デフォルトの名無しさん
垢版 |
2019/10/28(月) 21:14:12.43ID:pIVzkmar
PythonのKivyっていうライブラリでGUIを作ってるのですが
コンパイル前のコンソールからの起動だと、GUIが立ち上がるまでに4秒
コンパイルしてexeファイルを実行すると起動に10秒かかってしまってます。

コンパイル前から遅いのでコード自体が悪いんだと思いますが
せめてコンパイル後の起動の遅さをなんとかしたいです。
どうやったらexe化後の実行時間を短縮できますか?
0094デフォルトの名無しさん
垢版 |
2019/10/28(月) 21:15:59.10ID:pIVzkmar
>>93
pyinstallerを使ってコンパイルしました。
WindowsとMacで配布するつもりです。
0095デフォルトの名無しさん
垢版 |
2019/10/28(月) 21:19:36.88ID:pIVzkmar
すみません、自己解決しました
py2exeを使ってみます
0096デフォルトの名無しさん
垢版 |
2019/10/29(火) 00:31:41.83ID:VG5cqFbl
pythonで後ろに隠れたウィンドウのスクリーンショット取りたいんですが、可能でしょうか?

win32guiは使える状態です
0097デフォルトの名無しさん
垢版 |
2019/10/29(火) 05:21:39.92ID:mquQcKIH
The conda.compat module is deprecated and will be removed in a future release.
Collecting package metadata: done
condaというのは廃止されるのですか?
0100デフォルトの名無しさん
垢版 |
2019/10/29(火) 12:10:42.30ID:CRHJ60op
Pyinstallerを使うとクソ遅いし、py2exeはPython3.4までしか使えない上に開発終了してるっぽいし
もしかして、Pythonってコンパイラ全部死んでんじゃね
0102デフォルトの名無しさん
垢版 |
2019/10/29(火) 14:54:36.58ID:CRHJ60op
>>101
コレは行けるのでは…と思ったらKivyに対応してないみたいで詰んだ
0103デフォルトの名無しさん
垢版 |
2019/10/29(火) 14:59:59.78ID:CRHJ60op
今更Kivy以外のライブラリで書き直すのもつらいし、もっと慎重に使うライブラリ考えとけばよかった…
GUIライブラリではどれが1番強いんだろ…
010496
垢版 |
2019/10/29(火) 15:03:43.96ID:VDvTDAYx
自己解決しました
0106デフォルトの名無しさん
垢版 |
2019/10/29(火) 17:11:38.77ID:CRHJ60op
tkinterはさすがにダサすぎるからQtとか使っとくべきだった
0107デフォルトの名無しさん
垢版 |
2019/10/30(水) 09:32:36.92ID:p/MVkdCG
>>103
MacとLinuxしか使ってないのでWinでどうかはわかりませんが、日曜趣味プログラミングの自分の経験上ではこんなかんじ。
結局、pyQtに落ち着いてます。Kivy再挑戦しようかな...。皆さんは何使ってるんですかね?

tkinter:標準ライブラリなので他の人に配るなら楽。GUIビルダーが探しにくいけどフリーでいくつかある。見た目が野暮ったいと言われるけど嫌いじゃないな。
wxPython:意外と日本語資料が多い。割と使いやすかった記憶があります。
PyQt:GUIビルダーが使いやすい。見た目がカッコイイ。なんだかGPLなので市販ソフトはだめらしいけど、個人使用なら良いらしい。
PySide:PyQtのLGPLライセンス版とのこと。使ったことない。
Kivy:挫折した。GUIビルダーが私の知る限りではあまり多くない(Linuxで動くのはひとつ?)。
PyGTK:使ったことない。でもGladeは使いやすそう。
PyFLTK:使ったことない。日本語の資料が少ない。

並べると意外とGUIの選択肢が多いですね。
0108デフォルトの名無しさん
垢版 |
2019/10/30(水) 10:01:19.61ID:ijBQBJyE
Python始めた時にセットでkivy使い始めた
機能的にも使いやすさ的にも満足してるがコンパイル成功したことない、デバック実行で十分だけど
0109デフォルトの名無しさん
垢版 |
2019/10/30(水) 10:05:02.59ID:PFJwOjFS
要するに最後の最後でフラストレーションが溜まるんだろ
単体で動くネイティブアプリに出来ないから
0110デフォルトの名無しさん
垢版 |
2019/10/30(水) 14:40:59.13ID:Jt7N9BVB
GTKは糞
PyQtも糞
Qt(C++)はセーフ
wxPythonはgood
wxWidgetsはgood
tkinterはgood
tcl/tkはgood
0111デフォルトの名無しさん
垢版 |
2019/10/30(水) 15:12:34.93ID:p/MVkdCG
>>109
まぁ、そうなんですよね。一時期(当時はMac使ってた)、PyQtでアプリ使って、Pyinstallerとかで
なんとか単体アプリの体をつくろうとしたけど、バカバカしくなってやめました。
どっちにしてもアイコン用のpngファイルとか置くこともあるし、gui部分の表記は別の.pyファイルに
してメイン側から呼び出すのは、tkinterでもQtでもWxでも同じだと思うので、フォルダ単位の配布で良いかと...。

受け取った側が、どこにフォルダを置いても動くように、ファイルの呼び出しには
os.path.abspath(__file__)使ってます。
Winではアプリ化するのってpy2exeで簡単にバンドル化できるんですか?
0113デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:03:24.98ID:bv6PVv2A
exeにするメリットデメリットについて教えろ
macの実行ファイルでも同じか
0114デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:08:10.42ID:xzUJqyuR
>>113
・メリット
pythonがインストールされてない環境でも実行出来るので他人に配布するのが楽。
コードが盗み見られづらくなる。

・デメリット
起動が遅い
0115デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:14:28.44ID:bv6PVv2A
python.dll を呼ぶ exe を C で書く
そこから hoge.py (main) を呼ぶ
これでインストールしなくても使える
0116デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:32:23.63ID:xzUJqyuR
>>115
Nuitkaっていうコンパイラがそれっぽいことをしてくれるみたいだけど
使い方がよく分りません><
0117デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:36:51.26ID:bv6PVv2A
C の知識あるなら module だけでも tutorial 通りに造ってみ
main じゃなくても良い
0118デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:41:01.00ID:SPJ86W8H
exeの方法の一つとして、Nuitka を使ってCのソースを作り出してCをコンパイルして実行ファイルを作る方法が有るみたい、
Nuitka の話題はあまり聞かないけど良さそうなのにどうして?

ま、それができればかなり美味しそうなのにあまり話題にならないという事はそれなりに問題もあるんだろうけど。
0119デフォルトの名無しさん
垢版 |
2019/10/30(水) 16:51:06.42ID:SPJ86W8H
https://github.com/Nuitka/Nuitka

Nuitka

Nuitka は Python コンパイラの1つです。
Python を C にトランスパイルし、libpython とリンクすることで実行可能ファイルにします。
2018年3月現在、最終更新は2018年です。

Windows、macOS、Linux および FreeBSD に対応しています。
また、x86/x86_64 だけでなく arm にも対応しているようです。

――-
動的型付を静的型付のCでコンパイルするという事は、頻繁に型変換を自動でやるのかな? 結構な重労働に感じる
0120デフォルトの名無しさん
垢版 |
2019/10/30(水) 17:15:50.40ID:iACLsVPd
全部 PyObject やで
0122デフォルトの名無しさん
垢版 |
2019/11/01(金) 13:49:05.86ID:kRVs1Mzo
初級者なんだけどこれくらい読んどけって本ありますか
とりあえずEffective Pythonは候補にありますがこれで良いのか他にもっと良いのあるか迷ってます
0124デフォルトの名無しさん
垢版 |
2019/11/01(金) 15:22:06.95ID:4VV6x0Mu
ネタにはネタで返す
あま
dp/4839965250
0125デフォルトの名無しさん
垢版 |
2019/11/01(金) 15:30:40.25ID:OaT/+tjP
徳丸本
0126デフォルトの名無しさん
垢版 |
2019/11/02(土) 10:11:29.90ID:wdMk8lAB
pythonは標準でastモジュールが用意されているけど、そこからpythonコードを
生成するのには何を使うのがいいのかなあ。
pypiで探してみても古かったりあまり使われてなさそうなものばかり。
0128デフォルトの名無しさん
垢版 |
2019/11/07(木) 10:47:12.65ID:aP7RW2Ns
seleniumでchrome動かす用途でしかほぼ使ってないんですけど、
chrome自体はもちろんとして、pythonのインストール先も
SSDなど高速なドライブにした方が、動作は早くなりますか?
それともほとんど関係ないでしょうか
0129デフォルトの名無しさん
垢版 |
2019/11/07(木) 10:51:05.58ID:dB1QBGXo
常駐してほぼ無限ループするようなやつならメモリ増やした方が良い
0130デフォルトの名無しさん
垢版 |
2019/11/07(木) 16:22:26.99ID:4Fl79lQn
selenium自体高速動作じゃだろ
ドライバ自体がボトルネックだからよっぽどなハードじゃない限り...
0131128
垢版 |
2019/11/07(木) 16:43:18.28ID:aP7RW2Ns
なるほど、ではpythonのインストール先はHDDでも良さそうですね

実は無駄にRAMdisk上にインストールしてしまったのですが
インストールした後にインストール先の変更(移動)ってできますかね…
0132デフォルトの名無しさん
垢版 |
2019/11/07(木) 17:16:00.20ID:i5KqlsP0
>>131
Macだったらかなりアキラメロン
Winだったら普通にアンインストールしてから再起動かけて再インストールで、いんじゃね?
0133128
垢版 |
2019/11/07(木) 18:23:51.91ID:luP40erd
すいませんWindowsです
いろいろpipでインストールしたものもあるのでめんどくさいなーと思ったのですが仕方ないですね
ありがとうございます
0134デフォルトの名無しさん
垢版 |
2019/11/07(木) 19:05:01.58ID:i5KqlsP0
>>133
ちょっとまて
「一旦アンインストール」をする前に
pip freeze > hogehoge.txt
みたいなコマンド(正確なのは
ぐぐるか、このスレか初心者用じゃないほうのPythonスレにこないだ書いたから、
検索してくれ)で
pipしてたもののリストをだしておいて
入れなおしのあとは
そのリストをpipに食わせて連続インスコって
楽ができるはずだ
0135128
垢版 |
2019/11/08(金) 10:22:58.23ID:a+/GHk6R
>>134
うまくいきました、ありがとうございます

実はpywin32を使ってエクセルを操作していたのですが、
pywin32のインストールの時に、インストーラーでインストールして
そのままでは動かなくて、Python\Lib... 内の何かのファイル2つを
上層のディレクトリにコピーしたら動くようになった記憶があるのですが
その記事がいくら検索しても出てこなくて、困ってます

上記の説明でわかるでしょうか…
0136128
垢版 |
2019/11/08(金) 10:28:32.51ID:a+/GHk6R
自己解決しました
1時間くらい探して見つからなかったからこちらに書いたのに
書いた直後に発見した…

>copy pywintypes26.dll and pythoncom26.dll
>from C:\Python26\Lib\site-packages\pywin32_system32
>to C:\Python26\Lib\site-packages\win32

スレ汚し失礼しました
0137デフォルトの名無しさん
垢版 |
2019/11/08(金) 11:45:58.57ID:3E1/z7K0
そのやり方は間違ってる
おかしなやり方を広めないように
0138デフォルトの名無しさん
垢版 |
2019/11/08(金) 12:33:36.60ID:QLJ5OLdG
転職したくてpythonの勉強始めて約1ヶ月弱・・・
文法の綴りミス多かったり
ルールとか少しづつしか理解出来てなくて悔しい
今までやったこと無い事ばかりでどうすればちゃんと理解しながら勉強出来ますか?
0139デフォルトの名無しさん
垢版 |
2019/11/08(金) 12:54:44.88ID:3E1/z7K0
一度に多くのことをやりすぎない
細かく分けて一つ一つ理解する
その積み重ねでしかない
0140デフォルトの名無しさん
垢版 |
2019/11/08(金) 14:20:41.44ID:JHJDYmIb
>>138
基礎がそもそも出来てないだろうからとりあえず入門書的な本を買う
詰まったら本見て調べる。出て来なければググる
あとはひたすら書いて慣れるのみ。ゲームと同じで攻略本読みまくるよりプレイして経験積むほうが成長できるしね
0141デフォルトの名無しさん
垢版 |
2019/11/08(金) 14:32:26.25ID:3E1/z7K0
最近の入門書は基礎書いてないからなぁ
0142デフォルトの名無しさん
垢版 |
2019/11/08(金) 15:04:10.78ID:QLJ5OLdG
レスありがとうございます。
本は二冊買っていてチュートリアルのサイトも見ながらもう一度初めの基礎からしっかり覚えて行こうと思います。
0143デフォルトの名無しさん
垢版 |
2019/11/08(金) 16:55:32.83ID:HH11ynhJ
>>135-136
コピーして解決☆彡じゃなくてだな

オリジナルのファイルがある階層に
PATH(環境変数)が通ってないのが原因だろうから
site-packagesへのパスを通せ

というか
2系はもうすぐ終了するので、使うと後ですごい苦労するぞ。
最初から3系使え。
0144128
垢版 |
2019/11/08(金) 17:17:29.97ID:a+/GHk6R
>>143
詳しくありがとうございます
なるほどPATH通せばいいだけだったんですね…
こんな初歩的なことに気づかずお恥ずかしい限り

後出しになってしまって申し訳ありませんが
上に貼った英語の記事は26になってますが、自分はPython3.8です
ご助言ありがとうございます
0145デフォルトの名無しさん
垢版 |
2019/11/08(金) 17:24:50.12ID:uZmDoP6Q
うちもPATHおかしくなってるっぽいけどなんか問題なく動いてるから調べてないや
VScodeのターミナルから全部入れて普通に使えてたがAnaconda入れてからターミナルでpip出来なくなった、AnacondaPromptからなら入る
0146デフォルトの名無しさん
垢版 |
2019/11/09(土) 03:50:38.37ID:FjA6FVDT
環境変数は書く順番で通るパス変わるからな。bashなら実行環境でwhich pythonて打ったら自分の使ってるのがどれかわかるよ。
Anacondaは依存を最高に管理してくれてるから、基本conda使うんだよ。pandas のこのversionには依存してるnumpyはこのちょっと古いversionまでしか上げないとかな。
何でも最新入れればいんじゃないんだよ。condaになければpipだけど。使うときpip install numpyとか使わないでAnacondaのpipがあるフルパス スペースinstallスペースnumpyとかって使うんだよ。
そうじゃないとwhich pip で通ってるMacでいうとpython2.7にnumpy入れるだけだからな。
Anacondaは使えないとかいうバカをたまにみるけども。
0147デフォルトの名無しさん
垢版 |
2019/11/09(土) 11:17:23.29ID:BZG37V3w
pathに2と3のpathが混ざってるとかありえないんだが
0148デフォルトの名無しさん
垢版 |
2019/11/09(土) 11:26:40.59ID:thUc1KqM
2ヶ月目くらいの初心者ですが 図書館で子供向けのPython入門本と
コーリー・アルソフの「独学プログラマー」ってPython本借りて
基礎からやっています この本はなかなかいいかもしれません 
0149デフォルトの名無しさん
垢版 |
2019/11/09(土) 11:45:11.23ID:06f/2UDZ
>>147
Winユーザーだけど、
まぜてるよ?

まだ2系時代の遺産をリメイクし終えてないから、
ふだんは2優先起動で、

3優先にしたいときだけは、
「3を優先するようにするバッチ」からコマンドプロンプト出してる。


Macを使わされてた時期もあるけど(当時は2しかなかったけど)
システムのPythonと自分のいじるPythonわけてたから
環境変数に書く順番はジッサイトテモダイジだった
0150デフォルトの名無しさん
垢版 |
2019/11/09(土) 11:50:44.57ID:BZG37V3w
windows だけど
2 しか使わない console と
3 しか使わない console に
分けてる
0153デフォルトの名無しさん
垢版 |
2019/11/09(土) 12:05:12.44ID:2CZWzZ9R
プロジェクトごとに仮想環境作ってそこを使うようにしてるわ
ごっちゃにならないし、補完もできるし楽
グローバルな環境でpipとかまず使わん
0154デフォルトの名無しさん
垢版 |
2019/11/09(土) 12:25:29.79ID:+gucf0S5
>>151-152
Windowsだとそれが一番楽だよね。

あと、2、3ともにPATHを通して(一応3が優先にしてる)
あと、python.exe、pythonw.exe をそれぞれ、
python2.exe、pythonw2.exe、python3.exe、pythonw3.exe のようなシンボリック・リンクを作っておいて、
これでコンソールというか実行するインタープリターを使い分けしてる。

同様に、py2.exe py3.exeっていうシンボリック・リンクで楽ちん呼び出しもしてるな。

pip.exeがそんな感じになってるのでその真似なんだけど。
0156デフォルトの名無しさん
垢版 |
2019/11/09(土) 13:29:21.58ID:gfwYwMk7
classをはじめて触ってるのですが
class Test :
__def __init__(self):
____pass

みたいに書くと思うんですが、インスタンスを作成するときにtes=Test()としないとエラー吐くのはどうしてですか?
class Test() :
__def
と書いていくのではないのですか
classの()はどうして書かないの?
書かないのにインスタンス作成するときは書くのはなぜ?
0158デフォルトの名無しさん
垢版 |
2019/11/09(土) 13:42:43.23ID:BZG37V3w
class Test(object):
0159工学部生
垢版 |
2019/11/09(土) 14:50:22.61ID:+vhC4kuU
ガッコで画像処理の勉強やったりしている工学部生ですが、
すばらしい画像処理やPythonのサイトがあったのでご報告します。
工学全般に説明されているので、お気に入り登録をおすすめします。
またいつか、質問があったりしたら来ますね。

https://algorithm.joho.info/image-processing/digital-imaging/
0160デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:13:06.37ID:BZG37V3w
GJ
0161デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:16:50.65ID:gfwYwMk7
>>157-158
ふーむ…(object)で調べたらなんとなくわかったような分からないような

もうひとつ聞きたいのですが
いまデータベースにアクセスして各種パラメータを取る関数?を作ってます

get_ids():
__なにかの処理
return ids

get_names():
__なにかの処理
return names

という感じです
これはclass化するべきものではないのかなと思ったので
class GetItemParamsを作成し、配下に各メソッドを作ろうかなと思ってるのですが
これって考え方として合ってるんですか?
なんか
get = GetItemParams()
get.names()とかって冗長な気がします
0162デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:18:34.27ID:gfwYwMk7
GetItemParams.pyファイルにコンストラクタがわりのグローバル変数と各関数書いて、importする方が適切なんでしょうか?

なんかよくわからなくなってきました
こういうシチュエーションのときはどう書いてったらいいんでしょうか
0163デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:20:01.73ID:BZG37V3w
変数名を get にするのは混乱の元だから辞めた方が良い
クラスにするのが抵抗あったらモジュールにするだけでも良い
db とのコネクションをどうするかとかも一緒に考えて
0164デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:51:17.74ID:/O8nGewy
>>156
classの()は継承する時に親クラスを書くためのもので引数とは違う
何も継承しないならわざわざ()だけ書かなくても良くなってるだけ
0165デフォルトの名無しさん
垢版 |
2019/11/09(土) 15:57:58.96ID:thUc1KqM
>>156
僕も初学者なのでアレですが…
クラスを定義する時の class Test(): の括弧のなかにはselfが入っていて、
それは a = class() とした時に第一引数self = a は
Pythonが自動的に渡してくれるから省略できるのだと思います
0167デフォルトの名無しさん
垢版 |
2019/11/09(土) 16:24:23.82ID:q4QDxUWz
>>165
それは>>148で学んだ知識なのか?
0169165
垢版 |
2019/11/09(土) 18:58:21.31ID:thUc1KqM
>>165 の話ですが..ちょっと認識違いのようでした
>>164 さんの言うとおり 既存のクラスを継承する時には class(): で使い、
通常は書いても書かなくても良い 
何も書かなければ object型を継承したとみなされるようです 
失礼しました
0172デフォルトの名無しさん
垢版 |
2019/11/09(土) 21:51:52.29ID:K6bHYoyh
まぁ、そういうこともあるよね
ドンマイ
0173デフォルトの名無しさん
垢版 |
2019/11/10(日) 06:20:36.34ID:ywjUItB+
>>159
そこは超初心者用だ
Pythonに慣れたらいち早く引っ越せ
さっさと卒業しろ
0175デフォルトの名無しさん
垢版 |
2019/11/10(日) 13:27:12.34ID:hRll0rFL
>デジタル画像の画素を数式で表現する場合、一般的には行列を用います。

はぁ?
0176デフォルトの名無しさん
垢版 |
2019/11/10(日) 13:48:08.23ID:94cuzmld
DataFrameの末行に1次元リストを行方向に結合したい
dfの列数とリストの要素数は合ってる
この場合はどう書くのが早いですか?
0178デフォルトの名無しさん
垢版 |
2019/11/14(木) 00:22:53.96ID:SNdbBvwP
ひと月、本見ながらコード書いてて余り理解出来てなかったけど
ここで聞いて基礎復習しながら作ってみたい物を調べながら書きだして3日だけど全然頭に入ってくる感じが違って楽しい!
どうしても分からない事が出てきたら聞きにきますのでその時はどうか宜しくお願いします。
0179デフォルトの名無しさん
垢版 |
2019/11/14(木) 06:45:13.21ID:KETh1A50
とりあえずGUI表示させてボタンつけたりできて
敷居が超低いことがわかって興奮したけどそれで終わってしまった
ガチ系じゃなくて、ちょっとした作業って具体的に何ができるの
0180デフォルトの名無しさん
垢版 |
2019/11/14(木) 12:32:22.90ID:AkEZ67b9
>>179
ご質問の趣旨に沿っているか分からないけど、私も趣味でPyQtでちょいちょいツール作っていますよ。
最近作ったもの↓
・子供が迷路たくさんやりといと言うので、迷路作成プログラム(PyQtでプリンタ使う練習)
・車のO2センサー電位を表示するプログラム(マイコンで測定回路を自作。matplotlibとPyQt組み合わせ)
・子供がひと桁の足し算の練習をやりたいというので、足し算ドリル
・物理現象で乱数作る実験したくて、その検証プログラム(トランジスタの電子雪崩回路自作、matplotlibとPyQt組み合わせ)
・フラクタル画像の実験で雪の結晶ぽい画像を描画するプログラム
・車のCAN-BUSをモニターするプログラム
・USBシリアルのモニタ
0182デフォルトの名無しさん
垢版 |
2019/11/14(木) 13:56:26.96ID:Gps+nt/a
レフ機から画像のインポート
クリップボードのスタック
端末出力の特定の語の着色
辞書
写真の露出からEV値に変換(現場の明るさの数値化)
フラクタル図形の描写
素因数分解
素数判定
imgur のバグの簡易対処

等等
0183デフォルトの名無しさん
垢版 |
2019/11/14(木) 14:28:26.43ID:AkEZ67b9
>>182
素数判定ってどうやりました?
私は2から与えられた数の平方根(または半分:mathをimportしない場合)までをひたすらforループで%して
判定するプログラムを作ったのですが、もっとスマートな方法ってありますか?
0186デフォルトの名無しさん
垢版 |
2019/11/14(木) 14:56:48.60ID:c3Z653za
メモリとかファイルアクセス可なら
エラトステネス
0187デフォルトの名無しさん
垢版 |
2019/11/14(木) 15:10:56.35ID:Gps+nt/a
>>183
素数出したやつキャッシュしておけばもっと早くとかはあるけど
ルートまで単純にチェックするのが簡単なので C言語で書き直した
wolfram などの判定は異常に速いから素数判定の数学の術を知れば
もっと早くなるとおもうので数学の板でそこの住民に聞いてくれ
あいつら素数大好き
0189179
垢版 |
2019/11/14(木) 15:50:22.34ID:KETh1A50
>>180,181,182
おぉめちゃくちゃ沢山ありますね
主にPC上での補助ツールの想定しかしていませんでしたが
データさえインポートできれば、ちょっとしたIoTみたいなことができるのですね

JavaScriptのときは実用する機会が多かったのでモチベが続いていたのですが
Pythonで表現できることも多そうなので同じ感じのモチベでやろうと思います
ありがとうございました
0190デフォルトの名無しさん
垢版 |
2019/11/14(木) 18:27:10.81ID:Vty2Vo6K
var y=0

func main():
for y in range(4):

y += 1
print(y)

4まで表示したら終了したいのですが、どのようにして処理を終了するのでしょうか
1
2
3
4
1
2
3
4
とメイン関数内で繰り返されます
0194デフォルトの名無しさん
垢版 |
2019/11/14(木) 22:48:41.07ID:JLcgFUDX
ソケットプログラミングの実験なんかもPythonでできるし、速度や並行性を要求されないものだったら
大抵Pythonで書いて楽してるな。

その辺を要求されたらC#になる感じだな。
あとはブラウザ上でなんか動かすときのためにJavascriptを知っておけば、
PC上でのプログラミングは大体カバーされる感ある。
0196デフォルトの名無しさん
垢版 |
2019/11/15(金) 09:43:06.08ID:gWMbHCLD
if((i%FIZZ)==(i%BUZZ)==0):
上記を含むコードを動かしたところ、意図する動作にはなるのですが
こういう書き方、して良いんでしょうか
(言語によってokだったりngだったりしたような)
この書き方の名称が解らないので調べられません
0198デフォルトの名無しさん
垢版 |
2019/11/15(金) 14:13:50.84ID:76R0IrhI
>>196
andの省略で条件の連結が可能
10 < a < 30 みたいに書ける
0200デフォルトの名無しさん
垢版 |
2019/11/15(金) 18:34:18.36ID:7pVJDIaJ
ほんとに初歩の初歩でごめんなさいなんですけど、今電卓を作っていて、ボックスをからにしてから結果を表示したいのですがreturn.self.Box.delete(0,tk.end)と
return self.Box.insert(tk.end,eval(self.Box.get()))
を順番に実行したいのですがどうやっても同時になってしまいます、順番にやる為にはどうすればいいですか?
0201デフォルトの名無しさん
垢版 |
2019/11/16(土) 05:52:53.04ID:bkZ6TXWU
ループってなんで難しいんですか(´;ω;`)
0203デフォルトの名無しさん
垢版 |
2019/11/16(土) 10:06:59.16ID:bkZ6TXWU
基礎は大事ですか?
0204デフォルトの名無しさん
垢版 |
2019/11/16(土) 10:14:55.78ID:t6zcY+AG
初心者はこんなコードを書きやすい
典型的な糞コード

ループ {
sum = _mm_add_ps(sum, data[i]);
}
0205デフォルトの名無しさん
垢版 |
2019/11/16(土) 10:18:14.83ID:GIYj0orb
フォンノイマン型のコンピュータの効率の良いメモリ活用ために
変数を使ったり代入をするのが
数学的ではない奇妙に見える方法だから
0206デフォルトの名無しさん
垢版 |
2019/11/16(土) 10:37:59.07ID:wNtItu5d
mp3をvlcから再生するとまともな音質なのにpygame.mixerから再生すると音割れ酷いんですけどどういう違いが考えられますかね?
0207デフォルトの名無しさん
垢版 |
2019/11/16(土) 10:49:12.07ID:t6zcY+AG
事前に windows media player 立ち上げて(こっちは立ち上げるだけで何もしない)から実行したら?
0208デフォルトの名無しさん
垢版 |
2019/11/16(土) 11:54:36.89ID:QixdnrUX
pythonって何?
0209デフォルトの名無しさん
垢版 |
2019/11/16(土) 13:29:03.42ID:EoZMxBL0
オッパイソン。
0212デフォルトの名無しさん
垢版 |
2019/11/16(土) 15:47:44.42ID:wNtItu5d
>>207
書き忘れてました。実行環境はラズパイ3です。
vlcプレイヤーを立ち上げた状態でpygameで鳴らしてみましたがやはり同じ曲でも音割れしますね・・・スピーカーを替えても同じでした。
init時のパラメータを調整してみるしかないのかな
0213デフォルトの名無しさん
垢版 |
2019/11/16(土) 15:52:13.18ID:MmPHNC45
ぐぐればいっぱい出る
0215デフォルトの名無しさん
垢版 |
2019/11/17(日) 15:41:37.34ID:1Qw6RGLV
ゲームプログラミングでも上達するなりか?
0216デフォルトの名無しさん
垢版 |
2019/11/17(日) 15:57:25.83ID:+usv6kar
>>215
名作はもちろん、
つきぬけた糞ゲーをつくるのも、
なかなかにむずかしいと学べるだろうよ。
0217デフォルトの名無しさん
垢版 |
2019/11/17(日) 17:20:28.54ID:1Qw6RGLV
テトリスでもかなりむずいよ
0219デフォルトの名無しさん
垢版 |
2019/11/18(月) 08:06:17.10ID:Z0XWPK/5
r1 = "6x/im-name-5kg/10.x"
r1b = "6x/im-na-me-5kg/10.x"
r2 = "7x/im-250g-name/20.x"
r2b = "7x/im-250g-na-me/20.x"
r3 = "8x/im-1kg-name-1kg/30"
r3b = "8x/im-1kg-na-me-1kg/30"

name部分にはランダムな英語文字列(大文字/小文字のみ)が入ります
na-me は apple -> app-le みたいなパターンです.その他記号や数字は入りません
このname部分だけ抽出したいんですが,正規表現だとどう書くのでしょうか
if使って不格好にやることはできるのですが,遅いです
0220デフォルトの名無しさん
垢版 |
2019/11/18(月) 09:45:18.79ID:ahZzeXy3
[A-Za-z\-]+
0221デフォルトの名無しさん
垢版 |
2019/11/18(月) 10:26:30.32ID:yOEY+vW5
>>219
name以外の部分はそこで列挙したパターンのみなのか、数字や桁数などが可変なのか?
最初に正確な仕様を出さないと、後から五月雨式に追加すると非難されるぞ
0224デフォルトの名無しさん
垢版 |
2019/11/18(月) 12:19:53.85ID:Z0XWPK/5
可変長文字列/im-名前-重量/2桁の数字 可変長文字列
可変長文字列/im-重量-名前/2桁の数字 可変長文字列
可変長文字列/im-重量-名前-重量/2桁の数字 可変長文字列
という3種類がテンプレートで,重量と名前の表記には揺れがあります
名前ブロックを抽出するのが目的です
例えば~/im-1.5kg-name/xx~のときはnameが欲しい
~/im-100g-n-a-m-e-100g/xx~のときはn-a-m-eが欲しい
0225デフォルトの名無しさん
垢版 |
2019/11/18(月) 12:22:23.33ID:Z0XWPK/5
def gen_objects(elems):
____import random,string
____name_pattern = ["name","n-ame","n-a-me","n-a-m-e"]
____weight_pattern = ["100g","1kg","1.5kg"]
____temp = []
____for i in range(elems):
________rand_strings = "".join([random.choice(string.punctuation + string.ascii_letters + string.digits) for i in range(random.randint(4,7))])
________rand_name = random.choice(name_pattern)
________rand_weight = random.choice(weight_pattern)
________rand_footer_num = random.randint(10,99)
________n_w = f"{rand_strings}/im-{rand_name}-{rand_weight}/{rand_footer_num}{rand_strings}"
________w_n = f"{rand_strings}/im-{rand_weight}-{rand_name}/{rand_footer_num}{rand_strings}"
________w_n_w = f"{rand_strings}/im-{rand_weight}-{rand_name}-{rand_weight}/{rand_footer_num}{rand_strings}"
________obj = random.choice([n_w,w_n,w_n_w])
________temp.append(obj)
____return temp

testlist = gen_objects(10)

こういう感じのテストユニットをループで回して正規表現でnameを抽出していってnamelistを作成しようとしています
0226デフォルトの名無しさん
垢版 |
2019/11/18(月) 12:24:29.75ID:ahZzeXy3
>>224
>>219 には浮動小数点入ってないな
曖昧過ぎて話にならん
0227デフォルトの名無しさん
垢版 |
2019/11/18(月) 12:29:41.86ID:Z0XWPK/5
今は3種類の正規表現パターンでtryとtypeErrorを重ねて抜き出してます
もう少し早くて上手いやり方がないかなと考えています
0229デフォルトの名無しさん
垢版 |
2019/11/18(月) 14:00:40.82ID:CjfZ5YZK
>>224
im-(?:¥d+¥.?¥d*k?g-)?(.*?)(?:-¥d+¥.?¥d*k?g|/)
とか
im-(?:[¥d]+.+?-)?([A-Za-z]+(?:-?[^¥d][A-Za-z]+)*).*/
とか

どっちも微妙なところがあるから用途に合わせて組み合わせるなり最適化するなりしてどうぞ

>>225 本題と関係ないけど:
- 名前パターン x 重量パターンは12種類しかないから全部テストしたほうがいいんじゃ?
- 入力値のバリエーション増やして品質あげたいならHypothesisとか使うといいかも
- elemsという名前で数を渡されるのはちょっと…
0231デフォルトの名無しさん
垢版 |
2019/11/19(火) 07:49:22.12ID:XrW2V/V1
あーこれケツのランダム文字列にも/が出てくると破綻するんか。死ね
pat = r''im-(\d.*?k?g?-)?([a-zA-Z-]*)"
pick = re.search(pat,i)
pix = pick[2].rstrip("-")
これでダメかな
0233デフォルトの名無しさん
垢版 |
2019/11/19(火) 09:27:15.87ID:iaQaZOOq
.+?\/im-(?:\d+k?g-)?([a-zA-Z-]+)(?:-\d+k?g)?\/.+
で$1でnameだけ取り出せるかな
jsでしか確認してないけど
0235デフォルトの名無しさん
垢版 |
2019/11/19(火) 10:04:52.27ID:oTxEUlYH
numpyに入ってる画像をkivyのパネルにtextureにして貼ってるんだけどサイズが合ってない
numpyの時点で指定サイズに縮小とかできませんか
0237デフォルトの名無しさん
垢版 |
2019/11/19(火) 12:22:53.03ID:9syUGbcK
遺伝的アルゴリズムは最適化法
ニューラルネットはモデル
0238デフォルトの名無しさん
垢版 |
2019/11/19(火) 12:53:12.56ID:8naC8O/U
>>235
numpy だけでは無理
numpy -> PIL Image -> resize -> numpy
0239デフォルトの名無しさん
垢版 |
2019/11/19(火) 16:38:25.85ID:JtEhgFhM
>>237
わかんない
0240デフォルトの名無しさん
垢版 |
2019/11/19(火) 21:18:34.28ID:kpg8RS9X
>>239
遺伝的アルゴリズムは、生命の進化過程を基にした、より良いデータを生み出す手法
ニューラルネットワークは、脳の仕組みを基にした、AND回路やOR回路の組み合わせのような、処理するための回路
0241デフォルトの名無しさん
垢版 |
2019/11/19(火) 21:37:12.77ID:5cAUjifH
遺伝的アルゴリズムは、集団の中で殺し合ってくださいと言うバトルロワイヤルな世界、最後に生き残った者たちで生きて行こうぜと言う殺伐とした世界

ニューラルネットワークは、集団に役割を持たせて、みんなに狩や料理や建築などを割り振って、上手くできるヤツを育てて専門家を作って、出来ない奴もいるけど取り敢えず置いとけと言う優しい世界
0242デフォルトの名無しさん
垢版 |
2019/11/19(火) 23:04:25.84ID:gXqTBZ4g
別にニューラルネットワーク同士を遺伝的アルゴリズムで殺し合わせて学習させてもいいんだぞ
0244デフォルトの名無しさん
垢版 |
2019/11/20(水) 04:16:18.18ID:MuZ0V3fT
GANがまさにそうだと思うんだけど…
0246デフォルトの名無しさん
垢版 |
2019/11/20(水) 08:56:34.21ID:F9Zb1c/g
いや敵対的生成ネットワークのことだって。
0247デフォルトの名無しさん
垢版 |
2019/11/20(水) 09:04:02.02ID:BMlssBJW
遺伝的アルゴリズムとニューラルは技術的に関連があるの?
遺伝的アルゴリズムのほうが簡単ですか?
0248デフォルトの名無しさん
垢版 |
2019/11/20(水) 09:11:29.60ID:2AIX148z
お前さ、お勉強スレで

> glslとpytorchでの画像認識は似ているのですか?
> pytorchとtesorflowlってなにがちゃうんですか?
> どちらからはじめたらいいです?

とか聞いてた奴だろ
二度とプログラミングするなと言っていたはずだが、もう一度言わないと分からないか?
0249デフォルトの名無しさん
垢版 |
2019/11/23(土) 09:43:22.24ID:EZrHMol+
tkinterで線を描くと線がギザギザしてしまいます
フォトショップのようななめらかな線を引く方法を教えて下さいませ><
アンチエイリアス?って言うんでしたっけ?助けてください
0250デフォルトの名無しさん
垢版 |
2019/11/23(土) 09:47:17.98ID:TgM3Aq9p
GANって遺伝的アルゴリズムだったんだ。知らないで調律してた
ただの普通の敵対的生成じゃん。駄目だなあ、技術から入ると背景の理論の壮大さを
まったく感じ取れない
0251デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:01:47.45ID:rr4WRS2d
>>249
フォトショでもおまえのマウスさばきが糞ならギザギザの線になるんだが。

あと、みためは同じような「なめらか感」でも
自動で手振れによるぎざぎざをなかったことにする派と
手の動きを、近似の数式にすることで、どこまでもなめらかに表現している(ベクタ)派
があるんだが。
0252デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:04:35.49ID:EZrHMol+
>>251
アンチエイリアスのやり方を教えて下さい。お願いします。
tkinterだと斜め45度の直線でもギザギザしてしまいます><
0253デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:10:17.81ID:cBKKqL2b
canvasの解像度替えろ
0255デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:13:12.68ID:EZrHMol+
>>254
白黒2値じゃない白黒の境界を灰色にする方法をお願いします><
0256デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:15:03.84ID:EZrHMol+
>>253
解像度を変えても治りません。。。
0257デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:34:30.18ID:rr4WRS2d
>>255
灰色とひとくちにいうが
こいのとうすいの くらいは作っておかないと
コレジャナイ感が出そうなんだが。

tkinterの色指定についての説明を読めよ。
「How to change the colour of everything in a tkinter GUI」とかでぐぐるもよし。

英語アレルギーなら
端末を窓から投げ捨てろ
0258デフォルトの名無しさん
垢版 |
2019/11/23(土) 10:54:16.58ID:3WxMvOwa
きっとブレゼンハムのアルゴリズムか何かで線を引いてるだけだろ
ならアンチエイリアスを自前で実装すればいい
0259デフォルトの名無しさん
垢版 |
2019/11/23(土) 12:14:52.78ID:B0RgWWc8
pyautoguiでchromeの操作を自動化したいんだけど、chromeでリンクをクリックしたあと、ページの完了が終わるまで待つには、sleep使う以外にはどうしたらええんやろか
0260デフォルトの名無しさん
垢版 |
2019/11/23(土) 13:01:09.50ID:MYL7zca4
var array =[
[0,1,0,1],
[0,1,0,0]
]
var array2 =[
[0,0,0,0],
[0,0,0,0]
]


配列がすべてゼロだったら、という条件はどう書くんですかね
0261デフォルトの名無しさん
垢版 |
2019/11/23(土) 13:11:12.94ID:rr4WRS2d
>>259
セレニウムだと「クリックできる状態か否か」を判定できるんだが
pyautoguiにあるかどうかはシラネ
0262デフォルトの名無しさん
垢版 |
2019/11/23(土) 13:13:50.16ID:rr4WRS2d
>>260
中身全部を0かどうか順番にチェック
0じゃないものを発見した時点で0以外をみつけたフラグをおっ立ててチェックを抜ける(break)

チェックする部分の次のところでは
0以外発見!のフラグがたってるかどうかで
処理をわける
0263デフォルトの名無しさん
垢版 |
2019/11/23(土) 13:58:42.54ID:Lev/ciM6
そういえばwindwosのminesweeperをポチポチするプログラムを
pythonで書いて自動化して完成させた途端
msがminesweeperのデザイン変更しやがって糞な思いした
画面ポチポチするプログラムは仕様変更に対して効率悪い
0264デフォルトの名無しさん
垢版 |
2019/11/23(土) 14:00:46.78ID:Lev/ciM6
>>260
var 付いてるからスレチだが
python の話と仮定して答えると
numpy 使えば一発
0265デフォルトの名無しさん
垢版 |
2019/11/23(土) 14:04:58.22ID:rr4WRS2d
>>263
ボタンの上からn番目みたいなアッタマワルイ指定方法とか、
画面上の座標指定とかじゃなく、
クリックできるようになってるもの固有の何かを指定しておいたとしても、
大幅デザイン変更に遭遇したら泥縄になるのは
さけられない。
あきらメロン

マインスイーパみたいに
マス目があるの絶対な!みたいな
なにがしかの決まりがあるものならば、
マス目の区切りを自動検出して
チェス盤や将棋盤のごとくx軸y軸順番にマス目番号を振っちゃう
みたいなのを作っておけば、
色合いとかかえられた際は
マス目の自動検出をちょいちょい手直しするだけで済むが。
0271デフォルトの名無しさん
垢版 |
2019/11/23(土) 15:43:49.14ID:EZrHMol+
>>257
英語はわかりません><

>>258
アンチエイリアスは自前するしかないのですか?
0272デフォルトの名無しさん
垢版 |
2019/11/23(土) 15:48:30.46ID:rr4WRS2d
>>271
じゃあPythonどうこうより先に
Google自動翻訳あたりをなんとか使えるように勉強しろ
あと
無知を誇るな
0273デフォルトの名無しさん
垢版 |
2019/11/23(土) 16:20:50.22ID:EZrHMol+
>>272
英語から日本語への翻訳はまだ学習が進んでなくて使い物になりません。
お前のようにw
0275デフォルトの名無しさん
垢版 |
2019/11/23(土) 17:03:55.37ID:EZrHMol+
>>274
プログラマは目指してません><
趣味でPythonの勉強をしてます。
どなたかアドバイスお願いします。
0276デフォルトの名無しさん
垢版 |
2019/11/23(土) 17:10:04.04ID:lLsY3+nO
アドバイスくれと言う割に、挑戦する前から自分には出来ませんって
やる気すら無いやつに誰も教えてくれるわけ無いじゃん
0277デフォルトの名無しさん
垢版 |
2019/11/23(土) 17:13:09.06ID:EZrHMol+
>>276
挑戦はしてます。。。
英語を翻訳機にかけてみましたが日本語になりません。。。
0278デフォルトの名無しさん
垢版 |
2019/11/23(土) 17:23:00.52ID:EZrHMol+
おすすめの翻訳機はありますか?
0279デフォルトの名無しさん
垢版 |
2019/11/23(土) 17:37:34.31ID:EZrHMol+
僕は昔フラッシュのアクションスクリプトを勉強してたんですが
フラッシュではジャギはかからずにアンチエイリアスが自動でかかりました
パイソンはできないのですか?
0280デフォルトの名無しさん
垢版 |
2019/11/23(土) 18:00:42.08ID:Lev/ciM6
気になるならPILでお絵描きしてtkのcanvasに貼れ
0281デフォルトの名無しさん
垢版 |
2019/11/23(土) 18:06:19.44ID:EZrHMol+
>>280
ありがとうございます。
別のライブラリに頼るしかないのですね。
その方法を採用させて頂きます!
0282デフォルトの名無しさん
垢版 |
2019/11/23(土) 18:26:54.09ID:B0RgWWc8
>>270
とりあえずpyautogui.locateOnScreenメソッドで次クリックするアイコンの画像が出てくるまでループしてsleepする形にしたわ

pyautogui.locateOnScreenは画像がなかったら、ImageNotFoundExceptionの例外を上げるとドキュメントに書いてあるのに、noneを返してくるわ(´・ω・`)
0284デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:06:40.36ID:MYL7zca4
var array2 =[
[0,0,0,0],
[0,0,0,0]
]

func _ready():
for i in array2.size():
for j in array2[i].size():
if array2[i][j] != 0:
print("true")
else:
print("false")

配列にゼロが含まれるかどうかチェックしたいんですが、これだとfalseが8回帰ってきますよね
あるかないか 1度のみの結果を返すように出来ますか
ちなみにgodotです
ありがとう
0286デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:17:51.31ID:rr4WRS2d
近頃
あっちのスレでもこっちのスレでも
GodotをPythonだと思って湧いてくるあふぉが多すぎるから

次からは
1に
「godotはスレチ&板チ (・∀・)カエレ!!!」を
明記した方がいいとおもう件。 >>980あたりの人へ

↑についてどうよ? >>all
0287デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:22:39.07ID:MYL7zca4
帰ります(´・ω・`)
0289デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:26:50.79ID:NPpi8aJ+
まあ、冗談だけど
x=sum(array2,[])
x.sort()
x[0]==x[-1]==0
0290デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:30:52.40ID:fygFNKSM
>>269
Ruby で、Selenium WebDriver なら、

driver.manage.timeouts.implicit_wait で、要素の検索のタイムアウト秒数を設定できる。
何も設定しなければ、10秒でタイムアウト

options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout
0291デフォルトの名無しさん
垢版 |
2019/11/24(日) 09:31:23.38ID:oYE0zbvZ
>>288
ええ、読みました
変数を加算していって合計が0以上だったら、という条件でもいいのでしょうか?
0292デフォルトの名無しさん
垢版 |
2019/11/24(日) 09:38:13.39ID:s1tpy+px
>>291
値が非負だという前提があるのならそれでもいいんじゃね?
コメントなどで明示しとかないとバグの元になるが。
0293デフォルトの名無しさん
垢版 |
2019/11/24(日) 09:39:25.68ID:oYE0zbvZ
>>292
どうも
配列の長さが同じなら、比較用の配列用意するのもいいみたいですね
上のやり方試してみます
0294デフォルトの名無しさん
垢版 |
2019/11/24(日) 23:49:11.18ID:Qx41XXLY
すまん誰かエスパーしてぇ………
anacondaでpython3入れたんだけどコマンドプロントでpython3 --versionやっても何も結果が返されない……
anacondaのインストールフォルダに行けばpython3いるしjupyter notebookとかは普通に使えるのん…
なんで…なんでぇ……コマンドプロントのいじわるぅ……
0296デフォルトの名無しさん
垢版 |
2019/11/25(月) 12:30:19.00ID:pjJuONFZ
書き込む前に考えろ
0297デフォルトの名無しさん
垢版 |
2019/11/25(月) 13:12:54.83ID:TS/Fak3X
いや書き込むと解決するんだよ
0299デフォルトの名無しさん
垢版 |
2019/11/25(月) 14:41:48.11ID:p8g7UnzP
なんでこの言語は
オブジェクト指向なのに
関数で属性を所得することがあるんだ?
なんか意図があるのか?
0300デフォルトの名無しさん
垢版 |
2019/11/25(月) 14:55:04.98ID:meWbd2fX
関数で属性を取得したい、という意図があるんだろ
それ以上のどういう説明が欲しいんだ
0302デフォルトの名無しさん
垢版 |
2019/11/25(月) 15:00:10.38ID:oN5ryHTE
後付けOOPだからしゃーない
さらに作者は関数型も嫌いだから中途半端なサポートになってる
0303デフォルトの名無しさん
垢版 |
2019/11/25(月) 15:24:30.38ID:p8g7UnzP
初心者に最適みないな煽り
で解説書でてるが
宣言いらないし、見た目はシンプルだからこそ
易しい言語ではないな 
0305デフォルトの名無しさん
垢版 |
2019/11/25(月) 16:21:52.74ID:MOiXV6c7
>>299
開発中に変数の型をコードで確認できると便利だろ
あとSQLやPandasの各列をfor文で操作する時に、型チェックして分岐をつけることもある
0306デフォルトの名無しさん
垢版 |
2019/11/25(月) 19:28:04.23ID:WAjfk16n
この引数受け取って < 又は > を関数側で判断したいんだけど どう記述すりゃいいの?
qsort(lambda x, y: x < y, [2, 4, -90, 3, 10])

単純に変数に入れて出力してみたけど
def qsort(a, b):
........print("a= ",a)
........print("b= ",b)

不等号 < > が全く見えません
a= <function <lambda> at 0x000001D564F7B4C8>
b= [2, 4, -90, 3, 10]
0307デフォルトの名無しさん
垢版 |
2019/11/25(月) 21:13:40.05ID:OXWkeipl
>>306
その書き方で間違ってはないよ
渡されたlambdaのソースを確認したいなら
import inspectしてprint(inspect.getsource(a))
0308デフォルトの名無しさん
垢版 |
2019/11/25(月) 21:40:31.09ID:VwBWJhfV
https://github.com/AmbientDataInc/EnvSensorBleGw/blob/master/src/gw_RPi/env2ambientBS.py

これを動かしてみると、
NameError: name 'companyID' is not defined
とエラーになってしまいます。

51行目からの関数「def send2ambient(dataRow):」の中の
52行目の
if companyID == 'ffff': とif文がありますが、どこにもcompanyIDという変数は見当たらない気がします。
56行目〜59行目、52行目を削除して、53行目〜55行目のインデントを戻せば正常に動きました。
companyIDはどうやって取得するんでしょうか?
0309デフォルトの名無しさん
垢版 |
2019/11/25(月) 21:52:08.16ID:VwBWJhfV
>>308
多分解決しました

value[0:4]にcomanyIDが入っていたので、
77行目でvalue[0:4]も渡して、
51行目の引数にcomanyIDを加えてやると動きました

これであってますか?
0310306
垢版 |
2019/11/25(月) 22:40:34.23ID:WAjfk16n
>>307
不等号記号が判断できました
ありがとうございます
0311デフォルトの名無しさん
垢版 |
2019/11/26(火) 05:32:54.67ID:+E2vdhzD
>>3
自前でsort_byみたいなのを作るのかな
0312デフォルトの名無しさん
垢版 |
2019/11/26(火) 11:43:30.34ID:x6kjeL8J
パッケージ、モジュールについて質問です。

import numpy as np
a = np.random.rand(10)

という記述があったとします。

np はパッケージ
random はモジュール
rand() は関数

であっていますか?

np がパッケージだとすると、パッケージは関数や定数などを含むことができてしまっておかしいような気もします。

このあたりについて解説をお願いいたします。
0313デフォルトの名無しさん
垢版 |
2019/11/26(火) 11:53:00.18ID:sOexhNbU
あってる場合もあるし
あってない場合もある
0314デフォルトの名無しさん
垢版 |
2019/11/26(火) 12:04:40.62ID:n4j/cOk3
中身みたらいいんじゃないの?
import numpyがPackage
import randomがSub-Package
randがfunctionってコメント書いてる
0315デフォルトの名無しさん
垢版 |
2019/11/26(火) 12:07:13.67ID:sOexhNbU
質問者の本来の意図は判らんが
質問文だけ読めば
import hoge as fuga
fuga.hage.hige()
の一般的なことを聴いてる可能性もある
ケースバイケースとしか言いようがない
0316デフォルトの名無しさん
垢版 |
2019/11/26(火) 12:44:26.92ID:P1h37MBR
プログラミング始めて2ヶ月弱です。
今TwitterのsearchAPIを使用してtkinterのメインフレーム内のテキストウィジェットに検索結果を追加していくプログラムを書いてまして
threadを使用してリアルタイムに追記させていくことは出来たのですが停止がうまくいきません。
ttps://teratail.com/questions/147319
上記URLの様にスタートとストップを分けて書いているのですがストップ時に止まらず応答無しになります。
tryの前に上記URL内のwhile not stop_flag:を置いてループさせているので
ループ中try内のプログラムにif stop_flagがtrueの時にbreakする条件を追加すれば想定道理に動きますでしょうか?
仕事中で詳しくは記述出来ませんがこの考え方で合っているのか確認したく質問させていただきました。
0317デフォルトの名無しさん
垢版 |
2019/11/26(火) 13:31:57.20ID:dAEqoOXB
仕事中は仕事しろ
0320デフォルトの名無しさん
垢版 |
2019/11/26(火) 16:38:03.43ID:jVdruz6/
>>312
気になるのはわかるが
生成の過程はどうであれ
オブジェクトが生成された程度でいいとおもうよ
ここつついてもなんもでてこない
0322デフォルトの名無しさん
垢版 |
2019/11/26(火) 22:00:33.85ID:x6kjeL8J
柴田望洋さんのPythonの本に、

'\\\\\\\\'

と入力すると

'\\\\'

が出力されると書いてありますが、JupyterLab上で実行すると、

'\\\\\\\\'

が出力されます。

これはどういうことでしょうか?
0324デフォルトの名無しさん
垢版 |
2019/11/26(火) 22:13:19.59ID:x6kjeL8J
もう一つ質問させてください。

id(1)

とするとある大きな正の整数が出力されます。

オブジェクト「1」のIDだと思います。

ある複雑なオブジェクト(あるクラスのインスタンスなど)にIDが割り当てられているのは理解できます。
おそらくインスタンスを作ったときにIDが割り当てられるのだと思います。

整数の場合にはどうなんでしょうか?我々は整数を使うときに整数のインスタンスを作ったりはしません。

このあたりのからくりについて教えてください。
0326デフォルトの名無しさん
垢版 |
2019/11/26(火) 22:29:07.19ID:6BcoKqX2
>>324
id()で表示されるのは実装にもよるが単純にメモリ内のどの位置にそのオブジェクトがあるかじゃなかったかな?
いちいちidが割り振られるのは単純にプログラム内で一度出現した値を再度読み込むときにすぐ読み込めるようにするためだった気がする。
id(1)とかだと同じプログラム内だとずっと同じidになっているがid(10000000000000000000000000000000000)とか数値が大きくなると
ずっと同じ数値を保持するためには莫大なメモリが必要になるから、いちいち同一のidを保持したりせずに毎回値が変わるのがわかると思う

それと、1が整数のインスタンスじゃないというのは勘違いだ。 isinstance(1,int)とすれば整数1が整数のインスタンスだとわかる
プログラムする側が明示的にインスタンスを作らないだけで内部的にはインスタンスになっている

また、C言語などにおいては整数は「単純な値」と言えなくもないが、少なくともpythonにおいては数値もオブジェクト、
dir(1)してみればわかるが1にもさまざまなメソッドがついている
0328デフォルトの名無しさん
垢版 |
2019/11/27(水) 04:07:41.39ID:sALdvXXc
0x100が境なんだね
0329デフォルトの名無しさん
垢版 |
2019/11/27(水) 08:24:04.15ID:XCw5dykM
>>322
JupyterでOutに出るのはPythonで表記したときの書き方。
print('\\\\\\\\')すれば\\\\が出る。
0330デフォルトの名無しさん
垢版 |
2019/11/27(水) 09:18:32.47ID:KJahAAhq
>>322
つまりprint('\\\\\\\\')はPythonで表記したものではないと
0332デフォルトの名無しさん
垢版 |
2019/11/27(水) 14:09:09.81ID:ngGnUYLD
>>299
え?俺便利だと思って多用してるけど....

関数側で引数がリストならfor文で引数内の要素で再帰呼出し、リストじゃなければ
引数を処理みたいな感じで使ってる。
(簡単な例を書き込もうとしたらブロックされた...わかりにくくてすんまそん)
0333デフォルトの名無しさん
垢版 |
2019/11/27(水) 14:40:54.97ID:R3eAH8fN
>>332
たぶんインデントなのと半角英数がいっぱいなのが
先週あたりから強化された全板規制にひっかかる。
>>1にのってるようなソースコード用うpろだを使うのだ
0334デフォルトの名無しさん
垢版 |
2019/11/27(水) 16:09:47.41ID:yvOcgkAY
>>332
なるほど
確かに便利だ
オブジェクト指向の概念からいえば
関数で属性取得するの邪道だと思っていたが
柔軟にしないといけないな
これが純粋性より実用性ってやつか
0335デフォルトの名無しさん
垢版 |
2019/11/27(水) 16:24:01.31ID:ulQKgCH1
The Zen of Pythonの一部の翻訳についてですが、柴田望洋さんは、

「Errors should never pass silently.」を「エラーを黙って渡してはならない。」と訳しています。

エラーを渡すというようなことが実際にPythonであるのでしょうか?
0336デフォルトの名無しさん
垢版 |
2019/11/27(水) 16:26:47.69ID:ulQKgCH1
エラーを黙って見過ごしてはならない。

みたいな意味かと思ったのですが。
0337デフォルトの名無しさん
垢版 |
2019/11/27(水) 17:52:41.97ID:b0aYXQt/
>>336
pass silently を「黙って渡す」と直訳するか、その行為を日本語の表現で
「見逃す」、「見過ごす」と訳すかと違いと思う。

日本語的には見過ごすと訳した方が自然に感じます。
0338デフォルトの名無しさん
垢版 |
2019/11/27(水) 19:02:19.69ID:ymKEnJ4Y
>>336の意味であってる
「黙って通過させてはならない」的な意味

「エラーを黙って渡してはならない」は完全な誤訳
Errors should never be passed silentlyや
You should never pass errors silentlyじゃないと
エラーを渡すという意味にはならない
0339デフォルトの名無しさん
垢版 |
2019/11/27(水) 20:33:56.00ID:hknmBY+P
例外の握りつぶしとかだろ。
例外をキャッチしたけど、何もせずに、そのまま処理を継続したとか

Jupyter Notebook(JN)は、Python, Julia, Ruby などで使うIDE だろ。
VSCode みたいなもの

Bash, PowerShell などのシェル経由でも、
シングル/ダブルクォーテーションで、エスケープのタイミングが違ってくる。
Linux/Windows で書き方が異なる

シェルに渡すときに、既にエスケープされているか、されていないのか

エスケープ文字を、エディタで設定できるかも知れない
0340デフォルトの名無しさん
垢版 |
2019/11/27(水) 20:43:49.33ID:R3eAH8fN
>>335-336
個人的には>>339の解釈に1票。
try:
    なんとかかんとか
except:
    pass
みたいなマジクソ行為は
自分以外の人物が
たとえ0.1×10^23%でもかかわる可能性があるソースコードでは
絶対やっちゃだめだなwww
0341デフォルトの名無しさん
垢版 |
2019/11/27(水) 21:37:06.71ID:OMjrfaFS
pygameは商用利用できますか?
0345デフォルトの名無しさん
垢版 |
2019/11/27(水) 22:18:57.75ID:vYtjQlD0
>>341
可能だが、pyinstallerのような方法で事実上の静的リンクを行った場合には
LGPLに従ってpygameが含まれている実行ファイル全体の再配布を許可せねばならない
つまり俺が買ったらそれを10円で再販してやる
0347デフォルトの名無しさん
垢版 |
2019/11/27(水) 22:27:15.42ID:vYtjQlD0
>>341
補足
あと、リンクの方法に関わらず、そのソフトウェアを買った俺はそれをリバースエンジニアリングし、改造できる
俺のスキルをもってすればライセンス認証の回避は容易であり、お前はそれを禁止できない
0348347
垢版 |
2019/11/27(水) 22:31:35.68ID:vYtjQlD0
すまん、俺が金払って買ったなら認証を回避する意味はなかったな
問題は、ダウンロードは無料だが継続して利用するにはライセンス認証が必要になるというような典型的な配布パターンだ
この場合、俺は金を払わずに改造してライセンス認証を突破し、タダでそれを使う
そしてその方法をWebで公開する
お前はそれを禁止できない
なぜならLGPLライブラリを使用しているからだ
0349デフォルトの名無しさん
垢版 |
2019/11/27(水) 22:42:28.92ID:ap410XA+
>>346
つまりtry ~ except は不要と言ってるのか?
excaptの中に何を書くのが良いのか訊いているんだが。
0350デフォルトの名無しさん
垢版 |
2019/11/27(水) 22:48:46.79ID:R3eAH8fN
>>342
ほんとだ 重要なマイナスが抜けてた!

>>340訂正する
×たとえ0.1×10^23%でもかかわる可能性があるソースコードでは
〇たとえ全世界の砂粒から、ハズレの1粒をひきあてたくらいの確率でも、かかわる可能性があるソースコードでは


>>349
「except:」みたいな雑なくくりをせず
おきるエラーの種類ひとつひとつについて
「except Errorhogehoge:」みたいなかんじで一個ずつちゃんと分岐させろ
0351デフォルトの名無しさん
垢版 |
2019/11/27(水) 22:57:52.16ID:ap410XA+
>>350
例外の種類ごとに異なる対処が必要なら分岐するがそうでないならその限りではない。
何か対処すべきことがあればそれを記述するが他にすることがなければpassでよい。

おまえさんは何か変な教条主義に囚われているんではないかね?
0352デフォルトの名無しさん
垢版 |
2019/11/27(水) 23:06:11.22ID:vYtjQlD0
>>350
悪いけど、最初から個別の例外について虱潰しに対応しようとするのは典型的なアンチパターンだよ
あまりにも手間がかかりすぎるし、変更に対して非常に弱いコードになる。
例外処理で死守すべき大原則は、アプリを落とさないこと、綺麗に回復すること、の2点だけだ。
その上で、必要に応じて丁寧な個別対応をしてもよい。
まずアプリを落とさないことだが、WebのリクエストハンドラであったりUIのイベントハンドラであったりバッチ処理の一番大本のループであったり、
「ここまで戻れば確実に回復できる」という箇所で全ての例外をキャッチし、リトライやエラーメッセージの表示等を行って回復する。
次に綺麗に回復すること、これは、適切にwithやfinally等を使用して例外発生時に適切な後片付けを行うことだ。
この2点が守れていれば例外処理は完璧だが、場合によっては個別対応することで早期に回復できたり、より適切なエラーメッセージをユーザーに表示できたりするケースがある。
しかしそれはあくまでオプションにすぎない。
0355デフォルトの名無しさん
垢版 |
2019/11/27(水) 23:31:50.95ID:vYtjQlD0
>>353
単に無視することが適切な回復なのであればそれで正しいよ
大抵はそうではないが、だからといって例外が発生した瞬間に直上でキャッチしたところで対処のしようがないケースがほとんど
ほとんどの例外は単純にキャッチせずにスルーし、上の方で纏めてキャッチしてエラーを表示したりすることになる
0356デフォルトの名無しさん
垢版 |
2019/11/27(水) 23:36:46.74ID:OMjrfaFS
>>348
ありがとうございます。ようするにpygameを使った作品は著作権を放棄しろってことなんですね。。。
0357デフォルトの名無しさん
垢版 |
2019/11/27(水) 23:58:21.75ID:ymKEnJ4Y
>>355
範囲の狭い特定のエラーを意図して無視するのが適切な場合はあっても
あらゆるエラーをすべて無視するのが適切な場合はまずないやろ
0359デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:29:21.32ID:BjRR3Cis
>>358
ありがとうございます!!
0360デフォルトの名無しさん
垢版 |
2019/11/28(木) 03:06:02.69ID:1K1GwsjB
著作権を放棄しているわけではない
自分の著作権の下で自らの著作物をLGPLの派生物として配布しているんだ
自分の著作物をどんなライセンスで配布しようが本来は勝手だが、利用しているライブラリが他人の著作物である以上、
そのライブラリの著作権を同梱した派生物を配布するためにはそのライブラリの著作権者が定めるライセンスに従わねばならない
そして、そのライセンスが派生物のライセンスを制約するようなものであった場合は結果的に自分の著作物にライセンスが感染する形になるわけだ
0361デフォルトの名無しさん
垢版 |
2019/11/28(木) 05:28:36.70ID:BjRR3Cis
>>360
そういうことなんですね!
勉強になりました。
0362デフォルトの名無しさん
垢版 |
2019/11/28(木) 07:46:57.30ID:LEtsBWW2
俺が不勉強なだけかもしれないが
try:〜except:passでエラーを握りつぶしておいて
直上でエラー処理するってどういうことだ?

普通にエラーをそのままにしといたら呼び出し元にエラーが届いて
そこで処理したらいいだけの話だろ 一番下の階層でpassして握り潰す必要はない
0363デフォルトの名無しさん
垢版 |
2019/11/28(木) 08:33:14.83ID:VOkh5kHm
>>362
> try:〜except:passでエラーを握りつぶしておいて
誰がそんなことを言ってるんだ?
そう思い込んでいるのはあなただけでは
0364デフォルトの名無しさん
垢版 |
2019/11/28(木) 08:38:48.41ID:b0jGiHif
異常系をわざわざ戻り値で表現し直すんじゃないの?w
そんなことするより、リスローの方が絶対にいいわな。
0366デフォルトの名無しさん
垢版 |
2019/11/28(木) 14:59:01.40ID:p/uKw1d3
pyautoguiっての普通に使ってる時は問題ないんだけど
リモートデスクトップで1度開いちゃうと画面閉じた時に
pyautoguiの中のsetcursorposってのでエラー出るんだけどどうにかならない?
0367デフォルトの名無しさん
垢版 |
2019/11/28(木) 16:12:48.01ID:rcIus152
大企業で無料で商用利用できるIDEでオススメありませんか?
個人ではVScode使ってますがエンタープライズ企業は無償利用無理みたいです
0371デフォルトの名無しさん
垢版 |
2019/11/28(木) 17:24:36.37ID:i2j7bL3h
どうせVSと近藤してるんだろ
0372デフォルトの名無しさん
垢版 |
2019/11/28(木) 21:56:29.31ID:qnF6NUyh
>>357
堅牢なソフトウェアを構築する方法論として、何かエラーがあったらその処理単位ごと
無かったことにするというものがある。DBのトランザクションとかerlangのlet it crashとかな。
そういう方法論ではエラーの種類など見ない。
そこでは逆に、知ってるエラーだけcatchして他はスルーするという手法こそ否定される。
なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは
「もっと知らない」はずだからな。
0373デフォルトの名無しさん
垢版 |
2019/11/28(木) 22:06:08.08ID:4XtsM+GQ
せやろか?
0374デフォルトの名無しさん
垢版 |
2019/11/28(木) 23:49:35.94ID:3SZL29g0
>>372
ものすっごい中途半端な知識で知ったかしようとする前に基礎を抑えようね

DBのトランザクション処理を実行しました
なんかエラー発生しました
エラーの種類など見ないっ(キリッ)

軽量プロセスにsend messageしました
なんかプロセス落ちました
リスタートあるのみ(キリッ)

>なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは
>「もっと知らない」はずだからな。
何を知らないのか考えようね
0375デフォルトの名無しさん
垢版 |
2019/11/29(金) 00:49:58.07ID:8hJB6N01
>>372のやり方だと「止まらない」プログラムは作ることはできても
「使える」プログラムは作れそうにないなw
0380デフォルトの名無しさん
垢版 |
2019/11/29(金) 10:27:27.39ID:N/f9f1S7
>>349
漏れもpassは禁止で正しく処理するべきだと考えるが
どうしてもスルーしてプログラムを続行したい場合は

1.フラグを立ててプログラム終了時に報告
2.loggerでsyslogに出力
3.上の1と2の合わせ技
0381デフォルトの名無しさん
垢版 |
2019/11/29(金) 10:30:54.20ID:N/f9f1S7
>>355
上の方でまとめてキャッチしたいのに
except で pass したらキャッチされないぞ

except でその場だけキャッチせず上にスルーしたいならあらためて raise しろ
0382デフォルトの名無しさん
垢版 |
2019/11/29(金) 12:06:18.51ID:dGU1sZlL
pyautoguiでとりあえずブラウザ内の手作業のの自動化できたから、seleniumにも手を出してみたけどこっちは難しいね
HTMLが分かってないとキツイな(´・ω・`)
0383デフォルトの名無しさん
垢版 |
2019/11/29(金) 17:46:37.36ID:po6NZMwT
python勉強しようと思うんだけどエディタはjupyterがデフォなの?
visual studioになれてるからvs使いたいんだけどまずいのかな。
0385デフォルトの名無しさん
垢版 |
2019/11/29(金) 17:51:35.27ID:VBGSEbtt
>>383
PCのスペックが足りてて問題なく動けば問題ないぞ
スペック足りない俺様PCでは
秀丸エディタかsakuraエディタが精いっぱいなんだぜ
0386デフォルトの名無しさん
垢版 |
2019/11/29(金) 19:37:04.50ID:LMfDTWZ+
>>383
VSCodeにしとけ
MSはPythonの開発環境としては今VSCodeを推していて、本家VSの方のPythonサポートはもう将来性がない
0388デフォルトの名無しさん
垢版 |
2019/11/29(金) 19:56:54.52ID:SQehs03a
>>380
>漏れもpassは禁止で正しく処理するべきだと考えるが

passは正しい処理ではないと言っているようだが、そう断言できる根拠はないだろ。
ログを吐けばオーケーというのも意味わからん。プログラムの正しさとは何の関係もないだろうに。
0389デフォルトの名無しさん
垢版 |
2019/11/29(金) 20:05:59.92ID:8hJB6N01
保守性が落ちるコードは正しいコードとはいえないだろ
例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき

自分ひとりで全部完結するプログラミングなら
他人から見てエラーを脳死で握りつぶしているのか
面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな

ぶっちゃけ「正しいコード」が書きたいならpythonじゃなく証明型プログラミング使えばいいだけだしな
0390デフォルトの名無しさん
垢版 |
2019/11/29(金) 20:10:38.20ID:5FLVJ8iu
正しい処理どうこうの前に
passは文字通り何もしてないんだから処理したとは言わないだろ
0391デフォルトの名無しさん
垢版 |
2019/11/29(金) 20:18:27.56ID:VBGSEbtt
>>389
> 例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
> 自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき
>
> 自分ひとりで全部完結するプログラミングなら
> 他人から見てエラーを脳死で握りつぶしているのか
> 面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけど
↑イイ!!(・∀・)こと書いてある!!!
0392デフォルトの名無しさん
垢版 |
2019/11/29(金) 21:32:51.55ID:SQehs03a
>>389
>例外処理でpassするくらいならそもそも例外が出ないようにすべきだし

なんか言っていることが矛盾してるね。自分ひとりで全部のコードを書いているわけじゃなけりゃ
下層のルーチンから例外が出ないようにするなんてことが常にできるわけがないだろう。
自分で保証できるのは上流の呼び出し元にどういう例外を渡すか(渡さないか)だけ。

>他人から見てエラーを脳死で握りつぶしているのか
>面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな

意図がわかりやすいコードを書くことが推奨されるのはもちろんだが、逆にコードだけからは
意図を判断しづらいケースはいくらでもあるわけなんでそこを非難しようとしても不毛なだけだと
思うがな。
例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして
いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして
いたのか、コードの字面だけからはやっぱり判断できんだろう。

そもそも、面倒くさくて握りつぶすという発想がよくわからんな。
面倒くさいなら何もしないでスルーするんじゃないの?
#Javaの話で関数の仕様を変えられないから、とかならわからんでもないが。
0393デフォルトの名無しさん
垢版 |
2019/11/29(金) 21:44:06.26ID:8hJB6N01
>>392
下層で例外を上に渡すのか渡さないのか決めるなら
例外処理をどうするのかを上層で判断するのか下層で判断するのか
結局どちらでもない中途半端になるだけだな 
上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
例外が出る可能性を消せないのであれば例外を隠蔽しない
例外を隠蔽するくらいなら例外が出る可能性を完全に消す
単純な話だ


>例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして
>いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして
>いたのか、コードの字面だけからはやっぱり判断できんだろう。

このうちのどれかなんて判断しなくていい 全部対処の必要があるからな
君は「問題なく動くコード」を作ることを最優先にしているようだがそのために「問題を起きていないことにする」んじゃあ意味がない
起きてない問題を解決するのは起きている問題を解決することの数倍難しいんだ

エラーが発生すること自体は開発の過程においては別に悪いことじゃない
エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪
0394デフォルトの名無しさん
垢版 |
2019/11/29(金) 22:04:01.71ID:SQehs03a
>上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす

その例外を発生させた処理に近い方が適切な判断ができるに決まってるだろう。
どういうメリットがあってその処理を上層に任せるなんて言ってるのかねえ。

>エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪

こうなるともう宗教だな。
仮に内部でエラーが起きたとしても、それが外に対して悪影響を及ぼさないんだったら
無かったことにして全然問題ないと思うが。
0395デフォルトの名無しさん
垢版 |
2019/11/29(金) 22:08:10.95ID:5FLVJ8iu
外に悪影響を及ぼさないことを保証できる実力があるなら文句ないわ
俺にはとても出来ない
0396デフォルトの名無しさん
垢版 |
2019/11/29(金) 22:28:46.19ID:8hJB6N01
>>394が作ったプログラムが上手く動かなかったときは
下層上層問わずすべてのコードを精査して
「外部に対した悪影響を及ぼさないからエラーを握りつぶしてOK」と「思いこんでいるかもしれない部分」
も含めてチェックしないといけないハメになるな

地獄だぜ
0399デフォルトの名無しさん
垢版 |
2019/11/30(土) 11:15:37.77ID:u5c1qEtQ
numpyとかいうのなしで、配列を回転させることはできますか?
テトリスのブロックの回転です

var base = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]
]
var block = [
[0,0,0,0],
[1,1,0,0],
[0,1,1,0],
[0,0,0,0]
]

#
func _ready():
for y in block.size():
for x in block[y].size():
block[y][x] =
print(block)
0402デフォルトの名無しさん
垢版 |
2019/11/30(土) 12:03:43.42ID:OO2kPiiB
>>399
 >>401に補足すっと
各ブロックの向き4種類をあらかじめ準備しといて、
まわすボタン(AボタンとBボタンで回る向き違うよな)1回押されるごとに、
(左右どっちか)隣の状態へ行くようにしとけ
4種類目から次へいく指令がきたときは、1種類目を表示するようにも、しとけ。

いちいち回す計算してたら ちぬる
0403デフォルトの名無しさん
垢版 |
2019/11/30(土) 12:17:28.60ID:PlBmox+6
配列回すのなんて計算してインデックスを読み替えるだけだろ
配列を書き換える必要などないし計算コストなんてほぼゼロだし極めて単純な算数
>>402はよほど頭悪いんだろうな
0405デフォルトの名無しさん
垢版 |
2019/11/30(土) 12:54:57.33ID:OO2kPiiB
>>404
んだべや

配列の回転て
手計算だと結構しくじるヤツがいるし
理屈はわかってても、プログラムするとなるとバグ仕込んじゃうヤツけっこういるぞw
>>403は現場を知らない
0406デフォルトの名無しさん
垢版 |
2019/11/30(土) 12:57:48.37ID:OO2kPiiB
テトリスブロック回してずれたら(・x・)コロヌ!!!だけど、
ぷよぷよの場合は
「滝登り」できないと逆に困るけどなw
0407デフォルトの名無しさん
垢版 |
2019/11/30(土) 13:40:28.58ID:X9RQeX1v
数億パターンとかあるわけじゃないでしょ?
じゃあテーブルルックアップの方が早いに決まってる
0408デフォルトの名無しさん
垢版 |
2019/11/30(土) 13:51:38.88ID:e3px8G1e
visual studioでpythonをインタプリタ形式で動かすのってどこで設定すればいいんでしょう?
0410デフォルトの名無しさん
垢版 |
2019/11/30(土) 15:12:04.28ID:u5c1qEtQ
テトリス野郎です
ありがとうございます
理解できないんでもう少し調べてrから着ます(´・ω・`)
0411デフォルトの名無しさん
垢版 |
2019/11/30(土) 15:47:17.79ID:MBj/QS/D
class myClass():
def __init__(self, message):
self.value = message

def name(self):
self.name1 = self.value
print(self.name1)

m = myClass("hello!")
print(m.name())
0412デフォルトの名無しさん
垢版 |
2019/11/30(土) 15:48:48.66ID:MBj/QS/D
>>411なんですが、実行するとhello!とNoneが表示されます
Noneは、どこから湧いてきていますか(´・ω・`)?
0413デフォルトの名無しさん
垢版 |
2019/11/30(土) 15:50:04.56ID:MBj/QS/D
class myClass():
 def __init__(self, message):
  self.value = message

 def name(self):
  self.name1 = self.value
  print(self.name1)

m = myClass("hello!")
print(m.name())

インデント入れるとこんな感じです
0418デフォルトの名無しさん
垢版 |
2019/11/30(土) 16:46:10.13ID:OO2kPiiB
>>416
なおってなにより。

2年後の自分が上からよんでって、
過去の自分に対して殺意が湧かない程度の名前をつけるようにしる。
すげーだいじだぞ。
0419デフォルトの名無しさん
垢版 |
2019/11/30(土) 16:51:12.50ID:SKhbFAll
Tensorflowでディープラーニングの勉強するのに必要なPCのスペックを教えてください。

GPUはやはりいりますか?
0421デフォルトの名無しさん
垢版 |
2019/11/30(土) 19:01:21.04ID:BP9rhd+I
>>419
NVIDIAのGPUがいいとか、その中でもGTX750、850、950、1050以上でないと無理だとか
メモリもできれば8GBできれば16GBがいいとか
色々あったか

4スレッドのCPUだとそれがボトルネックになったなんて話もあったかな

だがスピードを気にしないならGPUなしでも出来るだろ!って人もいる
大規模な問題は出来なくなるが
0422デフォルトの名無しさん
垢版 |
2019/11/30(土) 19:04:37.44ID:SKhbFAll
>>420-421

ありがとうございます。

小さな問題さえ試せればOKだと考えています。
Tensorflowやいろいろなツールを使えるようになればOKだと考えています。
0423デフォルトの名無しさん
垢版 |
2019/11/30(土) 19:44:27.10ID:OO2kPiiB
>>422
いやだからさ、
テンフロつかって 何がしたいかによるんだってばよ・・・

ある1人の文豪の文章全部を教師にして
文豪もどきっぽいあやしいモノをつくったったwwwくらいなら
GPUなし、一昔前の古しいPCでも3週間かけっぱでできるんだYO

ところが
文書データといっても
Abstractがひっぱってこれる既存の理系英語論文全てをターゲットにして
なんかかんかしようとすると
メモリ2テラくらい使っていいスパコンがないと、無理。
0425デフォルトの名無しさん
垢版 |
2019/12/01(日) 06:11:57.70ID:Yb3VJQ//
はじめましてPython初心者です

a = input()

で入力を求めて、[1,2,3,4,5]
と入力をしても変数aが配列にならず文字になってしまいます。
誰が良い方法をお願いします
0426デフォルトの名無しさん
垢版 |
2019/12/01(日) 06:47:09.10ID:i2YaNYYV
c#アプリで計測したデータをpythonで自動的に統計処理してグラフ表示する。
って考えてるんですが、言語はpythonでokでしょうか?Rを使うのとどっちがいいか悩んでます。
0427デフォルトの名無しさん
垢版 |
2019/12/01(日) 06:49:59.72ID:i2YaNYYV
想定してる統計は単回帰とコルモゴフスミノフなど簡単なものです。グラフは回帰直線表示させた後に平均値、最大値、最小値を赤でプロットしたい。
0429デフォルトの名無しさん
垢版 |
2019/12/01(日) 08:31:43.33ID:gxWit/c+
すみません。
macでanaconda3(python3.7)をインストールしたのですが
ターミナルでconda -versionで確認してもcommand not found
python -Vで確認しても2.7.10と表示されるのですが何故でしょうか

環境構築の質問で申し訳ないですがどなたか詳しい方いますか?
0431デフォルトの名無しさん
垢版 |
2019/12/01(日) 08:51:20.61ID:w+6yrHlL
>>426-427
どっちでもできるよ

その後どういう風に上達していきたいのか
それとももうその作業さえできればおkなのか
あとは自分がどっちの言語がより好きなのか

による
0432デフォルトの名無しさん
垢版 |
2019/12/01(日) 08:52:50.77ID:w+6yrHlL
>>429
Macにデフォで入ってるPythonのほうが優先で呼ばれている件
環境変数を弄らないとだめだとおもわれるが
いじるとそれはそれで困ったことになるかもしれない

py -V
は動くけ?
(Python3系は「py」で呼べるのだ)
0433デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:05:38.42ID:gxWit/c+
>>432
ありがとうございます
py -Vもcommand not foundとなってしまいました

私の今の状態はanaconda3、python3.7ともにインストールはされているもののパスが通っていないと言う認識で間違い無いでしょうか?
0434デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:15:08.45ID:YC7h427T
>>433
パスが通ってない可能性に気づいたなら、まず自分なりにパスの確認までしてから次の質問をした方がいいぞ。(自分で考える&確かめる習慣をつけるために。)
0435デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:27:14.95ID:YoP0MD/8
>>429
>macでanaconda3(python3.7)をインストール
>ターミナルでconda -versionで確認してもcommand not found

Mac使いさんにWin使いが出しゃばってしまうのは非常に失礼なのは承知だが
Winだと

https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679

Anacondaでのインストール後に
Windosのコマンドプロンプトやパワーシェルにpython -vで
何か表示されるのは、むしろ良くない事だとされている

で、Macだとどうなbセろう?
0436ャfフォルトの名末ウしさん
垢版 |
2019/12/01(日) 09:37:44.85ID:w+6yrHlL
>>435
conda -versionも動作しないってゆってるからなー

Macは最初からシステムにPython2.7系が入ってるから
なにかがうまくいってなくても
Python2.7系がはいってますよー ってならないとおかしい。
0438デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:40:59.48ID:YoP0MD/8
anaconda Mac ターミナル

って検索したらやっぱり書いてる人がいたw
この辺はどこも同じか
でもWinはパスは無理に通すな!って書いてあるけど、
Macだと通しても異常が起こりにくいって事だろうな
0439デフォルトの名無しさん
垢版 |
2019/12/01(日) 09:43:21.98ID:SqfEoEmM
>>435
複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ
その記事書いた人も例に漏れずバリバリのエンジニアのようだ(その割にはWindowsを使っているというのが滑稽ではあるが)
データ分析やちょっとした手元の処理の自動化など、アドホックにPythonを使いたいならPythonの神経質なバージョン管理は要らん
0440デフォルトの名無しさん
垢版 |
2019/12/01(日) 10:09:00.60ID:YoP0MD/8
>>439
>複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ

自分の場合

1.
何かtensorflowのインストールって物凄く難しいらしい!これは別環境作っておかないとヤバい!!!
→Anaconda内にPython3.6の別環境作る。何か今年前半くらいまで3.7では無理だったらしいし
(今では可能になった)

2.
OpenCVのインストールも結構難しいらしいぞ!これも別環境作ってそっちでテストしてから統合だ!
→(1)OpenCVインストール用環境作ってインストール法確立(wheel型の選び方とインストールなど)
(2)先に作っておいたtensorflow用環境をクローンした新環境を作り、そこにOpenCVインストール
(3)全てが上手く行ったことを確認してから、BASEと、[tensorflowとOpenCV両方入った環境]だけ残して
半端なのを捨てる

3. XGBoost?こんなもんは余裕でインストールできんだろ?Baseに入れる
→yaml型がぐっちゃぐちゃになって全部使えなくなる
→Anaconda丸ごと入れ直したorz

ここでXGBoost専用環境作っておけば良かったなあ

4. 1つのWindows入りPCは、ユーザー名の姓名の間に半角スペースが入っていたため
Anacondaインストール後に別環境を作れないと判明したorz
HDDにパーティションつけてそちらにUbuntu入れて出直すべきか
0441デフォルトの名無しさん
垢版 |
2019/12/01(日) 10:26:29.97ID:SqfEoEmM
>>440
それならGoogle Colabでよくね
もしモデルを実運用するにしてもどうせクラウド上でやるだろうし
0443デフォルトの名無しさん
垢版 |
2019/12/01(日) 15:19:46.36ID:9bW3hmPM
class myClass():
 def print(self ):
  print('test')
 def __enter__(self ):
  return self
 def __exit__(self, ex_type, ex_value, trace):
  pass

with myClass() as m:
 m.print()
m.print() #←★まだ生きてる

上の場合、withを抜けたらdel相当が行われインスタンスmは使えないと思ってたのですが使えるようです。
classのインスタンス作成でwithを使うのは意味がなかったりますか(´・ω・`)?
0444デフォルトの名無しさん
垢版 |
2019/12/01(日) 15:29:58.31ID:n5DjgtsH
pythonに限らない社会通念だと「コンストラクタでインスタンス作成しましょう」というのが共通認識

withは出来るがしてはいけないこと
暗黙のうちの諒解
意味が無いではなく、作法・マナー違反
0445デフォルトの名無しさん
垢版 |
2019/12/01(日) 15:52:03.12ID:jNUYX66D
それよりもdel相当が行われっていう認識がヤバい
誰に吹き込まれたんだよそれ
0446デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:02:06.50ID:iKyYFZEF
LUV MACHINES AG400XN-M2SH2-KK 価格.com限定
Ryzen 7/16GBメモリ/256GB NVMe SSD+2TB HDD/GTX1650搭載モデル

↑現在価格コムのランキングが6位のデスクトップパソコンです。
自分にとってはこれでも高いパソコンですが、このパソコンでディープラーニングを学習できますか?
0447デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:04:18.10ID:iKyYFZEF
GeForce GTX 1650

というGPUが搭載されているとのことです。
0448デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:10:49.64ID:iKyYFZEF
OSはLinuxではなくWindows 10でもOKですか?ディープラーニング専用機にはしたくないです。
0449デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:14:17.70ID:iKyYFZEF
電源が500W以上のものばかりですが、電気代もかかるんですね。
0450デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:19:47.62ID:x82DeScF
>>443
withにスコープはないからmはその関数内で可視というだけ。
後始末したいものがあれば__exit__でやればいい。mそのものは気にしない。
0451デフォルトの名無しさん
垢版 |
2019/12/01(日) 16:57:57.48ID:i659FOIW
A列の値でカンマで区切られたB列に入っている文字列の位置を検索したいのですが、

A列 え
B列 あ, い, う, え, お
欲しい結果 → 3

カンマでsplitした後にA列の値の参照ができなくて、頭がぐるぐるしてきました
0454デフォルトの名無しさん
垢版 |
2019/12/01(日) 17:15:22.17ID:n5DjgtsH
文字列をイコールで比べてるなら「カンマでsplitした後」は
『う』じゃなくて『 う』だな
ようするに先頭に空白でもあるんじゃねえの
0455デフォルトの名無しさん
垢版 |
2019/12/01(日) 22:13:46.59ID:gxWit/c+
すみません
>>433です
いろいろググって試しましたがpathが追加されず・・・
macの環境に詳しい方いませんか?
0456デフォルトの名無しさん
垢版 |
2019/12/01(日) 22:49:38.38ID:w+6yrHlL
>>455
「MacでPATHを通す」でぐぐれカス
あと
ルートレスとかが強烈だとそれも解かないとだめかもね
0457デフォルトの名無しさん
垢版 |
2019/12/01(日) 23:08:22.92ID:UCpH0Yie
>>419-423
>>446-447
マウスコンピューター、
期間限定 2019/11/20(水)11時 〜 2019/12/4 (水)11時
ttps://www.mouse-jp.co.jp/special/sale/

m-Book X400H
ノートPC で、87,800円

14型 フルHDノングレア (LEDバックライト)で良ければ、
Core i7-8565U, 8GB メモリ, 256GB SSD

m-Book K700XN-M2SH5
ノートPC で、133,800円

15.6型 フルHDノングレア (LEDバックライト)
Core i7-9750H, 32GB メモリ, 512GB SSD NVMe対応,
GeForceR MX250, 1TB HDD
0458デフォルトの名無しさん
垢版 |
2019/12/02(月) 00:39:03.08ID:jhokUOzU
全く関係無いが、Core i5の1万番台のu型って
4コア8スレだったのか
一部で、深層学習でGPUを使うならコア性能よりスレッド数重視だぞってあったが
本当なのかなあ

MX250だと一応はCUDAコアを使えるね
今はCPUオンボードで深層学習での性能が上がって来てるけど、それよりは数倍は良い
0459457
垢版 |
2019/12/02(月) 08:20:54.00ID:H5nAExhM
>>446
も、マウスコンピューターのタワー、96,800円。
価格.com限定モデルか

メモリも、32/64GB まで拡張した方がよい。
SSD も、512GB へ。
保証期間も3年以上は、ほしい

OS も一応、5,800円で、Windows Pro版にする
0460デフォルトの名無しさん
垢版 |
2019/12/02(月) 09:34:41.25ID:PBi2xeij
こっちもMacで困ってるな〜
Finder使いづらくて共有かけてWindowsエクスプローラー+Windows側のVSCodeで作業してるんだけど
Windows側(3.7.3)では問題なく動く、Mac側(3.7.3)もターミナルは問題なく動く、XCode(3.7.1)からだとPythonのバージョンが違う・・・
0461デフォルトの名無しさん
垢版 |
2019/12/02(月) 09:44:43.19ID:az4xQt0G
pythonはexcelと共にwin側についたからね
appleとしては排除したいところ

出来れば自社開発の軽量スクリプト言語を広めたいハズだが
winとmac両方で動くインタプリタをappleが作る……なんてのはやりたくないはずだ
なんつったって軽量スクリプト言語でトップシェアはpythonじゃなくexcel付属のvbaだからな
0463デフォルトの名無しさん
垢版 |
2019/12/02(月) 10:06:45.06ID:wB1a1keO
FinderでPython関連のファイルなんか触ったことないわ
普通VSCode上でやるかターミナルじゃね
0464デフォルトの名無しさん
垢版 |
2019/12/02(月) 10:45:06.16ID:5RGCQ9ir
プロゲートのpython最後までやってじゃんけんするゲームを作った
forなりifなり覚えたけどここ以降どうすればいいのかよくわからん…
今後の目標としては自分なりのプログラム作りたいけども皆さんはどのように進めていった?
0465デフォルトの名無しさん
垢版 |
2019/12/02(月) 10:52:33.57ID:KwsHxcvC
>>461
マイクロソフト「マイクロソフトが Excel に搭載するのは JavaScript であって、Python を使いたいのであれば PyXLL か xlwings を使え」
ExcelにPythonが搭載?その後 - xlwings を使おう
https://qiita.com/yniji/items/b38bc312e860027108ac

アップル「AppleScript使ってくれる人増えないからMacの自働化用の言語にJavaScript (JavaScript for Automation : JXA) も追加したわ」
0467デフォルトの名無しさん
垢版 |
2019/12/02(月) 15:19:02.88ID:/uccKnPl
テトリミノの回転をやってるのですが、前の配列にアクセスする方法はありますか?
array = [1,2,3,4]
for i in array.size():
■array[3]
とすると4が取り出されますが、その前の3にアクセスする方法はありますか?
array[3]-1
みたいな感じですかね

まだよく理解できんてないんで(´・ω・`)
0469デフォルトの名無しさん
垢版 |
2019/12/02(月) 16:19:15.17ID:OkhwRYub
よく見るといろいろおかしいな。
配列の要素にダイレクトにアクセスするならforは要らんし、
要素数を求めるならlen(array)

for i in array:
print(i)
0471デフォルトの名無しさん
垢版 |
2019/12/02(月) 16:37:32.77ID:HSnksJTz
>>443
インタプリタというかIDE環境でやってると
立ち上げて実行したときのmは全部残るから
前にテストしてたmが残ってるだけじゃないのか
0473デフォルトの名無しさん
垢版 |
2019/12/02(月) 17:22:48.79ID:TTdajGZT
>>467
temporary=3
mae_no_yatsu=array[temporary-1]
的な

>>470
逆向きに回す場合は
次の配列にアクセス、かつ「次」が配列の要素数をこえてたら、振り出しに戻す(0番目を呼ぶ)んだぞ
0474デフォルトの名無しさん
垢版 |
2019/12/02(月) 23:30:43.15ID:Vi1WkRIA
Win環境で2枚の画像ファイルを必ず一定(Min.1)の
出力フレーム周期で、交互にフルスクリーン表示する
手段は無いでしょうか。
今はOpnnCvのフルスクリーン設定でループさせて、
cv2.waitKey(1)
sleep(0.011)
といった記述ですが、原理的にずれるを避けたいです。
PsychoPyはFHDクラスのフルスクリーンに対応できず、
waitForVBlankやFrameSwap等のキーワードは把握したのですが、
使い方がわかりませんでした。
0475デフォルトの名無しさん
垢版 |
2019/12/03(火) 09:14:43.90ID:NKF0Kit+
なんか上の方でmacOSでのanaconda導入の話題あったから便乗して質問してみます

・やったこと
https://weblabo.oscasierra.net/python-anaconda-install-macos/

↑を参考に公式からインストール
ターミナルで下記実行するも
python3 --version
conda --version ともにcommand not foundになる
python --versionではおそらくデフォで入ってる2.7.10が表示される

brew install python3を実行後、python3 --versionすると3.7.0と表示

condaコマンド?は/Users/user_name/opt/anaconda3/binにあるらしい
かつ、printenv PATHしてみると上記PATHが表示されないのでPATHが通っていないと推察

https://qiita.com/nbkn/items/01a11392921119fa0153

↑を参考に上記PATHを記述後、printenv PATHしてみたが変わらず

・聞きたいこと
1.condaコマンドが使えないのはPATHが通っていないという推測は合っているか

2.1が正しい場合、他にどのように通す方法があるか
 現状(anaconda3インストール時点)のbash_plofileに記載されているのは↓の質問者の試したことにあるのと同じ内容

https://teratail.com/questions/157057

3.そもそもanacondaインストール手順として自分がやったことは合っているのか


稚拙な質問かつ分かりにくい文章で申し訳ありませんがどなたかご教示お願いします
0476デフォルトの名無しさん
垢版 |
2019/12/03(火) 09:39:57.99ID:yN5r9ueQ
>>474
pygame
0477デフォルトの名無しさん
垢版 |
2019/12/03(火) 09:41:35.76ID:yN5r9ueQ
>>475
3が間違ってる可能性が高い
つまり1と2は議論の無駄
0478デフォルトの名無しさん
垢版 |
2019/12/03(火) 10:52:33.96ID:jDo5c24e
>>475
$ echo $SHELL
でシェルがbashかどうか確認

$ source ~/.bash_profile
で.bash_profileの中身(conda initの記述)を実行

$ conda
0479デフォルトの名無しさん
垢版 |
2019/12/03(火) 10:59:33.16ID:tHrvVoQx
>>472
定まってないですね
なので先人が基礎的なこと覚えたあとになにをやってるのか興味があります
0480デフォルトの名無しさん
垢版 |
2019/12/03(火) 11:13:43.69ID:qZgArKp4
>>479
おれは文字列処理@Python2系に挑んで地獄を見た
機械学習ごっこも、日本語をPython2系でやって大変だった。
そしてそのせいで仕事も文字列処理系(ただし英文だった)をやらされていた。
0481デフォルトの名無しさん
垢版 |
2019/12/03(火) 11:44:17.75ID:AqN4uIMS
>>479
作りたいもの作ってた
0482デフォルトの名無しさん
垢版 |
2019/12/03(火) 11:44:47.36ID:NKF0Kit+
>>477
ありがとうございます
具体的に何が足りないor間違っていますか?
わかる範囲で指摘いただければ助かります

>>478
ありがとうございます
SHELLはbashです、昨日確認しました
残り2つはマシンが手元にないので後ほど確認します
0484デフォルトの名無しさん
垢版 |
2019/12/03(火) 12:49:44.64ID:q4QgEASS
まあ最近はどの本やらサイトもpython始めるならanaconda導入から始めようみたいなの多いしそれを見たんだろう
0486デフォルトの名無しさん
垢版 |
2019/12/03(火) 14:50:11.02ID:yN5r9ueQ
WindowsのAnacondaは悪くない
Macが糞なだけ
0488デフォルトの名無しさん
垢版 |
2019/12/03(火) 15:34:53.26ID:wVEeBLb4
コンピューターサイエンティストはなぜMacを使っている人が多いのでしょうか?
0489デフォルトの名無しさん
垢版 |
2019/12/03(火) 16:03:37.12ID:ZS5h3RP8
UNIXだから
Python使うにしても手元でアドホックな自慰をするだけならWindowsで問題ないけど、
でき上がったものをクラウドで実運用に乗せようと思うと途端にWindowsは嫌になる
0490デフォルトの名無しさん
垢版 |
2019/12/03(火) 17:10:29.26ID:5ZiHQIvd
ディープラーニングやらブロックチェーンやらでGPUブン回す人たちはMacなんか使わんでしょう
0491デフォルトの名無しさん
垢版 |
2019/12/03(火) 17:27:41.68ID:yN5r9ueQ
Macでどやりたいひとはwebクリエイターωの意識他界系の人らだから
0497デフォルトの名無しさん
垢版 |
2019/12/03(火) 18:25:02.67ID:aHy1at+0
dockerやクラウドなどなどリモート開発が主体だから、最早WinとかMacとか関係ない。
GPUにしても、最近はGPUサーバを作ることを考慮して、Linux対応も重視されてきてる。
0498デフォルトの名無しさん
垢版 |
2019/12/03(火) 18:51:26.99ID:wVEeBLb4
オンラインのコンピューターサイエンス系の動画を見ると大抵Macのノートブックを使っているので、
不自然に感じました。

一般人はWindowsの人ばかりですよね?
0500デフォルトの名無しさん
垢版 |
2019/12/03(火) 19:13:19.98ID:TpwdWSlD
MBP2017今も使ってるけどキーボード酷すぎで一気にアンチになったわ。
と、言ってもネットで恨み辛み書き込んでるだけでようやっと欠陥キーボードやめたらしい最新モデルの13インチ版が出たらまたMacにしてしまうかもしれん。
0501デフォルトの名無しさん
垢版 |
2019/12/03(火) 20:02:59.85ID:wVEeBLb4
>>500

ちなみになぜMacが好きなんですか?

素人目に見ると、Linux, Mac, Windowsどれも大差ないように思います。
0502デフォルトの名無しさん
垢版 |
2019/12/03(火) 21:01:39.68ID:qZgArKp4
>>498
研究室だと
初期設定を人数分するのがうっとうしいとか
元居た畑のソフトがその昔Mac用しかなかったとか
予算がありあまってるからとか
昔は入ってたヒラギノが大好きだからとか
色んな理由でMacイ諸がいる
0503デフォルトの名無しさん
垢版 |
2019/12/03(火) 21:07:43.82ID:2pgR0qgk
>>501
Unix環境でMS Officeがまともに動くのがmacOSだったから
今ならWindowsでもWSLあるから別にどっちでもいい
Docker使うときだけはWindows 10 proになるが、これが恐ろしく使いにくいのでmacを使っている
0504デフォルトの名無しさん
垢版 |
2019/12/03(火) 21:10:47.82ID:2pgR0qgk
>>483
単に使ってるヤツがダメなだけだぞ
超簡単なインストールすら出来ない奴が、本家のpythonでトラブル起こさない保証はゼロだ
0505デフォルトの名無しさん
垢版 |
2019/12/03(火) 21:14:29.01ID:2pgR0qgk
>>486
いや、俺の感覚ではwindowsのanacondaの方が難しい
特にvscodeでデバッグする場合のクソさは辟易する
Powershell周りがまだまだ全然安定していない

macはそのあたりノートラブルだから非常に素直だ
macでanaconda disってるヤツは本当に使った事があるのか疑問
0506デフォルトの名無しさん
垢版 |
2019/12/03(火) 21:26:28.87ID:2pgR0qgk
>>475
一応答えておくか

anacondaのインストールに失敗している可能性が高いので、まずは全部消す

anacondaはサイズがデカいので、googleでminicondaを検索
macOS 64bits版をダウンロードして、ターミナルから

bash ダウンロードしたファイル名

すると

/Users/ユーザ名/miniconda3

にインストールされる
.bash_profileに設定が追加されるかどうかはインストール最後の質問にどう答えたかで変わる
0507デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:01:53.53ID:jDo5c24e
何を根拠にインストールが失敗してると言ってるのか??
インストール先から直接実行してみればPATHが原因かどうかはわかるやろ?
$ /opt/anaconda3/bin/conda
0508デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:24:46.68ID:g35XzY+N
>>507
全部デフォルトでインストールした場合、condaコマンドが見つからないと言う状況は起こらないので失敗していると判断

.bash_profileに既に何らかのバグがあってanacondaのインストーラが追加したスクリプトに到達しないとかはあり得る
0509デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:26:13.73ID:1+EGgKJy
全部消すって言ってもcondaコマンドが使えないならアンイストールすらできないんじゃね?
0510デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:32:35.05ID:g35XzY+N
>>509
Anacondaはディレクトリをrm等で消して、
.bash_profileに追加されたスクリプトを消すだけでOK

venvとか使ってanacondaをインストールするのはオススメしない
あとは/opt/anacondaや/usr/local/anacondaに共用としてインストールしたいとか、そんな欲求は捨てて全部デフォルトに従うのが吉
0511デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:35:56.90ID:1+EGgKJy
>>510
へーそうなのか
消すことはないだろうけど勉強になるわサンガツ

デフォルトの件は>>475のインストール手順書いたサイト見ると次へをポチポチしてるだけだからデフォルトっぽいけど何か違うんかね?
0512デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:58:31.06ID:g35XzY+N
色々な可能性はあるけども
1. .bash_profileにバグがある
2. デフォルトshellがbashでない
3. インストール前からディレクトリの不整合を起こしていた
と言う感じかなぁ

minicondaではなくAnacondaを入れたのなら、
/Application
の下のAnaconda-Navigatorが正常に動くかどうかでも確認できそう
0513デフォルトの名無しさん
垢版 |
2019/12/03(火) 23:05:47.06ID:g35XzY+N
よく見ると記事が若干古いなぁ

昔のデフォルトは/anaconda3で、その設定が残ってている可能性はありそう
今のデフォルトは/opt/anaconda3
0514デフォルトの名無しさん
垢版 |
2019/12/04(水) 11:06:34.64ID:sb3P/SSe
>>498
おまいは印象操作に簡単に引っかかるタイプやろ
ジャパンライフに騙されるのもこんな人らだろ
0515デフォルトの名無しさん
垢版 |
2019/12/04(水) 12:33:08.37ID:tCRQbFTx
そして今日からAnacondaのPythonが3.8になりやがった
そして3.7に落としてから、tensorflow-gpuをインストールして、無事動作確認

tensorflow-gpuも前みたいに事前に色々入れなくても動くんだな
Visual StudioなしでcudatoolkitもcuDNNもcondaで持ってきてくれた
なおtensorflow-gpuは1.15
cudatoolkitは10.0を持ってきてくれた(RTXなので良かった)

ちょっと前にGTXの後期のを入れたときはcudaも9を自分で選んだ
0518デフォルトの名無しさん
垢版 |
2019/12/05(木) 10:02:18.15ID:IbmhSLeW
VSも変になるとアンインストールも再インストールも出来ん
0519デフォルトの名無しさん
垢版 |
2019/12/05(木) 14:29:13.84ID:TzSLtKO4
https://codeday.me/jp/qa/20190216/261316.html
この質問者と同じことがしたいんですが、回答が参考にならないです。

質問:.pyへの引数として*.csvのようなワイルドカード(のファイル名)を使いたい、
回答:.py内に'*.csv'とシングルクォートで囲って書け

そういうことではなく(.pyへの直書きではなく)
.pyを実行する際の引数にワイルドカードを使いたいんですが、可能でしょうか?
0520デフォルトの名無しさん
垢版 |
2019/12/05(木) 14:53:39.03ID:Wm9fQur5
リンク先の回答者が的外れなように書いてるけど、あなたが理解していないだけ。
ちゃんとglobモジュールを使うことで…と書いてある。
python test.py '*.csv'

import glob,sys
filelist = glob.glob(sys.argv[1])
print (filelist)
0521デフォルトの名無しさん
垢版 |
2019/12/05(木) 15:01:59.30ID:IbmhSLeW
ワイルドカードの展開ってshellがするんじゃなかったか
0522デフォルトの名無しさん
垢版 |
2019/12/05(木) 18:09:17.19ID:OLqlmSOk
import hoge
した時にimporterrorになったら
自動でpip installしたいとき

try:
import hoge
except:
subprocess.call('pip install hoge')
import hoge

こんな感じのを、関数化するにはどうすればよいですか
importをimportlib使って引数にストリングで渡すと、hogeが未宣言になります
0523デフォルトの名無しさん
垢版 |
2019/12/05(木) 20:08:18.78ID:2mCSg13D
やるならSetuptoolsとかでやるべき部分だと思う
せいぜい実行したいpipコマンド出力するぐらいでいいでしょ
0525デフォルトの名無しさん
垢版 |
2019/12/06(金) 00:49:38.92ID:IktivxOB
>>519-520
Ruby の1-liner なら、これでカレントディレクトリにある、
すべてのCSV ファイル名が表示される

ruby -e "puts Dir.glob( '*.csv' )"

'*.csv' を、コマンドライン引数として渡したいのなら、ARGV[ 0 ] に入ってくる。
ruby -e "puts Dir.glob( ARGV[ 0 ] )" '*.csv'

例えば、
ruby -e "puts ARGV[ 0 ]" 'abc'
#=> abc

Ruby の場合は、
「ruby オプション script.rb 引数」で、
スクリプトファイル名は、ARGV[ 0 ]じゃなくて、$0 に入ってくるので、
引数がARGV[ 0 ]となる

漏れは、Python は知らないので、>>520
によると、引数がARGV[ 1 ]に入ってくるのかな?

>>521
* のままなら、シェルが展開する。
ls [b-d]* # bcd で始まるファイル名

*をエスケープするには、'*' "*" \* の3つ。
expr 2 '*' 3 #=> 6
0527デフォルトの名無しさん
垢版 |
2019/12/06(金) 08:57:25.01ID:y8t5v3Vv
>>525
python知らないなら出ていけ
0528デフォルトの名無しさん
垢版 |
2019/12/06(金) 09:24:26.21ID:jevOtndm
ネタじゃないうえにPython関係ない質問なんだけど
Rubyってどこで使われてるの?めったにみないよね、Windowsには無いし
0530デフォルトの名無しさん
垢版 |
2019/12/06(金) 10:26:00.43ID:e8Nbwz4h
>>528
Webサービス
有名なのはクックパッドとかGithubとか
どちらも最近はGoへの置き換えが進んでるらしいがw
0532デフォルトの名無しさん
垢版 |
2019/12/06(金) 14:01:46.87ID:rmctNxUZ
HDD消さずに業者に手渡したから
証明書貰ってるから大丈夫だよね?
0533デフォルトの名無しさん
垢版 |
2019/12/06(金) 15:08:35.02ID:y+wr0N/5
>>528
件のRubyバカが懇切丁寧に(いい加減な話も含めて)教えてくれるだろうから、手を取り合ってどこか他所に行って続けてくれ
0534デフォルトの名無しさん
垢版 |
2019/12/06(金) 17:52:40.71ID:TL5X+SDz
>>524
関数化はどうすればいいですか?
my_import("hoge")

import hoge
と同等の機能を実現できる関数化したいです。
やっぱ無理ですか?
0535デフォルトの名無しさん
垢版 |
2019/12/06(金) 18:00:33.47ID:rmctNxUZ
setattr で local とか global に追加汁
0537デフォルトの名無しさん
垢版 |
2019/12/06(金) 18:50:12.32ID:bsu7R2yD
>>534
え〜

def my_import(module):
____return importlib.import_module(module)

hage = my_import(“hoge”)で
import hoge as hage とだいたい同じ
0538デフォルトの名無しさん
垢版 |
2019/12/06(金) 18:56:20.20ID:K1aFtUDf
return必須なの?
0539デフォルトの名無しさん
垢版 |
2019/12/06(金) 19:42:50.51ID:ELuQ0rBw
def my_import(module):
setattr(globals(), module, importlib.import_module(module))
0541デフォルトの名無しさん
垢版 |
2019/12/07(土) 20:42:30.04ID:tj55yZgB
リストの実装は配列じゃないかな
0542デフォルトの名無しさん
垢版 |
2019/12/07(土) 20:46:16.73ID:ZdcZp/3W
>>541
ありがとうございます。配列の事を調べると、すぐにNumpyというライブラリーの話題になってしまうので
ひょっとして標準で存在しないのだろうかと悩んでました
リストのことを調べてみます
0543デフォルトの名無しさん
垢版 |
2019/12/07(土) 22:27:30.46ID:ADlg+SvA
[]←これとはまた別なの?
あれ配列って長が固定なもんを指すんだっけ?
()ともまた違うんけ?

それよりnunpyの話詳しくしてほしいなって…!
なんか便利なライブラリーなんしょ?
0546デフォルトの名無しさん
垢版 |
2019/12/08(日) 00:16:58.54ID:0l6xumYX
今こそ血涙の文字で告白しよう!!
僕たちが純粋な輝きを失って大人になってしまったらお座なりとおべんちゃらと、陰口と
服従と妥協と打算と倦怠と保身の中で、ずるがしこく、チョロチョロと動き回りながらネズミの
一生を送るようになるんだ。
それから結婚して子供を作って、世の中でいちばん醜悪な母親という大人になるんだ。
ああ、時の流れとはなんと残酷なのだろう!!
生きることと老いることが同義語だという過酷な命題を直視しなければならないんだ。
老いはまさしく肉体と精神の双方の病気だったが、老い自体が不治の病だということは、
人間存在自体が不治の病だというに等しく、われわれの肉体そのものが病であり、
潜在的な死なんだ。
衰えることが病であれば、衰えることの根本原因である肉体こそ病だった。肉体の本質は
滅びに在り、肉体が時間の中に置かれていることは、衰亡の証明、滅びの証明に使われて
いることに他ならないんだ。
老いはすさまじい恐怖であり苦痛であり、そして真実である。
このままだと僕たちは腐敗して汚れて蝕まれたおぞましい大人になってしまうんだ。
大人たちは日々を生きのびようとする故なき執念、執着によって、地上に栄える
ありとあらゆる悪徳と汚穢とを一身に体現しているのだ。
テチには限られた貴重な時間を死にものぐるいで生きてもらって思う存分に輝いてもらいたい。
ああ、一分一分、一秒一秒、二度とかえらぬ時を、人はなんという稀薄な生の意識で
すりぬけるのだろう!!そうして血が失われるように時が失われていく。
そしてテチが二十歳になったら、その最後の輝きの絶頂の中でステージ上で美しく鮮烈に
死んで欲しい。
ああ、テチの光輝あふれる肉体と精神が劣化することも衰退することもない永遠に美しいまま
伝説となり歴史となるために無慈悲な時の流れを止めたい!!
その時、テチには誰かもわからない僕も自殺する。
大人になるテチなんか絶対に許さない。僕はテチと血まみれになって心中する。
テチを殺すことを許してください。テチをステージ上で銃殺して自殺する。
僕の血とテチの血が混ざり合って純化されるのだ。
これだけはわかって欲しい。僕が誰よりも平手友梨奈を永遠に愛していることを・・
0548デフォルトの名無しさん
垢版 |
2019/12/08(日) 08:38:54.60ID:d61YKsOU
しかも文章めっちゃ上手いよね
その才能をなぜ文学とか別の方向性に活かせないのか…
0549デフォルトの名無しさん
垢版 |
2019/12/08(日) 14:51:24.96ID:J+6Nu+8f
>>542
numpy 使った方が良い
0550デフォルトの名無しさん
垢版 |
2019/12/08(日) 17:09:05.43ID:pSs03yKS
本当に超初心者質問です。
pythonで

a=100

a = 100

では、どっちの書き方にするべきですか?
今までC#でVSが

を打つと自動的にきれいにスペース入れてくれてたので、
どう書くのが標準なのかわかりません。
0553デフォルトの名無しさん
垢版 |
2019/12/08(日) 18:22:21.20ID:pSs03yKS
>>551
これVSが自動で直してくれないんでしょうか?
自分でスペースとか入れていると、
いちいち表記法を意識しなければいけないのでしんどい。
0554デフォルトの名無しさん
垢版 |
2019/12/08(日) 18:23:02.65ID:B7mwO2xN
>>550
pycodestyleやautopep8みたいなlinterを使うと
変な書き方してると注意してくれたり修正してれたりする
0558デフォルトの名無しさん
垢版 |
2019/12/08(日) 20:31:30.09ID:ZrAxLUnk
>>552
そーか、インデントにはtabじゃなくてスペース4個が望ましかったのか.....
ずっとtab使ってたわ、まぁ他人に配布することないし今後もtabで行くと思うけど...
0562デフォルトの名無しさん
垢版 |
2019/12/08(日) 21:52:20.12ID:ZrAxLUnk
>>560
ぱっと読んで多変量解析してなさそうな報告だったけど、本当にインデントの種類が収入の因子になってるのかね?
まぁ、俺は趣味だからtabで今後も行くし,spaceインデントを否定するつもりはないけど

(1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む
(2)スペースの打ち間違いによるエラーがわかりにくい、
   4段階インデントの場合、スペース16個と17個(間違い)がぱっとみわかりづらい。
   CとかならいざしらずPythonだとエラーになる。tabだとtab4個と5個では違いがはっきりしてる。

オートインデント使えねえクズは死ねとか言われそうだけど.....
0564デフォルトの名無しさん
垢版 |
2019/12/08(日) 22:47:58.24ID:B7mwO2xN
>>562
>(1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む

エディタの機能でtabキーを4回押せばスペース16個になる
さすがにスペースキー連打してるやつはいないよ
0566デフォルトの名無しさん
垢版 |
2019/12/08(日) 22:59:41.29ID:Wir5LDVx
他言語ではタブ派だけどpythonだけはvscodeでスペース4に設定してるな
indent-rainbow入れとけばインデントミスはすぐわかるし
0568デフォルトの名無しさん
垢版 |
2019/12/09(月) 11:12:02.64ID:RLwtKsqp
インデントの話やPEP8の話が出て来ると
必ずと言って良いほどオレの方が正しいって
主張始めるやつが出て来るのが面白いな

スペース 2 個派です
0569デフォルトの名無しさん
垢版 |
2019/12/09(月) 12:15:24.24ID:WTLcFYnZ
pythonの場合、インデントが必ずしも2とか4の倍数じゃないところがめんどくさい。
パレンで囲って改行したときに、次の行頭にちまちまスペース入れなきゃならないし。
まぁ、しなくても動くけど。

タブ文字は便利だが、こうした場合スペースと混合されると紛らわしいな。
0570デフォルトの名無しさん
垢版 |
2019/12/09(月) 12:38:11.52ID:WjwE1wYD
>>568
Pythonは一応バイブルあるから自分が正しいって主張する奴はあんまりいなくね?
大抵は俺と一緒で「自分しか関与しないから俺流でやるぜ」って奴かと
0571デフォルトの名無しさん
垢版 |
2019/12/09(月) 12:59:58.96ID:W35ag/eC
教義を守らないヤツは異端だから滅ぼしていい
ってのが西洋人の考え方だよ
0574デフォルトの名無しさん
垢版 |
2019/12/09(月) 16:55:51.28ID:03JGrJKy
他の言語(Goはタブ強制だから除く)だとスペース2個派だけど、Pythonは4だなあ
PEP以前にPythonでスペース2個は浅すぎて読めん
深いネストから戻るときに今何段目か分からん
0575デフォルトの名無しさん
垢版 |
2019/12/09(月) 16:57:50.47ID:VQkZ+CLb
ネストよりフラットが良い by zen of python
貧乳派の教祖である。
0578デフォルトの名無しさん
垢版 |
2019/12/09(月) 17:33:45.58ID:RLwtKsqp
そもそもpythonじゃないのでネタ確定だが
あえてpythonで書くと
https://ideone.com/osA1LA
0580デフォルトの名無しさん
垢版 |
2019/12/09(月) 17:39:42.43ID:RLwtKsqp
ごめん途中で送信したので
やり直し
https://ideone.com/5YnYmj
0586デフォルトの名無しさん
垢版 |
2019/12/09(月) 20:12:58.55ID:8kuRYSAZ
>>581
もしかしてお前は自分が書いている言語が何なのかすら知らないのではないか?ロジックがどうこう言う手前の段階だろう。
0587デフォルトの名無しさん
垢版 |
2019/12/09(月) 21:49:55.90ID:m18yM9uO
Windowsの「アプリA」バージョン3が文字列を画面に表示してます
これを「アプリA」バージョン2に対してコピペしたいのですが
二つのアプリは同時に起動することができません

そこで、まずバージョン3を起動して、手に入れたい部分をコピーしてテンポラリー書類にコピーペースト.

入れ替わりでバージョン2を起動して
テンポラリーからコピペしたい部分をゲットして
バージョン2宛にペースト.
そんな工程を目論んでます

テンポラリーファイルには、変数名と文字列、数値が記録されることになると思います

このような手法に適した、ファイルの書き出し・読み込みと言えばどんなものがあるでしょうか?

自分なりにはpickleというものを見つけましたが、なんか難しそうな気がしました
アドバイス頂ければ嬉しいです
0588デフォルトの名無しさん
垢版 |
2019/12/09(月) 21:53:47.07ID:gL89svw9
クラスの勉強をするかdict型で書き出すかして
そのままpickleにかけろ
それより楽な方法は生データをテキストで保存することだが後々苦労するからやめとけ
0589デフォルトの名無しさん
垢版 |
2019/12/09(月) 22:18:14.86ID:m18yM9uO
ありがとうございます
dictと、クラスの定義ですね

はて?
pickleって、ひょっとして持っていけるのは要素だけで
変数名とかリスト名とかは持っていけない?
0591デフォルトの名無しさん
垢版 |
2019/12/10(火) 09:42:46.70ID:Gtb8KZ21
可読性ならjsonよりyamlやtomlのほうが…
0593デフォルトの名無しさん
垢版 |
2019/12/10(火) 13:28:31.47ID:uPxE4CgL
カッコ悪い
0597デフォルトの名無しさん
垢版 |
2019/12/10(火) 15:57:56.29ID:48kVELqA
>>589-591
msgpack
0599デフォルトの名無しさん
垢版 |
2019/12/10(火) 17:23:44.99ID:eJPx3dnZ
msgpackはJSON比で大して速くも小さくもない
人間による読み書きが可能であり大抵の言語で標準で扱えるというJSONのメリットを捨てるのに見合ったリターンはない
0600デフォルトの名無しさん
垢版 |
2019/12/10(火) 17:53:43.58ID:48kVELqA
充分小さいぞ
0602デフォルトの名無しさん
垢版 |
2019/12/10(火) 18:15:41.31ID:48kVELqA
キーを何度も使いまわすのは無駄だと思う
0608デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:06:12.26ID:ZT47FwY4
>実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
Python2.7.1 Windows 2000pro 開発環境はPython付属のIDLEです

Win32のクリップボードから取得した要素を、順番に辞書に渡しているのですが
「一番目、二番目」の順で渡したものが、「二番目、一番目」とひっくり返ったり
三つ渡すと「三番目、三番目、二番目」なんて順で保管されたりして、訳がわかりません
「辞書型オブジェクトには順序がありません」という話ではなくて
keyを使って取り出してみると整合してないのです

助言を頂ければありがたいです。
0609デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:07:29.80ID:ZT47FwY4
>>608
(続き)
(続き)
import win32com.client
import win32clipboard

def copy(text):
  win32clipboard.OpenClipboard()
  win32clipboard.EmptyClipboard()
  win32clipboard.SetClipboardText( text, win32clipboard.CF_UNICODETEXT )
  win32clipboard.CloseClipboard()

def paste():
  win32clipboard.OpenClipboard()
  data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
  win32clipboard.CloseClipboard()
  return data

oAutoIt = win32com.client.Dispatch("AutoItX3.Control")
#Windowsアプリケーションでカーソルを操作するためのAPIです
oAutoIt.WinActivate("とある請求書ソフトウェア - [xxx-xx-x.uqm]")
#APIは、とある請求書ソフトウェアが起動して、xxx-xx-x.uqmウィンドウが開くまで待機して、その後実行します
0610デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:08:21.34ID:ZT47FwY4
>>609
(続き)

dic = {}

oAutoIt.MouseClick("left",91,369,3)
oAutoIt.MouseClick("left",654,65,1)
#とある請求書ソフトウェアから"AAAAA"をコピーしてきます
dic ["key"] = paste()

oAutoIt.MouseClick("left",345,367,1)
oAutoIt.MouseClick("left",649,62,1)
#とある請求書ソフトウェアから"BBBBB"をコピーしてきます
dic ["key2"] = paste()

A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)


#print結果
============RESTART============
>>>
BBBBB
AAAAA
>>>
0612デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:40:31.18ID:ZT47FwY4
>>610
Windowsのクリップボードを監視した感触では、
とある請求書ソフトウェアからは、正しい順番でコピーされている様子です

ペースト関数を、一回しか使わない場合は、正常動作します。
素人ながら、なんか、定義済の変数に新しい値が代入されるとき
前後でメモリの処理がまずくなっているのかなと思いました
グローバル変数とかローカル変数とか、そっちの問題なんだろうかと、それらの勉強も始めましたが
まだまださっぱりわかりません

助言だけでもいただければありがたいです
0613デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:43:31.13ID:ZT47FwY4
>>611
そうですね。copy関数は使われてないですね
参考元では、copyとpasteがペアで表記されていたので
もしかして改善するときに必要になるかな?と思って、念のためにあげました
失礼しました
0614デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:51:14.90ID:cSF0k0t2
>>613
copy関数使わないで、コピーはどうしてるの?
マウスクリックしかされてないみたいだけど。
想像だけど、copy関数使ってコピーしてそのままreturnしたら良いんじゃ無いの?
0615デフォルトの名無しさん
垢版 |
2019/12/11(水) 09:58:47.72ID:ZT47FwY4
>614
copy関数使わないで、コピーはどうしてるの?

「とある請求書ソフトウェア」は、画面上に「COPY」というボタンがありまして
それを一回クリックしてます
するとWindowsのクリップボードに、テキストが入ってきます
0617デフォルトの名無しさん
垢版 |
2019/12/11(水) 10:47:34.44ID:pFOdIusR
>>608
3.6までの辞書は
「とにかく出てくる順番はテキトー 気分次第」になるぞ。
keyがうんたらなんたらとかいうレベルではなく。

いやorこまるなら3.7系にするか
標準で装備されてるcollectionsモジュールの「OrderedDict」(これは2.7系から使える)を使う
0618デフォルトの名無しさん
垢版 |
2019/12/11(水) 10:48:31.78ID:ZT47FwY4
>>616
後出しですみません

import time
time.sleep(0.3)
#0.3〜3までいくつか検討

結果
time.sleep(3)
AAAAA

近くにある命令が辞書に入ってくる
不思議な現象が起きております
環境が悪いんですかね
0619デフォルトの名無しさん
垢版 |
2019/12/11(水) 10:50:17.51ID:b0NSAXs1
>>610
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)

これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
puts "A の値は : #{ A }"

print結果が、単にタイミングの問題で、
後にprintされたものが、先に表示されているだけかも知れない
0621デフォルトの名無しさん
垢版 |
2019/12/11(水) 10:57:06.73ID:ZT47FwY4
>>617
いやいやいや
出てくる順番は適当で良いですけど

キーと一緒に代入した(つもり)要素が、別物になってたら困りますよね

それはそれでOrderedDict 調べてみます
0622デフォルトの名無しさん
垢版 |
2019/12/11(水) 11:01:37.93ID:ZT47FwY4
>>619
>これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?

すみません。今の私の技術では限界です
ソースにふりがなのついた参考書と、赤い表紙の本を手引きにしてるレベルです

>後にprintされたものが、先に表示されているだけかも知れない

探ってみます
0625デフォルトの名無しさん
垢版 |
2019/12/11(水) 12:22:25.53ID:fWs5lM4b
>>618
sleepどこに書いたの?
MouseClickした後paste呼ぶ間に入れてみれ
マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期なんだよ
0626デフォルトの名無しさん
垢版 |
2019/12/11(水) 12:29:51.76ID:pFOdIusR
>>625
横レスだけど
> マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期
なるほどとってもなっとくっく
0627デフォルトの名無しさん
垢版 |
2019/12/11(水) 12:44:29.61ID:8OP/pbId
dataの参照を取り出してるだけで
dataの中身を取り出してないから
printするときに逆になるんじゃね
知らんけど
0628デフォルトの名無しさん
垢版 |
2019/12/11(水) 12:48:31.95ID:ZT47FwY4
>>625
>sleepどこに書いたの?
>MouseClickした後paste呼ぶ間に入れてみれ

pasteの後に入れてました
1回目と2回目のコピペの間で、休ませれば正常動作するかな?と思いまして

そして、はー。これが正解でした
sleepの位置も大事なんですね
ありがとうございました

みなさんもありがとうございました
0630デフォルトの名無しさん
垢版 |
2019/12/11(水) 15:59:30.28ID:PLslpcOL
https://ideone.com/qx5CEY
このコードの1つ目だと、1列目の行にしかアクセスできてないです
しかし、2つ目のようにarray[x][y]とすると、2つめの行までアクセスできています
しかし、yループは1度しか回していません

xを先に書くとxがyループの取り出しに使われるのですか?
0631デフォルトの名無しさん
垢版 |
2019/12/11(水) 16:03:10.35ID:8OP/pbId
何を意図してるかにもよるが
縦(行)をyと考えてるなら
array[y][x] でアクセスするべき

君がやりたければ
array[x][y] でも構わないが
y は横(列)になるってだけ
0632デフォルトの名無しさん
垢版 |
2019/12/11(水) 16:08:47.02ID:H3x5MOt+
>>610
printデバッグとデバッガのステップ実行を使うといいよ
両方組み合わせればタイミングが原因かどうかはだいだい切り分けられる

今回の例ならpaste関数のreturnの前にprint(“paste data: ”, data)を入れて
dic[“key”] = paste()の直前か直後にブレイクポイントを設定してステップ実行する
0633デフォルトの名無しさん
垢版 |
2019/12/11(水) 16:10:35.08ID:cSF0k0t2
>>630
ループ以前に配列を理解していない。
2つ目のはy値はずっと0でx値は0,1と変化している。
print(array[0][0])、print(array[1][0])と実行していることになる。
0634デフォルトの名無しさん
垢版 |
2019/12/11(水) 16:19:15.69ID:H3x5MOt+
>>630
array = [ [1,2], [3,4] ]

このarrayは1つ目の要素が[1,2]、2つ目の要素が[3,4]
だからarray[0]は[1,2]で、array[1]は[3,4]

array[0][0]は[1,2]の1つ目の要素なので1
array[0][1]は[1,2]の2つ目の要素なので2

for y in range(10):とするとyという変数に
0から9まで(10は含まない)を代入しつつループの中の処理を実行する
ループ内でyを参照したらそのループ開始時に代入された値が入ってる
xやyじゃなくfor i in range(10)と書いても同じ
xやyに特別な意味があるわけじゃない
0635デフォルトの名無しさん
垢版 |
2019/12/11(水) 16:27:38.36ID:PLslpcOL
>>631
テトリスの作成で、配列の回転をしたかったんですよ
行は[1,2]を1行目、[3,4]を2行目と考えています
0637デフォルトの名無しさん
垢版 |
2019/12/11(水) 18:26:22.83ID:BSd1dztf
さすがにOSアップデートしろよwww
そんな化石使ってる時点で話にならない
0638デフォルトの名無しさん
垢版 |
2019/12/12(木) 17:12:30.59ID:f967V2wE
x = [0,0.1,0.2,0.5,1,2,3]
y = [0.5,0.5,0.4,0.4,0.5,0.4,0.5]

このリストの数値を使ってmatplotlibで折れ線グラフを書きたいのですが、xの小数の値が偏ってしまい見づらくなってしまいます。
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
x軸を等間隔に表示させる書き方があれば教えていただけませんでしょうか。
x,yはそれぞれx軸、y軸にあてたい数字です。
0639デフォルトの名無しさん
垢版 |
2019/12/12(木) 17:14:40.82ID:f967V2wE
>>638
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
この行スペースが表示できませんでしたが、メモリの0~0.5までが寄ってて、1~3までが間隔空きすぎている。等間隔ではないってことを言いたかったです。
0640デフォルトの名無しさん
垢版 |
2019/12/12(木) 17:51:08.05ID:dyy25qsp
>>638-639
fig = plt.figure()
ax = fig.add_subplot(111)
#↑ここまでは適宜自分がやってるように読み替えれ
#↓目盛りの指示を好きなように出せる呪文。y軸の設定はset_yticksだ
ax.set_xticks([0, 1, 2, 3, 4])
0641デフォルトの名無しさん
垢版 |
2019/12/12(木) 18:11:33.19ID:n05Ewb3K
plt.plot(x, y)
plt.show()
で普通に等間隔のtickで表示される

plt.plot(x, y)
plt.xticks(x)
plt.show()
とかすれば等間隔じゃないtickで表示される
0642デフォルトの名無しさん
垢版 |
2019/12/12(木) 18:21:07.32ID:f967V2wE
>>640さん、>>641さん
ありがとうございます。お二人のようにそれぞれやってみましたが等間隔で表示できません…。
少数のところが偏って表示されてしまいます。

一応コード載せます
figure = plt.figure(figsize=(10, 5))
axis = figure.add_subplot(1, 1, 1)
plt.plot(x,y)
axis.set_xticks([0,0.1,0.2,0.5,1,2,3])

plt.show()
0643デフォルトの名無しさん
垢版 |
2019/12/12(木) 18:22:15.85ID:f967V2wE
すみません…。画像の乗せ方わからなかったので試しにかいてみたやつ消すのを忘れてました…!
0644デフォルトの名無しさん
垢版 |
2019/12/12(木) 18:28:45.35ID:Lo+C9eAO
ネタじゃなくてマジ池沼さん?
0646デフォルトの名無しさん
垢版 |
2019/12/12(木) 18:42:20.58ID:f967V2wE
>>645
はい。もともと等間隔ではないものを等間隔に表示したいという質問でした。
関数の値(例えばx = 0.1ならy = 0.4)をグラフにしたいと思っていました。
xの値は0~1までは少数もとりますが、1からは整数しかとらないためにグラフにすると偏りが出て見づらくなってしまいます。
それを等間隔に表示できれば見やすいかなと思いました。
0648デフォルトの名無しさん
垢版 |
2019/12/12(木) 20:54:04.13ID:n05Ewb3K
>>646
そいうことだったのか

tickを等間隔な値にして、対応するラベルを設定したい等間隔じゃない値にする
んでplotするxの値をそれに対応するよう変換する必要があるんじゃないのかな
自動でやってくれる方法があるのかは知らない

plt.plot(range(len(x)), y)
plt.xticks(range(len(x)), x)
plt.show()
0649デフォルトの名無しさん
垢版 |
2019/12/12(木) 21:57:18.88ID:dyy25qsp
>>646
無理に時空を歪めるのは見る側のことを考えてないのでヤメレ

常識的な解決策としては
・対数グラフを使う
・一部(x=0から1の区間だけ)拡大図を
  範囲内のどっか空きスペースまたは別添えでつくる
0650デフォルトの名無しさん
垢版 |
2019/12/12(木) 22:46:47.08ID:f967V2wE
>>648
すごい!これできれいにグラフが出せました。本当にありがとうございます!
書き方に工夫が必要で、そういうのをぱっと思いつけるように勉強いたします。

>>649
関数のグラフではなくてxに対応するyの値(値がxのときの結果はこの数値)はこれですよっていうだけの折れ線グラフを出したかったのです。
ですから時空は大丈夫のはず…です。
対数グラフというものを知りませんでしたので調べてみます。ありがとうございます。
0651デフォルトの名無しさん
垢版 |
2019/12/12(木) 23:26:28.33ID:XBUUy+/0
いろいろな参考書で、辞書はKeyと値のペアで出来ていると理解しましたが

keyだけがあって、値が空のを作ってしまってはいかんのでしょうか?
0652デフォルトの名無しさん
垢版 |
2019/12/12(木) 23:54:29.36ID:ZS52b4mm
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
browser.get('https://qiita.com/advent-calendar/2016/crawler')

calendar = browser.find_elements_by_css_selector('div.col-sm-12')

for col_sm in calendar:
col_sms = col_sm.find_elements_by_css_selector('th.adventCalendarCalendar_dayName')
print(col_sms.text)

エラーが
---> 9 print(col_sms.text)
AttributeError: 'list' object has no attribute 'text'
と表示されます。textで出力できないのはなぜなんでしょうか?
色々調べているのですが出力方法がわかりません。
初歩的なことですみませんが教えていただけないでしょうか。
0654デフォルトの名無しさん
垢版 |
2019/12/13(金) 00:15:27.02ID:+9OE4qBy
>>652
ブラウザのコンソールからJS叩くかIPythonとかでデバッグするかして
そのCSSセレクタで意図した要素が取得できてるのか確かめるといい

ビジュアルに確認できるのでブラウザのほうが最初はわかりやすいと思う
0655デフォルトの名無しさん
垢版 |
2019/12/13(金) 01:37:03.59ID:cqNP6rMk
>>654
ブラウザコンソール開いてみました。ブラウザコンソールについて調べてみたのですが
よくわかりませんでした。ここに何かのコードを入力するのでしょうか。
JSとはなんでしょうか?
Jupyter Notebookを使っていまして取得したいcol_smsには
<selenium.webdriver.remote.webelement.WebElement (session="667d743c5f872d23247665eb139f3bac", element="f43fbb00-654d-472f-b0f0-1b43973384b4")>
というようなものがいくつか入っているのですが、textを使っても出力されない状況です。
質問ばかりですみません。
0656デフォルトの名無しさん
垢版 |
2019/12/13(金) 02:19:41.88ID:VJl1Rt3v
普通に長さが1の配列が戻ってきてんじゃね
イテレーター使って.text使うかcol_sms[0].textでいいんじゃね

col_sm.find_elements_by_css_selector()の戻り値ggれば解決しそうな話
俺は面倒くさいのでggりませんけども…!
0657デフォルトの名無しさん
垢版 |
2019/12/13(金) 03:41:11.64ID:+9OE4qBy
>>655
JSはJavaScript
スクレイピングするならHTML/CSSと
JavaScript/DOM APIの基礎知識は必須

browser.find_elements_by_css_selector('div.col-sm-12') はJSで
document.querySelectorAll(‘div.col-sm-12’) とするのと同じ

find_element_by_css_selectorは最初に見つかった要素を返す
find_elements_by_css_selectorは要素のリストを返す
んでリストには’text’というAttributeはありませんよってエラーが出てるよね
0658デフォルトの名無しさん
垢版 |
2019/12/13(金) 06:07:45.61ID:N3jObneI
Cython について
Cython の pyx ファイルの中に、
@cython.infer_types(True) とあるんだけど、
この@は何の働きをしているの?記法なの?
詳しい人教えて
0659デフォルトの名無しさん
垢版 |
2019/12/13(金) 10:39:13.33ID:A6tZ4ufL
>>652-657
Ruby, Selenium Webdriver なら、
find_element は最初の1つだけで、find_elements はすべてを取得する(配列)

css_selector では、div.col-sm-12 などの、
Bootstrap などのCSS フレームワークなどの、デザインを指定するクラスは、あまり意味がない

#main とか、div.container.adventCalendarCalendar とか、table.table とか、
HTML の構造的に、意味があるようなセレクターを指定する。
そうすれば、スマホ・PC などのデザインによって変わらない

css_selector = "#main > div.container.adventCalendarCalendar table.table > thead th.adventCalendarCalendar_dayName"

element = driver.find_element( :css, css_selector )
elements = driver.find_elements( :css, css_selector )

puts element.text, elements[ 0 ].text, elements.length

出力
Sun
Sun
7 (配列の要素数)
0660デフォルトの名無しさん
垢版 |
2019/12/13(金) 11:17:38.66ID:V90d9jYd
小学生っぽい子供が混ざってるようだが
質問するときは相手に伝わるようにちゃんと考えた方が良い
技術力よりコミュニケーション力や日本語力を気にしろ
0661デフォルトの名無しさん
垢版 |
2019/12/13(金) 11:40:28.24ID:Mexu05AP
>>653
ちょっと難しかったです。
とりあえず辞書は、キーだけで値がなくても構わないと思うことにします
0662デフォルトの名無しさん
垢版 |
2019/12/13(金) 12:14:38.95ID:A6tZ4ufL
Ruby では、ハッシュのキーに値を設定しなければ、値がnil になる。
一方、存在しないキーの値を取得すると、nil になる

これでは両者の区別がつかなくなるので、デフォルト値を設定する。
そうすると、キーに値を設定しなければ、値がデフォルト値になる

バグを避けるためには、必ずキーに値を設定するか、デフォルト値を設定しておく
0663デフォルトの名無しさん
垢版 |
2019/12/13(金) 12:38:34.35ID:ZbkO1X73
>>661
set(集合)とdict(辞書)は内部的にはそこそこ近いことをやってる
ハッシュテーブルを作って、keyのハッシュからvalueを見るのがdict。key(setにkeyって概念はないけど、便宜上)のハッシュを見て、key自体が 衝突 and 同じ内容が含まれてるか を見て、key自体を要素として扱うのがset。
setは本当に数学における集合と同じような動作をする(bitwise操作などができる)って認識しとけばおっけー
0664デフォルトの名無しさん
垢版 |
2019/12/13(金) 12:41:27.69ID:ZbkO1X73
Rubyの話をしてる人が居るのは本当に謎だけど、Pythonでも
dict.get(key, default)
とすればdefaultを設定した上で値を取得できる。
あるいは、collections.defaultdictを使うのもあり
0668デフォルトの名無しさん
垢版 |
2019/12/13(金) 15:24:58.53ID:yspevzV6
>>664
スレタイにRuby禁止って付けられるくらいに、スレ違いのRubyの話をしたがる頭のおかしい構ってちゃんが一人居ついているだけだからスルーしとけばいいよ
0669デフォルトの名無しさん
垢版 |
2019/12/13(金) 15:26:20.43ID:hzMr3/rM
>>667
とある請求書作成アプリのセルからテキストをコピーして辞書に格納してから、別アプリにペーストしたいのです
ケースによって空欄のセルもあるので、そのままで良かったのだろうかと考えてました
でもNoneを入れる事にしました
0670デフォルトの名無しさん
垢版 |
2019/12/13(金) 16:20:03.71ID:+9OE4qBy
>>669
なるほど
「キーに対応する値が無い」ケースをどう表現すべきかという話だったね

文字列の空欄を示す場合は一般的には空文字を使っておいたほうが
後でテキスト処理をする時にNoneのハンドリングが必要ないし
キー自体が存在してなくてNoneになるケースとの区別が付きやすくてベターだと思う
0671デフォルトの名無しさん
垢版 |
2019/12/13(金) 18:47:08.49ID:cqNP6rMk
>>656-657-659
ご回答ありがとうございます。皆さまから教えていただいたことをできる限り試してみます。
0673デフォルトの名無しさん
垢版 |
2019/12/14(土) 00:53:34.54ID:28JG+Fsi
>>672
子孫など何か関係がないといけないのですね。入力をすればなんでも取得できると思っていました。
教えていただきありがとうございます。簡単なサイトを作れるぐらいのHTMLやCSSの基本をまずは覚えた方がいいんでしょうか...
0674デフォルトの名無しさん
垢版 |
2019/12/14(土) 09:57:24.53ID:YkKG/mMh
>>670
アドバイスありがとうございます

実は辞書を作る前工程で
Win32のクリップボード経由で、文字列を取得してくるプロセスがあったのですが

そこで自分が書いた関数だと、Winアプリが文字列が空だと、エラーになることに気がつきました

悩ましかったのですが、エラーになったらtry 〜exceptで
変数にNoneを入れることでしのぎました

text = “” だとデバッグで読むときよく分からなかったですし

ここは、何がベターなのかもう少し考えてみます
このスレのコメントは大変ためになります
0676659
垢版 |
2019/12/14(土) 10:59:10.77ID:8NRAnTxB
>>673
web アプリの初心者は基本、サーバー側はRuby で、
クライアント側は、HTML, CSS/SASS, Bootstrap, JavaScript, jQuery などを使う

jQuery のCSS Selector のルールを学べばよい。
emmet も、似たようなもの

# はid で、. はクラスとか、
x > y なら子要素(子孫を含まない)で、x y なら子孫要素とか

それと、他人のHTML の解析は、基本無理。
クラスをどういう意味で使っているのか、分からないから

構造的な意味で使っているのか、単なるデザイン上のものなのか、
または、Bootstrap などのCSS フレームワークのルールなのかも知れないし、
他人の考えなど、分からない

col-sm-12 みたいに、small なら、12列分の幅を使うとか、
こういうデザイン上のものを、CSS Selectorに入れると、
ページのデザインが変わると、セレクトされなくなったりしてしまう

一方、構造的な意味は、変わりにくい
0678デフォルトの名無しさん
垢版 |
2019/12/14(土) 11:34:02.24ID:TlZt0bii
後ろから前から
0679デフォルトの名無しさん
垢版 |
2019/12/14(土) 11:52:10.65ID:e26gFA86
アホな質問で申し訳ないが
class の、書き方について質問あります

Python がはじめてのプログラミング言語で
やっと手続き的な記述ではやりたいことが
できるようになってきた

オブジェクト指向理解してないのもあるかもだけど
ライブラリとか、フレームワークのclass をオーバーライドしてかく時に

self が乱立しまくってて、
効率わるいようなきがするのだけども
書き方があってるのか知りたい

現場エラー吐いてないから、いいかもしれないけど
マナーというか、お作法としてどうなんやろ?と

別途class つくったり関数作ったりするの?
0680デフォルトの名無しさん
垢版 |
2019/12/14(土) 14:32:25.78ID:tCtWHq2v
>>679
それは誰もが感じる疑問

Pythonではインスタンスメソッドとして扱いたいメソッドの第一引数にselfを渡して
明示的にselfを指定する以外にインスタンスメンバーを参照する方法はないので
オブジェクト指向的に書く場合はselfが乱立しまくるのが通常

”Explicit is better than implicit.”という苦しい言い訳をする人も多いけど
そんな高尚なものじゃなく単に言語の制約なのでPython使う限りは諦めて受け入れるしかない
0681デフォルトの名無しさん
垢版 |
2019/12/14(土) 16:23:05.11ID:8NRAnTxB
Ruby のクラスでは、引数にself を持ちまわらなくても、selfが使えるだろ。
それは、実装が大変

ユーザーの利便性を上げるために、実装で頑張った
0682デフォルトの名無しさん
垢版 |
2019/12/14(土) 16:52:04.55ID:TlZt0bii
selfが嫌なら第一引数を@にすれば良いんだよ
@.hoge でアクセス出来るし便利だぞ
0683デフォルトの名無しさん
垢版 |
2019/12/14(土) 16:58:40.39ID:tCtWHq2v
>>681
実装は大変じゃないよ

そんな大変ならPython以外にも
1つくらいselfを要求するOO言語があってもいいよね
0684デフォルトの名無しさん
垢版 |
2019/12/14(土) 17:15:21.14ID:TlZt0bii
最近はRustとかNimみたいに
第一引数.関数名(第二引数以降はカッコ内)
の様な文法が流行ってる
0686デフォルトの名無しさん
垢版 |
2019/12/14(土) 18:17:59.35ID:zJmCdf+U
Pythonは変数のスコープもちょっと微妙なとこあるし、self必須とかはスコープに由来してるかわかんないけど、その辺は受け入れるしかないよね

その辺受け入れたとしても便利だからPython選んでるわけで

もちろん後方互換性を保ったまま改善できる言語変更があったら嬉しいけど

○○が変だからPythonは使えない、という人には他の言語もあるしね。
0688デフォルトの名無しさん
垢版 |
2019/12/14(土) 22:02:54.83ID:1E2rCKG0
>>687
ゲームを作りながら楽しく学べるPythonプログラミング
で題材になるぐらいには簡単(入門向け)
0689デフォルトの名無しさん
垢版 |
2019/12/14(土) 23:29:48.51ID:Ztjs0n6X
>>687
たぶんブロックの回転で行列がどうこう言ってた人かな?
テトリスは特段難しくはないんだけど、これまでのレスを見てるともっと基礎レベルから頑張った方が良さそう。
0691デフォルトの名無しさん
垢版 |
2019/12/15(日) 12:01:47.20ID:tER7UmuJ
この界隈だとがんばっちゃダメ
テトリスのコードを10くらい眺めて理解すればいい
0692デフォルトの名無しさん
垢版 |
2019/12/15(日) 12:11:02.09ID:+1jKhtSK
>>676
詳しく教えていただきありがとうございます。
jQuery のCSS Selectorのルールなど見てみようと思います。
0694デフォルトの名無しさん
垢版 |
2019/12/15(日) 15:30:08.19ID:GQ26ybwL
SQLite3で巨大なDBにデータを追加してcommitした時
動作としてはdbファイル全体が改めてディスクに書き込まれるのでしょうか
それとも変更した部分のみがディスクに書き込まれるのでしょうか

SDカード上にdbファイルを置いているため書き込み耐久が心配になり質問しました
0695デフォルトの名無しさん
垢版 |
2019/12/15(日) 15:53:14.71ID:goe0JUwd
>>694
普通は全書き込みだと思うんだが

そんなに消えて困るものならば
SDカードだったら
常時上書きのドラレコ突っ込みOKみたいな特上品使わないと
やばくね?
0696デフォルトの名無しさん
垢版 |
2019/12/15(日) 16:09:30.52ID:fGq+HT2S
ページ単位で管理されていて更新されたデータのあるページだけ書き込まれる。
0698デフォルトの名無しさん
垢版 |
2019/12/15(日) 23:09:27.37ID:fpSJINfx
>>694-696
ファイルシステムによる

Linux のext では、例えば、40KB のファイルは、4KB のページサイズでは、10ページある。
その5ページ目に、8KBのデータを追加したとすると、

追加された2ページ分は、11・12ページに書かれて、
1〜5, 11, 12, 6〜10 の順番に、リンクが張られる

この場合は、既存のページは、再配置されない。
次のページを示す、リンクのみが書き変わる。
つまり、5→11、11→12、12→6 を指す

でも、12ページ分48KBを超えると、管理方法が変わるから、
データの再配置が起きるかも知れない
0699デフォルトの名無しさん
垢版 |
2019/12/15(日) 23:47:23.79ID:YEGq3iyi
すいません。どなたか教えてください。

jupyter notebook にてpyperclip をインポートしようとしたところできなかったため、
anaconda prompt にてインストール試みました。

conda install pyperclip だと、公式サイトで探してね。的なエラーが出てきたため、
pip install pyperclip で試みたところインストールは完了したのですが、、、

やはりjupyter notebook上でインポートしようとすると、同様の見つかりませんエラーが返ってきます。。。
何が悪いのか、どこを見ればいいのかよくわかりません。。。

教えていただけると大変ありがたいです。。。
0701デフォルトの名無しさん
垢版 |
2019/12/16(月) 08:55:41.01ID:+69MK1pA
>>687
アルゴリズムはねちょねちょ考えるのが楽しそうだから、回転行列とか勉強しながらやってみ?
問題は表示とかキー入力をどうするかだと思うなぁ。
普通はpygameになっちゃうんだろうけど、tkinterとかPyQtやWx使うとたいへんですかね?
せっかくインタプリタ言語なんだからtubeの「小一時間で作ってみた」シリーズみたいに
テキストベースで気楽に作れるライブラリあると良いのにね。
0702デフォルトの名無しさん
垢版 |
2019/12/16(月) 08:57:09.75ID:Ugry/p2L
>>699
いまお使いの仮想環境名は把握してますか

conda list -n 仮想環境名 で
その環境を指定して、インストール済み一覧が表示されるから
それで分かるんじゃないでしょうか?
0703デフォルトの名無しさん
垢版 |
2019/12/16(月) 12:37:42.94ID:0jmxiGrg
>>701
curses
ncurses
pdcurses
0704デフォルトの名無しさん
垢版 |
2019/12/16(月) 21:11:21.65ID:yUF0sPmO
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)

仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。

恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。

改めてアドバイスありがとうございました(^^)
0705デフォルトの名無しさん
垢版 |
2019/12/16(月) 21:11:27.79ID:yUF0sPmO
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)

仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。

恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。

改めてアドバイスありがとうございました(^^)
0708デフォルトの名無しさん
垢版 |
2019/12/17(火) 05:54:50.47ID:eGUcswGM
conda, pip とか、異なるパッケージマネージャー(PM) を同時に使えるのかな?
それらは、同じデータベース(DB)に、各パッケージの依存関係を記録しているのか?

例えば、node.js をインストールしておいてから、
yarn を、npm を使わずに、
OS に直接または、OSに入れている、Homebrew, Chocolatey などのPMを使って、インストールすることはある

大きな括りでは、異なるPMを使うことはあるけど、
各モジュールのような小さいライブラリを、異なるPMで管理する事は、あるのかな?

片方のPMの依存関係DBが更新されても、もう一方のDBが更新されるのか?

yarnのように、処理が異なるだけで、npmと同じ依存関係DBを使っているのなら、
npm/yarnは、同一のDBを参照するけど

これと同じで、pip/condaは、同一のDBを参照しているのか?
0709デフォルトの名無しさん
垢版 |
2019/12/17(火) 08:18:13.44ID:dA33S95E
pythonでWindowsGUIアプリの自動化をやらせたいいんだけど。
(例えば、了解ボタンクリックとかメニューの選択等)
大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
動かなくなるときの考慮てどうするんですか。
0710デフォルトの名無しさん
垢版 |
2019/12/17(火) 09:45:31.97ID:QqOdTjZG
>>709
>大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか

PyAutoGUIでなくて申し訳ないが
私はそういう事で困る事の少ないAutoITXを使っている
座標系のマウスクリックだけじゃなくて、
アプリやウィンドウ、ダイアログの名前を判断して、指定したダイアログにある「了解」というボタンを押す
なんて命令が使えるから
0711デフォルトの名無しさん
垢版 |
2019/12/17(火) 09:54:50.75ID:OaYPHXYM
知恵袋でテトリスの回転のコードをもらったのですが、
https://ideone.com/2j9PhQ
このコードの内包表記の部分がよく分かりません(tmpのとこです)


この部分をもう少し一般的な書き方はできないでしょうか?
0712デフォルトの名無しさん
垢版 |
2019/12/17(火) 10:18:22.18ID:QqOdTjZG
質問です。python2.7.1 windowsです

リストを作りました
list = [“left” , 1 , 2, 3, “num_a1”]
要素は5個です

関数を作りまして、引数を5個にしました
関数にリストを読み込ませたら、無事に動きました

次に要素を15個に増やして
関数に、先頭から5個ずつ読み込ませて
3回、関数に仕事をさせたいと思います

リストは二次元配列にしようと思います

ばくぜんと、forを使うのだろうということは分かるのですが
ググっても類似のソースを見つけられず、悩んでます

気軽に「こんな手法があるよ」程度で、レスをつけてもらえればありがたいです
0714デフォルトの名無しさん
垢版 |
2019/12/17(火) 10:23:25.96ID:4rBcrl8A
AutoITは遅くてやめてpyautoguiはインポートするだけでDPIのスケーリング変わっちゃうから
Win32guiとctypesで全部書いて行った
0715デフォルトの名無しさん
垢版 |
2019/12/17(火) 10:27:52.81ID:GwugB5zt
>>711
お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
プログラミング向いてないからやめとけ。
0719デフォルトの名無しさん
垢版 |
2019/12/17(火) 11:32:25.65ID:GwugB5zt
>>718
ばかなの?

> お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
> プログラミング向いてないからやめとけ。

ただ向いてないだけ。
0720デフォルトの名無しさん
垢版 |
2019/12/17(火) 11:43:42.66ID:6LhBKKEf
>>718
質問すること自体は悪くはないが、自分の現在のレベルを自覚して目標を定めた方がいいぞ。
まずはテトリスは遠い未来の話にして、入門書を一から頑張れ。
連立方程式が分かりませんというから解説したら、九々ができないレベルでした、って状態だから、まずは九々を身に付けよう。
今理解できないレベルの問題を相手を変えて、説明の方法を変えてもらっても、理解できないことに変わりはない。相手に手間をかけさせるだけだし、君自身も前進せずに同じところをグルグルしてるだけだろう。
0721デフォルトの名無しさん
垢版 |
2019/12/17(火) 12:13:38.61ID:rApV4krM
>>708
両方使ってるけど問題無い
先に conda の方使って conda に無ければ pip 使ってる
0724デフォルトの名無しさん
垢版 |
2019/12/17(火) 14:14:27.53ID:q5RkcH8n
visualstudioでc#使ってるときのように、インテリセンスが働いて、なおかつスペースとかを教典通りに調整してくれるテキストエディタありませんか?
0725デフォルトの名無しさん
垢版 |
2019/12/17(火) 14:16:09.48ID:q5RkcH8n
vs→vcに乗り換えてインテリセンスが働くようになったのは良かったんですが、スペース入れるbekiどうかで悩んだり、そこに脳のメモリ取られるのがうっとうしい。。。
0726デフォルトの名無しさん
垢版 |
2019/12/17(火) 14:18:53.50ID:Ef4LKPDY
>>711

block = [ [11,12,13,14],
[15,16,17,18],
[19,20,21,22],
[23,24,25,26] ]

def rot():
____tmp = [[x for x in y] for y in block] # listのlistを一時用に作る

これはおちょくられてるのかもな
不必要なコードだけどリスト内包表記はPythonの基本なので理解する努力をしよう
0727デフォルトの名無しさん
垢版 |
2019/12/17(火) 14:29:57.73ID:QqOdTjZG
>>722
ありがとうございます
単にコピペで貼り合わせて動くものを作るにとどまらず
なぜ動くのかを理解しながら、参考資料にあたりたいと思います


>>723
ありがとうございます

実は調べてるうちに、chunkなる単語を知りまして
やりたかったことは、これだったんだと思ったと同時に
活路が開けたといいますか、学習が進みました
ヒントのソースありがとうございました
0728デフォルトの名無しさん
垢版 |
2019/12/17(火) 20:48:36.49ID:eGUcswGM
テトリスなんて、10年以上やってる香具師でも、簡単に作れない

Java 土方で有名なベテラン、T Umezawa の動画を見てみ。
こんな、神レベルの達人でも、タイルが壁にめり込んだりして、簡単には作れない!

落ち物パズルゲームのプログラミング解説 1/2
https://www.youtube.com/watch?v=iyMMaQWlF_0

素人が作るのは、10年以上早いw

作ったと言ってる香具師は、作っていない。
コピペしただけw
0730デフォルトの名無しさん
垢版 |
2019/12/17(火) 23:11:25.06ID:8Os966QG
みんながんば!
0731デフォルトの名無しさん
垢版 |
2019/12/18(水) 00:22:03.39ID:Z6EQDlLl
Java土方で設計力もテスト設計力もないから書けないだけじゃないの

小学生の頃BASICのテトリスのコードの量見て難しいと思った記憶があるけど、今ならどんな言語でも書ける自信があるぞ

今のPCパワーで高速化とか考えなくていいなら愚直に書くだけだろう
0732デフォルトの名無しさん
垢版 |
2019/12/18(水) 01:38:39.95ID:N9ghlCsW
ブロック?じゃなく行列をなんで回転させようとするんだろう?
全く理解できない感覚なんだけど
0733デフォルトの名無しさん
垢版 |
2019/12/18(水) 05:13:33.26ID:YyMc+ouu
a = ['01','03','05']
b = ['02','04','06']

ていう配列があって、それをforで回すんだけど。
for x,y in zip(a,b):
print(x,":",y)

1個飛ばしでstepさせることでてきますか?
マトモな言語ならfor i=0 to a.length step 1とかできるのに。
0734デフォルトの名無しさん
垢版 |
2019/12/18(水) 07:14:26.22ID:Qufxt8uf
>>733
自分の無知により自分の思うようにいかないからといって、マトモでないという思考はやめた方がいいぞ
0737デフォルトの名無しさん
垢版 |
2019/12/18(水) 08:37:40.12ID:4Fp+UrW3
for i=0 to a.length step 1
をPyで使うなら、
for i in range(0, len(a), 2):
print(a[i],":",b[i])
な気がするが。
で、>>733はなんでzipを使うんだろ
0738デフォルトの名無しさん
垢版 |
2019/12/18(水) 09:26:00.82ID:NtHwU1Mj
for left in zip(*pos[::-1]:
とかで使ってるけどzip何なのか調べてないしちゃんと動いてるからいいや
0739728
垢版 |
2019/12/18(水) 11:59:08.76ID:j3JURanB
>>731
T Umezawa は、Java, C#, C++ とか何の言語でも、
入力補完を使わずに、メモ帳にすごい勢いで書くだろw

土方を極めた、神としか思えないw

>>732
テトリスのすべてのブロックは、4×4 マスに納まる

キー操作による回転に、対応させないといけない。
90度左回転・右回転とか
0740デフォルトの名無しさん
垢版 |
2019/12/18(水) 12:02:31.23ID:RQBBPl9v
造りたい言い始めてから何日かかってんだ
書き込む暇あったらさっさと造れ
一日もあったら出来るだろ
0744デフォルトの名無しさん
垢版 |
2019/12/18(水) 13:39:56.45ID:N9ghlCsW
>>733
無理して使いにくい言語を使わなくても
マトモだと思う言語を使ったほうがいいと思うよ
皮肉じゃなく割とマジで

pythonでstep指定する時はslice/isliceを使う
は? slice? ってなっても我慢すること
pythonはそういう言語だから

for x, y in islice(zip(a, b), 0, None, 2):
____print(x, y)
0745デフォルトの名無しさん
垢版 |
2019/12/18(水) 14:00:04.04ID:N9ghlCsW
>>739
>テトリスのすべてのブロックは、4×4 マスに納まる

4x4マスに収まるからといってブロックを4x4の行列で管理するメリットって何かあるの?
viewとmodelの分離ができてないとしても
ブロックを行列で表現してそれを直接回転させようという発想になる理由に興味ある
0746デフォルトの名無しさん
垢版 |
2019/12/18(水) 14:05:40.87ID:j0+9FDxC
ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ?
0747デフォルトの名無しさん
垢版 |
2019/12/18(水) 14:08:54.50ID:gHFmoE9o
一個飛ばしってただ単にこういうことじゃなくて?

>>> for n, m in zip(a[::2], b[::2]):
print(n, ':', m)


01 : 02
05 : 06

何をもめてるのかわからん
0749デフォルトの名無しさん
垢版 |
2019/12/18(水) 18:54:15.48ID:rPZysOi9
global宣言って何となく行儀が良くないような気がするのですが、上級者の方でも結構使いますか?
0750デフォルトの名無しさん
垢版 |
2019/12/18(水) 19:04:37.86ID:YQOjezK4
グローバル変数自体はPythonなら普通に使うけど、global宣言はほとんど使わない
しょっちゅう細かい粒度でグローバル変数を更新するようなことをするとスパゲッティ化しやすい
0752728
垢版 |
2019/12/18(水) 23:13:47.41ID:j3JURanB
>>745
各ブロックの回転パターンは、4つあるから、
ブロックを行列で表現して、それを直接回転させれば、1つで済む

行列の回転なら、動きがおかしくても、回転計算の部分だけを直せばよいけど、
4つのパターンを作っていると、それらのパターンを直接直さないといけないから、大変
0753デフォルトの名無しさん
垢版 |
2019/12/19(木) 00:00:42.47ID:snKgfw1x
>>752
回転軸とか壁や設置済みブロックで回転が制限されるケースを考えると
単純な行列回転じゃ無理だし1つの処理でも済むこともないよ
そもそも4x4の行列だとI型のブロック回転させるだけで上下に動いちゃうよ

普通にブロックの型、基準となる座標、向きをモデルとして管理して
描画ロジックとは分けたほうがいい
0754デフォルトの名無しさん
垢版 |
2019/12/19(木) 01:26:15.66ID:qED21Kil
俺もテトリス作ろうしたことあったけど思ったよりややこしくて放置してるわ…
0755デフォルトの名無しさん
垢版 |
2019/12/19(木) 08:02:37.49ID:0eo+DnKB
専門学校のコンピュータ・アニメ・ゲーム科卒から数年経ってプログラマーを目指したくなった者なんですがやっぱり未経験者は四年制大学の新卒しか採用されませんか?
やりたい事はAIのプログラミングです
言語はPythonを覚え中です
0756デフォルトの名無しさん
垢版 |
2019/12/19(木) 08:11:07.93ID:EV4M7jYb
単純に需要による
アンドロイドプログラミングとかなら今は需要の割にクッソ人が少ないから
kotlin使えたら未経験だろうが就職できる可能性は比較的高い

一方pythonのほうはこれからどうなるかは分からないが
日本では現状深層学習用などの学問用言語で 実務に使っているところはあまりない
ということはつまりpythonでAIやっていくには大学で専攻したような専門知識を持った人たちに
対抗しなくちゃいけないわけで ちと難しいんじゃないか?
0758デフォルトの名無しさん
垢版 |
2019/12/19(木) 08:21:14.74ID:0eo+DnKB
早速ポチってきました!
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 &Kotlin1.3で学ぶはじめてのスマホアプリ作成
0759デフォルトの名無しさん
垢版 |
2019/12/19(木) 09:36:46.63ID:Ez8BH22g
辞書で特定の単語を含むキーをワイルドカードで検索し
ヒットしたキーに対応している値を抽出したいのですが
辞書に正規表現検索を行うのはできないのでしょうか

プリミティブでは難しいでしょうか
0760デフォルトの名無しさん
垢版 |
2019/12/19(木) 10:09:48.45ID:xAWELgvD
はい
0761デフォルトの名無しさん
垢版 |
2019/12/19(木) 10:49:12.14ID:Crw8oya5
容易い
0762デフォルトの名無しさん
垢版 |
2019/12/19(木) 12:27:41.62ID:dMnFAlGo
Ruby では、正規表現のunion で「または」の正規表現を作ることができる。
その辞書の値を、gsub に渡すことで置換できる

hash = { 'ab' => 'あ', 'xy' => 'ん' }

p re = Regexp.union( hash.keys ) #=> /ab|xy/

p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx
0764デフォルトの名無しさん
垢版 |
2019/12/19(木) 14:15:27.95ID:+cpLTGtZ
>>755
君がやるべきことは高校を卒業することだ
0765デフォルトの名無しさん
垢版 |
2019/12/19(木) 14:51:01.29ID:snKgfw1x
>>759
filter()かリスト内包表記
頻出パターン

foo = {"aaa.py": 1, "bbb.py": 2, "ccc.csv": 3, "ddd.txt": 4}
[value for key, value in foo.items() if ".py" in key]
Out: [1, 2]

条件が複雑ならifのところで正規表現や関数使ってもいい
0767デフォルトの名無しさん
垢版 |
2019/12/19(木) 18:28:38.99ID:V/5EkM6t
機械学習する時、anacondaでpipを使っています
何故、condaを使わないのでしょうか?
0768デフォルトの名無しさん
垢版 |
2019/12/19(木) 18:37:09.73ID:V/5EkM6t
× 機械学習する時、anacondaでpipを使っています
〇 機械学習する時、色々なサイトを見てみると大抵、anacondaでpipを使っています
0769デフォルトの名無しさん
垢版 |
2019/12/19(木) 19:19:08.89ID:PZllcG7i
そのサイトの記事を書いた人もまたどこかからコピペしてるからだよ
Anacondaがないと何もできないレベルの人が自分で一時情報源に当たって問題解決なんてできるわけないだろ?
そうやって元を辿っていくと、Anacondaを必要としないレベルの人に行き着く
0771デフォルトの名無しさん
垢版 |
2019/12/19(木) 20:35:05.08ID:ZdWBIW9y
>>750
>>751
ありがとうございます
globalもnonlocalも設定値みたいに使ってglobal変数自体は更新しない場合が多いってことですか?

多少無理してでも引数と返り値でやりくりした方が見栄え良さそうですね
0772デフォルトの名無しさん
垢版 |
2019/12/19(木) 20:52:51.96ID:igx1CkSL
プロパティの勉強中

class Goods:
def __init__(self, name, price):
self.__data = {"name":name, "price":price}

def get_name(self):
return self.__data["name"]

def ste_name(self, value):
self.__data["name"] = value

def get_price(self):
price = self.__data["price"]
price__str = f"{price:,}円"
return price_str

name = property(get_name, ste_name)
price = property(get_price)


from goods_property import Goods
food = Goods("pizza",200)
print(food.name)    #1
food.name = "humberger"
print(food.name)    #2
food.price = 100
print(food.price)
0773デフォルトの名無しさん
垢版 |
2019/12/19(木) 20:54:02.72ID:igx1CkSL
#1で

Exception has occurred: AttributeError
'Goods' object has no attribute 'name'

ってなるのではなんで???
#2はOKなのに、initでデータ入ってないってこと?
0774デフォルトの名無しさん
垢版 |
2019/12/19(木) 21:28:47.05ID:xPsWnlhM
>>773
実行していないが
>food.price = 100
ではエラーになると思うが、nameのgetter、setterではエラーにならないんじゃないか
あと、setをsteにするってなんかの教えによるのか
0778デフォルトの名無しさん
垢版 |
2019/12/19(木) 21:50:51.31ID:snKgfw1x
>>773
#2の直前の
foo.name = “humberger”
でfooにnameっていう変数を新しく追加してそれに”humberger”を代入してるから#2はエラーにならない

__init__で
self.name = name
self.price = price
ってやってればfooにはnameが#1の段階で存在するから#1もエラーにならない
0779デフォルトの名無しさん
垢版 |
2019/12/19(木) 22:17:22.66ID:Crw8oya5
>>776
File "prog.py", line 13
price__str = f"{price:,}円"
^
SyntaxError: invalid syntax

>Exception has occurred: AttributeError
>'Goods' object has no attribute 'name'
再現できるコード貼ってくほしい
0783デフォルトの名無しさん
垢版 |
2019/12/19(木) 22:43:58.50ID:igx1CkSL
>>778
本当だ・・・。
というか教科書の教材を打ち込んでただけなのですが、教科書自体間違ってるのか・・・。
1時間悩んだのが何だったのか・・・。

ありがとうございます。すっきりしました。
0784デフォルトの名無しさん
垢版 |
2019/12/19(木) 22:47:34.16ID:igx1CkSL
>>782
あれ・・・。

name = property(get_name, ste_name)
price = property(get_price)

のインデントってdef 〜と同じところではダメなのでしょうか?
0785デフォルトの名無しさん
垢版 |
2019/12/19(木) 22:49:21.05ID:igx1CkSL
よくわからなくなってきた。
properyは初期化には関わらないからinitで代入する
self.name = name
self.price = price
が必要って理解でいいのでしょうか?
0786デフォルトの名無しさん
垢版 |
2019/12/19(木) 23:05:38.53ID:GR6pg+Yh
socket通信で送った文字列を、Pythonで受け取ってexecするプログラムを作りたいのですが
空いているポートにセキュリティ上の問題が発生してしまいます
セキュリティ問題を回避する方法ってないですか?
0787デフォルトの名無しさん
垢版 |
2019/12/19(木) 23:24:54.23ID:68JQcBLU
>>771
個人的にだけど…
globalは宣言もしないし値を使うだけってのもまずやらない
nonlocalは宣言するからには更新するし使うだけってのもバンバンやる
nonlocal宣言するのはGUI部分のみだけど
変数使うだけの方は100行の関数を10行単位の細切れにして引数は渡さないとかそんな感じ
0788デフォルトの名無しさん
垢版 |
2019/12/19(木) 23:49:48.18ID:4y7SvWFf
すいません質問なんですが
配列の中のものを交互に2つの処理をするにはどうしたらいいのでしょうか?

a=[0,1,2,3,4]という配列があるとして
0と2と4には5をかけて
1と3には2をたすとかどうしたら良いのでしょうか?
0789デフォルトの名無しさん
垢版 |
2019/12/19(木) 23:51:10.25ID:snKgfw1x
>>783

>>778に書いたことは一旦忘れてくれ
property()で設定してるのを見落としてたから

インデントが間違ってるってのは
get_name()や name = property(…)が
みんなdef __init__の中に定義されてるところ
0790デフォルトの名無しさん
垢版 |
2019/12/20(金) 00:11:32.82ID:N19Ct9QI
>>788
これでできます
a=[0,1,2,3,4]
for i,number in enumerate(a):#enumrateでaの要素をnumberに入れる、要素番号をiに入れる
if number % 2 == 0:#numberを2で割った余りが0だった場合
  a[i]= a[i] * 5
else:
  a[i]= a[i] + 2
print(a)
0792デフォルトの名無しさん
垢版 |
2019/12/20(金) 00:33:50.20ID:mwn52mbA
>>790
ありがとうございます
a[0::2]とか使うとforが二個できてカッコ悪いなあと悩んでました
助かります!、
0794デフォルトの名無しさん
垢版 |
2019/12/20(金) 09:41:12.09ID:N19Ct9QI
>>793
たしかに
見落としてた
0796デフォルトの名無しさん
垢版 |
2019/12/20(金) 13:05:32.03ID:qS4WQ1Uv
python2.7
windowsのアプリケーションからクリップボード経由で手にいれた文字列

“内閣総理大臣賞受賞”
を変数mymarkに入れておいて

u’総理’ in mymark

と演算子inで調べると、総理は存在するはずなのにFalseを返されます

右も左もソースに自分で打ち込んだ場合は正常なので
win経由のものはどこかでエンコードがおかしくなってるのではないかと思います

以下は調べてみました
type #右も左も<type ‘unicode’>
len(mymark) #9
内閣総理大臣賞受賞、で9文字ですね

len (u’総理’) #6
・これがどうして6になるのかよく分からない
0797デフォルトの名無しさん
垢版 |
2019/12/20(金) 13:20:02.56ID:L1XL0AeX
len(u'総理')の長さが6になるのは
多分python2では文字の長さを「文字列全体の容量 / 1文字の容量」で計算してるから
日本語などのマルチバイト文字だと実際の文字列の長さより長くなるんだろうなってことは分かる
(python3では普通に文字列の長さが表示された)

内閣総理大臣賞だけ9文字という正確な値になってるのはよくわからない
自分の調べたpython2環境ではlen("内閣総理大臣賞")で27になっていたが
0798デフォルトの名無しさん
垢版 |
2019/12/20(金) 13:26:15.19ID:qS4WQ1Uv
>>797
そうなんですか
じゃあ数があわないから、ここに問題が!と思いましたが
そうではないかも知れないのですね
0799デフォルトの名無しさん
垢版 |
2019/12/20(金) 13:28:24.35ID:A+TGdcd9
Ruby なら、powershell, clip コマンドを使って、
Windows のクリップボード処理もできる

Windows(CP932でin) → Ruby内部(utf8 で処理する) → Windows(CP932でout)

# frozen_string_literal: true

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
0800デフォルトの名無しさん
垢版 |
2019/12/20(金) 13:31:51.35ID:lig6lPK8
mymark = '内閣総理大臣賞受賞'
だと、18文字
mymark = u'内閣総理大臣賞受賞'
mymark = '内閣総理大臣賞受賞'.decode('cp932')
だと、9文字

最初のmymarkをユニコード文字列にデコードしておけばエラーは出ないね。

2.xのお作法、なんかいろいろ忘れてしまってる。
print()で怒られてしまったw
0802デフォルトの名無しさん
垢版 |
2019/12/20(金) 15:26:09.89ID:qS4WQ1Uv
ありがとうございます
プログラムにして動かしてるもの(だが動かない)
があるのですが

右側、mymark に .decode(utf-8)を付けると
UnicodeEncodeError: ‘ascii’が出て

右側、mymarkには何もつけずに
左側(u’総理’)にするとエラーは出ないけれど、in演算子が動かない

試しに左側の総理から、uを取ってしまうと
こんどはUnicodeDecodeError:’ascii’が出るんですね
かなり悩ましいです

別のマシンにpython3環境を構築して、そっちに移植してどうなるか試してみます
0803デフォルトの名無しさん
垢版 |
2019/12/20(金) 16:48:06.47ID:VlcbOuJw
馬鹿には無理
0806デフォルトの名無しさん
垢版 |
2019/12/20(金) 21:06:36.63ID:ITSL0wmI
全角文字列に対してIF処理を入れたいのですが、何で判別すれば良いですか?

検索対象の文字コードはutf8で、
漢字、ひらがな、カタカナ、全角英数を含む可変長の文字列が対象です。
0809デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:02:01.64ID:k+w4ikT0
>>808
別スレでpythonやめてkotlinやるって言ってた人か?きっとすぐに同じことを言い出すぞ。
入門レベルで必要なのは才能なんかじゃなく、ごく普通レベルの根気と理解力だけだぞ。才能がどうこう言うような段階まで到達してもいないだろう。
0810デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:11:47.62ID:LfWR8zZ0
プログラミングってそんな大層なことなのか…?
0811デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:25:48.14ID:RZ7OoAF7
>>809
他の言語はともかくPythonは持って生まれた才能が無い人には無理だろ
10年かかってもできないはず
人生を棒に振るぐらいなら簡単な言語を一生懸命やったほうがお得
0815デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:38:37.92ID:kL8tLCEf
まぁ、数学(とくに関数と微分積分)を完全にマスターして更にそれらを応用させる能力が必要だからな
まず凡人には努力だけでは習得不可能な言語
0816デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:39:35.09ID:LfWR8zZ0
関数を完全にマスターってなに?笑
こわい
0817デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:40:21.73ID:sX1zkF8/
これを小学校のカリキュラムに入れようってんだからなwww
まさに落ちこぼれ量産機www
本当は他のプログラミングができそうな子供達まで絶望させる
0821デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:46:24.32ID:qQwAhvsi
ふつうプログラミングを覚えるということはルールを覚えるという事なんだがPythonは...
(^_^;)
0822デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:48:48.28ID:k+w4ikT0
>>815
数学は単にpythonを使う応用分野の一つというだけで、言語としてのpythonの習得とは独立した話だろw
日本語を習得するというときに、数学や物理の論文を読み書きする能力まで求める奴はいないだろう。
0823デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:50:58.54ID:QVJGN34P
ダニング=クルーガー直後の「完全にマスター」だぞ。釣りに決まってんだろw
0825デフォルトの名無しさん
垢版 |
2019/12/21(土) 00:57:35.79ID:4SIKQrOR
Pythonは9割が脱落する言語と言われてるのもうなずける
もし仮に本人には才能があってもPythonをおぼえようとした時に最初に出会う教材や人によって終わってしまうことも多いと思う
俺はPythonとかプログラミングと全く関係ない数学の応用の本を一緒に読んでた
でも結局脱落した
0826デフォルトの名無しさん
垢版 |
2019/12/21(土) 01:02:39.90ID:k+w4ikT0
初めから言語の習得の話をしていて別に仕事で使う話はしていないぞ。
仕事で使うにしたって、pythonは汎用的なプログラミング言語であって別に用途が人工知能に限定されるわけでなく、ちょっとした統計処理や自動化程度であっても役割として十分だろう。
0828デフォルトの名無しさん
垢版 |
2019/12/21(土) 02:39:08.36ID:0LiXcgPL
二ヵ月前に初めてプログラミングの勉強始めて
友人に勧められたからPythonから触ってTwitter API使ったwin用guiアプリ作ったけど
AIとか作るんじゃないならかなり楽やと思うけどなぁ
転職して今週から働きだしてJava触ってるけど
個人的にはJavaのが難しいと思うわ(主にオブジェクト指向とかが)
まあ、両方楽しいし作ったアプリはオブジェクト指向使わずに書いたからコード自体は今見ると可読性悪いのがよく分かったw
0829デフォルトの名無しさん
垢版 |
2019/12/21(土) 07:22:16.03ID:V5r7QLnH
自分が落ちこぼれと認めるより、言語が悪いことにしたいよな
私を嫌う連中は私が嫌いなのではなく私の属性が嫌いなの!って騒いでるTwitterのメスガイジと似てるわ
0831デフォルトの名無しさん
垢版 |
2019/12/21(土) 09:24:29.16ID:Bl5cSZK5
C言語はポインタが鬼門。まずポインタという名称が良くなかった。アドレス変数という名称のほうがしっくりくる。
0833デフォルトの名無しさん
垢版 |
2019/12/21(土) 09:44:35.47ID:LfWR8zZ0
アドレスじゃん
0838デフォルトの名無しさん
垢版 |
2019/12/21(土) 17:26:16.34ID:/91O1xjY
;をうつとちゃんとした記法に成型してくれるって楽だわ。
C#での話だけど。

誰かVSCODEでも同じ機能をつけてくれないものか・・・。
0839デフォルトの名無しさん
垢版 |
2019/12/21(土) 17:50:40.98ID:5ArYAWFR
>>838
作るんだよ。お前が。拡張機能を。
あくしろや俺も使ってやるんだからよ。
0843デフォルトの名無しさん
垢版 |
2019/12/22(日) 17:18:31.92ID:Ens8Pa2w
心理系の研究で2Dカードゲームのようなアプリを作ろうとしています。
当初Unityでやるつもりだったんだけど、機械学習の勉強のためPython学んだら、
Pygameでやるのもありかと思い始めた。

トランプのような2DカードゲームつくるならPythonとUnityどちらがおすすめですか?
0848デフォルトの名無しさん
垢版 |
2019/12/22(日) 18:04:31.25ID:Ens8Pa2w
>>847
ありがとうございます。
現時点ではUnityのほうが得意なのですが、
アプリからデータ取得して統計処理、機械学習まですることを考えると、
Pythonで統一したほうが後々楽なのかな。。。
0849デフォルトの名無しさん
垢版 |
2019/12/22(日) 18:08:30.47ID:Ens8Pa2w
あと、スレタイどおりくだらない質問で申し訳ないのですが、
C#アプリで取得したデータをpythonで統計分析しようとしているのですが、
CSVファイルにデータを保存するとき

100件のデータを全て一つのファイルに保存。
100個のファイルを作製して1件1ファイルに保存。

のどちらがいいのでしょう?
1件のデータには実験環境等ながいDescriptionデータがついてくるので、
1ファイルだとデータの切り出しがめんどくさいかなと思っているのですが。
0850デフォルトの名無しさん
垢版 |
2019/12/22(日) 18:16:24.65ID:buP4BnNs
>>846
そのゲームを誰にどうやってやってもらうかとか
結果をどう収集すべきかとか
そういうの考えてる?
0851デフォルトの名無しさん
垢版 |
2019/12/22(日) 18:51:55.19ID:Ens8Pa2w
>>850
そのへんは考えてるのですが、質問の仕方が良くなかったですね。

***実験条件データ***
年齢:
性別:
特性A:
特性B:


***配列データ***
時間 回数 色 〜
0.11 3 R 〜
0.20 1 B 〜

みたいなデータが100件ぐらい1ファイルに記述したとして、
をpandasで配列データだけ切り出してくるってかんたんにできるものでしょうか?
0853デフォルトの名無しさん
垢版 |
2019/12/22(日) 19:15:06.28ID:OE5DN1cz
pygameって3?が頓挫して別のに開発リソースまわってるんじゃなかったっけ?

あとcsvはデータ形式によるから具体的なカタチがわからないとなんとも…
0854デフォルトの名無しさん
垢版 |
2019/12/22(日) 19:59:30.18ID:u+b66RrE
>>851
まず、データだけを抽出する、コンバーターを作る!

そのためには、まず、データだけを抽出しやすいように、
よく考えて作っておかなければならない

JSON とか。
他には、XML, YAML もある

データとデータ以外の切れ目が、分かるようになってれば良いけど

まあ、ファイルを分割している方が簡単で、
後でファイルが増えた時に、融通が利く
0855デフォルトの名無しさん
垢版 |
2019/12/22(日) 20:28:35.39ID:MAO/zmGQ
>>848
ゲームはUnity、データ処理はPythonってのがいいよ
どうせゲームの記録は一旦保存して、後で処理するのだから、
ゲームを作るのに得意な言語、データの処理に得意な言語で使い分けたほうが良い。
一つにまとめる必要があるのは、アプリケーションパッケージとして売ったり誰かに納品したりする必要があるときだけだと思う。
0856デフォルトの名無しさん
垢版 |
2019/12/22(日) 20:33:44.52ID:MAO/zmGQ
>>849 >>851
見逃したけど、
100条件なら100ファイルの方が取り扱いが簡単だよ。1ファイルにするメリットはないと思う。
1000を超えてくるとOSの方での取り扱いが面倒になってきたりするけど。

1ファイルにする場合、条件データと配列データを切り出すのはPandasでも出来るけど、素のPythonでまず切り分けておいて、
切り出したCSV部分をPandasに渡すのが普通かな。
0857デフォルトの名無しさん
垢版 |
2019/12/22(日) 22:03:29.64ID:Ens8Pa2w
>>853
情報ありがとう。
開発終了してるし、後継のライブラリもなんか評判良くないね。

ゲーム部分は素直にUnityで開発します。
0858デフォルトの名無しさん
垢版 |
2019/12/22(日) 22:07:05.30ID:Ens8Pa2w
みなさんいろいろありがとうございます。
ファイル分割して、データ統合するコンバータを作るのが良さそうですね。
少し勉強が必要そうだけど、方向が見えてきました。
ありがとう。
0859デフォルトの名無しさん
垢版 |
2019/12/22(日) 22:08:24.35ID:Ens8Pa2w
>>855
シンプルにUnityからテキストファイルに書き出して、
パイソンでデータ処理するようにします。

Unityからパイソンのファイルを実行するだけなら、自分でもすぐできそうだし。
0860デフォルトの名無しさん
垢版 |
2019/12/23(月) 00:46:17.73ID:i+2w2qhs
本当にくだらないんだけど、
風俗板とこのスレに常駐すると
パイソンがパイパンに見えてくるな。
0861デフォルトの名無しさん
垢版 |
2019/12/23(月) 02:12:53.28ID:Z89NhxHR
test_str = 'aaaisaisaihuursstestiisaojyewysa'
というような文字列があったときに
文字列の中に'test'が含まれるかどうかの判定ってどうすればよいですか?
先頭でも末尾でも中間でもどこに含まれていても、print('含まれてるよ')と表示したいです。
0863デフォルトの名無しさん
垢版 |
2019/12/23(月) 08:50:45.33ID:G1ER7e+F
>>861
test_str = 'aaaisaisaihuursstestiisaojyewysa'
if 'test' in test_str :
  print('含まれてるよ')
else:
  print('無いよ')
0865デフォルトの名無しさん
垢版 |
2019/12/23(月) 15:25:25.14ID:sEnpgkKc
>>835-836
うbyはidが偶数か奇数かでも動作が違う
0866デフォルトの名無しさん
垢版 |
2019/12/23(月) 17:05:29.34ID:Z89NhxHR
>>862>>863
ありがとうございます!
0868デフォルトの名無しさん
垢版 |
2019/12/23(月) 20:16:11.23ID:Pi1/7Ubv
943
半島人は長い歴史で虐待され続けたため、人間不信に陥っており、
又医学的には拷問を受けたため、遺伝的に脳の前頭葉(脳の30%の部分)が傷ついて萎縮していると判明しています
だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です
今後前頭葉を拡張復元していくことがよい結果を生むことになると思います
アメリカを中心に、高気圧酸素治療法というのがあります
カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です
損傷した脳の復元にかなり効果があることが、わかっていています


284
そこで提案だ
先ほど述べた、Paul Harch 医師達がやっているような、高気圧酸素治療(HBOT)の技術を生かしてみたら、いかがかな
つまり、代々前頭葉萎縮で悩んでいる半島人達の脳に、この治療法を応用するのだ
酸素を効率的に沢山供給することで、エデンちゃんの萎縮していた脳がほぼ通常に広がって戻ったのだから、
うまく考えて根よくやれば、半島人達の遺伝的に萎縮した前頭葉をふくらませられるかもしれない
そうしたら、彼らに失われていた人間的な感情も、わきやすく、育みやすくなるというものだ
半島人も他の民族と同じように気持ちが安定し、前向きになり、責任を持って自分の国作りをするようになるだろう
他に良い方法があればそれでもよいのだがね、1つの案として提示しておく
全世界の皆さんは、真剣に考えてやってほしい
特に、脳科学の研究者達はね
0869デフォルトの名無しさん
垢版 |
2019/12/23(月) 20:16:37.34ID:Pi1/7Ubv
276
その方法というのは、

『高気圧酸素治療(HBOT)』と言う

縦長のカプセルの中に患者が仰向けに寝ていて、カプセル内に高濃度の酸素を沢山満たし、吸い込ませ血管に送り込む
又、その際に高めた気圧で酸素を濃縮して、血管に溶け込みやすくする、という仕組みだ
これにより女児は損傷して萎縮していた脳が、酸素の補給により急激に回復し始め、まもなく感情を表し言葉を発したり、母を認識し以前の記憶がよみがえった
又自分で食べられるようになり、運動能力も徐々につき、驚異的な速さで機能が回復して行ったのだ
五才になった今では、多少歩く時に平衡感覚がまだ足りなくて、左右にぐらつくのを矯正中だが、ほぼ普通に元気に歩き、遊べるようになった


278
私が言いたいのは、これを応用できるのではないかということだ

この女の子、エデン・カールソンちゃんを治療したのは、ルイジアナ州立大学医学部のPaul Harch医師だ
彼は、エデンちゃんに主に高気圧酸素治療を行い、1回45分、週5日、計40回で終了した
治療を始めて10回目で、ほぼ正常に見えるほどになったという
その後も40回(8週間か)まで治療を続け、最終的にMRI検査では、エデンちゃんの萎縮してすき間のあった脳が、ほぼ完全に回復していた
脳の回復が速い幼児だからということも幸いしたが、
最近では急性脳損傷のある成人でも効果があることがわかってきた
成人にHBOTを1回実施しただけでも、脳の組織回復に必要な複数の遺伝子の活性に変化が見られたという
(日本では、病院で脳梗塞の治療等に使われている)
0870デフォルトの名無しさん
垢版 |
2019/12/23(月) 20:16:54.72ID:Pi1/7Ubv
280
朝鮮半島民というのは、医学的に研究された結果、
昔から先祖代々貴族等に虐待や拷問を受けてきたために、おびえて脳の前頭葉(脳の30%を占める)に沢山の傷が見られ、そこの部分が萎縮しているそうだ
前頭葉の前半部は、思考、自発性、感情、性格、理性等を司る

前頭葉が損なわれるとどうなるか
例えば、
忘れっぽい
思いつきで動き、不注意
自発性がなく、すぐ人を頼る
大変おしゃべりか、反対に抑うつ的
すぐ怒ったり笑ったり、感情を爆発させる
人を思いやるのが苦手
危険に鈍感になる
規則を守らない
1つのことにこだわり、同時に2つのことができない
過食や浪費

又、もしもその一部である眼窩前頭皮質が損傷すると、
過度に悪態をつく
性欲過多
社会的対話の欠如
共感能力の欠如
アルコール、薬物の摂取過多
等が見られるという

どれも困ったことだ
必ず全てが現れるわけではないし、個人差もあるだろうが

943
半島人は長い歴史で虐待され続けたため、人間不信に陥っており、
又医学的には拷問を受けたため、遺伝的に脳の前頭葉(脳の30%の部分)が傷ついて萎縮していると判明しています
だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です
今後前頭葉を拡張復元していくことがよい結果を生むことになると思います
アメリカを中心に、高気圧酸素治療法というのがあります
カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です
損傷した脳の復元にかなり効果があることが、わかっていています
0871デフォルトの名無しさん
垢版 |
2019/12/24(火) 11:21:49.38ID:DWLgg12E
pythonにテキストファイルでデータを渡して統計処理しようとして、
初めて整然表現というものを学びました。
0872デフォルトの名無しさん
垢版 |
2019/12/24(火) 11:25:36.07ID:DWLgg12E
実験情報

氏名:
性別:
年齢:
実験日時:
実験場所:
実験タイプ:

実験データ
時刻 X Y 色
002 20 14 b


というデータで今まで実験情報と実験データを一つのファイルに記述していたのですが、
SatouTarou20191224DESCR.txt
SatouTarou20191224DATA.csv
と2つのファイルに分けて記述するべきなのでしょうか?
0873デフォルトの名無しさん
垢版 |
2019/12/24(火) 11:34:40.49ID:oSAz7Duc
Philip N. Kleinという人の書いたベクトルを表すクラスに、以下の記述があります。

__add__ = add

左辺はインターネットで調べた結果、特殊メソッドであることが分かりました。

右辺の「add」は一体なんなんでしょうか?

そして、特殊メソッドである「__add__」を定義せずに、「__add__ = add」と代入していますが、これは文法的にどういうことなのでしょうか?
0874デフォルトの名無しさん
垢版 |
2019/12/24(火) 11:40:09.88ID:DWLgg12E
氏名 性別 年齢 ・・・ 時刻  X  Y 色
Sato Tarou 21     002 20 14 B
                004 22 10 R
               010  1  9  Y

みたいに一つのファイルのほうがいいのかな。
実験条件のデータは項目ひとつに1データでみづらいけど、
これがコンピュータにとって扱いやすい整然データということでしょうか?
0875デフォルトの名無しさん
垢版 |
2019/12/24(火) 12:06:36.04ID:oSAz7Duc
>>873

def add(u, v):

class Vec:
__add__ = add

となっています。

これはクラス Vec の外で定義された「add」と同じ関数として「__add__」を定義するという意味ですか?
0876デフォルトの名無しさん
垢版 |
2019/12/24(火) 12:16:14.86ID:Ww2BU2Ri
実行ファイルのあるディレクトリのパスを取得するのに
os.path.dirname(sys.argv[0])
という記述があるのですが
sys.argv[0]というのは何故必要なんでしょうか?

また、その1つ上のディレクトリのパスを取得するにはどうしたら良いですか?
0877デフォルトの名無しさん
垢版 |
2019/12/24(火) 12:35:53.65ID:3XzgnZW7
>>873-875
add と言う名前から想像すると、加算演算子「+」の再定義(オーバーライド・上書き)かも

例えば、Ruby で、カスタムクラスA を定義して、そのインスタンス同士を足す際、

class A
end

a_1 = A.new
a_2 = A.new

p a_1 + a_2 #=> エラー!

クラスA には、+演算子(メソッド)は、存在しないというエラーになる。
そこで、クラスA に、+演算子を再定義すると、好きな処理ができる。
a_1 + a_2 の場合、レシーバー(self)は、a_1で、other は、a_2 を表す

def +(other)
p self, other
end
0878デフォルトの名無しさん
垢版 |
2019/12/24(火) 12:41:33.48ID:8/3Ibfsl
>>876
sys.argv[0]が実行ファイルそのもの。
os.path.dirname(f)はfのディレクトリ。
os.path.dirname(os.path.dirname(f))でさらに一つ上の階層。
sys.argv[0]の代わりにos.path.abspath(__file__)も使える。

python 3.4以降?なら下の様な方法でも。
from pathlib import Path
Path(os.path.abspath(__file__)).parent.parent
0879デフォルトの名無しさん
垢版 |
2019/12/24(火) 13:02:43.62ID:Ww2BU2Ri
>>878
ありがとうございます!
0880デフォルトの名無しさん
垢版 |
2019/12/24(火) 13:07:42.57ID:3XzgnZW7
>>876
Ruby では、シェルで「ruby オプション script.rb 引数」と入力するけど、
このスクリプトファイル名は、$0 という変数で参照できる

引数部分が、ARGV の[ 0 ]から順番に参照できる。
ARGV[ 0 ]には、スクリプトファイル名が入ってこない

そこが、Python とは異なる!

親のディレクトリは、parent で、祖父なら、parent.parent で。
たぶん、python にも、ファイルパスを扱うモジュールがあるはず

require "pathname"

path = Pathname("foo/bar") # 相対パス
path.parent # => #<Pathname:foo>
path.parent.parent # => #<Pathname:.>
0881デフォルトの名無しさん
垢版 |
2019/12/24(火) 15:24:57.39ID:L1tHoweE
ふーん帰っていいよ
0885デフォルトの名無しさん
垢版 |
2019/12/24(火) 17:46:49.50ID:9irKuexe
>>872
RDBであれば別のテーブルで管理すべき内容

ただ一連の質問を見る限り他人がメンテする必要性が低そうなので1ファイルの場合と2ファイルにした場合のメリット・デメリットを考えてみて好きに決めればいいと思う

ファイルの分割に関係なく実験情報と実験データの1つの組をユニークに識別できるIDを定義しておくのが無難
0887デフォルトの名無しさん
垢版 |
2019/12/24(火) 18:15:54.74ID:WqUdRB3h
人名単位のcsvに実験データを追記していく
必要なら名簿を作成してI/Oを平易にする

これではいかんのけ?
0888デフォルトの名無しさん
垢版 |
2019/12/24(火) 18:31:25.90ID:mGB04tXH
日本語ファイル名は災いの元なので、学籍番号やローマ字表記などに変えるべき。
0889デフォルトの名無しさん
垢版 |
2019/12/24(火) 19:46:37.28ID:CDAmWs4U
日本語かどうかよりはファイルシステムでファイル名としては取り扱えない文字かどうかを気にした方が良いような
まあ、結果としてアルファベットと数字とハイフン、アンダースコアにしておくのが無難だという結論になるけれど
0890デフォルトの名無しさん
垢版 |
2019/12/24(火) 19:59:36.01ID:l0GCh4fC
>>886
主キーで管理して実験情報テーブルと実験データテーブルを別個に作るということですか。なるほど。
0891デフォルトの名無しさん
垢版 |
2019/12/24(火) 20:01:19.05ID:l0GCh4fC
ってアクセスでならできるけど、パイソンでRDB的なことってできるんでしたっけ?
0894デフォルトの名無しさん
垢版 |
2019/12/24(火) 20:12:16.08ID:l0GCh4fC
あああ、確かに100件以上の実験データを扱うことを考えるとDBにデータ移行できるようにした方が良いですね。盲点だった。
0895デフォルトの名無しさん
垢版 |
2019/12/24(火) 20:27:01.45ID:s2lutymo
>>407にもある通り数億とか数千万のオーダーを考えるのは普通
ファイルでも数万は簡単に行く
盲点でも何でもない
0896デフォルトの名無しさん
垢版 |
2019/12/24(火) 21:24:52.74ID:r8fNCPuj
参照系なら必ずしも正規形にこだわる必要もないよ。
統計処理はjoinされた形でやるわけだろうし。
0897デフォルトの名無しさん
垢版 |
2019/12/24(火) 21:43:30.63ID:9irKuexe
>>892
その3つで一意性を完全に保証できる前提ならいいんだけど
同じ人が複数タイプの実験を1日で実施したりすれば対応できなくなるよ

一意性を保証できない状況が発生しうるなら
識別IDに人間の見やすさのための情報を付加する形がいいかも

0011228_SatoTaro_20191224.csv
0011235_SatoTaro_20191224.csv
0898デフォルトの名無しさん
垢版 |
2019/12/25(水) 08:33:26.59ID:iqbdwPlo
>>897
スタンドアロンで別施設でデータ取得も考えると
年月日_実験開始時刻_氏名_生年月日
ですかね。
ファイル名は長いですが、
人間が判別するときもこれらのデータがあるとわかりやすいし。


20191224_120122_SatouTarou_19820912

ファイル名長いな・・・。
0899デフォルトの名無しさん
垢版 |
2019/12/25(水) 09:08:39.56ID:iqbdwPlo
正規形勉強してきました。
アクセス使ってたけど主キーとかユニークナンバーとしか理解してなかった。。。
0900デフォルトの名無しさん
垢版 |
2019/12/25(水) 09:12:06.97ID:iqbdwPlo
>>874
は第一正規形ってことですね。
python上で第三正規形のデータ取り扱うってどうすればいいんだろう???

pythonやRで統計処理をするときは、
第一正規形であれば問題なさそうな気がするんですが、
間違っていますでしょうか?
0901デフォルトの名無しさん
垢版 |
2019/12/25(水) 11:07:21.89ID:2sisjRdM
ちょっと論文読んできました。整然データ=第三正規形ではないんだね。

1. 実験情報と実験データでcsvファイルを分ける
2. 1のファイルから要約データを計算し、要約データファイルに実験情報と要約データを順次上書き
3. 要約データを実験条件で分割して有意差検定する

が良いのかなぁ。
0902デフォルトの名無しさん
垢版 |
2019/12/25(水) 11:33:04.71ID:MC7jTCCf
>>974
間違ってない。
第三正規形は、更新時の書き込み箇所を一本化したり、保守性を上げる(スキーマ改変の範囲を限定する)というようなことが目的だから。
参照オンリーの場合は、むしろパフォーマンス面でマイナスになったりする。
けれど、非正規化するかどうかは別問題。
マテビューなどの解決策もあるからね。
0903デフォルトの名無しさん
垢版 |
2019/12/25(水) 12:01:08.00ID:ZI663GBY
Ruby on Rails では、
多重度、1 : N は、has_mamy, belongs_to とか

参照、references
外部キー、foreign_key
0906デフォルトの名無しさん
垢版 |
2019/12/25(水) 12:40:43.60ID:wOKia0YU
>>892
生年月日みたいな個人情報入れるとか大丈夫?
てか企業とか学校なら社員番号とか学籍番号とかあるんじゃないの?
0908デフォルトの名無しさん
垢版 |
2019/12/25(水) 17:05:31.75ID:2ymVLaRc
exe + dll で良いならあるよ
0909デフォルトの名無しさん
垢版 |
2019/12/25(水) 17:18:42.78ID:urIrQtmF
Python習いたての初心者です。

Pandasでデータフレーム作って
Scikitlearnで標準化をする際に
一旦数字のみ抽出して、標準化、
またデータフレーム化という手順で習ったのですが
回りくどい気がしてなりません。

Pandasのまま標準化するには
計算コード直入力するしかないものですか?

理解不足があったらすみません。
0910デフォルトの名無しさん
垢版 |
2019/12/25(水) 17:41:48.67ID:owbFz3od
>>891
実験データをSQLiteとかで管理するのはお勧めできない
間違ってデータ飛ばしたりとかがSQLに慣れてないころには容易に起こる
データの結合とかはpandasでSQLで出来ることはほぼ同レベルの手間でCSVファイルに対してできるから、とにかくCSVファイルに保存していく形にするのが良いと思う
実務ではないのだから、最悪ちょっと機械的な手作業を頑張ったらなんとかなりそうという、見通しが立っている状態を維持し続けるべきだと思う
SQLとかRDBMSにめちゃくちゃ慣れていて、pandasなんか覚えたくないよというのならpandasじゃなくて良いけど

あと、データをあれこれするときはjupyter notebookを使うと履歴が残せるし、うまくいかないところだけ試行錯誤でコードの修正がしやすいので本当にオススメ
0911デフォルトの名無しさん
垢版 |
2019/12/25(水) 18:02:29.31ID:iqbdwPlo
>>902
ありがとう。
>>901
のパターンでやってみる。
データ構造どうするかって、きちんとしておかないと後で地獄見るってよく勉強になりました。
0912デフォルトの名無しさん
垢版 |
2019/12/25(水) 18:13:59.86ID:iqbdwPlo
>>910
pandasでデータ成型(スクレイピングって言うのかな?)
も学ばなきゃ。

新しく学ばなきゃいけないことたくさんだけど、
プログラミングは試行錯誤できることと、
お金があまりかからないのがいいことですね。
がんばります。
0914デフォルトの名無しさん
垢版 |
2019/12/25(水) 21:34:44.21ID:qDbmzL4T
>>900
>pythonやRで統計処理をするときは、第一正規形であれば問題なさそうな気がするんですが、間違っていますでしょうか?
あってる間違ってるの話ではなく整然データにしておけばデータをこねくり回すときに楽になるよって話
現状困ってないなら無理して整然化する必要はないと思う

>>901
論文にも明記されてるけど整然データ(=tidy data)は第三正規形と基本同じだよ
原典か日本語訳を読むといいと思う
https://vita.had.co.nz/papers/tidy-data.pdf

>>902
一般的に特定の非正規形は特定の分析用途には使いやすくても
違う観点で分析しようとすると正規形からデータ変形するよりも多くの手間がかかる
参照オンリーの場合でもデータの利用方法が定型化していない場合は正規形から考えるメリットは大きい

特にRDBで分析用途のDBを用意する場合は参照オンリーでも正規形から考えとかないと手間が異常に増える
0915デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:03:00.14ID:hPmVmQm/
質問でつ
このコードの4行目で print(combsを表示) しちゃうと
最後の return ta_combs の中身が空になるんだけど 何で?

import itertools
def twoSum(nums, target):
・・・combs = itertools.combinations(nums, 2)
・・・#print(list(combs))
・・・ta_combs = set()
・・・for comb in combs:
・・・・・if sum(comb) == target:
・・・・・・・ta_combs.add(comb)
・・・return ta_combs

print(twoSum((10, 20, 10, 40, 50, 60, 70), 50 ))
0916デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:05:12.83ID:ycC2pkbE
bigtable使ってるから正規化なんてないわ。
SQLもシンプルだし。
速度は言わずもがな。
0917デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:10:39.36ID:rtgRmFxx
複数の表をjoinするのとそれらの直積からselect/uniqueをとるのは等価だから
非正規形だと手間がかかるってのは当たらないと思う。
パフォーマンスや容量は別として、必要な変数を選んでuniqueをとるだけという
操作に統一できるから、いちいちどう結合するか考えるより手間が省けるくらい。
0918デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:12:36.33ID:7FLhFvMk
以下のようなテスト用の記述があるとします。
vecというモジュールからクラスVecをインポートしています。
vecモジュール内でも同様のテスト用の記述があるとします。
↓のコードを実行した場合、vec内のテストも行ってしまうようです。
vec内のテストは完了しているので、テストされないようにすることはできるのでしょうか?


from vec import Vec



"""
Returns the value of entry k in M, where k is a 2-tuple
>>> M = Mat(({1,3,5}, {'a'}), {(1,'a'):4, (5,'a'): 2})
>>> M[1,'a']
4
>>> M[3,'a']
0
"""


if __name__ == '__main__':
import doctest
doctest.testmod()
0919デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:34:33.78ID:qDbmzL4T
>>915
list(combs)でイテレータを消費してるから
for comb in combs:のところではもう次のアイテムはない
0920デフォルトの名無しさん
垢版 |
2019/12/25(水) 22:37:11.85ID:owbFz3od
>>917
一理ある
DBを正規形にしておくのは必ず非正規化されたデータが正規形の直積から取り出せて、不整合なデータはありませんという保証を担保する側面があるってことだね
0921デフォルトの名無しさん
垢版 |
2019/12/25(水) 23:00:58.32ID:qDbmzL4T
>>917
それは一番単純なパターンで
キレイに非正規化されてるケースだけにしか当てはまらないよ
0922デフォルトの名無しさん
垢版 |
2019/12/25(水) 23:08:03.95ID:hPmVmQm/
>>919
アドバイス ありがとうございます
イテレータを理解してなかった

import copy 追加して
a = copy.copy(combs) を print の前に入れたら上手くいきました
0923デフォルトの名無しさん
垢版 |
2019/12/25(水) 23:17:51.74ID:rtgRmFxx
キレイじゃない非正規化ってどういうのを想定してるのかな。
データとして等価じゃないならそりゃまずいが。
0924デフォルトの名無しさん
垢版 |
2019/12/26(木) 10:44:02.91ID:g3TV29VW
そもそも第一正規形以外の正規形って更新時異常を避けるために考えられたものであって
検索のことは考慮外なわけで。
0925デフォルトの名無しさん
垢版 |
2019/12/26(木) 11:09:55.46ID:Wx+k6Oqq
>>924
そりゃjoinのパフォーマンスなんかDBMSの実装の問題なんだから考慮外で当たり前だろう
レイヤの異なる関心事をごっちゃにしている典型例だな
0926デフォルトの名無しさん
垢版 |
2019/12/26(木) 14:05:50.96ID:g3TV29VW
パフォーマンスの話なんてどこから出てきたのやら。

>レイヤの異なる関心事をごっちゃにしている典型例だな

そうだね。
0927907
垢版 |
2019/12/26(木) 14:45:46.65ID:FL6xOFYS
すなおにpyinstallerのみ3.7で動かすことにしようと思います

オフライン環境にインストールしたかったので、先にオンライン環境で
pip download -d <保存先> --no-binary :all: pyinstaller
で関係ファイルをすべてDLし、オフライン環境にてpip installを試みました

ところがそれぞれのファイルをインストールし、
最後にPyInstaller-3.5.tar.gzをpip installするところでエラーになってしまいます

エラー内容を見るに、PyInstaller-3.5.tar.gzのpip installの中に
setuptoolsのオンラインでのpip installが含まれているように見えます
もちろんsetuptoolsは先にpip installしているにも関わらずです
何か方法ありますでしょうか

エラーメッセージ↓
ERROR: Command errored out with exit status 1:
command: <Python.exeのパス> <pipのパス> install --ignore-installed --no-user --prefix <overlayのパス> --no-warn-script-location --no-bina
ry :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=40.8.0
' wheel
cwd: None
Complete output (8 lines):
Collecting setuptools>=40.8.0
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, st
atus=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3
.connection.VerifiedHTTPSConnection object at 0x02F322D0>: Failed to establish a
new connection: [Errno 11004] getaddrinfo failed')': /simple/setuptools/
(以下繰り返し)
0928デフォルトの名無しさん
垢版 |
2019/12/26(木) 15:57:44.27ID:vMTIIs6I
自分もひと月ほど前にオフラインでのpip installをやろうとして
行き詰まった
pipは何かとPyPIに接続しにいくからね

結局linuxサーバでプロキシーサーバーとファイヤーウォールを建てて
オンラインでできるようにしてからインストールしたよ
0930907
垢版 |
2019/12/27(金) 18:52:51.35ID:Qsz5HXwu
.tar.gz展開して中のsetup.py直接起動させたらいけました
自己解決ですみません
0931デフォルトの名無しさん
垢版 |
2019/12/28(土) 02:08:30.85ID:RMes1jy6
こういうデータがあります 外側のカッコはタプルでも可 要素は重複してないので集合でも可
data = [00, 01, 10, 11, 12, 22]
要素から 1桁目が0のみ抽出・・00,01 2桁目が1のみ抽出・・01,11 という処理をしたいです
今はforで回し正規表現で判断してるのですが、簡単に記述出来るモジュールのような物はあるんでしょうか?
0932デフォルトの名無しさん
垢版 |
2019/12/28(土) 02:22:55.46ID:0wxaCoE9
>>931
条件が簡単ならリスト内包表記で抽出するやり方があるけど
forで回して正規表現で検索する方が何かと汎用性があると思うよ

左1桁めが0のデータを抜き出す場合
[ x for x in data if x[0] == '0' ]

左2桁めが1のデータを抜き出す場合
[ x for x in data if x[1] == '1' ]
0933デフォルトの名無しさん
垢版 |
2019/12/28(土) 02:24:08.22ID:CljHkVQA
rubyだと?
0934デフォルトの名無しさん
垢版 |
2019/12/28(土) 02:30:35.60ID:r7V1DpIq
>>931
十分簡単な記述だと思うけど、俺ならタダの数値計算にする。
切り捨てで1
10倍して10で割ったあまりが1
0937931
垢版 |
2019/12/28(土) 08:39:10.00ID:RMes1jy6
要素は文字列でした 間違ってました
data = ["00", "01", "10", "11", "12", "22"]

>>932
"2"を抽出時も簡単ですね 全く思いつかなかったです 
3行の記述が1行に収まるので、こちらでいきたいと思います

>>934
10倍後10で割る方法もレスされて思い出しました

>>932  >>934 ありがとうございました
0938デフォルトの名無しさん
垢版 |
2019/12/28(土) 10:40:09.14ID:glKwkKz6
>>931
ある言語では

p data.select{|x| x[0] == '0'}
0939デフォルトの名無しさん
垢版 |
2019/12/28(土) 11:22:22.26ID:b3ohKRMf
[ x for x in data if re.search(r'1$', x)]
[ x for x in data if re.search(r'1.$', x)]

とある言語では
data.filter{|x| x.match? /1$/}
data.filter{|x| x.match? /1.$/}

またとある言語では
data.filter(x=> /1$/.test(x))
data.filter(x=> /1.$/.test(x))
0940デフォルトの名無しさん
垢版 |
2019/12/28(土) 12:02:33.66ID:vnZXJluZ
Ruby では、select でフィルターする

data = %w(00 01 10 11 12 22)

p res_1 = data.select{ |x| x[ 0 ] == '0' }
p res_2 = data.select{ |x| x[ 1 ] == '1' }

出力
["00", "01"]
["01", "11"]
0941デフォルトの名無しさん
垢版 |
2019/12/28(土) 13:03:02.30ID:CljHkVQA
♪───O(≧∇≦)Oキタ────♪
0942デフォルトの名無しさん
垢版 |
2019/12/28(土) 15:28:51.07ID:+sYlgNhA
>>929
ハゲは北神雄太。
0943931
垢版 |
2019/12/28(土) 16:42:14.01ID:RMes1jy6
>>939
別の正規表現で書いてました (r'1$', x) (r'1.$', x) の方が簡単なので使わせて頂きます

参考にします >>938 >>940
0944デフォルトの名無しさん
垢版 |
2019/12/28(土) 16:48:18.35ID:9o1guVgp
Macで、このプログラムをPyinstallerで実行ファイルにすると動きません。
MacってPythonと相性悪いんでしょうか?

import os
import sys
path_w = os.path.dirname(sys.argv[0])+'/testWrite.txt'
with open(path_w, mode='w') as f:
f.write('testWrite')
0945デフォルトの名無しさん
垢版 |
2019/12/28(土) 16:51:10.81ID:EYxHjYjG
>>944
Macには最初からPython2.7系が入っているので
3系を、ケンカしないようにうまいことインスコするのが基本。

でもってpyinstallerって
Windows用じゃなかったっけっか
0946デフォルトの名無しさん
垢版 |
2019/12/28(土) 17:25:15.16ID:9o1guVgp
>>945
いいえ、Pyinstaller自体はWindows/Mac両方で動くように設計されているもののようで
Pyinstallerでアプリケーション化した後もGUIの作成やソケット通信などの部分は正常に動くのですが
ファイルの参照やファイルを作成のようなコマンドが内部に含まれていると何故か動かなくて困っています。
0947デフォルトの名無しさん
垢版 |
2019/12/28(土) 17:51:26.10ID:EYxHjYjG
>>946
pathの書き方がLinux系とWin系で異なるから とかもないなら

Macの「システム設定」てきな歯車アイコンの奥底にある
「出どころがあやしいアプリは動かないようにブロックする」デフォルト設定のせいじゃなかろか
(この機能の正式名称 ルートレス とかなんとかいったような)
0949デフォルトの名無しさん
垢版 |
2019/12/28(土) 18:48:26.90ID:9o1guVgp
>>948
はい、ターミナル(正確にはAnaconda Prompt)から、素の状態のPythonを実行すると動きます。
しかし、Pyinstallerを使ってアプリ化することによってファイル作成コマンドが使えなくなります。
Windowsの方ではPyinstallerを使っても正常に動きます。

>>947さんの指摘が近そうな気がするので調べてみます。
0950デフォルトの名無しさん
垢版 |
2019/12/28(土) 18:53:49.75ID:9o1guVgp
あと、もう1つ情報を付け加えると、PyinstallerによってMacアプリ化すると
アプリが作成されるのと同時に、サブフォルダに「Unix実行ファイル」というのも作成されています。
何故かアプリでは動かないのに、サブフォルダ内の「Unix実行ファイル」の方をクリックするとファイル生成などのコマンドも正常に動いています。
0952デフォルトの名無しさん
垢版 |
2019/12/28(土) 22:27:10.71ID:WD8h4qtV
>>950
sys.argv[0]じゃなくて絶対パス(/Users/hogehoge/Desktop/testWrite.txt)で出来るのか試してみて、
出来るなら、print(sys.argv[0])で何が違うのか確認するべき
0955デフォルトの名無しさん
垢版 |
2019/12/29(日) 07:36:42.64ID:qv2BWJ9R
>>952
プリントして表示したらパスが分かりました
ありがとうございました
0957デフォルトの名無しさん
垢版 |
2019/12/29(日) 12:26:24.81ID:kibmeFOr
そういうライブラリがあるか聞いてるわけではなくて?
0958デフォルトの名無しさん
垢版 |
2019/12/29(日) 13:42:27.55ID:49gQrlWf

m3SXtna
61x65 96dpi 24bits


o9qwWuG
511x509 96dpi 24bits

横 8.38倍
縦 7.83倍

なんかきもい
0959デフォルトの名無しさん
垢版 |
2019/12/29(日) 13:43:04.58ID:49gQrlWf
品質はともかく出来るか出来ないかで言えば出来るだろう
元のより拡大後の方が綺麗に見えるっていう加工にすぎない
0961デフォルトの名無しさん
垢版 |
2019/12/29(日) 14:04:35.53ID:9RsW793u
>>960
そういうレベルの拡大画質ではないかと

スレの師匠方でも「理論としては可能」というくらいだとかなり難しいという事ですね
0963デフォルトの名無しさん
垢版 |
2019/12/29(日) 14:24:25.04ID:49gQrlWf
画質は落ちてても人間には綺麗に見えるフィルタなんていくらでもある
「画質」とか「綺麗」とかの定義と客観的定量的指標が必要
0964デフォルトの名無しさん
垢版 |
2019/12/29(日) 14:34:23.11ID:Zt6NZoPC
>>961
そういうレベルw
モデルを顔写真用にトレーニングせずにそのまま使ってもそりゃダメだろ
GANs使ってアイコラ自動生成するアプリと同じ
0966デフォルトの名無しさん
垢版 |
2019/12/29(日) 16:59:36.46ID:krz96WXE
pygameのmusicでmp3を流すと、ファイルによってはオクターブが下がったり超低音のくぐもった音で再生されてしまいます。
vlcプレイヤーなどで再生すると同ファイルは正常に再生できるのですが・・・。
さらに後者の現象の後はdouble free or curruption(out)というエラーが発生しています。こんな現象に遭った方いらっしゃいますか?
0967デフォルトの名無しさん
垢版 |
2019/12/29(日) 17:14:09.99ID:5+fH2orr
ゲーム作るならどうせ遅かれ早かれPythonは卒業することになるんだから、
時間を無駄にする前にそろそろunityにでも乗り換えたらどうかな
0968デフォルトの名無しさん
垢版 |
2019/12/29(日) 18:38:19.91ID:2GmPR76J
>>963
> 画質は落ちてても人間には綺麗に見えるフィルタなんていくらでもある
マジで?
2~3紹介してくれ
0969デフォルトの名無しさん
垢版 |
2019/12/29(日) 22:57:27.79ID:qv2BWJ9R
Windowsのパスを指定するときって\を使う場合と/を使う場合がありますが
/を使うと不具合が起きるような場合ってありますか?
0970デフォルトの名無しさん
垢版 |
2019/12/30(月) 01:23:59.84ID:AcEus5TP
pipenvを最近使い始めたのですが、疑問点があります。
一度仮想環境から出たあと、pipenv shellを行い、再度仮想環境に入り直そうとすると仮想環境が作り直されます。
毎回pipenv installを行い、ライブラリをインストールしなくてはならないのでしょうか。
0971デフォルトの名無しさん
垢版 |
2019/12/30(月) 09:02:33.89ID:4+GP0CVf
>>970
pipenvはプロジェクトごとにフォルダを沸かせて管理してくれやがりますので

Linux系なら
1かいめのpipenv shellのあと
「echo $VIRTUAL_ENV」して
応答で表示されるパスを覚えとけ(ここでは仮に/Users/hoge/fooがかえってきたものとする)
あるいは(echo $VIRTUAL_ENVが反応しなかったときなども)
普段「python -m venv /Users/unko」とかでpipenvをよんでるとおもうので
そのパスをメモれ。

でもって
「export $VIRTUAL_ENV=/Users/hoge/foo」みたいに
魔法の呪文をシェル設定ファイルに書いておけ
0973デフォルトの名無しさん
垢版 |
2019/12/30(月) 09:23:57.98ID:5wgoa0WT
Pyhtonは外部ライブラリの氾濫とenv関連の乱立でダメになったね
シンプルで学習コストが低いという最大の強みが
言語本体ではなく周辺環境の学習・構築コストが著しく高くなったことで
相殺されてしまった
Guidoさんも嘆いているだろう
0974デフォルトの名無しさん
垢版 |
2019/12/30(月) 09:31:30.67ID:4+GP0CVf
>>961
きれーに拡大できる画像づくり ≒ ラスタ画像→ベクタ画像の自動変換 は
過去から現在まで
世界各国様々なやつらが
いろいろとがんがってきて
あれやそれやと販売してきはているのだが
未だ「コレダ!!!(´∀`)9 ビシッ!」という優れた製品が出てないのだ。

bmp→jpegで落ちる部分を補完するのだって
りくつはわかるが
おれたちに満足が行くクォリティの実行は
きっと不可能ではないのだろうが、
やっぱりゲキムズ
0975デフォルトの名無しさん
垢版 |
2019/12/30(月) 09:47:56.63ID:U65gHr2Q
>>970
export PIPENV_VENV_IN_PROJECT=true
をシェルの設定ファイルに書いておけば、プロジェクトのルートディレクトリに.venvという名前で仮想環境を作ってくれる
0976デフォルトの名無しさん
垢版 |
2019/12/30(月) 13:21:48.69ID:cw4EWtnb
pipenvがこれからのスタンダードになってくかと思いきや、最近はなんだかpoetryの方が良くね?って空気もあるし、かと思いきや名前忘れたけど新しい有力なパッケージマネージャが出てきたとかなんとか

どれを使えばええんや
0977デフォルトの名無しさん
垢版 |
2019/12/30(月) 14:02:48.63ID:WAqdspci
>>974
情報のエントロピー的に上限がある
それを超えるのは異世界にでも行かないと無理
0979デフォルトの名無しさん
垢版 |
2019/12/30(月) 14:42:59.25ID:g0RN7zwT
>>973
もともと環境の分離が考えられてなかったpythonの造り自体にも一因があると思うぞ。
そのあたりの古臭さは結局最後まで改善されなかった。
0981デフォルトの名無しさん
垢版 |
2019/12/30(月) 15:36:40.82ID:vvSvem59
>>980
nodeは標準でpipenv相当のパッケージマネージャが付属している
Goはコンパイラ自体がパッケージマネージャの機能を有しており、その上すべてをスタティックリンクするから実行環境にも依存しない
0982デフォルトの名無しさん
垢版 |
2019/12/30(月) 15:56:12.12ID:UTSCwLrd
Rustは
0985デフォルトの名無しさん
垢版 |
2019/12/30(月) 18:00:57.78ID:kgySNqX2
>>984
ありがとうございます。
subprocess.callというのはunixコマンドを呼び出すもので、-Rオプションを付けると開くのではなく選択状態にするだけということですね。
0986デフォルトの名無しさん
垢版 |
2019/12/30(月) 23:38:37.05ID:p3QJuMJ/
Ruby のBundler が基本!
それを真似たのが、Node.js のnpm, yarn、
PHP のComposer

つまり、恥も外聞もなく、Ruby のシステムをパクったものが勝つw

>>969
Windows 10 で、Ruby を使っているけど、/ パス区切りで、問題ない!

Dir.glob( 'C:/Users/Owner/Videos/openload/*' ) do |full_path|
処理
end
0988デフォルトの名無しさん
垢版 |
2019/12/31(火) 09:01:54.02ID:CC12AHqY
グーグルに頼んでGoのコンパイラをPython対応にしてもらうしかないだろう
バイナリにしちまえばPythonのあらゆる欠点を改善できる
0989デフォルトの名無しさん
垢版 |
2019/12/31(火) 09:55:13.97ID:6hm8iNMc
pipenvは、仮想環境を取り込んでしまったのがそもそも大間違い。
パッケージ管理だけに特化すれば良かった。
poetryは一応外せるようにはなってるね。
0990デフォルトの名無しさん
垢版 |
2019/12/31(火) 10:18:40.82ID:YPeginhU
pythonはパッケージをpythonバイナリからの相対位置で探すから、プロジェクトごとに
パッケージを分離しようとすると基本的にpythonバイナリごと丸コピーになる。
poetryってのも裏で仮想環境用意しているんじゃないかと思うが。
0992デフォルトの名無しさん
垢版 |
2019/12/31(火) 11:37:12.59ID:Ja8RsyWS
>>990
プロジェクトディレクトリからの相対パスをsys.pathに入れたければ
PYTHONPATH使えばいいんでないの?
0994デフォルトの名無しさん
垢版 |
2020/01/01(水) 18:49:14.83ID:XDdD4uFM
エラー文に表示されるハットキャレットはエラー位置を示しているのでしょうか。
0996デフォルトの名無しさん
垢版 |
2020/01/02(木) 14:54:56.28ID:m/E2OLKG
0**0
0998デフォルトの名無しさん
垢版 |
2020/01/02(木) 16:03:11.21ID:a+sObGCf
ナイス
0999デフォルトの名無しさん
垢版 |
2020/01/02(木) 16:10:53.55ID:NYIo0K4b
もっと PYTHONIOENCODING 使おう
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 78日 5時間 55分 5秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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