Pythonのお勉強 Part62

■ このスレッドは過去ログ倉庫に格納されています
2019/09/15(日) 16:06:00.08ID:E+Kc3PWT0
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー文(勝手に省略禁止)と
 環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと

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

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

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

●関連スレ●
くだすれPython(超初心者用) その44【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1563969768/

〇前スレ
Pythonのお勉強 Part61
http://mevius.5ch.net/test/read.cgi/tech/1563622784/

次スレの建立は>>985あたりが挑戦する。 [EOF]
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2019/12/08(日) 21:35:40.60ID:nzudwVBr0
>>626
しっくりくる
2019/12/09(月) 11:53:00.80ID:ocHhZ4gM0
Pythonって口語で言うとき〜パイっていう用語が多すぎて恥ずかしい
629デフォルトの名無しさん (アメ MM09-IfTI)
垢版 |
2019/12/09(月) 12:02:24.75ID:VQkZ+CLbM
Deca.py
2019/12/09(月) 12:46:17.78ID:GR8fLolE0
PyPi

OpenPyXLなんかモロだな
2019/12/09(月) 12:52:19.43ID:B3OID8x5M
PyPy.js
2019/12/09(月) 13:01:08.05ID:uy6UoUfX0
パイよりUnknownの方が小学生っぽい
2019/12/09(月) 13:14:32.96ID:W35ag/eC0
アンノウン
pokemonか?
2019/12/09(月) 19:03:14.34ID:qstQ/AaFd
TaoPyPy
2019/12/11(水) 02:08:07.86ID:NlUu95PV0
ソフトバンクnumpy買い
636デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/11(水) 13:23:22.32ID:8OP/pbIdF
anaconda3 python3.7 ですが
既に入っているパッケージの入手元を調べる方法は何がありますか
conda で入れたかどうか
pip で入れたかどうか
等々です
2019/12/11(水) 13:31:38.38ID:H3x5MOt+0
$ conda list
$ pip list
638デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/11(水) 13:38:34.78ID:8OP/pbIdF
>>637
thx
conda list で pip の方は <pip> で区別されて一緒に出て来ました
639デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/11(水) 19:07:02.42ID:vLW+jnoH0
yokokara
640デフォルトの名無しさん (ラクペッ MM51-nv6m)
垢版 |
2019/12/11(水) 20:51:00.60ID:AlQZKEFQM
冗談じゃねぇ…
641デフォルトの名無しさん (ワッチョイ 2390-WBaP)
垢版 |
2019/12/11(水) 22:18:20.73ID:uCW0/TTg0
ライブラリをちょっと利用するだけですが
python何級ですか
642デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/11(水) 22:29:07.29ID:ZNICBuCu0
jupyter notebookにて、
cellを実行すると、
In [*]となったままになり、
実行されていない(?)ような感じです。
cellを追加してprint文を試してみても、
In [*]となったままで何も変化ありません。

原因としてどういうことが考えられますか?
どういう対処がいいのでしょうか?

とりあえずPCを再起動してみます。
643デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/11(水) 23:36:02.38ID:ZNICBuCu0
PCを再起動したら直りました
2019/12/12(木) 00:52:04.46ID:+YhONMb20
Djangoを勉強し始めようと思うのですが今なら2.2と3.0どっちで勉強するべきですか?
2019/12/12(木) 01:00:56.27ID:Laq1l5/Ia
まだ2.2でいいんじゃない?
といってもまだ自分は3の魅力がわからないが
2019/12/12(木) 01:38:59.36ID:iBxh2FrV0
ソースコードを確認したくて、pyiファイルに行きついたのですが

def bind(self, address: Union[_Address, bytes]) -> None: ...

というコードに行き着きました。

pyiファイルは型とreturnを指定しているとわかりましたが、最後の「...」の意味がわかりません。
省略という意味なら、def bind()のコードはどこに書かれているのでしょうか。


以下のライブラリを調べているときにつまづきました。
import socket
socket.bind(('127.0.0.1', 50007))
2019/12/12(木) 02:24:28.57ID:n05Ewb3K0
>>646
pyiファイルはタイプチェッカー用にタイプヒントが書いてあるだけでソースではない

IPythonでimport socketして
socket?? でsocketモジュールのソースが見れる
socket.socket?? でsocketクラスのソースが見れる

継承元の_socketを見たければ
import _socketして_socket?? とか _socket.socket??とすれば中身の確認ができる
ただCで書かれてるモジュールだとソースは通常PC内に無いので見たければGithubへ
2019/12/12(木) 03:53:42.46ID:iBxh2FrV0
>>647
ありがとうございます。
IPythonで調べたところ以下がわかり、_socket.pydは中身が見れないのですね。

In [5]: _socket??
Type: module
String form: <module '_socket' from 'C:\\Users\\★\\Anaconda3\\DLLs\\_socket.pyd'>
File: c:\users\★\anaconda3\dlls\_socket.pyd


githubで調べたところ、関数名やファイル名が違うため、若干不安がありますが
これが_socket.pydの中身かなと考えています。

https://github.com/python/cpython/blob/3.8/Modules/socketmodule.c
2019/12/12(木) 10:47:23.30ID:WJA8YZFG0
define文だけで350行ある8000行のCコードは
さすがに有り難すぎて目がつぶれる
650デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
垢版 |
2019/12/12(木) 10:50:19.57ID:a67Hqgb2F
後半 2/3 は読まなくて良いわ
651デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
垢版 |
2019/12/12(木) 10:53:49.28ID:a67Hqgb2F
static struct PyModuleDef socketmodule = {
PyModuleDef_HEAD_INIT,
PySocket_MODULE_NAME,

PySocket_MODULE_NAME は socketmodule.h で定義されていて _socket

static PyMethodDef sock_methods[] = {
{"_accept", (PyCFunction)sock_accept, METH_NOARGS,
accept_doc},
{"bind", (PyCFunction)sock_bind, METH_O,
bind_doc},

static PyObject *
sock_bind(PySocketSockObject *s, PyObject *addro)
{
2019/12/12(木) 11:40:57.10ID:iBxh2FrV0
>>651
ありがとうございます。
こういうファイル名、関数名の指定の仕方をするんですね。

詳しく知りたくなったのでC言語ちゃんと勉強しようと思います!
653デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
垢版 |
2019/12/12(木) 12:38:37.28ID:+0+O0CYDF
ハゲめ
654デフォルトの名無しさん (ワッチョイ 5f01-ECc1)
垢版 |
2019/12/12(木) 20:20:40.21ID:TAtdTKRF0
yokokara
655デフォルトの名無しさん (アウウィフ FF3b-EbeN)
垢版 |
2019/12/13(金) 09:18:39.88ID:V90d9jYdF
後ろから前から
2019/12/13(金) 10:16:02.25ID:28zzsni/0
どうぞ
2019/12/13(金) 10:28:09.83ID:fWoekzfp0
おじいちゃんには無理
658デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/13(金) 12:56:09.77ID:GfCEY4leM
バブー!
赤ちゃんにも無理!
659デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/13(金) 12:57:08.54ID:GfCEY4leM
>>657
おじいちゃんていくつから?
2019/12/13(金) 14:50:02.28ID:fWoekzfp0
畑中葉子を知っているかどうか、で
661デフォルトの名無しさん (ワッチョイ 4ee2-k5o5)
垢版 |
2019/12/13(金) 17:38:44.32ID:LgMe1a680
asyncioを用いて非同期プログラムを作成しようと考えています。

一方からのシグナルで多方の待ちを解除させたいのですが、
タイムアウトで継続するようにするにはどのようにすればよいのでしょうか。

類似のthreading.Event()には、timeoutの指定が可能なので、
同様の用途としたいと考えています。

gEvent = asyncio.Event()

async def wait():
await funcWait()
print('Hello')

async def funcWait():
   #ここで他方からのイベントまたは、2秒待ちで解除できるようにしたいが、
#asyncio.Eventではタイムアウトの指定ができない
await gEvent.wait()

def funcWake():
   #ここから起動させる。
gEvent.set()
2019/12/14(土) 15:06:07.62ID:tCtWHq2v0
>>661
https://docs.python.org/3/library/asyncio-sync.html#asyncio.Event
↑ここのサンプルコードで言うと3行目の
await event.wait()

await asyncio.wait_for(event.wait(), timeout=0.5)
にすればいいんでないの?
663デフォルトの名無しさん (ラクペッ MMb7-bAjL)
垢版 |
2019/12/14(土) 16:19:13.98ID:6pe8fjHNM
正月にPRしてみるか
単に不便だし通りそうだよな
664デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/14(土) 16:36:34.23ID:+vJVjv8EM
>>660
知ってます

つーことは俺はジジイなの?
665デフォルトの名無しさん (ワッチョイ 5f01-ECc1)
垢版 |
2019/12/14(土) 17:03:11.83ID:dDx9/YlQ0
yokokara
666デフォルトの名無しさん (ワッチョイ e702-aVZR)
垢版 |
2019/12/14(土) 20:37:28.67ID:JIkE1Uel0
スレの流れ無視してすまん。
最近やたら目に付く「Python」なる文字、何て読むのか分からなかったが、
今日初めて「パイソン」って読むのを知った。スゲースキルアップした気分だ!
2019/12/15(日) 02:24:43.74ID:K3IRPfAN0
pipの正式名称はピップエレキバン
2019/12/15(日) 02:32:51.76ID:LmvvS1U50
寒!
2019/12/15(日) 04:59:53.78ID:K3IRPfAN0
virtualenvの正式名称はヴァーチャルエンビロンビロン
670デフォルトの名無しさん (ワッチョイ c34e-XG4+)
垢版 |
2019/12/15(日) 10:26:23.18ID:Vubv4fuS0
pythonのマスコットキャラは、ぴちょんくん!
2019/12/15(日) 12:23:35.08ID:SSIjTXGn0
PIPと言えば
Peripheral Interchange Program
だった時代があった
672デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
垢版 |
2019/12/15(日) 13:32:48.61ID:o9m7qUoDF
CP/Mのコマンド
2019/12/18(水) 14:33:44.01ID:j0+9FDxCM
実行ファイルの2つ上の絶対パスが欲しいのですがどう書いたらよいでしょうか
pyinstaller使う関係でos.path.dirname(__file__)が空になっちまいます
2019/12/18(水) 15:43:31.55ID:cSMQFuD30
「2つ上」って 相対パスで書いたら「../../」ってことけ?
2019/12/18(水) 15:43:32.02ID:N9ghlCsW0
>>673
https://pythonhosted.org/PyInstaller/runtime-information.html
2019/12/18(水) 18:23:28.79ID:Gu+BjTT0H
なんかこんがらがってきた
絶対パスをargv[0]で取得して、そっから2つ上のパス名が欲しいんだけど、書き方がわからない
正規表現とか使って削るんですか…?
2019/12/18(水) 18:25:29.34ID:cSMQFuD30
>>676
あたまわるい俺的な発想では
「/」でsplitして
ケツから2個削って
「/」を足しながらjoinすればいいのでは。
2019/12/18(水) 18:33:57.98ID:Gu+BjTT0H
最終的にtkinter.filedialog.asksaveasfilenameのinitialdir引数にダイアログ開いたときの初期ディレクトリとして実行ファイルの2つ上のパス名を入れたいんです
やっぱ文字列遊びするしかないのか
2019/12/18(水) 18:37:36.93ID:/Y2Hp80PM
pathlibでやってらいいらしいぜ
ぐぐったらすぐ出てきたけど、なんでやらんかね
import pathlib
p_path = pathlib.Path()
print(p_file.resolve().parent.parent)
だとさ
書き方って何さ。文字列操作の話?
正規表現で削って目的が達成できるならそれも正解だろ
2019/12/18(水) 18:49:32.48ID:N9ghlCsW0
pyinstaller関係なく単にparentディレクトリの取得方法が知りたかったんやね

1. pathlib.Path('..').resolve()
2. pathlib.Path('.').resolve().parent
3. os.path.abspath(__file__ + "/../../")
2019/12/18(水) 18:55:37.81ID:UxVZOQ3N0
他には
os.path.abspath(os.path.dirname(sys.argv[0]) + "/../..")
とか
682デフォルトの名無しさん (ブーイモ MM3e-XoZ/)
垢版 |
2019/12/18(水) 21:54:48.37ID:d3RMttw1M
600です。
毎日、Pythonをいじって
いろいろやってたら慣れてきた!

つか、グクるといろいろ
情報がある!
2019/12/18(水) 23:49:40.43ID:j3JURanB0
改訂2版 Ruby逆引きハンドブック、2018

普通は、こういう本を読んで、どういう関数・スニペットがあるのかを見る。
そしたら、Node.js にも類推適用できる

例えば、Ruby のPathname クラスなら、パス名をオブジェクト指向らしく扱う

path.parent.parent # 親の親へ
expand_path # 絶対パスへ変換する
2019/12/19(木) 00:06:45.34ID:GPG9uResM
これまでjavaを使ってたんですけどpythonとjavaの違いとかを教えてくれるサイトとかありますか
685デフォルトの名無しさん (ワッチョイ 5701-fd2f)
垢版 |
2019/12/19(木) 00:12:56.61ID:Lg0ZbErZ0
横からすみません。
684さんと近い状況だったので、失礼します。
私も悩んでいることがありまして(ry
2019/12/19(木) 00:38:43.46ID:dMnFAlGo0
Python は独特!
インデントの深さで決まるから、ややこしくて仕方ない。
それで、do〜end を使った、Ruby っぽい、Julia が流行ってきた

Ruby のようにメソッドチェーン中心なのは、JavaScript, jQuery, Groovy, Kotlin がある

Ruby のように、Duck Typing 中心なのは、Go
2019/12/19(木) 00:56:05.81ID:ihSprblwM
GoはDuckTypingではない
Rubyみたいなウンコと一緒にするのはやめてください
2019/12/19(木) 07:59:30.92ID:0eo+DnKB
専門学校のコンピュータ・アニメ・ゲーム科卒から数年経ってプログラマーを目指したくなった者なんですがやっぱり未経験者は四年制大学の新卒しか採用されませんか?
やりたい事はAIのプログラミングです
言語はPythonを覚え中です
2019/12/19(木) 08:02:24.02ID:0eo+DnKB
( ゚д゚)ゲッ!
2019/12/19(木) 08:22:41.86ID:0eo+DnKB
やっぱりPythonはやめてKotlinにしました
2019/12/19(木) 08:30:19.54ID:KbDg7MVTa
>>688
ゲームプログラミングできたら問題ないでしょ

UnityかUE4で自然環境シミュレーションできれば写真動画系だったら採用されると思うよ。Houdiniで建物と自然物量産できたら勝ち確。
2019/12/19(木) 08:32:31.16ID:0eo+DnKB
>>691
KotlinにしたのでPythonの勉強はもう辞めました
2019/12/19(木) 08:33:43.77ID:KbDg7MVTa
悲しい……
2019/12/19(木) 08:50:03.60ID:KbDg7MVTa
3D使う機械学習勢増えて欲しいんじゃーー!
2019/12/19(木) 13:15:39.67ID:P8P/C84B0
>>612
俺みたいに
仕事上どうしてもプログラム
書かなきゃいけない人間に
VBAとpythonだけって多そう

単純に手段だと割り切るとこいつら
が一番つかいやすい 
696デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/19(木) 14:18:43.29ID:+cpLTGtZF
>>676
os.path.abspath(os.path.join(sys.argv[0], '..', '..'))
2019/12/19(木) 18:35:50.56ID:UoMpZOx6a
>>686
インデントを深くするなら、その部分を関数にしてしまうという解決策がある
2019/12/20(金) 21:18:16.85ID:mYsBdw2Fa
Nobody learns how to write good software without writing lots lots of bad software first. Don't let fear that your code will suck paralyze you.
2019/12/20(金) 22:11:19.46ID:WigKa+sDa
>>698
なんて?
2019/12/20(金) 22:22:06.89ID:Ftka/HpE0
>>699
Because humans can only learn from experience.
2019/12/20(金) 22:23:11.33ID:Ftka/HpE0
>>696
おおカッコイイ
横レスだが
2019/12/20(金) 23:53:57.17ID:Lbzp6PKj0
愚者は自分の経験に学ぶ
2019/12/24(火) 19:55:20.72ID:E3+btAgr0
>>699
汚いコードでソフト書く経験無しで、きれいなコードなんか書けるわけないんだから
恐れずに突っ込んで行けや。将来自分のコードで自分が麻痺しちゃうかもだけどなw
2019/12/24(火) 21:53:54.19ID:F/I2bRgH0
>>696
from pathlib import Path
str(Path(sys.argv[0]).parent.parent)
705デフォルトの名無しさん (ワッチョイ 5701-fd2f)
垢版 |
2019/12/24(火) 23:12:45.33ID:Ee0zSIox0
北海道のグラサンスーパーハゲザーはここにはこないのー?
2019/12/25(水) 06:15:17.21ID:1fTZ/ZaM0
愚者は経験にすら学ばない。
707デフォルトの名無しさん (ラクペッ MM6b-WN6U)
垢版 |
2019/12/25(水) 19:26:22.86ID:c4p6SG4jM
Python辞めてkotlinの意味がわからん
データ分析や学習機の作成するならPython、Androidアプリ作るならkotlinと
明確にできることが違うんだから
普通は両方やるでしょ
2019/12/25(水) 19:28:34.77ID:1QUwzRuPa
あれ、pythonってandroid版ないんだっけ?
2019/12/25(水) 19:32:44.88ID:1QUwzRuPa
あったけど……これは……なんか違う
710デフォルトの名無しさん (ブーイモ MMed-nYFM)
垢版 |
2019/12/26(木) 19:39:56.06ID:/xegqUpGM
同じ失敗を繰り返すのが人間
2019/12/26(木) 21:50:47.90ID:LO6FMvP80
kotlin+機械学習ライブラリと、java+spring+機械学習ライブラリだと
画像処理ではどっちの方が親和性高いんだろう
712デフォルトの名無しさん (ワッチョイ 8b63-b920)
垢版 |
2019/12/26(木) 22:08:25.11ID:9AkEaWNs0
>>711
スレチだけど、どちらを使っても画像処理が絡むところは差が出ないと思うよ。
713デフォルトの名無しさん (ワッチョイ 01ad-VnBs)
垢版 |
2019/12/26(木) 22:32:03.02ID:Oh9j2tJw0
Pythonプログラムをスマホで作って、
実行したりデバッグできたりしたらいいなーとか
言ってたら、
先輩が、神からやり方を教わったといって
androidをroot権限取得して、loginして、
anacondaをインスコして
jupyter notebookが動くようにしてくれました。
先輩かこいい!
これで通勤電車の中でも勉強できまする!
2019/12/26(木) 22:58:06.73ID:rsJCXr8m0
君の恥ずかしい情報は全て先輩に筒抜けだ
もうすぐ先輩は秘密を守る代わりに君のバックドアを要求してくるぞ
2019/12/26(木) 23:20:52.79ID:V9vPePAWa
jupyterなんかGoogle Colabで使えるじゃん
手間暇かけてアホみたいに端末の電池消費してホッカイロ作らなくても
2019/12/27(金) 00:00:53.41ID:sixEjnLJM
スマホでプログラミングコード入力するのって、端的に言ってめちゃキツくない?アルゴリズムを考えるのには時間かかるけど、ひとたび何を書くか決まったら20文字ぐらいは打つこと決まる感じだし。
スマホ向けのプログラミング環境がある程度流行ってるってことはキーボード慣れてない人はそう思わないってことなのかな。
2019/12/27(金) 01:00:17.73ID:uyqJfPGf0
iPadはガチで開発機として実用に耐え得る性能になりつつある
iPad OS強かった

スマホはどんだけ進化しても、ガチの開発では使えないと思うわ
718デフォルトの名無しさん (ワッチョイ 62b3-KC3b)
垢版 |
2019/12/27(金) 06:36:58.15ID:jn8IXmAW0
スマホで卒論書く人がいる時代だから
2019/12/27(金) 07:29:45.08ID:F6Fl3IcU0
json書き出すときにindent指定すると改行を入れてくれると思いますが、
これ深さが一定以上の場合や配列の場合は改行を入れないといった設定はできませんか?
720デフォルトの名無しさん (ラクペッ MMb7-8n9/)
垢版 |
2019/12/27(金) 08:07:15.62ID:qzzVzMCmM
最近githubのスマホアプリ版が出たから
スマホでのコード確認はだいぶ楽になった
コーディングは時間コスパ悪いから流石にやらない
2019/12/27(金) 11:03:46.70ID:Z74RNOkKa
スマホは入力手段の問題もあるけど
画面の広さの問題もあるんだよなあ
三つ、四つのウィンドウを同時に開けて参照しながら
お互いにコピペして作業するとか全然無理
2019/12/27(金) 11:57:37.04ID:SnoWmlYG0
そもそもスマホは長文を読めるようにはできてない
小説サイトでも一回の投稿が3000文字程度
スマホだとそれくらいしか読めない
だから読む量の上限はLINEみたいに人の発話一行だけ、になる

つまり対話型プログラミングなどという奇想天外な言語があれば入力は簡単になる
2019/12/27(金) 12:07:51.36ID:4C64YFT80
>>716
外部キーボード使えばいいじゃん。
2019/12/27(金) 12:53:32.48ID:sixEjnLJM
>>723
元のレスは通勤電車で勉強出来るって言ってたから、外部キーボードは使えないんじゃない。
外部キーボード使ったらそれなりにはなるだろうけど。
2019/12/27(金) 14:48:34.23ID:bwUz9a5S0
>>719
pprintのcompact/depth/widthオプションで我慢するか
自作のpritty-printerを作るか
2019/12/27(金) 18:28:47.23ID:8rQsohSTa
>>719
継承して自分で機能足すんやで
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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