[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/05 16:27 / Filesize : 231 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その30



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/06/22(水) 13:29:27.28 ID:tv9kEjc6.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その29
echo.2ch.net/test/read.cgi/tech/1455766402/
関連スレ
Pythonのお勉強 Part51
peace.2ch.net/test/read.cgi/tech/1443700103/

◆関連リンク Python の Home Page
ttp://www.python.org/

◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/

◆まとめwiki
ttp://python.rdy.jp/

654 名前:デフォルトの名無しさん [2016/09/05(月) 07:12:00.56 ID:dxW+1+K+.net]
pandasで、カラム名じゃなくて「○行目に△(文字列)を含む列を取得」ってどう書きますか?

655 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 12:29:35.99 ID:QdmNQA+5.net]
>>632
知ってるかもしれないけど、この本じゃだめなの?

PythonによるWebスクレイピング
https://www.oreilly.co.jp/books/9784873117614/

656 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 12:38:32.61 ID:mpmtDfhF.net]
>>643
過疎リポジトリなら晒されたとき恥ずかしいが
メジャーになると晒されても気にならない

657 名前:デフォルトの名無しさん [2016/09/05(月) 13:18:16.40 ID:/PewDBDd.net]
きがるにいってくれるなあ。

658 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 17:00:52.58 ID:GKF9KbTm.net]
晒されるのが嫌なら公開するなって話だわ。

659 名前:デフォルトの名無しさん [2016/09/05(月) 18:34:30.95 ID:/PewDBDd.net]
それは間違いなくその通り

660 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:22:21.30 ID:4QehThkG.net]
アイコンに顔写真そのままで2chに晒すのが本人だとしたら羞恥心を思い出したらどうかと思う

661 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 21:38:18.30 ID:YiRSHAtj.net]
本人に質問せずここで質問する奴ってよっぽどのコミュ症なんだろうな

662 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 21:43:34.18 ID:fUaw1J2I.net]
本人にレスせず第三者気取ってレスする奴ってよっぽどのコミュ症なんだろうな



663 名前:デフォルトの名無しさん [2016/09/05(月) 22:02:44.93 ID:/PewDBDd.net]
類友

664 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 22:30:07.68 ID:C3pQzBul.net]
関数を作り出す関数をクロージャーと呼ぶんですか?

665 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 23:39:52.40 ID:lSPGi3pK.net]
クロージャではなく、generator だろ

666 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:16:02.96 ID:dLsOjWT1.net]
六代目中村勘九郎じゃ〜

667 名前:デフォルトの名無しさん [2016/09/06(火) 00:16:34.70 ID:NL3/cOU6.net]
クローズしてる何かを人はクロージャーと呼ぶ

668 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:19:32.30 ID:YQyoAbxm.net]
じゃ

669 名前:関数を作り出す関数は何と叫ぶんですか? []
[ここ壊れてます]

670 名前:デフォルトの名無しさん [2016/09/06(火) 00:23:19.10 ID:NL3/cOU6.net]
それはファンクションオブザファンクションだな

671 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:32:38.10 ID:YQyoAbxm.net]
ファンクション!オブ!ザ!ファーーーンクショーーーーーン!

672 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:32:39.20 ID:jPRTRi+1.net]
>>656
呼ばない
クロージャは識別子を解決するときにクロージャ自身が定義された場所の静的スコープを使うものを言う
Pythonだと関数内で定義される関数やlambda、lambda内で定義されるlambdaがクロージャになりえる

def foo():
 x = 1
 def closure(y):
  return x + y
 print(closure(10)) # => 11、closureはxをfooの静的スコープから解決した



673 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:35:40.38 ID:YQyoAbxm.net]
クローズユアクロージャー・・・ラバーズ、イェア

674 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:55:08.50 ID:epB395hO.net]
苦労者

675 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 02:08:08.26 ID:ZKRe+MIu.net]
>>660
ファクトリ(関数)とか?

676 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 02:34:01.72 ID:jPRTRi+1.net]
>>660
高階関数

677 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:43:40.50 ID:r9CpfiZJ.net]
>>659
クローザーじゃね?

678 名前:デフォルトの名無しさん [2016/09/06(火) 12:31:00.89 ID:LlqHzUJL.net]
クロージャーの事をクローザーと呼んでいたら
ちょっと指摘しにくい恥ずかしい言い間違いだぞ

