くだすれPython(超初心者用) その35 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その34
http://echo.2ch.net/test/read.cgi/tech/1495971255/
VIPQ2_EXTDAT: default:vvvvvv:1000:512:----: EXT was configured >>526
Pythonに限らず良くある勘違いの一つだと思われるが、変数が参照型であるのと引数が参照渡しであるのとは別の話
Pythonは参照型が基本だけど、引数は“参照の値渡し”とか“共有渡し”とか呼ばれる、有り体に言えば値渡し
つまり影響があるのはメンバに対する変更のみで、引数自体への代入では元フレーム変数の参照先を変えることはできない
https://docs.python.jp/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-reference 命を賭けてる奴にしたら
5chに変えられたらたまらんよな >>524
すいません
ポートを替える方法を教えてください
命が掛かっています
よろしくお願いいたします いや匿名の奴に命を預けるなよw
相談できる奴を作っておかなかった自己責任 前から死ぬ死ぬ言ってる奴だろ
会社まだ首になってないんか? 性懲りもなくまた来てんのか
嘘つき野郎に答えてやる義理はない
命をNG登録しよう >>528 >>530
情報ありがとうございます。
単なる参照型ではなくて、、、
なんらか工夫がいるわけですね。
ctypesを設定するとか???
ここをちゃんと解決すると、なんとなく自分のものになる気がする。 自分の理解では、
・returnを複数使えるからreturnにする
・列挙にする
・オブジェクトのメンバ変数にする
といったところです。
手間を考えると、言語的にはreturn推奨なんですね。
ctypesの方は今一つ分かってないのですが、
ctypesによって、参照渡しか値渡しか変わるということでしょうか。
文書読んでると、全然参照渡しじゃないような気もしてきました。 ついでですが、ここに書かれていることは、間違ってるんでしょうか。
それとも、bytearrayのctypeとかによって、挙動が変わるのでしょうか。
>変更可能(Mutable)な型
>list, dict, set, bytearray 等
ttp://amacbee.hatenablog.com/entry/2016/12/07/004510 おかげさまでポート変えなくてもDjangoデーモン複数立ち上がりました
偉そうに抜かす癖にまったく役に立たないアホウ達ですね pythonの基礎文法終えたんだが次何やればいい?
ちなみにゲーム作りたい >>538
冒頭は間違ってるよ、>>528に張ったのが公式ドキュメント和訳のFAQだけど
参照渡し(変数自体への参照を渡す事)それ自体は無いってあるでしょ?
すべて参照渡しではなく、全て参照型かつ(インスタンスへの参照を)値渡し
参照渡しと参照型は別問題で、同じ物を指せばインプレースに変更すると影響するのが基本だけど
イミュータブルな型の場合は変更を受け付けないか、結果となるインスタンスを別に生成する
よく変数は入れ物っていうけど参照型の場合、変数に入るのは実体ではなく(インスタンスへの)参照
実引数は値渡しだし、“仮引数自体への代入”は仮引数の中身(インスタンス参照先)が変わるだけ
それらを踏まえるとFAQのような答えになる、1.結果のタプルを返すか、3〜5は実質的に同じ手法だね そうなんですか、了解です。
間違いを書いてるサイト困りますよね。 pythonの基礎を一通り勉強したので自分で少しアレンジしてコード書いてみたんですがさっぱり動きませんどこが悪いんでしょうか
文字列と数字が混じったyomikomiテキストからデータを読み込んで倍数ごとに分けるプログラムがつくりたんですが、、、
https://ideone.com/5c8QUt 頭なら良いじゃん。俺は顔だよ? 頭よくても何の意味も無いっつうの。 >>546
思いつくままに
・continueの字下げは直前のprintと同じ段で良いはず
・forの内側に関数定義のあるコードって初めて見たんだが、何のテクニックだろ >>526-528
ポインタの無い言語は、Java, C# と、
軽量言語の、Python, Ruby, JavaScript なども、すべて参照渡し
値渡し、つまりコピーするのは、C/C++ だけ
そして、ポインタの無い言語は、コピーすると、
Shallow Copy になり、参照だけがコピーされて、
実体はコピーされず、共有される
参照先の実体までコピーしたいのなら、Deep Copy linux機でインストールできたけど?
環境とエラーログ無いとpyOpenSSLの件について答えれれ無い。
sudo pip3 install pyOpenSSL
[sudo] のパスワード:
Collecting pyOpenSSL
pyOpenSSL
Found existing installation: idna 2.0
Uninstalling idna-2.0:
Successfully uninstalled idna-2.0
Running setup.py install for pycparser ... done
Found existing installation: cryptography 1.2.3
Uninstalling cryptography-1.2.3:
Successfully uninstalled cryptography-1.2.3
Successfully installed asn1crypto-0.23.0 cffi-1.11.1 cryptography-2.0.3 idna-2.6 pyOpenSSL-17.3.0 pycparser-2.18 CentOS 7 とかは、
gcc
python-devel
openssl-devel
libffi-devel
が必要 >>554
お前アフォか?
レンタルサーバーではsudoすら使えないんだけど?
ウンコ野郎 >>553
参照の値渡しを参照渡しとは呼ばない、参照渡しの“参照”は“変数に対する参照”で“実体に対する参照”ではない
隠蔽されている実装の話をするのは憚られるが、CPythonならPyObject*で変数ポインタではなくオブジェクトポインタ
Javaのプリミティブ型とC#の構造体は値型だし、C#はポインタが基本隠蔽されていても参照渡しは参照渡しで別にある >>554
自分の環境では問題ないけど?
ってのたまう空気読めない先輩みたいなウンコ外道だな >>551
関数定義いらないですね、、、
とりあえず関数の定義は削除してcontinueもいらなさそうなので消してみました
txtファイルから読み込んだ場合数値も文字列も全て文字列として読み込まれるらしくisdigit関数が使えなくて
数値と文字列の分離ができなくなって詰んでます
https://ideone.com/eahZjr >>555
centos7では俺も試してるんだよ、ボンクラ
お前の環境でインストール出来たのがそんなに嬉しいんかい、ウンコ >>559
エラーメッセージ読もうよ
ファイルが見つからないって書いてあるよ 俺のはlinux mint18.2 Windows 10 x86_64
2chに5年も居る。真性の基地外に相手に余裕が無いんか(笑)
鳥取県の人間はケチが多いって言われてるけど、
実際にその通りだな。
命が掛かってるのに数千円の有料プランにグレードアップしないんだから(失笑) Docker Hub で、pyOpenSSL で検索すれば?
誰かが、アップしているかも >>563
>2chに5年も居る。真性の基地外に相手に余裕が無いんか(笑)
日本語不自由そうだな、可哀想に >>559
自分で、オリジナルのテキストファイルの形式を作るか、または、
JSON, XML, CSV/TSV などの汎用的な形式を使う >>559
ファイル名は変えて有る。
必要ならファイルを閉じる前に別のファイルに出力したり編集して。
https://ideone.com/eEPGp6 >>568
ありがとうございます! 勉強させてもらいます! Django + wsgi
複数プロジェクト扱いたい場合
Unix 系なら ":"、Windows なら ";" で複数設定できます
例) WSGIPythonPath /path/to/foo;/path/to/bar (Windows の場合) ファイルの読み込みで入力レコードセパレーターを変更したい場合はどのようにすれば良いですか?
perlで言うところの$/を変更したいです
やりたい事は改行2つ連続してるところを1行として読み込みたいです。 'a\nb\n\nc\nd'だとしたら'a\nb\nc\nd'にしたいということ? こう感じの?
配列
0 ['0123456789', '\n']
1 ['\n']
2 ['0123456789', '\n']
3 ['\n']
4 ['\n']
5 ['0123456789', '\n']
6 ['\n']
7 ['\n']
8 ['0123456789', '\n']
単体の\nだけ削除? >>577
割と、こう言うの欲しかった。
ありがとう。
ニートだし過去すれ行って宝探しでもしてくるか(笑)
やっぱり、
テキストデータの形式が分からないと答えれらないと思う。 勘違いしてたかも?。
「レコード」
”テーブル”と”カラム”が、データが保管される場所のことを表していた語に対して、”レコード”はデータそのもののことを指す言葉
セパレータ (separator)とは
データを項目ごとに区切る際の「区切り文字」のこと。
MySqlとか? オリジナルのテキストファイルを作っちゃた上で、
後で編集するのに困ったとか言う落ちだと思ってた。 暇してるんで、問題が有ったら下さいな!
解決はできないと、思いまーすww Windows版Python3.3以降の標準venvによる仮想環境について
activate、deactivateによる環境切り替え方法は理解したのだけど
仮想環境での作業が終わり、そのウインドウをもう使わないのであれば
deactivateの実行を省略してコマンドウィンドウを閉じてよいという理解でOK?
今はdeactivateを実行してから閉じているのだけど、地味に面倒なので >>587
ありがとうスッキリした
環境変数をいじると聞いていたので怖くてね おすすめの開発環境教えてください
Jupyterもいいけどforループ中に変数の値確認とかしにくくて。。 jupyterを使ってるからにはjupyterでできるようなこともしたいんだと察するが
そんなことができる開発環境は他にないぞ
それでもいいのか? MySQLdbでちょっと重めのクエリ投げると
たまに接続が切れて読み込み状態のままフリーズしてる…
原因ってなんですか? >>589
PyCharmがjupyterも扱えるようになったと聞いた。自分で試してみたことはないけど
Pro版じゃないとだめだったかも >>592
「ちょっと重め」ではなくとんでもなく重くて、まだクエリが帰って来てないのでは?
コードから実行するSQLをMySQLのコマンドラインで実行してみて、実用的な時間内で返ってくるか試してみたら? 2次方程式の解を求めるプログラムを作りたいんですが何が違うのでしょう?
def kai (A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
kai2 = (-B - (B**2 - 4*A*C) ** 0.5 ) / (2*A)
str(kai1)
str(kai2)
return kai1 , kai2
print("ax^2+bx+c")
a = input("aの値を入力してください")
b = input("bの値を入力してください")
c = input("cの値を入力してください")
float(a)
float(b)
float(c)
kai(a,b,c)
print("答えは" + kai1 + "と" + kai2 + "です" ) return str(kai1), str(kai2) 何が違うんですかね?
def kai1(A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai1)
def kai2(A,B,C):
kai2 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai2)
print("ax^2+bx+c")
a = input("aの値を入力してください")
b = input("bの値を入力してください")
c = input("cの値を入力してください")
float(a)
float(b)
float(c)
x1 = kai1(a,b,c)
x2 = kai2(a,b,c)
print("答えは" + x1 + "と" + x2 + "です" ) 小学生じゃないんならもう少し頭使え
kai1, kai2 = kai(float(a), float(b), float(c)) >>601
根本的なところがちょいちょいおかしい。
float(a)
float(b)
float(c)
の後に、
print (type(a))
print (type(float(a)))
っていれてみな。 解決しました
def kai1(A,B,C):
kai1 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai1)
def kai2(A,B,C):
kai2 = (-B + (B**2 - 4*A*C) ** 0.5 ) / (2*A)
return str(kai2)
print("ax^2+bx+c")
a = float(input("aの値を入力してください"))
b = float(input("bの値を入力してください"))
c = float(input("cの値を入力してください"))
x1 = kai1(a,b,c)
x2 = kai2(a,b,c)
print("答えは" + str(x1) + "と" + str(x2) + "です" ) すみません、環境の話になりますが、お教えいただけないでしょうか。
Windows 10 64bitのPCにAnaconda3を用いてpythonを
インストールしました。
参考にしている本が、Cドライブ直下にインストールを勧めていたので、
それに従いました。
idleを立ち上げて、pythonを実行しています(これも本の勧めです。)。
pythonシェルから .pyのファイルを実行しようとすると、
コマンドプロンプトの画面全体に
Fail to open folder shield registry for query !!
のメッセージ?(アラート?)がたくさん出ます。
これは何が悪いのでしょうか。
pyファイルは一応開くことができて、実行及び結果も大丈夫です。
PCがぶっ壊れるのかもしれないと思うと不安です。
どうぞご教示いただけますようお願いいたします。 venvとcondaの仮想環境はどう使い分ければいいんでしょうか? >>607
venvはディレクトリ指定して環境作れるから プロジェクトのあるディレクトリに作って 移動して activateすれば使えるし作っているプロジェクト専用の環境としてべんり
condaはどこのディレクトリからでも環境の切り替えが楽使いまわせる環境 >>606
「Fail to open folder shield registry for query」で検索!
このエラーメッセージは、正しいのか?
検索で、全くヒットしないのだが
何のアプリのエラーメッセージだ? >>609
そうなんです。
検索しても全く出て来ないんです。
メッセージは、きちんとよく確かめた上で転記しましたので、間違いないです。 >>609
何のアプリかは、自分がPCに詳しくないので、正確にはわかりません。
繰り返しになりますが、idleからpyファイルを指定実行しようとすると、コマンドプロンプトの画面が、このメッセージで埋まるほどいっぱいになります。 >>610
https://support.microsoft.com/ja-jp
マイクロソフトのサポートページで検索するといくつかヒットするぜ
ただし英語で出てくるから俺はお手上げ わからんけど、
「windows10 folder shield registry」で検索すると、
「Device Guard」「デバイスガード」がサジェストされるから、これで検索してみれば? >>606
必要ないなら取り合えずAnacondaじゃなくて素のPython入れてみるのはどうですかね。NumpyとかScipyあたりは後からでも入れられるし。
どうしてもAnacondaだけにしかないこの機能が必要とかなら知らんけど。 あと、ググるなら本の名前といっしょにググってみた方が精度は高くなる
それででないなら、何かを間違っているか、おま環の可能性高い
>>610
転記ってコピペじゃなくて? 開こうとしてるpyファイルの中身も気になる
https://ideone.com/とかに貼るといい なんかこの本をここで紹介しろと言われてる声が聴こえた気がした
http://www.amazon.co.jp/dp/4774192236
ステマではありませぬ >>606
「デバイスガード 署名 アプリ 実行」
あたりでぐぐるんだ
マックのルートレスみたいなもんだな Python2.7、Pyinstaller3.3にて
pyinstaller --onefile 8tousin.py -i 8.ico --noconsole
とやって 8tousin.exeを作ると
subprocess.PopenのところでWindowsErrorしてしまいます。
(同じフォルダにがっつりおいてある1san.exeが見つからないとな)
さいごの--noconsoleを消してexeを作るとちゃんと動くのですが、
Dos窓がでたまんまになりキモイのでなんとかしたいです。
どなたか良い知恵をお貸し下さい。。。
----8tousin.py----
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
dpath = os.path.dirname(sys.argv[0])
epath = os.path.join(dpath,'1san.exe')
command_line =(epath + ' aishiteru yo')
self.qu = Queue()
self.pb = subprocess.Popen(
command_line, startupinfo=startupinfo, cwd='./',
stdout=subprocess.PIPE, stderr=None, shell=True)
self.t = Thread(
target=enqueue_output, args=(self.pb.stdout, self.qu))
self.t.daemon = True
self.t.start()
----EOF---- >>620
つかってないです
うごくexeができる pyinstaller --onefile 8tousin.py -i 8.ico
1さんがみつからない pyinstaller --onefile 8tousin.py -i 8.ico -w
ってことです
ちなみに1さんは
kimoiyo-
uwaaan
を1秒毎に交互に出力し続けるようなプログラムです。 >>622
貴重なヒントありがとうございます!
なるほど
Dos窓なし仕様でpyinstallerするなら
みえないウインドウをどこかになんとかしてつくらないと
1さんが親なしさんになっちゃうわけですね shell=True
これ False だったら? 環境が詳しく書いて無くてごめんなさいでした
Python2.7.13/2.7.14(どっちでも), Pyinstaller3.3, Windows7/10(どっちでも)32bit
>>624
Falseにしてみても8頭身は1さんをみつけられませんでした。
cwdをdpathにしてみても、だめでした
>>622
stdout=win32console.GetStdHandle(win32console.STD_OUTPUT_HANDLE)
とかすればいいんでしょうか... Linux なら、端末から起動したプロセスは、端末の子プロセスになるから、
端末を終了すると、その子プロセスもすべて強制終了させられる
ジョブグループ・プロセスグループとか、プロセスには親子関係がある
pstree とかで見てみ ■ このスレッドは過去ログ倉庫に格納されています