くだすれPython(超初心者用) その37
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その36 http://mevius.2ch.net/test/read.cgi/tech/1514805522/ >>479 間違えました、py2exeです。日本語文字をprintしようとすると UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence って出るんですよね。コードをutf-8にしたり、文字列の先頭にuを付けてみましたが、きちんとexeが生成されません >>477 あああーーーー それは、アカンww 明治時代の初期までなら、隣の県に行けば 言葉が通じないのもザラだったしなwww >>480 んでもってPythonは2系をつかってるのか? あるいはWindowsのユーザー名が日本語なのか。 素直に3系つかうことと py2exeするときはあきらめて日本語を含まないユーザー名を作って そこからやる py2exeは3.6に対応してないから、バイナリ作るならpyinstallerの方がいいと思う セットアップファイル作る必要もなくて楽だし bytesをfloat配列にする高速な方法無いでしょうか? 4バイトで1floatではなく、1バイトで0.0〜1.0の範囲の1floatの 同じ長さの配列が欲しいのですが pyinstallerで詰まったのは、pandasを使うスクリプトでエラーが出ることぐらい pandasを 0.20.0 に落とせば通る様になると思う 精度気にしないなら 0x00 = 0.0 0x01 = 0.004 0x02 = 0.008 ... 0xFA = 1.0 0xFB〜0xFF は使わない とか勝手に決めれば良いだけ >>490 それ普通に255.0で割る方が速いだろw そうか? >>490 も 250 で割るだけだから速度は一緒だぞ >>493 250.0で割るのだと元のバイト列にある251〜255を1.0に丸める処理が必要になるだろ。 考えてから発言する習慣付けなよ。 おいおい256.0だろ… おまえは1を0.1にするのに9で割ると言うのかい? >>485 256 しかないんだから float f[256] の配列作って変換すればいいんじゃね? >>483 >>484 素直にパイインストーラーを使うことにします。ありがとうございました! windows辞めて、Ubuntuにしたらデフォルトでpython2,python3入ってるよ。 なんつってwwww これぞwww 悪魔の囁きwwwww それな むしろデフォで入っていることが余計なトラブルの元になってる Pythonに依存した他のパッケージを動作させるためだけのものだよね ユーザーが使ってはいけない >>501 何に騙されてそんなガセネタ信じとるんやwwwww UbuntuとかMacとかはpyenv入れてからAnaconda入れてとか結構面倒くさい Ubuntu系のlinux mintにAnaconda入れてる。 起動確認の初回しか、動かしてない。 オブジェクトをヒープ上にメモリ確保する場面は どんな時ですか? 逆にヒープ以外にどこにメモリを確保するんだ? それが答えじゃね? >>504 開発環境とシステム分けておくの大事だぞ 実行できない。 へるぷ def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'): □i = bisect(breakpoints, score) □return grades[i] [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]] 実行できないってどういうことよ エラーメッセージがあるならそれも載せろよ まあわざと載せてないのかもしれないけど >>510 >>509 が言っているだろ。開発環境とシステム分けてないから実行できないんだよ NameError: name 'bisect' is not defined 関数内にglobal と書いてもダメだった。 import bisect で、TypeError: 'module' object is not callable $ sudo pip3 install bisect で Could not find a version that satisfies the requirement bisect (from versions: ) No matching distribution found for bisect 要件bisectを満たすバージョンを見つけることができませんでした(バージョンから:) 二等分線に一致する分布が見つかりませんでした 「みんなのPython」に書いてある Anaconda は、Windows など予め、Python が入っていないOS が対象です。 Linux など、最初からPython が入っている場合は、プロに聞いて下さい。 この本では教えませんw つまり、Pythonがバッティングするから。 Python3 というコマンドが、Python 3.4, 3.5 のどれを指すのか、 OSとAnacondaで、異なるバージョンの場合に厄介だから $ which python3 /usr/bin/python3 $ which python3.5 /usr/bin/python3.5 $ file /usr/bin/python3 /usr/bin/python3: symbolic link to python3.5 つまり、Windows10・WSL・Ubuntu16.04 では、python3 → python3.5 異なるバージョンを使いたければ、仮想環境のvirtualenv(venv)を使って、 環境変数PATH を上書きしないといけない activate ってすると、PATHが上書きされて、 システムとは異なるバージョンと結び付けられる それか、Docker を使うとか Anaconda使ってないよw Geanyから起動してる。 linux mint18 mate python 3.6.3 システムバージョンの python 3.5.2でも試したけど、一緒のエラー内容だった。 公式から、ライブラリ落として 入れないと駄目とか? 分からない。 本当に分からなかったので教えて貰いました。 https://teratail.com/questions/122985 import bisect では、なく。 from bisect import bisect と、記載しなければ成らなかった模様です。 help(help)について help関数の定義を見たくてhelp(help)を実行したところ、 以下のような出力がありました。 Help on _Helper in module _sitebuiltins object: class _Helper(builtins.object) | Define the builtin 'help'. | | This is a wrapper around pydoc.help that provides a helpful message | when 'help' is typed at the Python interactive prompt. | | Calling help() at the Python prompt starts an interactive help session. | Calling help(thing) prints help for the python object 'thing'. | | Methods defined here: | 以下略 見たいのは_Helper in module _sitebuiltinsではなくhelp function、 以下のような説明です。 help(object): help on object or class of object, except help('name'): help on object/module named 'name' help(): run utility, which starts with utility help どうしてそれが出ないのか、ご教授いただけるとありがたいです。 Python3.6、pycharmを使用しています。 >>519 質問をすることでしか得られない、回答やアドバイスがある。 15分調べてもわからないことは、質問しよう! 何このサイト 入門者でも質問OKなのかな? このスレだと15分調べて質問したらggksとか言われそうなんだが >>523 色々な意味で驚いた 間口が広いはずの、2/5chの存在意義が・・・ ただ、入門者だと実際ここで躓く事もあるし ディレクトリ構造って実際理解するの結構大変 分かってるとツリーになってると言えるし、そもそも何が大変なのか説明する方が難しいレベルだし・・・ そういえば、最近のOSってアドレスにあるパスが一部しか書いてなかったりするけどみんな困らないのかな? 昔のOS使ってるとパス辿ればいいと分かるけど、パスの概念を勉強する機会が減りそう >>524 同意を求めるのじゃなくて質問すれば答えてくれんじゃね?そうゆうの? >>526 teratailで質問するとここと違いやさしく丁寧に教えてくれるよ >>526 グーグルでpython インストール で検索。 以上。 >>526 ネタだと思うけど、公式から自分が使用してるOSを選ぶ。 https://www.python.org/downloads/ 32bit PCだと 64bit版は動かせない。 x86 32bit x86-64 64bit ここは、Python の初心者用のスレだろ。 言語だけの初心者 PC・OS・情報処理の初心者用ではない。 Python以外の事は、知っているべき win機で特に理由が無いなら、 Windows x86-64 executable installer Ubuntuならコッチみてくれ。 https://www.python.jp/install/ubuntu/index.html >>530 最初に、どれ動かして良いのか分からなかったからww 全部ダウンロードして、試した俺が居るぞww >>530 でもなぁー 毎日PCの電源を入れている人ならともかく 例えば高校数学にコンピュータあるけどあれするだけでもプログラミングソフトのセットアップって 重要で意外と難易度が高い かといって、WindowsOS向け、Pythonセットアップスレとか作っても多分はやらない ただ、少し慣れてきてUbuntuとかtensorflow-gpuとか入れろと言われるとトラブってる人も多いし その記事だけでアフィが成り立つレベルだよ 526です。pythonのコード書くのはコマンドプロントだけ? pythonのエディタはWindowsのコマンドプロントだけ? >>533 学校も含めて他人のPCにインスコするときは VM用意してその中で遊ぶのがマナー >>530 言語だけの初心者=PC・OS・情報処理の初心者やけど よっておまえもなw >>536 それは無いよ。 USBブートで遊ぶべき。 >>536 VMってシステムに深く入り込むから大変なことになる というかLANが使えなくなって半日嵌った >>539 ??? VMware PlayerとかVirtualPCなんかだと普通のアプリケーションと変わらんぞ ゲスト側のネットワーク設定はちょっとコツが要るけど アップデートしたら、仮想SW死んだことがある 環境的に物理的なトラブルと切り分けが調べられなくて泣きそうになった wxpythonでボタンをクリックしたら別のpyに書いたウィンドウを表示させているのですが、開いたpyウィンドウを閉じるともとのボタンをクリックしても再実行されません。 importは一度だけというのはわかっているのですが・・・ どのような記述をすれば閉じても何度でも再実行できるようになるのでしょうか。 教えて下さい。 wxpython を説明している、サイトを見て、勉強する >>544 5chのPythonスレのレベルを超えた質問 teratailで尋ねたほうが良いよ >>546 このスレで出来る回答はそんなもんだよな >>548 実行ボタン処理が定義されて無いから? 詳しい人、どうぞww pythpn初心者だけどオブジェクト指向分からな過ぎて死にそうです 何かおすすめの本ありますか? 厳し過ぎやろ 俺が引いてんじゃねぇか!ww [遊園地は]使い分けると深みに嵌まるから、この形式だけ抑えて後は垂れ流しだな。 https://ideone.com/VuRClI >>548 とりあえず、ボタン押してフレーム出すのはこう。 import wx class ChildFrame( wx.Frame ): def __init__( self, parent ): super().__init__(parent, wx.ID_ANY) sizer = wx.BoxSizer(wx.VERTICAL) lb = wx.StaticText(self, wx.ID_ANY, "Hello!") sizer.Add(lb) self.SetSizer(sizer) sizer.Fit(self) class MainFrame( wx.Frame): def __init__(self): super().__init__(None, wx.ID_ANY ) sizer = wx.BoxSizer(wx.VERTICAL) btn = wx.Button(self, wx.ID_ANY, "Push Me!") sizer.Add(btn) self.SetSizer(sizer) sizer.Fit(self) btn.Bind(wx.EVT_BUTTON, self.on_button) def on_button( self, evt ): child_window = ChildFrame(self) child_window.Show() if __name__ == "__main__": app = wx.App() frame = MainFrame() frame.Show() app.MainLoop() >>550 まずこの本で、オブジェクト指向を学ぶ。 スッキリわかる Java入門 第2版、2014 その後、この2冊をこの順に読む。 たのしいRuby 第5版、2016 みんなのPython 第4版、2017 この順番でやらないと、理解できないはず。 特に、オブジェクト指向の本は「スッキリ」しか存在しない >>553 さん ありがとうございます! ただボタンを押した後のフレームを出す処理を他のファイルに書いています。 そういうやり方は一般的ではないのでしょうか? def on_button( self, evt ): import aaa のようにaaa.pyを呼び出して処理させたいのですが、一回表示させて閉じると再表示させることができません。 >>555 ファンクションの中でimportして、しかもそれだけでウィンドウを出すってのはすごく変。 四の五のいわずにやめた方がいい。 大体そんなやり方してたら親ウィンドウすら渡せない。 >>555 子ウィンドウのコードを別のファイルにしたいなら、ChildWindowの定義部分を別ファイルにしてimportすればいい。 >>555 偉大なるこのスレの遊園地様が必死に質問しているteratailで聞いたほうがいいよ 処理を書いている他のファイルも提示して動くようにしてくださいと依頼すれば良い importは読み込んで実行というより 定義や宣言を読み込むため(だけ)に使うのが普通よね >>557 >ChildWindowの定義部分を別ファイルにしてimportすればいい ChildWindowの定義部分がある別ファイルのaaa.pyをimportしているのが on_buttonのimport aaaなんだろ import aaa … def on_button(…): child_window = aaa.ChildFrame(…) child_window.xxx = yyy … こんな感じかね ついでにimportで1回しか実行されない原因はこれ http://python.matrix.jp/pages/tips/import.html#id4 C言語でいうインクルードガード的なのが働いてる ありがとうございます、大変勉強になりました。 頑張ります! >>560 wx.Frame.Showをimportするファイルに書くなって意味なんだけど、伝わりませんか、、、そうですか、、、すみません。 >>555 .pyファイルを1つの関数が代わり使うとは大胆だな。 単純に、 >>561 import aaa aaa.pyファイルの中身を関数かクラスにする。 遊園地ww 公式ですと、こんな感じですなww ----aaa.py---- import bbb bbb.A() ----bbb.py----- def A(): print('Hello World') >>555 もしかしてimportするスクリプトにグローバルに書いてるのか もしそうなら、面倒でも何か関数をdefして(例えばopen_window() とか名前を付けて) その中にグローバルで書いてた処理を移動すべし def on_button( self, evt ): import aaa aaa.open_window() という風にすれば、on_button() を呼び出す度にopen_window()が確実に実行される 568さん、今日1日でここまで教えていただけると思わなかったです! ほんとありがとうございます! >def on_button( self, evt ): >import aaa のaaa.pyのどんなことを書いてあるんだろ? >>569 は >>553 のdef on_button( self, evt ): の処理部をaaa.pyに書いて 動くように出来る? ああわかったよ、書けばいいんだろ、、、 >>>aaa.py import wx class ChildFrame(wx.Frame): <中略> >>>main.py import wx from aaa import * class MainFrame(wx.Frame): <中略> def on_button(self, evt): child_frame = new ChildFrame(self, wx.ID_ANY) child_frame.Show() すまん、インデントが消えた。 ちなみにwxの子ウィンドウには親の参照渡しとかないと、親を閉じたときにアプリケーションが勝手に終了してくれないから アプリケーションのメインウィンドウ以外には親を渡した方が良い。 これはaaa.pyに子ウィンドウを表示するグローバル関数を定義する場合も同じ(関数の引数として親を渡せるようにする) じゃないと、出したフレーム片っ端から閉じないとプログラム終了しなくなる。 new ってなんだよ、、俺。 「new ChildFrame(・・・」のnewはいりません、ごめんなさい。 奥深いっす…でも楽しみです! ありがとうございます! >>572 俺、超低脳でさっぱり分からないんだけど、 >wxの子ウィンドウには親の参照渡しとかないと、親を閉じたときにアプリケーションが勝手に終了してくれない その親の参照渡しは>>571 のどこに記述されているんだ? >>575 ChildFrameのコンストラクタの第一引数。 ていうとわかりにくいか? child_frame=ChildFrame(self・・・ のself ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる