[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/04 07:07 / Filesize : 257 KB / Number-of Response : 1033
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part58



1 名前:デフォルトの名無しさん [2018/10/25(木) 20:50:10.29 ID:NRPlmaaN.net]
★当スレにRubyのコードを書くことを禁ず

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

■前スレ
Pythonのお勉強 Part57
mevius.5ch.net/test/read.cgi/tech/1529888279/

◆関連スレ
くだすれPython(超初心者用) その39
mevius.5ch.net/test/read.cgi/tech/1535064635/

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

◆ソースコードをそのまま5ちゃんにコピペするとインデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。このスレ的には消えるまでの日数を長めに指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)


次スレは>>980が挑戦する

158 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 12:49:55.61 ID:eKuwOju4.net]
raise って、例外処理機構か?

Ruby では、ネストしたループから、一気に抜け出す、
catch, throw という構文があるけど、

Python には無いのか?

159 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 13:42:04.28 ID:PaGiVTh9.net]
発売されますた
https://twitter.com/CASIOJapan/status/1069761266040750080
(deleted an unsolicited ad)

160 名前:デフォルトの名無しさん [2018/12/04(火) 16:51:12.82 ID:sXsP4O66.net]
>>catch, throw という構文があるけど、

東大版LISPにも存在してた。懐かしいな

161 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:18:15.77 ID:tZo4U3wG.net]
>>153
知る限り綺麗なのは無いですね。
フラグを使うか、中のループを関数化して
戻り値でbreakするって言う
旧態然としたロジックを使ってます

162 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:20:54.42 ID:tZo4U3wG.net]
>>153
そうです。例外処理機構です。
だから、ループを抜けるために使うのは
本当は駄目でしょうね。
教えた人はわかってて書いてると思いますが

163 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:34:34.89 ID:MA/iyfZ3.net]
多重ループを抜けて即終了の関数で多重break処理の代わりにreturnでいいかと思ったことはある
そもそもreturnは関数の最後に1回だけみたいに勝手に型にはめて書いてたから思いつかなかった
その後そんな場面に遭遇してないのでやったことははないw

164 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:49:29.96 ID:qgvunLXb.net]
>>158
途中でreturnはジッサイ便利

165 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 18:27:15.99 ID:MA/iyfZ3.net]
>>159
そういう目的で多用するととんでもないものができそうだけど
breakすら技量不足みたいな人間が見たら卒倒するようなw

166 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 19:31:19.54 ID:qgvunLXb.net]
>>160
うん
多用は禁物



167 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 05:47:31.36 ID:oxGlJnmc.net]
深いループを抜ける処理を書く必要があるときに、その部分だけメソッドの外に出してreturnで済ますことはたまによくある

168 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 07:47:33.33 ID:U0xNOyp+.net]
そこでgotoですよ

169 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 08:59:30.48 ID:2zrT35AA.net]
リーヌス・トーバルズさんはLinuxカーネルでgoto使いまくりんぐwwwです。

170 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 09:08:35.47 ID:9LXb4nZY.net]
Cだとなんか許せる

171 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 09:29:37.25 ID:sYveP2hw.net]
pythonは諦めろ

172 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 10:22:44.38 ID:RWjY2KY8.net]
PHPだとbreak 2で2つ分ループ抜けられるね。
gotoよりは構造的だと思うけど、採用している言語は少ないね。

173 名前:デフォルトの名無しさん [2018/12/05(水) 16:52:15.42 ID:mibG/iOQ.net]
ベタだけど二重ループなら、それぞれの条件満たしちゃえば?

174 名前:デフォルトの名無しさん [2018/12/05(水) 17:16:42.34 ID:oxGlJnmc.net]
>>168
whileループならそれも場合によっては簡単にできるけど
for i in range() だとそれはできない

175 名前:デフォルトの名無しさん [2018/12/05(水) 17:25:30.95 ID:kX9gokKe.net]
iteration stop exception 出せ

176 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 17:53:39.30 ID:XBoqgBKa.net]
例外警察によると劣化gotoらしいし



177 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 18:25:37.39 ID:ia6HrgTH.net]
>>167
PowerShell はループにラベルをつけて break ラベル名 でそのレベルまで抜けられる
L1: foreach( ){
foreach( ){
if( ){
break L1
}
}
}
構文的にはこれが一番わかりやすいと思う

178 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 18:35:42.49 ID:XBoqgBKa.net]
javaのパクリじゃん。

179 名前:デフォルトの名無しさん [2018/12/05(水) 18:54:04.85 ID:xYhP2Ga4.net]
パクリパクリって最古の言語Fortranにあるじゃん…
そもそもコード中の好きなところ全てにラベル付けられるけども

Pythonにも入んないかな
インデントは好きだけど多次元配列とか深くならざるを得ない時はラベル付いてると見易いと思う、
コードブロックアノテーション便利、丁度:使うのもおんなじだしPythonにも希望

row: do〜
  col: do〜
   …
   if〜
    ! スキップ
    cycle row
    ! 出たいなら
    exit row
   endif
  enddo col
enddo row

とか

180 名前:デフォルトの名無しさん [2018/12/05(水) 19:01:44.84 ID:xYhP2Ga4.net]
別にgotoが何でも悪いわけじゃない、普通に使わない人が悪いだけ
breakもcontinueもtry/exceptもgotoの機能制限版だ
コード中で目の届く範囲に飛んで、ちゃんとアノテーションされたgotoは、これらと何の差も無い

181 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 19:02:17.64 ID:jWFcc5b0.net]
ぜひここで提案してきてくれ
https://mail.python.org/mailman/listinfo/python-ideas

182 名前:デフォルトの名無しさん [2018/12/05(水) 19:11:03.90 ID:xYhP2Ga4.net]
PEPって道場破りでもええんかな…?
いやスレチだぞってことかすまん

書きかけたんで蛇足許して
gotoと言われると可読性がーと言われるが、
少なくとも正しく使う限りにおいてcontinue/breakよりcycle/exit RowLoopのが可読性が高いのは確か

183 名前:デフォルトの名無しさん [2018/12/05(水) 19:22:33.86 ID:kX9gokKe.net]
初見さんお断り

184 名前:デフォルトの名無しさん [2018/12/05(水) 19:24:36.50 ID:xYhP2Ga4.net]
失礼しました

やっぱ関数にくるんでreturnが綺麗と思うな
本来はくるまない所だから、論理的には今のスコープ内に置くべき事が多いと思う、
インデントが深くなるので呼び出し元と同レベルに置くのも利はある

185 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 19:35:15.89 ID:kZbaQiOU.net]
テレテレッテテェーー >>179はレベルアップしました

186 名前:デフォルトの名無しさん [2018/12/06(木) 12:18:47.66 ID:gL69SzmY.net]
おまえらのその表記方法に対する謎の情熱はどこから湧いてくるんや?
ルビパーしかおらんのかここ?



187 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 12:40:09.68 ID:rq0vzYZs.net]
言われてchmateに画像アップロード機能あるの知って見てみたら簡単すぎ便利すぎワロタwwwww

188 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 1 ]
[ここ壊れてます]

189 名前:3:34:12.41 ID:73c4afIK.net mailto: オレたち表記ん族ってね []
[ここ壊れてます]

190 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 16:06:47.68 ID:2RW7L0ye.net]
せっかくインデント強制なんだから、exitしたいループはインデントの位置で指定できるようにすればいいのにね

191 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 16:14:28.27 ID:z6DmJ1sW.net]
>>184がヾ(´・∀・`)ノ イイこといった

192 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 16:15:08.76 ID:z6DmJ1sW.net]
>>183はざぶとん没収な

193 名前:デフォルトの名無しさん [2018/12/06(木) 17:23:30.97 ID:wDH9R6ta.net]
超超初心者でふ
戻り値の所でつまずいてます。。
戻り値の概念を教えて頂けないかしら。。。

194 名前:デフォルトの名無しさん [2018/12/06(木) 17:25:45.76 ID:ZtWhQkAF.net]
何を教材に勉強してるんだよ

195 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 17:52:20.94 ID:ZX4dNNbW.net]
とりあえず「python 戻り値 基礎」とかでgoogle先生に聞けw

196 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 18:26:13.81 ID:p2uPkaBO.net]
関数呼び出したら、呼び出し元に返す値。関数内で処理された値を別の目的で使うために値を戻して利用する。何も返さない(返す必要がない)場合はNoneを返す。



197 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 18:32:19.17 ID:rq0vzYZs.net]
引数 → 関数 → 戻り値
お金 → 自販機 → しるこ缶
呼び出すときpythonだとこう書く
jihanki(120)
しるこ缶が出てくるけど変数に入れるなり…
orenotenohira = jihanki(120)
また他の関数の引数として使ったり…
bunnageru(jihanki(120))
しないと地面を転がってってどっか行くから注意な。

戻り値なしの関数や…
orenosaihu = akuyuu(10000)
※orenosaihuはNone
引数なしの関数も…
orenosaihu = shinyuu()
※orenosaihuは100000
あるから注意な。

198 名前:デフォルトの名無しさん [2018/12/06(木) 19:19:45.62 ID:wDH9R6ta.net]
関数内で値を戻さないと、またその関数を他で使えないから、戻り値が必要ってことですか?

199 名前:デフォルトの名無しさん [2018/12/06(木) 19:37:49.73 ID:47CbOY/A.net]
そもそも関数は値を返すもの
値ではなく、副作用として画面出力したりファイル入出力が目的で戻り値を重視してないものもあるが、関数として定義された限りは何らかの値を返べき
エラーコードでもok

他の言語なら、値を返さないサブルーチンと値を返す関数サブルーチンを分けてるのもあるけどね
呼び出し方も異なる

200 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 19:40:20.87 ID:rq0vzYZs.net]
Pythonでは分けてないから、戻り値戻さない関数いっぱいあるよ。

201 名前:デフォルトの名無しさん [2018/12/06(木) 19:53:39.75 ID:wDH9R6ta.net]
なるほど!とてもよくわかりました!
特に>191さん分かりやすかったですっ!
因みにここは超超初心者でもこんな質問して良いとこですか?

202 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 20:20:21.75 ID:rq0vzYZs.net]
pythonの人はあんまり気にしない気がするけど初心者向けにこんなスレもあるよ。
くだすれPython(超初心者用) その40
https://mevius.5ch.net/test/read.cgi/tech/1542874174/

203 名前:デフォルトの名無しさん [2018/12/07(金) 00:13:27.03 ID:J1cfU5La.net]
>>196
最後まで親切にありがとうございます。
がんばって、ここで教えれるようになります。ぺこ

204 名前:デフォルトの名無しさん mailto:sage [2018/12/09(日) 00:11:08.94 ID:YAnIftVM.net]
いいってことよ
りゅうちぇる

205 名前:デフォルトの名無しさん [2018/12/09(日) 19:48:22.49 ID:4GC3brV6.net]
AnacondaナビゲーターのEnvironmentsにpygameがあるのは確認できたが、
インポートして使えない
ランダムはインポートできる
どうしたらpygame使えるようになる?

206 名前:デフォルトの名無しさん [2018/12/09(日) 22:47:32.15 ID:tlVa+X2N.net]
直接の回答でなくて申し訳ないけど、参考までに
まずPygameはAnacondaビルドPythonで上手く動かない事を経験している(Mac、ウィンドウフォーカスが取れない、入力がコンソールに吸われる)
スタオバフロにも同様の



207 名前:お困り投稿があった
Winは分からない

もしMacなら、Pythonは公式バイナリかIntelバイナリを使うべし
[]
[ここ壊れてます]

208 名前:デフォルトの名無しさん [2018/12/09(日) 22:56:25.61 ID:4GC3brV6.net]
私もMacユーザーです…
試してみます。
ありがとうございました。

209 名前:デフォルトの名無しさん [2018/12/09(日) 22:59:35.69 ID:tlVa+X2N.net]
そういう訳でConda使わないんだけど、インポート出来ないってのはそれ以前の問題な気がするなあ…

コンダ環境でなくてごめんだけど
pip search pygameでPyPIに登録されてるの見付からない?
無いなら公式からzip落としてきて、python setup.py install
これでPYTHONPATHで指定されている所(普通site-packages)にインストールされて、インポートできるはず

210 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 09:51:56.01 ID:VLE+i+J9.net]
自分もブログを参考にしてAnacondaを入れてたけど

ネットでソースをググる時に誰もconda installなんて使ってなかったから消した

誰だよAnacondaが便利なんて広めた奴は

211 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 10:16:41.88 ID:uhHTtJCZ.net]
パッケージマネージャとしてのcondaはpipより色々メリットあって優秀だよ
ただしanacondaは一生使わないようなライブラリも大量に入ってるからminiconda使ってるけど

212 名前:デフォルトの名無しさん [2018/12/10(月) 10:48:01.44 ID:ZDsdh/pZ.net]
入ってるはずなのになぜインポートできん…

Name: pygame
Version: 1.9.2a0
Summary: Python Game Development
Home-page: www.pygame.org
Author: Pete Shinners, Rene Dudfield, Marcus von Appen, Bob Pendleton, others...
Author-email: pygame@seul.org
License: LGPL
Location: /Users/hoge/anaconda3/lib/python2.7/site-packages
Requires:
Required-by:

213 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 12:30:12.00 ID:/ycQ7ddD.net]
基本的に、異なるパッケージマネージャーを同時に使ってはならない!

「みんなのPython」には、こう書いてある。
anaconda は、Windows で、Python が入っていない環境で使います。
既にPython が入っている環境では、この本では説明しません!

つまり、上級者でないと解決できない

Ruby は、bundler で、JavaScript(JS) のnpm, yarn は、同時に使えるけど、
pip, conda はダメなんだろう

PowerShell で、環境変数PATH を見てみ。
これの上からの順番で、コマンドは探されるから、下にある方は使われない!

$env:Path.split(";")

メモ帳の実行ファイルを探すのに、コマンドプロンプトで、
where notepad みたいに「where コマンド名」で、どの .exe を使っているか、わかる。
上の方が使われる

where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

214 名前:デフォルトの名無しさん [2018/12/10(月) 12:55:43.78 ID:ZBDBzkNh.net]
PythonスレでRubyも話するな
RubyスレでPythonの話するぞ

215 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 12:57:47.97 ID:NHSpEdnu.net]
RubyガイジはRubyガイジなのにRubyスレにあんま居ないからなあ

216 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 12:59:50.61 ID:6hODnwKP.net]
Ruby人とは残念ながら仲良くなれない



217 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 13:28:57.03 ID:9mIJck73.net]
ドザに人権がないRubyコミュニティ。
実はPythonに負けた遠因でもあるんだよね。
今さらすり寄っても無駄w

686 デフォルトの名無しさん 2018/10/17(水) 20:13:17.85 ID:pcmrmHBT
ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統。
コードが仕様だ!Windows

218 名前:なんて使ってる奴が悪い!

687 デフォルトの名無しさん sage 2018/10/17(水) 20:17:44.70 ID:z+Rs6gUv
Unixで開発してるとGCCツールチェインは自然に入ってるからね
はっきり言うね、Windows使いに人権はありません
[]
[ここ壊れてます]

219 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 13:49:10.00 ID:379Z8Q34.net]
> Location: /Users/hoge/anaconda3/lib/python2.7/site-packages
pygameがpython2にだけインストールされているのにpython3使ってるとかじゃね?

pygame自体はanacondaの公式パッケージじゃないし、anacondaの公式パッケージ
でも依存関係壊れていることがあるから、データサイエンス目的以外ではオススメしない

220 名前:デフォルトの名無しさん [2018/12/10(月) 14:45:13.20 ID:ZDsdh/pZ.net]
python2でやったが読み込めたが別のエラーが出てきた
もういいや
自分のレベルでは何していいのかさっぱりや

221 名前:206 mailto:sage [2018/12/10(月) 16:31:55.56 ID:/ycQ7ddD.net]
anaconda は、Windows で、Python がインストールされていない人向け

XAMP みたいなもの。
最初から、一式すべて入っているけど、それ以外のものは入れられない。
入れようとすると、互換性が難しい

既にPythonが入っている環境では、pip, conda の2つのパッケージマネージャーの扱いが難しい。
しかも、Pythonには、2, 3 系の2つがある

pygame の本も古いから、今動くかどうか、わからない。
Godot の方が良いかも

222 名前:デフォルトの名無しさん [2018/12/10(月) 19:42:19.12 ID:ZDsdh/pZ.net]
Macでpythonやってる人いたらどういう開発環境でやっているのか教えてほしい
Mac対応のこれ読んどけって書籍もあれば合わせて教えてください

223 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 19:55:53.31 ID:9RWbckns.net]
今日からPythonの勉強を始めた。
print (100) って書くと、100って表示されるのが楽しいw

でも、MSのVisual Studioでやってるから、pyファイルを外に作って実行させるやり方がわからない(汗)
これで僕もお正月にはデータサイエンティストだなw

224 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 19:56:22.74 ID:ld2JOcIm.net]
anacondaとpyenvにはほとほと懲りたからmacではbrew install pythonしてvirtualenv。
今日日pyenvなんか使ってるのはジャップとチョンだけ。

225 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 20:33:34.61 ID:/ycQ7ddD.net]
virtualenv が標準になって、venv になったのだろ?

>>215
漏れは、Ruby, JavaScript など、どの言語でも、VSCode を使っている。
VSCode の拡張機能、Code Runner で、右クリックメニューから実行するだけ

226 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 20:50:20.43 ID:TI2VLmhx.net]
macだけど
何もせずそのままじかにインストール
結局フォルダ2箇所中身確認して
捨てれば良いだけだし1番楽な気がする

エディタはCodeRunner
マイナーだけどシンプルで使いやすくて
気に入ってずっと使ってる



227 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 20:50:41.80 ID:9RWbckns.net]
>>217
VscodeっていうのをDLしてCodeRunnerもインストールしたけど、
何も入力してないのに画面がどんどん変わってしまって、使い方が全然わかんない(笑)

228 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 21:16:54.61 ID:nj2v6Vo9.net]
入門書の命ずるがままanaconda使ってる
みんパイ4

229 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 21:33:42.47 ID:ld2JOcIm.net]
windowsならしょうがないがmacでanaconda使ってるやつはただのマゾ

230 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 00:51:40.17 ID:aiLBfARQ.net]
tensorflowはcondaで入れた方が処理速度上がることが分かっている
だから機械学習やるならconda1択
anacondaは別に使わなくてもいいけど

231 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 06:45:37.00 ID:oEfcZrAY.net]
コンパイルオプション理解してないだけじゃん

232 名前:デフォルトの名無しさん [2018/12/11(火) 09:59:07.40 ID:q9wNPAdU.net]
テンソルフローは触らないけど速さも求めたいならIntelのインタプリタおすすめ
numpy等も専用バイナリでPCなら百倍速い

お節介はしないのでpipで上手く行ってる

233 名前:デフォルトの名無しさん [2018/12/11(火) 10:00:24.34 ID:q9wNPAdU.net]
同梱のDAALも今のところ一番良いPythonから引ける機械学習ライブラリなんじゃないかな

234 名前:デフォルトの名無しさん [2018/12/11(火) 12:52:03.03 ID:eQLW3H68.net]
>>206
anaconda + pip で問題なく使えてる
快適

235 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 12:58:10.36 ID:PdASi2RO.net]
無理して3,000円近くする解説本を買わなくても、Pythonのサイトでチュートリアルを読めば済むって分かった。

236 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 22:39:56.65 ID:104xlhbu.net]
pythonってお手軽なフリして難解だと思ってたけど
やっぱりお手軽だな



237 名前:デフォルトの名無しさん [2018/12/12(水) 00:29:24.65 ID:O+192yMp.net]
昨日pygameがどうのこうの言ってたものだが
https://qiita.com/yoshizaki_kkgk/items/4663148a2b3ca078ddbc
これ見てやったらうまくいきました
お騒がせしました

238 名前:デフォルトの名無しさん [2018/12/12(水) 10:50:23.62 ID:I3Mp/+TW.net]
おめでとう
食わず嫌いが減ると嬉しい

239 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 13:27:06.24 ID:vy8r5ubO.net]
メンヘラ御用達

240 名前:デフォルトの名無しさん [2018/12/12(水) 22:47:28.31 ID:j+F0KZd7.net]
GUIのデバッガないの?
ubuntuで

241 名前:デフォルトの名無しさん [2018/12/13(木) 08:59:32.58 ID:+Sn0OvrE.net]
PyCharmでもPyDevでもvscodeでも。

242 名前:デフォルトの名無しさん [2018/12/13(木) 12:00:50.11 ID:zFPTCGev.net]
PyDbg
https://www.amazon.co.jp/dp/4873114489

243 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 23:11:12.89 ID:3b/W5wep.net]
s = ["a", "b", "c", "d", "e", "f"]
x = s.insert
x(2, "X")

['a', 'b', 'X', 'c', 'd', 'e', 'f']

一週間前から勉強を始めたんですが
上のような書き方でエラーが出ないのは何故なんでしょうか?
x = s.insert(2, "X") ←こういうのならまだ理解し易いんですが

244 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 23:20:10.91 ID:xSYRhfI6.net]
逆になんでエラーが出ると思うんだ?

245 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 23:40:47.27 ID:3b/W5wep.net]
要素をinsertするのに位置や要素を指定してない
xというよく分からないものにカッコが付いて引数が並んでいる

246 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 23:52:16.55 ID:dYFT0/V7.net]
>>237
よく分からないものではないw
文字通りxはs.insertになってる



247 名前:デフォルトの名無しさん [2018/12/15(土) 00:09:41.16 ID:Cp9vqLr6.net]
>>235
関数やメソッドもオブジェクトだから変数に代入できるよ

248 名前:デフォルトの名無しさん [2018/12/15(土) 00:34:03.32 ID:cynZ90Gn.net]
オブジェクトちゃうわ

249 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 02:24:38.52 ID:Af1LkFW7.net]
>>221
macではanacondaよりいいディストリブューションがあるの?
Linuxではどうなの?

250 名前:デフォルトの名無しさん [2018/12/15(土) 02:34:54.97 ID:nEZu0z5o.net]
インタプリタと頻用するライブラリが最適化されてバインドされてるIntelPythonが性能的には一番良いんじゃない
エディタは付いてないけど

251 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 02:38:24.66 ID:3+Cjc/VL.net]
>>235
s.insert とすると、オブジェクト s が直接 insert という属性をもつ場合はそれが得られるけれど、
この場合 insert は list クラスで定義した属性であって s 自体の属性ではないので
関数 list.insert の第1引数 self をレシーバである s に固定(束縛という)したオブジェクトが作られる。

REPLで list.insert と s.insert を調べてみると違っていることがわかる。

>>> s=[]
>>> s.insert
<built-in method insert of list object at 0x801dd4648>
>>> list.insert
<method 'insert' of 'list' objects>

list.insertはCで書かれた内蔵関数なのでこんな感じだが、
Pythonコードで書かれたものの場合はもう少しわかりやすい。

252 名前:デフォルトの名無しさん [2018/12/15(土) 02:40:40.46 ID:nEZu0z5o.net]
condaはそれはそれで便利だし否定しないけど、インタプリタの振る舞いが参照実装とかなり違うのが
でも、多分condaに登録されてるのは動くの保証されてるはずだから、一人でconda配布物のみ利用して遊ぶ分には互換性は気にしなくていい

253 名前:デフォルトの名無しさん [2018/12/15(土) 02:47:50.34 ID:Cp9vqLr6.net]
>>240
オブジェクトやぞ

254 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 04:19:08.36 ID:3+Cjc/VL.net]
>>240
関数もメソッド(レシーバを第1引数に束縛したもの)もオブジェクトだよ。
内蔵関数は扱いが少し特殊なので Python コードで定義した関数で説明する。

>>> class Foo:
... def bar(self, x): return x*2
...
>>> f=Foo()
>>> def baz(y): return y+1
...

関数 Foo.bar および baz は function クラスのオブジェクト。
メソッド f.bar は method クラスのオブジェクト。

>>> type(Foo.bar)
<class 'function'>
>>> type(baz)
<class 'function'>
>>> type(f.bar)
<class 'method'>

function クラス、method クラスはそのままでは名前で参照できないが
types モジュールの FunctionType, MethodType という名前がそれぞれを指している。
これを使って f.bar と同じことをオブジェクトを生成する式として書くことができる。

>>> from types import MethodType
>>> MethodType(Foo.bar, f)
<bound method Foo.bar of <__main__.Foo object at 0x801dd2278>>
>>> f.bar
<bound method Foo.bar of <__main__.Foo object at 0x801dd2278>>
>>> MethodType(Foo.bar, f) == f.bar
True

255 名前:デフォルトの名無しさん [2018/12/15(土) 12:44:07.38 ID:lWJaBIbu.net]
オブジェクトちゃう言うとるやろ

256 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 12:47:17.29 ID:P5n2XOSc.net]
みんなは、Pythonでどんなことをしたくて勉強してるの?

自分はただ面白そうだから、なんとなくやってるだけなんだけど。



257 名前:デフォルトの名無しさん [2018/12/15(土) 14:50:33.59 ID:Sg9amITu.net]
>>240
函数もメソッドも PyObject* なんです

258 名前:デフォルトの名無しさん [2018/12/15(土) 15:27:09.32 ID:XCRjE2nm.net]
>>247
オブジェクト






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef