暇つぶし2chat TECH
- 暇つぶし2ch100:工学部生
19/02/12 13:45:24.25 rvJokjFw.net
>>93
+"\n"をそのあとに付けたらつまくいきました。
[]は無駄なようですね。ありがとうございます。

101:デフォルトの名無しさん
19/02/12 15:06:06.19 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:デフォルトの名無しさん
19/02/12 15:09:35.02 JhZhtSe3.net
独学プログラマー読んでるけどtwitterで翻訳者がつぶやいててうざい
たかが翻訳しただけなのにまるでじぶんが書いたみたいに反応してる
勘違いしてるよね
翻訳がすごいから売れたんじゃないの
勘違い翻訳者うざすぎー

103:工学部生
19/02/12 15:52:05.30 rvJokjFw.net
>>97
貴重なアドバイスありがとうございます。

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

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

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

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

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

109:デフォルトの名無しさん
19/02/13 09:52:03.63 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:デフォルトの名無しさん
19/02/13 10:19:47.85 FsWI4s/7.net
pythonの仕様
このあたりを参照するといいよ。
URLリンク(d.hatena.ne.jp)

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

112:デフォルトの名無しさん
19/02/13 11:33:48.61 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:デフォルトの名無しさん
19/02/13 11:36:12.68 0cDEleYh.net
もし先頭だけをprintしたいのなら
print(test[0]) または、print(test[0:1])

114:デフォルトの名無しさん
19/02/13 11:36:56.12 N2s3vUnw.net



115:Xライスの開始値は含めるけど終了値は含めないという指定は、最初違和感あったな



116:デフォルトの名無しさん
19/02/13 12:44:57.49 pbkwul76.net
>>110
俺もいまだに違和感ある
a=['お','ま','ん','こ']でa[0,2]だと['お','ま','ん']にして欲しいよな。
確か、数直線で考えるらしい.....
0 1 2 3 4
+ー+ー+ー+ー+
 お ま ん こ
で、[0:4]だと「お〜こ」になるとのことだった。でもa[4]はエラー....

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

118:デフォルトの名無しさん
19/02/13 15:03:23.54 kDMwAzYp.net
IoTやるのがPythonなのって理由ある?
Cじゃダメなのv

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

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

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

122:デフォルトの名無しさん
19/02/13 16:03:01.37 hD8BupCP.net
>>116
トッポい著者だなぁw

123:デフォルトの名無しさん
19/02/13 16:03:03.58 0cDEleYh.net
>>113
初心者からプロまで使える科学技術計算の新定番
IoT時代にPythonをオススメする理由
URLリンク(interface.cqpub.co.jp)
PythonだけではIoTできない理由 - ウィリアムのいたずらの開発日記
URLリンク(blog.goo.ne.jp)
<<しかし pythonでも Cythonを使えばCでコンパイルしてくれる
<<Raspberry Pi なら素のpython も使えるしセンサーもアクセスできる
PICと楽しむ Raspberry Pi活用ガイドブック
URLリンク(gihyo.jp)
最低限必要なLinux・Pythonの知識まで収録しています。
IoTを使って畑を監視する
URLリンク(tech.recruit-mp.co.jp)
TwilioとAWS IoTボタンを使った子供のトイレ訓練
URLリンク(postd.cc)
この場合 IOSやAndroidから電話をかけてボタンを操作している

124:デフォルトの名無しさん
19/02/13 16:21:24.81 kpYtZ0RT.net
>>113
AIカーが来てる! 自動運転でラジコンカーを走らせよう!
URLリンク(weekly.ascii.jp)
おもちゃの自動車がAI で動く時代。
これもRaspberry Pi とpython で学習して自動運転してる。
AI と言ったらpython

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

126:デフォルトの名無しさん
19/02/13 23:08:42.70 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:デフォルトの名無しさん
19/02/13 23:35:56.49 Fldw1X0G.net
:は演算子じゃなくて区切りだろ
そんなもん実験すればわかる

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

129:デフォルトの名無しさん
19/02/13 23:49:32.46 jwc/pNVH.net
slice notation スライム記法

130:デフォルトの名無しさん
19/02/13 23:51:50.74 os3OGdBG.net
リファレンスではデリミタとされる、Pythonでは代入が文なのでそれもかな
URLリンク(docs.python.jp)

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

132:デフォルトの名無しさん
19/02/14 00:02:35.62 xnVOqrv0.net
スライスって言葉がすぐに出てこない、当然なが関数のslice()も出ないって
超初心者の俺ららしいよな
URLリンク(stackoverflow.com)

133:デフォルトの名無しさん
19/02/14 00:18:16.01 RyxU72PZ.net
いわゆるペンタックスソルトってやつか。

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

