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/11/26(火) 06:29:59.82ID:QjP4y2YO0
例えが糞すぎる
日曜大工でもの落ちるのがよくあったって意味不明
2019/11/26(火) 06:58:14.48ID:6EvauiRdM
この程度の意味が取れないとかのレベルで絡んでくるなよ…
2019/11/26(火) 18:00:47.90ID:2zzaszX60
日曜大工と同じで考えるなら
失敗から勉強していく方向じゃないのか
2019/11/26(火) 18:14:21.48ID:pgCzIwzp0
>>553
転職でなんとかなるかどうかは年齢にもよる
2019/11/26(火) 20:50:25.12ID:Ir9XFvKYM
画像処理で450万もらってたら30代後半でも転職余裕だろ
2019/11/26(火) 21:22:38.59ID:GwsQnBsH0
職の話はマ板でやれ
2019/11/26(火) 21:48:18.28ID:pgCzIwzp0
それもそうだ
562デフォルトの名無しさん (ワッチョイ 99ad-3IAb)
垢版 |
2019/11/26(火) 23:43:47.39ID:BW9q0U+y0
客先に行ってるんですけど、
セキュリティがちがちのノートPCしか使えません。
そのノートPCにソフトはインストールできないのですが、
ネットにはつながって、ブラウザは使えるので、
自社のPCサーバーにPythonをインストールして
ノートPCのブラウザから
Pythonのちょっとしたテストや開発を
できるようにしたいと思っています。

こういうのってできるのでしょうか?
2019/11/26(火) 23:52:28.16ID:LXcR3XM90
セキュリティガチガチって事は何処に
アクセスしてるかも知られるし
個人のサーバとかあからさまに怪しまれると
思うのだけど、そこの言い訳は用意できるの?
技術云々よりコンプラの問題だと思うけど
2019/11/27(水) 00:05:10.79ID:M9o5zXjeM
そのノートにPython3が入ってるなら、
vimでコードを書いてコマンドラインでテストすればいいんじゃね
ソフトにこだわって自宅サーバーにアクセスして下手に怪しまれるよりはマシ

技術的にはアドオンでも余裕で出来るけど
2019/11/27(水) 00:40:10.47ID:xegr+OuL0
会社のサーバーに外からのコード実行できるようにするのはセキュリティ的にどうなのよ
2019/11/27(水) 01:42:24.72ID:qDKo2wLX0
>>562
簡単なテスト位ならすぐに出来るよ
webサーバーたてる
オレオレでいいからsslにする
textareaのスクリプトをpostして実行結果を返すページを作成する
ページにはパスワードを掛けるがワンタイム的なものにする
セキュリティーやらコンプライアンスやらは知らん
本格的な開発となったら相当ハードルが高いと思う

簡単なテスト位ならプログラム実行できるウェブサービス使ったらいいんじゃないの
https://wandbox.org/
2019/11/27(水) 08:43:24.00ID:JL21LwVWr
俺はGCPのGoogle Cloud Shellで遊んでるわ
code-server入れてWeb版VSCode使ったり
568デフォルトの名無しさん (ワッチョイ 8b10-b4Py)
垢版 |
2019/11/27(水) 08:49:20.82ID:3l+EKJ1k0
>>562
thinクライアントかな技術的にはできる
セキュリティとか会社のルールとかそこら辺をどうするか

仮想PCにシンクライアントからアクセスして使うとかはよくあると思う
2019/11/27(水) 09:28:24.06ID:G0CptmQy0
あれWeb版VSCodeきてたの?普通にRDPで使ってた
2019/11/27(水) 09:59:37.44ID:vYtjQlD0M
さっさと自社事業系へ転職したほうがいいよ
俺も経験あるから気持ちはよくわかるが、後で振り返ると足掻くだけ本当に時間の無駄だった
2019/11/27(水) 15:32:40.52ID:oHtwMU01d
脱初心者向けの勉強って何見て何やればいいかな
基礎は入門書で一通り学んでクラスとかの作り方や概念は知ってるけど
実際にクラスをどういう時に使えばいいか分からない
関数とか内部論理が汚いけどどうリファクタリングすればいいかイマイチ分かってない
デザインパターン使えば綺麗になるとか聞くけどなにそれ美味しいの?状態

とりあえず目的を達成するプログラムは超汚いのを組めるってレベルなのです
2019/11/27(水) 15:43:15.95ID:vYtjQlD0M
何がしたいのかによるだろ
アドホック分析とか個人的なデータ処理とかでとりあえず動きゃいいんなら作法なんかどうでもいい
複数人でシステム作るんならさっさと就職して現場で叩かれて覚えればいい
OSS開発に参加したいんならOSSのソースを読めばいい
2019/11/27(水) 16:52:27.86ID:Y+dcXzw20
pyinstallerってどうやってスクリプトをバイナリ化してるんだろうか
2019/11/27(水) 18:08:08.08ID:oHtwMU01d
>>572
んー 現場が底辺請負だから周りも同レベルぐらいなんだけど
きちんとした知識と技術を身に付けたいんだよ OSSに参画すればいいのかな
Pythonに限らず未経験者向けとかの初心者用の教材はあふれてるけど
中級者向けの教材って殆どないよね
現場でのノウハウとか個人スキルに直結する要素だから
試行錯誤で身に付けるしかないの?
2019/11/27(水) 18:16:10.09ID:vYtjQlD0M
>>574
じゃあまずは超定番だけどリーダブルコードを読んできなさい
テクニックを覚えてもコードの品質は上がらん
2019/11/27(水) 18:54:18.28ID:ymKEnJ4Y0
>>571
1. リファクタリング (2000年の旧版で十分、Ruby版はクソ、JS版もエッセンスは旧版と同じ)
2. Clean Code (2008年の旧版で十分)
3. Head First デザインパターン

どれも初心者向けでコードサンプルはJava
古いから今どきこんな書き方しねーよってのはあるかもしれないが
リファクタリング方法やデザインパターンに関わる考え方はOO言語を使う上での基礎なので
それを把握できてないと思うならそこから始めるのがいい

上の本の内容を把握できたらPythonのイディオムやらパターンをオンラインで学んだり
標準ライブラリやメジャーなライブラリのコードを読んだりして少しずつ自分の道具箱を拡張していく
Python詳しくやりたいならPython in a Nutshellってのがおすすめだけど日本語になってるかは知らない
2019/11/27(水) 20:10:43.77ID:oHtwMU01d
>>575 >>576
どうもありがとう
教えて貰った書籍をベースに学習してみます
OO言語に関してもまだまだ理解不足なのは実感しているので
きちんと把握しないとね...
578デフォルトの名無しさん (ワッチョイ 1333-/L9V)
垢版 |
2019/11/27(水) 20:37:56.94ID:B60R3/9n0
テストを書く
フレームワークを使ってみる
ICMP、TCP、UDP、IP、HTTP、DNS等のプロトコルの勉強
とか
2019/11/27(水) 20:46:12.06ID:R3eAH8fN0
>>571
PEP8はシッカリ覚えてるんけ?
まだなら読んどけ

でもって自作の超汚いブツを
半年から2年間熟成させてから
読み返せ
過去の自分に殺意が湧くからw
2019/11/27(水) 20:48:16.49ID:R3eAH8fN0
>>573
インターネッツ検索すると
> Pythonを起動するためのexeファイルに、Pythonのモジュールやスクリプト類を内包したZIPファイルを背負わせる
って出てきた

-onefileオプションを外してみたら、
どうなってるかちょっとは分かるかもしれないかもしれない。
2019/11/27(水) 22:03:36.30ID:ap410XA+0
pythonのその手の仕組みってすごく原始的だったりするよな。
venvで実行環境一式まるまるコピーされてるのを見てずっこけた。
2019/11/28(木) 01:01:27.98ID:I5pcYdHzM
『実践 Python 3』がもっとも力になった。難易度は突き抜けてるけどな
てか、これ以上のレベルだと書籍化されない印象
2019/11/28(木) 01:34:25.39ID:3DFzYJdox
この本は?(2.5らしいけど)
https://www.oreilly.co.jp/books/9784873114637/
2019/11/28(木) 17:43:19.41ID:LOw3zHb+0
>>580-581
けっこう原始的なんだな
Pythonのコードをバイナリにトランスパイルでもしてるのかと思った
2019/11/28(木) 18:03:55.74ID:f9JN6uOx0
>>583
オライリー?
ゆうめい。だが、(もぅ)古い。。。
2019/11/28(木) 20:00:18.92ID:1KeEHfkK0
numpyのインデックスについてなんですが、配列の値を調べてなんらかの条件で
bool型の配列を返す関数がfunc1とfunc2の2種類あるとして、
以下のように使った場合元のaに対応したbool型配列を得るうまい方法ってなにかあります?

a = np.random.rand(100)
b = func1(a)
c = func2(a[b])

自分で考えたら以下のようになったんですがもっと良い方法はないのか悩んでいます。

e = np.arange(len(a))[b][c]
f = np.zeros(len(a), dtype=bool)
f[e] = True
2019/11/28(木) 20:54:34.31ID:dPzyqI7AM
>>586
np.logicaland(func1(a),func2(a))
短く書くならこうか

func2が実行される回数増えちゃうけど
588デフォルトの名無しさん (ワッチョイ 8101-MhVQ)
垢版 |
2019/11/28(木) 21:16:25.52ID:K3PYic3H0
>>586
yokokara
589デフォルトの名無しさん (ワッチョイ adb3-QYLK)
垢版 |
2019/11/28(木) 22:37:53.70ID:RcUEGOs40
自演がばれたから今度は末尾Mで再挑戦やな
2019/11/28(木) 23:23:31.37ID:1KeEHfkK0
>>587
ありがとうございます。
小出しで申し訳ないのですが、func2はfunc1の結果で抽出した配列入れる必要があります。
そんな感じで意図が分かりやすい方法があると嬉しいです。
2019/11/29(金) 00:46:18.20ID:ZRMLeeOO0
配列の中の値ではなく配列自体が必要なのか
なら最初のままでいいじゃん
592デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
垢版 |
2019/11/29(金) 09:44:46.31ID:N/f9f1S7F
>>571
オブジェクト指向入門-第2版-原則・コンセプト 4798111112
オブジェクト指向入門-第2版-方法論・実践 4798111120

初版の方が良いかも知れないが
どれも初心者向けでコードサンプルはEiffel
古いから今どきこんな書き方しねーよってのはあるかもしれないが
リファクタリング方法やデザインパターンに関わる考え方はOO言語を使う上での基礎なので
それを把握できてないと思うならそこから始めるのがいい

上の本の内容を把握できたらPythonのイディオムやらパターンをオンラインで学んだり
標準ライブラリやメジャーなライブラリのコードを読んだりして少しずつ自分の道具箱を拡張していく
Python詳しくやりたいならPython in a Nutshellってのがおすすめだけど日本語になってるかは知らない
2019/12/06(金) 17:49:29.60ID:4nCUirIna
機械学習関係です。
以下のコードでtrain_df,test_dfの内容が変更されないのですが何がいけないのでしょうか?

import pandas as pd
import numpy as np

train_df = pd.read_csv('/home/weekender/work/titanic/train.csv')
test_df = pd.read_csv('/home/weekender/work/titanic/test.csv')
combine = [train_df, test_df]

for df in combine:
df = df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)

print(train_df)
print(df)
594デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 17:52:26.49ID:rmctNxUZF
上書きしてないから
2019/12/06(金) 18:10:16.81ID:4nCUirIna
なるほど。
train_dfとtest_dfで同じこと書きたくないんですけどeval以外で手段ありますか?
596デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 18:15:01.36ID:rmctNxUZF
df['train']
df['test']
597デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/06(金) 18:27:46.53ID:c6fF/5cl0
yokokara
2019/12/06(金) 19:03:17.70ID:bsu7R2yD0
>>595
mapとかlist comprehensionとか

df1 = pd.DataFrame([1, 2, 3, 4, None])
df2 = pd.DataFrame([None, 0, 1, 2, 3])
[df1, df2] = [df.dropna() for df in [df1, df2]]

(機械学習関係ないやーん)
2019/12/06(金) 19:06:24.77ID:4nCUirIna
リスコンでいいです。
ありがとうございました。
600デフォルトの名無しさん (ワッチョイ 25ad-pckF)
垢版 |
2019/12/07(土) 03:32:04.45ID:RYSIJTJ00
Pythonって
覚えること多くて
大変です
つか、ムズイんすけど?

あんたらはさくっと覚えたの?
601デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/07(土) 05:58:43.98ID:y8T8hHHg0
>>600
秘技
yokokara
2019/12/07(土) 09:15:57.36ID:ARR8om9gM
>>600
最初に学ぶ言語がpythonだと落とし穴たくさんあるよね
直感的でわかりやすいという利点はあるけど
2019/12/07(土) 10:13:40.99ID:i1TdHIG20
>>600
単位がかかってたのでhissiですただ
2019/12/07(土) 10:30:24.87ID:qRTrSeob0
>>600
Pythonが初めてのプログラミング言語なら、そりゃ覚えることは多いだろうね
自分はCやJavaに挫折して、VBAは何とか知っているというレベルの者だが
Pythonはサクっと覚えられた
こんなシンプルで多機能な言語があるのかって驚いたね

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

