X



くだすれPython(超初心者用) その41【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2019/02/04(月) 21:22:10.08ID:9MrdxUVg
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

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

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

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


◆PythonのHome Page
http://www.python.org/

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

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
0088デフォルトの名無しさん
垢版 |
2019/02/12(火) 11:27:38.96ID:8lolhehX
88
0089工学部生
垢版 |
2019/02/12(火) 12:33:05.90ID:rvJokjFw
>>83
>何の分野に進むかによる
プログラマ以外がpythonを使うことはない


JPモルガンやゴールドマン…投資銀行がトレーダーに「Python」を教える理由
https://japan.zdnet.com/article/35132512/
0090工学部生
垢版 |
2019/02/12(火) 12:35:46.21ID:rvJokjFw
問題
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) 保存されたデータは文字列になっているので、足し算をするために数値化する必要がある。
0091工学部生
垢版 |
2019/02/12(火) 12:36:54.61ID:rvJokjFw
>>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)
0092工学部生
垢版 |
2019/02/12(火) 12:38:43.95ID:rvJokjFw
f.write(",".join([str(a) for a in x]) + "\n")

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


このあたりがわかりません。
0093デフォルトの名無しさん
垢版 |
2019/02/12(火) 13:08:13.97ID:8lolhehX
これで充分
','.join(str(a) for a in x)
0094工学部生
垢版 |
2019/02/12(火) 13:34:12.44ID:rvJokjFw
ワシのプログラミング授業歴

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

でpythonはCみたいなどうしようもない難解とは違い、
「やればやっただけ上達する」ような感触を受けた。
今回は落ちたかもしれないが、次は必ず仕留める。
0095工学部生
垢版 |
2019/02/12(火) 13:40:34.21ID:rvJokjFw
>>93
それに書き換えてみましたが、
実行結果が184
となり

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

17
26
24
0096工学部生
垢版 |
2019/02/12(火) 13:45:24.25ID:rvJokjFw
>>93

+"\n"をそのあとに付けたらつまくいきました。
[]は無駄なようですね。ありがとうございます。
0097デフォルトの名無しさん
垢版 |
2019/02/12(火) 15:06:06.19ID:QzLgc2xe
>>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])
を追加して実験してみる

聞く回数も減るし理解も早いと思う
0098デフォルトの名無しさん
垢版 |
2019/02/12(火) 15:09:35.02ID:JhZhtSe3
独学プログラマー読んでるけどtwitterで翻訳者がつぶやいててうざい
たかが翻訳しただけなのにまるでじぶんが書いたみたいに反応してる
勘違いしてるよね
翻訳がすごいから売れたんじゃないの
勘違い翻訳者うざすぎー
0099工学部生
垢版 |
2019/02/12(火) 15:52:05.30ID:rvJokjFw
>>97

貴重なアドバイスありがとうございます。
0100デフォルトの名無しさん
垢版 |
2019/02/12(火) 15:56:19.85ID:sv506HrS
なっちゃんって偉大な翻訳家がいてな・・・
翻訳にも上手い下手はあるんだよ
少なからず売上も左右するだろう
0101工学部生
垢版 |
2019/02/12(火) 16:03:02.03ID:rvJokjFw
プログラムを入力するときはロックを組み立てていくが、
エラーを解析するときはブロックを崩していくというイメージか。
0102デフォルトの名無しさん
垢版 |
2019/02/12(火) 23:21:44.95ID:0srnSPAN
Multiprocessingを使った処理をしたいと思ってごくごく簡単な例文をコピペして動かしてみたのですが,期待される出力がコンソール上に出ません.
一方,すこし複雑な(いくつかのプロセスを平行させても1秒ぐらいかかるような処理)例文を動かすと,出力は出ませんがCPUの稼働率的にはすべてのコアが均等に働いているようでした.
Multiprocessing自体はうまく働いているものの,なんらかの理由で個々のプロセスがコンソールに出力するのが制限されているような挙動ですが,これを出力させるにはどうすればよいでしょうか?
環境はPython3.6.1で,標準のIDLEを使っています.CPUは4コアの6700Kです.

よろしくおねがいします.
0103デフォルトの名無しさん
垢版 |
2019/02/12(火) 23:41:25.12ID:1FBNx7PM
multiprocessingで並行処理させてる関数内からprintしたときは
直後にsys.stdout.flush()しないと反映されない
0104デフォルトの名無しさん
垢版 |
2019/02/12(火) 23:51:39.90ID:0srnSPAN
ありがとうございます.
それ自体では解決しませんでしたが,関連事項でググったらIDLEが悪いということが分かりました.
0105デフォルトの名無しさん
垢版 |
2019/02/13(水) 09:52:03.63ID:ik/h3+HJ
初歩的な質問なんですが
画像の顔部分の切り出しをしていて分からない部分があります
以下簡単な例に置き換えたものになります

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する事で表示されているのが良くわかりません
0107デフォルトの名無しさん
垢版 |
2019/02/13(水) 10:23:11.88ID:M8PJWiFY
>>105
test[m:n]はm〜n-1番目までを切り出す
0108デフォルトの名無しさん
垢版 |
2019/02/13(水) 11:33:48.61ID:0cDEleYh
>>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]
0110デフォルトの名無しさん
垢版 |
2019/02/13(水) 11:36:56.12ID:N2s3vUnw
スライスの開始値は含めるけど終了値は含めないという指定は、最初違和感あったな
0111デフォルトの名無しさん
垢版 |
2019/02/13(水) 12:44:57.49ID:pbkwul76
>>110
俺もいまだに違和感ある
a=['お','ま','ん','こ']でa[0,2]だと['お','ま','ん']にして欲しいよな。
確か、数直線で考えるらしい.....

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

で、[0:4]だと「お〜こ」になるとのことだった。でもa[4]はエラー....
0112デフォルトの名無しさん
垢版 |
2019/02/13(水) 14:58:46.57ID:os3OGdBG
ゼロベース配列という事で、i以上j未満はポインタ演算を考えると自然
(j-i)個の切り出し、終端ポインタ-先頭ポインタは何要素といった具合
0114デフォルトの名無しさん
垢版 |
2019/02/13(水) 15:09:37.55ID:MhIfo+Ct
ポインタとか使う言語だと、そもそもendじゃなくて個数指定になってるじゃん。
0115デフォルトの名無しさん
垢版 |
2019/02/13(水) 15:20:36.92ID:ik/h3+HJ
>>105 です
回答頂いた方ありがとうございます
test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
演算子が入ってるのを初めて見たので計算した上で扱うとは思いませんでした
0116デフォルトの名無しさん
垢版 |
2019/02/13(水) 15:49:18.21ID:R/LRwZLt
>>115
「1番目から始めて3文字取り出す」という事を明示するために敢えて1+3と書いたんだろう
0118デフォルトの名無しさん
垢版 |
2019/02/13(水) 16:03:03.58ID:0cDEleYh
>>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から電話をかけてボタンを操作している
0120デフォルトの名無しさん
垢版 |
2019/02/13(水) 18:26:41.20ID:QnNf1eu6
>>115
test[1:-1]
test[:-1]
test[1:]
違いを説明汁
0121デフォルトの名無しさん
垢版 |
2019/02/13(水) 23:08:42.70ID:5Y5rGgZv
>>115
>test[1:1 + 3]は[1:(1 + 3)]でtest[1:4]として扱われるという事でしょうか
俺も超初心者だからお前が疑問に思っていることがなんとなくわかる
1 + 3の+は演算子。で、[x:y:z]の:は何なんだと? ひょっとして :も演算子?
でもって、[1:1 + 3]の時、:と+どっちが優先順位高いんだ?わかんね。
で、レス見ると、どうも+の方が優先順位高いと。つまり、優先順位を明示した[1:(1 + 3)]になると。
0123デフォルトの名無しさん
垢版 |
2019/02/13(水) 23:43:48.56ID:5Y5rGgZv
そうなのか? 俺は勝手に俺命名してスライス演算子とか言っているが
で、スライス演算子は算術演算子の+より優先順位が低いと
0129デフォルトの名無しさん
垢版 |
2019/02/14(木) 08:02:20.55ID:NaDvAh4C
>>126
3.8から代入式も使えるようになるらしい
0130デフォルトの名無しさん
垢版 |
2019/02/14(木) 09:03:20.99ID:wJ5vrran
シンタックスシュガー
糖 衣 構 文って奴か

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

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

シンタックスシュガー
糖 衣 構 文はかしこく使っていきたいと思った
0131デフォルトの名無しさん
垢版 |
2019/02/14(木) 13:23:14.58ID:b/dX4O0G
>>121
pandasとかnumpyの[:;:]使うともっと混乱する
0133デフォルトの名無しさん
垢版 |
2019/02/14(木) 23:06:52.19ID:Qyh3gh4h
初めて見た時は驚いた
0134デフォルトの名無しさん
垢版 |
2019/02/15(金) 04:14:44.86ID:aMcTHSTs
A=B=C=0
みたいな
0135デフォルトの名無しさん
垢版 |
2019/02/15(金) 11:55:58.42ID:Lyn3hfe5
pipってPythonのidleからうごかせないからいらいらしてたんだけども
teratailっていうサイトでpipはコマンドプロンプトでうごかすような仕様ですって説明あったからあたまのなかがすっきりした
0136デフォルトの名無しさん
垢版 |
2019/02/15(金) 12:13:07.08ID:vj4wf1O1
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 だけでもかなり奥が深いな。

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

言語リファレンスに書かれたすべてについて書かれたチュートリアルは有るのだろうか? 膨大なページになるだろうが。
オライリーの 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
0137デフォルトの名無しさん
垢版 |
2019/02/15(金) 12:56:54.47ID:vj4wf1O1
>>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 で置き換えられます。
0138デフォルトの名無しさん
垢版 |
2019/02/15(金) 13:07:54.03ID:TNDmXWGM
>>136
文法だけなら3日で済ませろ
0139デフォルトの名無しさん
垢版 |
2019/02/15(金) 14:14:26.18ID:BPLAFoWk
ifが閉じないのが違和感ありすぎるんだよな
endをpass扱いで使えればいいのに
tab非推奨とか、mainがインデントできないとか
0140デフォルトの名無しさん
垢版 |
2019/02/15(金) 14:28:19.26ID:TNDmXWGM
endってRuby信者かよ
うざいだけです
0141デフォルトの名無しさん
垢版 |
2019/02/15(金) 15:29:10.41ID:6n1ig9NM
>>113
1からcに勉強しなくても基本的なスクリプト分かればパッケージで何かできるようになるから教育の手間が省けるし使い物になるまでの時間が短い。ポインタみたいな話は逐一調べれば何とかなるし
0142デフォルトの名無しさん
垢版 |
2019/02/15(金) 16:08:39.95ID:PR4djPv7
>>113

米国では特に理由がない限りはスクリプト言語といえばPythonなの
もちろん機器を大規模に展開する段階ではCで書き直すこともありうるけど、その前のPoC段階では手っ取り早く動かすことを重視してスクリプト言語を選択することが多い
そして世の中のほとんどのIoT(笑)プロジェクトはPoC止まりである
0144デフォルトの名無しさん
垢版 |
2019/02/15(金) 19:12:24.12ID:FTe5u0N/
>>136
2〜3ヶ月では無理だろ
オライリーの「Fluent Python」読んだら程々で止めといた方がよいと分かる
特にデコレータとかスライスオブジェクトとか完全な理解までは時間も手間も掛かる
それにライブラリ有ってなんぼの言語だからその辺を当たるのも手間が掛かる
0145デフォルトの名無しさん
垢版 |
2019/02/15(金) 21:40:16.03ID:phBQxiAY
>>137
そんだけ説明するなら
Cpy = OreObj[:]でコピーの話してくれれば良いんだが
これもsliceがやってくれているのか?
0146デフォルトの名無しさん
垢版 |
2019/02/15(金) 22:13:07.97ID:nnYj1Xkq
>>145 シーケンスオブジェクトに対して有効なんだから、文法エラーが起きなければ、OreObjはシーケンスオブジェクトで有り!スライス表記が有効なんだろ。
0147デフォルトの名無しさん
垢版 |
2019/02/16(土) 01:03:35.23ID:3MiMTZ5E
>>145 print(type(OreObj))
とやってみれば良いよ。
というかわからずに作ってる方もどうかと思うが。
0148デフォルトの名無しさん
垢版 |
2019/02/16(土) 01:22:05.09ID:pkeahHEi
Python3エンジニア認定基礎試験を受験しようと思ってるんだけど認定教材がオライリーのpython3 チュートリアル第3版だよね?
ドキュメントがあるんだけど
https://docs.python.org/ja/3/tutorial/index.html
本よりURL先の方が新しいからこっちで勉強すべきなんか本買った方がいいのやら
0149デフォルトの名無しさん
垢版 |
2019/02/16(土) 02:04:33.57ID:3MiMTZ5E
>>148 自分もまだ、どれをもとに勉強しようか悩んでるんだけど、試験を受けるんだったら、オライリーので勉強した方が良いんじゃないのかな。
出題範囲がそれからと決まってるみたいだし。

そのpython.org のチュートリアルは本当に基本的なことしか書いてないみたいだし。 それを見る場合は他の標準ライブラリーにも目を通す必要があるけど、そちらについてのチュートリアルはないからね。
0151デフォルトの名無しさん
垢版 |
2019/02/16(土) 02:27:49.37ID:Vy31NZNk
>>148
そのURLで良いんじゃないのか。
金出してオライリー買って勉強したって通らない奴は通らないだろうし。
で、URLでやっても通る奴は通るだろ
0152デフォルトの名無しさん
垢版 |
2019/02/16(土) 05:33:47.13ID:ytOkList
>>136
奥の深いのはまるで量子力学みたい。
0153デフォルトの名無しさん
垢版 |
2019/02/16(土) 10:08:53.50ID:13Z91cw1
>>> "あ\\\"あ"
'あ\\"あ'
>>> print("あ\\\"あ")
あ\"あ

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

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

【python入門者向け】おすすめPDF教材3選
https://web-camp.io/magazine/archives/16214
自分は、この中の2番目の大学の先生が書いてるやつで始めた。 コピペは勿論書き込みとかできる。
0155デフォルトの名無しさん
垢版 |
2019/02/16(土) 10:46:44.65ID:3MiMTZ5E
>>153 \ は、エスケープ文字と言って、次の1文字をそのまま使うことを指示する。
だから、\そのものを使うことはできない。しかし
\\ で\ をそのまま使う指示をすれば、\ 1文字として扱われる。
同じく \” \’ は、” ‘ そのものを扱うこもができる。
文字列の中にこう言う特殊文字を入れたい時に使う。

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

エスケープシーケンス
https://www.javadrive.jp/python/string/index2.html
0156デフォルトの名無しさん
垢版 |
2019/02/16(土) 12:21:40.15ID:LDsTH0lF
bs4のスクレイピングで
〈dd class='a'〉bbb〈span class='c'〉ddd〈/span〉〈/dd〉
のときにbbbだけ取り出すにはどうすればいいですか?
0157デフォルトの名無しさん
垢版 |
2019/02/16(土) 13:46:48.84ID:lF7O1vpr
linux流行る→linuxの試験立ち上げ
ruby流行る→rubyの試験立ち上げ
python流行る→pythonの試験立ち上げ

常に後手後手だな経産省は
0159デフォルトの名無しさん
垢版 |
2019/02/16(土) 14:13:56.53ID:0EgtbNFo
二次元のエロ画像って、どうやって分類するの?
教えて!エロい人!?
0160デフォルトの名無しさん
垢版 |
2019/02/16(土) 14:25:52.61ID:LemtF0up
>>159
まず自力で集める
えろくない画像も集めておく
それを教師データにしてエロい・エロくないを学習させる
0162デフォルトの名無しさん
垢版 |
2019/02/16(土) 17:34:44.82ID:mSqP7pCT
フォルダを分ける
●永久保存
●たまに観たい
●あとで観る
●即消し

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

これで問題になるのは「即消し」フォルダにある画像も消したくても再学習のために消せないんじゃないかということ
0163デフォルトの名無しさん
垢版 |
2019/02/16(土) 21:35:51.99ID:cOF81sF3
pythonで開いたファイルを完全に閉じるにはどうしたら良いんでしょうか?
closeしたあとにshutil.moveで移動しようとしても、ファイルが使用中とエラーがでてしまいます。
0164デフォルトの名無しさん
垢版 |
2019/02/16(土) 22:09:05.36ID:/KIqi5pj
本当にPythonがハンドルを掴んでるのかまず確認しろ
「さっきまで開いてたから」は根拠にならない
0165デフォルトの名無しさん
垢版 |
2019/02/17(日) 00:00:34.97ID:Hg63DdMm
>>153-155
Ruby では、
str = "あ\\\"あ"

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

p では全体を、" " で囲んでいるように、文字列の内部表現を見ている。
一方、print では、文字列を外部に表示したもの
0166デフォルトの名無しさん
垢版 |
2019/02/17(日) 00:30:33.10ID:Hg63DdMm
>>156
jQuery 子要素を含まない text() が欲しい時
https://qiita.com/Urushibara01/items/7b44a3de5cc40d8a10be

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

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

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

他にも「jquery text 直下」で検索して、探してみれば?
0167166
垢版 |
2019/02/17(日) 00:46:15.18ID:Hg63DdMm
scrapyでよく使うxpath, cssのセレクタ
https://python.civic-apps.com/scrapy-xpath-css/

直下の子要素指定でフィルタの所に、xpath, css で、
<div>aaa<div>bbb</div></div> で、aaa だけを取得する方法が書いてある
0168デフォルトの名無しさん
垢版 |
2019/02/17(日) 01:19:40.29ID:p7gH0RbB
>>165
>文字列の内部表現、文字列を外部に表示
なんか良い表現だな
自分の言葉でこんな表現出来るルビ基地は頭は悪くないんだろうから、
基地外精神を直せばいい奴になるのにな。
俺らが気にするのは文字列を外部に表示のほうだからな
>>> "あ\\\"あ"
'あ\\"あ'
なら
>>> len( "あ\\\"あ" )
は4なのか5なのか
0171デフォルトの名無しさん
垢版 |
2019/02/17(日) 13:41:35.73ID:7mUUrd8D
>>170
違うものを閉じようとしてるんじゃね
0172デフォルトの名無しさん
垢版 |
2019/02/17(日) 14:08:27.77ID:+S0MQzvf
>>165 なんで python スレに Ruby の解説を持ち込まないといけないんだよ。 python をさわれないなら黙って見てろ。

python で説明するなら、

str = "あ\\\"あ"
rstr = r"あ\\\"あ" # raw string
print(str,rstr)
#あ\"あ あ\\\"あ
l
0174デフォルトの名無しさん
垢版 |
2019/02/17(日) 14:32:37.51ID:+S0MQzvf
>>172 普通は解釈(代入)段階でエスケープされるけど、raw 指定された場合は、エスケープしないだけで、結果としてできた文字列はどちらも str 属性のまま。
0175デフォルトの名無しさん
垢版 |
2019/02/17(日) 15:01:00.41ID:+S0MQzvf
>>139 tab 非推奨って本当?
サンプルコードを拾ってくると確かにタブは使われていない。
でもそれを修正して使おうとするとタブが入るから、エラーとされる。
合わせるのが大変なんだけど、みんなどうしてんの?
0176デフォルトの名無しさん
垢版 |
2019/02/17(日) 15:09:57.38ID:2Zsn/By5
yesタブ非推奨
正規表現できるエディタ(秀丸エディタとか、sakuraエディタ)で
\tを「 」(半角スペース4つ)に一斉置換でおk
0178デフォルトの名無しさん
垢版 |
2019/02/17(日) 15:27:26.15ID:yxjz1BDw
>>171
すいません、解決しました、
文法がRubyとごっちゃになってcloseに()が付いてませんでしたorz
エラーにならないから全然気づかなかった…
0179デフォルトの名無しさん
垢版 |
2019/02/17(日) 15:39:19.93ID:yfMLX38R
>>176 一括変換はどのようにしてもできるんだけど、コピペして動かそうとして修正するときに面倒。

利口なIDEなら両方を調整してくれても良さそうなものだけどな。
まだ、IDEをどうするのか決めてないし、とりあえずEclipseに入れるつもりだけど、なんか途中でつまづいてる。
0182デフォルトの名無しさん
垢版 |
2019/02/17(日) 17:29:14.69ID:+S0MQzvf
>>180 IDEはまだ使っていないって、pythonista やjupyter で練習中
ただ、IDEでスペース挿入できたって、コピペしたやつとスペースの数が違えばダメだろ? 大抵は一括変化できるだろうけど。

それでもjupyter などで使おうとするとやはり苦労するよね?
0183デフォルトの名無しさん
垢版 |
2019/02/17(日) 17:50:07.52ID:+S0MQzvf
質問(1)
‘__main__’ in globals()
や、
2 in [1,2,3]
がTrueになるのはなんで?
定数 in 集合は、定数を取り出せと言う意味なのかな?

i in [1,2,3]
が許されないのは何を取り出すのわからないからかな?

質問(2)
print( [i for i in [1,2,3] ] )
が許されて
print( (i for i in [1,2,3] ) )
が許されないのがわからない。
0184デフォルトの名無しさん
垢版 |
2019/02/17(日) 17:56:47.88ID:T3+WXnTJ
>>183 質問(1)は自己解決
まともな文法書を読み始めて2日目で、ようやくたどり着いた。

《in演算子によるメンバシップ検査》
書き方: 要素 in リスト 
リストの中に要素があればTrue,なければFalseを返す.要素が含まれないことを検査するにはnot inと記述する
0185デフォルトの名無しさん
垢版 |
2019/02/17(日) 18:15:18.83ID:naWxhgEk
>>182
グダグダ言う暇あったらテキトーなIDE使ってみなよ
スペースの数とかも指定できる
そもそも他の開発者がいちいち一括変換とかして苦労してるわけ無いだろ
0186デフォルトの名無しさん
垢版 |
2019/02/17(日) 19:09:07.40ID:9eEjpIke
>>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
■ このスレッドは過去ログ倉庫に格納されています

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