135:デフォルトの名無しさん
19/02/14 09:03:20.99 wJ5vrran.net
シンタックスシュガー
糖 衣 構 文って奴か
シンタックスシュガー
糖 衣 構 文を使うと超初心者にはわかりやすくなるけど
シンタックスシュガー
糖 衣 構 文の裏側で実際どのような挙動をしているのかわかりにくくなるのが欠点だよな
シンタックスシュガー
糖 衣 構 文はかしこく使っていきたいと思った

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

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

138:デフォルトの名無しさん
19/02/14 23:06:52.19 Qyh3gh4h.net
初めて見た時は驚いた

139:デフォルトの名無しさん
19/02/15 04:14:44.86 aMcTHSTs.net
A=B=C=0
みたいな

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

141:デフォルトの名無しさん
19/02/15 12:13:07.08 vj4wf1O1.net
Python はとっつきやすいが、奥が深いな。 一通りの文法をある程度使いこなせるようになるまでどのくらいの時間がかかるんだろう。
2~3か月と書いてるサイトが多い様だが
例えば、
Python チュートリアル (原文の電子書籍版は120ページだった)
URLリンク(docs.python.jp)
の全て
Python 標準ライブラリ 
URLリンク(docs.python.jp)
の1~16
を読み込むだけだとどのくらいの時間?
Python 言語リファレンス
URLリンク(docs.python.jp)
は必要に応じて参照。 と思ったが、言語リファレンスを見ると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:デフォルトの名無しさん
19/02/15 12:56:54.47 vj4wf1O1.net
>>121 >>123 URLリンク(docs.python.jp)
ここでは 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]
URLリンク(docs.python.org) 
文法書 こちらだと、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:デフォルトの名無しさん
19/02/15 13:07:54.03 TNDmXWGM.net
>>136
文法だけなら3日で済ませろ

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

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

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

148:デフォルトの名無しさん
19/02/15 16:08:39.95 PR4djPv7.net
>>113

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

149:デフォルトの名無しさん
19/02/15 17:40:54.87 fQG3bb7R.net
>>142
最後の行メッチャ同意w

150:デフォルトの名無しさん
19/02/15 19


151::12:24.12 ID:FTe5u0N/.net



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

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

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

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

156:デフォルトの名無しさん
19/02/16 02:04:33.57 3MiMTZ5E.net
>>148 自分もまだ、どれをもとに勉強しようか悩んでるんだけど、試験を受けるんだったら、オライリーので勉強した方が良いんじゃないのかな。
出題範囲がそれからと決まってるみたいだし。
そのpython.org のチュートリアルは本当に基本的なことしか書いてないみたいだし。 それを見る場合は他の標準ライブラリーにも目を通す必要があるけど、そちらについてのチュートリアルはないからね。

157:デフォルトの名無しさん
19/02/16 02:15:08.35 cp9NCj1N.net
>>111
BDFLの有り難いお言葉
URLリンク(python-history.blogspot.com)
コメント欄含めて細かく1-/0-ベース、閉区間/半開区間のメリットデメリットが議論されてる
要素の間を指す、という記憶術の落とし穴も

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

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

160:デフォルトの名無しさん
19/02/16 10:08:53.50 13Z91cw1.net
>>> "あ\\\"あ"
'あ\\"あ'
>>> print("あ\\\"あ")
あ\"あ
\の数が変わるのはなぜですか?

161:デフォルトの名無しさん
19/02/16 10:34:05.43 3MiMTZ5E.net
>>148 pdf があった方が良いと思うよ。 検索や見出しの頭出しなどが楽だから。
英文のpdf はあるけど、日本語はない。
URLリンク(docs.python.org)
コピペ、書き込みはできる。
オライリーのにはpdfがあるから便利ではある。
ただし、コピペできないから注意。 amazon のレビューも参考にしてみたら。
【python入門者向け】おすすめPDF教材3選
URLリンク(web-camp.io)
自分は、この中の2番目の大学の先生が書いてるやつで始めた。 コピペは勿論書き込みとかできる。

162:デフォルトの名無しさん
19/02/16 10:46:44.65 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:デフォルトの名無しさん
19/02/16 12:21:40.15 LDsTH0lF.net
bs4のスクレイピングで
〈dd class='a'〉bbb〈span class='c'〉ddd〈/span〉〈/dd〉
のときにbbbだけ取り出すにはどうすればいいですか?

165:デフォルトの名無しさん
19/02/16 13:46:48.84 lF7O1vpr.net
linux流行る→linuxの試験立ち上げ
ruby流行る→rubyの試験立ち上げ
python流行る→pythonの試験立ち上げ
常に後手後手だな経産省は

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

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

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