679 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 16:24:21.82 ID:1inLZcJu.net]
a.pyからsubprocessでbashスクリプトを実行した時
他のプロセスからa.pyしたときにこのbashスクリプトの実行が終わってなかったら二重に実行しないようにしたいんですが
方法を教えてください

680 名前:デフォルトの名無しさん [2016/09/06(火) 18:00:07.12 ID:t1C08fjS.net]
環境(OSとPythonのバージョン)を書いた方がいい
クロスプラットフォームは非常に面倒くさい
超初心者に手が出せるレベルではない

681 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 18:07:40.92 ID:1inLZcJu.net]
linuxとpython2.7です

682 名前:デフォルトの名無しさん [2016/09/06(火) 18:46:36.20 ID:MfZbc6Jb.net]
>>670
mutex



683 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:41:31.51 ID:1XSUlqoQ.net]
>>669
> クロージャーの事をクローザーと呼んでいたら

お前はちょっと落ち着いた方がいい

ちょっと指摘しにくい恥ずかしい考え違いだぞ w

684 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 21:24:58.22 ID:95llcME0.net]
>>663
ありがとうございます
関数の中で関数を定義することで
内側の関数が外側の関数の引数や変数を使うことができるってことですかね

685 名前:デフォルトの名無しさん [2016/09/06(火) 23:05:23.07 ID:NL3/cOU6.net]
>>674
お前の方があわてんぼうだろう
俺が言いたいのは1つだけ
クローザーじゃねえ
って事だ

686 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:20:22.67 ID:iMGfxvVl.net]
>>537
あるある

687 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:40:13.37 ID:YQyoAbxm.net]
苦労者ーって何ですか?

688 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:46:12.78 ID:jPRTRi+1.net]
>>675
補足しておくと、
クロージャの中ではローカルじゃない変数は保護されていて再代入と代入演算ができない
再代入はローカル変数が作られて外側の変数が隠されるし、代入演算はエラーが発生する
この変数保護はあくまでPythonのルールなので他の言語は違う挙動かもしれない

この制限は厳しいので、
Python3から関数のクロージャではnonlocal文で変数を指定することで
ローカルじゃない変数に対する再代入や代入演算ができるようになった

689 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 04:58:48.61 ID:MZvlar21.net]
>>676
>>659 から読み直せ、あわてんぼうさん w

690 名前:デフォルトの名無しさん [2016/09/07(水) 06:09:12.82 ID:hhCwENrv.net]
>>680
あのー>>659は俺なんですけどー
どうだ?恥ずかしくなっただろう?

691 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 07:43:38.82 ID:uegLhTst.net]
>>670-673
tmpファイルなどを作って、それを書き込みで開けば、
他のプロセスが、そのファイルを開けないから、そういうのを利用するとか

それに類似した、もっと効率的なOSのロック機構(排他制御)があると思うけど、よく知らない。
セマフォ、mutex あたり?

692 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 09:01:08.97 ID:dMgwZegp.net]
mutexって廃止される機能じゃんダメダメこんなの使うな



693 名前:デフォルトの名無しさん [2016/09/08(木) 00:12:55.34 ID:WVFyyWQV.net]
はじめまして
現在matplotlibを用いたグラフの出力の勉強をしております

matplotlibを用いてplt.showを行うとそのshowのグラフを消さないと
次の処理に進まないのが仕様になっていると思うのですが
その解消法はありますでしょうか?


また上に付随してmatplotlibでreplotを行う場合どのようにすればいいでしょうか?


イメージ
plt.show(1つ目のグラフ
何かしらのグラフにおける処理(clear、グラフの再設定など
plt.show(2つ目のグラフの表示、表示されたとき1つ目のグラフが消える

このような感じなのですが
ご指何よろしくおねがいします

694 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:40:28.44 ID:RK2z8nyj.net]
threadingを使え

695 名前:デフォルトの名無しさん [2016/09/08(木) 20:05:48.36 ID:YUwQ7/9Q.net]
>>684
あります

696 名前:デフォルトの名無しさん [2016/09/08(木) 20:06:43.24 ID:YUwQ7/9Q.net]
>>684
バージョンによって違うけど
plt.pause(.01)
とか
plt.draw()

697 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 18:42:19.86 ID:enT02Ur8.net]
Pythonで統計の勉強を始めたばかりのものです
Rのexample()関数のような、あるデータセットの解析例を表示してくれるような関数はないでしょうか?

698 名前:686 mailto:sage [2016/09/10(土) 23:25:09.22 ID:enT02Ur8.net]
自己解決しました。
なさそうです。スレ汚し失礼しました。

mathesaurus.sourceforge.net/r-numpy.html

699 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 05:05:44.15 ID:LcxmXDA4.net]
探したらあるんじゃねぇの?
知らんけど

