X



Pythonのお勉強 Part62

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 7301-e0wG)
垢版 |
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
0604デフォルトの名無しさん (ワッチョイ ad7f-j5Jm)
垢版 |
2019/12/07(土) 10:30:24.87ID:qRTrSeob0
>>600
Pythonが初めてのプログラミング言語なら、そりゃ覚えることは多いだろうね
自分はCやJavaに挫折して、VBAは何とか知っているというレベルの者だが
Pythonはサクっと覚えられた
こんなシンプルで多機能な言語があるのかって驚いたね

データをリスト・タプル・辞書に入れて組み込み関数や標準ライブラリで処理しつつ、流れをforやifで制御する
この範疇でプログラミングするなら最高に簡単な言語だと思うね

Webとか今流行りのAIとか、そういうのはそれで飯食ってる連中向けの高度なテーマだから
趣味でやってる人は手を出しちゃいけないよ
0607デフォルトの名無しさん (ワッチョイ a301-8opd)
垢版 |
2019/12/07(土) 11:24:00.49ID:hNCBwRLG0
Pythonは言語的に手続き型の考え方が強いから
オブジェクト指向を身につけたいなら他の言語もやったほうがいい
他のOO言語から入るとPythonだと手続き型脳を強制される場面が多くて最初はイライラした
0608デフォルトの名無しさん (アウアウクー MM41-MVf8)
垢版 |
2019/12/07(土) 11:32:30.98ID:ARR8om9gM
pythonでも、昔はクラスに集約していたところを
モジュールで集約して関数を使い回す機会が増えてきたから
昔に比べればオブジェクト指向の重要性もだいぶ落ちてきたのかな
0609デフォルトの名無しさん (ワッチョイ ad7f-j5Jm)
垢版 |
2019/12/07(土) 11:50:39.24ID:qRTrSeob0
そもそもスクリプト言語って短いコードをササっと書いてササっと実行してナンボだから
事前に綿密なクラス設計を必要とするOOとは相性が良くない
自分はOOは概念くらいしか知らないから今まで一度もクラスを書いたことはないけど、
困ったことは一度もない
0611デフォルトの名無しさん (ドコグロ MM93-5nhq)
垢版 |
2019/12/07(土) 12:15:29.90ID:erYV0nIUM
昔のOOPはオブジェクトが主でオブジェクトに振る舞いを実装するという考え方だったんだが、
Goなど最近の新しい言語ではあくまで関数が主であり、
オブジェクトは複数の関数のグループにおいて共有される単なる文脈に過ぎない、という解釈が主流になりつつある
Pythonはクラスこそあるが、OOPについては昔からわりと後者に近い立場だ
0612デフォルトの名無しさん (ワッチョイ a301-8opd)
垢版 |
2019/12/07(土) 15:15:34.81ID:hNCBwRLG0
Pythonは他言語に比べればVBAに近い存在と思っておけば間違いない
CやVBAから来た人は同じ手続き型で馴染みやすい

どの言語にも長所短所あるがPython使ってるやつは短所を理解できてないやつが多くて辟易する
0613デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/07(土) 15:43:09.95ID:y8T8hHHg0
yokokara
0614デフォルトの名無しさん (アウアウクー MM41-MVf8)
垢版 |
2019/12/07(土) 17:08:52.73ID:ARR8om9gM
オブジェクト指向で書いた方がきれいにいくパターンも多いから
そこは自分の引き出しとタスクの兼ね合い次第だろう
そもそもコードを綺麗に書くメリットが薄い職場もたくさんあるけどね
0615デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/07(土) 18:30:47.56ID:RYSIJTJ00
Pythonはムズイ!

>>612
VBAは検索&コピペでいろいろ作りました。
Cもちょっとだけやりました。
でも、Pythonとはずいぶんと違うように思います。

データ型がムズイです。
DataFrameというのを作ると行数番号とか、
列名がかってにはいってくるのですよ。
ついていけないです!

とりあえずこれに慣れないといかんので
検索&コピペでちょこちょこと作ってみてます。
目標はサイキットラーンというのでSVRという分析をやるのです。
頑張ります!
0616デフォルトの名無しさん (エムゾネ FF43-zOi5)
垢版 |
2019/12/07(土) 18:56:47.84ID:Tn5G8ZSlF
馬鹿には無理
0617デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/07(土) 19:45:03.77ID:RYSIJTJ00
俺は周囲の誰からも、馬鹿か天才かわからん!と
言われてます。