169:デフォルトの名無しさん
19/02/16 15:05:30.24 HHnqLgqK.net
>>157 そりゃニーズがないものを試験するのは無駄。

170:デフォルトの名無しさん
19/02/16 17:34:44.82 mSqP7pCT.net
フォルダを分ける
●永久保存
●たまに観たい
●あとで観る
●即消し
フォルダ毎にランク数値化してベイズ学習して
新しい画像が来るたびにまたフォルダ分け
(自動化するが人間によるチェックも必要なのでいきなりフォルダに入れず
それぞれのフォルダ毎に保留バッファを用意して人間が承認して正式にフォルダ移動とともに再学習)
これで問題になるのは「即消し」フォルダにある画像も消したくても再学習のために消せないんじゃないかということ

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

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

173:デフォルトの名無しさん
19/02/17 00:00:34.97 Hg63DdMm.net
>>153-155
Ruby では、
str = "あ\\\"あ"
p str #=> "あ\\\"あ"
print str #=> あ\"あ
p では全体を、" " で囲んでいるように、文字列の内部表現を見ている。
一方、print では、文字列を外部に表示したもの

174:デフォルトの名無しさん
19/02/17 00:30:33.10 Hg63DdMm.net
>>156
jQuery 子要素を含まない text() が欲しい時
URLリンク(qiita.com)
elem.children().empty();
で一旦、すべての子要素を削除してから、
elem.text();
で、テキスト部分を取得している
つまり一旦、<span> の部分を削除してから、テキスト部分を取得する。
でも実際に、DOM が削除されてしまうのは、都合が悪いかも知れない
他にも「jquery text 直下」で検索して、探してみれば?

175:166
19/02/17 00:46:15.18 Hg63DdMm.net
scrapyでよく使うxpath, cssのセレクタ
URLリンク(python.civic-apps.com)
直下の子要素指定でフィルタの所に、xpath, css で、
<div>aaa<div>bbb</div></div> で、aaa だけを取得する方法が書いてある

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

177:デフォルトの名無しさん
19/02/17 08:16:33.30 WySC1FKQ.net
>>168
試したら4だったよ

178:デフォルトの名無しさん
19/02/17 09:55:44.57 yxjz1BDw.net
>>164
確認しました。
掴んでるのはpython.exeだけでした。

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

180:デフォルトの名無しさん
19/02/17 14:08:27.77 +S0MQzvf.net
>>165 なんで python スレに Ruby の解説を持ち込まないといけないんだよ。 python をさわれないなら黙って見てろ。
python で説明するなら、
str = "あ\\\"あ"
rstr = r"あ\\\"あ" # raw string
print(str,rstr)
#あ\"あ あ\\\"あ
l

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

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

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

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

185:デフォルトの名無しさん
19/02/17 15:13:46.38 naWxhgEk.net
>>172
ルビ厨に構うなよ…

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

187:デフォルトの名無しさん
19/02/17 15:39:19.93 yfMLX38R.net
>>176 一括変換はどのようにしてもできるんだけど、コピペして動かそうとして修正するときに面倒。
利口なIDEなら両方を調整してくれても良さそうなものだけどな。
まだ、IDEをどうするのか決めてないし、とりあえずEclipseに入れるつもりだけど、なんか途中でつまづいてる。

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

189:デフォルトの名無しさん
19/02/17 17:18:58.04 OPCV5npO.net
>>178
with open構文使えばそんなことで悩むことなかったのに

190:デフォルトの名無しさん
19/02/17 17:29:14.69 +S0MQzvf.net
>>180 IDEはまだ使っていないって、pythonista やjupyter で練習中
ただ、IDEでスペース挿入できたって、コピペしたやつとスペースの数が違えばダメだろ? 大抵は一括変化できるだろうけど。
それでもjupyter などで使おうとするとやはり苦労するよね?

191:デフォルトの名無しさん
19/02/17 17:50:07.52 +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:デフォルトの名無しさん
19/02/17 17:56:47.88 T3+WXnTJ.net
>>183 質問(1)は自己解決
まともな文法書を読み始めて2日目で、ようやくたどり着いた。
《in演算子によるメンバシップ検査》
書き方: 要素 in リスト 
リストの中に要素があればTrue,なければFalseを返す.要素が含まれないことを検査するにはnot inと記述する

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

195:デフォルトの名無しさん
19/02/17 19:09:07.40 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:デフォルトの名無しさん
19/02/17 19:20:42.25 glILnxtO.net
ビートセイバーの通常プレイってなんだかんだで斬る方向も指定されるから
いまいち魅せプレイには向いてないんよな 
めめめにダースモールプレイでくるくるしてほしいンゴ
URLリンク(www.youtube.com)

197:デフォルトの名無しさん
19/02/17 19:20:57.80 glILnxtO.net
誤爆

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

199:デフォルトの名無しさん
19/02/17 19:51:22.25 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:デフォルトの名無しさん
19/02/17 20:07:17.70 U9IIuCB3.net
内包表記でタプルは作れない(ジェネレータになる)だけで一貫してるだろ
それに
for i in イテラブル
じゃなくて
i for i in イテラブル
だし

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

202:デフォルトの名無しさん
19/02/17 20:31:16.29 tKx1WgvG.net
in単体なら演算子だけど、forではそれ含めて文だからねぇ
文脈によって解釈が変わるのはC/C++でも英語でも同じ
そしてタプルを作るのは丸括弧ではなく「,」である

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

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

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

206:デフォルトの名無しさん
19/02/17 20:44:17.06 GfPZMs79.net
カッコつけてるだけだよ

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

208:デフォルトの名無しさん
19/02/17 20:47:29.51 glILnxtO.net
>>196
practicality beat purity(実用性は純粋さに勝る)だぜ
ジェネレーターにすれば途方もない数も扱えるわけだし
デフォでジェネレーターになるのはしょうがない
range()がリストではなくイテレーターを返すようになったようにな

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

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

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

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

213:デフォルトの名無しさん
19/02/17 21:55:32.99 nNpu08PZ.net
益々訳ワカメになってきた。

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

215:デフォルトの名無しさん
19/02/17 22:08:56.80 nNpu08PZ.net
((x,) for x in [1,2,3])
ってどんな意味があるのかわからん。
print(list ((x,) for x in [1,2,3]) )
#[(1,), (2,), (3,)]
(1,) ってどんな意味があるの?

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

217:デフォルトの名無しさん
19/02/17 22:56:02.90 nNpu08PZ.net
やっぱチュートリアルをちらっと読んだだけじゃ、基本的なことがわからないな。
言語設計者の開発秘話みたいなものが聞けると面白いと思うんだけど。

218:デフォルトの名無しさん
19/02/17 23:03:18.87 Hg63DdMm.net
>>178
Ruby で言えば、File.open にブロックを付けると、
ブロックを抜けるときに、例外時にも自動的に、開いたファイルを閉じてくれる
自分で例外処理、finally・ensure などに、file.close を書いたのと同じこと
コンテキスト・マネージャー。
Python にも、同じものがあるはず

219:デフォルトの名無しさん
19/02/17 23:20:56.32 glILnxtO.net
pythonの基本方針はimport thisで読める
False == False == FalseがTrueになるとか面白いよな

220:デフォルトの名無しさん
19/02/17 23:51:24.85 9eEjpIke.net
True+Trueが2になるとかな

221:デフォルトの名無しさん
19/02/18 00:38:39.85 9Y7UoWyl.net
>>207 ますますわからなくなってきた。
タプルと言うのは、複数の数値の羅列だと思ってたのに、一つでなんでタプルになり、一つのタプルにどんな効果が出てくるの?
そう言う文法だからと言えばそうなんだろうけど、
1 in 1 をエラーにして、1 in (1,) をTrue にする意味があるんだろうか?
1 in (1) と区別が付かんと困るからかな? ただのカッコ()とタプルの区別を カンマの有無で区別すると言うことか。

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

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


224:作ることができる タプルができない理由はない まぁプログラミングというか論理学の話になるけどな 1 in 1でエラーが出るのは当然 1と1は同値であり、1の中に1が含まれているわけではないのだから



225:デフォルトの名無しさん
19/02/18 00:56:36.72 9Y7UoWyl.net
>>210 import this があるなんて面白いね。
プログラマが持つべき心構え (The Zen of Python)
URLリンク(qiita.com)
The Zen of Python, by Tim Peters
ちなみに、"Zen"は日本語の「禅」です。
1 in 1 を許さないのは禅問答になるのかな? 悟りを開くしかないのかな?

226:デフォルトの名無しさん
19/02/18 01:02:08.73 9Y7UoWyl.net
>>214 リストやタプルは集合体だから何かの入れ物の中に入ったもので。
1 in 1 は、入れ物がないから取り出せないと言う感じかな?
じゃ、リストやタプルは現実社会のどんなものに対応するんだろう。

227:デフォルトの名無しさん
19/02/18 01:18:45.55 Tb62uZUC.net
「1つの要素」と「要素ひとつだけを含む集合」は
「弾丸一発」と「一発だけ弾が残った弾倉」と同じくらい違う
「書類1枚」と「1枚だけ書類を挟んだファイル」と同じくらい違う
風来のシレンで言うと
「アイテムひとつ」と「アイテムがひとつだけ入った壺」と同じくらい違う

pythouの内部的にはリストやタプルには「複数の要素を扱うための機能」がついてる
単一の要素整数にはそれがない
だから単一の要素にinを使ってもそもそも「その要素が含まれているかどうか」を確認することができない

228:デフォルトの名無しさん
19/02/18 01:29:08.54 SjVwlNp1.net
JavaScript「呼んだ?」
1 == [1] //=> true

229:デフォルトの名無しさん
19/02/18 01:36:54.94 Tb62uZUC.net
>>218
これがあるから===しか使いたくない

230:デフォルトの名無しさん
19/02/18 08:12:09.71 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:デフォルトの名無しさん
19/02/18 08:41:37.17 tx9DPBTs.net
>>220
for文による繰り返し処理を勉強してください

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

233:デフォルトの名無しさん
19/02/18 09:46:20.06 qsq8EO4j.net
Ruby 2.6 では、
ary = [1, 2, 3]
ary.sum
#=> 合計は、6
平均値は、合計を要素数で割る。
mean = ary.sum / ary.length

234:デフォルトの名無しさん
19/02/18 10:44:29.19 1FoQC5sv.net
>>223
死ね

235:デフォルトの名無しさん
19/02/18 12:18:05.03 NoNskV/l.net
>>223
荒らし

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

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

238:デフォルトの名無しさん
19/02/18 14:06:00.10 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:デフォルトの名無しさん
19/02/18 14:12:48.12 fpnGWm5B.net
>>227
何の数値に化けるのか分からなかったら、
print(a.Length)してみればいい。

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

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

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

243:デフォルトの名無しさん
19/02/18 15:01:26.05 Tb62uZUC.net
>>231
a.__len__()

244:デフォルトの名無しさん
19/02/18 16:14:05.74 mU1u6kNH.net
>>148 >>149
どちらも同じみたいだね。
Python チュートリアル 第 3 版
URLリンク(books.lifewithpython.com)
Python の作者である Guido van Rossum 氏が書いた Python の入門書です。
尚、この書籍と同じチュートリアルに対する日本語訳がウェブ上でも公開されています(ウェブ上の翻訳と本書の翻訳は異なります)。 好みに応じて好きな方を選ぶとよいでしょう。
Python チュートリアル ― Python 3 ドキュメント
URLリンク(docs.python.jp)
個人的には、他の言語でプログラミング経験のある方が Python を始めるときにはよいのですが、プログラミング自体が初めての方にとっては本書は少し難しいのではないかと思います。
プログラミングが初めての方でこの本を読みたい方には、一度中身をチェックしてみてから購入するかどうかを決めることをおすすめします。
Guido 氏が書いたチュートリアルということで、プロの Pythonista なら誰しも一度は読んだことのある一冊でしょう。

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

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

247:デフォルトの名無しさん
19/02/18 17:20:44.97 3yKPK3LO.net
>>236
URLリンク(kakakakakku.hatenablog.com)
模擬試験(無料)
認定スクール「DIVE INTO EXAM」から無料で提供されている模擬試験がある.まだ β であると記載されているけど,計80問あり,試験同様に計40問出題される.
模擬試験の受験回数に制限はなく,何度も何度も繰り返し受験できる.少なくとも1度は受験しておくと良いと思う.

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

249:デフォルトの名無しさん
19/02/18 19:52:34.04 mU1u6kNH.net
しかし、最初python って簡単じゃんと思ったけど、なんか混乱する。
() [] {}
add append extend del discard とか、
最初理解できないのは、何がオブジェクトなのか?

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

251:デフォルトの名無しさん
19/02/18 20:45:59.87 9P3l8zH4.net
statistics.mean(a)
のミス

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

253:デフォルトの名無しさん
19/02/18 22:34:44.93 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:デフォルトの名無しさん
19/02/19 00:12:01.46 1Fqwt8so.net
>>239
del使うシーンは滅多にないな
全く無い訳じゃないけど

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

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

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

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

259:デフォルトの名無しさん
19/02/19 01:56:10.83 UOhpPyGI.net
やんやん

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

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

262:デフォルトの名無しさん
19/02/19 06:23:45.14 QXXeWHDh.net
>>250
うんこ

263:デフォルトの名無しさん
19/02/19 06:26:20.60 hAizIKGb.net
>>243
>>print(AA()) #許されない
許されるだろ

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

265:デフォルトの名無しさん
19/02/19 09:35:20.19 snU9lsNN.net
後付けだから

266:デフォルトの名無しさん
19/02/19 10:11:21.93 SwtNBaDU.net
>>254
obj.__len__()

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

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

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


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



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

272:デフォルトの名無しさん
19/02/19 17:57:52.58 xAiOFAtZ.net
>>260 あまり知らないけど、こんなあたりで良いの?
URLリンク(docs.microsoft.com)

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

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

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

276:デフォルトの名無しさん
19/02/20 00:19:50.88 1HzmSa/X.net
>>258
俺、Pythonを実質2週間ぐらいやっているんだけど
やり始めてすぐに>>254のような感を覚えた。
それなりの理由があるってことか(ちなみにJavaはさっぱり分からん)。
他の言語同様に、変数、メソッド名をアンダースコア(シングル、ダブルアンダー)で始めるとかで何かしらの意味を
与えていると分かっているんだが、目下あんまり調べてないからな。
プライベート変数がダンダーって見てすぐにわかるから良いと言えばその通りなんだがな

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

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

279:デフォルトの名無しさん
19/02/20 00:43:10.98 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:デフォルトの名無しさん
19/02/20 00:50:35.52 hdPlDSUg.net
True and 2

281:デフォルトの名無しさん
19/02/20 00:53:32.30 PF1BNO4k.net
短絡評価自体は理解しやすいんだが。
URLリンク(qiita.com)
True and b
のとき何故、bの値を取るのか? 先後に成立した評価の値を取る?何故 True では無くbの値を取るのか?

282:デフォルトの名無しさん
19/02/20 00:56:34.30 gK0qp


283:GCl.net



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

286:デフォルトの名無しさん
19/02/20 03:12:26.13 B2QSVSiS.net
>>260-261
Code Runner という拡張機能で、右クリックメニューから、指定したソースコードの範囲を実行できる。
Ctrl+Shift+P で、Run Code でも同じ
>>254
Python は、Ruby よりも不自然。
Ruby, JavaScript みたいにメソッドチェーンしにくい
Ruby では、メソッド名を、シンボル: で渡せるから、処理の内容が明確
[1, 2, 3].inject( :+ ) #=> 6

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