700 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 06:18:47.41 ID:VDN116gL.net]
それぞれの得意な所やればいいと思うけど

701 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 14:16:15.58 ID:lYgMQCJJ.net]
すみません、質問です
昨日Pythonをはじめたばかりで、インストールした物はAnaconda3-4.1.1-Windows-x86のみ、
環境はVista 32bitでPython 3.5.2、IDEとしてSpyder 2.3.9 を使ってみたのですが、
メニューバーからのカットとCtrl+Xのどちらも利用するとSpyder (Python?) がCrushしてしまいます (コピー&ペーストは特に問題無し)
Jupyter QtConsole ですとCtrl+Xも特に問題なく動作します
原因と対策法に心当たりのある方、ご教授いただけないでしょうか?

702 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 14:27:04.15 ID:OA9SPKwK.net]
vistaなんか窓から投げ捨てろ



703 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 14:34:14.36 ID:lYgMQCJJ.net]
>>692
そうしたいのは山々ですが…

>>692補足
次にSpyderを起動した際、Internal Consoleで以下のメッセージが表示されたりされなかったりします

This console is used to report application
internal errors and to inspect Spyder
internals with the following commands:
spy.app, spy.window, dir(spy)

Please don't use it to run your code

>>> C:\anaonda\lib\site-packages\nbformat\current.py:19: UserWarning: nbformat.current is deprecated.

- use nbformat for read/write/validate public API
- use nbformat.vX directly to composing notebooks of a particular version

""")
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\anaonda\lib\threading.py", line 914, in _bootstrap_inner
self.run()
File "C:\anaonda\lib\threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "C:\anaonda\lib\site-packages\spyderlib\spyder.py", line 2089, in start_open_files_server
self.open_files_server.bind(('127.0.0.1', port))
OSError: [WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました。

704 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:12:15.37 ID:CFhz5pc/.net]
>>694
Windowsファイアウォールやセキュリティソフトがボードを保護してないでしょうか?
一度ガードをがら空きにして起動してみると切り分けできるかもしれません

ご参考)
https://github.com/spyder-ide/spyder/issues/2441

705 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:13:15.54 ID:CFhz5pc/.net]
×ボード
○ポート

老眼か・・・

706 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:52:20.35 ID:lYgMQCJJ.net]
>>953
レスありがとうございます
Windowsファイアウォールおよびセキュリティソフトを切って実行してみましたが、結果は変わりませんでした

707 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 16:12:56.08 ID:CFhz5pc/.net]
>>697
多分上のログはクラッシュしたプロセスが残ってる内に次のプロセスを起動したためですね
見返してて思いました

事前確認)
anacondaに含まれているpython「じゃない」ほかのバージョンのpythonはインストールされてないですね?
怪しければシステムの詳細設定→環境変数で<anacondaインストールパス>\bin;をPATHの先頭に置いてみましょう

対策1)
python spyder --reset
または
python -c "from spyderlib.spyder import main; main()" --reset
でspyderをリセットするとどうでしょう?

対策2)
pip install -U spyder
でspyderをアップデートするとどうでしょうか?

708 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 16:49:16.61 ID:lYgMQCJJ.net]
>>698
ご丁寧なアドバイスありがとうございます
残念ながら Spyder のリセットおよびアップデートも効果がありませんでした
結構時間かかるので敬遠していましたが、anaconda一式のアンインスト&再インストを試してみます

709 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:13:45.62 ID:rQDI3AgB.net]
Windows 7 64bitにPython3.5.2をインストールし、Anaconda3をインストールしたのですが、
pandasをどうやってもimportできません
例えば他のdatetimeみたいのならimport出来るのですがpandasが全然読み込めません
pip freezeを実行すると「pandas==0.18.1」とあるのですが、なぜ読み込めないのでしょうか
import pandasと実行すると以下が表示されます

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'pandas'

710 名前:デフォルトの名無しさん [2016/09/12(月) 12:21:52.48 ID:t4cXXpq8.net]
pandas.pyという名前のファイル名がある
AnacondaのPythonで起動してない、など

超初心者は欲かいてPython3(公式)とAnaconda3の併用とかしない方がいい
不具合のもと

711 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:39:58.44 ID:rQDI3AgB.net]
AnacondaのPythonとはAnaconda Promptのことですか?
Pythonは2系は遺物で3系にしておいた方が良いという情報を幾つかのサイトで見たので3をインストールしています
非公式のPython?があるのは知りませんでしたが
それこそ不具合を避けたいので公式の最新のものをインストールしているのですが、
これで不具合が出てるかは超初心者の私には皆目見当が付きません
pandas.pyはAnaconda3/Lib/site-packagesというフォルダに3つあります

712 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:49:03.07 ID:1PeRYuMu.net]
まず入門者向けの本を買ってきたほうがいいよ



713 名前:デフォルトの名無しさん [2016/09/12(月) 12:56:42.35 ID:dTaJTDWJ.net]
ここから入手できるのが公式
https://www.python.org/downloads/

これ以外は全てサードパーティーディストリビューションという、
第三者がカスタマイズして配布しているものと考えて差し支えない

たぶんあなたはPythonについて何も知らないのだと思う
それでAnacondaを使うのは厳しい
100日は早かろう

まず公式のPythonだけで勉強しなさい

714 名前:デフォルトの名無しさん [2016/09/12(月) 13:07:09.09 ID:dTaJTDWJ.net]
そんなに時間を掛けられないんです
子供の命が掛かってるんです
みたいな場合、エラーを確認するまでの手順を記載したまえ

パソコンがよく分からないお婆ちゃんに手順を教えるレベルの粒度で書くこと

715 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:15:40.90 ID:8MpgLRjM.net]
そういう煽りはスレが荒れる原因になるからやめれ

716 名前:デフォルトの名無しさん [2016/09/12(月) 13:33:24.38 ID:mCgLZvHm.net]
>>702
import pandas

import sys; print(sys.executable)
に置き換えて実行して表示される文字列を貼って

出力にユーザー名が含まれる場合があるので
見られたくない場合は適当に置き換えて

>>704はやらなくていい
やりたいことは上記と同じ「起動しているインタプリタを特定したい」だろうし、面倒だから

717 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 14:06:16.65 ID:uKcKqCp4.net]
「みんなのPython 第3版」が初心者向けの定本

718 名前:デフォルトの名無しさん [2016/09/12(月) 14:26:11.85 ID:sJaisqrH.net]
トラブルシューティングの際に「代わりにこれ実行して結果を貼ってみて」って言えるコードはないものか

https://ideone.com/2kXOsT
PATH環境変数は書いてて過剰な気がした
デフォルトエンコーディングはあってもいいかも

719 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:38:48.56 ID:2qrjNR0I.net]
mechanize Pythonでウェブサイト弄ってたんですけど、毎回py実行するたびにクッキーを消して、初アクセスとして振る舞うにはどうすればいいんですかね?

720 名前:デフォルトの名無しさん [2016/09/12(月) 17:42:02.91 ID:uadDl1bC.net]
クッキー消せばいいじゃん

721 名前:デフォルトの名無しさん [2016/09/12(月) 17:43:57.03 ID:dTaJTDWJ.net]
stackoverflow.com/questions/606072/python-how-to-dump-cookies-of-a-mechanize-browser-instance

CookieJarにアクセスして空のCookieJarで置き換えるか
CookieJar.clearすればいいのかな

722 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:50:11.71 ID:uadDl1bC.net]
毎回新しいcookiejar作ればいいだけだろ
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br = mechanize.Browser()



723 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:15:35.66 ID:2qrjNR0I.net]
出来ました
ありがとうございます

724 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:23:09.80 ID:kPhfrJyN.net]
A.pyは普通の処理
B.pyはA.pyを呼び出して実行する(無限ループ)
A.pyはB.pyとは別のウィンドウで実行
B.pyにはループの回数を表示

B.pyはA.pyの出力の中に特定の文字が存在する場合はループ継続(A.pyは以前と同じウィンドウで実行(上書き))、
存在しなければ中断してA.pyを表示

このような物を作りたいのですが、B.pyはどの様に書けば良いんですかね?

725 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:26:32.89 ID:uadDl1bC.net]
>A.pyは以前と同じウィンドウで実行

開きなおしてはいけない理由がある?

726 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:30:15.62 ID:kPhfrJyN.net]
>716
特に無いです
無駄にウィンドウを開かなければいいので

727 名前:デフォルトの名無しさん [2016/09/12(月) 18:45:41.88 ID:dTaJTDWJ.net]
ウィンドウってコマンドプロンプトのことか?
MacやLinuxのターミナルか?
それともGUIツールキット使ってウィンドウ作ってるのか?

728 名前:デフォルトの名無しさん [2016/09/12(月) 18:48:21.62 ID:jVd9Q+Yf.net]
>>715
> A.pyはB.pyとは別のウィンドウで実行

同じウィンドウではいけない理由がある?

729 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:55:23.34 ID:kPhfrJyN.net]
>>718
LinuxのTerminalです

>>719
同じウィンドウだとA.pyの表示とB.pyの表示が混ざって見辛くなりませんかね?

730 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 19:15:20.88 ID:uadDl1bC.net]
>>717
>無駄にウィンドウを開かなければ

なら標準入出力をパイプしてプロセス間通信するのが良いんじゃね
表示用のウィンドウはA,Bどちらとも別にCを作るか

>>720
B(Aではない)の中にCUIでサブウィンドウを作るという手もある

731 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 19:21:22.03 ID:6OHq7MGV.net]
そもそもAとBを分ける必要があるのか
Threadingにした方が情報のやり取りも子の制御も簡単だろ

732 名前:デフォルトの名無しさん [2016/09/12(月) 19:22:32.03 ID:jVd9Q+Yf.net]
>>720
見辛いかどうかは個人の主観による所が大きいしそもそも何が出力されるのか分からん俺に聞かれても答えようがない



733 名前:デフォルトの名無しさん [2016/09/12(月) 20:26:09.37 ID:dTaJTDWJ.net]
俺だったらa.logとb.logに吐いてlessのCtrl+Fモードで見るよ

734 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 21:05:39.22 ID:qYMur+nZ.net]
ごめんね燃料ネタ投下しちまったか
自分のように警報でオロオロして射撃に手が回らない人は
警報を付けずに撃ちまくった方がスコアが上がるんじゃないかって趣旨
とりあえず警報を熟練砲手にしてしばらくやってみる
青葉は好きなんだけど、成績があまりにひどくてプレイするのがつらくなってきたのね・・・

735 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 21:06:24.99 ID:qYMur+nZ.net]
ゲームのスレと間違ったよ・・・
ごめんなさい

736 名前:713 mailto:sage [2016/09/13(火) 00:56:18.29 ID:SLMxQ67A.net]
ありがとうございます
皆さんのレスを参考にもう少し考えてみます

737 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 01:07:48.07 ID:/JPA6t5G.net]
>>707
そちらのコードで幾らかググって、
AnacondaのPythonで動かない等の情報を加味して、
環境パスが原因なのが分かって、
AnacondaのPythonを使うように書き換えたら上手く動作しました
アドバイスありがとうございました!

738 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:25:07.17 ID:o6g8H45D.net]
ウインドウって書いているけど、GUIのイベント処理などしないのだろ?

両ファイルは、単なるモジュールなんだろ?
Bモジュールが、Aモジュールを呼び出すだけだろ?

端末から、Bを起動すれば、Aも呼び出されるというだけだろ?
ウインドウ・GUIは関係ないだろ?

739 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:56:18.15 ID:3+j38gm0.net]
A.pyとしか書かれていないが他人が作ったスクリプトの可能性がある
超初心者ならAをimportしてB内に処理を取り込むより
スクリプトを子プロセスで実行して監視するほうが楽と思ったのかもしれない

740 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:00:52.16 ID:gEFnruHj.net]
ord()という関数(メソッド?)は文字コードをかえしますか?asciiですか?

741 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:24:30.41 ID:IidH3uDx.net]
>>731
整数を返す
まあ文字コードを返すと思っておけば実質オッケーだと思う

742 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 01:16:26.80 ID:B1//+FiS.net]
>>731
Python2だと
ord()はUnicode文字(1文字のunicode)または1バイト文字(1バイトのstr)からUnicodeのコードポイント(整数)を返す
unichr()はコードポイントからUnicode文字を返す

Python3だと
ord()はUnicode文字(1文字のstr)または1バイト文字(1バイトのbytes)からUnicodeのコードポイント(整数)を返す
chr()はコードポイントからUnicode文字を返す

2でも3でもShift_JISとかEUC-JPとかUTF-8などエンコーディングは関係ない



743 名前:デフォルトの名無しさん mailto:age [2016/09/14(水) 16:47:07.24 ID:wWWBBvwz.net]
Python3.6をWindows7で使用しています。
自作のDLLをPythonから呼び出したいのですが悩んでいます。

DLL側は
Func1( DWORD *num, DWORD *Handle )

と定義されていて、*HandleにはDWORD配列(最大256個)のポインタを渡します。
numは、配列に何個の値がセットされたかを示します。
なので以下の様に組んで見たのですが、
「TypeError: byref() argument must be a ctypes instance, not 'int'」
というエラーが発生します。

num = c_ulong()
Handle = [0] * 256

Func1( byref( num ), byref( Handle[0] ))

Python始めて2日程なので作法を全く理解できていません。
アドバイスお願いできないでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 17:23:53.09 ID:9ksgTHcu.net]
>>692-699
残念ながら一式再インストールしても直らなかったため、
Ctrl + c, BackSpace のマクロでお茶を濁すことにしました、アドバイスありがとうございました

745 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 17:49:54.51 ID:B1//+FiS.net]
>>734
Pythonの数値やリストはPythonのオブジェクトなのでCの関数にはポインタで渡せない
基本的にPython側でCの型の変数を用意してCの関数へ渡さないといけない
DWORD handle[256];ならhandle = (c_ulong * 256)()で確保できる

746 名前:732 mailto:age [2016/09/15(木) 00:28:01.34 ID:DwfOaSCr.net]
>>736

ありがとうございます。
なんとかやりたい事を実現できました。

もう1個だけ教えて下さい。
(c_ulong * 256)() ←最後の()はどういう意味なんでしょうか?

747 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 00:29:23.98 ID:1unR8Xpw.net]
かっこつけてるだけさ

748 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 01:54:17.98 ID:qSHwCnNL.net]
>>737
c_ulong * 256は「長さ256の配列の型」を作っただけだ
この型の乗算はctypesモジュール特有のルールなので普段は参考にしなくていい
それで実際に配列を作るときは、この型をクラスのインスタンス生成と同じように括弧で呼び出す

array_type = c_ulong * 256
array_var = array_type() # => 型を変数に保存して後で配列生成に使える
array_var = (c_ulong * 256)() # => 型を1度しか使わないならこれでおk

正直に言って乗算して新しい型を作るデザインは初見殺し
標準ライブラリでキル数上位を争う落とし穴だと思う

749 名前:732 [2016/09/15(木) 10:13:35.55 ID:DwfOaSCr.net]
>>739

有り難う御座います。
わかったようなわからないような・・・(たぶんわかってない)
型を作って→()でその型の配列を作ったという事で良いのでしょうか?

750 名前:デフォルトの名無しさん [2016/09/15(木) 13:22:44.12 ID:/7fa7B3U.net]
>>> x = ctypes.ARRAY(ctypes.c_ulong, 16)
>>> y = x()
>>> y[0] = 1
>>> y[1] = 2
>>> y[0]
1L
>>> y[1]
2L
>>> y[15]
0L
>>> y[16]
IndexError: invalid index

# ARRAY() は廃止された模様

751 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 23:10:59.93 ID:qSHwCnNL.net]
>>740
それで合ってる
Pythonは型もオブジェクトなのでソースコード上で型を使っているのか分かりにくいことがある

752 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:38:48.84 ID:nDrbGQ4/.net]
>>732
>>733
ありがとうございました



753 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 02:01:24.68 ID:NQFr5LNR.net]
>>735
窮極的にはVistaのせいですかね

IDEにこだわりなければJupyter Notebookへ逃げる手もありますよ
こちらの方が昨今情報も多いですし

754 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 10:12:04.46 ID:6E5JaHne.net]
windows10のbashを導入したのですが
python3とmatplotlibでデータ解析・グラフ作成をするには
どうすればいいですか?
やっぱりアナコンダの導入が必須ですか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef