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


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



1 名前:デフォルトの名無しさん [2019/02/04(月) 21:22:10.08 ID:9MrdxUVg.net]
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その40
mevius.5ch.net/test/read.cgi/tech/1542874174/


◆PythonのHome Page
www.python.org/

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

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste

3 名前:デフォルトの名無しさん mailto:sage [2019/02/04(月) 21:24:34.59 ID:Ly7rB5Pz.net]
>>1
乙。スレタイ有能。死にさらせRubyキチガイ!

4 名前:デフォルトの名無しさん [2019/02/06(水) 13:58:59.09 ID:VRrkIzS/.net]
test
https://qiita.com/inoory/items/f431c581332c8d500a3b

5 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 16:12:14.30 ID:259i/glJ.net]
>>3
別スレでeel紹介してた人?
便利だね。サンクス。

6 名前:デフォルトの名無しさん [2019/02/06(水) 16:20:03.84 ID:kcXvzDdu.net]
使いどころが判らんな
htmlというかブラウザ側で動くのと
サーバー側で動くのがどっちもpythonで使えるのか?
main.pyとmain.htmlのように同じPC上にないとだめなんか?

7 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 17:00:02.78 ID:yKKjSk+N.net]
>>1
乙.py

8 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 18:12:04.91 ID:259i/glJ.net]
単にデスクトップアプリのuiにhtmlcssjs使うデスクトップアプリ製作フレームワーク。
electronと一緒だって記事にも書いてあるじゃん。
electronではnodeで機能足せるのがpythonになってるの。

9 名前:デフォルトの名無しさん [2019/02/06(水) 18:27:41.22 ID:kcXvzDdu.net]
アーナルほど

10 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 13:00:45.97 ID:9upH9Gef.net]
>>5
ちょっと興味があってぐぐってみたけど、わしも使いどころが解らんかった。
普通にtkinterとかwxとかpyqt使ったほうが単純じゃないか?と思った。
「JavaScriptが好きでHTMLでui書き慣れててwxもqtも嫌い」って場合以外は、
デスクトップアプリ作るのには意味ないかなと思った。
違ってたら申し訳なし....

11 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 13:37:35.24 ID:9WOIINk0.net]
廃止予定:Python 2.7は、2020年1月1日に寿命が尽きます。Python2.7は、それ以降は保守されないため、Pythonをアップグレードしてください。 pipの将来のバージョンはPython 2.7のサポートをやめるでしょう。

2.7、あと一年で本格的に終わるのね
お疲れ様



12 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 13:45:45.15 ID:4+rWYqni.net]
仕方ないから2.6に戻すか

13 名前:デフォルトの名無しさん [2019/02/07(木) 15:24:05.72 ID:GcZVZFC2.net]
>>9
+1
禿同

QtでのQMLみたいな面倒臭さを感じる

14 名前:デフォルトの名無しさん [2019/02/07(木) 15:26:41.81 ID:GcZVZFC2.net]
>>10
サポートは止めてもいいけど
pip install とかは2.7でももうしばらく動くようにしておいて欲しいな

15 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 15:33:06.82 ID:rayKezsC.net]
redhatが2024まで2系をサポートするというのをどこかで見たな

16 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 15:59:01.34 ID:WgEqFIwz.net]
>>9 json とかJavascript の描画アプリを使い慣れた人にとっては使いやすいんだろう。
HTMLアプリと考えた方が早いかも。 
HTMLを作成できる人間は履いて捨てるほどいるから誰かに画面を作らせておいてチョコチョコとプログラムを乗せる感じかな。

17 名前:デフォルトの名無しさん [2019/02/07(木) 18:17:16.79 ID:uA3OyGbS.net]
vscodeでpythonをつかっていて
pythonターミナルで選択範囲を実行とかREPLを起動とかしたときになんか長いアドレスが表示されてそのあとに>>>とかでてくるとおもいます
これをすっきりするのは

--------------------
REPLとかpower shellでプロンプトにながいアドレスが表示されるのを消すのは

C:\Users\???\Documents\WindowsPowerShell
ここに
Microsoft.PowerShell_profile.ps1
こういう名前のファイルをつくって

function prompt () {
" > "
}

中にこれを書き込んで保存するとアドレスを消すことができました

18 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:01:01.31 ID:0OqEFMu2.net]
>>14
RHEL7がメンテナンスサポート終了する2024年まではサポートやめられないわな

19 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:12:39.70 ID:9WOIINk0.net]
>>14
redhat linuxだっけ?CentOSかなんかだったような・
oython2.xに3.xのアップデートを掛けて延命するって情報があったね

20 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:23:41.01 ID:FOK6sArX.net]
>>18
redhatのソースでcentosできてるんだから同じ事じゃないか?

21 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:31:05.87 ID:THO4TdjW.net]
オイソンて何



22 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 21:31:09.45 ID:9WOIINk0.net]
>>19
あ、そっかw
アホな事いった、すまん

23 名前:工学部生 [2019/02/07(木) 23:21:03.17 ID:ghrPTIJv.net]
このスレに、検索エンジン自作できる人いますかね?

phpとかweb系の知識とpython正規表現の連携が出来ないといかんけど。

24 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 00:17:05.96 ID:pxF4wnXP.net]
いやElasticsearchとか使うでしょ

25 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 15:43:50.58 ID:p2edXzAx.net]
プログラムはまあまあの経験はあるが、全く初めてPython に触れる人向けのオススメ本は何かな?

1週間くらい前からネットの超入門あたりを見て、ちょろちょろと動かして感触はつかめたが、まだ文法自体全く見ていない。 必要なところだけ検索してサンプルプログラムを動かしてる段階。

たまたま見つけた武庫川女子大学の先生(中村 勝則)が描いてる、これで始めようかなと思ってる。
なんか題名が仰々しいが頭の方を眺めた感じ良さそうだった。

Python3 入門
Kivy による GUI アプリケーション開発, サウンド入出力,
ウェブスクレイピング
第 0.94.5 版
https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975

26 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 20:56:34.17 ID:gsD2xyia.net]
>>24
ブログラム経験はまあまあ
あるなら自分で考えろやバカ

27 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 21:12:58.20 ID:LXek31WR.net]
オライリージャパンの入門python3あたりでいいんじゃないか?
ちょっと古いかもしれないが
公式ドキュメントが充実してるからネットでそっち見るのもいいけどな

28 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:15:40.97 ID:T40Tl9cE.net]
>>25
>あるなら自分で考えろやバカ
笑ったが、ゆとり教育を受けたゆとりはともかく他人に(クレクレと)尋ねる人間なる
で、一

29 名前:x染みついたゆとり教育行動は一生続ける行動になる。 
あと、自分で考えて(見て)中村 勝則でまぁ良いんじゃねと目下なっている
まぁ、タダと言うのが選んだ大きな要因な気がするが

>>24
>これで始めようかなと思ってる
なら、それでやれば良いんじゃないのか
[]
[ここ壊れてます]

30 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:24:26.33 ID:LXek31WR.net]
初心者スレでイキりすぎだろこいつら

31 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:34:15.62 ID:T40Tl9cE.net]
>>28
ここは超初心者スレ。
初心者でも並みの奴からすれば激しくレベル低い奴のスレだからな
俺、工学部生、ルビー君のような超変な奴(基地外、超ゆとり、超低脳)がいっぱい。
そんな奴はちょっとしたことで激イキりたくなる



32 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:34:46.44 ID:LXek31WR.net]
天開司「おでんと冷やの間を行き来するのがいいんだよ 反復横跳びみたいにな つまみ回の体力測定だな」


なんか前のおせち回を思い出して不安になってくるんやが

33 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:35:12.10 ID:LXek31WR.net]
>>30
誤爆しちゃったテヘペロ

34 名前:デフォルトの名無しさん mailto:sage [2019/02/08(金) 23:38:28.21 ID:LXek31WR.net]
やれやれ 学生と社畜プログラマは大変だな
俺たち日曜プログラマーはティック・タック・トーでも作ってキャッキャさせてもらうぜ

35 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 00:18:44.25 ID:cZknnG+A.net]
>>24が提示した本は大学生向けだろ。
大学生向けでも良いって奴ならどの入門書でもOKだろ。
普通、このスレでおすすめ本教えてと尋ねられた場合の本は小学生レベルの本だし

36 名前:24 mailto:sage [2019/02/09(土) 00:22:05.58 ID:VrkeVQvn.net]
色んなご意見ありがとうございます。
とにかく先ずはやってみます。
久しぶりに文法書を見ると面白そうですね。 旧式の言語なのかと思ったら、しっかり最近の思想も入ってて。

1週間くらい前にPythonの人気ランキングが上がってると言う記事を見て興味を持ち調べ始めたところです。
取っつきやすいのは抜群ですね。 昔々のBASICを思い出しました。 しかし奥が深そう。

暇なので、70の手習いを始めました。

37 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 10:17:29.38 ID:COL94ClU.net]
pandasをインストールして下記コードを実行したところエラーになりました
・コード
import pandas as pd
df = pd.read_csv('test.csv')
・エラーメッセージ
'parsers.pyx'を開くことができません: ファイルが見つかりません
(file:///d:/(略)/pandas/_libs/parsers.pyx)

このメッセージでググりましたが同様の症状は見つけられませんでした
parsers.pyxというファイルはPC内に無いようなのですがどうすれば良いんでしょうか

38 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 10:51:27.42 ID:vFLtltfz.net]
>>35
インストールに失敗してそう
ディスク容量が足らないとか

39 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 10:58:51.69 ID:COL94ClU.net]
>>36
pip --no-cache-dir install -I というのでpandasを再インストールしてみましたが変わりませんでした
なおPython36フォルダはC直下にあるのですが、Cドライブは60GBの空きがあります

40 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:36:44.62 ID:O6W3Dl2k.net]
CドライブにPythonディレクトリがあるのにモジュールはDドライブを見に行ってるみたいだが

41 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:37:53.32 ID:O6W3Dl2k.net]
os.path上にpandasとかいうディレクトリがあってモジュールとして認



42 名前:ッされてんじゃないの []
[ここ壊れてます]

43 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 11:39:25.75 ID:O6W3Dl2k.net]
でもその場合はimportエラーかread_csvがメソッドじゃないってエラーになるか
じゃあ違うな

44 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 19:50:32.61 ID:NkGmKmjK.net]
>>34
70だと…

45 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 20:30:57.71 ID:cZknnG+A.net]
>>35
>file:///d:/(略)/pandas/_libs/parsers.pyx
>parsers.pyxというファイルはPC内に無いようなのですがどうすれば良いんでしょうか
parsers.pyxをネットから持ってきて、そこに入れれば良いんじゃないのか

46 名前:24 mailto:sage [2019/02/09(土) 21:04:21.27 ID:GcgAqiym.net]
>>41 結構まだいけるよ。 ただ記憶力は衰えてるからなんでもメモして検索してるけどね。
検索が無かったら多分何もできなくなってただろうな。

経験のプラスと記憶力のマイナスでそこそこもう少し遊べるかなと。暇だもん。
久しぶりに勉強する事でアドレナリンが吹き出してきた。

47 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 23:34:09.13 ID:vFLtltfz.net]
>>42
work aroundとしてはありかも知れないが
普通にインストールしたら起こらないエラー出してる時点でインストールから見直すべきだなぁ

そもそものWindowsのpythonはどうインストールしたんだろうか

48 名前:24 mailto:sage [2019/02/10(日) 01:21:19.18 ID:OTf+aZMg.net]
文法書を読み始めたところだが、fraction なんて目から鱗みたいな概念だな。 あって当たり前だったと思うが、初めて見た。
分子、分母共に整数で取り扱うから桁数の制限ないし。

49 名前:35 mailto:sage [2019/02/10(日) 01:32:10.98 ID:LUYrGpOP.net]
>>42
Githubのpandasページからparsers.pyxをDLしてきて
問題のpyファイルのあるディレクトリにpandasフォルダ、その中に_libsフォルダを作成し
その中に配置して実行したところ、今度はparsers.pyxの中でUnicodeDecodeErrorとなりました
ただ、こういったやり方(pyファイルのあるディレクトリにフォルダを作って外部ライブラリが必要とするファイルを配置する)って
あまり一般的では無いように思うのですが、pythonでは普通なのでしょうか?

>>44
python公式から落としてきた3.6.5をインストーラ使用でインストールしました
コーディングはVSCodeです
python本体はC:\Python36に、VSCodeでコーディングしているファイルはDドライブ配下に保存してます

50 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 01:35:52.26 ID:LUYrGpOP.net]
追記です
インストールしているpandasのバージョンは0.24.1です

51 名前:24 mailto:sage [2019/02/10(日) 01:39:19.26 ID:OTf+aZMg.net]
print('abc\ndefg')
print("abc\ndefg")
このエスケープシーケンスの改行が効かないんだけどなんで?
jupyter



52 名前:35 mailto:sage [2019/02/10(日) 01:47:44.38 ID:LUYrGpOP.net]
何度もすみません
自己解決しました

どうもtest.csvの文字コードがShift-jisだったことが原因ぽいです
UTF-8にして保存しなおしたらエラーは出ず、print()で中身の出力もできるようになりました
>>35でエラーとなったparsers.pyxが無くても大丈夫でした

53 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 10:39:30.06 ID:cu5Yhqfv.net]
行ごとにある文字列と一致する要素の数を数え上げるコードをかきたいです。
https://note.nkmk.me/python-pandas-count-condition/
を参考に(そのままに)して次のようなコードを書いてもエラーがでます。
以下で使用するsample_pandas_normal.csvファイルのURLは
https://raw.githubusercontent.com/nkmk/python-snippets/df339a7fdbc65d1a7a310103a0f4a795dc3321a5/notebook/data/src/sample_pandas_normal.csv
です。

----------
import pandas as pd

df = pd.read_csv('./sample_pandas_normal.csv')

df_bool = (df == 'CA')
print(df_bool)
----------

実行すると
TypeError: Could not compare ['CA'] with block values
とでます。csvファイルはきちんとフォルダの中に入れてあります。
上にあげたサイトではきちんと実行できているようなのですが、
どこが間違っているのかわかりません。教えてください。

54 名前:デフォルトの名無しさん [2019/02/10(日) 16:50:44.55 ID:25jgEgQt.net]
>>46
馬鹿には無理

55 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 17:25:24.08 ID:cXpJ+uYj.net]
>>49
いいんじゃない

56 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:12:21.68 ID:L/vUvPOU.net]
>>50
df_bool = (df['state'] == 'CA')

57 名前:50 mailto:sage [2019/02/10(日) 21:14:19.67 ID:Y9k8mhjm.net]
自分がやろうと思っている処理は複数列に 'CA' がでてきて
それを行ごとに何度でてくるかを数え上げるプログラムを書こうと思っています。

df_bool = (df['state'] == 'CA')

とすればうまくいくことはわかっていましたが、それでは1列しか処理できないので
不適当です。>>50のwebサイトには df == 'CA' でやっていたので
いけるはずだと思っていたのですが、うまくいきませんでした。
結局forループと転置を使って1列(1行)ごとに処理していくことにしました。

58 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:33:05.31 ID:L/vUvPOU.net]
>>54
普通にできるはずだからエラーをそのまま貼れない?

59 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:35:40.54 ID:dMPfr/mY.net]
バイオリンダンスロボットダンスええやん

60 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:35:58.69 ID:dMPfr/mY.net]
>>56
誤爆

61 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:49:45.76 ID:L/vUvPOU.net]
>>53
あ、上にエラーあったね
pandasのバージョンが古そうだ
少なくとも0.23.4では問題はないよ



62 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 21:52:17.40 ID:QHXP4+rK.net]
>>46
Ruby では、gem, bundler のprivate install で、
各プロジェクトのプロジェクトフォルダ内にのみに、インストールできる

一方、global install では、Windows・Ruby 2.4 では、
c/Ruby24-x64 以下のRuby 環境に入る。

例えば、
gem "sqlite3"

で、Ruby リポジトリから、以下の共有ライブラリをダウンロードして入れてくれる

c/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so

Ruby のbundler, Node.js のnpm, yarn などは、global・private install を切り替えられるシステム。
Python にも、同様のパッケージマネージャーがあるかどうかは、わからないけど

63 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 22:00:17.41 ID:2rmZRARw.net]
>>56
何それ? 楽しそう!

64 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 22:04:17.41 ID:scT3207q.net]
>>59
5ちゃん住人のrubyへのヘイトが貯まりまくってどんどんrubyユーザーが減っていくね。おめでとう、君の活躍のおかげだよ

65 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 22:14:03.23 ID:Z3H3Tv4Q.net]
>>59
スレタイ嫁

66 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 22:17:30.83 ID:KoYwv+8z.net]
>>59
わかんねーなら黙ってろポンコツ

67 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 00:11:44.05 ID:f3xbC2Z2.net]
>>58
仕様変更が原因と言うことかな?

68 名前:デフォルトの名無しさん [2019/02/11(月) 05:48:35.50 ID:hBL+nG4l.net]
pycharm利用ですが、shift+f10が反応しません。alt+shift+f10は使えるのですが。
windows10,pcはlenovoです。

69 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 07:54:41.81 ID:3Jv7Z+yl.net]
捨てろ

70 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 10:17:13.46 ID:QKPibkAC.net]
pythonってOSSのパッケージを使わなきゃゴミみたいな印象なんですが
こんなすごいパッケージがあるぞ的なことはどこで勉強してるんですか?

71 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 11:19:21.82 ID:orvgrbQL.net]
>>67
知らね



72 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 11:42:03.69 ID:rLkbUlEC.net]
>>67
何か目的があってそれに必要なパッケージはググればすぐに見つかると思う
むしろ目的なくpython流行ってるからで始めてしまうとパッケージ難民になる

73 名前:デフォルトの名無しさん [2019/02/11(月) 12:02:56.85 ID:itY+kGJR.net]
>>67
その基準だとRubyもCもゴミだな

74 名前:デフォルトの名無しさん [2019/02/11(月) 12:29:36.90 ID:CcePy3Nj.net]
目的ありきでやってると調べるうちに自然と辿り着く

75 名前:デフォルトの名無しさん [2019/02/11(月) 12:33:52.27 ID:itY+kGJR.net]
出会いが無ければ御縁が無かったということだ

76 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 12:42:06.89 ID:QKPibkAC.net]
最初から目的ありきならそれでいいかもしれませんが必ずしも目的があるとは限りません
パッケージが出来ることからビジネスにつなげる逆方向のパターンも世の中には存在するからです

77 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 12:52:03.92 ID:fMjwAL+6.net]
>必ずしも目的があるとは限りません
これただの暇人じゃん

78 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 13:10:11.15 ID:kQCK5fGz.net]
コンピュータゲームを作ったのはその暇人たちだったな

79 名前:デフォルトの名無しさん [2019/02/11(月) 14:58:51.45 ID:CcePy3Nj.net]
ゲームを作るっていう目的を持ってるやん

80 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 15:18:59.57 ID:kQCK5fGz.net]
初期のコンピュータゲームは大学の研究用のコンピュータを勝手に使って暇つぶしの一環として作られた
数年前に死んだAI研究者マーヴィン・ミンスキーが発見したミンスキートロンに代表されるPDP-1のディスプレイハック
それに魅了された「のろすけ」ラッセルが本業そっちのけで作り出し、他のハッカーたちが面白がって機能を追加していったのが
最初期の対戦型コンピュータゲーム「宇宙戦争」ってわけだ

プログラミングっていうのはぶっちゃけそう大したものじゃない 暇つぶし程度でいいんだよ

81 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 17:19:02.28 ID:gC4YDX1g.net]
ニートならそれでもノープロブレムだろうけどさ
デベロップメントはビジネス上のイシューからスタートしないとプロダクトアウトになって
ソリューションのセールスがナイトメアになるのよボーイ



82 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 17:31:49.74 ID:OKO2G8Ao.net]
ルー大柴はどっかいけ

83 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 19:39:43.56 ID:rLkbUlEC.net]
>>73
ニーズとシーズのマッチングってやつかなぁ
そのコンセプトでいうならパッケージという細かい概念じゃなくて、Pythonはどんな事が得意ですか、と聞くべきだなぁ

84 名前:デフォルトの名無しさん [2019/02/12(火) 02:23:03.62 ID:xDY2FToe.net]
Pythonって機械学習とセットで勉強しないとあまり意味がない?
特につくりたいものがあるわけじゃなく就活時に役立てたいっていう理由で学ぼうとしてるんだけど

85 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 02:29:06.75 ID:xM7yD0R2.net]
分かってないなぁ
Pythonはあくまで何かしらの専門領域のライブラリを使うためのホスト言語であって。
Pythonそのものを学ぶなんて笑っちまうわwww
言語には胸襟ただして学ぶような小難しいとこないじゃんwww

86 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 02:34:05.82 ID:sv506HrS.net]
>>81
何の分野に進むかによる
プログラマ以外がpythonを使うことはない
それよりもエクセルとvba覚えておと普通に役に立つ
後はjsを使えるとスクレイピングで役立つことがある
自己アピールで使いたいなら機械学習がキャッチーでいいかもな
コード書かなくてもモデルやら作れるサイトがあるから、そういうの触っておくと話のネタぐらいにはなるかも知れない

>>82
しかも微妙に特

87 名前:黷ネのがねぇ
ぴゃーって書くならC#でゲームでも作ったほうが良いし、
phpでwebサイト作る方が短時間で成果が出る
[]
[ここ壊れてます]

88 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 07:19:51.84 ID:EEP8zHaj.net]
>>83
と思ったキモオタであった

89 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 09:03:12.80 ID:FKAIOJhy.net]
>>81
就活時に役立てるとしたら
使ったこともない言語をゴミ呼ばわりしてしまう口の悪さを治すことかな
自分の知らない事を全部見下してそう

90 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 09:45:33.70 ID:n9nKxlWw.net]
そもそもその程度も自分で判断できないような奴は
メダカの学校の先生くらいにしかなれねえよ

91 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 10:28:51.51 ID:eC1lEXzI.net]
カナヅチだから無理。



92 名前:デフォルトの名無しさん [2019/02/12(火) 11:27:38.96 ID:8lolhehX.net]
88

93 名前:工学部生 [2019/02/12(火) 12:33:05.90 ID:rvJokjFw.net]
>>83
>何の分野に進むかによる
プログラマ以外がpythonを使うことはない


JPモルガンやゴールドマン…投資銀行がトレーダーに「Python」を教える理由
https://japan.zdnet.com/article/35132512/

94 名前:工学部生 [2019/02/12(火) 12:35:46.21 ID:rvJokjFw.net]
問題
l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ]
なお、このリストは各要素ごとに一行ずつのデータとし、全部で3行のデータとする。
各行ごとに5つづつのデータで構成される。
hint 1) 保存される CSV ファイルは下記のようになる。
1,3,2,7,4
4,7,2,4,9
8,0,6,1,9
次に、"test.csv"を読み取り、CSVファイルから数値情報を抽出しなさい。
さらに各行ごとの合計を出力しなさい。(注: 保存前のリストによる合計ではない。)
hint 2) 17 26 24 の3つの数値が得られる。
hint 3) 保存されたデータは文字列になっているので、足し算をするために数値化する必要がある。

95 名前:工学部生 [2019/02/12(火) 12:36:54.61 ID:rvJokjFw.net]
>>90の答え

#解答欄
l = [ [ 1,3,2,7,4 ], [ 4,7,2,4,9 ], [ 8,0,6,1,9 ] ]


# l を CSV ファイルに保存する
with open("test.csv", "w") as f:
for x in l:
f.write(",".join([str(a) for a in x]) + "\n")


# CSV ファイルからデータを取り込み、各行の合計を表示する
with open("test.csv", "r") as f:
for x in f:
each = x.strip().split(",")
sum = 0
for y in each:
sum += int(y)
print(sum)

96 名前:工学部生 [2019/02/12(火) 12:38:43.95 ID:rvJokjFw.net]
f.write(",".join([str(a) for a in x]) + "\n")

each = x.strip().split(",")


このあたりがわかりません。

97 名前:デフォルトの名無しさん [2019/02/12(火) 13:08:13.97 ID:8lolhehX.net]
これで充分
','.join(str(a) for a in x)

98 名前:工学部生 [2019/02/12(火) 13:34:12.44 ID:rvJokjFw.net]
ワシのプログラミング授業歴

1浪→今の私大工学部電気系に入る→
1年目で1留→プログラミング前期はなんとか単位を取るも、プログラミング後期を
再再履修し、Cの応用プログラムが理解できずに死亡していた
泣きっ面に棚から牡丹餅で、プログラミング講師「今年からプログラミング後期はPythonやります」
と天の救いがあった。留年とかした甲斐があったというものだ。

でpythonはCみたいなどうしようもない難解とは違い、
「やればやっただけ上達する」ような感触を受けた。
今回は落ちたかもしれないが、次は必ず仕留める。

99 名前:工学部生 [2019/02/12(火) 13:40:34.21 ID:rvJokjFw.net]
>>93
それに書き換えてみましたが、
実行結果が184
となり

下の答えとは違ってきました。

17
26
24

100 名前:工学部生 [2019/02/12(火) 13:45:24.25 ID:rvJokjFw.net]
>>93

+"\n"をそのあとに付けたらつまくいきました。
[]は無駄なようですね。ありがとうございます。

101 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 15:06:06.19 ID:QzLgc2xe.net]
>>92
書き込みを全般的に見てて思うけど、小さい単位に分割して実験する事を覚えた方が良いかな
カッコの中だけ実行する、演算子の片方のみ実行するとかね

例えば
f.write(",".join([str(a) for a in x]) + "\n")
が分からない場合には
print (",".join([str(a) for a in x]) + "\n")
を試して、次に
print (",".join([str(a) for a in x]))
を、試して、さらに
print([str(a) for a in x])
を追加して実験してみる

聞く回数も減るし理解も早いと思う



102 名前:デフォルトの名無しさん [2019/02/12(火) 15:09:35.02 ID:JhZhtSe3.net]
独学プログラマー読んでるけどtwitterで翻訳者がつぶやいててうざい
たかが翻訳しただけなのにまるでじぶんが書いたみたいに反応してる
勘違いしてるよね
翻訳がすごいから売れたんじゃないの
勘違い翻訳者うざすぎー

103 名前:工学部生 [2019/02/12(火) 15:52:05.30 ID:rvJokjFw.net]
>>97

貴重なアドバイスありがとうございます。

104 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 15:56:19.85 ID:sv506HrS.net]
なっちゃんって偉大な翻訳家がいてな・・・
翻訳にも上手い下手はあるんだよ
少なからず売上も左右するだろう

105 名前:工学部生 [2019/02/12(火) 16:03:02.03 ID:rvJokjFw.net]
プログラムを入力するときはロックを組み立てていくが、
エラーを解析するときはブロックを崩していくというイメージか。

106 名前:デフォルトの名無しさん [2019/02/12(火) 23:21:44.95 ID:0srnSPAN.net]
Multiprocessingを使った処理をしたいと思ってごくごく簡単な例文をコピペして動かしてみたのですが,期待される出力がコンソール上に出ません.
一方,すこし複雑な(いくつかのプロセスを平行させても1秒ぐらいかかるような処理)例文を動かすと,出力は出ませんがCPUの稼働率的にはすべてのコアが均等に働いているようでした.
Multiprocessing自体はうまく働いているものの,なんらかの理由で個々のプロセスがコンソールに出力するのが制限されているような挙動ですが,これを出力させるにはどうすればよいでしょうか?
環境はPython3.6.1で,標準のIDLEを使っています.CPUは4コアの6700Kです.

よろしくおねがいします.

107 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 23:41:25.12 ID:1FBNx7PM.net]
multiprocessingで並行処理させてる関数内からprintしたときは
直後にsys.stdout.flush()しないと反映されない

108 名前:デフォルトの名無しさん [2019/02/12(火) 23:51:39.90 ID:0srnSPAN.net]
ありがとうございます.
それ自体では解決しませんでしたが,関連事項でググったらIDLEが悪いということが分かりました.

109 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 09:52:03.63 ID:ik/h3+HJ.net]
初歩的な質問なんですが
画像の顔部分の切り出しをしていて分からない部分があります
以下簡単な例に置き換えたものになります

import numpy as np

test = np.array([1, 2, 3, 4, 5])
print(test[1:1 + 3])

>>>[2, 3, 4]

と表示されます
これはどういう考え方をすれば良いのでしょうか
print(test[1:1])
では何も表示されませんが+3する事で表示されているのが良くわかりません

110 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 10:19:47.85 ID:FsWI4s/7.net]
pythonの仕様
このあたりを参照するといいよ。
d.hatena.ne.jp/yumimue/20071205/1196839438

111 名前:デフォルトの名無しさん [2019/02/13(水) 10:23:11.88 ID:M8PJWiFY.net]
>>105
test[m:n]はm〜n-1番目までを切り出す



112 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 11:33:48.61 ID:0cDEleYh.net]
>>105 [1,2,3,4,5] の要素は [0]~[4]
print(test[1:1 + 3]) は print(test[1:4]) は [1] ==2 から [4-1]==4 まで
>>>[2, 3, 4]

113 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 11:36:12.68 ID:0cDEleYh.net]
もし先頭だけをprintしたいのなら
print(test[0]) または、print(test[0:1])

114 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 11:36:56.12 ID:N2s3vUnw.net]


115 名前:Xライスの開始値は含めるけど終了値は含めないという指定は、最初違和感あったな []
[ここ壊れてます]

116 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 12:44:57.49 ID:pbkwul76.net]
>>110
俺もいまだに違和感ある
a=['お','ま','ん','こ']でa[0,2]だと['お','ま','ん']にして欲しいよな。
確か、数直線で考えるらしい.....

0 1 2 3 4
+ー+ー+ー+ー+
 お ま ん こ

で、[0:4]だと「お〜こ」になるとのことだった。でもa[4]はエラー....

117 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 14:58:46.57 ID:os3OGdBG.net]
ゼロベース配列という事で、i以上j未満はポインタ演算を考えると自然
(j-i)個の切り出し、終端ポインタ-先頭ポインタは何要素といった具合

118 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 15:03:23.54 ID:kDMwAzYp.net]
IoTやるのがPythonなのって理由ある?
Cじゃダメなのv

119 名前:デフォルトの名無しさん [2019/02/13(水) 15:09:37.55 ID:MhIfo+Ct.net]
ポインタとか使う言語だと、そもそもendじゃなくて個数指定になってるじゃん。

120 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 15:20:36.92 ID:ik/h3+HJ.net]
>>105 です
回答頂いた方ありがとうございます
test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
演算子が入ってるのを初めて見たので計算した上で扱うとは思いませんでした

121 名前:デフォルトの名無しさん [2019/02/13(水) 15:49:18.21 ID:R/LRwZLt.net]
>>115
「1番目から始めて3文字取り出す」という事を明示するために敢えて1+3と書いたんだろう



122 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 16:03:01.37 ID:hD8BupCP.net]
>>116
トッポい著者だなぁw

123 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 16:03:03.58 ID:0cDEleYh.net]
>>113
初心者からプロまで使える科学技術計算の新定番
IoT時代にPythonをオススメする理由
https://interface.cqpub.co.jp/wp-content/uploads/interface/2016/10/if10_012.pdf/wp-content/uploads/interface/2016/10/if10_012.pdf

PythonだけではIoTできない理由 - ウィリアムのいたずらの開発日記
https://blog.goo.ne.jp/xmldtp/e/ab0c195ea5a20a1549c13587d13a952d
<<しかし pythonでも Cythonを使えばCでコンパイルしてくれる
<<Raspberry Pi なら素のpython も使えるしセンサーもアクセスできる

PICと楽しむ Raspberry Pi活用ガイドブック
https://gihyo.jp/book/2017/978-4-7741-8919-2
最低限必要なLinux・Pythonの知識まで収録しています。

IoTを使って畑を監視する
https://tech.recruit-mp.co.jp/iot/farm-monitoring-with-iot/

TwilioとAWS IoTボタンを使った子供のトイレ訓練
https://postd.cc/iot-poop-button-python-twilio-aws/
この場合 IOSやAndroidから電話をかけてボタンを操作している

124 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 16:21:24.81 ID:kpYtZ0RT.net]
>>113
AIカーが来てる! 自動運転でラジコンカーを走らせよう!
https://weekly.ascii.jp/elem/000/000/422/422742/
おもちゃの自動車がAI で動く時代。
これもRaspberry Pi とpython で学習して自動運転してる。

AI と言ったらpython

125 名前:デフォルトの名無しさん [2019/02/13(水) 18:26:41.20 ID:QnNf1eu6.net]
>>115
test[1:-1]
test[:-1]
test[1:]
違いを説明汁

126 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 23:08:42.70 ID:5Y5rGgZv.net]
>>115
>test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
俺も超初心者だからお前が疑問に思っていることがなんとなくわかる
1 + 3の+は演算子。で、[x:y:z]の:は何なんだと? ひょっとして :も演算子?
でもって、[1:1 + 3]の時、:と+どっちが優先順位高いんだ?わかんね。
で、レス見ると、どうも+の方が優先順位高いと。つまり、優先順位を明示した[1:(1 + 3)]になると。

127 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 23:35:56.49 ID:Fldw1X0G.net]
:は演算子じゃなくて区切りだろ
そんなもん実験すればわかる

128 名前:デフォルトの名無しさん [2019/02/13(水) 23:43:48.56 ID:5Y5rGgZv.net]
そうなのか? 俺は勝手に俺命名してスライス演算子とか言っているが
で、スライス演算子は算術演算子の+より優先順位が低いと

129 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 23:49:32.46 ID:jwc/pNVH.net]
slice notation スライム記法

130 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 23:51:50.74 ID:os3OGdBG.net]
リファレンスではデリミタとされる、Pythonでは代入が文なのでそれもかな
https://docs.python.jp/3/reference/expressions.html#evaluation-order

131 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 23:55:22.49 ID:jwc/pNVH.net]
代入が単独で文なのって何か故あってのことなの?わりと珍しいよね?



132 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 00:02:35.62 ID:xnVOqrv0.net]
スライスって言葉がすぐに出てこない、当然なが関数のslice()も出ないって
超初心者の俺ららしいよな
https://stackoverflow.com/questions/31501806/what-does-the-slice-function-do-in-python

133 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 00:18:16.01 ID:RyxU72PZ.net]
いわゆるペンタックスソルトってやつか。

134 名前:デフォルトの名無しさん [2019/02/14(木) 08:02:20.55 ID:NaDvAh4C.net]
>>126
3.8から代入式も使えるようになるらしい

135 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 09:03:20.99 ID:wJ5vrran.net]
シンタックスシュガー
糖 衣 構 文って奴か

シンタックスシュガー
糖 衣 構 文を使うと超初心者にはわかりやすくなるけど

シンタックスシュガー
糖 衣 構 文の裏側で実際どのような挙動をしているのかわかりにくくなるのが欠点だよな

シンタックスシュガー
糖 衣 構 文はかしこく使っていきたいと思った

136 名前:デフォルトの名無しさん [2019/02/14(木) 13:23:14.58 ID:b/dX4O0G.net]
>>121
pandasとかnumpyの[:;:]使うともっと混乱する

137 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 18:52:34.90 ID:/0O1t9cs.net]
>>126
いや、昔の言語はそれが普通
C言語辺りから代入文が値を持つような言語が増えた

138 名前:デフォルトの名無しさん [2019/02/14(木) 23:06:52.19 ID:Qyh3gh4h.net]
初めて見た時は驚いた

139 名前:デフォルトの名無しさん [2019/02/15(金) 04:14:44.86 ID:aMcTHSTs.net]
A=B=C=0
みたいな

140 名前:デフォルトの名無しさん [2019/02/15(金) 11:55:58.42 ID:Lyn3hfe5.net]
pipってPythonのidleからうごかせないからいらいらしてたんだけども
teratailっていうサイトでpipはコマンドプロンプトでうごかすような仕様ですって説明あったからあたまのなかがすっきりした

141 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:13:07.08 ID:vj4wf1O1.net]
Python はとっつきやすいが、奥が深いな。 一通りの文法をある程度使いこなせるようになるまでどのくらいの時間がかかるんだろう。
2〜3か月と書いてるサイトが多い様だが
例えば、
Python チュートリアル (原文の電子書籍版は120ページだった)
https://docs.python.jp/3/tutorial/
の全て

Python 標準ライブラリ 
https://docs.python.jp/3/library/index.html#library-index
の1〜16

を読み込むだけだとどのくらいの時間?

Python 言語リファレンス
https://docs.python.jp/3/library/index.html#library-index
は必要に応じて参照。 と思ったが、言語リファレンスを見るとset だけでもかなり奥が深いな。

チュートリアルではほんのさわりしか触れていない。 このチュートリアルだけでは本当の入り口入門だな。
でもこのレベルをまず理解しないと挫折してしまうだろうな。

言語リファレンスに書かれたすべてについて書かれたチュートリアルは



142 名前:Lるのだろうか? 膨大なページになるだろうが。
オライリーの Pythonチュートリアル 第3版 も入門用みたいだな。 (260ページ)

無料で読めるデータ分析に役立つ Python の電子書籍まとめ
https://qiita.com/ynakayama/items/8ed2854bcc3c3633345b
Dive Into Python 3 日本語版
http://diveintopython3-ja.rdy.jp/index.html
これは少し踏み込んでいるね。 プログラミング経験者向けのPythonの入門書 495ページ

>>24 の Python3 入門 は 241ページ
https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975
[]
[ここ壊れてます]

143 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 12:56:54.47 ID:vj4wf1O1.net]
>>121 >>123 https://docs.python.jp/3/tutorial/introduction.html#strings
ここでは test[1] はインデックス
test[1:4] はスライスと書いてるね。 :はデリミッタ(区切り符号)の中の一種
下記の文法書では、 : がある場合をスライスとしている。

class slice(start, stop[, step])

要は range(start, stop[, step]) と同じ

だから、test=[1,2,3,4,5] の時
test[1:6:2] は [2, 4] と2つおきのステップもとれる
test[0:6:2] は [1, 3, 5]

https://docs.python.org/ja/3/reference/expressions.html?highlight=%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9 
文法書 こちらだと、3.7.2も選べるね。
6.3.3. スライス表記 (slicing)
スライス表記はシーケンスオブジェクト (文字列、タプルまたはリスト) におけるある範囲の要素を選択します。
スライス表記は式として用いたり、代入や del 文の対象として用いたりできます。
スライス表記の構文は以下のようになります
proper_slice ::= [lower_bound] ":" [upper_bound] [ ":" [stride] ]
lower_bound ::= expression
upper_bound ::= expression
stride ::= expression
とあるから数値には式も許されている。 [] は省略可を示す
<略>
適切なスライスは、スライスオブジェクト (標準型の階層 参照) に変換され、その start, stop および step 属性は、それぞれ指定した下境界、上境界、およびとび幅 (stride) になります。
式がない場所は None で置き換えられます。

144 名前:デフォルトの名無しさん [2019/02/15(金) 13:07:54.03 ID:TNDmXWGM.net]
>>136
文法だけなら3日で済ませろ

145 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 14:14:26.18 ID:BPLAFoWk.net]
ifが閉じないのが違和感ありすぎるんだよな
endをpass扱いで使えればいいのに
tab非推奨とか、mainがインデントできないとか

146 名前:デフォルトの名無しさん [2019/02/15(金) 14:28:19.26 ID:TNDmXWGM.net]
endってRuby信者かよ
うざいだけです

147 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 15:29:10.41 ID:6n1ig9NM.net]
>>113
1からcに勉強しなくても基本的なスクリプト分かればパッケージで何かできるようになるから教育の手間が省けるし使い物になるまでの時間が短い。ポインタみたいな話は逐一調べれば何とかなるし

148 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 16:08:39.95 ID:PR4djPv7.net]
>>113

米国では特に理由がない限りはスクリプト言語といえばPythonなの
もちろん機器を大規模に展開する段階ではCで書き直すこともありうるけど、その前のPoC段階では手っ取り早く動かすことを重視してスクリプト言語を選択することが多い
そして世の中のほとんどのIoT(笑)プロジェクトはPoC止まりである

149 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 17:40:54.87 ID:fQG3bb7R.net]
>>142
最後の行メッチャ同意w

150 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 19 ]
[ここ壊れてます]

151 名前::12:24.12 ID:FTe5u0N/.net mailto: >>136
2〜3ヶ月では無理だろ
オライリーの「Fluent Python」読んだら程々で止めといた方がよいと分かる
特にデコレータとかスライスオブジェクトとか完全な理解までは時間も手間も掛かる
それにライブラリ有ってなんぼの言語だからその辺を当たるのも手間が掛かる
[]
[ここ壊れてます]



152 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:40:16.03 ID:phBQxiAY.net]
>>137
そんだけ説明するなら
Cpy = OreObj[:]でコピーの話してくれれば良いんだが
これもsliceがやってくれているのか?

153 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 22:13:07.97 ID:nnYj1Xkq.net]
>>145 シーケンスオブジェクトに対して有効なんだから、文法エラーが起きなければ、OreObjはシーケンスオブジェクトで有り!スライス表記が有効なんだろ。

154 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 01:03:35.23 ID:3MiMTZ5E.net]
>>145 print(type(OreObj))
とやってみれば良いよ。
というかわからずに作ってる方もどうかと思うが。

155 名前:デフォルトの名無しさん [2019/02/16(土) 01:22:05.09 ID:pkeahHEi.net]
Python3エンジニア認定基礎試験を受験しようと思ってるんだけど認定教材がオライリーのpython3 チュートリアル第3版だよね?
ドキュメントがあるんだけど
https://docs.python.org/ja/3/tutorial/index.html
本よりURL先の方が新しいからこっちで勉強すべきなんか本買った方がいいのやら

156 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 02:04:33.57 ID:3MiMTZ5E.net]
>>148 自分もまだ、どれをもとに勉強しようか悩んでるんだけど、試験を受けるんだったら、オライリーので勉強した方が良いんじゃないのかな。
出題範囲がそれからと決まってるみたいだし。

そのpython.org のチュートリアルは本当に基本的なことしか書いてないみたいだし。 それを見る場合は他の標準ライブラリーにも目を通す必要があるけど、そちらについてのチュートリアルはないからね。

157 名前:デフォルトの名無しさん [2019/02/16(土) 02:15:08.35 ID:cp9NCj1N.net]
>>111
BDFLの有り難いお言葉
python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.html

コメント欄含めて細かく1-/0-ベース、閉区間/半開区間のメリットデメリットが議論されてる
要素の間を指す、という記憶術の落とし穴も

158 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 02:27:49.37 ID:Vy31NZNk.net]
>>148
そのURLで良いんじゃないのか。
金出してオライリー買って勉強したって通らない奴は通らないだろうし。
で、URLでやっても通る奴は通るだろ

159 名前:デフォルトの名無しさん [2019/02/16(土) 05:33:47.13 ID:ytOkList.net]
>>136
奥の深いのはまるで量子力学みたい。

160 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:08:53.50 ID:13Z91cw1.net]
>>> "あ\\\"あ"
'あ\\"あ'
>>> print("あ\\\"あ")
あ\"あ

\の数が変わるのはなぜですか?

161 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:34:05.43 ID:3MiMTZ5E.net]
>>148 pdf があった方が良いと思うよ。 検索や見出しの頭出しなどが楽だから。
英文のpdf はあるけど、日本語はない。
https://docs.python.org/3/download.html
コピペ、書き込みはできる。

オライリーのにはpdfがあるから便利ではある。
ただし、コピペできないから注意。 amazon のレビューも参考にしてみたら。

【python入門者向け】おすすめPDF教材3選
https://web-camp.io/magazine/archives/16214
自分は、この中の2番目の大学の先生が書いてるやつで始めた。 コピペは勿論書き込みとかできる。



162 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:46:44.65 ID:3MiMTZ5E.net]
>>153 \ は、エスケープ文字と言って、次の1文字をそのまま使うことを指示する。
だから、\そのものを使うことはできない。しかし
\\ で\ をそのまま使う指示をすれば、\ 1文字として扱われる。
同じく \” \’ は、” ‘ そのものを扱うこもができる。
文字列

163 名前:フ中にこう言う特殊文字を入れたい時に使う。

或いは、文字の中で改行したい場合には、\n を使う。
予め決められた文字をエスケープシーケンスと言う
print(‘abc\ndef’)
abc
def
エスケープシーケンスには他にタブ \n とか色々ある。
print(‘abc\n\tdef’)
abc
 def

エスケープシーケンス
https://www.javadrive.jp/python/string/index2.html
[]
[ここ壊れてます]

164 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 12:21:40.15 ID:LDsTH0lF.net]
bs4のスクレイピングで
〈dd class='a'〉bbb〈span class='c'〉ddd〈/span〉〈/dd〉
のときにbbbだけ取り出すにはどうすればいいですか?

165 名前:デフォルトの名無しさん [2019/02/16(土) 13:46:48.84 ID:lF7O1vpr.net]
linux流行る→linuxの試験立ち上げ
ruby流行る→rubyの試験立ち上げ
python流行る→pythonの試験立ち上げ

常に後手後手だな経産省は

166 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 13:49:19.24 ID:ZA7pE0Rj.net]
役所にitの世界でリードしろと言う方が無理がないか(´・ω・`)

167 名前:デフォルトの名無しさん [2019/02/16(土) 14:13:56.53 ID:0EgtbNFo.net]
二次元のエロ画像って、どうやって分類するの?
教えて!エロい人!?

168 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 14:25:52.61 ID:LemtF0up.net]
>>159
まず自力で集める
えろくない画像も集めておく
それを教師データにしてエロい・エロくないを学習させる

169 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 15:05:30.24 ID:HHnqLgqK.net]
>>157 そりゃニーズがないものを試験するのは無駄。

170 名前:デフォルトの名無しさん [2019/02/16(土) 17:34:44.82 ID:mSqP7pCT.net]
フォルダを分ける
●永久保存
●たまに観たい
●あとで観る
●即消し

フォルダ毎にランク数値化してベイズ学習して
新しい画像が来るたびにまたフォルダ分け
(自動化するが人間によるチェックも必要なのでいきなりフォルダに入れず
それぞれのフォルダ毎に保留バッファを用意して人間が承認して正式にフォルダ移動とともに再学習)

これで問題になるのは「即消し」フォルダにある画像も消したくても再学習のために消せないんじゃないかということ

171 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 21:35:51.99 ID:cOF81sF3.net]
pythonで開いたファイルを完全に閉じるにはどうしたら良いんでしょうか?
closeしたあとにshutil.moveで移動しようとしても、ファイルが使用中とエラーがでてしまいます。



172 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 22:09:05.36 ID:/KIqi5pj.net]
本当にPythonがハンドルを掴んでるのかまず確認しろ
「さっきまで開いてたから」は根拠にならない

173 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:00:34.97 ID:Hg63DdMm.net]
>>153-155
Ruby では、
str = "あ\\\"あ"

p str #=> "あ\\\"あ"
print str #=> あ\"あ

p では全体を、" " で囲んでいるように、文字列の内部表現を見ている。
一方、print では、文字列を外部に表示したもの

174 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 00:30:33.10 ID:Hg63DdMm.net]
>>156
jQuery 子要素を含まない text() が欲しい時
https://qiita.com/Urushibara01/items/7b44a3de5cc40d8a10be

elem.children().empty();
で一旦、すべての子要素を削除してから、

elem.text();
で、テキスト部分を取得している

つまり一旦、<span> の部分を削除してから、テキスト部分を取得する。
でも実際に、DOM が削除されてしまうのは、都合が悪いかも知れない

他にも「jquery text 直下」で検索して、探してみれば?

175 名前:166 mailto:sage [2019/02/17(日) 00:46:15.18 ID:Hg63DdMm.net]
scrapyでよく使うxpath, cssのセレクタ
https://python.civic-apps.com/scrapy-xpath-css/

直下の子要素指定でフィルタの所に、xpath, css で、
<div>aaa<div>bbb</div></div> で、aaa だけを取得する方法が書いてある

176 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 01:19:40.29 ID:p7gH0RbB.net]
>>165
>文字列の内部表現、文字列を外部に表示
なんか良い表現だな
自分の言葉でこんな表現出来るルビ基地は頭は悪くないんだろうから、
基地外精神を直せばいい奴になるのにな。
俺らが気にするのは文字列を外部に表示のほうだからな
>>> "あ\\\"あ"
'あ\\"あ'
なら
>>> len( "あ\\\"あ" )
は4なのか5なのか

177 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 08:16:33.30 ID:WySC1FKQ.net]
>>168
試したら4だったよ

178 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 09:55:44.57 ID:yxjz1BDw.net]
>>164
確認しました。
掴んでるのはpython.exeだけでした。

179 名前:デフォルトの名無しさん [2019/02/17(日) 13:41:35.73 ID:7mUUrd8D.net]
>>170
違うものを閉じようとしてるんじゃね

180 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:08:27.77 ID:+S0MQzvf.net]
>>165 なんで python スレに Ruby の解説を持ち込まないといけないんだよ。 python をさわれないなら黙って見てろ。

python で説明するなら、

str = "あ\\\"あ"
rstr = r"あ\\\"あ" # raw string
print(str,rstr)
#あ\"あ あ\\\"あ
l

181 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:23:35.65 ID:+S0MQzvf.net]
raw string は、正規表現関係の検索文字列で使われる。



182 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 14:32:37.51 ID:+S0MQzvf.net]
>>172 普通は解釈(代入)段階でエスケープされるけど、raw 指定された場合は、エスケープしないだけで、結果としてできた文字列はどちらも str 属性のまま。

183 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:01:00.41 ID:+S0MQzvf.net]
>>139 tab 非推奨って本当?
サンプルコードを拾ってくると確かにタブは使われていない。
でもそれを修正して使おうとするとタブが入るから、エラーとされる。
合わせるのが大変なんだけど、みんなどうしてんの?

184 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:09:57.38 ID:2Zsn/By5.net]
yesタブ非推奨
正規表現できるエディタ(秀丸エディタとか、sakuraエディタ)で
\tを「 」(半角スペース4つ)に一斉置換でおk

185 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:13:46.38 ID:naWxhgEk.net]
>>172
ルビ厨に構うなよ…

186 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:27:26.15 ID:yxjz1BDw.net]
>>171
すいません、解決しました、
文法がRubyとごっちゃになってcloseに()が付いてませんでしたorz
エラーにならないから全然気づかなかった…

187 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:39:19.93 ID:yfMLX38R.net]
>>176 一括変換はどのようにしてもできるんだけど、コピペして動かそうとして修正するときに面倒。

利口なIDEなら両方を調整してくれても良さそうなものだけどな。
まだ、IDEをどうするのか決めてないし、とりあえずEclipseに入れるつもりだけど、なんか途中でつまづいてる。

188 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 15:49:18.49 ID:naWxhgEk.net]
>>179
大抵のIDEでTabキーでスペース挿入とかできるはずだが?

189 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:18:58.04 ID:OPCV5npO.net]
>>178
with open構文使えばそんなことで悩むことなかったのに

190 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:29:14.69 ID:+S0MQzvf.net]
>>180 IDEはまだ使っていないって、pythonista やjupyter で練習中
ただ、IDEでスペース挿入できたって、コピペしたやつとスペースの数が違えばダメだろ? 大抵は一括変化できるだろうけど。

それでもjupyter などで使おうとするとやはり苦労するよね?

191 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:50:07.52 ID:+S0MQzvf.net]
質問(1)
‘__main__’ in globals()
や、
2 in [1,2,3]
がTrueになるのはなんで?
定数 in 集合は、定数を取り出せと言う意味なのかな?

i in [1,2,3]
が許されないの



192 名前:ヘ何を取り出すのわからないからかな?

質問(2)
print( [i for i in [1,2,3] ] )
が許されて
print( (i for i in [1,2,3] ) )
が許されないのがわからない。
[]
[ここ壊れてます]

193 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 17:56:47.88 ID:T3+WXnTJ.net]
>>183 質問(1)は自己解決
まともな文法書を読み始めて2日目で、ようやくたどり着いた。

《in演算子によるメンバシップ検査》
書き方: 要素 in リスト 
リストの中に要素があればTrue,なければFalseを返す.要素が含まれないことを検査するにはnot inと記述する

194 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 18:15:18.83 ID:naWxhgEk.net]
>>182
グダグダ言う暇あったらテキトーなIDE使ってみなよ
スペースの数とかも指定できる
そもそも他の開発者がいちいち一括変換とかして苦労してるわけ無いだろ

195 名前:デフォルトの名無しさん [2019/02/17(日) 19:09:07.40 ID:9eEjpIke.net]
>>183
質問(2)について
二つ目が「許されない」と言う意味が分からないが、少なくとも文法的には間違いではない
(i for i in [1,2,3] ) はジェネレータ内包表記といいgeneratorオブジェクトになる
ジェネレータはnext関数に渡すと次々に値を返す。最後まで到達するとStopIteration例外を出す
>>> gen = (i for i in [1,2,3])
>>> gen
<generator object <genexpr> at 0x7fb1b1a86ba0>
>>> next(gen)
1
>>> next(gen)
2
>>> next(gen)
3
>>> next(gen)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

196 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:20:42.25 ID:glILnxtO.net]
ビートセイバーの通常プレイってなんだかんだで斬る方向も指定されるから
いまいち魅せプレイには向いてないんよな 
めめめにダースモールプレイでくるくるしてほしいンゴ

https://www.youtube.com/watch?v=e-m09N_HtRk

197 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:20:57.80 ID:glILnxtO.net]
誤爆

198 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:31:52.09 ID:+S0MQzvf.net]
>>186 有り難う。 同じような形なのになんでprint ができないのかと言う疑問だった。
print( (i for i in [1,2,3] ) )
は、ジェネレータから取り出してしないからと言う理解で良いの?

199 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 19:51:22.25 ID:OPCV5npO.net]
>>189
Pythonの分かりにくいところだよね
同じ記号を別の意味で使っている

[1,2,3] リスト。集合は可変
(1,2,3) タプル。集合は不変

if 2 in [1,2,3] リストの中に2が含まれるか判別
for i in [1,2,3] リストの要素で繰り返し

[i for i in [1,2,3]] リストの要素で繰り返した結果を演算しリストとする
(i for i in [1,2,3]) リストの要素で繰り返した結果を演算するgeneratorを返す

普通に考えたらgeneratorではなく演算結果をタプルで返すように思うよね

200 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:07:17.70 ID:U9IIuCB3.net]
内包表記でタプルは作れない(ジェネレータになる)だけで一貫してるだろ
それに
for i in イテラブル
じゃなくて
i for i in イテラブル
だし

201 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:25:38.62 ID:WySC1FKQ.net]
>>184
「まともな文法書」が何かを記していただければ、このスレの住民には助かると思います



202 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:31:16.29 ID:tKx1WgvG.net]
in単体なら演算子だけど、forではそれ含めて文だからねぇ
文脈によって解釈が変わるのはC/C++でも英語でも同じ

そしてタプルを作るのは丸括弧ではなく「,」である

203 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:33:32.71 ID:U9IIuCB3.net]
というか「(1,2)はカッコがあるからタプル」は偽だから
(x for x in [1,2,3])がタプル返す義理はないな
まぁその辺のサイトみたら軒並み「タプルはカッコでくくってつくる」って書いてあるのはそうだけど
ドキュメントにはそうは書いてない

204 名前:デフォルトの名無しさん [2019/02/17(日) 20:39:37.47 ID:9eEjpIke.net]
確かにカッコ使わずに
a =1,2,3
でもタプルになるしな

205 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:42:19.07 ID:OPCV5npO.net]
>>194
カンマで区切ればタプルにるけどさ、タプルの出力は必ずカッコで括られるんだから、直感と違うわけだよ

206 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:44:17.06 ID:GfPZMs79.net]
カッコつけてるだけだよ

207 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:46:20.17 ID:4CukteGI.net]
リストはイテラブルなオブジェクトでイテレータではないらしいけど、なんで最初からリストをイテレータとして使えるようにnextメソッドを実装しておかないんや

208 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:47:29.51 ID:glILnxtO.net]
>>196
practicality beat purity(実用性は純粋さに勝る)だぜ
ジェネレーターにすれば途方もない数も扱えるわけだし
デフォでジェネレーターになるのはしょうがない

range()がリストではなくイテレーターを返すようになったようにな

209 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:47:49.01 ID:p7gH0RbB.net]
>>193
だよな
(1)は整数の1、でも、(1,)は整数の1を持つタプル
()だけではタプルを生成することにはならないからな
これは俺でも知っている超超入門レベル知識だからな

>>194
(x, for x in [1,2,3])とかならタプルを生成しなんだろうが

210 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 20:50:48.52 ID:U9IIuCB3.net]
>>200
(x, for x in [1,2,3])
はシンタックスエラー
((x,) for x in [1,2,3])
ならタプルを3つ返すジェネレータができる

211 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:11:43.56 ID:GfPZMs79.net]
(x,)っていかにも要素2つありそうな見た目だけど要素数1のタプルなの?w



212 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:19:41.54 ID:OPCV5npO.net]
>>202
公式のチュートリアルにもUglyと書いてあるだけあってなんだかなぁとは思う

213 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:55:32.99 ID:nNpu08PZ.net]
益々訳ワカメになってきた。

214 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:00:38.59 ID:p7gH0RbB.net]
>>201
(x, for x in [1,2,3])
がエラーなのは分かっている
でも、なんかタプルの(1,2,3)を作ってくれそうな感じだろ
{ n:str(n) for n in [1,2,3] }で辞書を作れるんだから

215 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:08:56.80 ID:nNpu08PZ.net]
((x,) for x in [1,2,3])

ってどんな意味があるのかわからん。

print(list ((x,) for x in [1,2,3]) )
#[(1,), (2,), (3,)]

(1,) ってどんな意味があるの?

216 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:15:21.52 ID:glILnxtO.net]
>>206
(1,)とか(2,)っていうのは「要素がひとつだけのタプル」を示す

217 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:56:02.90 ID:nNpu08PZ.net]
やっぱチュートリアルをちらっと読んだだけじゃ、基本的なことがわからないな。

言語設計者の開発秘話みたいなものが聞けると面白いと思うんだけど。

218 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 23:03:18.87 ID:Hg63DdMm.net]
>>178
Ruby で言えば、File.open にブロックを付けると、
ブロックを抜けるときに、例外時にも自動的に、開いたファイルを閉じてくれる

自分で例外処理、finally・ensure などに、file.close を書いたのと同じこと

コンテキスト・マネージャー。
Python にも、同じものがあるはず

219 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 23:20:56.32 ID:glILnxtO.net]
pythonの基本方針はimport thisで読める

False == False == FalseがTrueになるとか面白いよな

220 名前:デフォルトの名無しさん [2019/02/17(日) 23:51:24.85 ID:9eEjpIke.net]
True+Trueが2になるとかな

221 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:38:39.85 ID:9Y7UoWyl.net]
>>207 ますますわからなくなってきた。
タプルと言うのは、複数の数値の羅列だと思ってたのに、一つでなんでタプルになり、一つのタプルにどんな効果が出てくるの?

そう言う文法だからと言えばそうなんだろうけど、
1 in 1 をエラーにして、1 in (1,) をTrue にする意味があるんだろうか?
1 in (1) と区別が付かんと困るからかな? ただのカッコ()とタプルの区別を カンマの有無で区別すると言うことか。



222 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:42:35.27 ID:SjVwlNp1.net]
「1 in 1 をエラーにして、1 in [1] をTrue にする意味があるんだろうか?」

223 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:54:13.98 ID:Tb62uZUC.net]
「数値1つ」と「数値1つだけを含んだ集合」は別のものだ。
1つの要素しか含まないリストを作ることもできるし
1つの要素しか含まない辞書も

224 名前:作ることができる
タプルができない理由はない

まぁプログラミングというか論理学の話になるけどな

1 in 1でエラーが出るのは当然
1と1は同値であり、1の中に1が含まれているわけではないのだから
[]
[ここ壊れてます]

225 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:56:36.72 ID:9Y7UoWyl.net]
>>210 import this があるなんて面白いね。

プログラマが持つべき心構え (The Zen of Python)
https://qiita.com/IshitaTakeshi/items/e4145921c8dbf7ba57ef

The Zen of Python, by Tim Peters
ちなみに、"Zen"は日本語の「禅」です。

1 in 1 を許さないのは禅問答になるのかな? 悟りを開くしかないのかな?

226 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:02:08.73 ID:9Y7UoWyl.net]
>>214 リストやタプルは集合体だから何かの入れ物の中に入ったもので。
1 in 1 は、入れ物がないから取り出せないと言う感じかな?

じゃ、リストやタプルは現実社会のどんなものに対応するんだろう。

227 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:18:45.55 ID:Tb62uZUC.net]
「1つの要素」と「要素ひとつだけを含む集合」は
「弾丸一発」と「一発だけ弾が残った弾倉」と同じくらい違う

「書類1枚」と「1枚だけ書類を挟んだファイル」と同じくらい違う

風来のシレンで言うと
「アイテムひとつ」と「アイテムがひとつだけ入った壺」と同じくらい違う


pythouの内部的にはリストやタプルには「複数の要素を扱うための機能」がついてる
単一の要素整数にはそれがない

だから単一の要素にinを使ってもそもそも「その要素が含まれているかどうか」を確認することができない

228 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:29:08.54 ID:SjVwlNp1.net]
JavaScript「呼んだ?」
1 == [1] //=> true

229 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:36:54.94 ID:Tb62uZUC.net]
>>218
これがあるから===しか使いたくない

230 名前:デフォルトの名無しさん [2019/02/18(月) 08:12:09.71 ID:7eiXgP3l.net]
int[] a = { 1, 2, 3, 4, 5, 6 };

int sum = 0;

for(int i = 0; i < a.Length; ++i)
{
sum += a[i];
}

int b = sum / a.Length;
Console.WriteLine(b);

とあるんですがsum/a.Lengthは何割何で計算してるんですか?
配列の計算原理が本ではいまいち分からないので教えて下さい;

231 名前:デフォルトの名無しさん [2019/02/18(月) 08:41:37.17 ID:tx9DPBTs.net]
>>220
for文による繰り返し処理を勉強してください



232 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 08:45:07.32 ID:JBcAVpfH.net]
>>220
そいつぁC#で合計÷要素数=平均じゃないの?
int同士で端数が切り捨てられる事を聞きたいの?

233 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 09:46:20.06 ID:qsq8EO4j.net]
Ruby 2.6 では、

ary = [1, 2, 3]
ary.sum
#=> 合計は、6

平均値は、合計を要素数で割る。
mean = ary.sum / ary.length

234 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 10:44:29.19 ID:1FoQC5sv.net]
>>223
死ね

235 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:18:05.03 ID:NoNskV/l.net]
>>223
荒らし

236 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 12:38:24.20 ID:qDhO0A3F.net]
計算結果や変数内の値はprintで表示できる
そんなことが説明なされない本なんて売っぱらちゃいな

237 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 14:05:11.71 ID:7eiXgP3l.net]
>>221->>222
for文は理解できているのですが、a.Lengthこれが何の数値に化けるのか分からないです…
要素数というのはつまリ6になるということですか?

238 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 14:06:00.10 ID:mU1u6kNH.net]
>>227 そう
>>220 python だと、

a = [ 1, 2, 3, 4, 5, 6 ]
sum = 0
for i in range(len(a)):
sum += a[i]

b = sum / len(a)
print(b)
print('配列内の合計=',sum,'割る','配列長=',len(a),'答は',b)
#3.5
#配列内の合計= 21 割る 配列長= 6 答は 3.5
222.5万、税、都税

239 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 14:12:48.12 ID:fpnGWm5B.net]
>>227
何の数値に化けるのか分からなかったら、
print(a.Length)してみればいい。

240 名前:デフォルトの名無しさん [2019/02/18(月) 14:40:05.59 ID:oU/NFgq1.net]
>>198
分けないとマルチプロセスで困るだろ

241 名前:デフォルトの名無しさん [2019/02/18(月) 14:46:31.19 ID:oU/NFgq1.net]
pythonは
a=[1,2,3]
で a.len とか a.Length とか取れないのはきもいな



242 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 14:54:14.63 ID:7eiXgP3l.net]
>>228
完全に理解できました!
ありがとうございます(・ω・)ノ

243 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 15:01:26.05 ID:Tb62uZUC.net]
>>231
a.__len__()

244 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 16:14:05.74 ID:mU1u6kNH.net]
>>148 >>149
どちらも同じみたいだね。

Python チュートリアル 第 3 版
https://books.lifewithpython.com/books/58/
Python の作者である Guido van Rossum 氏が書いた Python の入門書です。

尚、この書籍と同じチュートリアルに対する日本語訳がウェブ上でも公開されています(ウェブ上の翻訳と本書の翻訳は異なります)。 好みに応じて好きな方を選ぶとよいでしょう。

Python チュートリアル ― Python 3 ドキュメント
https://docs.python.jp/3/tutorial/index.html

個人的には、他の言語でプログラミング経験のある方が Python を始めるときにはよいのですが、プログラミング自体が初めての方にとっては本書は少し難しいのではないかと思います。
プログラミングが初めての方でこの本を読みたい方には、一度中身をチェックしてみてから購入するかどうかを決めることをおすすめします。

Guido 氏が書いたチュートリアルということで、プロの Pythonista なら誰しも一度は読んだことのある一冊でしょう。

245 名前:デフォルトの名無しさん [2019/02/18(月) 16:25:56.30 ID:OhspBoh0.net]
Pythonのええとこは何でも特殊メソッドに委譲するとこやね
マジで何でもできる、おもちゃに最適

246 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 16:41:09.54 ID:3yKPK3LO.net]
>>234
Python の理解度確認をするために「Python チュートリアル 第3版」を読んだ
Python 本
オライリーから出版
https://kakakakakku.hatenablog.com/entry/2019/01/13/140726
オライリーから出版されている「Python チュートリアル 第3版」を読んだ.
読者対象として「Python 入門者のための」と書いてあるけど,そこそこ難しい内容もあり,中級者でも楽しめる内容になっている.
本書の最初に載っている「訳者まえがき」にも,理解度によって読む方法を変えて良いと書いてあった.
今回本書を読んでみて,勉強になった部分を整理しておこうと思う.
なお,本書は「Python 3.5.1」をサポートしている.さらに付録もあり,特に「付録E」と「付録F」は面白かった.

247 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 17:20:44.97 ID:3yKPK3LO.net]
>>236

https://kakakakakku.hatenablog.com/entry/2019/01/14/000300
模擬試験(無料)
認定スクール「DIVE INTO EXAM」から無料で提供されている模擬試験がある.まだ β であると記載されているけど,計80問あり,試験同様に計40問出題される.
模擬試験の受験回数に制限はなく,何度も何度も繰り返し受験できる.少なくとも1度は受験しておくと良いと思う.

248 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 19:22:55.51 ID:W9szlA1+.net]
>>227
.lengthとかcountってのは大概その集団の要素の数だと認識しておけば良い。定石のようなものだ。

249 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 19:52:34.04 ID:mU1u6kNH.net]
しかし、最初python って簡単じゃんと思ったけど、なんか混乱する。

() [] {}
add append extend del discard とか、

最初理解できないのは、何がオブジェクトなのか?

250 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 20:45:21.68 ID:9P3l8zH4.net]
このスレで連投されてる内容の答えはすべて公式ドキュメントに書いてある
たとえば>>228なら
for i in a: sum += i
でもいいし(というかそれが普通)
だいたい総和はsum(a)で、平均値はstatistic.mean(a)で一発で出る

251 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 20:45:59.87 ID:9P3l8zH4.net]
statistics.mean(a)
のミス



252 名前:デフォルトの名無しさん [2019/02/18(月) 22:13:42.80 ID:EFaetCEP.net]
クロージャーとかデコレータとか覚えれへんわ

253 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 22:34:44.93 ID:F+QeAL77.net]
>>189
>>184のまともな文書には、print( [i for i in [1,2,3] ] ) が許される理由が書いてあると思うんだが。
許される理由が分かれば許されない理由もなんとなくわかるだろ。
先ずまともな文法書でprintを読め
と言っても、低脳すぎてまともな文書を読むのに四苦八苦だから尋ねているのかもしれないが
(まぁ、まともな文書、許されるって素敵な言葉を使うぐらい超優秀な脳だから、この可能性は低いか)

超簡単にまとめると
class AA :
pass

class AAA :
def __str__(self): # 僕を文字列で表す要求来た時、こう紹介します
return "AAA"

print(AAA()) #許される
print(AA()) #許されない

254 名前:デフォルトの名無しさん [2019/02/19(火) 00:12:01.46 ID:1Fqwt8so.net]
>>239
del使うシーンは滅多にないな
全く無い訳じゃないけど

255 名前:デフォルトの名無しさん [2019/02/19(火) 00:13:06.83 ID:1Fqwt8so.net]
>>242
それは今君に必要が無いということだ
必要があって使ってれば勝手に覚わる

256 名前:デフォルトの名無しさん [2019/02/19(火) 00:17:12.07 ID:x5yxwCIo.net]
Python3エンジニア認定基礎試験って模擬試験と同じ問題出るわけないわよね

257 名前:デフォルトの名無しさん [2019/02/19(火) 00:46:31.87 ID:x5yxwCIo.net]
てか模擬試験の解答見にくいなあ

258 名前:デフォルトの名無しさん [2019/02/19(火) 00:49:41.46 ID:c2xVE4LG.net]
試験のためにpython勉強してんのか?
あほやん

259 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 01:56:10.83 ID:UOhpPyGI.net]
やんやん

260 名前:デフォルトの名無しさん [2019/02/19(火) 02:50:12.73 ID:fH1K3jOo.net]
>>243
何食ってたら初心者スレでこんなに上から目線で不快な文が書けるんだろう

261 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 03:19:28.34 ID:UOhpPyGI.net]
自分より弱い者に憎しみを抱くはずがないでしょう 抱くのは哀れみ



262 名前:デフォルトの名無しさん [2019/02/19(火) 06:23:45.14 ID:QXXeWHDh.net]
>>250
うんこ

263 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 06:26:20.60 ID:hAizIKGb.net]
>>243
>>print(AA()) #許されない

許されるだろ

264 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 07:06:55.77 ID:TL2+PvJX.net]
オブジェクトって変数+関数みたいなものと理解してる
だけど、pythonでlen()みたいな関数が存在してるのはなんでや
obj.len()みたいに書く方がオブジェクト指向ぽいのに(´・ω・`)

265 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 09:35:20.19 ID:snU9lsNN.net]
後付けだから

266 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 10:11:21.93 ID:SwtNBaDU.net]
>>254
obj.__len__()

267 名前:デフォルトの名無しさん [2019/02/19(火) 10:37:48.43 ID:ClxsX7KR.net]
うーんダンダーキモいな
objが__dict__属性もってるなら
obj.len = obj.__len__
obj.len()
はい

268 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 11:03:15.41 ID:D8b3v+Fo.net]
>>254
必ずしも同じ名前のメソッドで要素数を取得できるとは限らないから
Javaの配列の.lengthとコレクションの.size()なんかいい例

269 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:25:15.51 ID:xAiOFAtZ.net]
>>154 pdf のキャラクターコードが違っていて、コピペでは、エラーが起きるから、やはり大きなサンプルはソースが提供されていることが必要だ

270 名前:な。

2番目の大学の先生の【Python3入門】はサンプルソースも付いている。
math ライブラリーの関数一覧くらいは載せてても良いとは思ったが、贅沢は言えない。入門には必要ないと言えばそうかも知れないが。
[]
[ここ壊れてます]

271 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:51:31.05 ID:t+ZZI+Uh.net]
vs codeでpythonを実行するときのコマンドはなんですか?
ターミナルから実行するのが普通なんでしょうか?



272 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:57:52.58 ID:xAiOFAtZ.net]
>>260 あまり知らないけど、こんなあたりで良いの?
https://docs.microsoft.com/ja-jp/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-01-create-project?view=vs-2017

273 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 18:03:26.75 ID:t+ZZI+Uh.net]
あと、vsコードの補完は、pythonエクステンションに含まれているのですか?

274 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 23:26:35.02 ID:xISlfG0u.net]
print() は、わかりやすいが、BASICみたいな ? と言うような自由な記法があっても良いのではと思ってたけど、関数がオブジェクトだから結構自由にできるんだね。

p = print
p(111)
#111 使い過ぎるとわけわかめになりそうだが。

275 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 23:36:01.89 ID:x5gWYD95.net]
>>262
vs codeとvsコードの表記の揺らぎを直すところからやってみよう!

276 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:19:50.88 ID:1HzmSa/X.net]
>>258
俺、Pythonを実質2週間ぐらいやっているんだけど
やり始めてすぐに>>254のような感を覚えた。
それなりの理由があるってことか(ちなみにJavaはさっぱり分からん)。

他の言語同様に、変数、メソッド名をアンダースコア(シングル、ダブルアンダー)で始めるとかで何かしらの意味を
与えていると分かっているんだが、目下あんまり調べてないからな。
プライベート変数がダンダーって見てすぐにわかるから良いと言えばその通りなんだがな

277 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:27:21.38 ID:zgA3z1dT.net]
pythonの関数名や変数名のアンダースコアは文法上は何の意味もなかったはず
そもそもpythonにはプライベートやパブリックの概念が存在しない
単に人間が見分けやすいようについけてるだけ

278 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:41:35.75 ID:1HzmSa/X.net]
>pythonにはプライベートやパブリックの概念が存在しない
これ知った時は俺驚いたよ。
privete、public等のキーワード付けて明確にしないのは、
Python教の哲学なんかと。

279 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:43:10.98 ID:PF1BNO4k.net]
こんな記法を見たんだが、どう言う文法からこんなのが出てくるの? 3項演算子みたいなものだが。
短絡評価if と言うらしいけど。

i = 8
print(i%2 and'odd!!!!'or'>EVEN<')
#>EVEN<

短絡評価というのは先に成立した(True)方だけを見て後ろは見ないと言う方式みたいだね。
また、if が無くても評価式だけで成立するんだね。
print(0 and 2 or 5)
#5
print(1 and 2 or 5)
#2

しかし
print(1 and 2 )
#2
はなんとなく違和感がある。

そう言えば、3項演算子があってなんで2項演算子みたいなものが無いんだろうと思ってた。
3項演算子なら
2 if 評価式 else 5 が有って
2 if 評価式 が無いのが不思議だった。
評価式 and 値(0以外) がそれに当たるのか。
しかし、 1 and 2 の時どうして後ろの値が有効になるのかな?

280 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:50:35.52 ID:hdPlDSUg.net]
True and 2

281 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:53:32.30 ID:PF1BNO4k.net]
短絡評価自体は理解しやすいんだが。
https://qiita.com/dinasetiana/items/2b0cb63e91e9511d1c6e

True and b
のとき何故、bの値を取るのか? 先後に成立した評価の値を取る?何故 True では無くbの値を取るのか?



282 名前:デフォルトの名無しさん [2019/02/20(水) 00:56:34.30 ID:gK0qp ]
[ここ壊れてます]

283 名前:GCl.net mailto: >>268
公式DOC>FAQにずばり詳解されてるので見るヨロシ
[]
[ここ壊れてます]

284 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 01:30:40.30 ID:DM4qe6j0.net]
FAQ は見つけられなかったけど、標準ライブラリの仕様書にしっかり書いてあった。
FAQの項目を教えてもらうとありがたい。

真理値判定
ブール演算 --- and, or, not
x or y x が偽なら y, そうでなければ x (1)
x and y x が偽なら x, そうでなければ y (2)
not x x が偽なら True, そうでなければ False (3)

さっと読み流した時は、and or は単なる論理的な演算だけだと思ってたから、値を取ると言う考えがまるでなかった。

注釈:

(1) この演算子は短絡評価されます。つまり第一引数が偽のときにのみ、第二引数が評価されます。
(2) この演算子は短絡評価されます。つまり第一引数が真のときにのみ、第二引数が評価されます。
(3) not は非ブール演算子よりも優先度が低いので、 not a == b は not (a == b) と解釈され、 a == not b は構文エラーです。

285 名前:デフォルトの名無しさん [2019/02/20(水) 01:36:22.16 ID:R9Rgujjr.net]
>>266
一応メソッドやメンバの名前の先頭に__(アンダースコア2つ)を付けると擬似的にプライベートになる(外から参照するとエラー)
実際は __名前 を _クラス名__名前 に置き換えるだけだが

286 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 03:12:26.13 ID:B2QSVSiS.net]
>>260-261
Code Runner という拡張機能で、右クリックメニューから、指定したソースコードの範囲を実行できる。
Ctrl+Shift+P で、Run Code でも同じ

>>254
Python は、Ruby よりも不自然。
Ruby, JavaScript みたいにメソッドチェーンしにくい

Ruby では、メソッド名を、シンボル: で渡せるから、処理の内容が明確

[1, 2, 3].inject( :+ ) #=> 6

287 名前:デフォルトの名無しさん [2019/02/20(水) 03:15:50.94 ID:P3DZex+Y.net]
python資格試験はクラス捨ててもOK?

288 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 03:18:46.77 ID:W95E7B6+.net]
>>272
https://docs.python.org/ja/3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator
昔の名残。条件式はif文ではないのでelseを省略することは出来ない(値を返さねばならない

289 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 05:23:08.72 ID:wMUHduDL.net]
>>261
c#の場合はターミナルからdotnet runで実行だと思いますが、pythonの場合はそういったものはないのでしょうか

290 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 07:12:57.02 ID:SpCnH/g7.net]
>>274
死ね

291 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 08:33:48.20 ID:PF1BNO4k.net]
>>277 コンソールから直接ソースを叩けば動くよ。

hoge.py
hoge
或いは
python hoge.py

要は、exeファイルと同じ動作をする。だから、exploreから .pyをクリックしても起動する。
(ただ、コンソールが見えないとあまり解らないだろうけど。)

python は、コンパイルという作業がいらないから、
dotnet run の様にコンパイルの指定が必要ない。



292 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 09:06:26.28 ID:DM4qe6j0.net]
>>277 だから普通にDOSコマンドの実行と同じprocess.start で良いのでは?
勿論、python が、インストールされている必要はあるが。

ni4muraano.hatenablog.com/entry/2017/07/08/233224
<略>
p.StartInfo.Arguments = @"/c python hello.py";
p.Start();

pythonがインストールされていない環境にpython のソースコードだけを渡しても動かないから、その場合は考慮の必要はありそうね。

PythonスクリプトをWindows環境で動くexeファイルにしよう
https://www.sejuku.net/blog/65881

293 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 10:30:31.71 ID:wMUHduDL.net]
>>279
>>280
たんにpythonと入れてからパスを指定すればいいだけなんですね
あと、右クリからもターミナルで実行ができました

294 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 10:51:51.66 ID:BBElsiq0.net]
>>260
俺、いつもエディタ(geditやGeanyやVS code使ってる)の横にターミナル開いといて、
ソース保存→ターミナルで $ python3 xxx.py→エラー→エディタで編集・保存→ターミナルで再実行(↑&Enter)→ エディタで編集・保存....
てな感じでやってるんだけど、エディタから実行したほうがやっぱり便利なんですか?

295 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 11:03:36.79 ID:spTGKHkg.net]
>>282
煽りとかじゃなくて逆に聞きたいんだけど、
vs code使ってターミナルで実行する意味(メリット)がわからないんだけど。
vs codeのブレークポイントとか利用しないって事?

296 名前:デフォルトの名無しさん [2019/02/20(水) 13:38:56.65 ID:gRk6WtzR.net]
>>113
YouTubeで北神雄大を検索。

297 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:06:26.32 ID:uB83dASb.net]
python書くエディタとIDEで人気なのは、pycharmとvscodeかね

298 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:08:20.36 ID:ICk0Y2AW.net]
Atom...(小声)

299 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:13:40.84 ID:NaL8/JA7.net]
Spyder...(小声)

300 名前:瘋癲の錬金術師 [2019/02/20(水) 18:17:46.89 ID:gK0qpGCl.net]
>>287
あれええな、組み込みターミナルがqtconsoleでインラインプロットもJupyter同様にできる
VSCodeでなんとか使えないかと試したけど無理だった
VSCodeが弱いFortranも書くので環境統一のためnvim+qtconsoleにした

301 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:17:47.79 ID:3A0CDvTh.net]
Eclipse にインストールしようとして、エラーが出てからほったらかし(超小声)
そもそも、venv anaconda eclipse が強調して動いてくれるんかよ。



302 名前:デフォルトの名無しさん [2019/02/20(水) 19:52:42.43 ID:v7iPz90J.net]
>>266-267
意味はある
継承してみれば判る

303 名前:デフォルトの名無しさん [2019/02/20(水) 19:54:36.31 ID:v7iPz90J.net]
>>270
and は二つ目の条件も成立するかどうか評価するからな

304 名前:デフォルトの名無しさん [2019/02/20(水) 19:56:21.10 ID:v7iPz90J.net]
>>280
sejukuはクソだから貼らなくていいよ

305 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 20:30:34.29 ID:0GDprFxB.net]
そういや侍エンジニアの騒動は鎮火したのか?

306 名前:デフォルトの名無しさん [2019/02/20(水) 20:34:51.41 ID:jOZlK4md.net]
pythonでのWEBスクレイピングって、過去の更新情報も見れたりするのかな?

307 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 21:49:50.49 ID:aaH1DDBC.net]
何を浚うか指定できないのか?

308 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 21:55:37.90 ID:EgtCXVwu.net]
>>294
Pythonやスクレイピングは魔法でも超能力でもありません

309 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 02:54:29.18 ID:kxn9bd4Y.net]
The camel has two humps (working title)
Saeed Dehnadi and Richard Bornat School of Computing, Middlesex University, UK
February 22, 2006

310 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 05:22:18.25 ID:kxn9bd4Y.net]
>>295

https://i.imgur.com/VCh6cSs.jpg

311 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 07:26:25.64 ID:8rp9UCEX.net]
初心者スレの内容に合うか分からないけど質問させて
最近は作るときに凝集度とか結合度、クラスの責務とかも気になるようになったんだけどじゃあ具体的にどう作るべきかが分からない
何をどう勉強しようか て状態なんだけどデザインパターンを学べばいいのかな?これも大切だけど自分が学びたい内容とは少しずれてるようで…



312 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 08:55:18.20 ID:Daclfccm.net]
>>283
すみません。見え張ってました。VS Codeは数回使ってみだけで、基本的に元通りgedit使っちゃってます。

313 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 14:34:58.79 ID:y1fIYiTV.net]
NIC(ネットワークインターフェイス)が複数あるPCで、
requestsを実行する際にNICを指定してGETなりPOSTなりをしたいのですが、
方法が分かりません、requests自体にその手のパラメータはなさそうですが…。
どなたかお教えください。

314 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:19:27.90 ID:YDJO8R6Z.net]
層が全く違うぞ
どういう意味だ?

315 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:38:13.68 ID:1URmNQhh.net]
>>301 NICを指定することはできないんじゃないの? そもそも何をしたいの?
複数のNICが同じLANに出ていけばどちらを経由しても行きつく先は同じだけど。
もしこんなことをやりたいのか?
NIC-1 >> LANのIP-1にだけ繋がってる
NIC-2 >> LANのIP-2にだけ繋がってる

それでIP-2につなぎたいからNIC-2を使いたいとか?
だったらNICなんか気にせずに接続しに行けばつながる方にしかつながらない。

316 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:44:20.15 ID:y1fIYiTV.net]
>>302
分かりにくかったらすいません…
例として、PCにそれぞれ別のグローバルアドレスを持ったNICが二つあって(AとB)、
あるWebサーバーへの通信(=最終的にやりたいのはrequestsのGET/POST)はNIC-A経由で通信する、
また、別のWebサーバーへはNIC-B経由で通信する、ということをしたいのです。
かえって分かりにくいでしょうか…?

317 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 15:46:43.29 ID:y1fIYiTV.net]
>>303
説明が足りずすいません、上に書いたとおり、NICはそれぞれ別のグローバルIPを持っていて
且つ、通信先はインターネット上のWebサーバーです。
接続先によってNIC(というかソースIP)を使い分けて通信したいのです。

318 名前:デフォルトの名無しさん [2019/02/21(木) 15:59:09.52 ID:auY8mpXd.net]
>>305
皆の質問の意図を理解できていないよ

なぜ、
>接続先によってNIC(というかソースIP)を使い分けて通信したいのです。
わざわざこんな使い分けをしたいのか、その理由を聞かれている
普通はソースIPを分けなくても接続できるから

319 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:40:54.57 ID:yAj8ZZjm.net]
>>305 何か理由があってどうしてもやりたいのなら、ルータなりでIPルーティングをすれば出来るけど。

静的ルーティングの設定 - Linux
https://qiita.com/kooohei/items/b0931ae210911cc52adc
この場合だとNICの選択もできる。

320 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 16:41:32.97 ID:VKoyYoRj.net]
>>306
そんなもんプログラムじゃなくてもっと下層層でやることや

321 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:21:39.12 ID:y1fIYiTV.net]
>>307
スクレイピングやWEB-APIを叩くときに、ratelimitが厳しいサイトがあるのでほんの少しそれを緩和したいのです。

ありがとうございます、ルーティングをいじってしまうのは最初に考えたのですが、環境は外部のVPSで(また説明不足ですいません)
基本リモートでいじっているので、そのあたりどうなるのかなぁと、明日また試してみます。
また、調べたところCurlとかだと何かIFを指定するパラがあるようですが、横着ですが今のコードをあまり変えたくなくて。



322 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:42:34.88 ID:MuHdm1tt.net]
>>309 じゃ、curl と同じ様にしてみたら?

# curl -I --interface eth0 www.yahoo.co.jp/

#python
def message_api(request):
req = requests.post('www.yahoo.co.jp/' \
--verbose \
--get

323 名前: \
--interface=‘eth0’
--data 'text=おはようございます' \
--data 'appkey=xxxxxxxxx')
print(req)
[]
[ここ壊れてます]

324 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:41:02.67 ID:Xsa0ee+G.net]
>>299
pythonで作って学ぶデザインパターンみたいな物がほしいね
オブジェクト指向が何となくわかっても使い方がよくわからん(´・ω・`)

325 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 21:16:21.39 ID:3FyMMC5r.net]
実践 Python 3

326 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 22:23:48.06 ID:rZ10GU5L.net]
>>312
一回マジでしゃぶってもらえませんか

327 名前:デフォルトの名無しさん [2019/02/22(金) 00:02:47.01 ID:4wGjWw5c.net]
>>304
手動で、
 Aが来たら有線LAN[A]を繋げて
Bが来たら有線LAN(A)を抜いて、有線LAN[B]を繋げる

328 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 00:57:21.96 ID:tDPXA70g.net]
>>309
じゃあサブプロセス使ってcurlで実行しちゃえばいいんじゃないの?

329 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 01:10:21.20 ID:PLvaKLdQ.net]
>>310
ヒドイw

330 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 13:47:21.78 ID:no4Nr2T0.net]
NICを指定してrequestsの件、Pythonで出来ました。
requests_toolbeltというmoduleを組み込むことで、ちょっと搦め手ですが、source IPからNICを
指定してmountすることが出来ます。(ここには参考になる人はいなそうですがw)
以上。

331 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 21:06:15.39 ID:d1khp6TM.net]
ええやん



332 名前:デフォルトの名無しさん [2019/02/23(土) 11:43:34.06 ID:+DV3f+Dk.net]
伊勢の名物

333 名前:デフォルトの名無しさん [2019/02/23(土) 12:26:45.82 ID:lot8ckD6.net]
国産のRuby叩かれすぎワロタ

334 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:40:42.89 ID:1QjCNYhv.net]
このスレに限るなら、叩かれているのはほとんどRubyガイジのせいだろ

目の前をうろうろする羽虫みたいなもんだ

335 名前:デフォルトの名無しさん [2019/02/23(土) 12:48:40.53 ID:+DV3f+Dk.net]
自業自得

336 名前:デフォルトの名無しさん [2019/02/23(土) 14:39:26.54 ID:lot8ckD6.net]
劇場で数十年ぶりに復活したCity Hunter
冴羽獠の愛銃Python3xxと日本でも流行りのPython3の因果関係

337 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:29:08.59 ID:iJEnzY0p.net]
デスクトップアプリはpythonとjavascriptどっちがいいんでしょうか

338 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:00:32.60 ID:QKZEiFxx.net]
C#

339 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:02:11.33 ID:5XYYe3Vz.net]
>>324
Electronがあるから今の流行りは圧倒的にJavaScript
昔ながらのWinアプリが作りたいんならC#

340 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:23:34.56 ID:iJEnzY0p.net]
あっちこち手をつけるのも大変なのでjavascriptでやってみます
でもelectronッテメモリ悔いますよねなぜか

341 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:31:16.66 ID:8D34p5sx.net]
なぜ32GBモデルにしなかったんだろ俺のバカバカ!ってね



342 名前:デフォルトの名無しさん [2019/02/24(日) 12:49:35.63 ID:fR/HEchoE]
コードの質問です。
sys.pathの各ディレクトリの関係図を辞書とリストによるツリーのような階層構造で
表現しようと試行錯誤してますが、まったくいいコードが書けませんorz
書ける方がいましたら教えてください。

【sys.path】
['C:\\Users\\81802\\PycharmProjects\\PlayGround',
 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37\\lib',
 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.7.egg',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages\\pip-10.0.1-py3.7.egg']

【表現したい形】
{'C:\\Users\\81802\\':
[{'PycharmProjects\\PlayGround\\':
['',
{'PycharmProjects\\PlayGround\\venv\\':
['',
{'lib\\site-packages\\':
['

343 名前:setuptools-39.1.0-py3.7.egg',
'pip-10.0.1-py3.7.egg']}]}]},
{'AppData\\Local\\Programs\\Python\\Python37\\':
['',
'python37.zip',
'DLLs',
'lib']}]}
[]
[ここ壊れてます]

344 名前:デフォルトの名無しさん [2019/02/24(日) 13:10:54.97 ID:fR/HEchoE]
329の【表現したい形】は一部誤り。正しくはこちらです。

【表現したい形】
{'C:\\Users\\81802\\':
     [{'PycharmProjects\\PlayGround\\':
          ['',
          {'venv\\':
               ['',
               {'lib\\site-packages\\':
                    ['',
                    'setuptools-39.1.0-py3.7.egg',
                     'pip-10.0.1-py3.7.egg']}]}]},
     {'AppData\\Local\\Programs\\Python\\Python37\\':
          ['',
          'python37.zip',
          'DLLs',
          'lib']}]}

sys.pathのグループ分けをし、
【common_path】
['C:\\Users\\81802',
 'C:\\Users\\81802\\AppData\\Local\\Programs\\Python\\Python37',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv',
 'C:\\Users\\81802\\PycharmProjects\\PlayGround\\venv\\lib\\site-packages']
は得ることまではできました。

345 名前:デフォルトの名無しさん [2019/02/24(日) 14:53:09.92 ID:YwY0sV++.net]
>>324
python

346 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:01:02.77 ID:h7ByRKin.net]
VBの一択だな

347 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:35:42.81 ID:57VgR7IR.net]
>>328
そんなにメモリ喰うの?

348 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:24:23.04 ID:7HrBRrfk.net]
>>333
win10だと16gだと足りないよ。
ソフトによるけど。

349 名前:デフォルトの名無しさん [2019/02/24(日) 17:33:29.69 ID:r06CB5Xe.net]
昔ながらのデスクトップPCやサーバー機みたいな拡張とパーツ交換自在な時代なら最初16GBでも後から増設できたのに今時のモバイルなプログラム環境は半田付けされていて購入後に構成変更できないから辛いね

350 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:41:27.91 ID:9Sd/QbRT.net]
交換式にしたらスペース食うからねえ。
モバイルでもメモリとストレージは変更出来るってのも既に過去の話だな。
完全に買った時に全て決まるようになってしまった。

351 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:51:55.81 ID:+6ZRRI/z.net]
>>335 今時のPCでも、スロット数が少ないから、何年かしたらもうボードから買い換えるしか無いよ。
諦める事だな。
(全てが寿命に近づいてるから捨てる。)

ただ、買った直後にそのPCで動かないのがあったら、諦めて別の方法を探った方が吉。



352 名前:デフォルトの名無しさん [2019/02/24(日) 20:14:36.77 ID:r06CB5Xe.net]
PCはスマホやタブレット、2 in 1とかにコモディティ化&低価格化してきてるからブラックボックスで使い捨てになるのも仕方ないのかも

353 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:21:36.39 ID:+6ZRRI/z.net]
>>338 もう何台もPCを自作してきたが、あとで拡張しようと思って作ってても、いざ拡張する時になると時代遅れで結局捨ててしまう。
だってメモリだって新しいメモリは使えないし、新しいCPUは使えないし、何が拡張だ。
ほとんど全てのパーツが寿命に近づいてるから全てを新しくした方が安心できる。 何度壊れて痛い目にあったことか。

354 名前:デフォルトの名無しさん [2019/02/24(日) 20:26:06.19 ID:iK4D+UQi.net]
横からだが、今時古いメモリやCPUでもそれほど違わん。
(最近はAMDのお陰で急速にコア数増えたが)

物欲抑えれば全然現役で行ける。
(それでも性能追うのが浪漫なのは否定せんが)

355 名前:デフォルトの名無しさん [2019/02/24(日) 20:35:10.14 ID:r06CB5Xe.net]
IDEとOfficeとブラウザとテキストエディタとレタッチソフトとiTunesぐらいなら十分すぎるぐらいCPUは進化したけれど
4K以上の動画編集とかVRとかデスクトップ科技計算とかみたいなヘビーユースだとCPUもGPGPUも最先端を追うしかないね

356 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:39:21.47 ID:9Sd/QbRT.net]
>>339
あるあるだな。
やはり買うときに思い切って買わないといかんな。
モニタやキーボードはタイミングずらす。車検が被らないように増車したりバイク買う感じ。

357 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 20:42:46.42 ID:rYs6roSD.net]
>>339
>ほとんど全てのパーツが寿命
今年思い知った件

ほんと

358 名前:>>342だは []
[ここ壊れてます]

359 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:22:06.63 ID:mG+2Y3tM.net]
pythonのクラスメンバへのアクセスのことで質問です
クラスのメンバに次の2通りの方法でアクセスしたいのです。

(1)ピリオドを使ってアクセスする
(2)辞書のようにアクセスする

それぞれ単独では実現できるのですが、両方同時に成立させる
ことが出来なくて困っています。

最初に(1)のために次のように実装してみます

class Foo():
  def __init__(self, x):
    sel.x = x
  @property
  def x(self):
    return self.x
  @x.setter
  def x(self, x):
    self.x=x

これだとエラーになるためxを_xにすると上手くいきます
しかしそうすると__dict__がxではなく_xをキーとしてしまうため
def __getitem__ を実装してもキーはxではなく_xになるため
f=Foo()とすると

(1)のアクセスは f.x
(2)のアクセスはf["_x"]
ということになってしまうのです。

(1)も(2)も同じキーでアクセスできるように出来ないでしょうか?

360 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:28:23.99 ID:mG+2Y3tM.net]
追記ですみません

メンバ変数は値を更新した際に自動的に他の処理も呼びたいため
setterを必要としています。

361 名前:デフォルトの名無しさん [2019/02/24(日) 22:34:22.09 ID:dOn5ud/R.net]
x.setter()等の仕様がそうだから仕方ないんじゃ?


def __init__(self, x):
  self._x = x

def get_x(self):
  self._x = _x
x = property(get_x,set_x, del_x)

やってないけど



362 名前:デフォルトの名無しさん [2019/02/24(日) 22:39:07.56 ID:dOn5ud/R.net]
あるいは中に仕込むか
@x.setter
def x(self, x):
  self.x = x
  self._x = x

363 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:43:09.76 ID:2N6WWWAR.net]
うちsandybridgeだけど当面買い換える予定ないぞ
グラボは入れ替えたが

364 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:00:08.65 ID:LEqgxgt7.net]
>>344
適当に辞書作ってsetattr,getattrをsetitem,getitemにマッピングすればOK

Class Foo():
_dic = {}
def __setitem__(self, key, val):
self._dic[key] = val
def __getitem__(self, key):
return self._dic[key]
__setattr__, __getattr__ = __setitem__, __getitem__

こうすれば
f = Foo()
f['x'] = 10
f.x
でアクセスできる

365 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:10:04.15 ID:PZlQ37TI.net]
>>349 なんか黒魔術みたいだな。

366 名前:デフォルトの名無しさん [2019/02/25(月) 00:15:42.13 ID:W+H8OHl9.net]
いや、辞書への挿入で更新もしたいならそれが正しい
_xはデバッグ用途と思って更新を考えない簡略版で答えた

367 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:24:18.98 ID:PZlQ37TI.net]
>>349 全く始めたばかりで何もわかっていないんどけど、みんながpython の内部を改良していくためには必要な情報だけど、こんな事をpythonユーザーに正式に開放してるの?

368 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:31:37.32 ID:LEqgxgt7.net]
>>352
公式ドキュメントの組み込み関数にサンプルコードがあるよ
でも自分が学んだのはエキスパートPythonプログラミングという本かな
公式ドキュメントも分かってしまえば分かりやすいけど、無機質な感じがして読みにくい

369 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:32:00.78 ID:uKYGHYXp.net]
「暗示するより明示せよ」
がpythonの設計思想のひとつだからな

別に珍しいことでもない
LISPなんかはユーザーが自由に言語設計をいじれすぎて
無数の方言が作られているしな

370 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:38:04.31 ID:SRxcknzj.net]
>>349
メンドクセーッ!

371 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 00:40:49.46 ID:PZlQ37TI.net]
>>355 だよな。 言語仕様としてできないものはできないで良いだろ。 言語仕様じゃ無いんだろ?
黒魔術は闇の世界で使う技術。



372 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 02:53:38.38 ID:9+tyf5TU.net]
いや、attr系やitem系操作するのは、
他の言語の演算子のオーバーロードと
同じ感じテイストづし、珍しくも無い。

373 名前:デフォルトの名無しさん [2019/02/25(月) 11:22:12.78 ID:Opp/wdL5.net]
>>344
Hoge.__dict__ を作るだけでいける

374 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 20:13:54.92 ID:+kysiU+6.net]
Python初学者どころかプログラム初学者なのですがそんな人にも使いやすいIDEはありますでしょうか?ググった所PyCharmやアナコンダなどがありましたが皆様の意見もご参考にさせて頂ければと

375 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:07:11.42 ID:Ey4Q/htY.net]
初心者こそpycharmを使うべし
タイポも変数のundefinedもpep違反も全部赤ペン先生で指摘してくれる

376 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:36:21.30 ID:dXFOGwmu.net]
有料版使ってる人いるのかな

377 名前:デフォルトの名無しさん [2019/02/25(月) 21:39:49.74 ID:h8G0r/CT.net]
>>359
PyCharm、VisualStudio

378 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:48:25.21 ID:+kysiU+6.net]
>>360>>560
PyCharmですかありがとうございます入れてみます
Visual StudioはVScodeというものですよね?py以外も色々できると聞いて気になってはいたのですがPython3を使うには設定が必要で初心者にはしんどいと聞いて及び腰です、、

379 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 21:51:26.82 ID:+kysiU+6.net]
未来にレスしてしまった
>>362ありがとう御座います

380 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 22:51:43.04 ID:Huj6YV9p.net]
Visual StudioとVisual Studio Codeは別物
前者がIDE、Codeはエディタ
Codeの方は.pyを初回に読み込んだ時にpython拡張インストールした方がいいよと言われるので指示に従えばいいだけ

381 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 23:50:17.81 ID:+kysiU+6.net]
なるほど別物なんですね
vsコミュニティとかもあってややこしいです
教えて頂いたVisual StudioとPyCharmを使えるようになってそれからアナコンダにステップアップして行きたいと思います



382 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 00:15:19.10 ID:hK50uex+.net]
いやWindowsだといきなりAnaconda入れるのが一番無難で簡単で手っ取り早いぞ
そしてAnacondaは開発環境としてVSCodeを推奨してるからVSCodeおすすめ

383 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 00:26:09.34 ID:hKlKYH4W.net]
俺はVSCodeと素Pythonを押すね
Anacondaは最初は使わん機能ばっかだし

384 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 01:03:36.19 ID:6/9JHzaI.net]
Winなのに素python+Atomの俺は圧倒的少数者だと分かった

385 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 01:12:55.28 ID:pkMMAEQe.net]
アナコンダはジュピターノートで書くのはわかっていますがセルの仕様が独特、アナコンダ用のプロンプトがあるなどで初心者向けではないよと言われたのですがそうでもないのですか?

386 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 07:23:43.12 ID:VSDQz9S9.net]
考えるよりダウンロードして簡単なプログラム書いてみなよ。無料なんだし。
少し使ってみて不自由を感じたら他を試せばいい。

387 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 09:06:58.73 ID:fq9lYmyM.net]
vscodeはjupyterみたいにも使えるしね
ブレークポイントつけれたりデバッグ出来るのは初心者には有難い
会社の低スペックPCだとストレス溜まりまくりだからやむなくjupyter使うけど…

388 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:55:41.05 ID:ePz6Ki1y.net]
Android用のpython環境をオススメしてください

389 名前:デフォルトの名無しさん [2019/02/26(火) 13:49:43.50 ID:8hsOp8y1.net]
今はvim上でターミナル使えるようになったから、WindowsでもgVim使ってる
Pythonは公式で配ってるインストーラで入れて、必要ならvenv使う
管理が楽

390 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 15:10:50.48 ID:lleTMO6w.net]
副業で大学教員やってるからPyCharmのPro版を無償で使えてる
PyDevやSpyderにイライラして結局vimで書いてたけど乗り換えた
学生さんはPyCharm使うといいよ

391 名前:デフォルトの名無しさん [2019/02/26(火) 15:13:01.67 ID:8+7ktUtN.net]
>>373
S4A

以前は Windows + Python2 素のインスコで使ってて

Python3 に乗り換えたときに
(Windows で) Anaconda でインスコして使ってるけど
全然問題無いわ

368 は明らかに事実誤認



392 名前:デフォルトの名無しさん [2019/02/26(火) 15:13:46.29 ID:8+7ktUtN.net]
typo した
S4A じゃなくて SL4A

393 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 15:32:01.94 ID:s53snE6v.net]
>>373
ない
なぜならば、AndroidでPythonを開発しようということ自体がオススメできないからだ

394 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 17:21:21.96 ID:1yUj9TwU.net]
>>373 自分はAndroidを使っていないけど、良さそうじゃん。

Android上でPython3が利用できるPydroid3がスゴイ
pineplanter.moo.jp/non-it-salaryman/2018/02/02/pydroid-on-android/

395 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 17:27:22.38 ID:1yUj9TwU.net]
>>378 あまり堅苦しく考えないで良いじゃん。
いつでもどこでも使えるスマホは、練習用としては使えるよ。 解説書を読みながらちょっと試してみるとか。

Google の colab とか使ってWeb で作る手もあるけど、ネットが繋がっていないと使えなかったり、ちょっともたつく気がする。
ローカルで使えるに越したことはない。

396 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 17:56:25.83 ID:T0vQDev8.net]
>>373
termuxでapt install python

397 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 19:22:35.54 ID:EZFWpudG.net]
多倍長整数演算を高速化する方法はありますか?

numba使うと正しい結果が出ない
たぶん内部で浮動小数点数に置き換えてる

398 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 19:31:36.49 ID:1yUj9TwU.net]
>>382 やったことないけど、浮動小数点数の桁数を指定するんじゃダメ?

399 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 20:03:11.69 ID:FOtxANKO.net]
>>382
多倍長整数なのに実は浮動小数でやっていましたではオイオイだろ

400 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 20:37:19.08 ID:EZFWpudG.net]
どうも整数の間違いでした

今日、階乗を計算していたんですが
20!までは正しいが21!で失敗します
2^63-1を超えるのが原因でしょう

401 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 21:08:14.74 ID:IBhh82RD.net]
組み込み関数のmath.factorial()は正しく21!を返すのに…



402 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 22:44:26.23 ID:4zwtaCfi.net]
>>376
>>378
>>379
>>381
ありがとう
オススメしてもらったpydroid3使ってみたけどエディタで片手でフリック入力出来なかったのとコピペが非常にやりにくかったのです

電子書籍の参考書のサンプルプログラムをコピーして貼り付けする時にやはりどうしてもエディタ画面で両手使うのはしんどかった

SL4Aは開発が止まっているようなので
今回はやめといた

403 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 07:42:07.40 ID:L5IXP2k2.net]
>>378
確かにandroidでpythonを開発するのは超初心者には荒行でしかないわな
でも、やりたいのはandroidのpythonでの開発だからw

404 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 09:22:59.83 ID:dPGb0bDo.net]
お客さんそんなことしても悟りは得られないよ

405 名前:デフォルトの名無しさん [2019/02/27(水) 14:31:55.97 ID:6BQDuKk1.net]
>>385
再帰で書いてない?
forで書けば上手くいくはず。

Pythonは多倍長整数だからメモリ一杯になるまで大きな数を表現できるので、再帰でスタックが溢れたと思われ。

406 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 15:12:55.08 ID:qFMaDdKD.net]
√2× √6= 2√3

みたいに√つけたまま演算できるライブラリないですかね
勝手に小数点付き数字に変えられてうんざり

3π × 2n= 6nπ
みたいなの

407 名前:燉~しいです。 []
[ここ壊れてます]

408 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 15:17:26.74 ID:PApWA4xG.net]
そういう処理を自動でしたいがためのプログラミング。

409 名前:デフォルトの名無しさん [2019/02/27(水) 15:42:22.04 ID:AFI97rHS.net]
>>391
scipy
sympy

410 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 19:01:19.46 ID:CWPXM8YW.net]
>>391
Androidの開発環境聞いてきた人と同じひと?
それならないかなぁ

411 名前:デフォルトの名無しさん [2019/02/27(水) 20:54:44.82 ID:kap/FwCb.net]
djangoで掲示板やら、ブログやら作ってみたんだけど
djangoでできることってこんぐらいしかないの?

なんかやれることがもっとあると思ってたんど、意外と底が浅かった感じがした
djangoでゲームアプリできないの?



412 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 21:06:17.28 ID:FvpNE2Tw.net]
ゲームアプリ作りたいならそれ用のツールを使ったほうが早いんじゃね
pythonだとアドベンチャーゲーム作成ツールのren'pyとかくらいしか知らないけど

413 名前:デフォルトの名無しさん [2019/02/27(水) 21:21:26.34 ID:kap/FwCb.net]
>>396
あとはpygameとかでやるしかないのか

414 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 21:23:42.28 ID:FvpNE2Tw.net]
ツールに合わせて言語を選ぶのもひとつの選択肢だよ
pythonでゲームも作れなくはないが
UnityとC#を使う方が手っ取り早いと思う

415 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 22:36:18.56 ID:CtFD2cZF.net]
>>395
お前の発想力の問題

416 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 22:45:24.69 ID:qFMaDdKD.net]
>>393

Sympy が良さげですね

417 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 02:17:13.47 ID:DbAr3TBt.net]
sympyないわー

418 名前:デフォルトの名無しさん [2019/02/28(木) 02:31:01.44 ID:43+kEwYn.net]
Sympyは酷いね…何故SciPyのサイトのトップに掲げられてるのか理解しかねる
Deprecatedなnumpy.Matrixクラス依存で、各種ルーチンにshape制限まである
標準Pythonでないが、どうせコード配布するようなものでなし、Sageを薦める

419 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 07:34:11.13 ID:VZy78oyi.net]
maximaからsympyへ移行したけど評判悪いのか。sageは初めて聞いた、けどjupyter上では使えないのかな。

420 名前:デフォルトの名無しさん [2019/02/28(木) 07:51:36.17 ID:43+kEwYn.net]
>>403
maximaがバックエンドの一つだよ、拡張Pythonによるmaxima等フリーの各種コンピュータ代数ソフトを詰め込んだ欲張りラッパ
つまり機能的には最強であることは間違いない
Pythonコードもほぼそのまま書ける

421 名前:デフォルトの名無しさん [2019/02/28(木) 07:55:03.91 ID:43+kEwYn.net]
.nbみたいのも見掛けたな、REPLがグローバルインポートですごく使いやすくなってるんで触らんが



422 名前:デフォルトの名無しさん [2019/02/28(木) 11:29:58.64 ID:VA9IyXO4.net]
pycファイルがあると良いことあるんですか

423 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 11:43:46.54 ID:3raA7S0b.net]
>>404 コンパイルするための時間が無くなり早くなる、コンパクトになる。

424 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 13:25:46.66 ID:COpOP1tt.net]
>>403
sympy使ってるけど虚数込みの数式処理で伝達関数を導出しているけど困ってはいない
Mathematicaで作った処理を全部試そうとは流石に思わないが、そこそこ行ける

425 名前:デフォルトの名無しさん [2019/02/28(木) 14:37:06.17 ID:VA9IyXO4.net]
>>407
ありがとうございます

426 名前:デフォルトの名無しさん [2019/02/28(木) 14:41:29.11 ID:4d6byY1q.net]
クラスとか継承とかどうやって覚えたのよ
コード書きながら覚えるのが手っ取り早い?

427 名前:デフォルトの名無しさん [2019/02/28(木) 15:04:31.53 ID:4Fcnv2BB.net]

https://www.amazon.co.jp/dp/4756100503

428 名前:デフォルトの名無しさん [2019/02/28(木) 15:49:34.46 ID:4d6byY1q.net]
>>411
すげえ難しそう

429 名前:デフォルトの名無しさん [2019/02/28(木) 15:53:21.03 ID:4Fcnv2BB.net]
知らない単語が並んでると難しそうに感じたりするが
中身は大した事ない

糞本読んで無駄な時間使うよりマシだと保証

430 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 16:03:54.54 ID:K7dGf2QC.net]
>>410 この辺りは?
https://www.amazon.co.jp/dp/B01N04UBYI/ref=cm_sw_r_cp_awdb_c_.A4DCbDJ4KNEW

431 名前:デフォルトの名無しさん [2019/02/28(木) 16:24:16.52 ID:4d6byY1q.net]
>>414
読み放題で無料だから見てみたけどわかりやすいかも



432 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 18:20:17.96 ID:aNlcuW5k.net]
設計図は出来てるけどどう作ればいいかわからなくて困ってます
GUI画面で例えば入力欄Aに10文字Bに10文字A.Bを何文字出すか決める場所(A3なら入力枠Aからランダムに3文字選ぶ)、そしてA出力枠B出力枠にだす ということを目指してるのですがTkinterで出来ますか?これをググれみたいな事があれば教えて頂けると幸いです

433 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 19:35:45.99 ID:mQj8H4X5.net]
>>416
むろんできるぞ

何文字出すか決める入力欄を0.1秒ごとくらいに見張るようにプログラムくめ

んで
何か入力されたら出力する
あるいは
ジェネレートボタンを押したら計算して出力する

みたいな

434 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 19:49:33.86 ID:aNlcuW5k.net]
>>417
出来るんですね!ありがとうございます
Tkinter検索しても細い入力欄に出力一つ、と単純な物ばかりだったのでこれはちがうのかな?と ほんとに初心者なので見張らせるよりはボタン式にしてみます
ちなみtkinterの設計でオススメのサイトはありますか?

435 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:28:35.13 ID:mQj8H4X5.net]
tkinterの「設計」サイトはしらんなー

436 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:29:16.48 ID:iWcjMiIh.net]
数字列をリスト化したいのです。
内包記述使わずに短い記述教えて下さい。


#入力
3 13 24 45 50
#出力
[3, 13, 24, 45, 50]

#書いてみました ループ使わない方法が分かりませんでした
t_input = input().split()
t_time =[]
for i in range(0,5):
 t_time.append(int(t_input[ i ]))
print(t_time)

#因みに内包表記
t_time = [int(s) for s in input().split()]
print(t_time)

437 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:30:19.88 ID:mQj8H4X5.net]
「tkinter python3 ボタン」あたりでggるといいかもしらん

438 名前:デフォルトの名無しさん [2019/02/28(木) 20:32:02.62 ID:SMvRd1sf.net]
map(int, input.split())

439 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:32:12.00 ID:mQj8H4X5.net]
>>420

入力は必ず5データぶんなのか?
ループ使って書いてるほうほう、それだと長いデータきたさいに対応できなくないか

440 名前:418 mailto:sage [2019/02/28(木) 20:35:59.31 ID:iWcjMiIh.net]
>>423
とりあえす5個でお願いします。5個以上も対応可能でも良いです。

441 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:37:14.95 ID:mQj8H4X5.net]
>>422がイイ(・∀・)  >>424



442 名前:418 mailto:sage [2019/02/28(木) 20:50:36.95 ID:iWcjMiIh.net]
>>422
mapって初めて知ったけど柔軟に対応出来るんですね
内包記述だと未だ変換の流れが理解できないです もうちょい頑張ってみます
ありがとうございました  

443 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:53:26.78 ID:KtyAfxmO.net]
自分も超初心者なので練習

x='1 2 3 4 5'

m=map(int, x.split())

print(x)
print(x.split())
print(list(m))

# 1 2 3 4 5
# ['1', '2', '3', '4', '5']
# [1, 2, 3, 4, 5]

444 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 20:57:13.41 ID:mQj8H4X5.net]
>>421>>418

445 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 21:46:53.78 ID:2bTQVOdg.net]
なぜ for x in イテラブル とせず for x in range(n) でインデックスを取ろうとするのかがわからない
宗教上の理由でもあるのか

446 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 21:54:52.10 ID:aNlcuW5k.net]
>>428
ボタンはなんとかなりそうですけど入力欄から文字拾

447 名前:って指定した数ランダム出力が大変そう、、
頑張ってみます
[]
[ここ壊れてます]

448 名前:デフォルトの名無しさん [2019/02/28(木) 22:45:24.44 ID:q6d6kpjr.net]
python3でmapがジェネレータ返すようになったの未だに慣れない

449 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 22:56:22.40 ID:DbAr3TBt.net]
python2のほうがプログラミング自体の初心者には分かりやすかったよな

450 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 23:54:03.99 ID:/+wdq6fK.net]
>>429
イテラブルを知らないからだろ(当然イテラブルであるための条件も知らない)
Pythonはclassを使ったオブジェクト指向言語だけど
でも、はじめからclassを作ってあーだこーだではなくC言語のように使うんだと最初教え込まれるからな。
C#やjavaのようにhello worldを表示するにもclassが出てくるんではなく
Cようにprint(...)ではクラスへの道のりは遠く、で、イテラブルなクラスは
超絶な遠さのところにある感じだからな。
と言うことで、初心者はCのようにfor x in range(n)にしてやるんだぞと教え込まれる。
クラスへまでの道のりは遠いから超初心者スレではクラスの質問はほとんど出ない

451 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 01:29:34.36 ID:VzgI02J9.net]
>>427
自分も超初心者であります!
頑張りまっす!!



452 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 01:37:09.00 ID:KH61c5UP.net]
関数がオブジェクトなのは比較的こんなのでも実感できるのでは?

p = print

p(‘Hello World’)

# Hello World

453 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 02:18:07.97 ID:8KTg+fim.net]
インデックスでアクセスしようがイテラブルの参照でアクセスしようがプログラマの勝手だと思うけどな
Python自体文法の制約でプログラマに自由を与えない思想だから、ルールの押しつけはしょうがないとも思うけど
正直インデントの制約は正気の沙汰とは思えないけどな

454 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 03:20:06.33 ID:hj2Lx6Rs.net]
なら正気の沙汰の言語のスレに行けばいいものを

455 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 07:00:47.58 ID:OviG+/BX.net]
プログラミング言語の設計をしようとする時点で脳のどこかに欠陥を抱えている
正気の沙汰の言語などない

456 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 07:05:12.14 ID:GYGnZVsf.net]
つーかrangeってiterableなんだけど知らないのか?

457 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 09:21:38.59 ID:VWbcPJmE.net]
それなw

458 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 10:16:21.42 ID:wtu2VuQe.net]
さっき初めてPythonのコードを見た初心者なんですが、コピペでインデントずれたら中身読んで手動でインデント直すしかありませんか?

459 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 11:50:19.46 ID:RkKCNcIA.net]
>>441 自分のソースの中に他人のソースをコピーするような場合?
それしかない。 

460 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 11:57:42.41 ID:oRvPnA6O.net]
インデントがずれないようにコピペする

461 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 12:35:18.99 ID:aHTh+udf.net]
shift+tab



462 名前:デフォルトの名無しさん [2019/03/01(金) 13:19:46.04 ID:ozM8zBQ9.net]
2ちゃんのスペース表示仕様まで変えてしまった言語がPythonである

463 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 16:55:36.37 ID:KMRxw/mf.net]
スペースを短くする一括変換の方が早いと思うな。 特にいやらしいのはタブ記号の混在。最初にタブが入ってたらスペースに変換。

464 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 19:24:25.32 ID:GYGnZVsf.net]
だからインデントもまともにできない初心者はpycharm使っておけって
ズレてたら教えてくれるから

465 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 21:29:48.58 ID:5XyBzD+m.net]
誰がずらだコラァ

466 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 22:18:46.58 ID:8KTg+fim.net]
生え際がシンタックスエラー

467 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 23:35:13.62 ID:hJuXK+uz.net]
>>449
つ 座布団一枚

468 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 01:41:54.42 ID:0Z7GU3hQ.net]
>>447
インデントすらまともにできない奴はプログラミングは無理だから
別なことをしろだろ

469 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 09:15:34.90 ID:c+fDdYHP.net]
pythonのソースコードをフォーマットするのには、みんなautopep8を使ってるのかね

470 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 10:09:48.63 ID:xbKWWazw.net]
ほうほう
俺ちゃんはそんなものしらないので
秀丸とsakuraエディタで手作りです

471 名前:デフォルトの名無しさん [2019/03/02(土) 11:49:49.14 ID:nqwTLRnH.net]
インデントした区間が終わって一段元に戻るとき
テキストファイルのソースだと空行無くても大丈夫なのに
インタプリタとかIDEのときは空行入れないといけないのが不満
(理由は判るけど)
これなんともならんのかね



472 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 11:54:02.70 ID:og4HVKiE.net]
>>452 便利そうだな。 入れないと損なのか。
https://githubja.com/hhatto/autopep8

473 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 13:44:48.85 ID:A7lhNiPK.net]
PyConだかで取ってたアンケではyapfが大半だったと思う
次いでautopep8とBlack

474 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 15:03:01.69 ID:R507/Kbo.net]
>>456
https://github.com/IBM/yaps/blob/master/README.md
ここをみて pip install yaps は出来たが、使い方が今一解らん。

475 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 15:07:05.06 ID:R507/Kbo.net]
>>457 悪い悪い、yapf だったね。 シェルコマンドとしてのコンバータとして動くのか。

476 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 15:10:35.42 ID:R507/Kbo.net]
eclipse などのIDEだと入力中に自動整形してくれるのかな。

477 名前:デフォルトの名無しさん [2019/03/02(土) 17:33:58.54 ID:qdo3sOAM.net]
>>451
sexか?

478 名前:デフォルトの名無しさん [2019/03/02(土) 21:35:47.51 ID:la2Rs48k.net]
pythonista3を買ってみたけど文字打ったり補完した後に文字打とうとしたら上書きされたりする
描きにくすぎて辛い

479 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 21:39:59.70 ID:zLUw08oC.net]
>>452
flake使ってる

480 名前:デフォルトの名無しさん mailto:sage [2019/03/02(土) 23:00:34.12 ID:yB7kTQ7C.net]
flakeもフォーマット機能あるんか
linterだと思ってた

481 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 01:13:01.16 ID:vKWKyL5A.net]
>>461 意味不明。 print() が出た後に() の中にカーソルは残ってるから描きやすいと思うけどな。
‘’ を出しても中にカーソルはあるし。 どんな場合?

文字が小さいから特定の文字を訂正したりとか言うときはなかなかカーソル位置を合わせるのがうまくいかないことはあるけどそれはスマホの宿命。 画面が拡大出来ると良いと思うけどな。



482 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 01:19:51.31 ID:ffCrW6pd.net]
tkinterをいじっていて入力ボックスの文字を
command = lambda:test_fanction(txt.get()))で取って
def test_fanction(txt):
 print(random.choice(txt))でランダム一文字ずつだせたはいいんですが
ボックス内の文字を一文字ではなく指定したn文字数ランダムに取り出す
というのとthinker内でそのn文字も指定できるようにしたいということで悩んでます
お力添え願えませんか?

483 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 01:31:12.61 ID:vKWKyL5A.net]
pythonista の中に reformat としてPEP8 が入ってるのに今気づいた。
しかし、PEP8にしろ、yapf にしろ、空白3個と空白4個の混在の場合エラーを出すだけで自動で修正してくれないんだな。
タブサイズは自動的に変更してくれるけど。

484 名前:デフォルトの名無しさん [2019/03/03(日) 03:05:14.33 ID:YqozNVoh.net]
>>464
例えばpと打ったら補完機能で上にprint()とでるじゃないですか?
そのprint()を押したら何故かpのとこにカーソルがあってそのままaを押したらpがaに変わってarintになるんです。
そこにカーソルがあると次候補や開業も押せない

485 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 04:47:35.44 ID:vKWKyL5A.net]
>>467 そうはならないけどな。() の中にカーソルは来るよ。
壊れてるんじゃないの、消して再ダウンロードしてみたら?

486 名前:デフォルトの名無しさん [2019/03/03(日) 08:56:14.39 ID:RP7OXEaJ.net]
)))が3つ以上連なると見にくいから)) )にしたりするな、もちろん見にくさによるけど
慣習より読みやすさ

487 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:06:35.38 ID:R+BaZbTo.net]
>>465
def test_fanction(txt):
  ここにnを指定してるボックスからnを取得する命令を書け
  n = int(n)
  txt = ''
  for i in range(n):
    txt += random.choice(txt)
  print(txt)

あと、どーでもいいことだが、
(txt.get()))
      ↑ここのとじかっこ一つ余計

488 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:07:38.78 ID:uQiZZFNH.net]
というか素人スギ

489 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:07:55.13 ID:uQiZZFNH.net]
fanation w

490 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:09:26.05 ID:R+BaZbTo.net]
>>470
おおう
txtがゲシュタルト崩壊しとった
訂正

def test_fanction(txt):
  ここにnを指定してるボックスからnを取得する命令を書け
  n = int(n)
  hoge = ''
  for i in range(n):
    hoge += random.choice(txt)
  print(hoge)

より望ましくは、hogeはcharactarsみたいな、意味を持つ語にしてやってくれ

491 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:11:11.71 ID:R+BaZbTo.net]
>>471
スレタイを読んでから
美しいお手本回答を見せてくれ



492 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:27:27.29 ID:uQiZZFNH.net]
>>474
イヤどす

493 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 09:36:06.45 ID:R+BaZbTo.net]
じゃあ
とりあえず
しゃぶれよ

494 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:06:47.90 ID:uQiZZFNH.net]
>>476
しゃぶるくらい別にいいけどさ
言っておくがそれセクハラだぞ

495 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:12:44.52 ID:R+BaZbTo.net]
>>477
いいんだw

「とりあえずしゃぶれよ」は5chのお約束ヤジの一つだわな
現実で言ったらたしかにやばいw

496 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:23:46.84 ID:uQiZZFNH.net]
>>478
確かにやばいw
が、別にいいんだぜ

497 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:26:05.53 ID:R+BaZbTo.net]
>>479
じゃあ
ケツ貸せよ は・・・? (・∀・)ドキドキ!

498 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:28:10.10 ID:uQiZZFNH.net]
>>480
それだけは断る!
断じてことわる!!

499 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 10:28:50.13 ID:R+BaZbTo.net]
>>481
だめかー
・・・・・・もしかして→ (´・ω・`)ぢぬし?

500 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:07:09.41 ID:CoMPR6UA.net]
>>473
ありがとう御座います
あれからn取得用入力ボックスを作って色々やっていたのですが、test_fanction内でn取得までできるのですか?乞食で申し訳ないのですが書き方を教えて貰っても大丈夫でしょうか?

501 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:41:36.16 ID:CoMPR6UA.net]
>>483
連投すいません
自分が考えた事はn取得ボックスsuを作って取得ボックスボタンを作り新しく
def suji_fauction(su):を作ってそこに最初と同じくボタンcommand=lambda:suji(su.get())でnをどうにかしてからtest_fanctionに持って行って取ったtxtからランダムn個抜き出すという事でしたが、どうにかするがどうにもならなかったです 見苦しい長文失礼しました



502 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 12:51:44.12 ID:pC3Iiu0Z.net]
入力されるデータが 1ならx = int(input())いけるんですが
1 1 1とかの時はx = input().split()で毎回使うときにint(x)するしかないのですか

503 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:12:36.69 ID:R+BaZbTo.net]
>>483-484
「ここにnを指定してるボックスからnを取得する命令を書け」の行に
インデントに注意して
n = su.get()
って書いて桶

504 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:13:49.16 ID:R+BaZbTo.net]
>>485
 >>422がイイ(・∀・)こといってるぞ

505 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:52:46.99 ID:TIqzUsNF.net]
>>422がどうでもイイ(・∀・)  >>424

506 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 13:53:53.23 ID:CoMPR6UA.net]
>>486
ありがとうございますできました
頭良いとこんなにあっさり簡単な書き方でやるんですね、、

507 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 14:01:22.48 ID:R+BaZbTo.net]
>>489
できてなにより

Tkinterの .get()についてのとことかもうちょいよくよんだほうがいいとおもうぞ

508 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 15:05:14.48 ID:Mep2BbSH.net]
>>490
defの使い方も怪しいので.get()と合わせて読んでみます
勉強させて頂きました

509 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 15:20:36.94 ]
[ここ壊れてます]

510 名前: ID:R+BaZbTo.net mailto: >>491
はーい (・ω・)ノ
[]
[ここ壊れてます]

511 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 19:50:54.96 ID:VNvwXmTw.net]
ひろゆきもpythonやってるらしい。



512 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 19:51:23.37 ID:TIqzUsNF.net]
あいつにできるのかよw

513 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 20:12:32.61 ID:dhbLYAZm.net]
perlを相当使ってたみたいだからpythonくらい余裕でしょう

514 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 20:30:57.29 ID:VNvwXmTw.net]
>>494
三日で習得して、awsの履修証明賞もらったから相当覚えいいと思う。

515 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 20:42:59.22 ID:gg9Mx1QB.net]
>>494
恥ずかしくない?

516 名前:デフォルトの名無しさん [2019/03/04(月) 05:10:47.25 ID:DAN4+o0x.net]
せいぜいがんがれや

517 名前:デフォルトの名無しさん [2019/03/04(月) 15:35:02.66 ID:OGwzbJO+.net]
ハゲめ

518 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 17:34:27.74 ID:BFAQ4JyJ.net]
ひろゆきプログラミングについて語る
https://www.youtube.com/watch?v=sYWz_bIBVNw

519 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 18:12:43.10 ID:56/Jbqfw.net]
>>500
グロ
死ね

520 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 22:59:17.85 ID:0UjSVc4r.net]
ひろゆきにプログラミングできるのかよw

521 名前:デフォルトの名無しさん mailto:sage [2019/03/04(月) 23:38:23.95 ID:9d3FcJ2N.net]
プログラミングでのし上がった奴だぞ



522 名前:デフォルトの名無しさん [2019/03/05(火) 03:28:01.72 ID:VDry4yCP.net]
スレチ
イタチ

523 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 04:21:05.92 ID:6CrjVVG4.net]
老害はとっとと犠牲にして差し上げて

524 名前:デフォルトの名無しさん [2019/03/05(火) 05:20:53.55 ID:QbJvjFwd.net]
>>499
北神雄太

525 名前:デフォルトの名無しさん [2019/03/05(火) 07:33:05.52 ID:zhtHOsGL.net]
質問です。
やりたいこと:画面上で動いたものの検知をしたい
ImageGrab.grab().save("frame_pre.png")
frame_pre = cv2.imread("frame_pre.png")
frame_pre = cv2.cvtColor(frame_pre, cv2.COLOR_RGB2GRAY)
while True:
ImageGrab.grab().save("frame_next.png")
frame_next = cv2.imread("frame_next.png")
frame_next = cv2.cvtColor(frame_next, cv2.COLOR_RGB2GRAY)
img_diff = cv2.absdiff(frame_next, frame_pre)
frame_pre = frame_next
という感じにしています。
ですがめちゃくちゃ遅いです。
ImageGrab.grab().save("frame_next.png")で何回も上書き保存しているからだと思いますが
他に方法はありますか?

526 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 07:35:00.11 ID:Ok/9AxrB.net]
よくhogeとか名前つけてる人がいますけどhogeって伝統的なものなんですか?

527 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 08:07:30.38 ID:0SMIqw+w.net]
>>508 そうだよ。 日本では hoge 英語だと、foo , bar が使われる。
https://dacelo.space/net/entry-662.html

528 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 09:13:58.12 ID:DIrFqE8l.net]
hoge fuga piyo
foo bar baz

529 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 09:52:58.71 ID:BXQcWGGg.net]
ホゲホゲ

530 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 10:04:27.98 ID:BMXqmTyM.net]
forループのときの「i」とか「j」はなんなんだよ

531 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 10:34:23.57 ID:DIrFqE8l.net]
文句は数学に言え



532 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 10:36:52.25 ID:DIrFqE8l.net]
それともI(愛)の前にHがある
じゃあI(愛)の次に来るJってなんだ?
ということか?

533 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 11:02:11.75 ID:mnGOhC/5.net]
慈愛かなんかじゃねぇの。
自慰とか

534 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 11:15:27.58 ID:/6VFWsqW.net]
>>507
案1. ファイルに書き出さないでBytes.ioを使う
案2. ファイルの書き出す先をRAMディスクにする

535 名前:デフォルトの名無しさん [2019/03/05(火) 11:57:14.36 ID:HwCl8Q1J.net]
>>507
ファイルじゃなくてメモリ上でやるのはもちろんだし

多少精度は落ちるが
画面をリサイズしてから比較する
予備的に処理入れて
引っかかったものだけ全体比較検査する

536 名前:デフォルトの名無しさん [2019/03/05(火) 11:59:44.40 ID:HwCl8Q1J.net]
>>514
愛JKだな

537 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 12:01:27.7 ]
[ここ壊れてます]

538 名前:6 ID:BXQcWGGg.net mailto: そこに、LなMが []
[ここ壊れてます]

539 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 16:13:55.69 ID:/w4kwDux.net]
oとpするイテレーション

540 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 18:08:43.40 ID:yUBkGE+g.net]
文字からunicodeを取得したいのですが、うまく行きません。お助け下さい

文字列にdecode属性は無いと言われるのですが、何が問題なのでしょうか
https://i.imgur.com/XiX7for.png

参考にしたページは以下です
>>> 'いろは'.decode('utf-8')
u'\u3044\u308d\u306f'
https://qiita.com/megmogmog1965/items/e2f633ac445831568975

541 名前:デフォルトの名無しさん [2019/03/05(火) 18:21:59.46 ID:Fbwgj3J5.net]
pythonエンジニア認定試験とかいうのを受けるんやけどどうやって勉強しよう
模擬試験1個しかないし過去問に似たような問題とか落ちてないよなあ



542 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 18:31:55.02 ID:7lWO2Eg6.net]
>>521
組み込み関数のord()を使うのが正解
for x in "いろは" : print(hex(ord(x)))
で0x3044,0x308d,0x306fが取得できる
単にord(x)だと10進数のやつになる

543 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 18:32:57.79 ID:fIhIM0AX.net]
>>522
プログラミング言語の資格なんてクソの役にも立たないから、気楽に受ければいいよ

544 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 18:37:17.26 ID:yUBkGE+g.net]
>>523
ありがとうございます!できました!

545 名前:デフォルトの名無しさん [2019/03/05(火) 18:43:39.13 ID:yG+1nA7g.net]
>>516
>>517
ありがとうございます。メモリ上でというのが理想ですが
やり方がわかりません。もっと勉強してきます。

546 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 18:48:35.51 ID:jEZ1EKzD.net]
>>521 ‘いろは’ はstr だからだよ。
s = ‘いろは’
b = s.encode()
とバイト列などにすれば、
b.decode()は出来るよ。 ただ目的とは違うだろうけど。
UTF-8 はデフォルトだがら指定しなくて良い。

547 名前:デフォルトの名無しさん [2019/03/05(火) 19:39:23.62 ID:xsrwNvaN.net]
>>507
一度保存せずともnp.asarray()でgrabしたのをnumpy配列に変換できるからあとはOpenCVで処理できる

548 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:18:03.67 ID:apIwEZzG.net]
m = 1

x = 0.8

print(m,x,m-x)

↑こちらを実行すると 引き算が0.199・・となるんですけど
1 0.8 0.19999999999999996

変数に入れた通りの解答 0.2にするにはどうすればよいのでしょうか?

549 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:41:40.15 ID:7lWO2Eg6.net]
>>529
https://docs.python.org/ja/3/library/decimal.html

550 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:49:10.69 ID:/6VFWsqW.net]
>>526
ソースコード見る限りImageGrab.grab()がimageを返しそうだから
frame_pre = ImageGrab.grab()

frame_next = ImageGrab.grab()
として
saveの行とimreadの行を削除してみたらどう?

551 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 20:58:16.68 ID:CbSwC66k.net]
>>529 f文字列を使ったら?

print(x,y, f'{x-y:.1f}' )
# 小数点以下1桁表示



552 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 21:03:22.55 ID:yUBkGE+g.net]
"%s" % "foo"
この%ってprintfみたいな感じと思うのですが、
これはなんというのでしょうか?

553 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 21:11:42.23 ID:/6VFWsqW.net]
>>531

>>528の言う通りnp.asarrayでキャストしないとエラー出た
つまり

frame_pre = np.asarray(ImageGrab.grab())

とする

554 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 22:16:33.26 ID:fIhIM0AX.net]
>>533
廃棄物や老害とでも呼べばいいんじゃないかな
Python3で非推奨になった時代遅れの演算子だから今すぐに忘れなさい

555 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 22:40:50.70 ID:apIwEZzG.net]
>>530 奥が深いんですね 考慮しなきゃいけない事色々あって嵌りそう

>>532 当面f文字列で対応してみます

ありがとうございます!

556 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 22:43:50.05 ID:yUBkGE+g.net]
>>535
非推奨なんですね、ありがとうございます

557 名前:デフォルトの名無しさん [2019/03/05(火) 22:50:11.98 ID:7Yqzn8cc.net]
>>537
代わりにformat()使おうね

558 名前:デフォルトの名無しさん [2019/03/05(火) 23:09:19.30 ID:gSGf6yDl.net]
a = [d * 2 for d in 'abcde']
print(a)

abcdeを5こずつ表示とかってできますか?

559 名前:デフォルトの名無しさん mailto:sage [2019/03/05(火) 23:23:03.46 ID:eDzk8k/k.net]
abcdeを5こずつ表示って
abcde abcde abcde abcde abcde
abcde abcde abcde abcde abcde
.....
と表示したいってことか?

560 名前:デフォルトの名無しさん [2019/03/06(水) 00:06:23.49 ID:3F/qov+q.net]
>>540
はいです

561 名前:デフォルトの名無しさん [2019/03/06(水) 00:10:06.28 ID:XQpJaTFA.net]
インタプリンタでこれ実行したらFalseなんですけど何をもってFalseと判断してるのか分かりません
(1,3,5) < (1,2,7)



562 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 00:10:39.87 ID:R/1sU7PR.net]
分岐のコメントってifの上か下、どちらが良いでしょうか

# 処理内容はxxx
if flg
# 処理内容はxxx
処理内容…

563 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 00:55:19.44 ID:oR6mPeK7.net]
>>542
そうですか

564 名前:デフォルトの名無しさん [2019/03/06(水) 00:56:10.88 ID:3F/qov+q.net]
>>542
falseになる理由を教えてください

565 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 00:59:18.54 ID:PXi0ytZJ.net]
>>545
前から順番に比較していって同じなら次を比較し、異なるならそこで結果を返す

この場合は3と2を比較して3 < 2 は False となる

566 名前:デフォルトの名無しさん [2019/03/06(水) 01:37:14.91 ID:Wfp2djOX.net]
>>542
(a,b,c) < (d,e,f) は a<d or b<e or c<f と同じ

567 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 02:12:47.95 ID:ctS44w1M.net]
お前ら嘘ばっか教えるんじゃないよ
(1,3,5) < (1,2,7)

135 < 127の比較、当然 135がデカいからFalse
>>542 絶対、信じろ

568 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 02:23:21.55 ID:Uli2bEJM.net]
>>539-541
Ruby なら文字列に、掛け算(*)演算子も定義されているから、これだけ

puts "abc" * 3
#=> abcabcabc

569 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 05:37:29.57 ID:MPL4boGu.net]
リスト内を小さい順に並び替えて行く処理を書いてみた。

https://ideone.com/iK3JYA

上記ソースをリスト内包表現で実現できそうで色々試したりしましたがうまく行きませんでした。
もしリスト内包表現で表現できるならどう書けばよいのかご提示宜しくお願いします。

570 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 05:37:46.06 ID:A0Y4tMZt.net]
>>547

>>> (1,3,5) < (1,2,7)
False
>>> 1<1 or 3<2 or 5<7
True

>>548

>>> (1,3,5) < (1,2,7,9)
False
>>> 135 < 1279
True

571 名前:デフォルトの名無しさん [2019/03/06(水) 07:42:57.04 ID:3F/qov+q.net]
>>546
>>547
>>551
ありがとうございます。
理解できました



572 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 08:25:20.58 ID:bBth0ZZS.net]
>>542 正式ドキュメントのチュートリアル 5.8に詳しく書いてある。
要素を最初から辞書的に1つずつ比較。片方の要素がなくなれば終わり。
適切な比較順序がない場合は、インタープリターは TypeError 例外を発生させます。

(1, 2, 3) < (1, 2, 4)
[1, 2, 3] < [1, 2, 4]
'ABC' < 'C' < 'Pascal' < 'Python'
(1, 2, 3, 4) < (1, 2, 4)
(1, 2) < (1, 2, -1)
(1, 2, 3) == (1.0, 2.0, 3.0)
(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)

(1,2,3)<(1,'2',4) は、エラーになる。

573 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 08:51:37.17 ID:f/NWPYTA.net]
>>549
死ね

574 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 11:29:05.92 ID:R/1sU7PR.net]
withってどういう時に使うのが良いでしょうか
明示的に「これを中心にしたブロックです」と言いたいということでしょうか
変数に入れるのではダメですか?

575 名前:デフォルトの名無しさん [2019/03/06(水) 12:44:10.04 ID:qZuvgmSh.net]
>>555
例えばファイルの読み書きの時
withを使うとブロックを抜けた時に自動でcloseされる
途中でエラーが出てもちゃんとcloseしてくれる

自前のクラスでも__enter__()と__exit__()を実装しておくとwithに入る時と出る時に呼び出されるので、前処理と後処理を忘れずにしたい時に使える

576 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 12:47:48.19 ID:R/1sU7PR.net]
>>556
ありがとうございます
これは便利ですね

577 名前:デフォルトの名無しさん [2019/03/06(水) 12:58:50.97 ID:pP8e2GTT.net]
>>> [print(f'u{ord(_):04x}') for _ in 'いろは']
u3044
u308d
u306f
[None, None, None]

>>> [print(f'{_:02x}') for _ in 'いろは'.encode('utf-8')]
e3
81
84
e3
82
8d
e3
81
af
[None, None, None, None, None, None, None, None, None]

578 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 16:16:53.92 ID:w73Hgmg1.net]
>>556
C#のusingと理解すればよき?

579 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 17:10:04.23 ID:+4ROOaYr.net]
>>558 _ って何を表してるんだろうと思ったら、_ 1文字でも変数名として使えるんだね。
こう言う使い方は良いね。

580 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 18:21:37.77 ID:kGjUBYU2.net]
>>539-541
import sys
d='abcde'
c=0
while 1:
  sys.stdout.write(d)
  c+=1
  if c % 5 == 0:
    sys.stdout.write('\n')
  else:
    sys.stdout.write(' ')

581 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 18:57:59.23 ID:2Etc0l5z.net]
>>561 何でそんなしち面倒臭いことするの? そもそもstdoutなんて必要ないだろ。 それに無限ループは絶対にダメ。
そんなことするくらいなら、それこそ

print(' abcde '*5, '\n ')
で済む話。 複数行にしたければお好きなだけループで回せば良い。



582 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 19:18:18.39 ID:kGjUBYU2.net]
>>562
printつかうと余計な改行はいるだろ

583 名前:デフォルトの名無しさん [2019/03/06(水) 19:22:31.40 ID:nP+qIuYQ.net]
print('abcde', end='')
とか
sys.stdout.write('abcde')
とか
面倒なのは許せ

584 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 19:24:34.96 ID:2Etc0l5z.net]
>>563 1つのprint で書けば済む話。

585 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 19:30:59.83 ID:2Etc0l5z.net]
>>564 ヘェ〜、勉強になる。

>>> print(1,end=''),print(2)
12
(None, None)

このNone はなんで出るの? なんなの?

586 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 19:36:11.71 ID:b/S1njE3.net]
>>566
「関数」というのは本来「なんらかの計算をして値を返すもの」
だからどんな関数も必ず何らかの値を返す 単に複数の処理をひとつにまとめただけで値を返す必要のないものでもな
printは画面に文字列を表示するだけのものなので本来は値を返す必要はないんだが
だからってわざわざ関数とは別の仕組みを作るのは面倒臭い
だから「None(値なし)を返す関数」という形式で実装されているわけだ

587 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 19:40:21.23 ID:b/S1njE3.net]
ちなみに一応「値を返す関数」と「値を返さない手続き」を別の枠組みとして扱っているプログラミング言語も存在する
VBAのFunctionとSubがそうだ

588 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 20:04:28.41 ID:2Etc0l5z.net]
勉強になるな。
下手な入門書より2chの方がためになることも多い。 まだ入門書も適当に読み飛ばしてる段階だけど。
2ch の記事は入門者のモチベーションを高めてくれる。

589 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:04:59.01 ID:XsTs8xzo.net]
ふーん

590 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 21:45:22.45 ID:muSUG44X.net]
>>373
Pydroid3

591 名前:デフォルトの名無しさん mailto:sage [2019/03/06(水) 23:15:48.67 ID:2MUQBf9Y.net]
ツンデレ関数 print()



592 名前:デフォルトの名無しさん [2019/03/07(木) 00:29:00.90 ID:1sghIh7a.net]
オライリーのPythonチュートリアル分かりにくいい
これを元に資格試験を作ってるんだよね?

593 名前:デフォルトの名無しさん [2019/03/07(木) 00:35:34.48 ID:FPeGgUJ/.net]
>>573
資格試験ってなんだ?
公式サイトの和訳のやつなら
Web版が随時アップデートされてるよ

594 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 00:53:48.36 ID:l1bMfloe.net]
>>573
Pythonに資格試験なんて存在しません
非公式の資格詐欺は知らんけど

595 名前:デフォルトの名無しさん [2019/03/07(木) 01:01:50.93 ID:1sghIh7a.net]
>>574
>>575
資格試験って言い方が間違ってたらすまん
Python 3 エンジニア認定基礎試験てのを受けるんだけど
それの認定教材がオライリーのやつでwebで見てるんやけど
分かりにくいなって思ったそれだけ

596 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 01:15:05.56 ID:k6ZLJER9.net]
>>573 試験範囲がそこから出されると言うだけの話だよ。
公式チュートリアルと変わりない。 それの書き写しがオライリーのだから。

どちらも全くの初心者には難しいと感じるみたいだから、そう言う人は先ずその前に超初心者用的な入門書をいくつか読んだ方が良いのでは?
その類は対して読むのに時間はかからない。 ネットに落ちてるものでも十分。 ただし、自分で書いて練習することが重要。
jupyter でもなんでも良いから確認する環境を作ること。 読むだけでは身につかない。

597 名前:572 [2019/03/07(木) 01:20:20.63 ID:FPeGgUJ/.net]
>>576
洋書特有の文体だから慣れてないと違和感あるけど
言語のチュートリアルとしては良い方の部類だよ
ただ他の言語をマスターしてることが前提のところあるから
ガチ入門者なら国産の本を勧める

NECがスポンサーの試験か・・・
Pythonに力入れてるイメージはないがどうなんだろ

598 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 02:47:07.76 ID:7hJ/R58z.net]
       .,、- ' `´  ̄ ̄` ''‐ 、
      ,r'´           .`ヽ、
    /.      -t‐'''l´ .`l'‐t、 .\
   /´.        'lliiiill   lliiii!.  ヽ,
  ./       __  i,_,ノ   .i, ,!    ',  な、なんなんですか…?
  {       (´__,)    ,..., ~ (`ヽ l
  .l       - 、..,_    .l_ i  ,、-"'-、 l  ここ、どこですか…?
  .l           `i  .l,_ソ f´    .l
  ',          ノ     .l,     ,'    どうして私、こんなとこに貼られてるんですか…?
   '、       ,.、-'          .,'
   'i、  ー一 '´            /':,
    l ヽ,               ノ  }
    .l  `‐、,_          ._,.-.'   ,'
    l    `‐- 、,........,..、-‐'`     /
    .\_     ノ  l       ,/
      `'''ー‐ '´   ヽ、   _, -'
                 ̄ ̄

599 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 02:50:45.25 ID:bl19yUau.net]
殺人ピンク玉は去れ

600 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 03:49:17.97 ID:9XzeaP/N.net]
>>529

Decimal で文字列使う

https://i.imgur.com/QQ0npTS.jpg

601 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 09:12:07.95 ID:wzWG3iLc.net]
3000円もする専門書買うよりさ、わからないことがあったらネットで調べれば無料で答えがみつかるよ。
英文でも翻訳ソフト使えばいいだけだし。
ネットで調べても答えが見つけられないやつは、そもそもプログラミングに向いてないんじゃないか。



602 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 09:42:09.79 ID:E2eXaClF.net]
公式チュートリアルで良いだろ。

Japanese 指定して一括ダウンロードすればPDFが大量にある
その中のtutorial 開くと日本語訳 tutorial (pdf版)が入手できる

603 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 09:50:54.08 ID:IMd+ImAh.net]
ソース嫁からググれカスに移行したが今ではググったらカスばっか。

604 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 11:38:00.92 ID:Gktreo0e.net]
LearnPython.orgやCodeacademyみたいにWeb上でインタラクティブシェル開いて
一つ一つお題を実行させる形式のも良いんじゃない。
読んでるだけじゃなかなか身につかないよ

605 名前:デフォルトの名無しさん [2019/03/07(木) 14:15:07.44 ID:N/cPeE83.net]
>>567
そういえば

>>> print(1)
1

だとNoneは表示されないのに

>>> print(1, end=''),print(2)
12
(None, None)

のときだけ表示されるのは変だと思わない?

606 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 14:31:29.61 ID:E2eXaClF.net]
>>586 下はタプルだからだろ。

607 名前:デフォルトの名無しさん [2019/03/07(木) 15:40:41.57 ID:lgGD2eax.net]
>>586
None単体の場合は表示されないようにインタラクティブシェルがなってる

>>> None
>>>

608 名前:デフォルトの名無しさん [2019/03/07(木) 16:03:31.61 ID:aOVGrksh.net]
>>566
>>> print(1, end='') or print(2)
12

609 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 16:38:38.56 ID:UepKFInK.net]
以下のURLを参考に、フォントファイルから画像を描画しようと思っています
指定した文字がフォントファイルにあるかどうかの判定は、どのようにすれば良いでしょうか?

d.hatena.ne.jp/nakamura001/20101228/1293522309

それとも一度描画して、真っ白かどうかで判定・・・しかないでしょうか

pprintで取得したところ、参照のような感じと思いますが、以下のようになりました。
<PIL.Image.Image image mode=RGB size=256x256 at 0x13FF7DEE2E8>

610 名前:デフォルトの名無しさん [2019/03/07(木) 16:58:16.83 ID:aOVGrksh.net]
freetypeならFT_Get_Char_Index

611 名前:デフォルトの名無しさん [2019/03/07(木) 17:01:47.98 ID:aOVGrksh.net]
ここも参考になるかな
https://qiita.com/496_/items/f6efb650dcf7e9d2dfe4



612 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 17:34:33.92 ID:UepKFInK.net]
>>591-592
ありがとうございます
使い方を教えていただけないでしょうか

引数が二個必要とかいてると思うのですが
https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Get_Char_Index

実際に二個設定するとエラーがでます
import pprint
import freetype
face = freetype.Face('C:/Users/a/font/src.ttc')
pprint.pprint(freetype.FT_Get_Char_Index(face,"33"))

これはエラーになります

import pprint
import freetype
pprint.pprint(freetype.FT_Get_Char_Index("33"))

OSError: exception: access violation writing 0x000001CA5F00FF01

お助け下さい

613 名前:デフォルトの名無しさん [2019/03/07(木) 17:49:06.09 ID:aOVGrksh.net]
先にinit呼べ

614 名前:デフォルトの名無しさん [2019/03/07(木) 17:53:31.19 ID:aOVGrksh.net]
FreeTypeの使い方 https://qiita.com/496_/items/6d2540e26d66c9ed5f9a
OpenTypeの仕様前編 https://qiita.com/496_/items/f6efb650dcf7e9d2dfe4
OpenTypeの仕様中編 https://qiita.com/496_/items/4f8327fe741cf0c87736
OpenTypeの仕様後編 https://qiita.com/496_/items/02f2d63fe4bd5603e4dc

615 名前:デフォルトの名無しさん [2019/03/07(木) 19:18:41.40 ID:aOVGrksh.net]
FONT_PATH = b'mikaP.ttf'

ft2 = ctypes.windll.freetype
ft2lib = ctypes.c_void_p()
ft2.FT_Init_FreeType(ctypes.byref(ft2lib))
face = ctypes.c_void_p()
font_path = ctypes.create_string_buffer(FONT_PATH)
ft2.FT_New_Face(ft2lib, font_path, 0, ctypes.byref(face))
idx = ft2.FT_Get_Char_Index(face, b'A'[0])
print(f'{idx:04x}') # 0023
idx = ft2.FT_Get_Char_Index(face, ord('あ'))
print(f'{idx:04x}') # 07bd
ft2.FT_Done_Face(face)
ft2.FT_Done_FreeType(ft2lib)

一応動いた

616 名前:デフォルトの名無しさん [2019/03/07(木) 19:21:06.42 ID:aOVGrksh.net]
idx = ft2.FT_Get_Char_Index(face, ord('鷗'))
print(f'{idx:04x}') # 38c1
idx = ft2.FT_Get_Char_Index(face, ord('𠮟'))
print(f'{idx:04x}') # 0000

617 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 20:31:42.10 ID:VtililUQ.net]
>>581
これ何使ってんの?
スマホだよね?

618 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 20:32:20.69 ID:VtililUQ.net]
>>582
いい本に出逢えばそれに越したことはない

619 名前:デフォルトの名無しさん mailto:sage [2019/03/07(木) 21:37:32.00 ID:D1nw//Ty.net]
>>598

Pythonista 3
iPad, iPhone のアプリ

620 名前:デフォルトの名無しさん [2019/03/08(金) 01:56:52.91 ID:FktPmjXq.net]
i = 10
def num(arg=i):
print(arg)

i = 7
num()
iはどちらもグローバル変数ですよね?
関数の中身変えて7の方を出力させることってできますか?

621 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:04:22.64 ID:Nky3or7z.net]
def num(arg=None):
arg == i
print(arg)



622 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:05:04.82 ID:Nky3or7z.net]
def num(arg=None):
_arg = i
_print(arg)
の誤り

623 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:15:56.15 ID:5FsfaYFV.net]
>>601

https://i.imgur.com/2LoxSbi.jpg

624 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 02:20:26.52 ID:5FsfaYFV.net]
>>603

https://i.imgur.com/FNgAPWr.jpg

625 名前:デフォルトの名無しさん [2019/03/08(金) 02:47:32.14 ID:FktPmjXq.net]
>>604
ありがとうございます
でも7になる理由がわかりません。
どういった処理になるのか教えて欲しいです、

626 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 06:55:10.03 ID:49yeJutG.net]
>>600
ありがとー

627 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 11:24:52.69 ID:enrIbZX0.net]
>>606
i = 10
def num(arg=i):
 print(arg)

i = 7
num()

この場合は、def を定義するときにarg= でarg のデフォルト値をセットする。
この時の i は 10だろ。 まだ下の行は実行されていないんだから。

i = 10
def num(arg=None):
 arg == i
 print(arg)

i = 7
num()

この時のnum内の実行文は実行されたときに動くんだから、i=7 がセットされた値を参照する事になる。
関数のデフォルト値は関数を定義したときに決定される。 関数内の実行文は実行時に決定される。

628 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 11:33:20.13 ID:5FsfaYFV.net]
>>608
>この時の i は 10だろ。 まだ下の行は実行されていないんだから。


実行されるときの i は7だろ。

629 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 12:03:17.67 ID:JVGfVyzo.net]
問題はprint(arg)が実行される時のargの値でしょ?
def num(arg=i):
の時に、argにはiへの参照が渡されるんじゃ無くて、iの値が渡されるってだけ。

630 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:20:03.26 ID:enrIbZX0.net]
>>609 def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。

631 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:35:58.82 ID:5FsfaYFV.net]
それこの実行結果の前でも同じこと言えんの?

https://i.imgur.com/LmkiE6A.jpg



632 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:36:28.88 ID:0Uig+6Kq.net]
仕様ですな

デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、同じ "計算済みの" 値が呼び出しのたびに使用されることを意味します。

https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions

633 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:39:30.34 ID:0Uig+6Kq.net]
>>612
デフォルト引数じゃないしw
引数渡しちゃってるしw

634 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 13:57:33.85 ID:JVGfVyzo.net]
>>612
真面目にやってんならこれは恥ずかしい。

635 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:02:30.13 ID:j3nR25S+.net]
ガイガイ音頭踊っとれや…(嘆息)

636 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:12:04.85 ID:1m9JjIZU.net]
おもしろかったぞw

637 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:51:41.35 ID:enrIbZX0.net]
>>612 デフォルトが解っていないみたいだな。 これとまったく同じことなんだぞ。

def num(arg=10)
 print(arg)

print(num(7)) #> 7
print(num()) #> 10

638 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 14:53:37. ]
[ここ壊れてます]

639 名前:91 ID:enrIbZX0.net mailto: >>618 printが2重になってたな。 []
[ここ壊れてます]

640 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 15:17:08.58 ID:E9FXn3JR.net]
勉強になったな!

641 名前:デフォルトの名無しさん [2019/03/08(金) 16:07:05.72 ID:eYLLL/Dr.net]
よくはまるのは default=[] にしたとき



642 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 16:35:59.46 ID:DUow6Thg.net]
二次元配列からの取り出しで、

X = hoge[:, [2,3]]
Y = hoge[:, 0]

って書かれている時、具体的にどこからどこまで取り出しているのでしょうか?

643 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:17:55.67 ID:54yPjEY7.net]
>>612

def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。

つまり、関数定義時点で、i=10 とデフォルト値が確定する。実行時ではない。デフォルト値が、10から7にころころ変わったりするものか。だから、結果は10なんだよ
…ってあれ?

644 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:20:46.97 ID:54yPjEY7.net]
仕様ですな

デフォルト引数の式は関数が定義されるときにただ一度だけ評価され、(つまり10と評価)同じ "計算済みの" 値(つまり10)が呼び出しのたびに使用されることを意味します。

https://docs.python.org/ja/3.6/reference/compound_stmts.html#function-definitions

見事に結果が違うな
下手に言葉でルール説明しなくていいから、インタプリタに動作アルゴリズムをそのまま公開してほしいわ

645 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 17:41:30.86 ID:SfpbmzlL.net]
ちょっと何言ってんだか分かんないw

646 名前:デフォルトの名無しさん [2019/03/08(金) 17:48:01.52 ID:+fF7voFW.net]
>>622
Xは2列目と3列目
Yは0列目

647 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 18:34:43.25 ID:qP6cz7Aj.net]
>>624 言語リファレンスは明確に仕様を定義するだけのものだから、理解させるためのものではない。 絶対に間違いがあってはならないから下手な説明はない方が良い。

648 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 19:17:40.56 ID:1m9JjIZU.net]
>>624
>>下手に言葉でルール説明しなくていいから
オイオイ、これ以上分かりやすい説明ないだろう。しかも公式リファレンスだよ

>>インタプリタに動作アルゴリズムをそのまま公開してほしいわ
意味不明w

649 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:03:58.48 ID:IGhZvnlG.net]
公式の説明と実際の動作が一致しないんじゃなあ

650 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 20:34:26.69 ID:TVXnQmRl.net]
さすがに釣りでしょう

651 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:33:30.47 ID:1m9JjIZU.net]
>>629
その一致しないってコード貼ってみて



652 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:35:26.18 ID:5FsfaYFV.net]
>>631


https://i.imgur.com/2LoxSbi.jpg

653 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:45:16.90 ID:mz9PUEDs.net]
まじかよこいつ…

654 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:47:23.79 ID:JVGfVyzo.net]
>>632
‥あの、最後の行でnum()が実行される前に、i=7にして、print(arg) のargに7入れてますよね。。

655 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:48:50.29 ID:6/VZFxCg.net]
>>632
まず関数の中ではprintじゃなくてreturn使えよ

656 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:54:12.28 ID:1m9JjIZU.net]
クソー、こんなバカでかい釣針に…

657 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 21:58:20.32 ID:0lCnL4hz.net]
>>632
レベル高すぎて俺分からんが、へんだとPythonを作っているところに
激しく抗議したほうが良いな。

658 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:10:29.49 ID:5FsfaYFV.net]
>>634


def と言うのが何かを考えよう。 
def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 
デフォルト値がころころ変わったりするものか。

つまり、関数定義時点で、arg =None とデフォルト値が確定する。実行時ではない。デフォルト値が、None から7にころころ変わったりするものか。だから、結果はNone なんだよ

659 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:38:20.41 ID:5FsfaYFV.net]
>>635

https://i.imgur.com/idkGAYZ.jpg

660 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:44:17.08 ID:5FsfaYFV.net]
>>631

https://i.imgur.com/cVbw05B.jpg

661 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:48:11.06 ID:5FsfaYFV.net]
>>614

同じことだよ
Def で確定なんかしないんだな

https://i.imgur.com/InFjQUr.jpg



662 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:51:54.71 ID:5FsfaYFV.net]
要するに
この二つで
主力に差がある

おかしいだろ
言語仕様的にってこと


https://i.imgur.com/FNgAPWr.jpg
https://i.imgur.com/InFjQUr.jpg


i がグローバルだとか
def で引数確定だとか
じゃあ説明つかないわけで

663 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:55:09.64 ID:drDoyyDV.net]
何もおかしくなくね?

664 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 22:58:43.49 ID:Bv9xm7M7.net]
5FsfaYFVの頭がおかしい

665 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:03:08.61 ID:kqYYM5Yl.net]
何が問題なのかわからん

最初のはnum()に引数渡してないんだから、定義時のarg = 10がデフォルト値と設定されて10が表示される

次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される

666 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:08:02.19 ID:0lCnL4hz.net]
>>643
俺ら低脳はおかしくなくねだろうが、高脳は説明つかないわけで
になるんだよ。
脳レベルがずっと低い低脳は高脳が言っていることはレベル高すぎて理解できないことがよくあるからな
高脳がすごいことをカキコしても俺らはついていけないからスルー(何言っているの)になってしまう。

>>642
超初心者(低脳)スレで言ってもしょうがないから,teratailあたりで、これ説明つかないよね
と意見を求めたほうが良いよ

667 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:25:29.70 ID:33ZLM8BT.net]
>>642 何言ってんだこいつは? 長々とおちょくってるだけだろ。
何が言語仕様的にだ。言語仕様も理解できないで文句言うな。 言語仕様を100回読め。

668 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:25:43.90 ID:/RdmhwQH.net]
こんな基本的な事がおかしかったらとっくに修正されてる
ドキュメントを熟読してnum.__defaults__を確認しなさい

669 名前:デフォルトの名無しさん mailto:sage [2019/03/08(金) 23:59:43.59 ID:fVqLi10C.net]
>>645
>次のはnum(7)と引数に7を渡してるんだから、デフォルト値をarg = 7で上書きして7と表示される



デフォルトは確定だから上書き不可能

670 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:01:58.96 ID:LldggWB2.net]
この言語仕様がおかしい

https://i.imgur.com/FNgAPWr.jpg

i はグローバル変数なんだから、def で確定させてはいけない
それが直感的に正しい記述を目指すPython 的な文法
開発者は即刻インタプリタを修正すべき
すぐにだ!

671 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:03:20.04 ID:LldggWB2.net]
黄猿は現行仕様を無批判に教祖のごとく崇め奉る無能者
そんな信者の擁護論をあてにしてはいけない

俺のような人間の言うことを開発者は聞くべき



672 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:04:09.24 ID:JrnVgIXe.net]
そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…

673 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:07:50.33 ID:ScAo2omB.net]
>>652
初耳だ、詳しく

674 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:18:40.63 ID:a1Hsl2rh.net]
なんかもやもやしてたけど>>652の発言でスッキリした

675 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:31:23.52 ID:ScAo2omB.net]
>>654
エー、どういうこと?
俺のモヤモヤ晴らしてくれよー

676 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:14.31 ID:a1Hsl2rh.net]
前言撤回
numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが
違うのか?

677 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:30.46 ID:jmJNTA16.net]
>>650 お前が言語を理解していないことがよくわかるな。
デフォルト値は変数ではなくて、固定の値なんだぞ。

678 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:32:49.42 ID:QFJRtnnZ.net]
>>652
普通は
i = 10
def num(arg=i):
 print(arg)
じゃなく、
def num(arg=10):
 print(arg)
とするんだろうが、変数を介してデフォルト引数を指定して使う場合って
どんな時なんだろうって思うんだよな

679 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:34:24.26 ID:jmJNTA16.net]
>>656 何も入れない時に、どう言う値が入ったものとして動くかを決めるのがデフォルト値。

680 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:46:43.68 ID:LldggWB2.net]
>>659

def と言うのが何かを考えよう。 def で関数を定義する。その時点でパラメータのデフォルト値も確定する。
つまりパラメータのデフォルト値は関数の定義時点で確定する。 実行時ではない。 デフォルト値がころころ変わったりするものか。

681 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:49:26.21 ID:a1Hsl2rh.net]
>>659 そうなんだけど
多分>>650は引数のこと理解してないをわかってないんだろ。

デフォルト値を使いたい訳じゃなく、defに数値を渡したいだけじゃないのか?



682 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:51:38.41 ID:LldggWB2.net]
>numの()に何も入れないで呼び出しゃ何を渡すか不安定になって当然と思うが




不安定になるw
なにその情緒論

文法的に不可ならエラー吐けばOK
そうでないなら、「何らかの処理」をさせて終わり
その処理を場合分けして書いとくのが公式ドキュメントの仕事だろ

683 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:55:39.76 ID:jmJNTA16.net]
>>661
def num(arg=i):
 print(arg)

と、

def num(i):
 print(i)

は同じものだと思ってるのかな?
下の場合はまたそれはそれで誤解しそうな要素を孕んでるんだけど。 この場合の i は、ローカル変数となる。外でグローバル変数として使われていてもね。

684 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:02:30.05 ID:ScAo2omB.net]
誰か俺の疑問にも応えてよ〜
>>652について詳しく知りたいんだよ〜

685 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:03:05.66 ID:jmJNTA16.net]
もしかして、デフォルトというカタカナ英語が理解できないのかも。
省略した時の値、省略値といってあげれば理解できるのかな?

686 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:03:41.96 ID:a1Hsl2rh.net]
>>663
そこでなくて
def num(i):
を呼ぶときに
num()にするとエラーが出るよね。

けど、
def num(agr=i)
に、するとエラーが出ない!!うまく行った!!
けど、思ってた作動しない!なんでや!

で騒いでんのと思う

687 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:04:04.19 ID:jmJNTA16.net]
>>664 省略値って何をするものか理解したか?

688 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:14:03.06 ID:ScAo2omB.net]
>>667
どういうことですか?
条件によってデフォルト値を変えるような使い方はまずいんでしょうか?

689 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:16:59.92 ID:jmJNTA16.net]
>>668 まずいも何もそんなことはできないし、それは省略値ではない。
省略値は何度も言うように関数を定義した時点で固定されるもので、一度その時に固定された値が後で変わるようなことはあり得ない。

690 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:19:46.38 ID:jmJNTA16.net]
理解できなければ、デフォルト値には変数は使えないと覚えた方が身のためだよ。 あくまでも固定値なんだよ。

691 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:31:22.96 ID:gjM9SRoS.net]
https://i.imgur.com/InFjQUr.jpg


> 一度その時に固定された値(10)が後で変わるようなことはあり得ない。

変わってるじゃん
7 に



692 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:33:05.19 ID:ScAo2omB.net]
言い方がまずかったかな
私が言いたかったのは
def func(arg=var):
のvarの部分に変数を使うっていう意味で言ったつもりだったんですけど

693 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:38:38.47 ID:gjM9SRoS.net]
そう言い方がまずいんだよ
日本語の表現力が君には足りない

昨日からしつこく指摘されてようやく理解したようだね
以後は気をつけるように

君は言葉で説明するのはやめとけ
みんなが迷惑する

具体的なコード書いて、こうかくとこうなる、こう変えるとこうなる、そう具体的に書いたほうがいい

694 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:48:10.74 ID:a1Hsl2rh.net]
やっと言葉が見つかった
デフォルト値と引数の引き渡し方を混同してないかい?

695 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:54:11.30 ID:CZjUTyKq.net]
>>672
別にいいんじゃないの
なんかまずいことでもあるのかな?

696 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:59:58.65 ID:jmJNTA16.net]
>>674 そう言うことだな。
>>671 は完全に混同してる。 省略値が全くわかっていない。

下の方で
i= 7
num(i)
で呼んだ場合は、パラメーターとして7を渡したんだから、パラメータは省略されていないんだから省略値が使われるわけがないと言うことを理解しない限りは堂々巡りだな。

num() と言う形でパラメータを渡さなかった場合にだけ、省略値が使われる事を理解しなさい。 なんのための省略値だよ。
呼び出し元がパラメータを渡さなかった場合に使われる値が省略値だよ。
def num(arg=10)

であれば、num() で呼べば、num(10) と呼んだのと等しくなる。

697 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:07:54.61 ID:ScAo2omB.net]
>>676
ねえねえ、>>672に関してのご教授お願いしますよ

698 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:09:08.25 ID:gjM9SRoS.net]
>>676

その日本語説明では、

https://i.imgur.com/FNgAPWr.jpg

が説明できていない

699 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:15:15.17 ID:gjM9SRoS.net]
>>676 の言いたいことをコードで書くとこうだな

https://i.imgur.com/iv7Capl.jpg
https://i.imgur.com/MoZ1uos.jpg

700 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:19:08.39 ID:gjM9SRoS.net]
で、言語仕様的問題に戻るとだ。

インデント強制文法で売ってるPython 的には、こういう場合、i は、グローバル変数になるべきなのであって、

i 渡さない場合でも、上のi だけ参照するようなクソ仕様は直感に反するから修正しろということ
ちゃんと下の i も見るようにしろと。

701 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:21:39.74 ID:jmJNTA16.net]
>>678 お前は人の言葉を聞いていないだろ。

i=10
def num(arg=i) と書いた時点で、
def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定される



702 名前:だから。


その後で、iをどう変化させようが
省略値は変わらないんだよ。

お前わざとおちょくってるだろ。
[]
[ここ壊れてます]

703 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:22:12.05 ID:gjM9SRoS.net]
つまり、このコードでも出力は、10じゃなくて、7になるように言語体系を考えて作り込めということだよ。

https://i.imgur.com/MoZ1uos.jpg

わかったか>PSF

704 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:24:09.75 ID:gjM9SRoS.net]
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。
>その後で、iをどう変化させようが
>省略値は変わらないんだよ。


その日本語説明では、

https://i.imgur.com/iv7Capl.jpg

が説明できないな
もうお前日本語使うのやめろ
むいてないよ

コードで語れ

705 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:24:20.95 ID:jmJNTA16.net]
>>680 お前がバカなのはよくわかった。 省略値は変数じゃないと何べん言ったらわかるんだ。

706 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:25:17.72 ID:ScAo2omB.net]
>>681
ねえってばー、荒しの相手してないでボクの疑問に答えてくださいよー

707 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:29:04.29 ID:jmJNTA16.net]
>>685 お前も嵐だろ。

708 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:30:13.44 ID:gjM9SRoS.net]
試しに置き換えてみた

出力結果を見てみろ
7だぞ
10じゃないぞ


>>681
>i=10
>def num(arg=i) と書いた時点で、
>def num(arg=10) と置き換わるんだよ。定義した時に省略値は固定されるんだから。


https://i.imgur.com/vJPCACP.jpg

709 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:30:23.94 ID:jmJNTA16.net]
>>685 >>684

710 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:32:07.70 ID:jmJNTA16.net]
>>687 お前がただのバカだと言うことがよくわかった。
小学校は卒業したか?

711 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:33:18.73 ID:gjM9SRoS.net]
コードとその実行結果だけが真実だよ
口汚く罵るのは素人の証拠



712 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:37:03.26 ID:jmJNTA16.net]
>>690 ここを100回読んでから出直せ。

https://docs.python.org/ja/3/tutorial/controlflow.html#default-argument-values
4.7.1. デフォルトの引数値

713 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:37:28.33 ID:ScAo2omB.net]
>>688
おいおい荒しと一緒にしないでくれよ
自分の間違えに気が付いたんで逃げるのかw
デフォルト値に変数を使えるよねえw

i = 3

def sum(x, y=i):
print(x + y)

sum(2)

714 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:39:33.41 ID:gjM9SRoS.net]
>>691

このコード見て自分の日本語がおかしいと感じるだろう?

https://i.imgur.com/vJPCACP.jpg

715 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:39:50.07 ID:jmJNTA16.net]
重要な警告: デフォルト値は 1 度だけしか評価されません。

716 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:41:41.76 ID:gjM9SRoS.net]
>>694

だからなに?
コードで語れないの?

ひょっとしてドキュメント読むだけで、プログラム書いたことないの?

717 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:44:04.32 ID:ScAo2omB.net]
>>691
100回読んだけどデフォルト値に変数を使っちゃいけないなんて書いてませんでしたよ
>>669-670の発言の言い訳をお願いしますw

718 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:45:06.52 ID:jmJNTA16.net]
重要な警告: デフォルト値は 1 度だけしか評価されません。

変わらないものは変数とは言いません。

719 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:47:13.43 ID:gjM9SRoS.net]
>>692

Def に変数を代入してもOK

https://i.imgur.com/92NY4Vr.jpg

720 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:47:13.77 ID:EXmOKVNB.net]
ガイガイ音頭踊っとれやとは言ったが
夜通し踊れとは言っとらん

721 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:51:29.61 ID:ScAo2omB.net]
>>697
i = 3
def sum(x, y=i):

この i は変数ではないと強弁されるおつもりか?



722 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:53:31.44 ID:WSwBoc7f.net]
実引数を渡したら既定値は参照されないので、頓珍漢な主張
また既定値に変数を使用しても結び付きは変数ではなく実体
定義時に解決された割り当ては些か小細工せんと変化しない

723 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 03:16:44.80 ID:ScAo2omB.net]
>>701
行きがかり上煽りのようになってしまったワケですが…

>>652の「そもそもデフォルト引数に変数を入れるという使い方が間違ってるわけで…」
という発言になんで間違え?って思ったんですよ

これ、「間違いではないけどあまり意味はないよ」くらいの解釈でよろしいんでしょうか?

724 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 03:47:01.64 ID:WSwBoc7f.net]
>>702
元になった変数へ再代入したら仮引数の既定値も変化する事を期待するならば意図した動作にはならない
しかし実体を共有したり、ミュターブルなら代入を除く変更を反

725 名前:映させたり、コード次第で普遍的に意味がないという事もない
またnum.__defaults__ = (7,)等として既定値の再割り当ても可能ではあるが、これは基本的に与える実引数を変えるべきとされよう
[]
[ここ壊れてます]

726 名前:701 mailto:sage [2019/03/09(土) 03:52:48.95 ID:WSwBoc7f.net]
なぜ長音符が妙な位置に…ミュターブル→ミュータブル(mutable)、変更可能オブジェクト

727 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 04:26:19.28 ID:ScAo2omB.net]
>>703
もちろん意図した場合を除いて実引数が変化するなどとは思っておりません
単にデフォルト引数に変数は間違えというのに引っかかったわけで
__defaults__は知りませんでした
以前デフォルト引数を使ってオブジェクト指向チックにというお題をやったもんで

animal = 'human' # 'dog' になったり 'cat' になったり
numeral = '人' if animal == 'human' else '匹'

def count(c, n=numeral):
____print(str(c) + n)

count(3)
# 鶏になった
count(3, '羽')

どうもありがとうございました

728 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 06:05:07.57 ID:sGXnYTxg.net]
>>705
>単にデフォルト引数に変数は間違えというのに引っかかったわけで
は、関数の中でデフォルト値上書きしといて何言ってんだ?

729 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:29:28.52 ID:jmJNTA16.net]
>>702 そう言う意味合いだけどわざわざ混乱するような書き方は避けるべきだと言う事。
普通はそんな書方したら叱られるレベル。

>>705 のように条件でデフォルト値を変えたいなら、def文の中に書いてわかりやすくすべき。
別れて書いたら混乱の元。
この場合も条件によりデフォルトの固定値を変えているだけでしかない。

730 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:50:08.53 ID:sGXnYTxg.net]
>>707
外部の設定ファイル読んでデフォルト値設定、デフォルト値でいいなら引数省略可、とかやる時どうやんの?

731 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 08:06:27.23 ID:aHKuI1wh.net]
どうでもいいが、デフォルトって既定値って言わね?普通



732 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 08:26:54.57 ID:IZUVT+2M.net]
どうでもいいんなら良いじゃん
日本語か英語かってだけだろ
プログラム用語と数学用語はもう和訳するのやめて全部カタカタ英語でいいよな
いちいち日本語にす🏝🏝🏝ると無駄に難しく聞こえるんだよ

733 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:29:49.81 ID:1Grnbwgn.net]
ええ

734 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:37:13.71 ID:sGXnYTxg.net]
from datetime import date
from datetime import timedelta

def offsetday(offset=0):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したら今日の日付
offsetday(5) #引数渡したらN日後の日付


便利だねぇ。デフォルト値。

735 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:51:43.74 ID:sGXnYTxg.net]
今の流れならこうか

from datetime import date
from datetime import timedelta

#どこからからか設定もらう
i=getdefnum()

def offsetday(offset=i):
da=date.today() + timedelta(days=offset)
print('%s' % da)

offsetday() #引数省略したらもらってきた設定値

736 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 10:37:54.51 ID:aHKuI1wh.net]
>>710
いや、なんかごめんな…(´・ω・`)

なぜ一般に既定値って訳されるか、今一度考える機会を皆に与えたかったんだ

737 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:24:51.58 ID:5O+JPpeP.net]
>>706
関数の中でデフォルト値上書きしといてってどうういこと?
上書きしてるようには見えないんだけど

738 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:32:05.17 ID:KFikgSMo.net]
>>712
俺には難しすぎだよ。インポしてる関数(オブジェクト?)の使い方がわからん。
流れらはずれているが考えてみた。

#値段
pl=1980

def num(tax=8): #税率
print(pl*(1+tax/100))

num() #無指定8%
num(10) #税率指定

確かに便利だな

739 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:41:41.60 ID:7R/zU8Sh.net]
>>716
インぽなおまいはまず日本語の誤字脱字多数修正

740 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:17:11.83 ID:pRsXet8g.net]
>>715
上書きしてないよ

>>716
すごく分かりやすい例だ

741 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:01:55.81 ID:QD5YmF9d.net]
はじめまして初心者です。
Windows10でメモ帳を開いて、メモ帳のウインドウサイズを変更し文字を入力したいのです。
どなたか教えてください><



742 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:05:39.03 ID:1Grnbwgn.net]
>>719
そんなんで出来るか

743 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:07:04.99 ID:QD5YmF9d.net]
>>720
すいません。
>>719をPythonを使って行いたいって意味です。
よろしくお願いします><

744 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:07:18.08 ID:QFJRtnnZ.net]
>>716
>#値段
>pl=1980
なんて言うか、値段をplにするって俺ららしいよな

745 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:10:14.35 ID:7R/zU8Sh.net]
>>721
>>1くらいよめよ
理解できないならまだここじゃなくて
PC初心者板での勉強が必要なレベル
=Python以前の問題 だぞ

746 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:12:06.66 ID:QD5YmF9d.net]
>>723
>>1は読みましたが、解決しませんでした><

747 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:12:14.04 ID:7R/zU8Sh.net]
とりあえず↓あたりよめ (Python以前の問題で解決するかもしらん)
ttps://support.lenovo.com/gr/ja/solutions/ht118907

748 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:13:25.44 ID:7R/zU8Sh.net]
あるいはレジストリいじって解決するかもしらん
ttp://sei.qee.jp/docs/program/hta/sample/memofont.html

749 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:14:31.86 ID:QD5YmF9d.net]
真面目に質問してるので煽りはスルーします。。。
初心者です。優しい方お願いします><
ちなみに20代の女子です。。。

750 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:40:52.46 ID:QFJRtnnZ.net]
ID:WSwBoc7f はなんかこのスレでは珍しい高脳って感じだな
>>701
>既定値に変数を使用しても結び付きは変数ではなく実体
が正しいんだろうな
結び付きが変数なら、実引数省略して関数を呼びだしたときの変数が指すオブジェクトが
実引数になるだろうからな。

751 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:49:46.79 ID:QD5YmF9d.net]
>>719です。
どなたかよろしくお願いします><



752 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:54:33.79 ID:BnoVO+GE.net]
>>729
RPAを買いなさい

753 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:59:57.56 ID:QD5YmF9d.net]
>>730
すいません。目的はPythonの学習なのでPythonで解決したいと考えてます。
イケメンでPythonに詳しいあなた達なら良い解決策をお持ちではないですか?

754 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:02:39.34 ID:BnoVO+GE.net]
>>731
他のアプリを操作したい系は初心者が誤って足を踏み入れがちな典型的な罠
何の役にも立たないバッドノウハウの塊であり、初心者の学習には全く適さない

755 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:07:00.37 ID:QD5YmF9d.net]
>>732
では他のアプリとの連携はどうするのですか?

756 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:09:05.45 ID:BnoVO+GE.net]
>>733
Pythonなら処理結果を一旦ファイルに落とすのが普通です

757 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:14:42.55 ID:QD5YmF9d.net]
Pythonでメモ帳を500px×500pxで開きたいのですが
それは叶わないのでしょうか?

758 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:22:02.05 ID:t5ksfgQn.net]
https://github.com/asweigart/pyautogui

メモ帳を開いてメモ帳のウインドウサイズ変更まではこれ使えばいけそうだ
キーボードの操作はできるみたいだけど文字入力までできるかはわからない
>>734の言うように一時ファイルに書き込んでからオープンでいいなら可能だよ
初心者にはハードル高いと思うけどがんばってね

759 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:28:22.21 ID:QD5YmF9d.net]
お二方ありがとうございます。
私が調べたところPyAutoGUIというライブラリで
マウス操作やキー入力は可能でした。
ただ、ウィンドウサイズの変更と移動方法はよくわかりませんでした。

リンク先を見て勉強してみます。

760 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:04:12.35 ID:lwZTh4qp.net]
>>716 解ってるとは思うけど1つの例としては良いんだけど、実際にそんなプログラムは絶対に書くべきでは無いよね。

関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。
同じことをやるなら、パラメータとして渡すべきだろ。

761 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:28:12.28 ID:o9iMui5S.net]
>>738
あほか
関数なんてブラックボックスでいいんだよ
そういうのはドキュメントを整備しくもんだ



762 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:52:35.69 ID:lwZTh4qp.net]
>>739 プログラムこそ最高のドキュメントじゃ無いのかな?
ルールから外れたブログラミングルールは、決して褒められたものでは無い。

Pythonがなんで、インデントを重視したか? 誰が見ても間違えない様にするためなんだよ。

763 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:53:19.46 ID:atnduDe4.net]
>>738
関数の中を覗かないと動きが見えないみたいな関数は作るべきでは無い。

お前はエスパーかw

764 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:00:48.16 ID:lwZTh4qp.net]
i=1
j=2
k=3
def add(a=i,b=j,c=k):
 return a+b+c

print(add()) # 6

----
# こんなのより
def add(a=0,b=0,c=0):
 return a+b+c

i=1
j=2
k=3
print(add()) #0
print(add(i,j)) #3
print(add(i,j,k)) #6

#こっちの方が100倍マシ。 いくらドキュメントをどこかで作っても誰も読まないよ。 プログラムが大きくなればなるほどプログラムこそ最高のドキュメントなんだよ。

765 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:37:19.27 ID:WSwBoc7f.net]
>>728
自演に思われそうかつ高次脳機能障害みたいな略の持ち上げはYAMETE!
数式的に妥当かは与り知らんけど、Pythonに変数のエイリアスは無いしね
古典的な静的型言語と違い、変数は実体への参照に過ぎないのもハマりがちな所

代入を除く変更ってのも色々語弊が有るな、実体に対する操作と表現するべきか


>>737
んー…確かにドキュメントではその辺りが欠けているというか正式実装じゃない?
既に他者のPythonコードが読めるなら直接↓を見るとか、helpやpydocに掛けるなり
https://github.com/asweigart/pyautogui/blob/master/pyautogui/_window_win.py

質問に対する愚直な答えは同モジュールのようなctypesでWindows APIを呼び出したりが基本になるだろうけど
既存ライブラリに無い操作を実装するに際しては、Microsoft Docsとかにマクロの具体的な定数が併記されてないと
Windows SDKのC/C++ヘッダーも参照する事になるし、最終目標に対し言語や実現方法などが適切かも考えた方が良い

766 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:08:54.75 ID:QD5YmF9d.net]
>>743
ありがとうございます。
URL参考にさせていただきます。
外部アプリの操作にPythonは向いてないのでしょうか。
私なりに調べたところPythonからpowershellを実行するのが一番簡単そうだと思いました。
何かよい手があれば教えてください。

767 名前:デフォルトの名無しさん [2019/03/09(土) 17:35:51.96 ID:kfZA3URW.net]
ねむくなるねこのすれ

768 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:17:19.14 ID:fMIUxryy.net]
初心者は寝てていいよ

769 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:23:12.70 ID:WSwBoc7f.net]
>>744
もっと全体的な流れ、具体的な結果に依るので抽象的な回答になってしまうけど
メモ帳へ文字入力というのが単にファイルの読み書きで済むなら迂遠だし
エディタを機械的に操作したければ何ぞスクリプト対応のアプリを使用するとか

汎用的に外部アプリ全般を弄りたくて起動や開く程度ならsubprocessとかでも十分だけど
細かい所はWinAPIを直接呼ぶ必要が出てきてたり、大半がPowershellで構成されるなら
これはもうPythonの学習というより、それらにすり替わり、置き換えられるよねという事

外部アプリ操作≒UI操作なら一般的とは思わないが、シェル代わりや橋渡しとしてはよく使われる
Windows APIを呼び出す云々はSDKを使うネイティブ言語よりコンパイル諸々などお手軽な面はある

770 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:38:41.90 ID:GVs3bbIF.net]
例えば、Ruby から、powershell を呼び出して、クリップボード処理もできる。
str = `powershell Get-Clipboard`

>でも、メモ帳のウインドウサイズを変更し、文字を入力したいのです
基本的に、他人が作ったアプリは、他のアプリから操作できない。
操作できるためには、操作用のAPI を公開して、その使用方法の文書も書く必要がある

powershell は公開されているから、他のアプリからも使えるけど、メモ帳はどうかな?

例えば、君が作ったアプリを、他のアプリから操作できるように、
わざわざ操作用のAPI を公開して、その使用方法の文書を書いたりしないでしょ?
面倒くさいし

そういうアプリは当然、他のアプリから操作できない

771 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:44:42.88 ID:C6v7oEvs.net]
rubyとかいうゴミ言語はまったく関係ないな
powershellを外部コマンドとして呼び出してるだけ
これでrubyスゴい!になっちゃうのがrubyキチガイのキチガイたる所以



772 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:47:45.08 ID:3mUakWGD.net]
そんなことよりなんで今更何のためにメモ帳に書くのかな。そっちの方が興味がある。

773 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:53:19.79 ID:QD5YmF9d.net]
>>747
subprocessを使えば簡単な操作はできるんですね。
ありがとうございます。調べてみます。
本当は複雑なこともやってみたいと思ってましたが。。。

>>748
APIが公開されてないものは基本外部から操作は出来ないんですね。。。
ありがとうございます。勉強になりました。

774 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:57:06.37 ID:wl/Le+J5.net]
さすがは、チームRWBY
相手の力を利用するとは、なかなかやるね!

775 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:21:03.99 ID:Pn/iQo1s.net]
rubyはpycallとか作ってまで生き残りをはかってるからな

これほど「始まる前に勝負着いてた」事例があるだろうか

776 名前:746 mailto:sage [2019/03/09(土) 20:40:28.25 ID:GVs3bbIF.net]
Ruby では、こういう感じ。
Rubyから、powershell, clip コマンド(子プロセス)を呼び出す。
そして、このスクリプトをbat, vbs から呼び出すようにすれば、ダブルクリックでも起動できる

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard` # クリップボードから取得
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 空白類を除去

IO.popen( 'clip', 'w:cp932' ) do | clip |
clip.print( ary.join "\n" ) # クリップボードへ書き戻す
end

777 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:05:21.70 ID:QD5YmF9d.net]
Pythonではできないのでしょうか?

778 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:36:12.11 ID:BnoVO+GE.net]
>>754
PowerShellすごい!

779 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:51:05.13 ID:Asclh6VQ.net]
>>755

スレ違い

780 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:52:20.14 ID:QD5YmF9d.net]
>>757
ここはPythonすれですよw

781 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 23:13:21.29 ID:QD5YmF9d.net]
皆さん、相談にのっていただきありがとうございました。
SikuliというUI自動化ツールが優秀で思い通りの事ができました。
Pythonのスクリプトも使用できるのでとても満足です。



782 名前:デフォルトの名無しさん [2019/03/09(土) 23:51:29.47 ID:H6isrNei.net]
Ruby禁止のRubyの単語に反応して書き込んでる説

783 名前:デフォルトの名無しさん [2019/03/10(日) 01:39:40.52 ID:/HGKNCBK.net]
副業解禁で激変する若者世代とマネージャー世代のキャリア観
www.businessinsider.jp/post-107782
フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説
www.proof0309.com/entry/shokushu
時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える
headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all
副業が「会社にバレる人」と「バレない人」の大差
headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all
正社員の10%以上が副業 中には過重労働で体調崩す人も
headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all
「副業で年2000万円稼ぐ男」に学ぶキャリア戦略
headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all
加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい?
headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life
おすすめ副業22選を現役フリーランスが解説【在宅も可能】
www.proof0309.com/entry/zaitaku-hukugyou
会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと
www.businessinsider.jp/post-165731
フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か
toyokeizai.net/articles/-/263055
フリーランス人口は増える!今後は仕事もプロジェクト単位になる!?
freelance.mts-career.com/population/
どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話
findy-code.io/engineer-lab/engineer-unitprice-income

784 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 09:53:19.84 ID:5/+zyaBC.net]
>>754
死ね

785 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:33:29.03 ID:YmMiXd1Z.net]
ガイジなど世間的には生まれた時点で死んだような存在だろネットでくらい許せ

786 名前:デフォルトの名無しさん [2019/03/10(日) 18:44:45.56 ID:uFsYqTSV.net]
ruby禁止は浸透したがpowershellも禁止でおながいしまつ

787 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:04:53.21 ID:w00/E2cH.net]
プログラマー40歳限界説

788 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:42:00.71 ID:XCpNHt+Q.net]
ブックマークしてたpowershellのマニュアルのアドレスが変更されたみたいだ
誰か知りませんか?

789 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 19:50:01.61 ID:eNJkLSXg.net]
スレチ

790 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 02:31:05.67 ID:Q8+quAlB.net]
numpyでベクトルの配列の全要素に行列を掛けるにはどうしたらいいでしょ?
やりたい事は

vec=[[0,0],[1,1],[2,2]...]
mat=[[0,1],[1,2]]

result=[m & v for v in vec]

こんな感じです

791 名前:デフォルトの名無しさん [2019/03/11(月) 05:21:09.87 ID:pTTv+VC9.net]
mat@vec



792 名前:デフォルトの名無しさん [2019/03/11(月) 05:23:59.55 ID:pTTv+VC9.net]
vecの作り方によっては
mat@(vec.T)

793 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 07:42:02.40 ID:R4ZESWdO.net]
pythonできればc#もできますか?
pythonでゲームと、c#でwindowsのソフト両方を使ってますわ

794 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:49:44.07 ID:Rf81Fxun.net]
フォルダを空にしようと思いましたが、うまく行きません
shutil.rmtree(args.sample_dir)
os.mkdir(args.sample_dir)

os.mkdir(args.sample_dir)の部分で
PermissionError: [WinError 5] アクセスが拒否されました。: 'test/sample_img'
というエラーが出ます

ディレクトリが消えているので
shutil.rmtree(args.sample_dir)
はうまく行っているようです

このやり方はあまり良くないのでしょうか?

795 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 08:50:31.50 ID:IpMePMuQ.net]
>>770
すみませんミスタイプしてました。求めたい結果は
result=[mat@v for v in vec]
ですね

796 名前:デフォルトの名無しさん [2019/03/11(月) 12:16:20.15 ID:hfHU2O5u.net]
>>773
forいらんで

797 名前:デフォルトの名無しさん [2019/03/11(月) 12:19:13.01 ID:hfHU2O5u.net]
こういうことかな
(mat@(vec.T)).T

798 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:11:44.97 ID:mNeqJkGU.net]
>>772
os.mkdirは途中に存在しないフォルダがあるとエラーしてしまうので
「os.makedirs()」をつかってみそ

799 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:33:25.52 ID:pvnV5rIH.net]
inputした数字をそれぞれリスト化(aリスト,bりスト)したい。

入力(1行目は入力回数)
3
100 2
3 42
52 63

出力
[100, 3, 52] [2, 42, 63]

自分が作成したコードはinputをrangeで回してますが、inputを内包表記で1行で済ませる方法が分かりませんでした。
内包表記・関数でもうすこし短く出来ませんか?
cunt = int(input())
a_list = []
b_list = []
for i in range(cunt):
 a,b = [int(x) for x in input().split()]
 a_list.append(a)
 b_list.append(b)
print(a_list,b_list)

800 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:36:22.93 ID:mNeqJkGU.net]
>>777
  >>422

801 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 17:38:42.78 ID:mNeqJkGU.net]
とちゅうでおくってしまった
>>422がイイ(・∀・)こといってる気がするんだが
なんとか利用できないかな



802 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:53:46.76 ID:iNskGddB.net]
count = int(input())
temp = [None for x in range(count)]
for i in range(count):
  temp[i] = input().split()
else:
  a_list = [int(x[0]) for x in temp]
  b_list = [int(x[1]) for x in temp]
  print(a_list,b_list)

というかコードを書く前にcuntを辞書で引け
話はそれからだ

803 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 19:57:35.25 ID:PGatxMde.net]
クリトリスですか?なるほど…

804 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 20:39:01.91 ID:mSdvFdhb.net]
print(*map(list, zip(*[map(int, input().split()) for i in range(int(input()))])))

805 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 21:57:53.69 ID:pvnV5rIH.net]
セクハラ通り越して放送禁止用語レベルだったんですね

>>780 こういうループの発想が湧きませんでした 参考にさせて頂きます

>>782 コレ使ってみます 関数1個1個はナントナク分かりましたが、何重も連なると自分のレベルは難しいです 時間かけて解読してみます

>>779-782 皆さんありがとうございました

806 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 22:05:12.11 ID:IpMePMuQ.net]
>>775
ディメンションがちゃうで言われますね
つまり座標配列全てにアフィン変換したいって事なんですがnumpyじゃ無理なんかな?

807 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:20:05.55 ID:GdRfR4uu.net]
Ruby のArray#zip, transpose で、配列・行列の縦横変換できる。
zip の引数に、幾つかの配列(配列のリスト)を指定できる

p [1,2,3].zip([4,5,6], [7,8,9])
# => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

808 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:38:19.16 ID:qe97t/2K.net]
>>785
グロ

809 名前:デフォルトの名無しさん mailto:sage [2019/03/11(月) 23:54:59.52 ID:0HIo0fVP.net]
>>780
>コードを書く前にcuntを辞書で引け
ゆとり教育では辞書使うなんて難易度の高いことはしない

810 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 00:08:58.95 ID:KQFIYqiK.net]
>>784
"アフィン変換 numpy"でググればなんか希望の物が引っかかるんじゃないのか
numpyを使ってアフィン変換をするライブラリなんかは誰か作っている気がする

811 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:19:04.31 ID:Tg1PBlZE.net]
>>780 cunt 辞書ひいた。 笑っちゃったよ。

1. a stupid or unpleasant person
2. -> HUMAN
a woman's vagina =sex organ



812 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 01:43:49.00 ID:Tg1PBlZE.net]
>>789 同じロングマンなんだけどなんかニュアンスが違うな。

cunt
kʌnt
名 C《タブー》
1 《女性性器を意味する非常に侮蔑ぶべつ的な語》
2 《嫌悪感・怒りを感じる女性に対して用いる非常に侮蔑ぶべつ的な表現》

大辞林
カント 女性の性器。

コトバンク
[名]((卑))
1 たちの悪いやつ;いやなやつ
Don't be a silly cunt.
くだらんことを言うな.
2 女性器;性的対象としての女性, あばずれ;性交.
[オランダ語kunte←フランス語]

Oxford
vulgar slang
1 A woman's genitals.(性器)
1.1 An unpleasant or stupid person.

Origin
Middle English: of Germanic origin; related to Norwegian and Swedish dialect kunta, and Middle Low German, Middle Dutch, and Danish dialect kunte.

813 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:29:06.26 ID:Le2Xhtue.net]
引数のイメージなんですが、引数は材料で、材料を関数で調理器にかけるイメージでしょうか?

814 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:30:30.49 ID:F9OOaHwl.net]
戻り値は?

815 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:33:21.35 ID:c3A0Gx7w.net]
ひき肉を作る機械のイメージでええんやないの
上に入れる肉が引数、機械が関数、出てきたひき肉が戻り値

816 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:36:33.66 ID:rf03pH6k.net]
引数に肉しか入れてないのに勝手に台所のコショウが減ったり電気使われたりするのが副作用

817 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:39:17.36 ID:Le2Xhtue.net]
ひき肉が引数、調理器が関数、バーグが戻り値
ありがとうござ

818 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:41:44.81 ID:Le2Xhtue.net]
selfの意味ってなんですか?
単に関数を作成したときにデフォルトでついてくる引数という感じでしょうか。
だとしたらなんのためにですか?

読んでみたんですが、イマイチイメージが、、、

819 名前:デフォルトの名無しさん [2019/03/12(火) 12:52:43.68 ID:uvkzn3tS.net]
>>796
selfは関数ではなくクラスのメソッドに付ける
Javaのthisみたいなもので、メソッドを呼び出したオブジェクト自身を受け取るための引数
メソッド内でメンバ変数を参照したり別のメソッドを呼び出したりする時にself.〜 として使う

820 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 12:58:27.33 ID:R/A89vkp.net]
横からすいません
self、self以外を指定することはあるのでしょうか?

821 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:11:28.09 ID:rdaDEiid.net]
>>798
慣例的なもので言語制約ではない、が補完などに影響するかも
クラスメソッドではクラスが割り当てられるのでclsが使われる



822 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:16:23.13 ID:rf03pH6k.net]
hoge.myMethod(fuga, piyo)
myMethod(hoge, fuga, piyo)
みたいなイメージ

823 名前:デフォルトの名無しさん [2019/03/12(火) 13:20:45.17 ID:6Uu2j9Xc.net]
>>784
馬鹿には無理

824 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:36:24.76 ID:R/A89vkp.net]
>>799
ありがとうございます

825 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 13:58:38.98 ID:c3A0Gx7w.net]
そもそも何でメソッドの引数にオブジェクト自身を渡すんやろうか
obj.method()みたいに呼び出すなら、どのオブジェクトをメソッドに渡すかわ明らかなんだから、省略できそうなのに

826 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:09:51.25 ID:R/A89vkp.net]
>>803
こういう渡し方をする言語、python以外にもあるんでしょうか

827 名前:デフォルトの名無しさん mailto:s []
[ここ壊れてます]

828 名前:age mailto:2019/03/12(火) 14:19:35.49 ID:rdaDEiid.net [ >>803
それはPythonのオブジェクト指向の実装方法とか基本理念によるもの、属性解決については
https://docs.python.org/ja/3/howto/descriptor.html#definition-and-introduction
self.meth()とcls.meth(self)の等価性を明示するみたいな論調も記憶にあるが公式なソースは忘れた ]
[ここ壊れてます]

829 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 14:39:35.59 ID:5JRn7Uik.net]
>>804
perl

830 名前:803 mailto:sage [2019/03/12(火) 14:48:12.21 ID:rdaDEiid.net]
selfに対する直接の説明としてはちょっとアンカーが適切ではないか
https://docs.python.org/ja/3.5/howto/descriptor.html#functions-and-methods
「関数に基づく環境の上に構築」って所がミソやね、後付けと言われる所以

831 名前:デフォルトの名無しさん [2019/03/12(火) 16:34:54.17 ID:8KtfShI4.net]
>>804
tcl



832 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 16:40:24.68 ID:Le2Xhtue.net]
>>797
よくわからないけどありがとうひき肉おじさん

833 名前:デフォルトの名無しさん [2019/03/12(火) 17:17:23.48 ID:8KtfShI4.net]
わからないならレスしないでくださいうざいだけです

834 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:19:11.50 ID:Le2Xhtue.net]
インスタンス作成っていうのはメモリ上に領域を確保する作業ってことでいいんでしょうか。

835 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:21:39.56 ID:zkYMqbGV.net]
なにそれ
他のコード作業だとメモリを使用しないとでもw

836 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 17:23:18.47 ID:zkYMqbGV.net]
クラス定義内に大量の関数定義を入れると、そのクラスがインスタンス化されたときに、インスタンスに自我意識が生まれます

837 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 18:13:57.38 ID:rf03pH6k.net]
俺も3食インスタンスラーメンです

838 名前:デフォルトの名無しさん mailto:sage [2019/03/12(火) 19:11:13.53 ID:qLQHaQxA.net]
selfはあってもなくても、どっちでも
よかったかもしらんが、
クラス外の普通の関数でも、いきなり
クラスのフレンド関数のようにしやすいといった、
モンキーパッチ的な利点もあるし、
一長一短。

839 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 05:29:22.97 ID:Z4mQGBB0.net]
pythonのselfの超簡単なサンプルを教えてください
調べてるんですが、わかりにくくて、、、

840 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 06:11:09.78 ID:nAhixTo8.net]
サンプルって…メソッドならインスタンスを受け取るために必須なだけだ
倣うほどの規範は無いと思うけど、オブジェクト指向が理解できてないの?

841 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:18:13.39 ID:zpkiSS8W.net]
>>817
オブジェクト指向の理解というよりPythonの仕様の気が・・

横なんですけど、例えばあるクラスを継承したクラスがいくつかあって、それぞれで同じメソッドをオーバーライドしている時、Pythonは渡されたインスタンスを見てどのメソッドを呼び出すか決めているんですか?
つまりインスタンスとメソッドは別々に管理されていて、呼び出す時にインスタンスとメソッドは結び付けられるとか。



842 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:28:44.40 ID:Z4mQGBB0.net]
>>817
オブジェクト指向はなんとなく
インスタンスを受け取るというのはよくわからないのですが

843 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 07:44:07.11 ID:zpkiSS8W.net]
>>819
私もです、>>807さんのリンクや後付け・・から思うに、
オブジェクト内にメソッドがあるのではなく、メソッドはオブジェクトの外に関数としてあって、その関数に対して「このオブジェクトのメソッドの様に振る舞え」と指示しているのかな、と感じました。

844 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:42:08.19 ID:Nk0VyZbv.net]
配列hogeを作成し、
print(hoge)を実行した時、[1. 2. 3. 4. 5.]の様に
数字にピリオドがついた時は浮動小数点型の配列なのでしょうか?
浮動小数点型の場合、整数型の配列にする方法はありますでしょうか?

845 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 10:51:02.04 ID:x5gb1xdG.net]
>>821
list(map(int,hoge))

846 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:00:58.72 ID:Nk0VyZbv.net]
>>822
ピリオドが無くなりました!
ありがとうございます

847 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 11:08:04.74 ID:Z4mQGBB0.net]
class Cat(object):
def __init__(self, name, weight):
self.name = name
self.weight = weight
このコードのselfはどういう意味なんでしょうか?
猫というオブジェクトの属性を表現しているクラスのようです

848 名前:デフォルトの名無しさん [2019/03/13(水) 11:19:10.70 ID:Y4yR4bDO.net]
>>798
二項演算ならself使うと分かりにくいのでアリ、アプリカンド/アプリケータなど
self/other派も居るが

有名ライブラリだとmpmathがctx(計算の文脈、精度とか)渡してるね

849 名前:デフォルトの名無しさん [2019/03/13(水) 11:20:56.58 ID:Y4yR4bDO.net]
x/yも見掛けるな
同種同士の同等な二項演算の定義に主体が入り込むのは気持ち悪いと思うよやっぱ

850 名前:デフォルトの名無しさん [2019/03/13(水) 11:34:37.37 ID:imKqJmF7.net]
>>824
Cat(‘neko’, 5) などと書くと__init__が呼び出されてselfには作成されたCatのインスタンスが渡される
つまり
c = Cat(‘neko’, 5)
とした時cとselfは同じものを指す

851 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:31:52.80 ID:Z4mQGBB0.net]
selfの意味がいまいち理解できていないのですが、引数の設定されたクラスや関数自身を表すということですよね
で、self自体を出力してみました
class classname:
def defname(self):
print(self)
s =classname()
s.defname()

<__main__.classname object at 0x03EE2F30>
selfを設定しているのは関数なのですが、これでは関数自身ではなく、クラス自身ではないですか?
また、これはどういったときに役立つのですか?

環境はidleです

>>827
ありがとうございます
読み解いてみます



852 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 12:44:16.23 ID:Ux8DzXrZ.net]
>>828
>引数の設定されたクラスや関数自身を表すということですよね
うん

5ちゃんでは
インデント(連続してる半角スペース)が消えちまうので
めんどうでも全角スペース使って書きなおす(半角スペースを全角スペースに置換でおk)か
1に書いてあるような、ソースコード貼る専用のうpろだにうp

853 名前:デフォルトの名無しさん [2019/03/13(水) 13:38:08.75 ID:imKqJmF7.net]
>>828
メソッドの中から別のメソッドを呼びたい時にselfが無いと詰む

854 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:00:34.67 ID:Ux8DzXrZ.net]
>>828
2系でやったら違う結果になるぞ

855 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 15:57:20.28 ID:nAhixTo8.net]
>>828
はい、いいえ。通常defで定義した関数自身を第1引数が表す事はありませんし
ついでにクラスへ定義した関数は、メンバー関数あるいはメソッドと呼びます
またクラス(型)も渡されていません、それはインスタンス(実体)です
オブジェクトとも呼ばれますけど意味が文脈に左右されるので置いといて
クラスメソッド(@classmethod)と修飾したときは、クラスが渡されます

文字列でいうならクラスはstr、'ABC'など具体的な物がインスタンスに相当し
その長さなどがインスタンスの属性と言えます(Pythonだと関数で取得するが

selfは>>797でも回答されるように他言語の(暗黙的に参照可能な)thisと同等で
その宣言の必要性は>>807に対する>>818>>820の理解…は齟齬が生じる所もあるが
概念的にはメソッドだけども実装的には関数なので、()と呼び出された時ではなく
実体から関数が.で属性参照された時に、結び付けられたメソッドが生成されます

一連のレスからすると、引数が表すものに関数自身(callee)が出てくる辺り
メソッド以前に関数の定義・呼び出し自体の理解も怪しいのではなかろうか?
関数の操作対象として構造物というか実体が第1引数に渡されているのだが…

856 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 16:27:27.93 ID:M+m6pFpm.net]
はい(いいえ)

857 名前:デフォルトの名無しさん [2019/03/13(水) 17:46:31.02 ID:h9UFHds/.net]
そやで、ちゃうで

858 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 17:48:54.93 ID:MhYZY5Aj.net]
はいいいえ

859 名前:デフォルトの名無しさん [2019/03/13(水) 18:46:52.20 ID:gkV5NrkZ.net]
ちゃうちゃうちゃうんちゃう

860 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:03:05.32 ID:jL6M634A.net]
def yes(arg= None):
____print()

861 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 19:58:39.06 ID:26FDLpbf.net]
hoge = "ほげほげ!"
if hoge == "ほげほげ":
print("ほげほげ!)
else:
pinrt("げほげほ!")



862 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:00:19.07 ID:Ux8DzXrZ.net]
>>838
”がたりてない

863 名前:デフォルトの名無しさん [2019/03/13(水) 20:21:08.59 ID:1Wup6Az1.net]
Pythonはswitch文が無いのが不満だったけど辞書使えば同じ様な事が出来ると最近気づいた

一番はswitchが必要になるロジックを組まない事だろうけど

864 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:32:12.62 ID:Z4mQGBB0.net]
↑selfについて回答ありがとうございました

865 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:50.72 ID:Z4mQGBB0.net]
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB

test = className("Hello", "World!")
print(test.str1)
print(test.str2)

まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います

この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?

866 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:34:55.83 ID:Z4mQGBB0.net]
class className():
def __init__(self, strA, strB):
self.str1 = strA
self.str2 = strB

test = className("Hello", "World!")
print(test.str1)
print(test.str2)

まだselfの意味について理解できていないので教えてください
クラスをインスタンス化したときに引数を設定することでinitが呼び出され、hellwとworld引数が、str1とstr2に代入されるということだと思います

この場合のselfはどんな役割をしているのですか?
selfをはずすと動作はしないようです
init関数自身とは?

867 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:41:11.30 ID:Z4mQGBB0.net]
インスタンス変数を使うときにselfをつけることですが、そういうおまじないということですか?

868 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 20:47:03.94 ID:Ux8DzXrZ.net]
>>829を読んでも理解してないということはよくわかった

869 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:14:16.67 ID:nAhixTo8.net]
>>842-843
まず引数を設定しようがしまいがインスタンス化したら初期化のために__init__は呼ばれる
selfはselfを書いた関数自身ではなく、メソッドとして属するクラスのインスタンスを表す
selfから属性参照しなければstr1やstr2はローカル変数になって抜けたら破棄されてしまう

結果としてtestに代入されるインスタンスを参照するために必要だから書く

870 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:16:12.72 ID:ZMFJ1a5n.net]
>>843
俺も初心者だけど、Pythonにはクラスオブジェクトってのがあつて、クラス定義が実行されるとそのクラスオブジェクトってのが作られるらしいぞ。クラス定義が実行させるって何ぞ?と思ったけどそうらしい。

でインスタンスはそのクラスオブジェクトから作られるらしいぞ。
つまりそのinitはコンストラクタというよりクラスからクラスオブジェクトを作るためのinitだったりするかも。
self渡す必要があるってことは、そのinitは他の言語じゃプログラマが意識しない部分の可能性。クラスのインスタンス化の一層下にあるのかな?

871 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:22:48.95 ID:M+m6pFpm.net]
シンタックスは
def self.__init__(strA, strB):
とかではダメだったの?
書いてもないのに第一引数にself入ってくるのと大差なくない?



872 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:27:46.46 ID:ZImJqTUY.net]
>>824
self が付いているのは、インスタンス変数じゃないの?
Ruby では、@ がインスタンス変数

class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end

p Cat.new( "bob", 5 )

# <Cat: @name="bob", @weight=5>

873 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:43:36.51 ID:nAhixTo8.net]
>>848
Pythonに複合文としてのメソッド定義はなく、クラスに書いた関数がメソッドとして扱われる
そのメカニズムはHowToでも記される、参照した属性がクラススコープで定義された関数なら
インスタンスと関数が参照されたバウンドメソッドオブジェクトを返し、__call__が呼ばれる

874 名前:847 mailto:sage [2019/03/13(水) 21:53:09.68 ID:ZImJqTUY.net]
Ruby では、@ がインスタンス変数で、

self は、クラス直下ではクラスを表し、メソッド内では、インスタンスを表す。
コンテキスト(文脈)によって、self の意味は変わる。
また特異クラスも、よく出てくる

class Cat
p self #=> Cat

def initialize( name, weight )
@name = name
@weight = weight

p self #=> <Cat: @name="bob", @weight=5>
end
end

Cat.new( "bob", 5 )

Ruby で、オブジェクト指向・関数型をみっちり学んでから、
Python, JavaScript を学ぶ方がよい

875 名前:デフォルトの名無しさん mailto:sage [2019/03/13(水) 21:55:25.72 ID:bUFEpZHr.net]
>>849>>851
うるっせえな!
スレタイ読めねーのかカス!!
死ね!死んで消えろゴミ!!

876 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:27:13.64 ID:4WTRjlYm.net]
相手にするからつけあがるんだよ

877 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 03:37:18.44 ID:nL4uJ2zh.net]
終わりのないのが『終わり』
それが『RWBY』

878 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:25:07.71 ID:/JPtJCUD.net]
a = 'hoge'
type(a)

これを実行すると<class 'str'>が表示される
これは変数aが指してるオブジェクトの型がstr型という意味でいいんだよね

一方で、文字列はシーケンス型でもあるからインデックスでアクセスしたり、スライスしたり出来る
この文字列がシーケンス型というのはpython上でどうやって確認するんや

879 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 08:34:53.42 ID:lGFaI2Uv.net]
>>855
シーケンス型の実体は存在しない
失敗しないことを天に祈りつつ勇敢にforに投入する、がPythonの思想的には正しい
厳密にやりたいなら型アノテーションでSequenceあるけど、型アノテーションなんか誰も使ってない

880 名前:デフォルトの名無しさん [2019/03/14(木) 10:12:27.31 ID:QThoqyRe.net]
>>855
hasattr(a, ‘__iter__’)
Pythonではシーケンス型の事をiterableなオブジェクトという
forにiterableを渡すと__iter__()が呼ばれるのでこれの有無を確認すれば分かる

881 名前:デフォルトの名無しさん [2019/03/14(木) 10:14:27.51 ID:QThoqyRe.net]
>>855
それとiterableであることとスライスできるのは別の機能
インデックスやスライスは__getitem__()で実装される



882 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:06:23.42 ID:/JPtJCUD.net]
レスありがとう

俺はstr型はシーケンス型を継承してるから、シーケンス型のようにも振る舞うと勝手に思ってたけど違うのね

str型はiterableな属性を持ってるから、for文に渡して繰り返しの処理が出来るというのはわかった

それなら、str型がsequenceableな属性を持ってるからスライスやインデックスのアクセスが出来るというのなら理解できるんだけど、シーケンス型で属性じゃないのよね

なんか混乱してきたわ(´・ω・`)

883 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 11:16:27.87 ID:r+Z4K3kn.net]
>>859
IterableもSequenceと同じく、クラスが満たすべき性質がドキュメント上や型アノテーションで定義されているだけの実体のない型だ
Pythonではそういう実体のない(ドキュメントや型アノテーションにしか登場しない)仮想的な型のことを一般にプロトコルと呼ぶ
Javaのinterfaceに近い概念だが、interfaceとは違ってオブジェクトに付随する型としての実体を持たないという点が異なる

884 名前:デフォルトの名無しさん [2019/03/14(木) 11:26:52.83 ID:RE7f17De.net]
>>859
pythonの場合、forに渡せるとかの機能は単に__xxx__という名前の特殊メソッドが実装されているかどうかで決まる

885 名前:デフォルトの名無しさん [2019/03/14(木) 11:41:55.90 ID:jNBQt8MR.net]
>>860
Pythonにはstr、listというオブジェクトは存在するが、sequence というオブジェクトは存在しない
だが、str 、listどちらもsequence型である

886 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:41:19.77 ID:r+Z4K3kn.net]
>>862
だからそう言ってるつもりだが

887 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 12:47:55.74 ID:YiVNNcx0.net]
じゃあjavaよりgoのが近いんじゃ?

888 名前:デフォルトの名無しさん [2019/03/14(木) 13:23:53.72 ID:jNBQt8MR.net]
>>863
適当にアンカーつけてレスしたんよ
なんかごめんな

889 名前:847 mailto:sage [2019/03/14(木) 13:28:05.85 ID:tsxAqnNH.net]
参考までに、Ruby では、Array -> Enumerable (子 -> 親)

自クラスに、each を定義して、Enumerable モジュールをinclude すれば、
Enumerable のすべてのメソッドが使える(mix-in)(内部イテレータ)

Enumerable とは繰り返しを行なうクラスのための Mix-in。
このモジュールの メソッドは全て、eachを用いて定義されているので、
インクルード するクラスには、eachが定義されていなければなりません

each を定義しない場合は、Enumerator というラッパークラスで、Enumerable のメソッドが使える(外部イテレータ)

外部イテレータは、Enumerator.next, rewind などで繰り返しを進めたり・巻き戻したり、制御できる

mix-in とは継承ではないけど、呼び出される関数探索の継承チェーンに割り込む機能。
Java のinterface みたいなもの。
Duck Typing と言って、そのメソッドに反応するかどうか

子 -> mix-in -> 親

890 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 13:31:58.94 ID:r+Z4K3kn.net]
>>864
goのは型が明示的にinterfaceを実装していなくても必要なメソッドがあれば受け入れるstructual subtypingという考え方
Pythonは duck typing なので本来はそれに近いのだが、型ヒントがstructual subtypingではなく明示的にクラスがインターフェイスを継承する必要がある
よってpythonにおいては型ヒントを考慮すればgoよりJavaに近い

891 名前:デフォルトの名無しさん [2019/03/14(木) 13:52:11.73 ID:q8OuUl64.net]
rubyをdisる訳じゃないけど
初心者でpython学習し始めたところなら
rubyと比べない方が良いよ
覚えることが増えるだけでメリット無いから



892 名前:デフォルトの名無しさん [2019/03/14(木) 13:56:28.26 ID:1qhaQ5mP.net]
これから試験受けるんだが落ちそう

893 名前:デフォルトの名無しさん [2019/03/14(木) 15:34:12.56 ID:1qhaQ5mP.net]
うかったんご

894 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:11:42.58 ID:NTHRrjbg.net]
おめでと

895 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 16:56:04.19 ID:lcXwIoo8.net]
型アノテーションは、関数の出入り口と、
なんの型が分かりにくいローカル変数には
つける。

付けることで補完が強化される場合と、
しばしば補完を逆に妨げる場合があるので、
うまく折り合いを付けて付記する感じやな。

896 名前:デフォルトの名無しさん [2019/03/14(木) 18:13:57.50 ID:1qhaQ5mP.net]
あざます

897 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 18:55:16.95 ID:cYjqrp0Z.net]
>>846
ありがとうございました

898 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:44:05.42 ID:prpM2HGX.net]
最適化には何の関係もないのよね型指定

899 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 19:58:50.87 ID:r+Z4K3kn.net]
>>875
むしろソースコードのパースの負荷が増えて僅かに遅くなるだろうな

900 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:29:10.91 ID:DYXE/n/d.net]
Ruby ←まず名前がダサい
Python ←カッコイイ

901 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:37:41.09 ID:Cgb2oqJn.net]
pythonだけ見るとカッコイイけど元はモンティ・パイソンなんだよな



902 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:48:50.71 ID:nL4uJ2zh.net]
st.cdjapan.co.jp/pictures/l/04/02/NEOGDS-244522.jpg

903 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 21:50:35.71 ID:nL4uJ2zh.net]
https://images.idgesg.net/images/article/2018/07/python-100763894-large.jpg

904 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 08:57:12.14 ID:Oo+XcCcU.net]
pythonのコーディングに少しづつ慣れてきたせいで,のあとに半角スペースを挿入してしまうクセが付いてしまいました
簡単なテストのためダミーでcsv作る際に,後ろにに半角スペース入れるせいでcsvDictReaderで読んでkey指定したときにkeyErrorが出てしまい数十分ですが悩んでしまいました
今後はskipinitialspaceをtrueにして使います
ありがとうございました

905 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 09:55:37.05 ID:LNWMUSed.net]
pythonに限らずほぼ全てのプログラミング言語でそういう癖が付くかと思うしそもそも欧米圏の言語でも全てそうだがお前何か言いがかりでも付けた

906 名前:いの? []
[ここ壊れてます]

907 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:49:50.87 ID:zt0rtKct.net]
python はビジュアル系スタジオみたいな統合環境は無いの?

908 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 12:51:57.85 ID:EeWTkT4V.net]
ビジュアル系スタジオちょっと好き

909 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:13:04.71 ID:88mLDigX.net]
>>883 あんたも好きね。 チャーミングなおっぱいがあるよ。 PyCharm

910 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:25:05.27 ID:1iRTQcZ+.net]
pycharm ceがタダで使えるのは助かるなぁ

911 名前:デフォルトの名無しさん [2019/03/15(金) 14:18:08.50 ID:SEjqglYP.net]
最新鋭の望遠鏡で使われてる
タイパンがカッコ良かった
UKシュミット望遠鏡自体は数十年の年季もんだけど
タイパン付けると最新鋭に変身してた



912 名前:デフォルトの名無しさん [2019/03/15(金) 14:21:07.58 ID:SEjqglYP.net]
これね
https://www.youtube.com/watch?v=xrumMTsFkPY

913 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:27:46.26 ID:HkVkKV93.net]
オブジェクトをフォルダと考えるのは間違いなのですか

914 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:38:30.61 ID:PFD13TRH.net]
考えてもいいぜ

915 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 18:58:10.65 ID:8Z2zh4Or.net]
Python初心者です。
scikit-learnで学習した学習結果を他の言語(C#)で利用したいと考えてます。
が、どうしたらいいのかわかりません。
どなたかご教授願います。

916 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:30:46.48 ID:/jMwhNVt.net]
最終的に何をしたいのかをもう少し具体的に書いたほうが良いと思う
個人的に言語は統一した方が楽と思うよ

917 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 23:48:43.20 ID:8Z2zh4Or.net]
scikit-learnでじゃんけんの人間の癖を学習させて、
そこそこの制度で予想できるようになったので、それをスマホアプリとして公開したいという欲が湧いてきました。
Pythonではスマホアプリの開発は難しそうなのでその学習結果をC#に移植したいと考えてるのですが、
そういう事は可能ですか?

918 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 00:53:29.77 ID:lomlnXfv.net]
!?

919 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 06:12:09.99 ID:MtyeuN+5.net]
可能
pythonに不可能は無い

920 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 10:56:59.10 ID:Eza8KstC.net]
>>893 iOS なら、Pythonista で簡単にアプリを作れるぞ。
Androidでもできるだろ。

そもそもiOSだと、C#じゃなくObjective-C やSwift になるからかなり垣根は高いぞ。

因みにPythonista からはObjective-C のライブラリを使うこともできるし自由に呼び出すこともできる。

なお、scikit-learn そのものをPythonistaで使うことはできない。 numpy は使えるが、scipy がインストールできない。

921 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:10:13.00 ID:INaBYg0f.net]
いやC#つってんだからUnityで作るんだろJK
あれゲーム作るの簡単だからいいよな〜



922 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:18:22.65 ID:mXGVm9Ao.net]
>>896
ありがとうございます。
Androidアプリを作られればIOSには対応できなくてもよいと考えてます。
Androidでscikit-learnを使うのは難しいでしょうか?

923 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:20:10.33 ID:mXGVm9Ao.net]
Unityって物理エンジンですよね?
scikit-learnのように機械学習もできるのですか?

924 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:31:31.62 ID:Slvebd/s.net]
学習機能は通信を介したサービスとして提供したら
scikit-learnはサーバー側で動いてりゃ良いんだし

925 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:44:44.11 ID:+8YpvTs6.net]
>>900
そっちの方が良いと思う
機械学習の多言語移植は考えただけで血の気が引く
kerasならまだしも、scikit-learnは依存地獄が酷かった。今は大分マシ担ってるとは思うけど

926 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:48:05.65 ID:d/4KgbH7.net]
じゃんけんするのにサーバーと通信するのは草
でもいまどきそんなもんなのか?

927 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:52:33.53 ID:+8YpvTs6.net]
さすがに半分テストアプリだと思うけど、既に超敷居が高い

928 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:53:42.85 ID:mXGVm9Ao.net]
機械学習の移植は難しいものなんですね。
サーバーにPythonを置けばいいのですね。
ありがとうございます。

929 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 11:58:21.60 ID:eO5a7zjy.net]
学習からC#でやり直すわけにはいかないの?
オブジェクト指向の機械学習ライブラリなんて言語によらず使い方似てるからそっちのが楽じゃない?

930 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:01:14.33 ID:eO5a7zjy.net]
「Unity 機械学習」
でググってもいろいろでてくるし

931 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:05:08.07 ID:mXGVm9Ao.net]
C#で機械学習ですか!
scikit-learnがすごく簡単だったのでscikit-learnで出来たらと考えてました。
使い方が似ているのならその選択も検討してみます。
ありがとうございます。



932 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:12:34.74 ID:Eza8KstC.net]
せっかくPython の勉強を始めたんだから、Python でゲーム開発までやれば良いのに、じゃんけんアプリなんて簡単でしょ。
どんなPython ゲームライブラリが適切なのかは知らないけど。

933 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:14:27.10 ID:SlIDoTSl.net]
selfについて何度も聞いてるカスなんですが、まだ意味が理解できてません
このコードの場合どういった意味を持ちますか?
インスタンス自身と言われてもイメージがつきません
記憶領域という説明も見たことがありますが、これはどういう意味でしょうか

codepad.org/rOzHcmIX
class apple:
def __init__(self,price,weight):
self.p = price
self.w = weight
def print(self):
print(self.p)
print(self.w)

s = apple("100yen","300g")
s2 = apple("1000yen","1000g")
s.print()
s2.print()

934 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:15:53.61 ID:SlIDoTSl.net]
訂正です
×このコードの場合どういった意味を持ちますか?
○このコードのようにselfを使うメリットはなんですか?

935 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:24:28.76 ID:Eza8KstC.net]
Android ならQpython にはKivy がバンドルされてるらしいし、kivy で良いんじゃないの?

936 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:29:58.42 ID:+8YpvTs6.net]
>>909
コードが変なので修正した
codepad.org/L0lJBrzg

メモリ上のデータをイメージできれば簡単に理解できるんだけどね
インスタンスとか言っても逆に分からんだろうな
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/C++2/09/09-02.html
cpp.aquariuscode.com/class-memory-layout

937 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:38:34.92 ID:mXGVm9Ao.net]
>>908
Pythonは機械学習やディープラーニングを始めたくて最近勉強し始めました。
勉強してくうちにアプリを公開したいと思うようになった次第ですw
GUIはC#の方が簡単そうなので2つの言語をうまく連携できればと思ったのですが、
難しいようですね。

もちろんPythonはこれからも使いたいと思います!

938 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 12:58:16.11 ID:Cc4OYSLe.net]
>>909
まず自分でクラス書く前にライブラリでクラス使ってみたらわかるだろ

pandasのチュートリアルとか何でもいいけどインスタンス作ってメソッド使ってインスタンス変数参照したらself何なのかも見えてくる メモリ上の何とかなんか意識しなくていい

939 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 13:11:48.23 ID:eO5a7zjy.net]
「入門python3」を一冊買ってやろう。

940 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:05:24.13 ID:fe/BGgDT.net]
vscodeとintellijのpython機能で試したのですが
awsのsdk boto3でインスタンス化したクライアントに対してオートコンプリートを働くようにするのってどうしたらよいでしょうか?
以下のようにして変数cを作っても、変数cをBaseClient型としか認識してくれないので、s3関連のメソッドがオートコンプリートで出てきてくれません。
c = boto3.client('s3')

もちろん実行時はちゃんとs3の型になるのでコードを動かす事は出来るのですが、オートコンプリート無しはちょっときついので、なんとかして出す方法があれば教えてください。

941 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:30:45.43 ID:SlIDoTSl.net]
>>914
ライブラリでクラスを書くとはなんのことですか?
>>912
c++がわかりません
selfはメモリ領域を確保するために必要になるもの、という認識でいいんでしょうか?おそらくインスタンスを作った時点でメモリが確保されるのかと思いますが。



942 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:36:03.43 ID:YxxaJZky.net]
>>916
型アノテーションで変数の型を明示的に指定する

943 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 18:53:42.59 ID:+8YpvTs6.net]
>>917
・インスタンスを作成
・メモリ領域を確保
・self=インスタンス
この辺はもう全部イコールで考えても構わない

例外的にstaticやglobalでインスタンス外にメモリ領域を確保することも出来るけど

図で言うとこんな感じ
https://i.imgur.com/gNRp6HQ.png

944 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:28:51.03 ID:sQCNGdE3.net]
>>917
インスタンスを作った時点でメモリが確保は良い。でも確保にselfは関係ない
内部だと__init__より前に__new__が呼び出され、そこでメモリ確保が行われる
語弊を恐れずに言ってしまえば、selfはそのメモリがどこか位置を示すものだ

メリットがどうとかじゃない、sとs2は同じ型だが別物だろう、それを区別するために必要なんだ

945 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 19:33:23.24 ID:1feDyboY.net]
>>919
「のタイミング!」
ですか?

946 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:16:22.51 ID:SlIDoTSl.net]
>>919
>>920
ありがとうございます
あれ?これってもしかしてポインタというやつなんですか?pythonの場合そういった呼ばれ方は見たことがありませんが
https://wa3.i-3-i.info/word12815.html

947 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:31:38.84 ID:INaBYg0f.net]
山椒

948 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:47:12.09 ID:+8YpvTs6.net]
>>922
似たようなもんで「参照」

ポインタと参照の違い
https://qiita.com/agate-pris/items/05948b7d33f3e88b8967
cocodrips.hateblo.jp/entry/2015/12/08/221722

メモリ上にインスタンスが展開されてるイメージができれば大体ok

949 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:04:48.14 ID:/h3gEsxd.net]
C言語使わない人にその教え方はどうなのよ。悪いことは言わないから「入門python3」を買って一通りやろう。

950 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 22:11:31.40 ID:431M+yCA.net]
入門python3ってあんまりレビューが良くないね

951 名前:847 [2019/03/16(土) 23:16:52.98 ID:1E15fsAJ.net]
インスタンスや、self がわからないの?
オブジェクト指向の基本だよ

self は、そのインスタンスを指す。
Ruby では、

class Cat
def initialize( name, weight )
@name = name
@weight = weight
end
end

p bob = Cat.new( "bob", 5 )
p alice = Cat.new( "alice", 4 )

new で、Cat というひな形から、各インスタンスを作る(実体化)

bob は、<Cat: @name="bob", @weight=5>
alice は、<Cat: @name="alice", @weight=4>

Rubyの、@name = name が、Python では、self.name = name になる。
Rubyではインスタンス変数は、@ で表すけど、pythonではself を付ける

インスタンス変数とは、各インスタンスで異なる部分。
一方、クラス変数とは、そのクラス(すべてのインスタンス)で共通の部分。

Rubyでは一々、selfを付けなくても良いように、Rubyの実装を、かなり頑張って作っている。
self.name よりも、@name の方がわかりやすいから!

オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できるから



952 名前:デフォルトの名無しさん [2019/03/16(土) 23:27:14.53 ID:DylECkfT.net]
>>927
> self.name よりも、@name の方がわかりやすいから!
アピールポイントそれだけ?
@がメンバ変数を表すなんて知らなきゃ分からんし、直感でも何となく察せるself.〜の方が分かりやすいと思うが

953 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:28:24.96 ID:1G1aklbm.net]
自分もPython初心者だけど
ttps://www.python-izm.com

ここのサイトめちゃくちゃわかり易かったので載せときたす。

954 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:35:31.32 ID:8PxPizsB.net]
>>927
さすがクソ記号言語perlの末裔w
一生記号暗記してろ。
そして死ね。

955 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 00:17:39.16 ID:oRKycfKe.net]
>>927
なんでJavaないの? 理解できなかったの?

956 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 01:42:26.25 ID:ttbbgHOa.net]
chromeの拡張機能を自動操作することは可能ですか?

957 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:01:28.71 ID:QLspzkYx.net]
>>937 ちらっとのぞいてみたが、目次が良くないね。
最初から順を追って進めて行く人にとっては良いかもしれないけど。

958 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:09.07 ID:nMZPqZIX.net]
937に期待

959 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 02:05:36.23 ID:pyRBRMBz.net]
>>926
どこのレビュー?Amazon見る限りは良さそうだけど…

960 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 05:27:50.39 ID:nAjwMdDd.net]
>>924
ありがとう

961 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:33:20.83 ID:nAjwMdDd.net]
https://wa3.i-3-i.info/word16070.html
こういう説明がわかりやすいのに、、、



962 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:39:55.25 ID:nAjwMdDd.net]
変数がメモリ上にあって、その変数の場所を渡すのが参照わたし=self
ということでいいんですか?

963 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:24:23.53 ID:HhaziKqA.net]
参照渡しがどうこうはとりあえず忘れろ
今までの流れには全く関係ないから

964 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:25:15.86 ID:HhaziKqA.net]
今までの流れってのはselfの話な

965 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:37:05.58 ID:Udd8jK7+.net]
>>935
書き方が悪かったわ
完全な初心者にとっては難しくてレビューが良くないね

966 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:41:05.15 ID:nAjwMdDd.net]
>>939
えっ?関係ないのですか、、、

967 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:18:35.50 ID:oeP02mQD.net]
Pythonではすべてが値渡しだ
そしてすべての値が所謂参照型だってだけ

968 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:41:11.52 ID:R43k4iG5.net]
内部的に参照渡しみたいなもんなんだからメモリの概念教えないと永久に理解できなく内科?

969 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:57:02.77 ID:X1cUtWYO.net]
参照渡しってどこが

970 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:00:59.08 ID:X1cUtWYO.net]
参照渡しについて
C#のrefみたいなのを参照渡しと呼ぶ勢と
C++のhoge&みたいなのを参照渡しと呼ぶ勢がいるので
ややこしい

971 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:08:17.15 ID:iuUxAYpH.net]
一子相伝究極奥義「参照渡し」



972 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:11:50.92 ID:Udd8jK7+.net]
値渡しと参照渡しと参照の値渡しがあるんだっけ

973 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:12:20.76 ID:nAjwMdDd.net]
>>943
値渡しということはコピーということですかね

974 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:14:55.90 ID:7j/Zhhp5.net]
大地参照も変換できない糞スマホの糞IME

975 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:15:53.60 ID:vfP8HMqf.net]
大地讃頌

976 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:21:40.62 ID:XvGPMByn.net]
>>946
C#のrefとC++のhoge&はどちらも変数のエイリアスを渡すから一緒
紛らわしいのは「参照の値渡し」

977 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 15:27:46.05 ID:9wVKFPUf.net]
>>937-938
いやさ、記憶領域の話をし出すから皆メモリの話をした訳だけど
ポインタとか言い出すと、Python上にはポインタは無いけど
CPython等の実装は変数が全てポインタで実体に対する参照なの

参照渡しというと普通は変数に対する参照を言うので関係ないし
変数が入れ物とはC言語などのスタック変数を前提としてしまってる

そもそも実装以前に、OOPどころか構造体的な概念も分かってないのでは?

978 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:00:19.80 ID:oeP02mQD.net]
>>938
こういう簡単なクラスで考えてみる

class MyClass:
  def __init__(self, name):
    self.name = name

  def getname(self):
    return self.name

コンストラクタで名前を受け取って、自身のnameプロパティにセットする
getnameメソッドでは自身の名前を返す簡単なクラス

このクラスの使い方は以下

a = MyClass("John")
a.getname() // 出力 'John'

ただしこういう風にも書ける

a = MyClass("John")
MyClass.getname(a) // 出力 'John'

Pythonのインスタンスメソッドは単なる関数もしくはスタティックメソッドみたいなものだということがわかる
a.getname() は暗黙的に MyClass.getname(a) に置き換えられてると考えてもいい

979 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:01:31.22 ID:oeP02mQD.net]
>>938
さらにselfというものがわかりやすいようにこのクラスを普通の関数と辞書型で再現してみる

def MyClass(name):
  self = {}
  __init__(self, name)
  return self

def __init__(self, name):
  self["name"] = name

def getname(self):
  return self["name"]


a = MyClass("John")
getname(a) // 出力 'John'

これでだいたい再現できる
何が言いたいかというとMyClass()という関数が空のインスタンス(ここでは辞書だが)を作成して__init__に引数として渡している
たぶんPythonのクラスでも暗黙的にMyClass()という関数が生成されて間接的に__init__を呼び出している
つまりself(=MyClassのインスタンス)というのは暗黙的に作られたMyClass()関数内で作られているオブジェクトだと考えればいい
Pythonほとんどやったことないから想像で適当に言ってるだけだけどな

980 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 19:53:26.49 ID:UUXyH29G.net]
>>954
self.name = name
部分はself変数にnameプロパティがついている状態なんですか?
nameのほうが変数名かとおもっていましたが
self.nameとすることでnameプロパティを定義している という感じですかね
なんのためにあるのかわからないですが

981 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 21:13:22.59 ID:pWnkPEfA.net]
>>955
デタラメな回答するの辞めーや



982 名前:デフォルトの名無しさん [2019/03/17(日) 21:52:19.70 ID:oeP02mQD.net]
>>957
詳しいなら教えてくれ

983 名前:847 mailto:sage [2019/03/17(日) 22:22:14.14 ID:QeX4wN+m.net]
self.name = name

Ruby では、@ がインスタンス変数です。
@name = name

インスタンスや、インスタンス変数は、オブジェクト指向の基礎。
クラスはひな形で、実体化するには、個々のインスタンスを作らないといけない

これがわからないのなら、Rubyをみっちり勉強した方がよい。
Python から始めるのは無理

オブジェクト指向・関数型は、Rubyで学んだ方がよい。
Python, JavaScript, Kotlin にも応用できる

984 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:28:34.62 ID:Ea7K77ki.net]
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )

ちなみにPython:
def add(a, b):
return a + b

def opTwo(a, b, func):
return func(a, b)

print(opTwo(1, 2, add))
=> 3

ちなみにJavascript:
function add(a, b) {
return a + b;
}
function opTwo(a, b, func) {
return func(a, b);
}
console.log(opTwo(1, 2, add))
=> 3

985 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:29:45.96 ID:Ea7K77ki.net]
def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww

986 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:31:54.89 ID:Ea7K77ki.net]
Ruby 初心者スレッド Part 64
mevius.5ch.net/test/read.cgi/tech/1535797516/658
658 デフォルトの名無しさん sage 2018/10/15(月) 10:09:06.69 ID:r7U1tD/N
擬似コードがそのまま動くのはPythonじゃね
関数型言語なら演算子がそのまま第一級関数であることとカリー化を使って data |> select ((>) 0) みたいに書けたりするね
ガチ関数型でなくてもまともなラムダがある言語なら select(x => x > 0) と遥かに見通し良く書ける
Rubyの &:: は極めて驚きが大きく醜悪な機能の一つだね

987 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:33:19.32 ID:Ea7K77ki.net]
クロージャって何がいいの? [転載禁止]©2ch.net
mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が

> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。

と語っているね


www.atmarkit.co.jp/news/200907/24/ruby.html

988 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:50:20.65 ID:vwxCn2J+.net]
必死すぎるw

989 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:58:46.72 ID:Ea7K77ki.net]
Rubyを長く使い続けることを僕がお薦めしない理由を説明します - YouTube
https://www.youtube.com/watch?v=2wfQ3iG08UI

990 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:59:12.36 ID:Ea7K77ki.net]
「Railsは終わった」と言われる理由
https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61

991 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:07:59.19 ID:Ea7K77ki.net]
GitHub、2018年の人気プログラミング言語を概観できる「The State of the Octoverse」を発表
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/

日本人が作ったプログラミング言語がランクイン!
誇らしい!!



992 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:13:16.15 ID:Ea7K77ki.net]
GitHubのRails離れと、迫りくるMicrosoft
https://yakst.com/ja/posts/5290

993 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:20:10.39 ID:Ea7K77ki.net]
世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さあ何なのか!?日本の埃、Rubyかな?

994 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:23:45.80 ID:Ea7K77ki.net]
Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/

>日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。


https://findy-code.io/engineer-lab/github-programming-language-ranking
↑「衰退するかもしれない言語」のRubyのグラフ凄すぎwww

995 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:24:59.24 ID:Ea7K77ki.net]
https://i.imgur.com/0YbMsqj.jpg

996 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:39:56.92 ID:vwxCn2J+.net]
この調子で1000まで埋めてくれwww

997 名前:956 mailto:sage [2019/03/18(月) 00:32:48.76 ID:QSJWNz5N.net]
なんとなくわかったわ
__new__でインスタンス生成して__init__で初期化されてるのはいいとして
それらの関数がどこから呼ばれるかが分からなかったけど
type.__call__(cls, *args, **kwarg)から呼ばれてるんだな

class MyClass:
  def __new__(cls, name):
    return object.__new__(cls)

  def __init__(self, name):
    self.name = name

  def getname(self):
    return self.name

a = MyClass("Mike") # これは
a = type.__call__(MyClass, "Mike") # これの糖衣構文と

type.__call__はざっくり以下のような実装らしい

class type:
def __call__(cls, *args, **kwarg):
obj = cls.__new__(cls, *args, **kwargs)
obj.__init__(*args, **kwargs)
return obj

一番元になるオブジェクトを生成するであろうobject.__new__()がどういう風に実装されてるのかは分からなかった
Cで実装されてるらしい

998 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 00:34:09.24 ID:GvvOJgHh.net]
破産者マップに出てるぞお前さん

999 名前:デフォルトの名無しさん [2019/03/18(月) 01:21:38.93 ID:HYm9qYKJ.net]
Rubyに興味も失ってたが、調べたらRuby3から頑張るっぽいね。
JITは今現在はオンにしてもRails遅くなるっぽい。
型検査はツールの提供と精度向上の方針。

“Rubyは死んだ”のか?
まつもとゆきひろ氏が語る「プログラミング言語サバイバル」とRubyの未来 - Part1
https://logmi.jp/tech/articles/320752

かと思えば、こんな深刻な記事も。

想定してなかったくらい大規模な開発に使われて、つぎはぎ継ぎ接ぎで開発して行ったら行き詰まったって話になるのかな?
Pythonも、同類になる可能性はあるが時期が早く来たのはRubyだったと。

Rubyは滅びゆく言語なのか?
https://qiita.com/baban/items/a5a9819a4020f92e27e2

1000 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:32:41.95 ID:TDQy6vox.net]
Redmonk言語ランキングがKotlinとSwiftの急上昇を明らかにした
https://www.infoq.com/jp/news/2018/05/RedmonkLanguageRankingsQ118

> Rubyは5位から8位に下がりはしたが、他のトップ10言語はほとんど同じ順位にとどまっている。

独り負けwwww

1001 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:33:16.80 ID:TDQy6vox.net]
日本生まれのクソ言語Ruby『最も嫌われているプログラミング言語』堂々ランクイン!!
https://japan.zdnet.com/article/35109803/

おめでとうクソ言語!🎊
おめでとう日本の恥!!www
https://japan.zdnet.com/storage/2017/11/02/e28392adae17a191547db083133339eb/171106-zdnet-1-01-languages-1-900x675.png



1002 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:56:22.04 ID:TDQy6vox.net]
Ruby is dead.
https://rubyisdead.science/

1003 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 02:01:08.34 ID:TDQy6vox.net]
Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察
https://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/

1004 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 07:48:49.96 ID:C9BGuQ42.net]
self.name = name
みたいな変数は
self変数にnameプロパティを定義しているということなんですか?
init内に書かれる事が多いですが、プロパティはどのような使われ方をするのでしょうか

1005 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 11:21:28.47 ID:vyVf53oQ.net]
Pythonでアニメーションムビーって作れますか?
教えてエロい人

1006 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 11:42:29.94 ID:GvvOJgHh.net]
出来るよ
このポリゴンアニメもPython で組まれている

https://youtu.be/lU-stMiFESQ

1007 名前:デフォルトの名無しさん [2019/03/18(月) 13:43:14.45 ID:+MPRGO7m.net]
くだすれPython(超初心者用) その42【Ruby禁止】
mevius.5ch.net/test/read.cgi/tech/1552884175/

1008 名前:デフォルトの名無しさん [2019/03/18(月) 13:50:09.52 ID:HYm9qYKJ.net]


1009 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 14:39:32.03 ID:3zrU7iIi.net]
Pythonなら音声合成も機械学習でできるよ!

1010 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 14:59:40.24 ID:vyVf53oQ.net]
>>982
ありがとうエロい人
よろしければおすすめのライブラリ教えてください

1011 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 16:32:01.12 ID:8JXxWTh8.net]
Pythonなら毛糸洗いに自信が持てるよ!



1012 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:23:25.93 ID:LuaAQ2Ag.net]
>>987
それはボールドだろ

1013 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:23:44.99 ID:LuaAQ2Ag.net]
お、IDがlua永久にアゲだ

1014 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 17:33:08.14 ID:1Gq1ACAN.net]
Python(Jupyter)で、複数の行をループさせることって出来ますか?
やりたいことはIn[5]〜In[8]を10回繰り返す、みたいな感じです

1015 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:07:37.57 ID:C9BGuQ42.net]
selfわかんないよぉ(´;ω;`)

1016 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:25:52.07 ID:3zrU7iIi.net]
>>991

class className():
def methodName(self):
print("Hello World!")

instance = className()
instance.methodName()

1017 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:30:41.38 ID:jiPExRTx.net]
>>990
forループとかwhileループをさがしてるのか?

1018 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:34:08.67 ID:C9BGuQ42.net]
self.name=nameみたいなやつは、変数名はnameなのですが、selfなのですか?

1019 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:36:17.92 ID:C9BGuQ42.net]
>>992
ですからこれ、selfはなんの役割をしているのですか?

1020 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 20:41:13.50 ID:jiPExRTx.net]
>>994
そうだな

>>995
この()の中のselfについては深く考えたことないなー
クラス化した場合は 必ず1ツ目の引数self ってのは なんかもう
条件の後とかに「:」つけるのと一緒な感覚だなー

1021 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:09:20.45 ID:GvvOJgHh.net]
>>99



1022 名前:5


class className():
def methodName(zelf):
print("Hello World!")

instance = className()
instance.methodName()


でも動くぞ
[]
[ここ壊れてます]

1023 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:17:48.43 ID:GvvOJgHh.net]
よって、

self =zelf


(証明おわり)

1024 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 21:36:51.06 ID:C9BGuQ42.net]
↑ありがつ

1025 名前:デフォルトの名無しさん [2019/03/18(月) 23:31:38.66 ID:+MPRGO7m.net]
>>991
考えるな感じるんだ

1026 名前:847 mailto:sage [2019/03/18(月) 23:42:48.23 ID:e1XJ4IHa.net]
self, this は、そのインスタンスを指す。
オブジェクト指向の基本だろ

それもわからない人には、Python は無理!
勉強の順番を変えてください!

Ruby でみっちり、オブジェクト指向・関数型を学んでください!
その後に、Python, JavaScript, Kotlin に応用してください!

1027 名前:デフォルトの名無しさん [2019/03/18(月) 23:44:39.51 ID:+omKGkAV.net]
これ、スコープとかnamespaceをわかっとらん

1028 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 42日 2時間 22分 29秒

1029 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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