俺は簡単なことがなかなか理解できないんですよ。
でも一度理解してしまえば、そこから光速なんですよね。
だからそこまで頑張ります!
0618デフォルトの名無しさん (ワッチョイ a301-8opd)
垢版 |
2019/12/07(土) 20:25:22.48ID:hNCBwRLG0
DataFrameはPandasの話だから
Pythonがムズイというのとはちょっと違うと思うんだが
まいっか

Pandasは公式のGetting Startedを読めば理解できる
VBAをExcelで使うのにRange, Cells, Row/Columnを理解する必要があるように
PandasはDataFrame, Series, Indexの関係を最初に理解する必要がある
0621デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/08(日) 13:34:30.08ID:J+6Nu+8fF
>>617
馬鹿やろ
わかるで
0622デフォルトの名無しさん (ワイエディ MM93-7PMk)
垢版 |
2019/12/08(日) 15:24:47.79ID:DE1/XsdoM
最初はpandasでサーチしたりデータフレーム生成してたけど
配列でも同じこと出来るんじゃね?ってなってからは一切使わなくなった
他の言語で書くときに流用もできないし。Pythonしか使わないってならアリかも
0623デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/08(日) 16:39:42.27ID:ick2zDgR0
yokokara
0624デフォルトの名無しさん (ラクペッ MM51-r1mA)
垢版 |
2019/12/08(日) 17:33:04.92ID:OpMjwrsAM
時系列データを扱わないならpandas使わなくてもええんちゃう
てか他言語でコード流用って外部モジュール使ってたらどれも無理でしよ
0625デフォルトの名無しさん (ワッチョイ 2da8-nGit)
垢版 |
2019/12/08(日) 18:19:50.28ID:rTXuDKka0
他言語なら他言語の有用なモジュールを使えばいいじゃない
機械学習をPythonで行うのが主流になったのは
有用なモジュールが多数あったのも一つの要因
逆を言えば次世代の機械学習用言語に関しても
有用なモジュールが存在しなければ主流たりえない
0626デフォルトの名無しさん (ワッチョイ c597-FU7R)
垢版 |
2019/12/08(日) 20:44:56.60ID:2EcNYoWt0
pandasがなくてもいい状況はそりゃあるだろうね。
でも、CSV読み書きしたりマスタテーブルとデータテーブルの結合をしたり、ヒストグラム作ったり、統計値出したりするのにいちいち自分でそういうコードを書くのは時間の無駄でしょ。
書き方はかなり違うけどRDBMSに対するSQLでの操作みたいなことが出来るのがpandasのいいところだと思うんだが。
0629デフォルトの名無しさん (アメ MM09-IfTI)
垢版 |
2019/12/09(月) 12:02:24.75ID:VQkZ+CLbM
Deca.py
0636デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/11(水) 13:23:22.32ID:8OP/pbIdF
anaconda3 python3.7 ですが
既に入っているパッケージの入手元を調べる方法は何がありますか
conda で入れたかどうか
pip で入れたかどうか
等々です
0638デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/11(水) 13:38:34.78ID:8OP/pbIdF
>>637
thx
conda list で pip の方は <pip> で区別されて一緒に出て来ました
0639デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/11(水) 19:07:02.42ID:vLW+jnoH0
yokokara
0640デフォルトの名無しさん (ラクペッ MM51-nv6m)
垢版 |
2019/12/11(水) 20:51:00.60ID:AlQZKEFQM
冗談じゃねぇ…
0641デフォルトの名無しさん (ワッチョイ 2390-WBaP)
垢版 |
2019/12/11(水) 22:18:20.73ID:uCW0/TTg0
ライブラリをちょっと利用するだけですが
python何級ですか
0642デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/11(水) 22:29:07.29ID:ZNICBuCu0
jupyter notebookにて、
cellを実行すると、
In [*]となったままになり、
実行されていない(?)ような感じです。
cellを追加してprint文を試してみても、
In [*]となったままで何も変化ありません。

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

とりあえずPCを再起動してみます。
0643デフォルトの名無しさん (ワッチョイ 25ad-MVf8)
垢版 |
2019/12/11(水) 23:36:02.38ID:ZNICBuCu0
PCを再起動したら直りました
0646デフォルトの名無しさん (ワッチョイ c3f2-f14Z)
垢版 |
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))
0647デフォルトの名無しさん (ワッチョイ a201-VrMI)
垢版 |
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へ
0648デフォルトの名無しさん (ワッチョイ c3f2-f14Z)
垢版 |
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
0650デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
垢版 |
2019/12/12(木) 10:50:19.57ID:a67Hqgb2F
後半 2/3 は読まなくて良いわ
0651デフォルトの名無しさん (ワイーワ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)
{
0653デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
垢版 |
2019/12/12(木) 12:38:37.28ID:+0+O0CYDF
ハゲめ
0654デフォルトの名無しさん (ワッチョイ 5f01-ECc1)
垢版 |
2019/12/12(木) 20:20:40.21ID:TAtdTKRF0
yokokara
0655デフォルトの名無しさん (アウウィフ FF3b-EbeN)
垢版 |
2019/12/13(金) 09:18:39.88ID:V90d9jYdF
後ろから前から
0658デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/13(金) 12:56:09.77ID:GfCEY4leM
バブー!
赤ちゃんにも無理!
0659デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/13(金) 12:57:08.54ID:GfCEY4leM
>>657
おじいちゃんていくつから?
0661デフォルトの名無しさん (ワッチョイ 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()
0663デフォルトの名無しさん (ラクペッ MMb7-bAjL)
垢版 |
2019/12/14(土) 16:19:13.98ID:6pe8fjHNM
正月にPRしてみるか
単に不便だし通りそうだよな
0664デフォルトの名無しさん (ブーイモ MM13-XoZ/)
垢版 |
2019/12/14(土) 16:36:34.23ID:+vJVjv8EM
>>660
知ってます

つーことは俺はジジイなの?
0665デフォルトの名無しさん (ワッチョイ 5f01-ECc1)
垢版 |
2019/12/14(土) 17:03:11.83ID:dDx9/YlQ0
yokokara
0666デフォルトの名無しさん (ワッチョイ e702-aVZR)
垢版 |
2019/12/14(土) 20:37:28.67ID:JIkE1Uel0
スレの流れ無視してすまん。
最近やたら目に付く「Python」なる文字、何て読むのか分からなかったが、
今日初めて「パイソン」って読むのを知った。スゲースキルアップした気分だ!
0670デフォルトの名無しさん (ワッチョイ c34e-XG4+)
垢版 |
2019/12/15(日) 10:26:23.18ID:Vubv4fuS0
pythonのマスコットキャラは、ぴちょんくん!
0672デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
垢版 |
2019/12/15(日) 13:32:48.61ID:o9m7qUoDF
CP/Mのコマンド
0676デフォルトの名無しさん (JP 0H9e-cH/v)
垢版 |
2019/12/18(水) 18:23:28.79ID:Gu+BjTT0H
なんかこんがらがってきた
絶対パスをargv[0]で取得して、そっから2つ上のパス名が欲しいんだけど、書き方がわからない
正規表現とか使って削るんですか…?
0678デフォルトの名無しさん (JP 0H9e-cH/v)
垢版 |
2019/12/18(水) 18:33:57.98ID:Gu+BjTT0H
最終的にtkinter.filedialog.asksaveasfilenameのinitialdir引数にダイアログ開いたときの初期ディレクトリとして実行ファイルの2つ上のパス名を入れたいんです
やっぱ文字列遊びするしかないのか
0679デフォルトの名無しさん (ラクッペ MM2f-2WMb)
垢版 |
2019/12/18(水) 18:37:36.93ID:/Y2Hp80PM
pathlibでやってらいいらしいぜ
ぐぐったらすぐ出てきたけど、なんでやらんかね
import pathlib
p_path = pathlib.Path()
print(p_file.resolve().parent.parent)
だとさ
書き方って何さ。文字列操作の話?
正規表現で削って目的が達成できるならそれも正解だろ
0682デフォルトの名無しさん (ブーイモ MM3e-XoZ/)
垢版 |
2019/12/18(水) 21:54:48.37ID:d3RMttw1M
600です。
毎日、Pythonをいじって
いろいろやってたら慣れてきた!

つか、グクるといろいろ
情報がある!
0683デフォルトの名無しさん (ワッチョイ e22c-3siJ)
垢版 |
2019/12/18(水) 23:49:40.43ID:j3JURanB0
改訂2版 Ruby逆引きハンドブック、2018

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

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

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

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

Ruby のように、Duck Typing 中心なのは、Go
0688デフォルトの名無しさん
垢版 |
2019/12/19(木) 07:59:30.92ID:0eo+DnKB
専門学校のコンピュータ・アニメ・ゲーム科卒から数年経ってプログラマーを目指したくなった者なんですがやっぱり未経験者は四年制大学の新卒しか採用されませんか?
やりたい事はAIのプログラミングです
言語はPythonを覚え中です
0696デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/19(木) 14:18:43.29ID:+cpLTGtZF
>>676
os.path.abspath(os.path.join(sys.argv[0], '..', '..'))
■ このスレッドは過去ログ倉庫に格納されています

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