Webとか今流行りのAIとか、そういうのはそれで飯食ってる連中向けの高度なテーマだから
趣味でやってる人は手を出しちゃいけないよ
2019/12/07(土) 10:46:22.16ID:ARR8om9gM
Pythonを学ぶのにオブジェクト指向を理解していない奴が多すぎる
データ分析に使うだけなら別にいいけど
2019/12/07(土) 10:53:36.73ID:i1TdHIG20
>>604-605
おれはC的発想から抜けろ!とよく怒られてるけど
簡単なWebツールはできてる(幾つか運用中)ず・・・
2019/12/07(土) 11:24:00.49ID:hNCBwRLG0
Pythonは言語的に手続き型の考え方が強いから
オブジェクト指向を身につけたいなら他の言語もやったほうがいい
他のOO言語から入るとPythonだと手続き型脳を強制される場面が多くて最初はイライラした
2019/12/07(土) 11:32:30.98ID:ARR8om9gM
pythonでも、昔はクラスに集約していたところを
モジュールで集約して関数を使い回す機会が増えてきたから
昔に比べればオブジェクト指向の重要性もだいぶ落ちてきたのかな
2019/12/07(土) 11:50:39.24ID:qRTrSeob0
そもそもスクリプト言語って短いコードをササっと書いてササっと実行してナンボだから
事前に綿密なクラス設計を必要とするOOとは相性が良くない
自分はOOは概念くらいしか知らないから今まで一度もクラスを書いたことはないけど、
困ったことは一度もない
2019/12/07(土) 12:07:26.85ID:U9XnFfRha
GoにもRustにもJuliaにもクラスは無い
オブジェクト指向は廃れてるよ
2019/12/07(土) 12:15:29.90ID:erYV0nIUM
昔のOOPはオブジェクトが主でオブジェクトに振る舞いを実装するという考え方だったんだが、
Goなど最近の新しい言語ではあくまで関数が主であり、
オブジェクトは複数の関数のグループにおいて共有される単なる文脈に過ぎない、という解釈が主流になりつつある
Pythonはクラスこそあるが、OOPについては昔からわりと後者に近い立場だ
2019/12/07(土) 15:15:34.81ID:hNCBwRLG0
Pythonは他言語に比べればVBAに近い存在と思っておけば間違いない
CやVBAから来た人は同じ手続き型で馴染みやすい

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

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

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

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

俺は簡単なことがなかなか理解できないんですよ。
でも一度理解してしまえば、そこから光速なんですよね。
だからそこまで頑張ります!
2019/12/07(土) 20:25:22.48ID:hNCBwRLG0
DataFrameはPandasの話だから
Pythonがムズイというのとはちょっと違うと思うんだが
まいっか

Pandasは公式のGetting Startedを読めば理解できる
VBAをExcelで使うのにRange, Cells, Row/Columnを理解する必要があるように
PandasはDataFrame, Series, Indexの関係を最初に理解する必要がある
2019/12/07(土) 20:33:27.35ID:3zbqIjtY0
python自体は毎日使ってるけど、pandas は二、三か月使わなかったりするんで
使おうとしたときにあれ?って思うことが多いな
2019/12/08(日) 00:16:58.84ID:d61YKsOU0
機械学習の型調整はプログラミング初心者にはシビアかもね
型の受け渡しで、CatBoostのコーディング以上に苦労する機会はそんなにない
621デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/08(日) 13:34:30.08ID:J+6Nu+8fF
>>617
馬鹿やろ
わかるで
2019/12/08(日) 15:24:47.79ID:DE1/XsdoM
最初はpandasでサーチしたりデータフレーム生成してたけど
配列でも同じこと出来るんじゃね?ってなってからは一切使わなくなった
他の言語で書くときに流用もできないし。Pythonしか使わないってならアリかも
623デフォルトの名無しさん (ワッチョイ 7501-cb5P)
垢版 |
2019/12/08(日) 16:39:42.27ID:ick2zDgR0
yokokara
624デフォルトの名無しさん (ラクペッ MM51-r1mA)
垢版 |
2019/12/08(日) 17:33:04.92ID:OpMjwrsAM
時系列データを扱わないならpandas使わなくてもええんちゃう
てか他言語でコード流用って外部モジュール使ってたらどれも無理でしよ
2019/12/08(日) 18:19:50.28ID:rTXuDKka0
他言語なら他言語の有用なモジュールを使えばいいじゃない
機械学習をPythonで行うのが主流になったのは
有用なモジュールが多数あったのも一つの要因
逆を言えば次世代の機械学習用言語に関しても
有用なモジュールが存在しなければ主流たりえない
2019/12/08(日) 20:44:56.60ID:2EcNYoWt0
pandasがなくてもいい状況はそりゃあるだろうね。
でも、CSV読み書きしたりマスタテーブルとデータテーブルの結合をしたり、ヒストグラム作ったり、統計値出したりするのにいちいち自分でそういうコードを書くのは時間の無駄でしょ。
書き方はかなり違うけどRDBMSに対するSQLでの操作みたいなことが出来るのがpandasのいいところだと思うんだが。
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
後ろから前から
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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