288:デフォルトの名無しさん
19/02/20 03:18:46.77 W95E7B6+.net
>>272
URLリンク(docs.python.org)
昔の名残。条件式はif文ではないのでelseを省略することは出来ない(値を返さねばならない

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

290:デフォルトの名無しさん
19/02/20 07:12:57.02 SpCnH/g7.net
>>274
死ね

291:デフォルトの名無しさん
19/02/20 08:33:48.20 PF1BNO4k.net
>>277 コンソールから直接ソースを叩けば動くよ。
hoge.py
hoge
或いは
python hoge.py
要は、exeファイルと同じ動作をする。だから、exploreから .pyをクリックしても起動する。
(ただ、コンソールが見えないとあまり解らないだろうけど。)
python は、コンパイルという作業がいらないから、
dotnet run の様にコンパイルの指定が必要ない。

292:デフォルトの名無しさん
19/02/20 09:06:26.28 DM4qe6j0.net
>>277 だから普通にDOSコマンドの実行と同じprocess.start で良いのでは?
勿論、python が、インストールされている必要はあるが。
URLリンク(ni4muraano.hatenablog.com)
<略>
p.StartInfo.Arguments = @"/c python hello.py";
p.Start();
pythonがインストールされていない環境にpython のソースコードだけを渡しても動かないから、その場合は考慮の必要はありそうね。
PythonスクリプトをWindows環境で動くexeファイルにしよう
URLリンク(www.sejuku.net)

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

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

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

296:デフォルトの名無しさん
19/02/20 13:38:56.65 gRk6WtzR.net
>>113
YouTubeで北神雄大を検索。

297:デフォルトの名無しさん
19/02/20 18:06:26.32 uB83dASb.net
python書くエディタとIDEで人気なのは、pycharmとvscodeかね

298:デフォルトの名無しさん
19/02/20 18:08:20.36 ICk0Y2AW.net
Atom...(小声)

299:デフォルトの名無しさん
19/02/20 18:13:40.84 NaL8/JA7.net
Spyder...(小声)

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

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

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

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

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

305:デフォルトの名無しさん
19/02/20 20:30:34.29 0GDprFxB.net
そういや侍エンジニアの騒動は鎮火したのか?

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

307:デフォルトの名無しさん
19/02/20 21:49:50.49 aaH1DDBC.net
何を浚うか指定できないのか?

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

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

310:デフォルトの名無しさん
19/02/21 05:22:18.25 kxn9bd4Y.net
>>295
URLリンク(i.imgur.com)

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

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

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

314:デフォルトの名無しさん
19/02/21 15:19:27.90 YDJO8R6Z.net
層が全く違うぞ
どういう意味だ?

315:デフォルトの名無しさん
19/02/21 15:38:13.68 1URmNQhh.net
>>301 NICを指定することはできないんじゃないの? そもそも何をしたいの?
複数のNICが同じLANに出ていけばどちらを経由しても行きつく先は同じだけど。
もしこんなことをやりたいのか?
NIC-1 >> LANのIP-1にだけ繋がってる
NIC-2 >> LANのIP-2にだけ繋がってる
それでIP-2につなぎたいからNIC-2を使いたいとか?
だったらNICなんか気にせずに接続しに行けばつながる方にしかつながらない。

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

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

318:デフォルトの名無しさん
19/02/21 15:59:09.52 auY8mpXd.net
>>305
皆の質問の意図を理解できていないよ
なぜ、
>接続先によってNIC(というかソースIP)を使い分けて通信したいのです。
わざわざこんな使い分けをしたいのか、その理由を聞かれている
普通はソースIPを分けなくても接続できるから

319:デフォルトの名無しさん
19/02/21 16:40:54.57 yAj8ZZjm.net
>>305 何か理由があってどうしてもやりたいのなら、ルータなりでIPルーティングをすれば出来るけど。
静的ルーティングの設定 - Linux
URLリンク(qiita.com)
この場合だとNICの選択もできる。

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

321:デフォルトの名無しさん
19/02/21 17:21:39.12 y1fIYiTV.net
>>307
スクレイピングやWEB-APIを叩くときに、ratelimitが厳しいサイトがあるのでほんの少しそれを緩和したいのです。
ありがとうございます、ルーティングをいじってしまうのは最初に考えたのですが、環境は外部のVPSで(また説明不足ですいません)
基本リモートでいじっているので、そのあたりどうなるのかなぁと、明日また試してみます。
また、調べたところCurlとかだと何かIFを指定するパラがあるようですが、横着ですが今のコードをあまり変えたくなくて。

322:デフォルトの名無しさん
19/02/21 17:42:34.88 MuHdm1tt.net
>>309 じゃ、curl と同じ様にしてみたら?
# curl -I --interface eth0 URLリンク(www.yahoo.co.jp)
#python
def message_api(request):
req = requests.post('URLリンク(www.yahoo.co.jp)' \
--verbose \
--get


323: \ --interface=‘eth0’ --data 'text=おはようございます' \ --data 'appkey=xxxxxxxxx') print(req)



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

325:デフォルトの名無しさん
19/02/21 21:16:21.39 3FyMMC5r.net
実践 Python 3

326:デフォルトの名無しさん
19/02/21 22:23:48.06 rZ10GU5L.net
>>312
一回マジでしゃぶってもらえませんか

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

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

329:デフォルトの名無しさん
19/02/22 01:10:21.20 PLvaKLdQ.net
>>310
ヒドイw

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

331:デフォルトの名無しさん
19/02/22 21:06:15.39 d1khp6TM.net
ええやん

332:デフォルトの名無しさん
19/02/23 11:43:34.06 +DV3f+Dk.net
伊勢の名物

333:デフォルトの名無しさん
19/02/23 12:26:45.82 lot8ckD6.net
国産のRuby叩かれすぎワロタ

334:デフォルトの名無しさん
19/02/23 12:40:42.89 1QjCNYhv.net
このスレに限るなら、叩かれているのはほとんどRubyガイジのせいだろ
目の前をうろうろする羽虫みたいなもんだ

335:デフォルトの名無しさん
19/02/23 12:48:40.53 +DV3f+Dk.net
自業自得

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

337:デフォルトの名無しさん
19/02/24 09:29:08.59 iJEnzY0p.net
デスクトップアプリはpythonとjavascriptどっちがいいんでしょうか

338:デフォルトの名無しさん
19/02/24 10:00:32.60 QKZEiFxx.net
C#

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

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

341:デフォルトの名無しさん
19/02/24 10:31:16.66 8D34p5sx.net
なぜ32GBモデルにしなかったんだろ俺のバカバカ!ってね

342:デフォルトの名無しさん
19/02/24 12:49:35.63 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:デフォルトの名無しさん
19/02/24 13:10:54.97 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:デフォルトの名無しさん
19/02/24 14:53:09.92 YwY0sV++.net
>>324
python

346:デフォルトの名無しさん
19/02/24 15:01:02.77 h7ByRKin.net
VBの一択だな

347:デフォルトの名無しさん
19/02/24 16:35:42.81 57VgR7IR.net
>>328
そんなにメモリ喰うの?

348:デフォルトの名無しさん
19/02/24 17:24:23.04 7HrBRrfk.net
>>333
win10だと16gだと足りないよ。
ソフトによるけど。

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

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

351:デフォルトの名無しさん
19/02/24 17:51:55.81 +6ZRRI/z.net
>>335 今時のPCでも、スロット数が少ないから、何年かしたらもうボードから買い換えるしか無いよ。
諦める事だな。
(全てが寿命に近づいてるから捨てる。)
ただ、買った直後にそのPCで動かないのがあったら、諦めて別の方法を探った方が吉。

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

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

354:デフォルトの名無しさん
19/02/24 20:26:06.19 iK4D+UQi.net
横からだが、今時古いメモリやCPUでもそれほど違わん。
(最近はAMDのお陰で急速にコア数増えたが)
物欲抑えれば全然現役で行ける。
(それでも性能追うのが浪漫なのは否定せんが)

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

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

357:デフォルトの名無しさん
19/02/24 20:42:46.42 rYs6roSD.net
>>339
>ほとんど全てのパーツが寿命
今年思い知った件
ほんと


358:>>342だは



359:デフォルトの名無しさん
19/02/24 22:22:06.63 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:デフォルトの名無しさん
19/02/24 22:28:23.99 mG+2Y3tM.net
追記ですみません
メンバ変数は値を更新した際に自動的に他の処理も呼びたいため
setterを必要としています。

361:デフォルトの名無しさん
19/02/24 22:34:22.09 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:デフォルトの名無しさん
19/02/24 22:39:07.56 dOn5ud/R.net
あるいは中に仕込むか
@x.setter
def x(self, x):
  self.x = x
  self._x = x

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

364:デフォルトの名無しさん
19/02/25 00:00:08.65 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:デフォルトの名無しさん
19/02/25 00:10:04.15 PZlQ37TI.net
>>349 なんか黒魔術みたいだな。

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

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

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

369:デフォルトの名無しさん
19/02/25 00:32:00.78 uKYGHYXp.net
「暗示するより明示せよ」
がpythonの設計思想のひとつだからな
別に珍しいことでもない
LISPなんかはユーザーが自由に言語設計をいじれすぎて
無数の方言が作られているしな

370:デフォルトの名無しさん
19/02/25 00:38:04.31 SRxcknzj.net
>>349
メンドクセーッ!

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

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

373:デフォルトの名無しさん
19/02/25 11:22:12.78 Opp/wdL5.net
>>344
Hoge.__dict__ を作るだけでいける

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

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

376:デフォルトの名無しさん
19/02/25 21:36:21.30 dXFOGwmu.net
有料版使ってる人いるのかな

377:デフォルトの名無しさん
19/02/25 21:39:49.74 h8G0r/CT.net
>>359
PyCharm、VisualStudio

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

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

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

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

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

383:デフォルトの名無しさん
19/02/26 00:26:09.34 hKlKYH4W.net
俺はVSCodeと素Pythonを押すね
Anacondaは最初は使わん機能ばっかだし

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

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

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

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

388:デフォルトの名無しさん
19/02/26 12:55:41.05 ePz6Ki1y.net
Android用のpython環境をオススメしてください

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

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

391:デフォルトの名無しさん
19/02/26 15:13:01.67 8+7ktUtN.net
>>373
S4A
以前は Windows + Python2 素のインスコで使ってて
Python3 に乗り換えたときに
(Windows で) Anaconda でインスコして使ってるけど
全然問題無いわ
368 は明らかに事実誤認

392:デフォルトの名無しさん
19/02/26 15:13:46.29 8+7ktUtN.net
typo した
S4A じゃなくて SL4A

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

394:デフォルトの名無しさん
19/02/26 17:21:21.96 1yUj9TwU.net
>>373 自分はAndroidを使っていないけど、良さそうじゃん。
Android上でPython3が利用できるPydroid3がスゴイ
URLリンク(pineplanter.moo.jp)

395:デフォルトの名無しさん
19/02/26 17:27:22.38 1yUj9TwU.net
>>378 あまり堅苦しく考えないで良いじゃん。
いつでもどこでも使えるスマホは、練習用としては使えるよ。 解説書を読みながらちょっと試してみるとか。
Google の colab とか使ってWeb で作る手もあるけど、ネットが繋がっていないと使えなかったり、ちょっともたつく気がする。
ローカルで使えるに越したことはない。

396:デフォルトの名無しさん
19/02/26 17:56:25.83 T0vQDev8.net
>>373
termuxでapt install python

397:デフォルトの名無しさん
19/02/26 19:22:35.54 EZFWpudG.net
多倍長整数演算を高速化する方法はありますか?
numba使うと正しい結果が出ない
たぶん内部で浮動小数点数に置き換えてる

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch