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


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

くだすれPython(超初心者用) その39



1 名前:デフォルトの名無しさん [2018/08/24(金) 07:50:35.97 ID:VD4/++xS.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

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

2 名前:デフォルトの名無しさん [2018/08/24(金) 07:50:54.90 ID:VD4/++xS.net]
◆関連リンク Python の Home Page
www.python.org/

◆長いコードはこういうところにはってください
ideone.com/
codepad.org/
pastebin.com/
dpaste.com/
https://try.jupyter.org/

◆まとめwiki
python.rdy.jp/

3 名前:デフォルトの名無しさん [2018/08/24(金) 11:55:16.20 ID:ZVlysGry.net]
ストロー廃止

4 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:34:04.92 ID:RSpOEB9t.net]
『日経ソフトウェア2018年7月号』
「新連載 金融データをPythonで分析してみよう」p.050-
のとおりにやってみてここまではうまく行ったのですが、
ここで
>>> ts.RateBid.diff().round(3).sort_values().dropna().unique()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/pandas/core/generic.py", line 1843, in __getattr__
(type(self).__name__, name))
AttributeError: 'Series' object has no attribute 'sort_values'

「Seriesオブジェクトはsort_valuesなんてアトリビュートを持ってないよ」
というエラーをPython3.4.2が吐き出しました。(´

5 名前:Eω・`)
ただそれだけ。書いてみたかっただけです。それじゃまた。
[]
[ここ壊れてます]

6 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:59:48.14 ID:O0T9h+Ku.net]
>>4
日経ソフトウエアって読む価値ありますか?(゚Д゚)?

7 名前:デフォルトの名無しさん [2018/08/24(金) 22:42:39.09 ID:J2z8mB41.net]
環境整えてみたんですが
いざなにを作ればいいんですか?

8 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:55:45.28 ID:A0MvxlLt.net]
自分探しの旅みてーな疑問だな

9 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 04:28:11.12 ID:gxBSyOuw.net]
日経ソフトウエアは、読む価値なし

日経Linux、WEB+DB、Software Design などは良い

10 名前:sage [2018/08/25(土) 09:53:53.61 ID:XgYSdCc9g]
Ubuntu 18、UTF-8環境、Python 3.6.5です。
PHP(こっちもUTF-8)から引数を受け取ってPyhonで処理するプログラムを作っています。まずPHP側で
$arg = '日本語1 日本語2';
$cmd = 'python3 python.py "'.$arg.'"';
exec($cmd, $output);
とやって、python.pyで
import sys
a = sys.argv[1]
b = a.split(' ')
#listhoge{'日本語1': 0, '日本語2': 1,.....}
c = listhoge[a[0]]
で「日本語1は0」という結果を得たいのですが、
c = listhoge[a[0]]のところで
KeyError: '\udce6\udc97\udca5\udce6\udc9c\udcac\udce8\udcaa\udc9e1'
となってしまいます。
c = listhoge['日本語1']
なら、cは期待通り0が代入されます。
print(a)
#日本語1 日本語2
print(a[0])
print(a[1])
#日本語1
#日本語2
で、引数自体は受け取れているようなのですが、
if a[0] == '日本語1':
    print('OK')
else:
    print('NG')
の結果は「NG」です。
listhogeに正しく値を渡すには、どうしたらよいでしょうか。ご教示よろしくお願いします。



11 名前:9 [2018/08/25(土) 10:43:20.77 ID:lc6+Z78bq]
すみません。a[0].a[1]としているところは、正しくはb[0].b[1]でした。
で、b[0] == 日本語1にならず困っています

12 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:02:26.96 ID:H9tlLYtz.net]
Ubuntu 18、UTF-8環境、Python 3.6.5です。
PHP(こっちもUTF-8)から引数を受け取ってPyhonで処理するプログラムを作っています。まずPHP側で
$arg = '日本語1 日本語2';
$cmd = 'python3 python.py "'.$arg.'"';
exec($cmd, $output);
とやって、python.pyで
import sys
a = sys.argv[1]
b = a.split(' ')
#listhoge{'日本語1': 0, '日本語2': 1,.....}
c = listhoge[a[0]]
で「日本語1は0」という結果を得たいのですが、
c = listhoge[a[0]]のところで
KeyError: '\udce6\udc97\udca5\udce6\udc9c\udcac\udce8\udcaa\udc9e1'
となってしまいます。
c = listhoge['日本語1']
なら、cは期待通り0が代入されます。
print(a)
#日本語1 日本語2
print(a[0])
print(a[1])
#日本語1
#日本語2
で、引数自体は受け取れているようなのですが、
if a[0] == '日本語1':
print('OK')
else:
print('NG')
の結果は「NG」です。
listhogeに正しく値を渡すには、どうしたらよいでしょうか。ご教示よろしくお願いします。

13 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:17:20.53 ID:5go0Mg15.net]
>>11
a[0]は日でa[1]は本
if b[0] == "日本語1":
にすればいい

14 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:38:37.45 ID:H9tlLYtz.net]
>>12
すみません!コードを抽象化するときに書き間違えました。
a[0].a[1]のところは、正しくはb[0].b[1]です。
せっかく教えていただいたのにすみません。
b[0]を日本語1と評価されるようにするにはどうしたらよいでしょうか。

15 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:53:10.81 ID:5go0Mg15.net]
>>13
日本語1の1が全角とか?

b[0]の出力をそのまま
b[0]== の後にコピペしてもfalseになるの?

16 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:10:46.62 ID:H9tlLYtz.net]
>>14
コピペで試しているので、文字列は同一だと思います。
今、試しにコマンドラインでスクリプトに引数を渡すと、コンソール上では期待通りの動作をしました。
PHPからだと、print出力的には同一に見えるけど別なデータになっているということでしょうか

17 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:31:58.85 ID:5go0Mg15.net]
>>15
PHPから受け取ったのがstrじゃなくてbyte型なのかな?type()で調べてみたら?

18 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:46:56.88 ID:kfh++Yrt.net]
必要なとこだけコピペで貼ってくれ

19 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:50:43.54 ID:H9tlLYtz.net]
>>16
type(b[0])
だと何も返ってこないのですが、
type(b[0] is str)
だとTrueが返って来ます

20 名前:a [2018/08/25(土) 12:11:07.51 ID:ieXJ7jC8V]
android エミュレーター mumu で簡単自動周回
ankulua.boards.net/thread/1157/mitrasphere-automatic-lap-emulator-mumu



21 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 13:02:46.63 ID:H9tlLYtz.net]
>>17
すみません。これでいかがでしょうか。
PHP 7.2
$cmd = 'python3 python.py "日本語1 日本語2"';
exec($cmd, $output);

Python 3.6.5
# coding: utf-8
import sys
listhoge = {"日本語1":0, "日本語2":1}
a = sys.argv[1]
b = a.split(' ')
c = listhoge[b[0]]

error.log
Traceback (most recent call last):
File "python.py", line 23, in <module>
c = listhoge[b[0]]
KeyError: '\udce6\udc97\udca5\udce6\udc9c\udcac\udce8\udcaa\udc9e1'

22 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:30:45.41 ID:kfh++Yrt.net]
>>20
文字コード不一致してね?

LANG=xxx python3 python.py "日本語1 日本語2"
とかで、ロケール設定して実行してみたら?

23 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:50:58.87 ID:H9tlLYtz.net]
>>21
動きました! ありがとうございます!
system localeはLANG=ja_JP.UTF-8だったので、そこは疑ってませんでした。

24 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 18:14:21.70 ID:P/kKO950.net]
また今日も天才に救われた人が居るな、解決おめでとう!

25 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 01:55:23.42 ID:TJFxEnkY.net]
プログラム初学者ですが、入門書を買って勉強しております。
複合代入演算子の項を見ていたら1点疑問があり、

who = '猫'
text = ''
text += '吾輩は'
text += who
text += 'である。'
print(text)

これ本では2行目の''が大事だと書かれているんですが、省略して


who = '猫'
text = '吾輩は'
text += who
text += 'である。'
print(text)

とするのはだめなのでしょうか?
初歩的な質問ですみません。

26 名前:デフォルトの名無しさん [2018/08/26(日) 02:11:05.36 ID:xGLfO5+N.net]
>>24
text += 'XXX'
で形が揃うから見やすいとかコピペや順序入れ替えが楽って以外の意味はないと思う
というか理由が書いてないならあまり良くない入門書だな

3.6以降ならf-stringを使って
text = f'我輩は{who}である'
のほうが良さげ
https://atsuoishimoto.hatenablog.com/entry/2016/12/25/122220

27 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 02:24:57.28 ID:TJFxEnkY.net]
>>25


28 名前:ありがとうございました。URL参考になりました。
入門書はいろいろ調べてみたんですけどやはり周りに修学者がいないと選びにくいですね。
[]
[ここ壊れてます]

29 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 04:17:09.95 ID:L324XJEs.net]
みんなのpythonって本はプログラム知識が殆ど無い入門者にお勧めできますか?
本屋で立ち読みしようと思ったんですけど無くて、アマゾンで調べたら評価はまちまちみたいで…

30 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 07:36:47.56 ID:w0D5YFHr.net]
この2冊は、既にプログラミングが出来る人向け。
数言語は知っていて、Ruby, Python を学ぶ人向け

たのしいRuby 第5版、2016
みんなのPython 第4版、2017

以下の本は、プログラミング初心者でも読める。
スッキリわかる Java入門 第2版、2014

知らないけど、progate のサイトで勉強すれば?



31 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 07:44:31.55 ID:KclbjBGL.net]
>>24
同じように動くという意味では問題無い。


著者としては空の変数を定義することで
変数の宣言と値の代入を分離したかったんじゃないかな?
pythonでは変数を明示的に宣言だけすることはできないから、

32 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 07:49:32.68 ID:KclbjBGL.net]
>>27
合うか合わないかは人によるから
kindleでお試し読んでみたら

33 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 07:58:14.06 ID:L324XJEs.net]
>>28
スッキリわかるjavaはやりました
なのでその次に読む本として選んでみました。大丈夫そうですか?
簡単だと良いんですが

34 名前:25 mailto:sage [2018/08/26(日) 09:57:49.56 ID:w0D5YFHr.net]
読む順番としては、先に「たのしいRuby」を3回読むと、
「みんなのPython」が楽に読める

「みんなのPython」を先に読むと、内容が薄くて、現実味が無いかも。
つまり、よくわからない

たのしいの方が、正規表現とか、内容が濃い

35 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 10:32:43.51 ID:L324XJEs.net]
>>32
そうなんですね。みんなのpythonの方が表紙にでっかく絵が書いてあったり
堅苦しい内容じゃなさそうで入門向けで良いのかなって思ったんですが内容ないんですね…
わかりました。たのしいruby買います。アドバイスありがとうございます

36 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:18:03.60 ID:Y1vMA8RK.net]
>>33
そいつは有名なruby荒らしだぞ。
python勉強するのになんでruby本読む必要があるんだよ。よく考えろ

37 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:39:56.34 ID:O9adGcKd.net]
もうrubyをNGしてもいいぐらい

38 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:15:35.15 ID:wR7TFJf0.net]
ガイジに優しくしよう

39 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 19:59:11.67 ID:7VGl0ROF.net]
脈略のないrubyコードの貼り付け、ruby本の紹介は禁止ってテンプレに入れておいてくれ

40 名前:25 [2018/08/26(日) 23:41:34.26 ID:w0D5YFHr.net]
Ruby, Python, JavaScript というのは、単なる各言語の文法書。
プログラミングの本じゃない

オブジェクト指向・クロージャ・スコープ・this などの概念を、学べるわけではない。
文法書を読んでも、プログラミングは出来ない

文法書を読むとプログラミングができると、ほとんどの奴は勘違いしているけど、
「みんなのPython」を読んでも文法がわかるだけで、プログラミングが出来るようにはならない

「たのしいRuby」「スッキリわかる Java入門」などを読んで、
自分でクラスを派生させたり、CSVファイルを読み書きしたり、
Sinatra をいじくりまわしたり悪戦苦闘しながら、プログラミングを学ぶ

プログラミングを学ぶ部分は、Pythonじゃなくてもよい。
いじくりまわすのには、Rubyが最も簡単

プログラミングを学ぶには、各言語の「Effective 何々」という本を読む。
これは、プロの必須本。
文法書の次のレベルへ行かないと、プログラミング自体を学べない



41 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 00:26:43.00 ID:lvpUeXXJ.net]
Rubyは衰退していくだけのオワコン言語だから手を出したら負け組だよ

42 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 00:53:03.94 ID:HhBAi2Wr.net]
Rubyみたいなオワコン言語の話は余所でやれ

43 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 02:33:22.67 ID:+WOcodwf.net]
スクリプトのやり方教えて下さい
認識できないって出るんですけど…

44 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 03:15:17.22 ID:yTR9Y+Mn.net]
>>27
プログラミング未経験でオライリーの入門Pythonを買ってがんばってる
今のところついていけてるけど、
みんなのPythonはきっとイラストや絵が入ってて紙面もカラーなんだろうなって考えるとうらやましい
こっちは絵もイラストも全くないです

45 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 03:17:20.38 ID:yTR9Y+Mn.net]
早速躓いた

>>29
変数

値の代入
ってとうちがうんですか?

46 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 03:21:04.08 ID:yTR9Y+Mn.net]
プログラミング自体を学ぶのにこれはどうですか?

初めてのプログラミング
https://www.oreilly.co.jp/books/9784873114699/

PythonじゃなくてRubyで説明されてるみたいなんですけど

47 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 06:12:09.02 ID:ba8BcfX3.net]
与えられた2つの数値から、最小公倍数・最大公約数を求めてみろ

48 名前:デフォルトの名無しさん [2018/08/27(月) 07:06:23.18 ID:A3+vkFVR.net]
>>44
pythonなら「独学プログラマーーpython」がある。

49 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 07:25:20.50 ID:fqwvA6xk.net]
スタートブックとかの方が分かりやすいんじゃないの?
プログラム初心者なら

50 名前:デフォルトの名無しさん [2018/08/27(月) 12:18:58.34 ID:Q4eMB8Ps.net]
>>45
互除法



51 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:06:47.86 ID:KW/ftoFq.net]
subprocessについてなんですが、

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
import subprocess


dl = subprocess.run(["radigo", "rec", "-a=JP13", "-id=QRR", "-s=20180827200000"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)

上記のような場合、変数を引数の一部として渡すにはどうやるんですか?
以下だと{proglamId}という文字列として外部コマンドに送られてしまってダメでした。

area = 'JP13'
ch = 'QRR'
proglamId = '20180827200000'
dl = subprocess.run(["radigo", "rec", "-a={area}", "-id={ch}", "-s={proglamId}"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)

52 名前:デフォルトの名無しさん [2018/08/27(月) 21:26:41.39 ID:6eK9kwOU.net]
>>49

>>> proglamId = '20180827200000'
>>> f'-s={proglamId}'
'-s=20180827200000'

53 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:33:33.15 ID:KW/ftoFq.net]
>>50
どうもありがとうございます。
2行目はfフォーマットって言うんですかね?それを使っていると思うんですが、46のsubprocessの中ではどう書くんでしょうか?

54 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 21:56:03.71 ID:KW/ftoFq.net]
>>51
出来ました。

パターン1
area = 'JP13'
ch = 'QRR'
proglamId = '20180827200000'
dl = subprocess.run(["radigo", "rec", f'-a={area}', f'-id={ch}', f'-s={proglamId}'], stdout=subprocess.PIPE)

パターン2
area = 'JP13'
area = f'-a={area}'
ch = 'QRR'
ch = f'-id={ch}'
proglamId = '20180827200000'
proglamId = f'-s={proglamId}'
dl = subprocess.run(["radigo", "rec", area, ch, proglamId], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)



55 名前:チちがスマートな書き方ですか? []
[ここ壊れてます]

56 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 23:29:37.66 ID:KW/ftoFq.net]
muxx = subprocess.run(["muxer", f'-i input.aac?sbr', f'-o output.m4a', f'--optimize-pd', f'--file-format m4a'], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)

とやると、muxerコマンドからは
Error: you specified invalid option: -i input.aac?sbr.
と返ってきてしまいます。

muxx = subprocess.run(["muxer", "-i input.aac?sbr", "-o output.m4a", "--optimize-pd", "--file-format m4a"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
これでも上記と同じエラーになり、

muxx = subprocess.run([f'muxer -i input.aac?sbr -o output.m4a --optimize-pd --file-format m4a'], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
これだとPythonがエラーになってしまいました。

Usageは
muxer [global_options] -i input1 [-i input2 -i input3 ...] -o output
です。

コンソールで以下のようにやると正常に動いてくれます。
$ muxer -i input.aac?sbr -o output.m4a --optimize-pd --file-format m4a
何がいけないんでしょうか?

57 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:20:33.07 ID:TEJeUOom.net]
端末で入力すると、シェルが、? の機能を動かすけど、

subprocess で、プロセスを直接起動すると、
シェルが介入しないから、? が展開されないとか?

58 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 00:26:18.50 ID:wjmNvrcp.net]
>>54
?sbrの部分を省いてもエラーは改善しなかったです

59 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 05:00:41.28 ID:PEha72vP.net]
shell=true
とかは? と muxer なんて知らないくせに適当に言ってみる

60 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 05:07:01.91 ID:PEha72vP.net]
ん?
その前に
stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
の部分って必要なの?



61 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 08:35:42.53 ID:M3D05fOs.net]
>>53
もちろんrunの第一引数が悪い
"-i"と"input.aac"を分けろ

62 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 08:36:39.19 ID:skYXWt6l.net]
>>53
上2つは "-i input.aac?sbr" がオプションとして認識されてそう。'-i', f'input.aac?sbr' とかで分けてくれ
3つ目は shell=True で動く(/bin/sh -c 'muxer ....' と展開される)
シェルインジェクションとかあるので、お作法として shell=True はあまり使わないほうがいいかな
詳しくはマニュアル参照

>>52
書き方は好みだからなんとも言えんなー俺ならこんな感じで書く
arg = 'hoge'
cmd = f'bash tst_cmd.sh {arg}'
resp = subprocess.run(cmd.split(), stdout=subprocess.PIPE)

スペース入りファイル名とか使うなら、パーサー作って食わすかな
import csv
def CMD_PARSER(cmd):
....return list(csv.reader([cmd], delimiter=' ', quotechar='"'))[0]

arg = 'hoge foo'
cmd = f'bash tst_cmd.sh "{arg}"'
resp = subprocess.run(CMD_PARSER(cmd), stdout=subprocess.PIPE)

63 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 08:39:26.15 ID:M3D05fOs.net]
空白が混じってると
> 一般に、引数のシーケンスを渡す方が望ましいです。なぜなら、モジュールが必要な引数のエスケープやクオート
> (例えばファイル名中のスペースを許すこと) の面倒を見ることができるためです
によってエスケープされるので意図通りにシステムコールに渡らないわけだな

64 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 10:16:39.79 ID:wjmNvrcp.net]
みなさんどうもありがとうございます

>>58
>>59
>>60
「-i ファイル名」の形式で書かないといけないので「-i」と「ファイル名」で分けて書くという頭が全くなかったです。

muxx = subprocess.run(["muxer", "-i", "input.aac?sbr", "-o", "output.m4a", "--optimize-pd", "--file-format", "m4a"], stdout=subprocess.PIPE)
と分けて書くとうまくいきました。

>>56
>>59
shell=trueについて調べてみます

>>57
この書き方だとsubprocess.callとsubprocess.check_callとsubprocess.check_outputの3つがまとめて出来るらしいのでこれで書きました []
[ここ壊れてます]

66 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 14:55:03.72 ID:WFu4qQCr.net]
find関数で
line.find('a')だと部分一致で返してくれるんですが
c=input() aと入力して
line.find(c)とすると完全一致でしか返してくれないんですがどうすればいいですか

67 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 16:02:01.79 ID:eDasHWl3.net]
んなこたぁない。

68 名前:デフォルトの名無しさん [2018/08/29(水) 09:39:33.95 ID:t35BnR1i.net]
python3m ってなんですか?

69 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 10:09:58.87 ID:zNgJ3vFs.net]
住友と関係が?

70 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 17:38:59.31 ID:zHN7x4pt.net]
xmlの属性を指定する場合、以下のどっちも同じ答えを返してくれるんですが、どっちで書くのがいいんでしょうか?

パターン1
duration1 = int(root.attrib["dur"])
print(duration1)

パターン2
duration2 = int(root.get("dur"))
print(duration2)



71 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:50:21.16 ID:+JD/mPB3.net]
BeautifulSoup前提で喋ってます?
もしそうなら、属性が存在する限りどちらでもよい
getは属性が存在しないときNoneを返すが、attribはそうではない
まあ試してみ

72 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 19:54:41.40 ID:zHN7x4pt.net]
>>67
どうもありがとうございます
xml.etree.ElementTreeです
たしかに存在しない場合の挙動は違ってました

73 名前:デフォルトの名無しさん [2018/08/29(水) 21:03:23.42 ID:LyGOIS06.net]
すいません日付の計算で疑問なんですが、

aaa_date_str = '2018-08-29 20:00:00'
bbb_date_str = '2018-08-29 19:00:00'

aaa_date = datetime.datetime.strptime(aaa_date_str, '%Y-%m-%d %H:%M:%S')
bbb_date = datetime.datetime.strptime(bbb_date_str, '%Y-%m-%d %H:%M:%S')


として、

date_diff = aaa_date - bbb_date
print(date_diff.days)
--> 0

になりますが、逆にすると、

date_diff = bbb_date - aaa_date
print(date_diff.days)
--> -1

になります。

差異が1日に満たなければゼロになるのかと思いきや
計算結果が負だとゼロにならずに-1になるのがなんか疑問です。
それとも記述に問題あるでしょうか。

74 名前:デフォルトの名無しさん [2018/08/29(水) 21:09:31.82 ID:GQLl9uCt.net]
>>69
3.0-3.1=-0.1だろう?0じゃないだろう?
そういうこった

75 名前:デフォルトの名無しさん [2018/08/30(木) 10:23:36.80 ID:S/vwwZyF.net]
int()とかと一緒か
[0.5]=0
[-0.5]=-1

76 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 21:55:04.51 ID:hf8/OGEv.net]
>>70
すいません、分からず…

逆に、3.1 - 3.0 = 0.1 はdaysだと0になるんです。

>>71
int()だと、正も負も小数点以下切り捨てではないですか?

77 名前:デフォルトの名無しさん [2018/08/30(木) 21:59:01.86 ID:Ffnu7dR5.net]
>>72
68が言ってるようにたぶん四捨五入なんだず

78 名前:デフォルトの名無しさん [2018/08/30(木) 21:59:56.98 ID:Ffnu7dR5.net]
おっと 1時間でも -1ってでるのか
じゃあ
時間は切り捨てじゃなくて四捨五入でもなくて切り上げになってんだ

79 名前:デフォルトの名無しさん [2018/08/30(木) 22:19:45.36 ID:Ffnu7dR5.net]
おっと
おれのうしろで
おれのいもうとが
「そのマイナス1はエラー値であって 数値じゃない diff.daysはぬるぽしない」
といっている

80 名前:デフォルトの名無しさん [2018/08/30(木) 22:29:53.78 ID:Ffnu7dR5.net]
それから
なぜ print(date_diff)してみないんだ
ともいっている



81 名前:デフォルトの名無しさん [2018/08/30(木) 22:42:08.44 ID:Ffnu7dR5.net]
おれは
aaa_date + date_diff
をためしてみてから、
timedeltaについての説明を読みに行くことを最終的におすすぬする。

82 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 23:01:55.56 ID:TEO8FkA/.net]
別マシンで書いたスクリプトを動かそうとしたら
dateutilが無いと言われ実行出来ません。

スクリプトにはこう書きました。
from dateutil.relativedelta import relativedelta

動いたマシンのPythonのバージョンは3.6.4、
動かないマシンのPythonのバージョンは3.6.5です。

dateutilはどこで入手するんでしょうか?

83 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 23:04:27.25 ID:TEO8FkA/.net]
すみません
pip で dateutilsを入れたら使えました。

84 名前:デフォルトの名無しさん [2018/08/31(金) 04:09:39.70 ID:rWvqNQHt.net]
python 3.6
windows10

import pyautogui

pyautogui.rightClick(100,100)
pyautogui.moveRel(10,10)

と書くと右クリックのあとマウスが動いてくれない。
これはライブラリのバグ?

85 名前:デフォルトの名無しさん [2018/08/31(金) 04:37:56.39 ID:rWvqNQHt.net]
ごめん動いてた

86 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 09:38:10.61 ID:cxARIA2x.net]
罰としてお前の

87 名前:ヒ起という突起をクリックしてやる []
[ここ壊れてます]

88 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:38:51.59 ID:IH56D7c/.net]
Dropboxの共有リンクを取得したいです。
dropbox.Dropbox(トークン).sharing_create_shared_link
を使うと、例えば
PathLinkMetadata(url='https://db.tt/xxxxxxx', visibility=Visibility('public', None), path='/hoge/hage.jpg', expires=None)
こういう1行が出力されます。
sharing_create_shared_link以外の関数で、
https://db.tt/xxxxxxxだけを出力する関数ってありますか?

続く

89 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:39:30.70 ID:IH56D7c/.net]
sharing_create_shared_linkだと、以下のようになります。

import dropbox

dbxTOKEN = 'DROPBOX_MY_ACCESS_TOKEN'
dbxRemotePath = f'/aiueo/hage.jpg'
dbx = dropbox.Dropbox(dbxTOKEN)
dbx.users_get_current_account()

# アップロード
f = open(dbxLocalPath, 'rb')
dbx.files_upload(f.read(),dbxRemotePath)
f.close()

# 共有リンクの取得
dbxLink = dbx.sharing_create_shared_link(dbxRemotePath,short_url=True) # Dropbox から共有リンクを取得
dbxLink = str(dbxLink)[17:-1] # 整形 「PathLinkMetadata(」と「)」を除外
dbxLink = dbxLink.split(',') # リストに変換
dbxLink = dbxLink[0] # リストの1番目 (url)
dbxLink = str(dbxLink)[5:-1] # 整形
print(dbxLink)

https://db.tt/xxxxxxx # プリントされたurl

つづく

90 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 19:40:14.75 ID:IH56D7c/.net]
文字列を分割してその中の一部を取り出す方法ですが、
PathLinkMetadata(url='https://db.tt/xxxxxxx', visibility=Visibility('public', None), path='/hoge/hage.jpg', expires=None)
こういう1行があったとして、

url='https://db.tt/xxxxxxx',
visibility=Visibility('public', None),
path='/hoge/hage.jpg',
expires=None

こんなふうに分割したいです。
split(',')でやるとpublic', Noneここのコンマでも反応してしまいます。
今回はurlの取得が目的なので今の所実害は無いんですが、もっと簡単にdorpboxの共有リンクを取得したり確実な文字列の分割方法を知りたいです。



91 名前:デフォルトの名無しさん [2018/09/01(土) 12:32:11.32 ID:Z1lBiRzX.net]
>>85
ずいぶん遠回りしてるけど、
a=dropbox.Dropbox(トークン).sharing_create_shared_link
として、
a.url
を参照すれば良いのでは?
他についても
a.path とかで参照できるはず

92 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 15:22:01.82 ID:5RO4iQNV.net]
すいません、ハマって困っています。

utf-8のテキストファイル(内容は'1'という文字のみ)を、python3の以下のスクリプトで
読み込んで、整数に変換しようとすると、以下のエラーが出て困っています。
Traceback (most recent call last):
File "collect_progress.py", line 75, in <module>
num = int(str)
ValueError: invalid literal for int() with base 10: '\ufeff1'
ユニコードの文字列は整数変換できないのでしょうか。

fr = open("sample.txt")
str = fr.readline()
num = int(str)

93 名前:デフォルトの名無しさん [2018/09/01(土) 15:26:08.43 ID:VfnjVYeD.net]
BOMついてないか

94 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 15:37:12.61 ID:kUpkBQ3x.net]
echo 1 | ruby -e 'STDIN.each { |line| puts(line.to_i + 1) }'

Ruby なら、シェルから、1-liner で、2 と出力される

Python でも同じように、1-liner でやってみれば?

95 名前:デフォルトの名無しさん [2018/09/01(土) 15:55:11.65 ID:A/mNPeDe.net]
>>87
open("sample.txt", encoding="utf-8-sig")

> いくつかの領域では、UTF-8 でエンコードされたファイルの先頭に "BOM" を利用する習慣があります;

中略
> もし、そのようなファイルを読む場合には、この印を自動

96 名前:的にスキップするために 'utf-8-sig' コーデックを利用してください。
https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data
[]
[ここ壊れてます]

97 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:02:39.43 ID:kUpkBQ3x.net]
プログラムでは、BOMなしUTF-8 (UTF-8N)を使った方が無難

その代わり、Windows のExplorer ではテキスト検索できなくなるから、
Windows10・WSL・Ubuntu から、grep してる

98 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:30:27.70 ID:eWdCnGo4.net]
>>86
どうもありがとうございます!
.urlなどで簡単に取り出せました。
これはdropboxのライブラリの機能でしょうか?

99 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 16:55:46.47 ID:5RO4iQNV.net]
>>88, 86, 87, 88
ありがとうございます。
BOMが原因でした。

恥ずかしいことに、BOMというのは全く知りませんでした。
助かりました。

100 名前:デフォルトの名無しさん [2018/09/01(土) 20:51:46.35 ID:5sfxmNQl.net]
>>92
まあそうだと思う。
自分はDropboxライブラリを使ったことはないけど、>>83を見ると戻り値としてPathLinkMetadataオブジェクトが返ってきていて、属性としてurlとかpathとかがある事がわかった(これはpython的に考えればわかる)

使うメソッドとかについてはドキュメント読むと今回みたいなことはすぐ分かるだろうし、勉強にもなるよ



101 名前:デフォルトの名無しさん mailto:sage [2018/09/01(土) 23:59:25.43 ID:eWdCnGo4.net]
>>94
.sharing_create_shared_linkはドキュメントの中で見つけた関数なんですが、英語分からないから試行錯誤していました
ありがとうございます

102 名前:デフォルトの名無しさん [2018/09/02(日) 05:35:01.36 ID:0w6R8dvF.net]
Python初心者(プログラミング初心者)です。
スクレイピングをしようとしていたら躓いてしまったので質問をさせてください。
requestsで変数htmlに入れたサイトのhtmlをファイルに保存したいのですが良く分かりませんでした。
file.writeみたいなのも書いてみてるんですがエラー吐かれたりします。誰か例として作ってくれませんか?
requests.getで変数htmlに取得したサイトhtmlをc:/user/hoge/Documents/hymlfile.htmlに追記モードで保存したいです。
無能でごめんなさい助けてください。

103 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 07:13:26.28 ID:5WqNet32.net]
File.open(file_path, 'a') { |io| io.write text }

Ruby では、File.open の引数に、
ファイルパスと、ファイルを開く際の、mode を渡す

a なら追記書き込み

「python file write」で検索!

104 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 08:24:22.51 ID:GLq4HnWW.net]
import requests

r = requests.get("https://www.python.org")
f = open("c:/user/hoge/Documents/hymlfile.html", "a")
f.write(r.text)

105 名前:デフォルトの名無しさん [2018/09/02(日) 09:00:47.26 ID:0w6R8dvF.net]
>>98
てゃんks
無事解決しました本当にありがとう
やっと眠れtる

106 名前:デフォルトの名無しさん [2018/09/02(日) 16:47:00.30 ID:RE+xVvI9.net]
f.write(r.text)

UnicodeEncodeError: 'cp932' codec can't encode character '\U0001f5a5' in position 12657: illegal multibyte sequence

スクレイピングしたサイトに絵文字があると(?)このエラーが起こるようです。
エンコーディングの関係だと思うんですけど対処法分かる方いますか?
UnicodeEncodeErrorで調べたら解説しているところが少し見つかったんですが僕には何が言いたいのかさっぱりでした。。。。

107 名前:デフォルトの名無しさん [2018/09/02(日) 16:56:55.96 ID:RE+xVvI9.net]
f.openの時にencoding='utf-8'渡したら解決しました!!
うれしい!!!ありがとう

108 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 16:59:32.33 ID:5WqNet32.net]
cp932 はやめて、BOMなしUTF-8(UTF-8N)で書き込めば?

それか、エンコード

109 名前:変換できない文字は、
エラーにせずに、? に置き換えるとか
[]
[ここ壊れてます]

110 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 17:49:53.80 ID:B4IY8jcq.net]
ElementTree、lxml、BeautifulSoupってそれぞれどう違うの?



111 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 17:51:26.55 ID:B4IY8jcq.net]
ElementTreeは純正
lxml、BeautifulSoupはサードパーティ

lxmlは高速だけど、動的なサイトに弱い
BeautifulSoupは比較的簡単

って感じ?

112 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 19:12:56.97 ID:dvfcpVZJ.net]
何が言いたいのか

113 名前:デフォルトの名無しさん [2018/09/02(日) 19:26:55.59 ID:/VgxTU/I.net]
開けっ放しにするんはいけんよ

114 名前:デフォルトの名無しさん mailto:sage [2018/09/02(日) 20:28:17.67 ID:NdoNeabl.net]
lxml 言う程速さを感じないんだよな

115 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 01:13:17.00 ID:IUTdxFc1.net]
import requests
from lxml import etree

url = example.com
res = requests.get(url)
res.raise_for_status()
xmlroot = etree.fromstring(res.content)
progroot = xmlroot.find(なになに)
aaa = progroot.find(info)
print(aaa)

<Element info at xxxxxx>
がプリントされます。

aaa = progroot.find(info).text
とすると、

<div class="station_content_description "><table border="0" cellpadding="5" > <tr> <td style="padding: 5px;">
<img src="https://example.com/aaa.jpg" height="60" width="60"alt="ふじこ"></td> </tr></table><br />
<br /> あいうえお<br />かきくけこ
<br /><br /> 番組Webサイト:<a href="example.com/">http://example.com/</a><br />
メッセージフォーム:<a href="example.com/mail.html">http://example.com/mail.html</a><br />
<br /></div>

がプリントされます。(投稿できなかったので途中で改行してます)
次に、本文はどうやって取り出すんでしょうか?

116 名前:デフォルトの名無しさん mailto:sage [2018/09/03(月) 01:49:47.20 ID:BfF9DJB1.net]
要素の内側のテキストを収集するためには、itertext() を参照してください。例えば "".join(element.itertext()) のようにします。

117 名前:デフォルトの名無しさん [2018/09/03(月) 19:12:05.50 ID:ttVcJTrG.net]
Ruby のNokogiri なら、CSS セレクター・XPath とか

jQuery でも、CSSセレクター

118 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 00:43:50.19 ID:YKdnoVr6.net]
```python
hstg = info.get('hashtags')
print(hstg)

# hashtag

p_url = info['url']['short']
```

p_urlの行をget()だとどう書けばいいですか
辞書にアクセスした時存在しないキーだとNoneを返したいんでget()を使いたいんですが

119 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 01:06:41.32 ID:9wgcxN1e.net]
ようわからんが
info.get('url', {}).get('short')
とか?

若干無駄があるがこの程度の無駄が気になる神経症はCでも書いとけ

120 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 02:03:26.11 ID:YKdnoVr6.net]
>>112
どうもありがとうございます!
試してみます。
{}の中に'short'が入るイメージでしょうか?



121 名前:デフォルトの名無しさん [2018/09/06(木) 14:42:12.77 ID:tPMc56fx.net]
馬鹿はオウム返しですぐ次の質問するよね

122 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 15:13:17.47 ID:QdhwFBW3.net]
python 3.6.3
tkinter でファンクションキーを押したら文字列を表示させたいです

def text _desp(event):
  label["text"] ="bcdef"

label =tk.Label(root, text ="aaaaa", )
label.bind('<F1>', text_desp)
label.pack

と書いて、表示したウィンドウをアクティブにしてからF1を押してもtextが入れ替わりません
原因は何でしょうか?

123 名前:デフォルトの名無しさん [2018/09/06(木) 16:49:56.62 ID:ntAiYVJq.net]
インタプリタ言語最強

124 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 17:12:39.45 ID:QdhwFBW3.net]
>>115
rootにbindしたらいけました
すみません

125 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 18:22:16.04 ID:t3mpF7WK.net]
VSCodeの「ターミナルで選択範囲/行を実行」って機能をよく使うんですけど
作ってる最中のfor文内(1行目がインデントしてるテキスト)をテストしたいときは
インデントを一時的に消して実行するしか無いんですかね?

IPythonなら1行目がインデントしてても実行してくれるけど
あれはターミナルにフォーカスを移してEnterを押さないと

126 名前:タ行してくれないのが不満だし []
[ここ壊れてます]

127 名前:デフォルトの名無しさん [2018/09/06(木) 18:56:40.11 ID:r2CzgwVn.net]
馬鹿はオウム返しって言うの好きだよね

128 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 19:24:48.49 ID:UI2giREj.net]
VSCode の拡張機能のCode Runner を入れたら、
右クリックメニューから、そのまま実行できる

または、選択したコードを実行できる

129 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 21:13:55.88 ID:fyvsaEga.net]
入門書で学んでるプログラミング初学者です。
数字以外を入力した場合に「不正な値です」と表示させたいのですが計算を間違えた際にも「不正な値です」と出てしまいます。
どこを直したらいいでしょうか?
from random import randint
miss = 0
correct = 0
print("問題?3回間違えたら終了。qで終了")
while miss<3 :
a = randint(1,100)
b = randint(1,100)
ans = a + b
question = f" {a} + {b} は?"
value = input(question)
#qと入力されたら終了
if value == "q":
break
#正解か不正解か判断する
if value == str(ans) :
correct += 1
print("正解です!")
elif type(value) != int :
print("不正な入力です。")
else :
miss += 1
print("間違い!","×" * miss)

print("----終了----")
print("正解 :", correct)
print("間違い:", miss)

130 名前:デフォルトの名無しさん [2018/09/06(木) 21:16:02.79 ID:r2CzgwVn.net]
当っとるからええやん



131 名前:デフォルトの名無しさん mailto:sage [2018/09/06(木) 21:16:08.52 ID:fyvsaEga.net]
あれ、書き込みにインデントが反映されてない…

132 名前:デフォルトの名無しさん [2018/09/06(木) 21:33:42.86 ID:rG7JeulO.net]
>>123

ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除

>>1

133 名前:デフォルトの名無しさん [2018/09/06(木) 21:46:28.09 ID:r2CzgwVn.net]
>>121
真面目に添削すると

数字意外を入力した場合に「不正な値です」と表示する
→数字でないならそもそも値ではないやんか、何言っとんやわれ?なめとんか?
「不正な入力です」と表示する
→不正というワードは否定形なのでわかりにくい
「間違った入力です」と表示する
→何が間違っているのかわからない
「数字以外の入力です」と表示する
→だからどうすれば良いのかわかりにくい
「数字を入力してください」と表示する
→漢数字でもええんか?
「答えになる数値を入力を入力してください」と表示する
→めっちゃわかりやすいやん!

134 名前:デフォルトの名無しさん [2018/09/06(木) 21:56:28.45 ID:bpm1lb7O.net]
>>121
assert使うといいよ

135 名前:デフォルトの名無しさん mailto:sage [2018/09/07(金) 00:32:30.89 ID:hV93LKBw.net]
>>124
すみません。テンプレ読み直します。
>>125
ありがとうございます。何気にすごく重要なことを教えてもらった気がする。
>>126
試してみます。

136 名前:デフォルトの名無しさん [2018/09/07(金) 16:30:33.98 ID:DKf48tK4.net]
>>125
イイネ!(・∀・)ワロタヨ!

137 名前:デフォルトの名無しさん [2018/09/07(金) 17:07:52.42 ID:82uhpEUK.net]
>>121
valueはstrだから、たとけ入力されたのが"123"とかの数'字'であってもtypeはstrになる
つまり、自分で明示的に型変換をしない限り何を入力してもtype(value)==intが成り立つ事はない

入力を受け取ったらまず最初にvalueをintに型変換したら?
int(value)でできるし、変換できない文字列が入って来たらエラーになるので例外処理で不正な入力も検知できるよ

138 名前:デフォルトの名無しさん [2018/09/07(金) 17:26:59.78 ID:po/zaTpZ.net]
たとけ

139 名前:デフォルトの名無しさん [2018/09/07(金) 18:10:30.75 ID:DKf48tK4.net]
たとけ

140 名前:デフォルトの名無しさん mailto:sage [2018/09/07(金) 18:16:00.07 ID:QgSvA/nW.net]
とたけけ



141 名前:デフォルトの名無しさん [2018/09/07(金) ]
[ここ壊れてます]

142 名前:20:30:20.91 ID:DKf48tK4.net mailto: とたけけけ []
[ここ壊れてます]

143 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 02:42:10.64 ID:zJ7GwxeF.net]
import dataset

db = dataset.connect('sqlite:///zoo.db')
table = db['zoo']

results = table.find(damages = '大けが')

# for record in results:
# print(record)

if results == None:
print('無いです')
else:
print('ありました')
print(results)


カラムの 『damages』 が 『大けが』 のレコードがあるか無いか知りたいんですが、当たり前だけどこれだとダメでした。どうやってあるかないかを調べたらいいんでしょうか?

144 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 03:07:51.29 ID:zJ7GwxeF.net]
自己レスです。
これで出来たっぽいけど他にもっといいやり方ありますか?


import dataset

db = dataset.connect('sqlite:///zoo.db')
table = db['zoo']

results = list(table.find(damages = '大けが'))

# for record in results:
# print(record)

if results == []:
print('無いです')
else:
print('ありました')
print(results)

145 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 07:56:53.17 ID:aeU58kvm.net]
>>129
丁寧にありがとうございます。
なるほど…例外処理でやってみます。

146 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 08:21:40.63 ID:BJl7Ln5g.net]
こんにちは。
pycharm という便利なものがあるとのことでさっそく使ってみました。
最新版の"PyCharm Community Edition 2018.2.3"をWindows 10 にインストールし、
プロジェクトの設定の"Existing interpreter"に、普段使用している cygwin64 の "python3.6m.exe"を
指定しました。IDEからRunすると問題なく実行されるのですが、ブレークポイントを設定して
Debugを実行すると、

pydev debugger: warning: trying to add breakpoint to file that does not exist: /cygdrive/c/pycharm_doc/test001/c:/pycharm_doc/test001/main.py (will have no effect)
という、ファイルが存在しないというエラーが出来ます。
cygwinのパスの表現と、windowsのパスの表現が合体した変なパス名が表示されます。
3台のPCで試したのですが、全部同じ結果でした。解決する方法はありますかねぇ。
(こちらの都合でcygwin環境が必須になっています)

147 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 08:54:48.94 ID:LzkjeqyB.net]
>/cygdrive/c/pycharm_doc/test001/c:/pycharm_doc/test001/main.py

Windows10・WSL で、Linux(Ubuntu)側から、Windowsのフォルダへアクセスしたような感じかね?

/mnt/c/Users/Owner/Documents

Ubuntu側から、WindowsのDocumentsフォルダへアクセス

148 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 09:21:46.04 ID:r9+/L/Cg.net]
>>135
試さずに書くけど、元のコードのfindをfind_oneに変えるか、
元のコードの条件文をif len(results) > 0:に変えれば動くんじゃない?

149 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 10:40:12.37 ID:BJl7Ln5g.net]
>>138
ありがとうございます。
もしかしたら、リモート(ssh)で接続するのが正解か?と思い始めました。
どうでしょうか。

150 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 12:03:41.47 ID:TO1NWAp1.net]
変数名つける時って何語くらいまででつけますか?
詳しく説明すると長くなるし、短いとかぶるし、省略とか頭文字みたいなのは良くないらしいですが
参考文献とかあったら教えてほしいです。



151 名前:デフォルトの名無しさん mailto:sage [2018/09/08(土) 12:43:49.56 ID:cbJtO1ny.net]
リーダブルコードでも読んでこい

152 名前:デフォルトの名無しさん [2018/09/08(土) 21:24:47.08 ID:JF6Ma/9C.net]
標準ライブラリとかメジャーなフレームワークコードのコード読んで好きなの選べばいいじゃん

153 名前:デフォルトの名無しさん [2018/09/08(土) 23:13:29.87 ID:fPoBP/2C.net]
>>141
頭文字で名付けても手にとるように意味がわかるコードが良いコードやね

154 名前:デフォルトの名無しさん [2018/09/09(日) 11:20:55.79 ID:kzlGF2pO.net]
ジェーン台風のJって台風10号だってすぐ判るネーミングやね

155 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:08:53.74 ID:pN0oDaL+.net]
rssを表示したいんだけど、行末が『ます。』のものだけを表示することにしてます。もし、1行も『ます。』がなくて表示すべきものが

156 名前:全く無かった場合はforループの後に別の処理をしたいんだけど、やり方教えてほしいです。

for e in entri:
title = e['title']
title = title.split(" - ")[0]
summary = e['summary']
summaryList = summary.split("分")
dateTime = f'{summaryList[0]}分'
chuihou = summaryList[1]
if title[:6] != '[ PR ]':
if summa[-3:] == 'ます。':
print(f'{title} {dateTime}')
print(chuihou)
[]
[ここ壊れてます]

157 名前:デフォルトの名無しさん [2018/09/09(日) 16:26:44.95 ID:XnExmf42.net]
5chは連続する半角スペースを消してしまうから
インデントが崩れる

(インデント崩さず)ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除

158 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 16:33:13.24 ID:pN0oDaL+.net]
どうもすみません
以下のコードです
https://pastebin.com/PCvvn322

159 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:06:15.73 ID:0ym3cmgA.net]
counter = false

ループ処理 { 1件でも処理したら、counterをtrue にする }

もし、counterがfalseのままなら{ 処理 }

160 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 17:17:25.83 ID:pN0oDaL+.net]
>>149
どうもありがとうございます
うまくいきました。



161 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 23:08:48.04 ID:pN0oDaL+.net]
forループの続きなんですが、「to」が「imanoJikan」よりも先の項目が見つかったら直近のひとつだけ取得してループを終了させる方法おしえてほしいです

https://pastebin.com/hUp7pyTB

162 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 23:26:11.91 ID:sFuHefah.net]
printの下に同じインデントで
break

163 名前:デフォルトの名無しさん mailto:sage [2018/09/09(日) 23:29:15.01 ID:pN0oDaL+.net]
>>152
おおお!
ありがとうございます

164 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 00:27:49.39 ID:8UsAQXCT.net]
えぇ…

165 名前:デフォルトの名無しさん [2018/09/10(月) 08:53:06.79 ID:iZVjiAgO.net]
python卒業します
これからはjsと戯れます

166 名前:デフォルトの名無しさん [2018/09/10(月) 08:54:23.89 ID:iZVjiAgO.net]
さようならみんな
sys.exit()

167 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 09:37:57.70 ID:SBVp+ZlE.net]
達者で

168 名前:デフォルトの名無しさん [2018/09/10(月) 13:25:23.61 ID:nF+UxiuD.net]
>>155
え!え?
そこは、普通 jsではなく
juliaだろ?

println("Hello julia")
女子小学生より31歳のお姉さまだろ、普通
https://i.imgur.com/mFtwafs.jpg

169 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 18:29:25.45 ID:C7zSAi11.net]
subprocessで実行したコマンドの出力の最後の1行と終了ステータスを取得する方法教えてください!

170 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 20:00:58.83 ID:7UcGX0Ag.net]
>>158
整形サイボーグっぽいですね
普通の人間がいいです



171 名前:デフォルトの名無しさん [2018/09/10(月) 20:04:57.98 ID:ZkfvzKVs.net]
>>159
subprocess.run()でコマンドの出力と終了ステータスを取得できる
https://docs.python.jp/3/library/subprocess.html

最後の1行は改行文字でsplitして一番最後を取れば良い

172 名前:デフォルトの名無しさん [2018/09/10(月) 20:08:23.29 ID:t8KSuPE1.net]
>>159
サブプロセスは最後に終了ステータスを吐くように記述しておく

pipeをつくる
終わる前にpipeから出力を全部とってきて
最後の2行(最後の1行+終了ステータス)以外はポイする

173 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 20:09:03.35 ID:t8KSuPE1.net]
>>161
ケコ━━━━(・∀・)人(・∀・)━━━━ン

174 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 23:14:11.21 ID:068EZbdc.net]
python 3.6.3 最新のpandas

数値で条件指定してquery()したいのですが、ここからどうしたらいいか分かりません。

北海道や東京等が邪魔で、比較が出来ないと怒られます。出来れば都道府県は消さずに、このまま条件指定したいです
良い方法ありますか?

.csvファイルからデータを読み込んでます
表示させると、こんな感じになります。index3以下は数値で埋まってます
https://i.imgur.com/bll8NE3.jpg

175 名前:デフォルトの名無しさん mailto:sage [2018/09/10(月) 23:21:28.90 ID:zuFyRahU.net]
df.drop(df.index[0])

176 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 07:33:52.50 ID:0W5Zv88y.net]
>>165
そうすると、消えちゃうと思います
消さないように条件指定したいです

177 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 08:19:03.98 ID:bezMNa3/.net]
そうか
なら死ぬまでやってな

178 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 09:27:36.32 ID:0W5Zv88y.net]
csvから数値を取り出してるのに、str型とint型は比較できないとか言われる…

conditions = '(身長 > 160) & (体重 < 60)'
df.query(conditions)

文法は合ってますよね?
>>164

179 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 09:52:26.79 ID:Y91dzGGO.net]
>>168
>>168
すみません、df.drop(df.index[0])はしてます

180 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 12:07:19.86 ID:0Qtu/zKE.net]
>>168
まちがってる希ガス



181 名前:デフォルトの名無しさん [2018/09/11(火) 13:17:25.77 ID:tPkMAepR.net]
パイソンやる気が起きないんですがどうしたらいいですか

182 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:27:48.27 ID:dcNBqXet.net]
queryってラベル日本語okだっけ?

183 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 13:34:14.95 ID:dcNBqXet.net]
あと
(体重 < 60)
queryってこのカッコっているんだっけ?

184 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 14:29:20.23 ID:MIcxujEr.net]
>>170
ほんとですか…帰ったら見てみます

>>172 >>173
Shift jisでエンコードしてて、printfしたら普通に見られたのと、エラーも吐かなかったので大丈夫かとおもいます
()は参考サイト通りにやりました。()取ってもダメでした

185 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 14:43:17.34 ID:SPzv7yKx.net]
プログラミングしたことない文系大学生なんですが、python始めるなら
pythonスタートブック増補改訂版
っていうのでいいですか?

186 名前:デフォルトの名無しさん [2018/09/11(火) 14:46:13.07 ID:pwo3DQbp.net]
無理

187 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 15:35:17.46 ID:MIcxujEr.net]
>>174
dropでindex[0]を消して、一旦保存し、また開き直して、抽出したら出来ました
スレ汚しすみませんでした…
でも、すごく無駄なことをしてる気がする…

原因として、index[0]にある文字列のせいで、下の数値も文字列として認識しちゃってた可能性が浮かびました
だから、開き直したらエラーも出ずに出来たんだと思います
ちなみに、reset_index も意味無かったです

188 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 16:45:24.82 ID:SPzv7yKx.net]
>>176
昨日
print("〜〜") っていうの覚えたレベルなのですが、無理なのですか?

189 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 18:16:29.60 ID:YvR5RO13.net]
生きるのにも向いてねえよ
はよ死ね

190 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 18:25:17.89 ID:p1uFk9aE.net]
みんなのPython 第4版、2017

みんなのが定番だけど、言語の初心者には良いけど、
プログラミング自体の初心者には、どうだろう?

たのしいRuby 第5版、2016

プログラミング自体の初心者は、Rubyでプログラミングを覚えてから、
Python の方が良さそう

他には、Progate などの教育サイトもある



191 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 18:55:41.75 ID:0Qtu/zKE.net]
>>171
まず、PyのアイコンをA4サイズに拡大プリントします

192 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:19:03.51 ID:AZXlXK10.net]
pipでインストールしたライブラリに不備が見つかったので変更を加えたのですが実動作に反映されません。

キャッシュの削除も試してみたのですが変わらず・・・

193 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:19:31.34 ID:cR5Dh89A.net]
>>161
>>162
どうもありがとうございます

194 名前:B
返事遅くなってすみません。
ドキュメントが難しくて理解出来なくて。

最後の1行をとり出すとして、
subprocess.run(コマンド)
stdout.sprit("\n")[-1]

これだと、NameError: name 'stdout' is not definedってなってしまいます。
[]
[ここ壊れてます]

195 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:26:50.17 ID:cR5Dh89A.net]
>>183
aaa = subprocess.run(コマンド, stdout=subprocess.PIPE)
bbb = aaa.stdout.read()
ccc = bbb.split("/")[-1]
print(ccc)

こうやると
AttributeError: 'bytes' object has no attribute 'read'
このエラーでした

196 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:43:31.84 ID:cR5Dh89A.net]
subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(subprocess.PIPE)

-1がプリントされるんですが、-1とはなんですか?

197 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 19:54:36.58 ID:cR5Dh89A.net]
何度もすみません。

>>> subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE)
CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0,
stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n')

ドキュメントにこう書かれてあるので、CompletedProcessというリストが作られるのかと思い、
subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(CompletedProcess[-1])

とやってみたけど、
NameError: name 'CompletedProcess' is not defined
となりました。

198 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 20:13:26.71 ID:cR5Dh89A.net]
自己レス
引数に『universal_newlines=True」を追加したら大丈夫みたいでした。

199 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 21:54:28.05 ID:LBODaWXG.net]
>>175
それで良いと思うよ、ガンガレ

200 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 22:09:09.67 ID:SPzv7yKx.net]
>>179
ひどくないですか?流石に

>>180
ありがとうございます
progateというのは知り合いからオススメされてました
見てみます



201 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 22:09:33.55 ID:SPzv7yKx.net]
>>188
あざす

202 名前:デフォルトの名無しさん mailto:sage [2018/09/11(火) 22:15:10.44 ID:LBODaWXG.net]
>>187
解決したならいいけど
import subprocess
a = subprocess.run(["ls","-l"], stdout=subprocess.PIPE)
print(a)
print(a.args)
print(a.args[-1])
print(a.stdout.decode())#universal_newlinesつけるならいらない
print(a.stdout)

203 名前:177 [2018/09/11(火) 23:32:02.26 ID:p1uFk9aE.net]
Python には、多くの多言語の著者も、参入してる

クジラ飛行机・大津真、
弾幕系のシューティングゲームプログラミングで有名な、松浦 健一郎・司 ゆき

猿向きなのは、掌田津耶乃・高橋麻奈

「スッキリ」「猫でもわかる」は、まだ参入していない

204 名前:デフォルトの名無しさん [2018/09/11(火) 23:57:02.57 ID:UiecLNUs.net]
みんなの〜がいいのか

Pythonチュートリアル買っちゃった

205 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 00:04:21.73 ID:Qysc30q7.net]
>>191
どうもありがとうございます
decode()でも取り出せました。
universal_newlinesつけるのと、decode()とで、中の処理はなにが違うんでしょうか?

206 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 00:39:20.04 ID:NOD5QCpZ.net]
>>980
次スレ立てるときはテンプレに下記文言の追加よろしく。

本スレでRuby本を薦めたりRubyコードを貼ることを禁止します

207 名前:177 mailto:sage [2018/09/12(水) 00:40:25.77 ID:pVbQPMMe.net]
Guido の「Pythonチュートリアル」は、ほとんど内容が無いw

詳細は何々を参照してください、ばっかりw

208 名前:デフォルトの名無しさん [2018/09/12(水) 00:59:48.52 ID:2r/3byF9.net]
Pythonで以下のようなことは私のような超初心者でも可能でしょうか?
当方VBAとJavaをちょっと(API未経験)な程度のスキルしかありません

1 テキストファイルに書かれたアドレスのページを順番に保存
2 特定のページを開き

209 名前:その先にあるリンクを定期的に保存
例えば定期的に気象庁の地震速報一覧のページをまず読み、
https://www.jma.go.jp/jp/quake/quake_sindo_index.html
こちらにある地震の揺れ日時リンクのリンク先
例:https://www.jma.go.jp/jp/quake/20180911100918353-11190739.html
などを全て保存したいです
今は手動で保存しています
[]
[ここ壊れてます]

210 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 01:06:18.26 ID:m5YCt3ez.net]
matplotlibで波形を出力したいのですが
a = [1,2,3,4,5,6,…,16,17,18,19,20]という配列があった時に
偶数値から奇数値の間の線を赤,奇数値から偶数値の線を青
というように条件付で一部色を変えながらplotすることはできるのでしょうか?



211 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 01:32:48.47 ID:2r/3byF9.net]
>>197です
保存方法はテキストだけの形式と画像含めたmimeフォーマットでできないでしょうか?
情報後出しで申し訳ないです

212 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 02:21:34.30 ID:Fp0BM1OM.net]
>>199
取り敢えずPython スクレイピング で検索してみて
試してみたら?
一回なら1requestとbeautifulsoupが情報が多い
定期ならScrapyが良いのかな?

213 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 02:26:40.00 ID:pVbQPMMe.net]
簡単なクローラーは、wget

他には、Ruby のMechanize とか

もっと複雑な、JavaScript でページを作っているような動的なページは、
Ruby でSelenium WebDriver で、ブラウザを操作する

214 名前:デフォルトの名無しさん [2018/09/12(水) 06:29:26.14 ID:niWPqMtZ.net]
>>192
まだJuliaには参入してない。

215 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 07:04:54.42 ID:9GMFh4Pp.net]
今年はJuliaとかDartとか
もう終わりかかってるような奴の復活宣言が多い

216 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 13:04:47.85 ID:wa3fqHL8.net]
pandasのデータフレームdfに対して次の処理をします
cols=[a,b,c,d]
dfx = df[cols].head(10).astype(str)

処理すべきデータフレームが複数あるとき
dfa,dfb,dfc...
dfxa,dfxb,dfxc...
としたいのですが、ループで処理を使い回すことはできますか?
dfxa=dfxb=dfxc=None
for i,j in zip([dfa,dfb...],[dfxa,dfxb..]):
__j =i[cols].head(10).astype(str)
はダメでした
※あと↑ループ内ではNoneな変数にそれぞれ値が代入されるのに、ループ後にprintするとNoneとなる理由もわかりません

217 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 20:43:31.59 ID:krza25ay.net]
それよりも基礎やれよ
関数も分からんのだろお前

218 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 21:26:10.04 ID:T/3USJ28.net]
スペック
プログラム未経験JK
退屈なことはPythonにやらせようを買ったけど難しくて入門Python3を買った
退屈なことよりも分かりやすいけどやっぱり難しい
スタートブックにしたらよかったぜ

219 名前:デフォルトの名無しさん [2018/09/12(水) 21:38:01.53 ID:pVbQPMMe.net]
>>197-201
「wget 入門」で検索!

-i ファイル 指定したファイルに記載された、URLをダウンロードします。
-r 再帰的にダウンロードします。ページ内のリンクをたどってダウンロードします。

-l 数 --level=数 指定した階層分リンクをたどる。
「-r」オプションのデフォルトは「-l 5」なので「-l1」を指定する。
これで特定のページの、リンク先のページだけをダウンロード(DL)する

-A -R で、DLするファイルの拡張子を指定する。
--spider ファイルをダウンロードせず、URLの存在だけチェックする。
-H, --span-hosts 再帰中に他のドメインも、ダウンロード対象にする

-k, --convert-links HTML や CSS 中のリンクを、ローカルを指すように変更する。
ローカルPC 内だけで動くように、リンクを相対パスに変換する

220 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 21:40:29.26 ID:pVbQPMMe.net]
>>206

>>192
に書いてある



221 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 21:42:05.84 ID:T/3USJ28.net]
>>208
地雷一覧?

222 名前:デフォルトの名無しさん mailto:sage [2018/09/12(水) 23:06:58.17 ID:2r/3byF9.net]
>>200
>>207
ぐぐって勉強します
ありがとうございました

223 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:31:00.11 ID:ECzOVYUy.net]
test

224 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:33:41.14 ID:ECzOVYUy.net]
import re

with open('aa.txt', 'r+') as f:
 while True:
  line = f.readline()
  ret = re.search(r"^a", line)
  if(ret):
   f.writelines("---")
  if not line:
   break

225 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:34:51.38 ID:ECzOVYUy.net]

テキストファイルで"a"で始まる行を"----"に書き換えようとしたのだが、
"----"が"a"で始まる行ではなくテキストの最後に追加されます。
f.writeでも同じ。
助け舟お願いします。

226 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:41:01.41 ID:ttzoAgZZ.net]
ファイルサイズ変わるような途中の書き換えはできないので
素直に別ファイルに書き出しましょう

227 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:41:04.65 ID:X3zFvlHv.net]
>>205
このレスは何が言いたいの?

228 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 00:45:51.99 ID:ECzOVYUy.net]
>>214
そうなのか
サンクス

229 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 03:04:18.35 ID:TyIiud+k.net]
>>215
そこまでバカなら5chより幼稚園がオススメ

230 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 03:27:39.30 ID:2ca+8xGJ.net]
>>217
詳しく



231 名前:デフォルトの名無しさん [2018/09/13(木) 09:48:20.60 ID:Ch5jIF+X.net]
>>213
1行ずつ読み込むんじゃなく、read()で全部読み込んでまとめて置換して書き出したら?

232 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 01:19:44.19 ID:13WSTRRA.net]
tqdmについて質問です。
ラジオで今放送されている番組情報を表示するスクリプトを作っててプログレスバーを付けたいです。
https://i.imgur.com/saep34j.jpg

以下がそのコード一部です。これだとスクリプトを動かした時点がプログレスバーの0%の位置なんですが、
プログレスバーの0%の位置は番組開始時間、100%が終了時間、プログレスバー長さは現在の時間ってやる事で来ますか?
https://pastebin.com/BN0iYknv

233 名前:デフォルトの名無しさん [2018/09/14(金) 01:27:39.44 ID:KCZmWOCp.net]
なかなか面白い事やってるね

234 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 01:54:22.66 ID:Vmeq3cpR.net]
Ubuntu16.4の環境下でPython3.6でFlask+uwsgiでRESTサーバ作っており、
そこでロギングで壁に当たってます。

汎用loggerにTimeRotatingFileHandlerをaddして1時間毎にローテーションするように実装しました。
これはハンドラが作られた時間がローテションタイミングの基準点で、そこから1時間後に
ローテションって意味で、正確に毎時0分にローテーションというのは無理なのでしょうか?

また、1回目のローテーションまでは正常にローテーションしてるのですが、
2回目以降が1時間単位のインターバルが無効になってるように見え、一定のファイズサイズに達すると
勝手にローテートしてしてしまいます。 これによって1回目に退避されたログが2回目の
ローテーションファイルで上書きされていまい、実質ログが消えてしまいました。

これらの対策としては自分でTimeRotatingFileHandlerのサブクラスで拡張するや、
SocketHanderで受け側を作る構成にするか、または単純にFileHanderで永久出力して
logrotate.dでローテーションしたほうが安全なのでしょうか?

いろいろ検証してるのですが答えが見つからず・・・ 知っているかたいれば教えて対策教えてください。

235 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 02:15:35.00 ID:13WSTRRA.net]
>>221
変なことやってしまってますか?

236 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 02:38:02.20 ID:YQ1y2eFS.net]
>>222
>正確に毎時0分に、ローテーションというのは無理なのでしょうか?
そういう設定があるのでは?

>一定のファイズサイズに達すると、勝手にローテートしてしてしまいます
それは多分、ファイズサイズでローテートする設定にしているから

>これによって1回目に退避されたログが、2回目のローテーションファイルで上書きされてしまい
同じファイル名にならないように、ファイル名に時

237 名前:盾付けたりすれば?

とにかく、ログローテーションの文書を読むしかないと思う
[]
[ここ壊れてます]

238 名前:デフォルトの名無しさん [2018/09/14(金) 03:25:15.25 ID:KCZmWOCp.net]
>>223
処理の仕方じゃなくて、目的がね
ラジオ番組の演目や進捗状況に活用って意味で

239 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 03:58:34.22 ID:13WSTRRA.net]
>>225
ミュージックプレーヤーのようにプログレスバーがあると、コンソールでも動きが出ておもしろいかなと思ってつけてみようと思いました。

240 名前:デフォルトの名無しさん [2018/09/14(金) 13:03:14.11 ID:7Qnl0jfy.net]
Rubyの ruby -e ‘p “hello”’みたいのはPythonでどうやるの?
できたとしてインデントどうするのかわからんけど



241 名前:デフォルトの名無しさん [2018/09/14(金) 13:34:13.63 ID:6AOpn7AN.net]
>>220
tqdmは手動で動かすこともできるので、番組開始時間や現在の時間から計算した値をセットすればできる

with tqdm(total=番組の長さ) as pbar:
pbar.update(番組開始から現在までの経過時間)
#残りはfor等で適宜update

242 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 14:31:48.36 ID:GqHziv8p.net]
>>227
シェルからってこと?
ruby言われてもわかんない

python3 -c 'for r in range(3): print("py")'

243 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 17:19:47.96 ID:13WSTRRA.net]
>>228
どうもありがとうございます
forの書き方はこれであってますか?
https://pastebin.com/Aapebfqk
https://i.imgur.com/tn4szbK.jpg
この書き方だと、スクリプトを動かしたすぐは0%のままで経過時間分のバーにはならず、forループの1回目が終わったら、経過時間をプラスした分メーターが進みました。

あと、プログレスバーの右側の
11372/14400 [10:18<50:51, 1.01s/it]
ってなってる所の表示を消したり変えたりする事も出来ますか?
tqdmのドキュメントにはプログレスバーの左側に文字を入れたりバーの色を変える方法は載ってたんですが右側の事は分かりませんでした。

244 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 17:26:16.68 ID:tz1WlCUG.net]
>>229
おおthx

245 名前:デフォルトの名無しさん [2018/09/15(土) 10:47:39.63 ID:Rbm//AmR.net]
みんなのpythonという参考書を終えたのですが次にやるレベルの参考書教えてくれませんか?

246 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 10:54:49.48 ID:0IDKpbCI.net]
https://www.packtpub.com/packt/offers/free-learning

タダやし好きなのをどうぞ

247 名前:デフォルトの名無しさん [2018/09/15(土) 11:20:31.39 ID:WA7DfSYz.net]
英語…

248 名前:デフォルトの名無しさん [2018/09/15(土) 11:38:53.49 ID:AVfR6YnT.net]
thx

249 名前:デフォルトの名無しさん [2018/09/15(土) 12:08:10.76 ID:enopwIka.net]
英語だけで怯んでたら何も出来るようにならんぞ

250 名前:デフォルトの名無しさん [2018/09/15(土) 12:24:03.66 ID:QOgSOXWg.net]
>>232
何作りたいの?
人工知能ならゼロから作るディープラーニング
WEBアプリならdjangoの公式チュートリアル



251 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 12:44:48.44 ID:FXFGXSpW.net]
>>232
職のためにやってるならDB、Django、AWS、Docker、HTML
趣味のためにやってるならスクレイピング、SQLite、PyGame

人工知能はあまりおすすめできない
大半の人間には難しいものだし、学習データを大量に用意できないと話にならんし

252 名前:デフォルトの名無しさん [2018/09/15(土) 12:57:03.70 ID:eH38IGCF.net]
>>230

pbar.update(keikaJikan)
の後に
pbar.set_description(refresh=True)
いれたら?
ドキュメントに詳しい記述がなかったので
うまくいくかわからないけど

253 名前:デフォルトの名無しさん [2018/09/15(土) 13:04:52.29 ID:eH38IGCF.net]
>>230
ごめんよく見たらrefresh()があった
set_description(refresh=True)
のかわりrefresh()入れてみて

254 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:06:04.40 ID:uTfOzQke.net]
>>237
「みんなのpython」読んだばかりの初心者に、
その後すぐ「ゼロから作るディープラーニング」を勧める

255 名前:フはどうかと []
[ここ壊れてます]

256 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:20:15.56 ID:Ek2iwFvX.net]
>>230
そういう表示変更したいならprogressbar(2)のwidgets使ったほうが便利そう

257 名前:デフォルトの名無しさん [2018/09/15(土) 17:58:30.21 ID:QOgSOXWg.net]
>>241
そうかもね
でも名著なのば間違い無いでしょ

258 名前:デフォルトの名無しさん [2018/09/15(土) 20:08:55.40 ID:jV44o+ul.net]
>>238
何をやりたいかで変わるんじゃないの?
何も目的もなく、Python習得するわけじゃないだろうから

259 名前:デフォルトの名無しさん [2018/09/15(土) 20:12:40.41 ID:8rxpHkWL.net]
何をやりたいかで変わらんと悟るまでpythonチュートリアル何遍でも読み返しとったらええねん

260 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 22:34:28.61 ID:VdLZkjGs.net]
この2冊は双子だから、両方読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

入門書の次は、どの言語でも「Effective 何々」

Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説

Effective Python ―Pythonプログラムを改良する59項目、2016

Web フレームワークは、無料のRails チュートリアルをやってから、

掌田津耶乃の、
Python Django 超入門、2018
Node.js超入門、2017



261 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 23:45:55.32 ID:3GwANLPp.net]
みんなのGO言語は?
これは兄弟じゃないの?

262 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 00:20:27.43 ID:0MknoGjv.net]
>>239、237、239
どうもありがとうございます!
その関数とprogressbar2について調べてみます。

>>230 ので動かしてみているんですが、どうも番組終了時間になって次の番組が表示されるタイミング時点で偶にバーはまだ68%しか進んでいなかったりしました。
それでも時間が来ると次の番組情報は表示してくれるんですが何となく気持ち悪かったです。

夏休みからPythonをはじめたプログラム未経験文系豚JKの場合です。
自分が読んだ本は退屈なことはPython〜、入門Python3、Pythonではじめるデータラングリング、PythonによるWebスクレイピング、Pythonによるデータ分析入門をそれぞれ流し読みしました。
Pythonによるデータ分析入門は分析そのものの説明じゃなかったので自分には全く読めませんでした。
このスレでたくさん教えてもらって、radikoの一日の番組表の表示、今放送されている番組の表示、録音、自動でファイルへのタグ付け、オンエア曲の情報の表示やSQLに保存する、がとりあえず動くようになった。
上の過程でrequestsの使い方が分かったので、録音が終わったらSlackへの通知や、コンソールを使って動かすんじゃなくて、Hubotを使ってSlackのBotに話しかけて上の操作が出来るようになった。
次はradikoプレミアムのログインや認証にチャレンジしたいけれど、さっぱり分からない。

Pythonで何が出来るのか分かっていないから他に何をやりたいという事が思いつかないので、学習のモチベも保てない。
マルチタスク?マルチスレッドについて学ぶために番組情報の表示と再生が出来るようにしたらいいですか?
もっと面白いことやりたいです。

263 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 01:54:46.83 ID:EK9e0hMh.net]
女性なら「たのしいRuby 第5版、2016」をすすめる。
Rubyの女神・女優の池澤あやかも女性

Ruby でも、Selenium WebDriver で、スクレイピングするとか

その後は、Web アプリの開発。
無料のRails チュートリアルをやる

ログインぐらいなら、Selenium WebDriver で、
自動操作で、ユーザー名・パスワードを入力して、ログインできる

Showroom のメニュー・アバターなども、うっとおしい

264 名前:から、それで消してる []
[ここ壊れてます]

265 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 05:21:28.05 ID:RAxt/rA1.net]
Ruby勧めてどーすんの

266 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 05:50:28.28 ID:32fLF0l4.net]
ガイジに一般的な思考で対応するな

267 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 12:25:11.08 ID: ]
[ここ壊れてます]

268 名前:TMbORASx.net mailto: とりあえず入門python3やります []
[ここ壊れてます]

269 名前:デフォルトの名無しさん [2018/09/16(日) 14:41:53.91 ID:8ER5Tq3J.net]
>>252
effective pythonにすれば?

270 名前:デフォルトの名無しさん [2018/09/16(日) 17:55:04.89 ID:Zt4iEZ/q.net]
ちわーくっそ初心者です。

tryとexceptの構文について質問です。

以下のコードでわざとValueErrorがでるように
ターミナルに文字列を入力してるんだけど
except ValueErrorしてても例外処理できないんですが、なぜだかわかる方いらっしゃいますか?

環境
python 3.6.5
mac OS 10.13.6
Atom

コード
a = int(input('type a number'))
b = int(input('type another'))
try:
print(a/b)
except ZeroDivisionError:
print('無効な入力 / Invalid input')
except ValueError:
print('数値を入力してください')

ターミナル
type a numberあ
Traceback (most recent call last):
File "ExceptPractice.py", line 1, in <module>
a = int(input('type a number'))
ValueError: invalid literal for int() with base 10: 'あ'



271 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 17:59:16.64 ID:75aeC/cD.net]
本気で言ってるのか
inputの位置とtryブロックの範囲をよく見ろ

272 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 18:00:51.59 ID:ynEgKPZ+.net]
Python3のhttp.serverモジュールだけど
HTTP/2には対応しないのかな。

273 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 18:20:04.63 ID:MHdxl4uh.net]
公式のチュートリアルでおk

274 名前:デフォルトの名無しさん [2018/09/16(日) 18:22:33.91 ID:Zt4iEZ/q.net]
>>255
アンタァ数時間におよぶ疑問を解決してくれた救世主だよ
ありがとうございました

275 名前:デフォルトの名無しさん [2018/09/16(日) 18:29:11.76 ID:HF0YmRsW.net]
これはひどい

276 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 20:07:13.91 ID:nqHAh3X3.net]
こういうやり取りは良いと思うな

277 名前:デフォルトの名無しさん [2018/09/18(火) 12:20:43.82 ID:IalC5NJv.net]
>>212の様にファントを変えて投稿するには
どうするのですか?

278 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 13:06:11.53 ID:Gab8FMCl.net]
>>261のビューワが勝手にASCIIアートと判断してるだけじゃね。
自分のビューワだと同じフォントに見えるよ

279 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 19:28:18.62 ID:5C+j+SZY.net]
モジュールAからモジュールBをインポートすることでモジュールAのメソッドの定義を上書きしたいんだけど可能?

280 名前:デフォルトの名無しさん [2018/09/18(火) 19:36:01.79 ID:32W6TMTL.net]
モジュールAをインポートせずにモジュールBだけインポートすれば良いのでは?



281 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 19:45:53.01 ID:5C+j+SZY.net]
m1.py
―-
class C1:
 def f1(self):
  print(‘aaa’)

import m2
―-

m2.py
―-
def f2(self):
 print(‘bbb’)

from m1 import C1
C1.f1 = f2
―-
とかできない?

282 名前:デフォルトの名無しさん [2018/09/18(火) 20:15:26.82 ID:3Z5SLW4f.net]
そおゆうトリッキーな事はできないと思え

283 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 21:34:34.65 ID:3PaEdz0L.net]
>>266
お前なら出来るだろ?

284 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 21:34:50.63 ID:5C+j+SZY.net]
class C1:
 def f1(self):
  print(‘aaa’)

def f2(self):
 print(‘bbb’)

C1.f1 = f2

C1().f1() #=> ‘bbb’
はできるのに?

285 名前:デフォルトの名無しさん [2018/09/18(火) 21:44:32.07 ID:3Z5SLW4f.net]
>>268
そおゆうトリッキーな事は今すぐ忘れろ
それはできないのだ

286 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 21:54:38.88 ID:MzzhSWkv.net]
C1.f1 = f2をm1でやるんじゃだめなんか?

287 名前:デフォルトの名無しさん [2018/09/18(火) 21:57:26.18 ID:6b03zZt1.net]
すいません、手でカチカチっとダブルクリックした方が
早いようなことをパイソンにやらせるのはどうしてでしょうか

288 名前:デフォルトの名無しさん [2018/09/18(火) 21:57:40.61 ID:3Z5SLW4f.net]
>>270
ダメにきまっとるやろw

289 名前:
バカはしばらく黙っとけw
[]
[ここ壊れてます]

290 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 22:04:25.92 ID:5C+j+SZY.net]
テストの時にimportすると定義を上書きしてスタブを使うとかやりたいのだ



291 名前:デフォルトの名無しさん [2018/09/18(火) 22:07:14.79 ID:3Z5SLW4f.net]
>>273
トリッキーな事をしたかったらせめて自分で調べて理解できるようになってからやれ

これ以上はつきあわんぞ俺はまた無能に戻るからな

292 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 00:05:43.10 ID:McwJY1yY.net]
>>274
結局何も情報提供してないのに無能に戻るとどうなっちゃうの?

293 名前:デフォルトの名無しさん [2018/09/19(水) 12:06:37.88 ID:kBVhwTEM.net]
>>265
C1を継承したクラスC2を作ってオーバーライドするのが真っ当だと思う

import m1
class C2(m1.C1):
def__init__(self, *args, **kwds):
super().__init__(*args, **kwds)

def f1(self):
print(‘bbb’)

294 名前:デフォルトの名無しさん [2018/09/19(水) 12:10:33.79 ID:kBVhwTEM.net]
>>273 を読んでなかったわ

295 名前:デフォルトの名無しさん [2018/09/19(水) 12:18:54.82 ID:PupZqwJJ.net]
最後に C1 = C2 で桶

296 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 12:30:17.29 ID:j0vZv9bU.net]
>>271
そういう作業を何千回もやる可能性があるならプログラムにやらせたほうが楽で正確だから

作業の回数が1日1回レベルだったとしても、毎日やらなきゃいけないなら
やり忘れや、ちょっとした間違いを防ぐためにプログラムにやらせたほうがいいから

単純にプログラムを書くのが楽しいから

297 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 15:16:53.25 ID:bRibFDbQ.net]
pythonってVisualStudioで使えますか?

298 名前:デフォルトの名無しさん [2018/09/19(水) 17:57:22.09 ID:2g+A18ll.net]
>>280
使えるよ
使ってる奴あんまいないけど

299 名前:デフォルトの名無しさん [2018/09/20(木) 00:31:03.27 ID:v2140bTt.net]
ありがとうございます
言語変えるたびに環境変数とかいじったりって面倒臭そうなので
助かります

300 名前:デフォルトの名無しさん [2018/09/20(木) 09:49:06.07 ID:dj+2oZ6y.net]
大量にあるDataFrameのデータの日付が
Year, month, day, ...
という感じで各時間区分ごとに別れて入っているのですが、これをtimestampに変換するいい方法はありますか?



301 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 10:51:05.31 ID:fiW+YUJ7.net]
>>283
とりあえずここを見て使えそうな処理を使えばいい
https://docs.python.jp/3/library/time.html

俺だったらテキストとして結合して、strptimeで処理するかな
桁揃えの必要があるならzfillを使う

302 名前:デフォルトの名無しさん [2018/09/20(木) 11:11:45.64 ID:dj+2oZ6y.net]
>284
ありがとうございます、テキスト結合→strptimeをforループで回してタイムスタンプのみの配列を作るのをやってみたんですが、レコードが数百万個あるので速度からすると数十分かかりそうでした。
forループを使わずになんとか早くする方法はないでしょうか?

303 名前:デフォルトの名無しさん [2018/09/20(木) 12:19:46.96 ID:7WHuQIEO.net]
numpyに入れる

304 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 13:48:45.51 ID:fiW+YUJ7.net]
>>285
1回だけの処理なら中断保存・再開できる仕組みを入れつつ数十分ぐらい我慢しろ
何度も処理しなきゃいけないなら、処理が遅いPythonにやらせるべきじゃない
CやJavaみたいな処理が早い言語にやらせるべき

あと、リストを渡すと処理したリストを返してくれる関数は
内部的にはforループ使ってる
だから「forループを使わずに」なんて無理

305 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 14:06:39.21 ID:2iENFSTM.net]
年月日がバラバラならtimestampのコンストラクタに年月日をそれぞれ渡したほうが多少は早い

306 名前:でないの? []
[ここ壊れてます]

307 名前:デフォルトの名無しさん [2018/09/20(木) 14:55:31.07 ID:tnMs4KBD.net]
>>287
numpyみたいに内部的にはCで実装されてるライブラリもあるから使いこなせばPythonでも十分有望

308 名前:デフォルトの名無しさん [2018/09/20(木) 15:49:34.65 ID:gMhM2k+x.net]
>>287
面白いねw

309 名前:デフォルトの名無しさん [2018/09/20(木) 18:01:52.58 ID:HnUdBV/V.net]
WEBフレームワークにflaskを採用しようと思ってる超初心者プログラマーですが、flaskは仕事で一生使えるフレームワークなのでしょうか?
フレームワークに流行り廃りはあるのは承知ですが今学ぶならRailsみたいに人気のあるフレームワークを勉強した方がいいでしょうか?

310 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 18:07:51.35 ID:wnlFKUtW.net]
自然言語で何語を勉強しようかと迷うのに似てる



311 名前:デフォルトの名無しさん [2018/09/20(木) 18:22:22.52 ID:HnUdBV/V.net]
>>292
何を選べば無難ですか?

312 名前:デフォルトの名無しさん [2018/09/20(木) 19:31:20.85 ID:DBWB48iV.net]
>>291
そもそもweb屋自体おまえが働ける間生き残り続ける可能性が低いんやからいらん心配せんで好きなんやれや

313 名前:デフォルトの名無しさん [2018/09/20(木) 21:45:31.05 ID:Mlnbbzfh.net]
tf-nightly 1.12.0.dev20180920 has requirement keras-applications>=1.0.5, but you'll have keras-applications 1.0.4 which is incompatible.
tf-nightly 1.12.0.dev20180920 has requirement keras-preprocessing>=1.0.3, but you'll have keras-preprocessing 1.0.2 which is incompatible.
tf-nightly-gpu 1.11.0.dev20180917 has requirement keras-applications>=1.0.5, but you'll have keras-applications 1.0.4 which is incompatible.
tf-nightly-gpu 1.11.0.dev20180917 has requirement keras-preprocessing>=1.0.3, but you'll have keras-preprocessing 1.0.2 which is incompatible.
keras-applicationsのバージョンが足りないって警告がでてくるんですがpip install keras-applications --upgradeを入力してもすでに入ってるって言ってきます
どうしたらいいでしょうか
ubuntu16.04.3

314 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 22:02:59.66 ID:kFoauySG.net]
>>293
Pythonを選ぶ時点で大冒険なので大差ない

315 名前:デフォルトの名無しさん [2018/09/20(木) 22:23:37.92 ID:8Bepevhe.net]
>>285の用途なら、juliaがいいんじゃないの?
って思った
Pythonのライブラリも呼び出せるし、移行はカンタン
CSV読み込み用の不特定な型の集合を扱えるDataFrames構造も使えるから
元々大規模なデータ解析の為にjuliaが作られたようなもの

荒らしになるだけなので、この辺で

316 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 00:13:59.10 ID:m8DL5ZJ4.net]
>>291
掌田津耶乃
Python Django 超入門、2018
Node.js超入門、2017

Rails は、すべての言語のフレームワークの基礎になっているから、
無料のRails チュートリアルをやるのが定番

本当は、シンプルサーバー・Sinatra などで、フルスクラッチで書いていくと、
フレームワークを自作するのと同じになるから、よくわかる

317 名前:デフォルトの名無しさん [2018/09/21(金) 07:37:02.86 ID:PZuz7ukr.net]
>>291ですが無難にrailsにすることにしました
色々相談に乗ってもらってありがとうございました

318 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 07:47:52.29 ID:IzrcU96S.net]
それがよい

319 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 08:34:45.57 ID:OMTVor1h.net]
>>299
念の為言っとくが295はpythonスレでruby宣伝を何度注意されても辞めないム版で有名なrubyガイジだからな

320 名前:デフォルトの名無しさん [2018/09/22(土) 13:39:42.64 ID:xOVRbYWf.net]
>>298
書き込みと売り上げが連動してるのか
宣伝乙



321 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 02:48:42.15 ID:6gosj3pF.net]
tkinter学んでいるプログラム初心者です。
入力欄に文字を書いて、ボタンを押すと入力した文字が入ったメッセージボックスが出てくるというプログラムを作っています。
下記プログラムにて下から4行目のlambda式はどういった意味を持つのでしょうか?確かにlambdaの記述を省くとうまく動作しないのですが、なぜそうなるのか分からなくて・・・教えてください。

import tkinter as tk
import tkinter.messagebox as tkm

root = tk.Tk()
root.title("messagebox use")
root.geometry("400x300")

#メッセージボックス生成
def showMassage(text):
tkm.showinfo("info",text)

static1 = tk.Label(text="input space")
static1.pack()

#Entry 記述
entry1 = tk.Entry(width=50)
entry1.insert(tk.END,"言葉を入れてください")
entry1.pack()

#button 設置
button1 = tk.Button(text="push",width=50,command=lambda:showMassage(entry1.get()))
button1.pack()

root.mainloop()

322 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 08:23:14.19 ID:hrySGkvz.net]
>>298
掌田さんの本同じシリーズのNode.jsは読んだが
取っつきやすさはいいものの実用性は低いよな
あと付録のダウンロードサンプルが酷い

323 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 08:52:45.17 ID:WK7dhq80.net]
>>303
多分だけどlambda使わないと
ボタンが作られた時点で関数が実行されて
メッセージボックスが開いてしまうんじゃないかな

324 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 13:07:01.64 ID:6gosj3pF.net]
>>305
確かに使わない場合はそのような挙動になりました。

325 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 17:20:23.86 ID:WK7dhq80.net]
lambdaの部分を普通の関数として書き換えると
def func():
def showMassage():
tkm.showinfo("info",entry1.get())
return func
これってコールバック関数といわれていて内側の関数は
イベントが発生した時(ボタンが押された時)しか実行されなくなる

command=showMassage(entry1.get())
だと常にcommandにshowMassage(entry1.get())の値が
入ったままの状態になってしまう

コールバック関数を詳しく説明できる能力がないです、ごめんなさい

326 名前:デフォルトの名無しさん [2018/09/24(月) 17:30:21.36 ID:Kttr1loZ.net]
decorator

327 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 17:37:31.00 ID:y9vcPQXH.net]
クロージャーで苦労じゃー

328 名前:デフォルトの名無しさん [2018/09/24(月) 18:41:43.61 ID:otYBczLg.net]
みんなのpython終わったばかりの初心者ですが画像認証はオライリーの本でいいですかね?

329 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 18:53:58.73 ID:QjVDfSuK.net]
>>310
マルチポストする屑カスはしね

330 名前:デフォルトの名無しさん [2018/09/24(月) 19:20:04.62 ID:otYBczLg.net]
>>311
聞いただけなのに(´・ω・`)



331 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:01:59.08 ID:y9vcPQXH.net]
>>310
画像認証はオライリーの本
これってどういう意味?

332 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:07:48.74 ID:QjVDfSuK.net]
>>313
コピペにレスすんなし
mevius.5ch.net/test/read.cgi/tech/1529888279/685

333 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:12:59.31 ID:y9vcPQXH.net]
>>314
マルチポストが気に入らんのならスルーしてりゃあいいじゃない
いちいちウザイよ

334 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:32:11.67 ID:QjVDfSuK.net]
( ゚д゚) 、ペッ

335 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:38:00.99 ID:y9vcPQXH.net]
>>316
https://i.imgur.com/coG5qOF.gif

336 名前:デフォルトの名無しさん [2018/09/24(月) 21:32:02.69 ID:qyE/3qBT.net]
>>307
騙されそうになったが、実質自分自身を返すだけで何もしない関数じゃないかw

337 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 21:50:36.77 ID:cIWp1XlU.net]
>>303
>button1 = tk.Button(text="push",width=50,command=lambda:showMassage(entry1.get()))

そのボタンを押したら、その関数・ラムダが呼ばれるだけ。
ボタンを押したときに呼ばれる、コールバック関数を指定している

338 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 22:24:49.58 ID:y9vcPQXH.net]
a = lambda x : x +

339 名前: 3
print(a(4))

def hello(x):
  def world(y):
    return x * y
  return world

b = hello(2)
print(b(9))

c = hello(3)
print(c(10))

def hello(x):
  return lambda y: x * y

b = hello(2)
print(b(9))

c = hello(3)
print(c(10))
[]
[ここ壊れてます]

340 名前:デフォルトの名無しさん [2018/09/24(月) 23:48:46.66 ID:prONdPba.net]
y未定義なのに、なにしてエラーにならんの?



341 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 00:41:04.42 ID:5k+bdXu1.net]
>>307
いや、でもなんかすごく納得できました!ありがとうございます!

342 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 00:43:35.28 ID:5k+bdXu1.net]
>>319
もありがとうございました。コールバック関数ググってみます。

343 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 09:26:57.75 ID:iE/DG1HY.net]
すいません。初心者ですがpythonインストールしたのはいいんですが何も始まらないんです。プログラムを書き込むためのウインドウはどこから開けるんでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 09:32:43.28 ID:BC4c7eXL.net]
Rubyガイジ出番だ

345 名前:デフォルトの名無しさん [2018/09/25(火) 11:28:20.97 ID:l358aERP.net]
>>285
Juliaでやりましょう。

346 名前:デフォルトの名無しさん [2018/09/25(火) 11:35:40.14 ID:l358aERP.net]
>>324
スタートメニューのIDLEをクリックしたらいいんじゃない。

347 名前:デフォルトの名無しさん [2018/09/25(火) 12:36:47.64 ID:b0qq2JBy.net]
>>327
成る程、WindowsからPythonを使おうとしてたのか
ウチはMacだから、ターミナルからPython3打ち込んでポチポチやってたから
出たしで躓くようなことなかったな
UIからPython使えるAppもあるけど、単にスクリプトファイルを実行させるだけだし

Windows版Jupyter noteはないのかな?
これなら、Web上でPythonのプログラミングもできるから

348 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 12:47:18.17 ID:+eWKZg0K.net]
Google Collaboratoryでいいんじゃね

349 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 12:56:01.17 ID:iE/DG1HY.net]
>>327
なるほど、Integrated DeveLopment Environmentというやつですね。スタートメニューからですか。探してみます。
ちなみにarduirno等マイコンにもpythonは使えますか?

350 名前:デフォルトの名無しさん [2018/09/25(火) 15:26:23.04 ID:kqix37on.net]
>>328
Windowsにjupyter notebookを入れてHello,Worldするまでのメモ
https://qiita.com/SouTakenaka/items/9801f30c2fd1a378518d



351 名前:デフォルトの名無しさん [2018/09/25(火) 15:31:19.89 ID:kqix37on.net]
>>330
PythonのIDLEの使い方の基本
https://gammasoft.jp/python/python-idle-basic-operation/

352 名前:デフォルトの名無しさん [2018/09/25(火) 18:08:08.89 ID:kqix37on.net]
>>330
【Python】Arduinoをシリアル通信で操作
https://algorithm.joho.info/programming/python/arduino-serial/
PythonでI/O制御ができるマイコンボード 「MicroPython pyboard v1.1」
select.marutsu.co.jp/list/detail.php?id=733

353 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 19:53:56.20 ID:nX2ocrcO.net]
ありがとうございます。まだアルファベットを表記させるだけしか出来ませんがいずれはモーター等動かしてみるつもりです。

354 名前:デフォルトの名無しさん [2018/09/25(火) 22:31:30.68 ID:3QVoU2wO.net]
最近の月刊I/O見てないけど
pyboard特集やってそう
ラズベリーで工作しよう!な連載載ってたから

I/O誌では早い時期からPython講座連載してて
掲載プログラムリストといえば
Pythonが使われている

昔は、BASICやマシン語だったのに

355 名前:デフォルトの名無しさん [2018/09/26(水) 14:56:26.05 ID:gW7INjNq.net]
「算数&ラズパイから始めるディープラーニング」というのもあるな。

356 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 18:57:46.78 ID:cGc5yci5.net]
pythonの2.7使ってるんだけど文字化けとかエンコとか面倒くさくない?
簡単なスクリプト書くだけなんでwinのコンソールから文字列受け取ってそれに合わせて多少処理変えてどうのこうのーてやるだけなんだけど
ideではエラー出んのにpyinstallerとかpy2exe使って配布する前に最後テストしたら文字化け頻発とかですごい混乱する

357 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 19:03:39.24 ID:DFsxHyBv.net]
>>337
めんどくさいから
今からやるなら3系にしんさい

358 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 19:31:13.27 ID:cGc5yci5.net]
>>338
仕事で使ってるsiem製品でスクリプト書いたりとかもするんだけど公式サポートしてるのが2.7らしく慣れるためにもとりあえず何でもかんでも2.7使ってる
けどやっぱり普段は3にして一部要求された時に2.7のが良いんかね

359 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 20:56:35.83 ID:DFsxHyBv.net]
>>339
なんか事情があるなら仕方ない
2.7の文字問題に慣れたまへ

360 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 20:57:51.04 ID:DFsxHyBv.net]
そして
2.7が時代遅れとなった際に
3なり4なりを学び直すのである・・・



361 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 21:57:57.79 ID:SlOVL1Du.net]
学び直すというほど変わらんけどな2と3

362 名前:デフォルトの名無しさん mailto:sage [2018/09/26(水) 22:13:37.90 ID:WQTU7aa+.net]
>winのコンソールから文字列受け取って

2の時に比べたら全然マシだけど
他と連携したり、他から.py実行したりすると
3でも相変わらずエラー起きない?
まあ、対処法は見つけたので困ることはないけど
あ、ちなみにmacです

363 名前:デフォルトの名無しさん [2018/09/26(水) 23:12:45.83 ID:+un+mAjX.net]
マカーならやむを得まい

364 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:27:16.96 ID:Ft8D7cEG.net]
頭悪いからな

365 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 00:41:45.56 ID:3K4WTrnL.net]
>>337
2.7なら、標準の__future__パッケージの各モジュールをインポートすれば、
わざわざ'u'ふらずに済むし、3.*との違いはそれほど大きくない

366 名前:デフォルトの名無しさん [2018/09/27(木) 05:43:50.57 ID:i5i/991d.net]
>>341
python2のサポート2020年で来れるんだけど。

367 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 07:07:01.03 ID:L3kO3oQ5.net]
>>347
もちつけ

368 名前:デフォルトの名無しさん [2018/09/27(木) 11:47:37.94 ID:+X2PETpr.net]
>>337
馬鹿には無理

369 名前:デフォルトの名無しさん [2018/09/29(土) 13:56:00.42 ID:IuTgmxg/.net]
pythonなんか頭悪いのしかつかってない
しかもただのスクリプトのくせに普通にそのまま動かないとか
どんだけ役立たずスクリプトやねんと

370 名前:デフォルトの名無しさん [2018/09/29(土) 15:44:00.08 ID:5u9meNsM.net]
こっちも荒らされてるのか



371 名前:デフォルトの名無しさん mailto:sage [2018/09/29(土) 16:03:41.88 ID:UwfF5QN4.net]
ここは初心者スレなんで、pythonを普通にそのまま動かせない半角みたいな初心者でも暖かく見守ってあげないと。

372 名前:デフォルトの名無しさん [2018/09/29(土) 19:05:41.87 ID:/uKoNQUv.net]
python絡みで嫌なことでもあったのかな

373 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 15:37:29.45 ID:A7oy0eHN.net]
https://www.daxx.com/article/python-developer-salary-usa
アメリカで需要と平均給与トップとかにわかには信じ難いんだが

374 名前:デフォルトの名無しさん mailto:sage [2018/09/30(日) 16:39:57.82 ID:eyIH13tv.net]
にわかならしょうがないね

375 名前:デフォルトの名無しさん [2018/10/01(月) 15:27:24.26 ID:2uLYuzSw.net]
誰か、pythonista3 の 活用本発行して!!

絶対に売れる。

376 名前:デフォルトの名無しさん [2018/10/01(月) 16:46:09.34 ID:2dwOGw6s.net]
句読点の荒らし率は高いからこれに反応するレスがつくかつかないかで自演を判断できる

377 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:46:25.11 ID:tVJz3rsp.net]
Python始めたいんやけど、何からやればいいんや
今かけるのはJavaとシェルスクリプトを業務システムレベルや

378 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 21:58:34.22 ID:ooXTjlBW.net]
なにはなくともハローワールド
その次がファイル入出力
その次はたぶんそれだとテキスト置換の練習とか?

今から始めるなら3.x系にしておけ

379 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 22:01:27.51 ID:YZMrVKUg.net]
Javaとシェルスクリプトを業務システムレベルやったらpythonなんて楽勝やろ

380 名前:デフォルトの名無しさん mailto:sage [2018/10/01(月) 22:03:49.06 ID:tPw9Kpxi.net]
>>358
他の言語で(自分で)書いたスクリプトをPythonでフルスクラッチするというのは、
一方をよく理解しているということも相まって、違いも比較できて結構勉強になるよ。

自分の場合2.xの頃から始めたので、結果として、3.xも同様にやる羽目になったけど。



381 名前:デフォルトの名無しさん [2018/10/01(月) 22:36:46.55 ID:Mau1OsTK.net]
paizaでスキルチェックやってみたら

382 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 02:56:27.70 ID:/QfTYNRi.net]
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

この2冊は双子。この順に読む。
先に、たのしいをみっちり読めば、みんなのもスラスラ読め

383 名前:

サイトのprogate でもよい
[]
[ここ壊れてます]

384 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 06:20:21.08 ID:XHPfCFYq.net]
パイキチ、またPythonスレを荒らしだしたのか
マッチポンプは今時流行らないってば

385 名前:デフォルトの名無しさん [2018/10/03(水) 12:55:45.41 ID:ULIaqVnE.net]
保守上げ

386 名前:デフォルトの名無しさん [2018/10/03(水) 21:59:47.02 ID:Tma5IQla.net]
不思議なんだけど、どの言語を贔屓したいかは理解できるが他の言語を貶してなにか得することあるの?

よくありがちなもので、iPhone貶してandroid上げするのは何となくだけど、まあ売り上げに貢献するかもって思うけど、プログラミング言語でそれやって誰が得するんだろう

プロジェクトマネージャーが雑多なスクリプト言語を使われて管理が大変、だから制限させようとした結果ダークサイドに墜ちて、ある言語を貶すようになってしまった
こんな理由でもない限り対立する意味が分からない

単純にダークサイドに堕ちて、非建設的な争いを好む人が多いってことなの?

387 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 22:02:02.48 ID:NshUGL/I.net]
>>366
まぁ現場で他人が書いた糞コードを見て苦労して言語自体にヘイトを溜めるっていうシチュエーションは少なくはないと思う

388 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 22:22:52.23 ID:BYNnNKG/.net]
「くだすれPython」を「くたばれPython」と見間違えてるんだろうな

389 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 22:26:57.33 ID:b6hWRg0Q.net]
アイデンティティを自分以外の事物や集団に委譲している奴はそうなる
その事物が傷つけられることはアイデンティティの危機となり、
事物が持ち上げられることはアイデンティティの強化になる
帰属意識が度を越したような奴だ
そんなに珍しくもない

390 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 23:54:17.11 ID:H62SNGUL.net]
キモすれPython



391 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 07:12:26.90 ID:sNcNJ12C.net]
Pythonが好きだからこそ他言語を挙げて叩くというマッチポンプをやりたいんだろうな
正直そんな理由でPythonスレを荒らすなよと

392 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 09:39:44.00 ID:uDQ1dvui.net]
プログラマは知識マウントしたがる奴が多すぎて、初心者を鬱に追い込む件

393 名前:デフォルトの名無しさん [2018/10/04(木) 10:25:17.49 ID:FXVBuQxV.net]
VB/VBAとPHPは貶されて当然

394 名前:デフォルトの名無しさん [2018/10/04(木) 10:57:37.99 ID:vhCji18k.net]
>>373
貶されて当然とゆう事は断じてない
間違いなくペチパー、ジャバパー、そしておまえ、は現代の三大バカやけどw

395 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 13:06:43.22 ID:OaKCCsBZ.net]
普通の荒らしかリアルでゴミみたいな扱いをされて俺の使ってる言語は凄くてそれを使える俺は偉い!他の言語使ってるようなやつはクソ野郎!ていう思考でも持っているのでは?

396 名前:デフォルトの名無しさん [2018/10/04(木) 13:18:44.19 ID:b8j5ZQ1w.net]
どっちみちこのご時世でマッチポンプに引っかかる奴はいないだろ

397 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 15:24:58.18 ID:7tiJnAAs.net]
>>371
それはない。
pythonスレ以外でも全力でruby上げしてるガイジだぞ?

398 名前:デフォルトの名無しさん [2018/10/04(木) 19:16:10.73 ID:VCC0vX9L.net]
if文が複数できない・・・

x = 2
if x == 2:
print("数字は 2.")
if x % 2 == 0:
print("数字は偶数.")
if x % 2 != 0:
print("数字は奇数.")

これを入力したいのですが4行目でエンター押して毎回エラーになります・・・なぜ…?

399 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 19:26:51.44 ID:uDQ1dvui.net]
print文

400 名前:フインデントは? []
[ここ壊れてます]



401 名前:デフォルトの名無しさん [2018/10/04(木) 19:28:37.16 ID:VCC0vX9L.net]
あっすみません インデントはしっかりやってました
正確にはこうですね 失礼しました

x = 2
if x == 2:
    print("数字は 2.")
if x % 2 == 0:
    print("数字は偶数.")
if x % 2 != 0:
    print("数字は奇数.")

402 名前:デフォルトの名無しさん [2018/10/04(木) 19:32:25.59 ID:VCC0vX9L.net]
ただ

403 名前:アれでもエラーになるという・・・
ええ・・・if文ホントは複数無理なんじゃね・・・?
って心持です 参考書のままにやってるのに・・・

ちなみにバージョンは最新だと思います
3.7(32-bit)
[]
[ここ壊れてます]

404 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 20:15:29.41 ID:wVc7LVoj.net]
ふーん
https://ideone.com/7vnM9W

405 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 20:48:40.74 ID:gfYLoY1b.net]
>>381
2行目以降のifをelifに置き換える、が答えになると思う
一応そのままゴリ押しするなら一文ごとにelse:で閉じるでもできなくはないと思うが

406 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 20:52:07.59 ID:P6ujSYbe.net]
なんで? 今のままでエラーなんか起きないだろ?

407 名前:デフォルトの名無しさん [2018/10/04(木) 20:58:51.04 ID:S7+ANpdX.net]
どんなエラー?
インデントにタブとスペースが混ざってたりしない?

408 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 20:59:28.68 ID:zeP0iUEY.net]
コンソールでやらないで.pyファイル作れ

409 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 21:11:59.01 ID:lQWMlWLo.net]
これは何とも面妖な

410 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 21:43:29.94 ID:DS3BxQCZ.net]
エラーメッセージをエイリアン語か何かと思って無視する癖を止めたら、超初心者は卒業できると思うよ。
兎に角エラーメッセージを晒してね



411 名前:デフォルトの名無しさん [2018/10/04(木) 22:14:58.83 ID:KoEltKNu.net]
>>381
対話モードでやってるからエラーになるんだろうな
4行目を入力する前に空行を入力して
if文が終わったことを明示しなくてはならないかと
6行目のところも同じことがいえる

412 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 01:03:06.71 ID:/hQuS5mo.net]
へえ、そうなんだ、知らなかったよ

413 名前:デフォルトの名無しさん [2018/10/05(金) 02:36:56.42 ID:cxTW4oac.net]
おまいら親切すぎる
なつかれたら面倒

414 名前:デフォルトの名無しさん [2018/10/05(金) 06:17:27.57 ID:euHA0F3o.net]
>>389
ありがとうございます 納得しました
次はエラーメッセージも晒します

>>391
人になつかれたことなさそうな人がなんか言ってて笑える

415 名前:デフォルトの名無しさん [2018/10/05(金) 07:00:21.00 ID:37p1YF83.net]
分からん。。。

もう一度、プログラムを見つめ直してみる。

ポジション取るんだけど、バックテストで資金が上昇してもロットは一緒。
>>392


416 名前:デフォルトの名無しさん [2018/10/05(金) 07:00:40.10 ID:37p1YF83.net]
誤爆した。。。

417 名前:デフォルトの名無しさん [2018/10/05(金) 10:49:11.38 ID:kmGDPqXy.net]
エラーメッセージそのままググるだけでもだいぶ違う

418 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:22:51.52 ID:vpbu8eze.net]
なんで、コンソールなんか使うのか?

Ruby, Python でも、VSCode を使え!
拡張機能のCode Runner で、何も考えずとも、右クリックメニューから実行できるわい!

419 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 11:59:37.83 ID:zGlW4kB1.net]
クリックとかしたくねえからだよ頭悪いな

420 名前:デフォルトの名無しさん [2018/10/05(金) 15:22:39.94 ID:xGDGeoHe.net]
関数呼び出しの構文について教えて欲しいんだけどさ
AAA(BBB: CCC)とAAA(BBB=CCC)って一緒なの?



421 名前:デフォルトの名無しさん [2018/10/05(金) 15:27:22.70 ID:Ohnhdvdr.net]
AAA(**{BBB: CCC})とAAA(BBB=CCC)
はホボ一緒だけど
関数の定義のされ方によっては違う

422 名前:遊園地 mailto:sage [2018/10/05(金) 15:40:53.24 ID:oe8MXe/3.net]
F5な。

423 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 17:47:15.35 ID:ClYVvTDI.net]
djangoでゲーム作ってる方っています?
作ってるなら、どんな感じのゲームを作ってるか知りたいです

djangoでのwebアプリ制作の練習も兼ねて、ログインとかデータ保存のできるブラウザゲームを作ろうと思ってるところなんですが、個人でフレームワークを使っての開発は手

424 名前:ノ余るかな、と気になって…
JavaScriptの方が管理しやすいかなぁ
[]
[ここ壊れてます]

425 名前:デフォルトの名無しさん [2018/10/06(土) 17:57:08.71 ID:e52HQVrn.net]
どうみてもDjangoの方が楽

426 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 18:03:47.60 ID:WCVR4P9P.net]
>>402
Dangoでゲーム?
フロントエンドどうすんの?
JS必須だろ

427 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 18:22:42.90 ID:ClYVvTDI.net]
ほんとだ、結局JavaScriptが必要ですね
それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ…

428 名前:デフォルトの名無しさん [2018/10/07(日) 08:57:44.35 ID:uCAn2+3z.net]
言語より環境の方に縛られるという事だな

429 名前:デフォルトの名無しさん [2018/10/07(日) 12:13:18.81 ID:Q039ezIc.net]
既に環境を構築してあるDockerを使え
便利だぞ

430 名前:デフォルトの名無しさん mailto:sage [2018/10/08(月) 14:28:05.12 ID:ofuYlJd2.net]
webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます
pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます
jsonをcsvに変換する良い方法他にないですかね?
jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです
csvは10万行近くになります



431 名前:デフォルトの名無しさん [2018/10/08(月) 15:11:28.99 ID:+5qyKWRv.net]
元のjsonファイルと出力したいcsvのイメージ貼ってみ

432 名前:デフォルトの名無しさん mailto:sage [2018/10/08(月) 16:49:00.47 ID:QZm1evdb.net]
jsonはこんな感じにvisitの中身全部が欲しいです https://jsoneditoronline.org/?id=9ceece44f53c498e925b524305f23a33
csvはこんな感じhttps://dotup.org/uploda/dotup.org1662082.jpg
keyがカラムで値がフィールド、actionsの中のthreatsが配列になってるのでその部分は複数行に分けて配列数分欲しいです

433 名前:デフォルトの名無しさん [2018/10/08(月) 19:20:19.69 ID:0S7LCRH0.net]
1レコードあたりの行数に目途が付くなら
単にテキストファイルをシーケンシャルに読んで
レコード毎にループして正規表現とかで処理するか
丸ごと一個のjsonを読むんじゃなくて
json の visits [] の中身だけに適用して
やっぱりレコード毎にループで処理

434 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 11:08:24.97 ID:ut46KIbF.net]
ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ

435 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 12:09:20.78 ID:lquF7TGT.net]
>>411
全体的にpandasは使わずに
正規表現などを使った自前の処理でカンマ区切りのテキストを生成して
テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね
ということ

あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか
"os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば
多少早くなるかも

436 名前:デフォルトの名無しさん [2018/10/09(火) 17:28:44.16 ID:c0UbTvkE.net]
jsonのobjectって結局馬鹿デカいリストだから
全部pandasに食わせるのは非効率

437 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 19:09:14.17 ID:QlHcI7ga.net]
>>410
>>412
ありがとうございます
目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので…
pandasは勝手に軽いものと思ってたんですが

438 名前:そうでは無いのですね
もう少し自力で試しつつ、無理そうであれば別の方法探してみます
回答ありがとうございました
[]
[ここ壊れてます]

439 名前:デフォルトの名無しさん [2018/10/10(水) 01:28:49.68 ID:cxHjn/W/.net]
25000件で10万レコードって意味なら
1レコードあたりたったの4行だぞ
大したことないじゃん

440 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 01:50:02.45 ID:q9nqGoRh.net]
恥ずかしい



441 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 07:27:32.29 ID:sjNy7la0.net]
anaconda環境でnotepadでプログラム書くのできますか?
Jupiter使ったほうが良いでしょうか?

442 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 07:48:52.41 ID:qywSzTWT.net]
メモ帳は、プログラミングに使ったらダメ!

BOM付きUTF-8 になるから、バグる。
BOMなしUTF-8(UTF-8N)にできるエディタを使うべき!

今は、すべての言語で、VSCode を使う

443 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 08:25:31.03 ID:sQpJ1MsF.net]
jupyterな

444 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 05:13:12.70 ID:MfMAF/GN.net]
>>418
ありがとうございます。PCが古いので軽いの探します。

445 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 06:05:36.88 ID:4dmempzq.net]
>>420
メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ
BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる
いろいろな言語の予約語の強調表示にも対応してる

TeraPad
https://www.vector.co.jp/soft/win95/writing/se104390.html

446 名前:デフォルトの名無しさん [2018/10/11(木) 08:09:45.65 ID:MfMAF/GN.net]
>>418
すいません、ありがとうございます。

それとパスが通ってなくコマンドプロンプトからpythonと入れても起動できなくて、anaconda3\pythonだと起動するのですが。
環境変数にC:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin;など色々試してもダメでした。

英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。
なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。

447 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 08:27:36.65 ID:55KoDwWG.net]
>>422
ログインし直す

448 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 09:45:22.82 ID:/KTbB4eS.net]
Python と Javascript ではじめるデータビジュアライゼーションの50ページです

https://ideone.com/Xv83M6
28行目でエラーになってしまいます。

Traceback (most recent call last):
File "./hoge.py", line 28, in <module>
cols.sort()
AttributeError: 'dict_keys' object has no attribute 'sort'

何がいけないんでしょうか?

449 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:12:50.15 ID:dGtKIiaR.net]
'dict_keys' オブジェクトは 'sort' 属性をもっていない
sortメソッドはおそらくリストオブジェクトのメソッドだろうから
dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ

450 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:17:30.10 ID:6B3tPTW8.net]
>>420
MeryやgPadがおすすめ
TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない



451 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:25:22.78 ID:/KTbB4eS.net]
>>425
どうもありがとうございます
list()で括ったらうまくいきました

3年くらい前の本なんですが、Python2だとこれでも動いたのかそれとも誤記なのかどっちでしょうか?

次のページで、printする際に最後にコンマを付けると改行されないと書いてあったけれど、python3ではコンマ有る無しで表示結果は変わりませんでした。

print(hoge), # こんな感じで

452 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:31:34.26 ID:3Bdkvxy9.net]
漏れは、TeraPad は、メモ書きに使っている。
アプリのサイズが小さい

ただし、一部の文字が使えない。
中国の地名の「深圳」みたいな文字が「深?」になる

453 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:35:19.88 ID:dGtKIiaR.net]
>>427
詳しくはpython2とpython3の違いでググってね

454 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 11:43:56.19 ID:3Bdkvxy9.net]
>>422
例えば、コマンドプロンプトで、where notepad
と入力すると以下のように、メモ帳の実行ファイルのパスが表示される

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

同様に、where p

455 名前:ython と入力すれば?

これで正しく表示されないのなら、
python.exe があるフォルダを、ユーザー環境変数PATH に追加する

環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、
その知識がないと、開発なんてできない!
[]
[ここ壊れてます]

456 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 12:31:23.10 ID:3et536X6.net]
>>427
3年前でpython2なのか、スゲー本だな
訳注ぐらい入れれば良いのにね
python3だとprint(hoge end='')

457 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 12:35:06.81 ID:3et536X6.net]
いけねカンマ抜けた
print(hoge, end='')

458 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 13:10:38.79 ID:bLRRmr2D.net]
>>429
>>431
>>432
どうもありがとうございます。
2と3の違いググりました。
listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね

2016年7月に原書が出て2017年8月に日本語版が出た本です。
今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。
print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。

459 名前:デフォルトの名無しさん [2018/10/11(木) 18:42:11.43 ID:MfMAF/GN.net]
>>430
ありがとうございます。
ずっとやってましたが、色々と調べててもわかりそうにありません。
anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。
ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。
自分でいじるのは、知識をどうにかしてつけてからにします。

460 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 20:38:12.53 ID:OPK+KI2v.net]
>>434
Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽



461 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 23:48:03.56 ID:gjrJHmO+.net]
Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん
C:\Anaconda3にパス通しても動かなくて当たり前
コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く

462 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 05:14:13.33 ID:sf+PB/Vk.net]
>>435
将来的に検索もできる対話型AIを作りたいです。
>>436
その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。
パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。
一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。

463 名前:デフォルトの名無しさん [2018/10/12(金) 09:45:35.48 ID:C1pVYns8.net]
Linux の基本コマンドとか、環境変数PATH など、
OS の基礎を知らない人は、開発者になれない

情報処理資格とか、コンピューターリテラシーが必要

仮想環境では、activate を実行したときだけ、
環境変数PATH に追加するようなプログラムもある

activate する前には、python というコマンドは実行できないが、
activate した後には、python というコマンドが実行できる

464 名前:デフォルトの名無しさん [2018/10/12(金) 14:37:53.89 ID:46Wm2YVF.net]
>情報処理資格

Linux とは関係ない

開発に必要ということは同意

465 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 20:39:27.21 ID:i2AAnytP.net]
EXCELを操作できるライブラリopenpyxl(ver2.3.0-1)なんですが行の挿入でエラーになります。

import openpyxl as py

wb = py.load_workbook('aa.xlsx')
ws = wb.active
ws['A1'] = 'NURUPO'
ws.insert_rows (1)
wb.save('aa.xlsx')

insert_rowsじゅないの?

466 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 21:34:22.63 ID:f9khLXsZ.net]
>>440
ちょっとググったら2.5.0から実装されたみたいよ
https://qiita.com/gameover/items/13868ca9101348bdf4fc

467 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 22:05:44.95 ID:i2AAnytP.net]
サンクス
バージョンアップに挑戦してみる

468 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 00:43:28.48 ID:7a55cFNG.net]
re.searchでグループ化したものを取り出す時に
?P<name>で出来たのですが
re.subと同様に通常の正規表現の「\1」のように
書く書き方は出来ないですか? よろしくお願いします。

469 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 02:11:30.62 ID:bkAbhEU5.net]
>443
> m = re.search("b(.)", "abcdefg")
> print(m.group(1))

c

470 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 02:22:51.26 ID:7a55cFNG.net]
>>444
ありがとうございます!



471 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 06:13:05.25 ID:Ov+YlZxq.net]
アナコンダインストールすればIDEいらない?

472 名前:デフォルトの名無しさん [2018/10/14(日) 16:58:59.85 ID:G4e8iFcg.net]
Py_INCREF()を呼ぶタイミングを教えてください

473 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 19:12:00.22 ID:NuEYON6j.net]
下のようなコードを書いたとして、
mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね?

def func1():
import hoge
...

def main():
...

474 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 19:35:54.62 ID:FWr9wKhu.net]
>mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
されないよ ためしてみそ

475 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 20:15:26.78 ID:O0tCb1jZ.net]
ありがとうございます!
確かめたくても方法が分からなかったですので。助かりました

476 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:15:09.25 ID:jLw0xcfm.net]
>>449
どうやったら試せますか?

477 名前:デフォルトの名無しさん [2018/10/14(日) 21:16:06.39 ID:WLfX4fFS.net]
キャッシュで判る

478 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:44:29.12 ID:FWr9wKhu.net]
>>451
>>448の状態で、importしてないと呼び出せない機能をmainに書き込む
たとえば

def func1():
import re
re.compile('hoge')←これはfunc1をよんでくればエラーしない

def main():
re.compile('hoge')
↑func1をよんでないのにこれ書いたらエラーする

479 名前:デフォルトの名無しさん [2018/10/14(日) 21:45:08.68 ID:SE0u9ZQa.net]
日本語で

480 名前:デフォルトの名無しさん [2018/10/14(日) 21:46:06.36 ID:WLfX4fFS.net]
その理屈だと一回呼んで戻ってきたら使えることになるな



481 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:48:40.36 ID:FWr9wKhu.net]
>>455
あー
そのはっそうは なかったw

450のかき方(インデントは正しくできているものとしてクレン)したら、
func1の中でしかreのimportは効いてナインかな

482 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:53:34.20 ID:FWr9wKhu.net]
ちょっとちゃんと実験してみるは... 三 ( ´D`)

483 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 21:59:28.27 ID:FWr9wKhu.net]
( ・∀・)ノフォラァヨ!!---===≡≡≡ ttp://dpaste.com/18SSZEP :main内でエラーするかきかた

484 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:03:32.75 ID:FWr9wKhu.net]
つづき
ttp://dpaste.com/17A5RJ3 :やっぱりmain内でえらーしますた (この はっそうは なかった)

けつろん
 >453の注釈はまちがいまくりだな!ゲヒャ(∀・∀)
 >>455の疑問はどんぴしゃごもっともだった

485 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:19:11.86 ID:FWr9wKhu.net]
けつろん

> 450のかき方(インデントは正しくできているものとしてクレン)したら、

func1の中でしか
reのimportは効いてナイン

486 名前:デフォルトの名無しさん [2018/10/14(日) 22:21:07.83 ID:OWtIHbk2.net]
importされたモジュールはimport 文が表れるスコープのローカル名前空間で名前を定義される

https://docs.python.org/ja/3/reference/simple_stmts.html#import

487 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:52:00.55 ID:FWr9wKhu.net]
>>461
ありがとーん

488 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:53:21.18 ID:O0tCb1jZ.net]
結局スコープ内でしか有効じゃないから確かめる方法は無いってこと?

489 名前:デフォルトの名無しさん mailto:sage [2018/10/14(日) 22:53:49.91 ID:jLw0xcfm.net]
たいへん勉強になりますた。

490 名前:デフォルトの名無しさん [2018/10/15(月) 04:25:17.24 ID:0W4mw5Ny.net]
>>463

>>452
キャッシュで判る

実行前にキャッシュを消して
実行後にキャッシュが出来ているかを見れば
読み込まれたか無視してるかは判る



491 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 08:59:02.58 ID:pyA/8yHB.net]
キャッシュはどうやって見れますか?
mainでキャッシュ見れる関数を書くのですか?

492 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:32:04.81 ID:vNVpiBIf.net]
マジでアホの考えなんとやらだ
importするとクラッシュするモジュールを用意して
func1からimportしてみりゃーいいだろ
クラッシュすればimportされてるし、しないならimportされていない

493 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:56:16.94 ID:XOcEM3KA.net]
importするとクラッシュするモジュールが発見出来ませんでした・・
よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。

494 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 09:57:31.08 ID:vNVpiBIf.net]
いや、自分で書けばいいだろ
馬鹿が

495 名前:デフォルトの名無しさん [2018/10/15(月) 10:31:21.43 ID:/DZZgAIK.net]
importするmoduleを自分で書くなら
moduleの初期化時にprint('読まれたよ!')って書いて置けば桶

496 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 12:38:01.14 ID:A4+xGAqj.net]
なんなの遊園地?

497 名前:デフォルトの名無しさん [2018/10/15(月) 16:32:59.34 ID:13a7w8hI.net]
>>470
天才現る!

498 名前:デフォルトの名無しさん [2018/10/15(月) 18:05:35.02 ID:5iEXqQwD.net]
>>463
スコープ内で有効だから確かめられないではなくグローバル変数にすれば良いのでは

def func():
import re as _re
global re
re = _re

def main():
func() #コメントアウトするとprintでエラー
print(re)

499 名前:デフォルトの名無しさん [2018/10/15(月) 18:19:51.97 ID:/DZZgAIK.net]
def main():
#func() #func()無関係にprintでエラー
import re as _re
print(re)

500 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 21:29:43.28 ID:E6pr56BO.net]
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。



501 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 21:35:11.02 ID:E6pr56BO.net]
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

502 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 17:08:42.26 ID:u7YyW5Kg.net]
自作クラスのインスタンスが持ってる変数を全て、保存しておいた値に戻すようなコードを書きたいのだけれど、どうやって書けばいいかな?
ある時点の値にロールバックしたいということなのだけれど、継承していてもちゃんと動作するようにしたい
想定している処理はこんな感じ

class A:
 def rollback(self):
   全部のインスタンス変数を self.backup の値に戻す

 def make_backup(self):
   self.backup = バックアップを作成

class B(A):
 def proc(self):
   self.make_backup()
   # なんか処理
   self.rollback()

設計が悪いと感じたらなにか代替案を教えていただければ嬉しいです

503 名前:デフォルトの名無しさん [2018/10/16(火) 18:16:27.10 ID:YLHbxnbG.net]
pickle

504 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:24:52.10 ID:LVmCdvc6.net]
あの、プログラム終わったら次のプログラムを起動したいのですがどうやったら開けますか?
最後にはシャットダウンしたいです。

p1.py実行
→最後の行でp2.pyを呼び出す
→p2.py実行
...
→最後の行でpn.pyを呼び出す
→pn.py実行
→最後の行でシャットダウン

こんな感じでやりたいです。

505 名前:デフォルトの名無しさん [2018/10/16(火) 18:28:08.45 ID:YLHbxnbG.net]
subprocess.Popen

506 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:32:15.10 ID:LVmCdvc6.net]
ありがとうございます、できそうです。

507 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 18:34:41.31 ID:+Y6Wm7U2.net]
パイパイを実行?

508 名前:デフォルトの名無しさん mailto:sage [2018/10/16(火) 21:07:08.91 ID:uMB0oNTu.net]
>>479
それチェーンにしないとダメなの?
普通にp1.py, p2.py, ..., pn.pyを次々に呼び出して最後にシャットダウンするシェルスクリプトなり

509 名前:バッチファイルなりを書けばいいような気もするんだが []
[ここ壊れてます]

510 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 11:21:44.01 ID:tSH31TrF.net]
>>477
グローバル変数使うんじゃだめ?



511 名前:デフォルトの名無しさん [2018/10/17(水) 11:49:20.45 ID:LtC7K5yP.net]
ORM

512 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 12:47:48.23 ID:tSH31TrF.net]
>>477
>>484です。知ったかぶりしてすみません。グローバル変数ではなくクラス変数でした。
test.pyで
class MyClass:
  commonVALUE=0
  def __init__(self,initv):
    self.value=initv
  def p(self):
    print(f'instance value= {self.value}')
    print(f'class value= {MyClass.commonVALUE}')
  def bkup(self):
    MyClass.commonVALUE=self.value
  def bkload(self):
    self.value=MyClass.commonVALUE
としといて
>>> from test import *
>>> a=MyClass(100)
>>> b=Myclass(0)
>>> a.bkup()
>>> b.p()
instance value= 0
class value= 100
>>> b.bkload()
>>> b.p()
instance value= 100
class value= 100
この後で
>>> c=MyClass(-1)とあらたにインスタンスを作っても
>>> c.p()
instance value= -1
class value= 100
で、クラス変数は0にはならないみたい。

513 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 13:06:09.93 ID:tSH31TrF.net]
行数制限のため連投ですみません。
継承も大丈夫です。
>>> class B(MyClass):
...   def dec(self):
...    self.value-=1
>>> d=B(1)
>>> d.p()
instance value= 1
class value= 100
>>> a.bkup()
>>> d.p()
instance value= 1
class value= 100
>>> d.bkload()
>>> d.dec()
>>> d.p()
instance value= 99
class value= 100

514 名前:デフォルトの名無しさん [2018/10/17(水) 13:31:27.53 ID:LGIAN4QA.net]
pickle

515 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 13:35:53.65 ID:cWz6TRDk.net]
>>486
それじゃクラス共通になってまうやん
インスタンス毎にバックアップデータ持てないから意図と違うと思う
>>477 で良いと思うけど、何を懸念してるのかを書くともっといい案をもらえそう

516 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:07:18.34 ID:tSH31TrF.net]
>>489
クラスと継承クラス共通でバックアップって意味じゃないの? そりゃスマンコってす
...
各インスタンスごとのバックアップを作って、一括でpush/popしたいなら、
リストの要素を各インスタンスをにしといて、
for i in in instance_list:
 i.backup()
とかにすればいいだけなんでねの?

517 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 10:08:35.95 ID:0gY6dccD.net]
>>490
push-popと言いながらプログラムはpush-popじゃないのはわざと?

518 名前:デフォルトの名無しさん [2018/10/18(木) 16:41:15.03 ID:551Ojw2f.net]
def 関数(arg1,arg2):
ゴニョゴニョ


return ←これが全く理解できないんだけど、目からウロコみたいなページみたいなのないです?


returnが入ると全くわからない。

519 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 07:14:22.21 ID:97FgwNUY.net]
codecs.openて普通のopenより処理重いきがするんですが認識あってるかね?
2.7使ってて文字コード指定で100mb前後のtxtなりcsvてり触りたいんだけど通常のopenでは文字指定出来ず、ioモジュールのopen使うと他のライブラリで使ってるopenの挙動がおかしくなる(?)し、codecs遅いしでどうするのがスマートなのかわからん

520 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 08:17:42.62 ID:5hJcbR3H.net]
codecs.openを使う
そもそもopenに追加処理をしてるのだから、重くて当たり前だろう



521 名前:デフォルトの名無しさん [2018/10/19(金) 12:51:38.13 ID:jQ8EJjtV.net]
> 488
https://youtu.be/neqp_mK1PWM#t=4694s

522 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 14:00:43.26 ID:aYMp4dZA.net]
https://github.com/michaldaniel/Ebook-Viewer
こちらのgitで公開されているLinux用epubビューアを改造して使いやすくしようと思っているのですが、
行き詰まってしまいました。
ブラウザの戻るボタンのようにリンク先(引用元など)に飛んだ後、直前に戻るボタンを実装したいのですが
(ボタンはgtk3の都合上up arrowボタンを使っています)
改造したのはheader_bar.pyでして、

def __populate_headerbar(self):
(途中省略)
# Adds up arrow chapter navigation button
self.up_arrow_button = Gtk.Button()
self.up_arrow_button.add(Gtk.Arrow(Gtk.ArrowType.UP, Gtk.ShadowType.NONE))
self.up_arrow_button.set_sensitive(False);
self.up_arrow_button.connect("clicked", self.

523 名前:__on_up_arrow_clicked)
navigation_box.add(self.up_arrow_button)
(途中省略)
def __on_up_arrow_clicked(self, button):
"""
Handles Up Arrow clicked navigation event, go backward
:param button:
"""
if viewer.Viewer.can_go_back():
viewer.Viewer.go_back()

とすると、
WebKit.WebView.can_go_back() takes exactly 1 argument (0 given)
というエラーがでてしまいます。
(viewer.Viewerはwebkitを継承したものです)
どなたかお知恵をお貸し願えたら幸いです。
[]
[ここ壊れてます]

524 名前:デフォルトの名無しさん [2018/10/20(土) 14:07:46.36 ID:u8BRF3D8.net]
99blues.dyndns.org/blog/2010/01/pywebkit/

525 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 14:24:18.46 ID:n6bj2eyU.net]
>>496
インスタンスメソッドをクラスメソッドみたいにして読んでるから、第一引数として暗黙的に渡されるはずだったselfが足りないって怒られてる。

ソースを斜め読みするとViewerのインスタンスはインスタンス構造上の親であるMainWindowが持っているようなので、
self.__window.viewer.can_go_back()でアクセスできるんじゃないかな

526 名前:493 mailto:sage [2018/10/20(土) 15:04:15.12 ID:aYMp4dZA.net]
>>498
if self.__window.viewer.can_go_back():
self.__window.viewer.go_back()

と書いてやってみたらエラーメッセージはでませんでしたが画面が真っ白になってしまいました。
とはいえ、当初のエラーは解消したので大きな進歩です。どうもありがとうございました。
後は勉強がてら自分でやってみます。

527 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 15:04:58.12 ID:aYMp4dZA.net]
>>497
さんもレスありがとうございました。

528 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 18:30:22.23 ID:V2vR4ZZl.net]
>>492
defがここでおしまいですよ 呼び出し元にかえりんしゃー

という意味

529 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 18:31:25.93 ID:V2vR4ZZl.net]
>>493
from codecs import open as codecsopen
とかやって、
codecsまるごとじゃなくcodecs.openだけ読むようにすればちょっとははやくできる
ちょっとは。

530 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 23:03:44.42 ID:bT6j7LGV.net]
素人質問で申し訳ないのですが助けていただきたく質問します。

いま「みんなのPython」をやりはじめたのですが
Anacondaがうまくできません

最初に普通?のPythonをインストールして
そのあとにPythonをアンインストールしたあと
Anacondaをインストールしました。
そして「ファイル名を指定して実行」で「python.exe」と入力しても
「'python.exe'が見つかりません」となってしまいます。
Windows PowerShellで「>python」と入力しても
「用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」
となってしまいます。

Anacondaのインストールでは
「Add Anaconda to my PATH environment variable」にはチェックは入れてません
「Register Anaconda as my default Python 3.6」にはチェックを入れました。



531 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 23:37:57.82 ID:aY20u7RH.net]
英語よめや。

532 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 23:54:05.62 ID:bT6j7LGV.net]
>>504
環境変数PATHを設定する | Pythonインストールと環境設定
https://www.javadrive.jp/python/install/index3.html

このサイトに書いてあるようにやったらできたんですけど
これでいいんですか?

533 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 01:14:29.19 ID:uxH9lXGD.net]
カレントフォルダからは「相対パス/python.exe」で実行できる。
カレントフォルダ以外からも実行したいのなら「絶対パス/python.exe」で実行できる

カレントフォルダ以外からも「python」というコマンドで実行したいのなら、
「python.exe」のあるフォルダを、ユーザー環境変数PATH に登録しないといけない

例えば、コマンドプロンプトで、以下のように入力すると、
where notepad
where python

そのコマンドの実行ファイルのある、場所を表示できる

534 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 06:47:31.22 ID:EmL9QD5v.net]
はじめまして ラズパイでpythonを利用してます。
Python3 ide?でファイルを実行するとmoduleエラーが起

535 名前:きるんですけど、lxterminalで実行したりcronで実行するとエラーはでないで実行できます。
実行できるので問題ないのですが、なんでpython3 ideで実行するとmoduleエラーになるのかが気になります
詳しい方 お気づきがあれば教えてください
[]
[ここ壊れてます]

536 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 07:07:12.22 ID:EmL9QD5v.net]
追加ですが温度センサー使ってます。githubからすべて入手したものです。
ググってもなぜかエラー出るよみたいなことが書かれていて原因は不明だったのでお聞きしました。

537 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 10:24:36.04 ID:d2CNB2CT.net]
Python3でのsqlalchemyについて教えてください

https://ideone.com/tVSjwB

56行目のsession.commit()でエラーになってしまいます。

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) CHECK constraint failed: winners
[SQL: 'INSERT INTO winners (name, category, year, nationality, sex) VALUES (?, ?, ?, ?, ?)']
[parameters: ('Marie Curie', 'Chemistry', 1911, 'Polish', 'Female')] (Background on this error at: sqlalche.me/e/gkpj)

こんな風に書かれてあります。(長いのでここに書くときに改行しました)
何がいけないのでしょうか?

538 名前:デフォルトの名無しさん [2018/10/23(火) 10:29:07.79 ID:ki4w8hD+.net]
>>507
同じPythonを実行してる?(公式の純正PythonとAnacondaとか)

539 名前:デフォルトの名無しさん [2018/10/23(火) 10:35:04.61 ID:ki4w8hD+.net]
>>509
yearはStringじゃなくてIntegerじゃ…?

540 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 10:40:12.34 ID:d2CNB2CT.net]
>>511
ほんとだ!あと、リストのMarieの性別も頭が大文字になってました。
凡ミスなのにありがとうございます!



541 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 10:45:40.79 ID:d2CNB2CT.net]
>>509
あと、29行目の%の所でpep8のE228の注意が出てしまいます。

%の前後にスペースを入れて、こう書くのが正しいんでしょうか?
https://ideone.com/qhYas5

542 名前:デフォルトの名無しさん [2018/10/23(火) 10:48:34.83 ID:ki4w8hD+.net]
>>513
その方がpep8に則ると正しいね

543 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 10:56:47.49 ID:zGwQ/J/L.net]
>>514
どうもありがとうございました

544 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 11:09:52.98 ID:zGwQ/J/L.net]
連投すみません

SQLAlchemyでのデータベースへのアクセスについてですが、filterとfilter_byってどう使い分けするんでしょうか?
違いが分からないです

# スイス人受賞者の取得

# filter_by の場合
result = session.query(Winner).filter_by(nationality='Swiss')

# filter の場合
result = session.query(Winner).filter(Winner.nationality == 'Swiss')


print(list(result))

545 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 11:13:00.78 ID:aeA+1VC2.net]
gtk3とpythonのpygobjectで質問があります。
https://stackoverflow.com/questions/41696515/webkit2gtk-webview-touchscreen-scrolling
こちらの質問にあるとおり、webkit2gtkを使うとlibwebkit1-3.0の時のようなタッチスクリーンによる
スクロールができなくなってしまうのですが、何とかタッチによるスクロール(パンというようですが)
をしたいのです。こちらの質問者の方はコールバック関数にスクロールイベントを書いたらできたと
書いてありましたが、具体的にはどのように記述すれば良いのでしょうか?

https://lazka.github.io/pgi-docs/

こちらのpygobjectのAPIを見てもよくわかりませんでした。どうかよろしくお願いします。

546 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 11:16:03.36 ID:zGwQ/J/L.net]
>>516ですけど、
ふた通りの書き方があるよ、Pythonらしく、より簡単に書く方法はfilter_byの方だよって事ですかね?

547 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 12:43:50.18 ID:EmL9QD5v.net]
>>510
同じpythonです。ラズパイにはじめからはいってるやつです。
ほんと謎
パスかなと思ったけど動いてるから違うんやとおもうけど

548 名前:デフォルトの名無しさん [2018/10/23(火) 13:18:18.96 ID:ki4w8hD+.net]
>>518
軽くググッてから投稿してみよう
https://stackoverflow.com/questions/2128505/whats-the-difference-between-filter-and-filter-by-in-sqlalchemy

549 名前:デフォルトの名無しさん [2018/10/23(火) 13:20:20.07 ID:ki4w8hD+.net]
>>519
バージョンも同じなら、理由はわからんなぁ…

550 名前:デフォルトの名無しさん [2018/10/23(火) 17:07:59.89 ID:J7zWeAP4.net]
みんなやさしいな



551 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:06:12.08 ID:Afmb5nM2.net]
別のフォルダに入った同名ファイルをjoblibのParallelで処理するために以下のようなコードを書いたところ1番目のフォルダの結果が常に出てきてしまうんだけど原因分かる?

・環境
Python: 3.7.0
joblib: 0.12.5
Jupyter Notebook上で実行

・ファイル
C:\a\a.txt -> 「1」とだけ半角で書かれたテキストファイル
C:\b\a.txt -> 「2」とだけ半角で書かれたテキストファイル

・コード
import numpy as np
from joblib import Parallel, delayed

# 実際はもっと大容量のファイルに対して重い処理を行う
def read_file():
return np.loadtxt("a.txt")

os.chdir(r"C:\a")
result1 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

os.chdir(r"C:\b")
result2 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

# 空のフォルダcに移動する
os.chdir(r"C:\c")
result3 = Parallel(n_jobs=-1)(delayed(test)() for _ in range(1))

print(result1) # 出力 : [array(1.)]
print(result2) # 出力 : [array(1.)]・・・[array(2.)]が出力されないのはなぜ?
print(result3) # 出力 : [array(1.)]

552 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:14:21.56 ID:86mV9f+c.net]
ファイルの数を返すメソッドはありますか?
例えばsrcの下にディレクトリaとbがあって
それぞれのディレクトリにa1.txt〜a100.txt、b1.txt〜b100.txtとファイルがあった時に
200と返してくれるメソッドはありますか?
defで関数とか作らず1行で済む方法を探しています。

553 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:22:44.49 ID:zYWUn764.net]
len(os.lisdir(ディレクトリのpath))

554 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 22:36:02.00 ID:BDP8ufz9.net]
いまやってみたらそのコードでは2が帰って来ました
aとbの2つのディレクトリがあるから2なのですかね?
欲しいのはそのまた下にあるファイルの数でした

555 名前:デフォルトの名無しさん [2018/10/23(火) 22:46:04.08 ID:oFF/C26V.net]
Pythonは詳しく無いけど、そう言うは再帰でディレクトリが無い最下層まで潜るコードってよく見るね。

556 名前:デフォルトの名無しさん [2018/10/23(火) 23:35:56.37 ID:EZC/vVVW.net]
>>524
import glob
len(glob.glob(“**/*”, recursive=True))

557 名前:デフォルトの名無しさん [2018/10/23(火) 23:36:52.55 ID:EZC/vVVW.net]
src/**/* だったわ

558 名前:デフォルトの名無しさん [2018/10/23(火) 23:53:26.39 ID:BmpWcPqj.net]
>>524
sum([len(files) for root, dirs, files in os.walk("src")])

559 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 00:12:08.40 ID:2LYWqLo0.net]
>>507
パス・カレントディレクトリとか、起動時オプションとか。
別の実行ファイルを起動しているとか

IDE の前提条件は、プロジェクトごとだろ。
プロジェクトフォルダ・プロジェクト設定ファイルありきだろ。
プロジェクトの条件を満たしていないのかも?

プロジェクトとシェルから実行する形式とは、異なるような気がする

そのエラーメッセージをここにも書いて、それで検索すれば?

>>516-520
「python sqlalchemy filter vs filter_by」で検索!

560 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 00:33:01.65 ID:2LYWqLo0.net]
>>524-530
ls -1UR | wc -l

「linux ファイル数 ディレクトリごと」で検索!



561 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 00:58:29.86 ID:2LYWqLo0.net]
>>517
「gtk webkitwebview」で検索!

562 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 15:19:12.25 ID:B3/hQHxI.net]
521,523です
教えていただいたのをやってみました。
525さんの方法は、フォルダーの数が含まれていました。結果は202が返りました。
527さんの方法は、ちょうど200が返りました。
529さんの方法は、windowsなので出来ませんでした。

これにて問題は解決しました。皆さまありがとうございます。

563 名前:514 mailto:sage [2018/10/24(水) 17:55:05.58 ID:Vc8wznQf.net]
https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html

>Note that WebKitWebView is scrollable by itself, so you don't need to embed it in a GtkScrolledWindow.

って書いてありました。スクロールをGtkで担当していないから、他のgtk3アプリのようにタッチでスクロールできないようです。でも、だったらなんで>>517のリンク先の人はGTK.gestureでできたんだろう・・・

564 名前:デフォルトの名無しさん [2018/10/24(水) 18:10:34.94 ID:95IsyUjL.net]
>なんといっても、800g弱とは思えない軽さと、
薄型コンパクトな筐体はタブレットと同様に、
「出番はないかもしれないけど常時携行しても良い」レベルです。


いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

「出番はないかもしれないけど常時携行しても良い」

また持ち出す

いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

565 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 18:40:13.35 ID:IR3xnlxd.net]
リストにn個の要素があります。
このリストの要素から2個をランダムに選んだペアをm組作りたいです。
ただしペアを重複しないようにしたいのですが、
どうすれば実装できるでしょうか。もしくはライブラリがありますか?
いくら考えてもペアが重複してしまいます。(特に(a,b)と(b,a)のようなペアが出来てしまいます)

n=[1, 2, ... n]
m=3
new_n=f(n, m)
new_n
=[(1,8), (45,n), (n-2, 20)]

みたいになるfを探しています。

566 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 18:54:46.79 ID:Uqd3UckS.net]
>>537
itertools

567 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 18:57:07.94 ID:K3Hn81Y7.net]
リストの中身をシャッフル→前から二つずつ取得

568 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 18:57:08.14 ID:Uqd3UckS.net]
>>535
ここで回答を待つよりリンク先に直凸したほうがはやいきががが

Why could you "scroll" with GTK.gesture?

569 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 19:10:02.77 ID:TphPHDjb.net]
scrapyとXParhについて教えてください

https://ideone.com/af79WT
うまく動いてくれないです。

67行目からの関数が間違えてると思うんですが、77行目のp_templateはどう書くのが正しいんでしょうか?

9行目は
# https://github.com/Kyrand/dataviz-with-python-and-js

17行目は
BASE_URL = 'en.wikipedi

570 名前:a.org'

40行目は
start_urls = ["https://en.wikipedia.org/wiki/List_of_Nobel_laureates_by_country"]

80行目は
# https://www.wikidata.org/wiki/Q155525

です。
[]
[ここ壊れてます]



571 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 19:14:14.74 ID:IR3xnlxd.net]
>>538
これは指定した組み合わせ数に達

572 名前:したら中断する方法はありますか?
実際にはnとmが両方4000程なので、nC2を全て取得するのは冗長と思われるので・・
とはいえやりたいことにとても近いのでありがとうございます。

>>539
実際にはm>n/2となるので難しいと思いました。
すみませんこちらの例題が悪かったですね・・
[]
[ここ壊れてます]

573 名前:デフォルトの名無しさん [2018/10/24(水) 19:14:37.21 ID:/bxb9sB2.net]
>>537
itertoolsとrandom

574 名前:.sampleを組み合わせる
import itertools, random
def pair(n, m):
combi = list(itertools.combinations(n, m))
return random.sample(combi, m)
[]
[ここ壊れてます]

575 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 19:51:07.40 ID:8aeYqShI.net]
>>509
これ、モジュールを入れてますが、ideoneで外部モジュールってどうやって使うんです?

576 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 20:02:29.89 ID:Uqd3UckS.net]
>>542
いつでもやめれるぞ

おれはあほだから
count=0からカウントアップしていって
欲しい組数になったらbreak
とか思いつくが
もっとスマートなやり方あるとおもう

577 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 20:03:01.03 ID:Uqd3UckS.net]
>>544
ソースが貼れるだけで
外部モジュールをとってきて動かすまではideoneしてくれない

578 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 20:26:18.89 ID:Uqd3UckS.net]
>>541
大抵は日付Gregorianで書いてあるとおもうから
文字列Gregorianの 前の文字列を探したらよさげなんだが

80行目のアドレスにアクセスして見てみた
Xpathがもはや538が書いたソースと違っつる
(/html/body/pre/span[1577] ってなってて divに1ツも入ってないYO)ので
具体的にどうとは書けない

579 名前:デフォルトの名無しさん mailto:sage [2018/10/24(水) 23:59:09.70 ID:2LYWqLo0.net]
wikipedia みたいに、しょっちゅう構成が変化するものを、
XPath みたいに順番で指定するものは、動かない

div[2]/div[1]/div/div[2]/div[2]/div[1]
「div の3つ目の、div の2つ目の...」

CSS セレクターみたいに、id, class などの意味で指定する方が、構成の変化に強い。
まだマシ

HTML を解析して、id, class などで限定していくのが基本

580 名前:デフォルトの名無しさん [2018/10/25(木) 01:12:10.66 ID:33Q6k0An.net]
今日突然プログラミングに興味を持ちとりあえずpythonをインストールした初心者です。

連番を作成するとき range(10)と打ち込んでも結果がrange(0,10)になってしまいます
解説サイトを見ると9まで表示されるらしいのですが、なぜrange(0,10)になってしまうのでしょうか?
バージョンは3.7.1です



581 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 02:20:57.87 ID:NT+vxu3F.net]
>>549
解説サイトがpython2向けだから。
別のサイトを見つけましょう

582 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 02:27:15.39 ID:ZE3NVml1.net]
Ruby の範囲は、 終端を含む、.. と、含まない ... がある

0..3 → 0〜3
0...3 → 0〜2

python では、終端を含まないのかな?

推測だけど、range(10)と引数が1つの場合は、終端のみが指定されたとみなすのだろう。
その場合、始端は0 が指定されたのと同じ

つまり、range(0,10)と同じ

583 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 07:58:15.11 ID:ANca8D/1.net]
>>547
538を書いたのは昨日だけど、今試しても80行目のアドレスのdate of birthのXPathは
//*[@id="P569"]/div[1]/div/a

8 October 1927の部分のXPathは
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]
でしたよ

>>547
>>548
583のスクリプトだと誕生日、死亡日、出生地、死亡地、性別を77行目の天ぷらで取得するようになってるけれど、もう天ぷらを改変して使うことも無理だから、項目一つ一つそれぞれ取得しないといけないって事ですか?

584 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 08:09:34.19 ID:ANca8D/1.net]
https://www.wikidata.org/wiki/Q155525

この表の左側(date of birthとかplace of birth)のdiv classは
wikibase-statementgroupview-property-label

表示の真ん中の8 October 1927や、Bahía Blancaのdiv classは
wikibase-snakview-value wikibase-snakview-variation-valuesnak
のようでした。
これらを使って >>583 に当てはめる事できますか?

585 名前:545 mailto:sage [2018/10/25(木) 08:57:54.49 ID:ZE3NVml1.net]
例えば、Ruby で、5ch の書き込み内のa タグを、XPath で指定するのは、こういう感じ

# a を含む、post_node だけを抜き出す。descendant は子孫、ancestor は祖先
# div.thread > div.post > div.message > span > a

post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"

/div[2]/div[1]/div/div[2]/div[2]/div[1]
こういう、1, 2 などの順番では指定しない

順番で指定すると、サーバー側で、HTML ページを作る時に、順番が変わるかもしれない

普通はXPathではなく、以下のような、CSS セレクターで指定する。
div.thread > div.post > div.message > span > a

thread クラスが付いた、div 要素の直下の、
post クラスが付いた、div 要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、a 要素

ブラウザのF12 開発者ツールを起動して、自分でHTMLを解析する

586 名前:545 mailto:sage [2018/10/25(木) 09:17:05.90 ID:ZE3NVml1.net]
Chrome で、自分が解析したい要素上で、右クリックメニューで検証を押すと、F12 開発者ツールが起動する

表示されたHTML 上で、右クリックメニューでCopy の所から、
XPath, selector(CSS selector)をコピーできる

例えば、このスレの書き込み内のa タグを、検証してみると、
XPath, CSS selectorは、

//*[@id="550"]/div[2]/span/a[2]
550 > div.message > span > a.reply_link

id が550 の要素の直下の、
message クラスが付いた、div 要素の直下の、
span 要素の直下の、
reply_link クラスが付いた、a 要素

ただし、id は550など、先頭文字が数字では始められないから、これは間違い。
5ch の開発者が間違っている。バグ

587 名前:545 mailto:sage [2018/10/25(木) 09:39:35.73 ID:ZE3NVml1.net]
date of birth の、XPath, CSS selectorは、

//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property

id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

このCSS セレクターで要素を取得して、それが1つだけかどうか確認しないといけない。
このHTML の製作者は、このクラスを複数のタグに付けているかもしれない

このように、他人が作ったHTMLを、解析していくのが難しい。
その仕様は、その製作者が決めたもので、我々が知らないものだから、
隠された情報を暴くのに、時間を食うから、非常に無駄!

仕事以外で、他人の仕様を解析するのは辞めた方がよい。
製作者は答えを知っているけど、我々は答えを知らないから、時間ばかり食う!

588 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 09:43:11.50 ID:wiUcTcgZ.net]
たまにはいいこと言うじゃねえか

589 名前:デフォルトの名無しさん [2018/10/25(木) 10:14:40.95 ID:yIJtoQcC.net]
今は1階層深くなっているようだ
//*[@id="{code}"]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]{link_html}/text()

590 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 10:21:59.94 ID:Rw/1mEHp.net]
>>556
なるほど

まだ途中までしか読んでないけどおそらく本の内容はこんな感じ

1
ウィキペディアにある現在までのノーベル賞受賞者の全員の一覧からウィキデータにある各人のパーソナル情報とウィキペディアの各人の概略と人物写真をScrapyでスクレイピング

2
そのデータをPandasとMatplotlibでクリーニング、分析

3
そのデータをFlaskを使って配信

4
そのデータをJavascriptのD3.jsで可視化

4の可視化に興味があって読み始めた感じ。けどせっかくなので1から読んでScrapyも学んでみようかと。
でも、他人が作ったサイト(ウィキペディア)で悩むよりもAPIなどで簡単に取得出来るような別のデータを使って2に進んだ方がよいですか?
(幸い、本の著作のGithubは数年前にすでにスクレイピングしたデータが置いてありました。数年前なのでもちろん今年の本庶さんは含まれてないですけどね。)



591 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 10:22:45.04 ID:Rw/1mEHp.net]
>>558
それどうやって見つけたんでしょうか?
ちょっと見てみます。

592 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 10:43:07.24 ID:Rw/1mEHp.net]
https://i.imgur.com/I9jF1Rl.jpg
date of birthのところでコピーしたXPath
//*[@id="P569"]/div[1]/div/a

https://i.imgur.com/b4m9Pop.jpg
その日付けのところでコピーしたXPath
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]

2枚目の画像の部分を選ぶんだと思っていたんですけど、もしかして選ぶ場所間違えてますか?

593 名前:545 mailto:sage [2018/10/25(木) 11:01:29.24 ID:ZE3NVml1.net]
>>559
その本の例題が難しすぎる。
自分で他人のHTML を解析してまでやる必要はない。無視すべし

自分のやりたい部分だけを、やった方がよい

594 名前:デフォルトの名無しさん [2018/10/25(木) 11:34:29.89 ID:yIJtoQcC.net]
>>561
目的地点はあってるが出発地点が違う
もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう

595 名前:545 mailto:sage [2018/10/25(木) 12:03:03.26 ID:ZE3NVml1.net]
date of birth の、XPath, CSS selectorは、
//*[@id="P569"]/div[1]
#P569 > div.wikibase-statementgroupview-property

id がP569 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

place of birth の、XPath, CSS selectorは、
//*[@id="P19"]/div[1]
#P19 > div.wikibase-statementgroupview-property

id がP19 の要素の直下の、
wikibase-statementgroupview-property クラスが付いた、div 要素

ここで、id のP569, P19 みたいなものは、別のHTML から取れるのか?
だったら、CSS セレクターで取れる

XPath なら、div[1] とか番号指定よりも、class 指定の方がよい。
//*[@id='P569']/div[@class='wikibase-statementgroupview-property']
//*[@id='P19']/div[@class='wikibase-statementgroupview-property']

596 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 12:21:08.82 ID:Rw/1mEHp.net]
>>563
出発地点ですか!

例えば「8 October 1927」という文字の上で右クリックして検証を選んで出てくる開発者ツールのElements欄を見てるんですが、もしかしてそこから間違えているとかですか?

> もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう

どういう事なのかさっぱり分からないです…

>>563
>>564
そういう知識はどこで身につけるんでしょうか?
おそらくこれはPythonとは直接関係ない部分なのでPythonの本でもそんなに詳しくは書いてないのかと思います。
これらはWeb開発の知識でしょうか?
ほんのちょっとだけどPythonは覚えたから大丈夫だけど、Webは分からないから暗号にしか見えず恐ろしいです。

なるべくWeb開発をしなくてもいいように(ほんとはWebは専門の人に任せようって)、Web開発の部分はなるべく最小限で済むようにして、みなさんがPythonとJavascriptのプログラミングに専念してシングルページアプリを作れるようにってのがこの本らしいけれど、
XPathやChromeのこのツールやdivとかクラスっていうものの知識ってどういうところ(本?サービス?言語?)で学ぶといいんでしょうか?結局はやはりWebの知識が必要になってくるんでしょうか?
途中、SVGでグラフィックを作る章の最初にHTMLとcssの基本的な事が書かれてありましたけれど。

597 名前:545 mailto:sage [2018/10/25(木) 13:36:59.66 ID:ZE3NVml1.net]
先に、JavaScript, jQuery で、CSS セレクターを学ぶ。
CSS セレクターの方が読みやすい。
入門用サイトでも見て

HTML で、CSS デザイン用の属性、id, class などを付けるでしょ?
それを手掛かりにして、要素を取得する

XPath は後でよい。
入門用サイトを見る

598 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 14:08:58.54 ID:JjKr6ouj.net]
https://i.imgur.com/H3vQCNy.jpg
>危険なWeb開発地帯
自分もこの認識
恐ろしい

>>566
早く先に進

599 名前:みたいけれど、一旦Pythonは横に置いて、そういう学習してみます。
プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?

あと、JavaScriptのスキルを身に付けたいならフレームワーク(jQueryなど)の存在は完全に無視すべきとありました。
[]
[ここ壊れてます]

600 名前:デフォルトの名無しさん [2018/10/25(木) 14:10:23.63 ID:f1dgb8e7.net]
Python少し触っただけの初心者です。
インデント位置が変わるだけでプログラムのロジックの意味が
変わるのを知ってビックリしているのですが、
そんな言語を使ってまともなプログラムを書けるのですか?



601 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 14:13:05.16 ID:JjKr6ouj.net]
>>568
初心者ですけど、逆に分かりやすいと思いました。

602 名前:545 mailto:sage [2018/10/25(木) 1 ]
[ここ壊れてます]

603 名前:4:20:16.10 ID:ZE3NVml1.net mailto: 難しすぎるから、あきらめた方がよい。
他人が作った、HTML を解析しても、時間の無駄で、得るものがない!

本か入門用サイトで勉強した方が、体系的に勉強できて、余程よい

それと投稿時には、名前欄に、538 と書いてくれ
[]
[ここ壊れてます]

604 名前:538 mailto:sage [2018/10/25(木) 14:29:40.72 ID:JjKr6ouj.net]
>>570
まさにこの本がPython学習者がデータの可視化に向けてJavaScriptを学ぶのにちょうどよい本だと思って手に取ったんですが…

605 名前:デフォルトの名無しさん [2018/10/25(木) 15:37:48.62 ID:5Cy/pQlU.net]
最近裾野が広がって初学者が増えたのは良いが
FAQはどっかでまとまったの見ておくべき

606 名前:デフォルトの名無しさん [2018/10/25(木) 15:45:19.08 ID:K87hu2sk.net]
>>568
同じ処理なら誰が書いても同じようなコードになる

607 名前:デフォルトの名無しさん [2018/10/25(木) 16:04:24.36 ID:g7JlCOxC.net]
Python始めたての初学者です。
ファイルを読み込んで、バックアップをとってから、ファイルの一部を書き換えるというプログラムを書きました。
これをPython3.6.1環境のLinuxで実行すると、うまく動きましたが、2.7.5環境の別マシンでは、
TypeError: 'encoding' is an invalid keyword argument for this function
というエラーを吐き実行できませんでした。さらに、2.5.2環境の別マシンでは
AttributeError: 'str' object has no attribute 'format'
というエラーを吐き、実行できませんでした。
Python2と3では互換性がないということは存じ上げていますが、今回、3.6.1、2.7.5、2.5.2のすべての環境で動くものを作りたいです。
おそらくopenのencodingの部分と、datetimeの部分のformatの書き方がだめなんだと思いますが、
全バージョン対応の書き方をしようと思うとどういった形になるのでしょうか。
ちなみに、以下がコード全文です。
https://pastebin.com/F2UKiYtQ

608 名前:デフォルトの名無しさん [2018/10/25(木) 16:27:15.45 ID:5Cy/pQlU.net]
無駄な抵抗はよせ

609 名前:デフォルトの名無しさん [2018/10/25(木) 17:20:42.65 ID:YZYAqGHb.net]
>>565,567

Pythonは詳しく無いので恐縮ですが、

>プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?

CSS(スタイルシート)はWebページの見た目を制御するためのものです。

HTMLの要素ごとに、サイズ、背景、フォントの種類、レイアウトなどをCSSで指定する。
HTMLの要素は、タグ、属性、値で構成される。divはタグ、id, classは属性。

よって、CSSを覚えるには、HTML+CSSのセットで覚える必要がある。

今だったら、HTML5+CSS3

さらに、HTMLの要素を操作して表示を変化させるにはJavaScriptを使う。

ホスト側で処理が必要な場合は、CGI(GET,POST)などの知識も必要。

Webページ(HTML)の解析をするのであれば、HTML+CSSの知識は必須と思う。

610 名前:デフォルトの名無しさん [2018/10/25(木) 18:16:58.93 ID:g7JlCOxC.net]
>>575
抵抗させてください



611 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 19:39:32.30 ID:Mzrh8O3p.net]
まず2.5の文法だけで2.5で動く奴を書け

612 名前:デフォルトの名無しさん [2018/10/25(木) 19:56:43.69 ID:NF5xn3mp.net]
>>578
なに偉そうに命令しとるんじゃ
しばくぞ

613 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 20:10:31.29 ID:NRPlmaaN.net]
>>574
  >>578
  しかるのちpythonのバージョンを検出し
  そのさき読み込む部分を切り替える処理を書く
おk

614 名前:デフォルトの名無しさん mailto:sage [2018/10/25(木) 20:58:23.32 ID:NT+vxu3F.net]
無駄なあがきだと思うよ
import sys
if sys.version_info >= (3, 0):
def xopen(file, encoding):
return open(file, encoding=encoding)
else:
import codecs
def xopen(file, encoding):
return codecs.open(file, encoding=encoding)

615 名前:デフォルトの名無しさん [2018/10/25(木) 23:07:28.40 ID:ZUq2YpeN.net]
確かに文字列関係は労力が見合わないな

616 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 01:52:17.86 ID:etilwalQ.net]
>>581
ありがとうございます
いい感じに動いてるっぽいです
ちなみになんですが、
def xopen(file, encoding):
return open(file, encoding=encoding)
xopenという新たに定義した関数のencodingっていうパラメータが、open関数に渡る際に、encoding=encodingとなった右側のみに代入されるのがいまいち何故か分かりません

617 名前:532 mailto:sage [2018/10/26(金) 10:52:40.48 ID:99OxERMj.net]
>>540
遅レスで会話の邪魔して悪いんですが。英語で質問するだけの勇気がありません・・・
pyGTKでgtk.gestureはそもそも文献自体がほとんど(2019/1に洋書が出るようですが)ないので、
とりあえず今はwebkit1を使って凌ごうともいます。

618 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 11:27:23.79 ID:+/5bIPXr.net]
いまスクレイピングの勉強してて、テキスト通りに入力したら
operation not permittedとエラーが出ました
python3.6
IPad Proでpythonista使ってます
写真がその内容です
https://imgur.com/a/DNU9qUA

619 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 11:28:03.08 ID:+/5bIPXr.net]
原因わかるかた教えてください

620 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 12:46:11.07 ID:xBIHPZW8.net]
>>574
そういうマルチバージョン対応などは、10年以上の開発者がやるもの!
初心者がやるべき事ではない

初心者は、python3系だけを使ってください



621 名前:デフォルトの名無しさん [2018/10/26(金) 13:22:34.36 ID:mc9Lb34M.net]
>>587
アホは出てくんな

622 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 13:32:28.45 ID:kt4cO7LW.net]
>>586
クリップボードの内容を取得したりOSと連携する様な操作は
iPadだと出来ることと出来ないことがあるよ
クリップボードの内容取得は出来るけど
iOS用に書き換えないと

import clipboard
text = clipboard.get()
print(text)

Pythonista のドキュメントに以下の項目があって
iOS 用に使えるモジュールが出てる
Pythonista Modules
Additional modules developed specifically for iOS

623 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 13:40:57.57 ID:pU3zjhOE.net]
pipでuinstallした時に
would remove:
proceed?(y/n)
と聞かれて、yを選ぶと
fikenotfounderrorが出てアンインストール出来ません
どうしたらよいですか?

624 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 14:05:26.31 ID:1xxQ31UG.net]
>>590
pipのバージョン、Pythonのバージョン、OSの種類とバージョンくらい書かないと絶対無理

625 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 14:59:47.80 ID:pU3zjhOE.net]
pip 18.1
python 3.5.3
windows10
です。

626 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 15:02:26.09 ID:pU3zjhOE.net]
そして、uinstallしたいのはtensorflow1.4.0です。

627 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 15:07:19.64 ID:1xxQ31UG.net]
>>592-593
・ないといわれたファイルは実際に(ほんとうに)あるのか、ないのかをexplorerあたりから確認しる
・テンソルフローはうまくうごいていたのか、いないのか
・ログインユーザー名に日本語(2バイト文字)を使ってないか?

628 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 15:09:31.17 ID:1xxQ31UG.net]
もしかしたら
「setuptoolsを再インストール」すればなおるかもしんない。

629 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 15:41:07.87 ID:7cSp+c0W.net]
>>546
なるほど
見せるためだけに使ってる感じですか
ありがとうございます

630 名前:デフォルトの名無しさん mailto:sage [2018/10/26(金) 17:48:07.64 ID:OsF5A133.net]
>>589
ありがとうございます
やっぱり初心者にpythonistaは厳しいのかなー
iPadで出来ていろいろ便利なんですけどね……。



631 名前:538 mailto:sage [2018/10/26(金) 20:36:27.02 ID:VmKQ+7a8.net]
>>576
どうもありがとうございます 参考になります 。
自分はWebページ作りそのものに感心は全く無いんですが、しかし今の自分が読むべきなのは例えばこういう本なんでしょうか?
https://images-na.ssl-images-amazon.com/images/I/51cDHqLOl3L._SX353_BO1,204,203,200_.jpg
(アマゾンでHTML5

632 名前:で検索して一番上に出てきた本です) []
[ここ壊れてます]

633 名前:573 [2018/10/26(金) 23:50:52.48 ID:vtwelEqx.net]
>>598
そういう感じの本です。

私の持っている本はこれです。ちょっと古いです。
https://images-na.ssl-images-amazon.com/images/I/51e-xYj018L.jpg

タグや属性を調べるだけならポケットリファレンスで十分かもしれません。
https://images-na.ssl-images-amazon.com/images/I/91Oh7lXoi0L.jpg

634 名前:デフォルトの名無しさん [2018/10/27(土) 00:41:13.73 ID:QkHwtfgJ.net]
スレチ

635 名前:デフォルトの名無しさん [2018/10/27(土) 17:49:12.10 ID:ZlRq8doU.net]
HTML, CSS, JavaScript, jQuery などの事は、web制作管理板で聞いてください

636 名前:デフォルトの名無しさん [2018/10/27(土) 17:49:31.22 ID:M4OQ4nwj.net]
python3で
print("humi" , humi, "%") を実行すると ('temp', 23.0, 'c') ←23は実際のセンサーの値です。
print関数で””で囲んだのは文字扱いで、複数の文字のときは「,」で区切りますよね?
理想は humi 47.0 %  と表示させたいのですがどうすればよいでしょうか?
初歩の質問なのですが悩んでおります

637 名前:デフォルトの名無しさん [2018/10/27(土) 17:53:45.53 ID:WN5vicFY.net]
>>602
https://ideone.com/TzBly3

638 名前:デフォルトの名無しさん [2018/10/27(土) 18:16:13.96 ID:M4OQ4nwj.net]
>>603
すまんが 俺もいままではそれでできてた。
今回はそれを入力すると ('temp', 23.0, 'c') って出るんです
そもそもなんで「'」になってるのかすら分からない。

639 名前:デフォルトの名無しさん [2018/10/27(土) 18:19:52.16 ID:M4OQ4nwj.net]
すまんごちゃごちゃになってますね。
print("humi" , humi, "%") →('humi', 23.0, '%') になります。
普通なら>>603で大丈夫なはずなんですけど。。

640 名前:デフォルトの名無しさん [2018/10/27(土) 18:26:42.99 ID:d3ZViLoJ.net]
それはpython2の挙動だな



641 名前:デフォルトの名無しさん [2018/10/27(土) 18:40:14.43 ID:M4OQ4nwj.net]
>>606
ん?そんな急に変わるもんなの?
実行もsudo pythonで実行してるけど sudo python3にできたりするのですか?

642 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 18:49:01.71 ID:QoVX+/e8.net]
>>607
2系と3系はハゲあがるほど文字列まわりが違う
3系をsudoするなら
sudo py

643 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 19:20:52.01 ID:ZlRq8doU.net]
Windows10, WSL, Ubuntu 16.04 では、

which python3
=> /usr/bin/python3

644 名前:デフォルトの名無しさん [2018/10/27(土) 19:42:26.23 ID:M4OQ4nwj.net]
>>608
それは存じてます。
それより下にあるprint関数はpython3の書き方でしっかり表示できてるんですよね。。
なぜかこの行だけ変な表示になる

645 名前:デフォルトの名無しさん [2018/10/27(土) 19:56:03.40 ID:tpZx8Nmf.net]
まだ2系使ってるのはどんな層?

646 名前:デフォルトの名無しさん [2018/10/27(土) 20:38:05.02 ID:p3Z91K38.net]
Linux系じゃね?
ブートストラップ周りに2系がガッツリ食い込んでるって聞いたことある。
そのせいで2系がデフォルトで入ってるとか。

647 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 20:52:22.52 ID:QoVX+/e8.net]
>>611
基本Windows使ってるけど
2系のころ勉強して
そのまんま・・・

あとたしかに>>612

648 名前:デフォルトの名無しさん [2018/10/27(土) 21:09:16.81 ID:d3ZViLoJ.net]
humi = 25
print("humi" , humi, "%")
print(humi)

出力:
('humi', 25, '%')
25

649 名前:デフォルトの名無しさん [2018/10/27(土) 21:26:03.77 ID:M4OQ4nwj.net]
>>614
まさにこれ。
python2はないと思う。ずっとこれでやってきてるので。
部分的に2とかありえるのかな?

650 名前:デフォルトの名無しさん [2018/10/27(土) 21:28:08.36 ID:d3ZViLoJ.net]
>>614はpython2で動かした結果



651 名前:デフォルトの名無しさん [2018/10/27(土) 21:39:51.74 ID:M4OQ4nwj.net]
>>616
まじですか・・
当方ラズパイをつかってまして lxterminalで sudo python ファイル名 なら実行できるけど
python3 IDLEつかうとモジュールエラー出るから避けてたんだけど もしかしてpython3じゃないってことですかね?

652 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 21:41:02.12 ID:GbJLfo15.net]
ちゃんと調べたら2系で動いてましたテヘペロ
に1票
これまでずっとそうしてきたから

653 名前:ニか本当に信用ならん []
[ここ壊れてます]

654 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 21:42:08.13 ID:QoVX+/e8.net]
sudo python -Vと打ってかくにんしる

655 名前:デフォルトの名無しさん [2018/10/27(土) 21:53:58.98 ID:WN5vicFY.net]
RHEL系もDebian系もシステム周りはここしばらくはpython -> python2で、3はpython3で呼ぶようになってる

656 名前:デフォルトの名無しさん [2018/10/27(土) 21:57:57.20 ID:M4OQ4nwj.net]
>>618
確認しました。ほんとにそれでしたすいません。
pip3でインストールしなきゃいけなかったそうです
どうもありがとうございました

657 名前:デフォルトの名無しさん mailto:sage [2018/10/27(土) 23:54:55.35 ID:GbJLfo15.net]
どんまい

658 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 07:05:43.19 ID:7IwsJv31.net]
自分ではどうしようもなくて他人に泣きついたのにどうしてその相手の言うことを聞かずにグダグダやってたんだ?

659 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 07:43:54.72 ID:lVhl2H66.net]
Pythonで作成したモジュールをUWSCで呼び出すことはできますか?
UWSCではDLLを読み込んで関数が使えるのですが
そういう行為をプログラミング用語でなんというのでしょうか
検索ワードがよくないのか手がかりすら掴めてないです
よろしくお願いします

660 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 07:57:38.17 ID:JDWqlC9k.net]
>>624
uwscなんて初めて知ったけど、exec()というコマンドがあるそうだから、単純に
exec("pythonのパス" + "pythonスクリプトのパス")でいいんじゃないの?



661 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 11:48:06.52 ID:lVhl2H66.net]
>>625
execはexeを起動するだけなんです
似たようなものにdoscmdというのがあるんですがこれでも駄目でした
UWSC掲示板があって過去ログもみたんですがPythonに関する質問すらなかったです
www3.rocketbbs.com/13/bbs.cgi?id=umiumi
すみませんわざわざ調べて頂いて

662 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 12:12:29.72 ID:YiTUMI+K.net]
>>626
それで十分だろ。
思い込みは捨てて
exec("<python.exeのフルパス> <スクリプトのフルパス>")
を実行してみなよ。
discmdのほうも単にパスが通ってないだけだと思うよ。
フルパスで入力してる?

663 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 12:54:25.06 ID:lVhl2H66.net]
>>627
すみません、解決しました
実行時の引数が不足してました
ありがとうございました

664 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 13:08:03.94 ID:auhqQrbO.net]
Fswebcamで撮影した写真をメールで自動送信を考えています。
探知して送るのはあるんですけど、撮影した写真をまとめて送るようなプログラムってつくりにくいですか?
シェルだと楽っぽいけど 慣れてないので分からない。。

665 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 13:30:49.38 ID:auhqQrbO.net]
もしくは撮影されたフォルダ内から日時の新しいものとか新しいうちの四つを添付するとかできないかなと?
普通に添付するならファイルが指定になるから難しそうですかね。。

666 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 22:42:22.92 ID:KcfCsfCB.net]
書いてみれば良いじゃない

667 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:28:27.44 ID:fiBcuTbE.net]
numpyで配列の要素が範囲となるような配列をつくることはできますか?
例えばAというはいれつがあって、
A[0] = np.arange(0,1,0.01)
みたいなものです

668 名前:デフォルトの名無しさん [2018/10/29(月) 00:31:07.47 ID:tXMYusEl.net]
意図があってるか分からないが
A = np.stack([np.arange(0,1,0.01)]*10)
A += np.arange(10).reshape((10,1))

669 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 09:07:55.84 ID:FSHl5k4M.net]
>>623
いるよなこういう何の生産性もないレスする奴(烏賊ブ)

670 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 09:36:36.83 ID:sBuO7UaY.net]
そうだな



671 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 10:18:07.79 ID:ThrPEx61.net]
>>633
ありがとうございます
なんとかできました

672 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 11:12:02.14 ID:wR2M4wFA.net]
requestsでファイルをダウンロードする時タイムスタンプは変更しないでダウンロードする方法

673 名前:教えて下さい!! []
[ここ壊れてます]

674 名前:デフォルトの名無しさん [2018/10/29(月) 11:28:06.05 ID:VxCr7qKV.net]
os.utime

675 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 11:56:15.99 ID:wR2M4wFA.net]
requestsで何らかの方法を使ってファイルの作成日などを取得してダウンロード後にos.utimeでその日付に書き換えるんでしょうか?

676 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 11:57:16.03 ID:wR2M4wFA.net]
wget -N url
みたいな事が出来るとよいんですが。

677 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 12:28:53.22 ID:20y3T6Cw.net]
httpレスポンスヘッダのlastmodified

678 名前:デフォルトの名無しさん [2018/10/29(月) 12:51:46.14 ID:VtmwN/uo.net]
wget -N url も utime やろ

679 名前:493 mailto:sage [2018/10/29(月) 17:45:54.93 ID:k7vAtK/H.net]
ちょっと前にwebkitgtk epubミューアの件で質問した者ですが、コードを見ていて疑問に思っていたことがあるので
質問させてください。
main_window.py

self.viewer = viewer.Viewer(self)
print("Displaying blank page.")
self.viewer.load_uri("about:blank") # Display a blank page
self.viewer.connect("load-finished", self.__ajust_scroll_position)
self.viewer.connect("load-finished", self.__save_new_position)
self.right_box.pack_end(self.right_scrollable_window, True, True, 0)
# Create Chapters List component and pack it on the left
self.chapters_list_component = chapters_list.ChaptersListComponent(self)

(途中省略)

def __save_new_position(self, wiget, data):
"""
Saves new position in case new load came from link based navigation
:param wiget:
:param data:
"""
if not data.get_uri() == "about:blank":
self.content_provider.set_data_from_uri(data.get_uri())

load-finishedの時に呼ばれているコールバック関数なんですが、wigetとdataって何なんですか?
なんでdata.get_uri()と書けるんでしょうか?
それと、このコールバック関数配置ページ読み込むごとに呼ばれているという認識で正しいのでしょうか?

あと、 content_provider.py
if urllib.parse.unquote((os.path.split(uri)[-1]).split("#")[0]) == os.path.split(self.chapter_links[i])[-1]:
ってどうして必要なんでしょうか?(これがないと機能しないようですが)

680 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 17:46:38.70 ID:k7vAtK/H.net]
関数配置ページ
関数は一ページの変換ミスです。ごめんなさい。



681 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 17:50:01.97 ID:dTGmjkHB.net]
https://imgur.com/a/iT18u6W

titleの文字列取得の時はstring付ければよかったけど、最後の奴はstring付けるとエラーになります
こういうときはどうやって文字列だけ抽出するんですか?

682 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 18:12:16.70 ID:ItEstrK2.net]
>>645
写真だと見づらいね
find_allの時はリストで取得してるから
for c in content: で回して取り出してみて

683 名前:デフォルトの名無しさん [2018/10/29(月) 18:35:48.17 ID:RJcKPmzk.net]
c.attrs['content']

684 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 18:38:50.81 ID:5LhWTx/7.net]
pandasのtocsv使うときデータ内に¥nが入っててcsv出力時点で改行され、excelからcsvをデータインポートカンマ区切りで読み込みたい時に改行されて悲しいことになるんですがどうするのがスマートですか
¥n入るのは正しく、16桁以上の数字のカラムがあるのでデータインポートで読み込みたいです

685 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 18:49:52.26 ID:dTGmjkHB.net]
本当だ
よく見るとこの場合は実行するとリストとして取得されてるんですね
そりゃstringじゃ無理な訳ですね
わかりやすい

686 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 19:06:12.03 ID:wR2M4wFA.net]
>>641
>>642
もうちょっと教えてくださいお願いします!

687 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 19:11:52.05 ID:PoEM5suC.net]
ん? 今、何でもするって言ったよね。

688 名前:デフォルトの名無しさん [2018/10/29(月) 19:21:40.44 ID:TEtmhpeX.net]
>>648
to_csvのオプションで個々の値にクォーテーションを付ける
import csv
df.to_csv(“hoge.csv”, quoting=csv.QUOTE_ALL)

689 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 21:46:01.91 ID:b4sCrQ/m.net]
>>643
そんな零細プログラムの詳細をここで質問しても誰も答えないと思うぞ…

気が向いたから答えるけど次はないからな。

__save_new_position()メソッドを呼びだしているのはwebviewクラス。
下記ページによると、第二引数はwebview自身、第三引数はwebframeクラスのインスタンスを渡して呼び出されることが分かる。
webframeのリファレンスページを見ればwebframeクラスがget_uri()メソッドを持っていることも分かる。
https://lazka.github.io/pgi-docs/WebKit-3.0/classes/WebView.html#WebKit.WebView.signals.load_finished

content_providerのほうは、指定されたxmlファイルが、chapter_links配列の何番目のファイル名と一致しているかを調べることで、チャプター番号を特定している。
uriがエスケープされていたり"#"フラグメントがついてると比較できないから取り除いている。

690 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 21:54:17.26 ID:g2+WGN4L.net]
>>650
一般的にHTTPレスポンスヘッダのLast-Modifiedにファイルのmtimeが入ってるからそれを取得して、ファイル書き出してからmtime更新すれば良い

curl使えるなら-vで一度レスポンスヘッダ見るといい



691 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 21:58:45.40 ID:Uyob8jIm.net]
凄いねよく答えられるな、流石

gtkは全く知らないけど
wigetはwidgetのスペルミスだろうね、きっと

692 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 06:58:19.30 ID:wwkQj2Ri.net]
>>654
これであってますか?

resp = requests.get(url)

# レスポンスヘッダの Last-Modified を取得
last_modified = resp.headers['Last-Modified']
print(ast_modified)
Thu, 13 Oct 2016 05:36:56 GMT

# datetime オブジェクトに変換 (表記のロケール依存を防ぐために dateutil.parser を使う)
last_modified = dateutil.parser.parse(last_modified)
print(ast_modified)
2016-10-13 05:36:56+00:00

# unix time に変えるために calendar を使う
unixtime = calendar.timegm(lastModified.utctimetuple())
print(unixtime)
1476337016

# ファイルの書き込み
img_file = open(file_path, 'wb')
img_file.write(resp.content)
img_file.close()
os.utime(file_path, (unixtime, unixtime)) # ファイルパス, (アクセス時間, 修正時間)


ファイルの作成日の取得と書き込みはどうやるんでしょうか?

693 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 06:59:46.91 ID:wwkQj2Ri.net]
>>656
print(ast_modified)はprint(last_modified)の間違いです

694 名前:640 mailto:sage [2018/10/30(火) 08:47:23.62 ID:/tw9qCHj.net]
>>653
レスありがとうございます。助かりました。

695 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 09:35:33.18 ID:/tw9qCHj.net]
次はないと言割れましたがちょっと不思議なことがあったので質問させていただきます。
sorted関数を使うと、
パブリックドメインのepubで有名なgutenbergのファイル名をソートしていたのですが、
(@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-0.htm.htm、@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-10.htm.htmllなどというファイル名です)
0. 1.10, 11,12, .2などとソートされるようですが、普通に0,1,2,3,4の順番にできないのでしょうか。
というよりなぜグーテンベルクのファイルだけ、おかしなソートになるのかわかりません。

696 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 09:48:16.33 ID:JqsKq037.net]
数値型は数の大小で比較されるが、
文字列型の数値は文字列として比較されるから数の大小順には並ばない
数値として比較したければ、sort(またはsorted)のkey引数に適切なキー抽出関数を与える必要がある

その本だけがと言っているが、条件を満たしていればどんなリストでもお前の言う「おかしなソート」になる
print(sorted('11', '2', '.1'))

697 名前:656 mailto:sage [2018/10/30(火) 10:00:46.78 ID:/tw9qCHj.net]
>>660
ググったらでてきました。文字列型だと10が2より先に来るようですね。
どうもありがとうございました。

698 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 12:37:59.64 ID:BBRqRtLN.net]
>>656
そんな感じ
ファイルの作成日時は取得する手段がないので諦めて
(独自ヘッダで応答してくれるサーバーを除く)

699 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 12:44:20.01 ID:QArnhM9r.net]
>>652
試してみたけど無理でした
ダブルクリックで開くと問題ないけどtxtのインポートだと開いた時点で改行されるからどうしようも無いのかなこれ

700 名前:デフォルトの名無しさん [2018/10/30(火) 14:52:54.90 ID:mxVOiKCI.net]
bashからpythonプログラムを実行するときに、pycharmで簡単にデバッグしたいんですが、どうすればいいですか?
pythonコードだけの場合のやり方は分かるんですけど
print()いっぱい書くしか無いんですかね



701 名前:デフォルトの名無しさん [2018/10/30(火) 14:55:07.36 ID:mxVOiKCI.net]
>>661
float型に変換しないとちゃんとソートできないよ

702 名前:デフォルトの名無しさん [2018/10/30(火) 15:01:43.41 ID:mxVOiKCI.net]
>>664
解決しました
https://stackoverflow.com/questions/27952331/debugging-with-pycharm-terminal-arguments

703 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 15:02:59.00 ID:o9t78hsF.net]
>>664
pycharm使ってparametersに引数入れてやればいい。

704 名前:653 mailto:sage [2018/10/30(火) 15:46:23.76 ID:74FRV+Zp.net]
>>662
どうもありがとうございます
基本的に作成日の取得は出来ないんですね

705 名前:653 mailto:sage [2018/10/30(火) 16:13:18.69 ID:74FRV+Zp.net]
try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError:
print(dropbox.exceptions.ApiError.error)

Dropboxにアップロードする時、エラーが出た時はプリントするように例外を出したいんですが、
これだと、
AttributeError: type object 'ApiError' has no attribute 'error'
ってエラーが出てしまいます。


try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError as err:
print(err.error)

これだと、エラーがちゃんとプリントされます
なぜ、 as err を付けるとちゃんと動くんでしょうか? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


706 名前:デフォルトの名無しさん [2018/10/30(火) 16:47:54.22 ID:mxVOiKCI.net]
pycharmでrun/debug configurationのset wowrking directoryに、プログラムを実行したいディレクトリ(pロジェクトのルート外)を入れても、ファイルが見つからないとエラーがでます
ターミナルでは実行可能です
プロジェクトのルート外のディレクトリで実行するにはどうすればいいいか教えて頂きたいです

707 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 17:27:16.66 ID:o9t78hsF.net]
>>670
ちょっと何言ってんだかわかんない。
working directoryは実行するpyhonスクリプトのディレクトリが勝手に入ると思うのだが。
見つからないと言われるファイルは何?
実行するスクリプトから参照しているファイルじゃないの?
図示してくれ。

708 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 18:23:15.32 ID:LRpQBEf3.net]
>>669
前者はクラス名.変数名(ApiError.error)になっているのでクラス変数を参照しようとしている。
故にApiErrorにerrorという名前のクラス変数がなければエラーになる。

後者はインスタンス名.変数名(err.error)になっているのでインスタンス変数を参照しようとしている。
errorはインスタンス変数なのでエラーにならない。

709 名前:653 mailto:sage [2018/10/30(火) 18:43:42.81 ID:wwkQj2Ri.net]
>>672
どうもありがとうございます
dropbox.exceptions.ApiError as err
これって、
dropbox.exceptions.ApiError


710 名前:errって別名にしただけですよね?

ってことは
err.errorと
dropbox.exceptions.ApiError.error
は結局同じ気がするんですが、違うんでしょうか?
違いがわからないです
[]
[ここ壊れてます]



711 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 19:22:58.06 ID:LRpQBEf3.net]
>>673
違うよ。
ApiErrorはクラス名、errはインスタンス名。
a = MyClass()
って書いたときにMyClassとaは違うものでしょ?それと同じ

712 名前:デフォルトの名無しさん [2018/10/30(火) 19:39:22.54 ID:vHVA3ezu.net]
except E as N:
と書いてある場合は
"Eが例外オブジェクトのクラスだったら例外をNに代入"
という処理になる
他のasを使った文のようにEの別名をNにする訳ではない

713 名前:デフォルトの名無しさん mailto:sage [2018/10/30(火) 23:12:08.40 ID:tLch1bmf.net]
普通そういう所に、クラス名など来ない

例外インスタンスが来る

714 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 00:55:47.26 ID:KgeV0wH8.net]
ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.

sklearnでLinearSVCのグリッドサーチするとこの文章が永遠に出てくるんですけどどういうことですか?調べてもわかりませんでした。

715 名前:デフォルトの名無しさん [2018/10/31(水) 01:29:09.72 ID:C97UeufF.net]
そのままの意味で、毎回の学習が収束まで行ってないからイテレーション回数増やせって事では

716 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 01:30:14.36 ID:KgeV0wH8.net]
>>678
増やしても出てくるんですよね…

717 名前:デフォルトの名無しさん [2018/10/31(水) 10:16:21.72 ID:C97UeufF.net]
>>679
学習率が大きすぎるとか

718 名前:デフォルトの名無しさん [2018/10/31(水) 12:17:11.83 ID:/o0RsUYT.net]
1からpythonの勉強始めて、オブジェクト指向とやらで挫折中。
クラスやら継承は何となく理解できて、
どう書けばいいのかも何となくわかるけど、
理解するのに時間がかかりそう。色々なコードを書いて覚えていくしかないのか?
経験者ってここら辺どうなんですか(しっかり理解できているかどうか)

719 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:08:59.03 ID:gqgWGRur.net]
関数とかと同じで、クラスも便利だなあと思える具体例や機会があれば使えるようになる
何処か見たアドレス帳を作る例は分かり易そうだったけど、あれは何処だったか
でもクラス使わなくてもプログラムは出来るから直ぐに使えるようにならなくても問題ない

720 名前:デフォルトの名無しさん [2018/10/31(水) 13:20:42.47 ID:gqtAU0ur.net]
>>681
スクリプターってクラスを使うばっかりで作る方はあんまりって傾向があるから、無問題ではある。
Cも覚えてライブラリ作りも頑張ってほしいかな。
日本のプログラマーの質が問われるから。



721 名前:デフォルトの名無しさん [2018/10/31(水) 13:31:11.31 ID:zGg5PO0t.net]
日本のプログラマーの質が問われるから。

だってw

722 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:32:03.51 ID:gc+olMws.net]
"html54200-0.html#anchor001"

と言う文字列の#の前の数字だけ抽出(542000)したいのですが、どのような正規表現を書けばよいのでしょうか?
([0-9]+)(?=#)
ではだめでした。よろしくお願いします。

723 名前:682 mailto:sage [2018/10/31(水) 13:35:03.91 ID:gc+olMws.net]
書き忘れましたが、現状ではre.findall[54200、 0]と言うリストを取得したあと、
join()で542000にすることを考えていたのですが、アンカーから後を取得すると狂ってしまうので、
アンカーから後は抽出したくないのです。よろしくお願いします。

724 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:40:28.98 ID:fzRw5h8F.net]
正規表現とかいらんだろ

str.lstrip("html")
str[:7]

725 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:42:08.67 ID:1NzreX+B.net]
re.search("(¥d+).*?(?=#)",s).group(1)

726 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:43:24.16 ID:fzRw5h8F.net]
ああそこが欲しいのか

str.lstrip("html")
str[:6].strip("-")

727 名前:デフォルトの名無しさん [2018/10/31(水) 13:43:30.37 ID:BEBaW28W.net]
>>671
見つからないと言われるファイルはrun/debug configurationのparametersで指定したものです
>>working directoryは実行するpyhonスクリプトのディレクトリが勝手に入る
それをスクリプトを実行したい場所に変更してるんですけど

728 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:45:53.85 ID:0yqa0SvH.net]
>>685
(^0-9)|#.* を空文字に置換

729 名前:デフォルトの名無しさん [2018/10/31(水) 13:51:38.68 ID:XAA9QXm2.net]
>>683-684
2ちゃんや5ちゃんの履歴消すしかないな

730 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:53:01.77 ID:gc+olMws.net]
レスありがとうございます。
>>687
これ以外にも似たようなファイルがあるので、できるだけ一般化しておきたいのです正規表現を考えました。
>>688
お教えいただいたところ申し訳ないのですが、Noneとでてしまいました。私の設定のどこかがまずかったのかしれませんが。



731 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 13:55:03.93 ID:1NzreX+B.net]
>>693
¥dの¥はバックスラッシュに直してくれ
[0-9]でもいいよ

732 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 14:00:41.64 ID:gc+olMws.net]
検索する文字列にsplit("#")[0]をつけることを思いつきました。
あんまりスマートじゃないかもしれませんがこれで行こうと思います。
皆さんありがとうございました。

733 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 14:03:31.31 ID:1NzreX+B.net]
>>690
図示してくれるか、何をどうしているのかという全体の構成がわからないと、
何でつまづいているのかがわからない。
parametersにはsys.argvで受け取りたい内容を入れることはわかってるんだよね?

734 名前:デフォルトの名無しさん [2018/10/31(水) 14:20:03.17 ID:BEBaW28W.net]
>>696
他人の書いたコードがどう動いてるのか理解するためにデバッグしたいと思っていて、全体の構成はよくわかってないんですけど、それだとデバッグはできないってことなんでしかね?
あるファイルが出力される時点で動いてるコードを見たいと思ってるんですけど

735 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 14:46:51.62 ID:1NzreX+B.net]
>>697
イマイチわからんけど、
bashでpythonのscriptに何らかの引数を渡して実行したいって事じゃないの?

そうだとすればbashからの引数がscript parmetersの値で、
pycharmでそのスクリプトを開いてデバッグするだけの事だと思うんだけど違うの?

736 名前:デフォルトの名無しさん [2018/10/31(水) 14:54:31.80 ID:BEBaW28W.net]
>>698
parameterで渡したはずのファイルがnot found になって困っているんです
で、そのファイルはcontent root 外なので問題なのかなとか思ってるんですけど

737 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 15:00:36.67 ID:1NzreX+B.net]
python側のデバッグ(動作確認)したいだけなら、
引数にこだわらずにダイレクトにファイル指定してやればいいだけだと思うけど?

738 名前:デフォルトの名無しさん [2018/10/31(水) 15:27:06.72 ID:BEBaW28W.net]
いちいち書き換えないといけないんですかね?
せっかくコマンドライン引数で指定できるようになってるのに

739 名前:デフォルトの名無しさん [2018/10/31(水) 15:29:28.35 ID:BEBaW28W.net]
>>695
そういう文字列処理はawkとかperlのほうが簡単だよ

740 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 17:36:50.33 ID:DIssBnZo.net]
def gethtml(url, prm=""):
 r = requests.get(url, params=prm)
 r.encoding = 'CP932'
 return r.text

こんな関数でエンコードがCP932(のはずの)サイトを取得して
日本語は普通に表示されてるんですけど
@とかqとかが文字化けしてしまいます。どうすれば文字化けを回避できますか?



741 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 18:12:41.93 ID:taLNwoKn.net]
NEC特殊文字が化けてるのか
いま確認環境がないからどうにかできるかはわからん

742 名前:デフォルトの名無しさん [2018/10/31(水) 18:28:43.45 ID:XAA9QXm2.net]
>>> print('@とかqとか')
@とかqとか


ちゃんと表示される

743 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 18:37:40.87 ID:DIssBnZo.net]
とりあえず自己解決
対象ページをファイルとして保存した後、codecsで保存したファイルをロードすることで対処できました

744 名前:デフォルトの名無しさん [2018/10/31(水) 20:12:08.83 ID:gHBnMNYM.net]
epubビューアの開発は順調に進んでるのかな

745 名前:デフォルトの名無しさん [2018/10/31(水) 20:40:39.13 ID:/o0RsUYT.net]
>>683 >>682
2年間運用(継続中)してます。
所属部署がクラウドに力入れ始めててpython勉強
しと

746 名前:ッと言われてやってます。取りあえずスクレイピング
できるようになりたいのでコード漁ってるんですが関数さえ
使用してないように見えてて、おっしゃる通りなんですかね
最終的に何か作れるようになりたいけど、何も思いつかないし
何を目指したらいいのやら
[]
[ここ壊れてます]

747 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 00:22:16.46 ID:PBz6MbCm.net]
>>685-695
Ruby なら、File.basename の第2引数に、.* を渡せば、. より前の部分を取れる

file_name = File.basename( "html54200-0.html#anchor001", ".*" )
#=> "html54200-0"

>>708
Ruby で、Selenium WebDriver, Nokogiri を使って、
ブラウザで自動ログインしたり、Showroom のアバターを削除したりしてる

他にも、5ch の書き込み内から、画像のURL だけを拾って表示したり、
主に、ブラウザを使った、webサイトの自動テストに使う

その際のPage Object は、典型的なオブジェクト指向による、テスト方法

748 名前:デフォルトの名無しさん [2018/11/01(木) 04:05:25.76 ID:rG6revia.net]
>>708
まずはDomを理解汁

749 名前:デフォルトの名無しさん [2018/11/01(木) 10:34:25.18 ID:z733lC2q.net]
>>708-710
スレチ

750 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 10:58:02.80 ID:LBGTfI8S.net]
>>701
言ってる事が矛盾してるんだけど。
>他人の書いたコードがどう動いてるのか理解するためにデバッグ
>いちいち書き換えないといけないんですかね?

理解すれためなら、一回入力するだけでいちいち書き換える必要はないだろ。



751 名前:デフォルトの名無しさん [2018/11/02(金) 23:07:04.01 ID:WjnTpSxg.net]
MySQL connectorの使い方を教えてください。

MySQLのTIME型をSELECTしてfetchoneすると、datetime.timedelta型になってしまいます。
datetime.time型で取得するにはどうすれば良いのでしょうか?

752 名前:デフォルトの名無しさん mailto:sage [2018/11/03(土) 07:29:30.23 ID:ddSYlxYG.net]
>>713
がいしゅつぽ
ttps://teratail.com/questions/141268

753 名前:デフォルトの名無しさん mailto:sage [2018/11/03(土) 10:46:05.35 ID:j00DZJyr.net]
rawで引っ張って自分でconvertする。
列の仕様がはっきりしているなら、たぶんこれが一番速い。

754 名前:デフォルトの名無しさん [2018/11/03(土) 22:09:03.24 ID:+dBdxEJM.net]
>>670
まだサポートされていない機能だったらしいです
一応報告
https://youtrack.jetbrains.com/issue/IDEA-88717

755 名前:デフォルトの名無しさん [2018/11/03(土) 22:14:11.53 ID:+dBdxEJM.net]
pyファイルに引数としてファイル渡して実行しながらデバッグしたいんですけどideでできますか?

756 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 00:16:25.00 ID:NVjVjeVc.net]
さすがにできないと困るでしょう。

757 名前:デフォルトの名無しさん [2018/11/04(日) 13:42:02.03 ID:5RY1Lh2I.net]
>>714
これあかんやつやω
環境変わったら動かなくなるぞ

758 名前:デフォルトの名無しさん [2018/11/04(日) 23:14:32.54 ID:mnXqRc1x.net]
Excelの全シートの特定セルから値を抽出したいんですが、

import openpyxl
book = openpyxl.load_workbook('xxx.xlsx')
all_sheet = book.sheetnames
for 抽出 in all_sheet:
print(抽出.cell(row=1, column=1).value)

ってやってもうまくいきません。
ご指導をお願いします。

759 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 23:33:00.89 ID:H3HfNEok.net]
Gmail inboxでメール作成する時、文字の色を替えたり背景色を付けたりは、
Pythonにやらせるのはやはり難しいのでしょうか
例えば文章を[b]と[/)で挟んでも、何事も無く……
ご指導を…m(_ _)m

760 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 23:45:43.19 ID:f0WItr4A.net]
関数の引数の一つをオプションにしたいのですが
デフォルトの値を関数内で決めたいです。例えばイメージ



761 名前:ニしては

def Function(data, average):

としてaverageのデフォルトの値を引数dataの平均値にしたいです。
average = np.(data)
のようにしてもエラーが出てきます。どのようにすればよいでしょうか?
[]
[ここ壊れてます]

762 名前:デフォルトの名無しさん [2018/11/05(月) 00:12:47.04 ID:WItML0Cb.net]
>>720
all_sheet = book.sheetnames

all_sheet = book.worksheets

>>722
やりたいことはよう分らんが
np.(data)

np(data) #.(コンマ)を抜く
とすればエラーが出なくなるんでは

763 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 00:22:33.69 ID:Forp8UuV.net]
>>722
まずエラーメッセージを読む、そしてレスに添え省かない
もしデフォルト引数に書いたなら定義時に評価されるので
None等にしておき呼び出された時に判定して代入するなり

764 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 00:28:55.36 ID:8OhTTD0N.net]
>>722
平均を取るのは np.mean() だと思う。(import numpy as npしてればの話だけど)
関数の引数を他の引数のデフォルト値に設定したりはできないので

def Fucntion(data, average=None):
 if average is None:
   avarage = np.mean(data)

と書くのが普通じゃないかな

765 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 00:39:16.13 ID:Dut8FIaQ.net]
719です。
>>725で解決しました。
ありがとうございました。

766 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 10:25:00.99 ID:h9xlJLA6.net]
Slackでは<{url}|{title}>の形式で書けば、リンクとして表示してくれるので、

slackToken = 'example'
url = 'example.com'
text1 ='あああああ'
text2 = 'タイトルです'
attText = f'aiueo <{url}|{text2}> kakikukeko'

slackData = {
"username": username,
"channel": channel,
"text": text1,
"attachments": [
{
"color": "#39a6e8",
"text": attText,
"thumb_url": thumbUrl
}
]}

requests.post(slackToken, data=json.dumps(slackData))

こんな感じで、requestsを使ってSlackにおくりたいんですが、
title2の1文字目が「<」で最後の文字が「>」だった場合、
Slack上では何故か aiueo <<example.com<タイトルです>>>って表示になって、バグってしまいます。
今はとりあえず、text2の最初と最後が<>だったらその文字を削除してるんですが、text2に<>を含んだままSlackに送るにはどうやるんでしょうか?

767 名前:デフォルトの名無しさん [2018/11/05(月) 13:32:25.59 ID:o5QGnfIr.net]
&lt;
&gt;

768 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 13:46:32.33 ID:h9xlJLA6.net]
どうもありがとうございます!

769 名前:デフォルトの名無しさん [2018/11/05(月) 16:48:18.27 ID:0An2vgEj.net]
list.__getitemって何を返すんですか?
調べてもわからなかったんで教えてください

770 名前:デフォルトの名無しさん [2018/11/05(月) 17:18:39.84 ID:o5QGnfIr.net]
a=[1,2,3]
a.__getitem__(1) # 2



771 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 17:19:31.32 ID:+kDBf8bs.net]
>>730
スライスの演算をオーバーロードするメソッドやで

772 名前:デフォルトの名無しさん [2018/11/05(月) 18:10:05.24 ID:0An2vgEj.net]
>>731
>>732
heapq.nlargest(n, iterable, key=None)のkeyにlist.__getitem__の結果を入れることに、なんの意味があるんでしょうか。

773 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 18:29:42.84 ID:ll2Vxm5g.net]
これのnew = tv[i]っていりますの?
なんかいらないっぽい気がして削っても動いたんだけど
暇で優しい人気が向いたら教えて

tv = ["GOT", "Narcos",
"Vice"]
for i, show in enumerate(tv):
new = tv[i]
new = new.upper()
tv[i] = new


print(tv)

https://github.com/calthoff/self_taught/blob/master/python_ex205.py/

774 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 18:33:34.89 ID:ll2Vxm5g.net]
あっれ?この野郎!
本とコードが違うじゃないか
独学プログラマーめ・・・
本だと変数のshowがnewに書き換えられてる

775 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 23:28:07.21 ID:i/g7f+lV.net]
>>727-729
Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず

776 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 09:03:03.85 ID:oDFoDpyv.net]
>>734
本が何かわからんけど、
forの中はtv[i] = show.upper()だけで大丈夫。

777 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 11:06:31.30 ID:cQb5p7fE.net]
python+gtkでepubビューアを改造している者ですが、
htmlファイルのアンカーのスクロール座標をjavascriptを使わずにpythonだけ取得することはできるんでしょうか?
具体的な用途としては、ブックマークの時のチャプター名や、
Linuxのevince(document viewer)の様に、画面をスクロールして次のチャプターの領域に入ると自動で、
左のチャプターリストビューの選択もそのチャプターのところに移動してほしいのですが、(クリック扱いになると
チャプターの最初に戻されてしまうので、青い選択が移るだけにしたいのです。)
言葉でうまく説明できなくてすみません

778 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 11:20:08.33 ID:VRf3OGgv.net]
>>737
ありがとう!
「独学プログラマー」って本です

これが終わったらdeeplearningの本読んでAI作るんだ・・・道は遠そう

779 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 17:51:56.07 ID:Zf4d0x7S.net]
htmlで
<td class=" "><a href=" ">TEXT</a></td>
のうちの<a href>内の" "の中身だけを取り出すにはどうすればいいですか?

780 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 19:12:51.68 ID:B9fQWZZ6.net]
>>740
何のモジュール使ってhtmlよんでんだよ


セレニウムなら「href属性 取得 selenium python」でググれ



781 名前:724 mailto:sage [2018/11/06(火) 20:09:21.47 ID:QHiQfJwC.net]
724ですけど、変数内に~~や**があるとそれらもSlack側で以下のように反応してしまいました。

~あいうえお~
と波線で囲めば打ち消し線に、
*あいうえお*
だと、太字です。

記号は記号としてポストするにはどうしたらいいんでしょうか?

782 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:13:57.06 ID:B9fQWZZ6.net]
*→ *
~→ ~

783 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:14:48.35 ID:B9fQWZZ6.net]
(´Д`lll)&to#は半角でな
*→ &#126;
~→ &#42;

784 名前:724 mailto:sage [2018/11/06(火) 20:28:42.52 ID:QHiQfJwC.net]
>>744
どうもありがとうございます!
試してみます!
今のところ分かったのはこの3つなんですが、記号類をまとめてちゃんと表示する仕組みってありますか?
今ちょっとググってたら
xml.sax.saxutilsのescapeだと<>はエスケープしてくれそうな感じでした。

785 名前:デフォルトの名無しさん [2018/11/06(火) 20:31:38.28 ID:0p0MEBcD.net]
"mrkdwn": false

786 名前:724 mailto:sage [2018/11/06(火) 20:32:44.30 ID:QHiQfJwC.net]
あと、混乱してしまってるんですが、変数textの中にもし<、>、*、~のいずれかが含まれてたら、<、>、&#126;、&#42;に置き換えるには、if文でどう書くんでしょうか?

787 名前:724 mailto:sage [2018/11/06(火) 20:36:27.93 ID:QHiQfJwC.net]
何度もすみません
import xml.sax.saxutils from escape

import htmlのhtml.escape
はどう使い分けるんでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:51:13.02 ID:B9fQWZZ6.net]
>>747
findを使ってtextを検索し、-1よりでかい数が帰ってくるかどうかためす。
if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)

789 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:56:52.27 ID:B9fQWZZ6.net]
(つづき)
でもってif文のインデントの中に
text=text.replace('before','after').replace('before','after').replace('before','after').replace('before','after')

beforeにはそれぞれ<、>、*、~を入れて
aterには&#42;

790 名前:とかそういうのを書いておく []
[ここ壊れてます]



791 名前:724 mailto:sage [2018/11/06(火) 20:58:43.90 ID:QHiQfJwC.net]
>>749
なるほど!ありがとうございます!

> if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
を途中で改行したい場合はどうやるんでしょうか?
バックスラッシュ付けるっぽいんですが、以下だとエラーになります

if text.find(’<’) > -1 or text.find(’>’) > -1 \
or....(略)

792 名前:724 mailto:sage [2018/11/06(火) 20:59:35.67 ID:QHiQfJwC.net]
>>750
ありがとうございます!!

793 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:00:46.35 ID:B9fQWZZ6.net]
>>748
前者は基本的に & 、 < 、および > が対象 だが 他の文字もエスケープ汁と命令することが可能

後者は & 、 < 、および > が対象

794 名前:デフォルトの名無しさん [2018/11/06(火) 21:08:58.42 ID:0p0MEBcD.net]
特殊な記号たち
https://api.slack.com/docs/messages/builder?msg=%7B%22text%22%3A%22%60%60%60pre%60%60%60%20*bold*%20%60code%60%20_italic_%20~strike~%22%2C%22username%22%3A%22markdownbot%22%2C%22mrkdwn%22%3Atrue%7D

795 名前:724 mailto:sage [2018/11/06(火) 21:12:17.61 ID:QHiQfJwC.net]
>>753
どうもありがとうございます。
例えば、今回みたいに*や~も含めたいって場合なら前者で指定したらよいって事ですね。

796 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:13:16.40 ID:B9fQWZZ6.net]
>>751
途中で\入れるのって
pyrhon上で直接コマンド打ってるときだけじゃね?

pyファイルに書いたのを実行させるときはイラネ

797 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:15:03.75 ID:B9fQWZZ6.net]
>>755
んだな
詳しくは>>754と https://docs.python.jp/3/library/xml.sax.utils.html あたりをよんでくれ

798 名前:724 mailto:sage [2018/11/06(火) 21:15:09.62 ID:QHiQfJwC.net]
>>754
どうもありがとうございます!
他にもいくつかあったんですね。
それらの記号を >>749-750>>748の前者の方で試してみます

799 名前:724 mailto:sage [2018/11/06(火) 21:21:01.58 ID:QHiQfJwC.net]
>>756
if text.find(’<’) > -1 or text.find(’>’) > -1
or....(略)

だと、エラーになってしまいました。

800 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:21:04.81 ID:B9fQWZZ6.net]
>>756
>pyファイルに書いたのを実行させるときはイラネ
oh
オレ無意識に条件文のif以降を()でくくって最後に:付ける癖があるわ

 ↓
if (text.find(’<’) > -1 or
 text.find(’>’) > -1 or
 ....(略) ...):
        ↑

みたいに()でかこってやれば何行にわけてもおk



801 名前:724 mailto:sage [2018/11/06(火) 21:28:34.65 ID:QHiQfJwC.net]
>>760
へぇ〜
こんな方法もあるんですか!今試したら動いたけれど、
flask8だとW503 line break before binary operator
って言うエラーが出てました

802 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:33:57.41 ID:B9fQWZZ6.net]
>>761
アッハイ

or は 行の最後に書かずに
先頭にかけやこのデコスケ野郎

っていうエラーすね。

つまり推奨は
if (text.find(’<’) > -1
or text.find(’>’) > -1
or ....(略) ...):

汚いソースコードの書き方しててすみまそん。。。

803 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:37:10.20 ID:B9fQWZZ6.net]
詳しい解説は https://github.com/PyCQA/pycodestyle/issues/513 あたりかな

804 名前:724 mailto:sage [2018/11/06(火) 21:46:50.14 ID:QHiQfJwC.net]
>>762
いや、ありがとうございます。。。
2行目を or から始めてもW503でした。あと、E129も出でます。
E129は2行目の or を if の i から数えて8文字インデントしたら消えました。

805 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 22:02:51.74 ID:B9fQWZZ6.net]
>>764
検証してくれるやつのバージョンによって推奨される書き方がちガッ獲るようだ… https://lintlyci.github.io/Flake8Rules/rules/W503.html

今どきはどーするのが一番正しくてグッドなのか、
誰か他の回答者を待とう (´・ω・`)

806 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:09:47.09 ID:kPzZvNDI.net]
>>741
beautifulsoupとurllibっす

807 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:53:42.51 ID:QtFDoqkC.net]
>>766
beautifulsoupなら
soup.a['href']
soupはBeautifulSoupオブジェクトな

808 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 01:15:28.23 ID:+978RLDn.net]
>>747


809 名前:Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず。
ライブラリを探せ

全言語にある!
Google に「html escape」と入れれば、補完で全言語が出てくる。
php, javascript, java, ruby, python ズラズラっと

そういう一般的な関数を、自作したらダメ。
自作したものは、ライブラリよりも品質が低いから
[]
[ここ壊れてます]

810 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 01:23:13.15 ID:mTAgM1WN.net]
キチガイ避けには「ruby」でNGワード登録が簡単・便利



811 名前:724 mailto:sage [2018/11/07(水) 10:31:30.88 ID:eBlvm3p7.net]
>>757
from xml.sax.saxutils import escape
text = 'あいうえお'
text = f'~{text}~'
text = escape(text, {'*': '&#42;', '~': '&#126;', '': '', '': ''})
上は実際には半角です。

textをSlackに送信すると、Slackでは、~あいうえお~と表示して欲しいんですが、
&#126;あいうえお&#126;
と、表示されてしまいます。
どこが間違えてますか?

あと、
* を置き換える文字列は&#42;(半角で)のように、
` を置き換える文字列
_ を置き換える文字列
ってどうやって調べたらよいんでしょうか?

>>765
自分のバージョンはPython 3.6.4、flake8 3.6.0でした

812 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 12:02:53.55 ID:gi2gLu8r.net]
最低限↓に目を通してからslackの話を続けて貰えるか?
https://api.slack.com/docs/message-formatting#how_to_escape_characters

813 名前:デフォルトの名無しさん [2018/11/07(水) 13:51:51.54 ID:A06G1xNF.net]
https://docs.python.jp/3/library/html.html

814 名前:デフォルトの名無しさん [2018/11/07(水) 18:19:51.85 ID:aDO62va+.net]
https://dotup.org/uploda/dotup.org1686239.png

>>> import numpy as np
>>> from PIL import Image
>>> im = Image.open('dotup.org1686239.png')
>>> np.array(im)
>>> np.array(im)[:,-1::-1,:]
>>> Image.fromarray(np.array(im)[:,-1::-1,:]).save('dotup.org1686239_rev.png')

便利やね
python だぁぃすき

815 名前:デフォルトの名無しさん [2018/11/07(水) 18:32:37.21 ID:fvfWV4IU.net]
conveert dotup.org1686239.png -flop dotup.org1686239_rev.png

ImageMagickのが簡単だよ
チンポ だぁいすき

816 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:18:54.41 ID:vDDK8kog.net]
if random.randint(0,1):
step=1
else:
step=-1

この場合のrandom.randintってどういう意味?
乱数で0か1が発生した場合に1、その他の数字のときelseって意味じゃないよね?
よくわからん

817 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:21:04.79 ID:/8FytPr/.net]
スクレイピングなんですがjava?でコンテンツが作られている動的なページはSeleniumのようなwebBrowserをさわって値を取るしか無いんでしょうか
vbaで似たようなのを作ったんですが読み込み等が遅く、処理の高速化を考えていたのですがSeleniumだと実現できないでしょうか

818 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:44:25.17 ID:AFbSMZjK.net]
random.randintで0がでたらfalse
1が出たらtrueじゃない?

819 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 18:13:45.79 ID:KFTKKYEO.net]
>>777
コード読むとその解釈で合ってると思うけど、そのプロセスが理解できない
randint(a,b)ってa~bの中で整数を生成するんだよね?
randint(0,1)なら0か1のどちらかを生成する
つまりわからん

820 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 18:30:34.85 ID:AFbSMZjK.net]
多分わからないのはbool型についてかな
ちょっと検索して出てきたから読んだらいいかも
https://note.nkmk.me/python-bool-true-false-usage/



821 名前:デフォルトの名無しさん [2018/11/08(木) 18:47:09.00 ID:5iWhW6P3.net]
>>778
PyhonのTrue, Falseは

822 名前:0, 1と等価
実際True+Trueを評価すると2になる
[]
[ここ壊れてます]

823 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:50:06.88 ID:KFTKKYEO.net]
TrueとFalseがランダムに生成されるんだろ
つまりif節の中にTrueもFalseも入ってることになんね?

824 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:51:27.62 ID:UKor1bXF.net]
ならんよ>>781

825 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:54:09.65 ID:KFTKKYEO.net]
俺がアホなのか
全くスッキリと理解できないw

826 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:06:42.76 ID:AFbSMZjK.net]
if random.choice([True, False])
こう書き換えれば少しはわかりやすいかな

827 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:21:32.77 ID:KFTKKYEO.net]
if random.randint(0,1)==True:
と同じ意味だよね?
これなら簡単に理解できるけど、==Trueがなくても文法として成立するのがよくわからない

828 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:23:05.84 ID:UKor1bXF.net]
暗黙の了解で省略されてるだけ
英語の関係代名詞的なさむしん

829 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:30:18.68 ID:KFTKKYEO.net]
>>786
マジかよ
人に優しくない言語やんけ!
何時間悩んだと思ってんや

830 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:32:58.15 ID:UKor1bXF.net]
もう忘れないだろうから
悩んだことはむだではない
タブンネ



831 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:02:16.60 ID:dNW1RU/q.net]
主流言語はみんなそんな感じなんだけどPythonは比較演算子強制でも良かった気もしないでもない。
でも、
bool値を返すisBigメソッドを実装したクラスChinkoがあったとして…
myChinko = new Chinko(16)
if myChinko.isBig():
と自然な英文風に書けるというスゴイ利点もある!
ちなみに12以下だとFalseを返します

832 名前:デフォルトの名無しさん [2018/11/08(木) 21:03:49.60 ID:JRn9O86F.net]
>>781
1とTrue、0とFalseを同一として認識するのは明らかに間違っている

833 名前:デフォルトの名無しさん [2018/11/08(木) 21:04:47.54 ID:j6Jh7/pK.net]
自然言語風に書けるのはデメリットやぞ

834 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:15:17.71 ID:dNW1RU/q.net]
冗談やで。俺は比較演算強制がよかった

835 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:16:04.42 ID:fqxKHZms.net]
ネェ、チンコダッテ?( ´д)オクサン(д` )アラヤダワァ

836 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:53:09.37 ID:QbjXdk8c.net]
>>785
==trueとか言うゴミコード書くなよ

837 名前:デフォルトの名無しさん [2018/11/08(木) 22:07:08.42 ID:j6Jh7/pK.net]
ゴミって些末な事ばかり気にしてゴミコードってゆうよねw

838 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:09:00.10 ID:Sh+rXr23.net]
言うをゆうって書く人は初等教育を受けてるのかしら

839 名前:デフォルトの名無しさん [2018/11/08(木) 22:14:43.87 ID:j6Jh7/pK.net]
言うはゆうて読むんやで

840 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:24:11.22 ID:lbifDjkh.net]
誰も読み方について話してないぞ。相当な馬鹿だな



841 名前:デフォルトの名無しさん [2018/11/08(木) 22:30:06.41 ID:j6Jh7/pK.net]
バカのくせに人の事バカってゆうの恥ずかしいよバカw

842 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:32:56.23 ID:KFTKKYEO.net]
ちなみにこういう省略って他にどんなのある?
他の文法で省略あったらまた騙されるなー

843 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:53:42.09 ID:PhR3Qfyw.net]
perlはエゲツナイぞー

844 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:07:43.11 ID:QbjXdk8c.net]
==Trueが必要だと思う奴はその戻り値に対しても==Trueしとけw

845 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:17:51.55 ID:yMIHOz65.net]
the reason why ~ みたいなもんだな

846 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:20:05.30 ID:QHwNiY6E.net]
>>776
5ch みたいな動的または、ajax などの非同期処理で、ページの内容を取得しているものは、
その内容が読み込まれるまで、その要素や内容は存在しない

5ch なら、まず空のHTML を送ってくるから、ajax で読み込まれるまで、内容が存在しない

漏れはRuby で、Selenium WebDriver を使って読み込んでいる。
その要素が出現するまで、wait される。
簡単なのは10秒ぐらい、sleep すればよい

5ch なんか、バグが多いから、JavaScript が無限ループしたりして、
30秒待っても、Selenium WebDriverから、そのページへアタッチ出来ないこともある

847 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:22:35.59 ID:a5prroZo.net]
「Ruby」でNGワード登録が簡単・便利

848 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:44:41.94 ID:mrd9U+a3.net]
50%の確率で2つの処理を選択したい場合によりスマートな書き方はありますか?今はべたべたにこう書いてます
if np.random.rand() > .5:
do1()
else:
do2()

849 名前:デフォルトの名無しさん [2018/11/09(金) 02:19:40.37 ID:19dRG8QF.net]
(do1 if np.random.rand() > .5 else do2)()

850 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 04:00:11.42 ID:bq31MDXV.net]
すごい!そんな書き方があるのですね。
よければ何という記述方法か教えてもらえますか?(どうやって調べたら出ますか)



851 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 04:18:51.46 ID:Je0vwCJT.net]
np使う理由はあるの?

852 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 08:30:00.34 ID:0hfWLYYN.net]
pycharmでshadows name xxx from outer scopeっていうwarningが出るんだけど、これは何が問題なんや

853 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 09:42:26.78 ID:VXODTqLC.net]
同じ名前の変数が定義されたことで
外のスコープの変数が隠されている
という警告

854 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 09:43:04.08 ID:VXODTqLC.net]
Warningに書いてある通りだな

855 名前:デフォルトの名無しさん [2018/11/09(金) 10:18:23.10 ID:19dRG8QF.net]
>>808
三項演算子
可読性下がるから使い過ぎはお勧めしない

856 名前:デフォルトの名無しさん [2018/11/09(金) 11:58:21.04 ID:p9aTnaT/.net]
ちょうど1/2の確率が欲しいとき
if random.rand(0, 1) > .5:
が正解?
それとも
if random.rand(0, 1) >= .5:
が正解?
どっちも間違い?

857 名前:デフォルトの名無しさん [2018/11/09(金) 12:04:45.46 ID:mwKVhTqG.net]
どっちも間違い

だが少なくとも
random.rand() > .5
では偏りが生じる

858 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 12:40:54.60 ID:0q7AG6jo.net]
>>814
0×1の配列?

859 名前:デフォルトの名無しさん [2018/11/09(金) 12:41:31.35 ID:ZavMgXDP.net]
Openpyxlでエクセルシートをリスト化した後
シート名を条件に抽出することはできますか?
すみません、調べてもわかりませんでした。

860 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:11:43.28 ID:XhL65g6u.net]
>>814俺だったらこうする
if random.randrange(2):

「一定回数抽選すると、AとBの出現率が必ず1:1になる」ことを求めているならシャッフルを使う
a=[0]*50+[1]*50
random.shuffle(a)



861 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:44:15.88 ID:lOOqdq/Y.net]
deapのbase.Fitnssでweightsの動き方がよくわからないんですが
仕様を説明したサイトはありますか?

862 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:47:08.53 ID:iep8j/69.net]
>>817
シート名は .get_sheet_names()でリストでとってこれるから
とってきたあと
1つ1つのシート名でifすればいいだろ

863 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:49:25.70 ID:iep8j/69.net]
>>819
https://deap.readthedocs.io/en/master/api/base.html はもう読んでる?

864 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 14:27:01.20 ID:D1KL18mO.net]
python2.7 pandasのto_csvでの出力、文字コードについてです
utf8のdfがありコレをsjis(sjisで表現出来ない文字は無視や?置き換えで良い)にしてcsvにしたいです
調べると
with codecs.openでencoding='cp932' errors='ignore'で出力ファイルを開き
df.to_csv(ファイルオブジェクト, encoding='cp932')
で出来ると書いてあったのですが普通にUnicodeエラー出ます
何が原因でうまくいかないんでしょうか、また他の解決法なにかありませんかね

865 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 15:23:15.00 ID:iep8j/69.net]
>>822
ソースコードの文字コードは何で書いてる
OSは何よ

Unicodeエラーの内容は略さず書いて

866 名前:デフォルトの名無しさん [2018/11/09(金) 16:18:25.51 ID:aAkZVDrn.net]
PythonがWEBで

867 名前:覇権取れば最強のスクリプト言語になるのにな
Djangoとかいうゴミはいいから早くRailsとかLaravel並みにいいフレームワーク作ってくんね?
[]
[ここ壊れてます]

868 名前:デフォルトの名無しさん [2018/11/09(金) 17:36:50.37 ID:rwK1ciOK.net]
GoogleってWEB開発にPython使ってるらしいけどフレームワークはDjangoなのかな?
社内で別のフレームワーク使ってんだったら公開してほしいな

869 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 19:22:48.23 ID:lOOqdq/Y.net]
>>821
それは読んだんですが多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのかが書いていなかったので

870 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 19:31:33.70 ID:iep8j/69.net]
>>826
weights って重み付けだから、
いっぱいのときも逐一自分で指定するもんじゃないの

>多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのか
俺にはちょっとなにいってるのかよくわかんない(´・ω・`)

各重みの最適値さがしなら
プロジェクト・しらみつぶし が たぶん一番いい・・・



871 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 12:15:02.20 ID:seRmY1tJ.net]
https://stackoverflow.com/questions/42866743/lambda-function-explanation/42867119

repeating_data = reduce(lambda l, x:
l.append(x) or l if x not in l else l,
columns['Hello'], [])

Columns["Hello"] has [1,1,2,3,4,5,6,6,7,8,9,9,10,0]


このlambda式のl.appned(x) or lの"or l"と
if x nor in l else lの"else l"がよくわからないんですが、
つけないとエラーになるので必要なのでしょうが、どのような意味なのでしょうか?

872 名前:825 mailto:sage [2018/11/10(土) 12:26:13.87 ID:seRmY1tJ.net]
質問ばかりで申し訳ないのですが、なぜこの式でreduceを使っているのかもよくわかりません。
reduceでぐぐるとすべて畳み込んで計算すると書いてあるところが多いのですが、関数がl.append(x) or lなので違うのでしょうか?

873 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 13:07:05.83 ID:u9Es1usX.net]
>>828-829
条件式(他言語のいわゆる三項演算子や条件演算子と呼ばれる物の代替)
https://docs.python.org/ja/3/reference/expressions.html#conditional-expressions
そしてlist.appendの戻り値はNoneなので常にorの右辺が評価され返される

つまり新しいリストに含まれていなければ追加し、さもなければそのまま
あとは先方のレスにもset使えと書かれてると思うけど。reduceの動作は以下
https://docs.python.org/ja/3/library/functools.html#functools.reduce

874 名前:826 mailto:sage [2018/11/10(土) 13:46:44.78 ID:seRmY1tJ.net]
>>830
丁寧なレスありがとうございます。list.appendの戻り値がNoneだなんて意識しないで使ってました。
破壊的メソッドだからなんだそうですが、自分でもうちょっと勉強してみます。

875 名前:826 mailto:sage [2018/11/10(土) 15:23:32.40 ID:seRmY1tJ.net]
if x not in l else lの"else l"を省略すると
SyntaxError: invalid syntax
が出るんですが、通常のif文の場合はelse以下がなくても問題ないと思うのですが、
なぜこの場合はだめなのでしょうか?

876 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 15:39:38.87 ID:hLxIIZfE.net]
>>832
それは
> if x not in l else l
じゃなくて
> l if x not in l else l
なの
>>830が言う条件式って奴
式1 if 条件 else 式2
で、条件が真と評価されるなら 式1
条件が偽に評価されるなら 式2
を返す
なので else 式2 がないと困っちゃう
(None を返すという選択肢もあったとは思うけど)

877 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 15:48:08.55 ID:seRmY1tJ.net]
>>833
else lのlをNoneにしてみたら、
TypeError: argument of type 'NoneType' is not iterable
とでてしまいました。
でもなんとなく前よりはこの式がわかったような気がします。
どうもレスありがとうございました。

878 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 17:30:59.29 ID:16GnFLu/.net]
>>832
>>830が条件式(他言語に倣って三項演算子と呼ばれることも)だって教えてくれてるじゃん

値1 if 条件 else 値2
条件が真と評価されたら値1を、偽と評価されたら値2を返す

879 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:12:02.74 ID:hLxIIZfE.net]
>>828
そもそもこのラムダ式がちょっとトリッキーなんだよね
lambda l, x: l.append(x) or l if x not in l else l
俺なら
def f(l,x):
__if x not in l:
____l.append(x)
__return l
を定義して
repeating_data = reduce(f, columns['Hello'], [])
ってやると思う

880 名前:デフォルトの名無しさん [2018/11/10(土) 18:14:37.23 ID:GvdPZ72d.net]
>>834
lをNoneにするってのは830の間違い



881 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:59:26.03 ID:8RKiULCU.net]
>>833
偽の時は空値返す二項版条件演算子みたいな糞を実装してる言語って何?
有効な使い道が思いつかん

882 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 19:30:23.53 ID:hLxIIZfE.net]
>>838
もっと用途限定だけどC#のnull条件演算子が近いかな

883 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 19:41:48.00 ID:LcpJu9SU.net]
>>839
用途限定どころか目的からして完全に別物

884 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 20:21:45.94 ID:hLxIIZfE.net]
はいはい w

885 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 20:55:57.38 ID:2vwbQ9QW.net]
恥ずかしい奴だな

886 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:43:36.94 ID:Kjka4QLz.net]
やっかいなnullを扱いやすくする為に実装された演算子と
偽を受け取ったぐらいで無駄にNoneを返す>>833がかんがえたさいきょうのじょうけんしきなんて別物どころか真逆だよな
実際、Noneを返したんじゃ>>834こうなるだけだし

887 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:48:48.39 ID:zCsM6it1.net]
理解できないお前のことだなww

888 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:52:55.81 ID:hLxIIZfE.net]
>>843
> やっかいなnullを扱いやすくする為に実装された演算子と
実装の目的と

> 偽を受け取ったぐらいで無駄にNoneを返す>>833
演算子の機能の区別もつかないアホだったのか…

> 実際、Noneを返したんじゃ>>834こうなるだけだし
マジでアホなの?
リスト要求される所にNone与えただけの話だぞ、それ w

889 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 21:55:57.70 ID:nSd/jMeD.net]
Nane「私のためにケンカしないで!!」

890 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:00:38.04 ID:jxhvzDRc.net]
>>846
誰だお前は



891 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:04:59.17 ID:4gO6mVIc.net]
>>847
ウンコ「おならです」

892 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:06:25.70 ID:hPdKPv7V.net]
肛門「よし通れ!」

893 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:10:53.93 ID:aFLDlH5i.net]
くだすれ貫禄のくだらなさで不覚にも吹いた

894 名前:デフォルトの名無しさん [2018/11/10(土) 22:11:20.00 ID:7gTt1pZ+.net]
まだまだ

895 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:19:58.98 ID:WPq8ZeKj.net]
判定を失敗すると恐ろしいことになるんだなあ…

896 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 22:55:34.73 ID:jXgJ1KMY.net]
早まってnull条件演算子とかエルビス演算子って言わなくて良かったわ

897 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 23:22:42.45 ID:sSiPAoa8.net]
>>853
そういうのは需要があるから実装されてるんだよ
Noneなんて返されても無駄なチェックコードが増えるだけ
単にelseで適切な値を返すだけでいい

898 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 23:50:26.34 ID:hLxIIZfE.net]
>>854
> 単にelseで適切な値を返すだけでいい
仮定の話しができない低能乙 w

899 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 08:48:46.33 ID:rNrNUiDF.net]
真っ赤っかですな
単芝も紅葉するんだ

900 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 08:57:40.67 ID:cKV3qXJe.net]
低能先生は低能連呼から最終的に殺人に走ったので気をつけてね。



901 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:16:25.06 ID:3JRsWB+V.net]
>>857
ソースよろしくww

902 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 10:30:49.61 ID:ZIQY97Xr.net]
ttps://ja.wikipedia.org/wiki/%E7%A6%8F%E5%B2%A1IT%E8%AC%9B%E5%B8%AB%E6%AE%BA%E5%AE%B3%E4%BA%8B%E4%BB%B6

903 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 11:34:11.51 ID:LFgZgESJ.net]
へーっ、こんな事件があったんだな
フルボッコされての犯行か
ならまともな反論もできなくなった>>856とか言ってやれよww

904 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 12:06:11.66 ID:uw9PiA4L.net]
この自己愛
同種だな

905 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 13:13:23.27 ID:3JRsWB+V.net]
謎の一体感w
一般人には理解不能

906 名前:デフォルトの名無しさん [2018/11/11(日) 13:36:01.34 ID:96wp+TZd.net]
>>831
まさか普段ruby使ってる?

907 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 14:18:08.94 ID:SClia95W.net]
ルビバレする用語:
破壊的・非破壊的
クラスメソッド
特異メソッド

908 名前:デフォルトの名無しさん [2018/11/11(日) 16:41:23.18 ID:kuiXddTN.net]
ファイルに定義されている関数名を知る方法ありますか?
関数名だけです。

909 名前:デフォルトの名無しさん [2018/11/11(日) 17:56:29.41 ID:96wp+TZd.net]
globals()
locals()

910 名前:デフォルトの名無しさん mailto:sage [2018/11/11(日) 23:32:22.24 ID:ARqR0CiK.net]
>>831
Ruby ではメソッド名に、! がつく、破壊的メソッドが、nil を返すことがある。
破壊的メソッドとは、レシーバ自身を変更するもの

line.chomp! # 末尾の改行を削除する
line.empty? # 空行かどうか?

chomp! は、末尾に改行が無くて、削除しなかった場合に、nil を返す

line.chomp!.empty?

上記のようにメソッドチェーンすると、nil から、empty? メソッドを呼び出そうとして、
エラーになるから、メソッドチェーンできない

ただし、最近のバージョンでは、nil 許容演算子が追加されて、
メソッドチェーンしてもエラーが起きなくなった

jQuery では、メソッドチェーンしてもエラーが起きない



911 名前:デフォルトの名無しさん mailto:sage [2018/11/12(月) 01:26:40.44 ID:BcZUmovG.net]
「Ruby」をNGワード登録するのが簡単・便利

912 名前:デフォルトの名無しさん mailto:sage [2018/11/12(月) 21:09:17.74 ID:XFjJOyuw.net]
pd.read_html(url)で読み込んだテーブルのある列をtable.sort(by= )でソートしたんだけどその結果が
0
1
2
3
4
1
2
3
みたいに微妙な並び替えになっちゃうのはデータにどんな原因があるの?

913 名前:デフォルトの名無しさん [2018/11/12(月) 22:43:29.16 ID:ku9n7fSu.net]
#シート名取得
all_sh = book.sheetnames

#シート名が「ss」で終わるものを抽出
all_sh_ss = [s for s in all_sh if s.endswith('ss')]
print(all_sh_ss)

・・この後、シート名が「ss」で終わるシートだけから
特定セルA1の値を抽出したいんですが・・・行き詰まりました。
わかる方いたらご助言をお願いします。

914 名前:デフォルトの名無しさん [2018/11/12(月) 23:10:34.73 ID:JEwLf6Zk.net]
>>870
じゃあ次はその抽出した文字列のリストでWorksheetオブジェクトを取得してみようか

915 名前:デフォルトの名無しさん [2018/11/12(月) 23:21:23.98 ID:JEwLf6Zk.net]
>>869
read_html(url)で返ってきたリストにそのままソートかけてそう
まずはどんなリストが返ってきてるかそのまま表示してみたら?

916 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 11:11:30.00 ID:dBAvKT8b.net]
829さんじゃありませんが、横レスで関連する質問があります。

https://stackoverflow.com/questions/38417677/why-am-i-get

917 名前:ting-a-syntax-error-for-this-conditional-statement

You're getting the SyntaxError because you're using a conditional expression without supplying the else clause which is mandatory.

The grammar for conditional expressions (i.e if statements in an expression form) always includes an else clause:

と書かれていますが、lambda文以外の普通のif statementsの場合、elseがなくても問題がない場合が多々あると思うのですが、
なぜ>>832の例がやこのリンク先の例だとelse以下がないとだめなのでしょうか?
[]
[ここ壊れてます]

918 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 11:16:50.29 ID:ULH3fPUf.net]
>>873
散々出てるがif文じゃなくて条件式だから

919 名前:870 mailto:sage [2018/11/13(火) 11:17:02. ]
[ここ壊れてます]

920 名前:91 ID:dBAvKT8b.net mailto: 大事なこと書き忘れました。
リンク先読むとこのスレでも指摘されているように三項演算子なのでelseが必要とのことですが、
普通のif文と三項演算子ってどう区別すれば良いのですか?
[]
[ここ壊れてます]



921 名前:870 mailto:sage [2018/11/13(火) 11:42:02.89 ID:dBAvKT8b.net]
>>874
どうも失礼しました。公式ページ見たらやっとわかりました。
https://docs.python.org/ja/3/reference/compound_stmts.html#if
if文
https://docs.python.org/ja/3/reference/expressions.html#index-83
条件式
って明確に区別されてるみたいですね。
判別するにはif文の最後に":"があるかないかで判定するのでしょうか?

922 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 11:49:03.16 ID:dBAvKT8b.net]
https://realpython.com/python-conditional-statements/#conditional-expressions

ここにif文と条件式の区別について詳しく書いてありました。これで疑問が氷解しました。
どうもくだらない投稿してすみませんでした。

923 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 12:11:42.35 ID:p27/Ddjo.net]
>>876
まぁそれで区別…できなくもないけどPythonに後置if文はないし役割が違う
というより明確に区別されるのは式と文で、式の中に文を書く事は出来ない
>>828みたいなlambda中の条件式はor含めなんとか値を返すための苦肉の策

924 名前:デフォルトの名無しさん mailto:sage [2018/11/13(火) 12:36:07.85 ID:X1xMRsix.net]
ワンライナー()のために、処理を行うかの切り替えに条件式を悪用してるだけだからすこぶる行儀悪いわな

925 名前:874 mailto:sage [2018/11/13(火) 12:49:01.67 ID:dBAvKT8b.net]
>>878-879
レスありがとうございます。メモとっときます。

926 名前:デフォルトの名無しさん [2018/11/13(火) 18:24:15.89 ID:90McxFB4.net]
さすがくだすれ

927 名前:デフォルトの名無しさん [2018/11/14(水) 08:37:42.04 ID:7XHx6tPI.net]
本当に初歩的な質問で申し訳ないのですが
Openpyxlで読み込んだファイル名を出力することはできますか?
シート名、セル値はわかるのですが、ファイル名のやり方がわからなくて、、

928 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 08:56:30.82 ID:1aZXQx3x.net]
>>882
ファイル名のわからないファイルをどうやって読み込んでいるの?

929 名前:デフォルトの名無しさん [2018/11/14(水) 09:08:29.36 ID:7XHx6tPI.net]
>>883
ファイル名はもちろんわかるんですが
それをセルに出力したいのです。

930 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 09:08:38.14 ID:yrvGShGp.net]
念力



931 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 09:22:21.28 ID:1aZXQx3x.net]
>>884
Openpyxlは触った事ないけど、
調べた感じでは基本は↓でできるんじゃないの?
sheet = openpyxl.Workbook().active
sheet['A1'] = ‘ファイル名’

932 名前:デフォルトの名無しさん mailto:sage [2018/11/14(水) 23:27:59.57 ID:2v/yZNsE.net]
ドキュメントのsubprocessのところをみると
似たような機能で
getoutput レガシーなシェル呼び出し関数
check_output 古い高水準 API
os.systemよりsubprocessを推奨
となっていて基本runが推奨で
他は使わないほうがいいとかあるんですか?
例えばいずれなくなるからとか。
それとも単にお勧めというだけなのか?
その辺の読み解き方がよくわからないです。

933 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 00:01:12.02 ID:biHRXo8w.net]
安心が欲しいのなら推奨API以外を使うべきではない

934 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 00:06:22.84 ID:biHRXo8w.net]
まあこれは一般論で
os.systemが廃止されることはないと思うし
これまでの経験からしてDeprecatedとマークされてから2バージョンくらい移行期間があるから
仮に無くなるとしても3年くらいは大丈夫だろう

その前にプログラミングに飽きている可能性の方が高い

935 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 00:52:47.72 ID:1MY0pWfp.net]
>>889
ありがとうございました!

936 名前:デフォルトの名無しさん [2018/11/15(木) 13:46:36.75 ID:djL3d80k.net]
pythonでgui アプリ作るには、tkinterってやつでいいんでしょうか
そもそも作れますか?

937 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 14:04:46.04 ID:MeEMSEca.net]
Qtとかwxpythonとかほかにもあるでよ

できるよ

938 名前:デフォルトの名無しさん [2018/11/15(木) 17:29:06.18 ID:djL3d80k.net]
ありがとー
3dとかも扱えますかね?

939 名前:デフォルトの名無しさん [2018/11/15(木) 18:07:36.78 ID:/yCJioVE.net]
>>891
matplotlibはGUIがtkでボタンもメニューも作れる
3Dも完璧

940 名前:デフォルトの名無しさん [2018/11/15(木) 18:40:25.34 ID:n3jFLh1o.net]
完璧というからには、GPU支援とかも完璧なんだろうな。



941 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 19:15:13.23 ID:MeEMSEca.net]
>>895
あるぉ

942 名前:デフォルトの名無しさん [2018/11/15(木) 19:44:19.96 ID:djL3d80k.net]
-m tkinter
でtkinterのバージョンを確認できるそうですが、chdirしないとだめなんでしょうか
デフォルトの場所だとinvalid syntaxエラーになります

943 名前:デフォルトの名無しさん mailto:sage [2018/11/15(木) 20:08:14.97 ID:MeEMSEca.net]
>>897
pythonのバージョンが3系なら
python -m tkinterじゃなくて
py -m tkinterのはずはず

944 名前:デフォルトの名無しさん [2018/11/16(金) 17:42:33.52 ID:IxhrRMJp.net]
↑ありがとうございました

945 名前:デフォルトの名無しさん [2018/11/16(金) 17:42:49.00 ID:IxhrRMJp.net]
idleだけで開発できますか?
不十分な点ってどこでしょうか

946 名前:デフォルトの名無しさん [2018/11/16(金) 17:43:28.31 ID:IxhrRMJp.net]
あと、どういった環境使ってるか教えてください
pycharmというのはおもすぎてきつかったです
とりあえずatomにpython入れてやってます

947 名前:デフォルトの名無しさん [2018/11/16(金) 19:30:29.81 ID:no85NK4X.net]
起動時間はpycharmの方が掛かるけど、
起動後はatomとかvscodeの方が描画周りとかまったりしてて重いと感じる。
拡張機能もたくさん入れることになるし。

948 名前:デフォルトの名無しさん [2018/11/16(金) 19:55:41.74 ID:IxhrRMJp.net]
とりあえずidleでやってきます(´・ω

949 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 20:10:36.27 ID:arJZkCZY.net]
おれidleだけでgui開発やってるよ

950 名前:デフォルトの名無しさん [2018/11/16(金) 20:15:48.44 ID:IxhrRMJp.net]
tkinterってリファレンスないんすか(´;ω
公式がないですがすでに



951 名前:デフォルトの名無しさん mailto:sage [2018/11/16(金) 20:23:20.55 ID:arJZkCZY.net]
ttps://docs.python.org/ja/3/library/tkinter.html

952 名前:デフォルトの名無しさん [2018/11/17(土) 09:50:58.58 ID:eS8uuMhZ.net]
pythonとopneglでblenderみたいなソフト作れますか
植物を自動生成したいだけですが

953 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 10:03:17.92 ID:FOsw7ObJ.net]
ソフトを作らなくてもblenderがpythonに対応している。

954 名前:デフォルトの名無しさん [2018/11/17(土) 10:20:48.12 ID:eS8uuMhZ.net]
それはそうなんですが、勉強として

955 名前:デフォルトの名無しさん [2018/11/17(土) 11:01:18.90 ID:B4GISbTr.net]
>>909
できるけど初心者なら
pygameの方が楽

956 名前:デフォルトの名無しさん [2018/11/17(土) 12:26:38.54 ID:z9owpr8+.net]
>>525 ぺちぷ
<?php
function solve(int $n):int{
$a=0;
for($i=5;$i<=$n;$i*=5)$a+=intdiv($n,$i);
return $a;
}

foreach([1,5,10,1e2,1e6,1e16] as $i)printf("%d -> %d\n",$i,solve($i));
?>

1 -> 0
5 -> 1
10 -> 2
100 -> 24
1000000 -> 249998
10000000000000000 -> 2499999999999996

957 名前:デフォルトの名無しさん [2018/11/17(土) 12:27:25.80 ID:z9owpr8+.net]
誤爆すまん

958 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 12:52:15.90 ID:+Lh4qwu/.net]
https://hoge.com/3/1330.jpg
https://hoge.com/3/1622.jpg

1330から1622までの連番の作り方教えて欲しいです

https://hoge.com/3/1330.jpg
https://hoge.com/4/5.jpg

もし、2000を超えたら一つ上の階層に1を足してjpgはまた0から数えたいです

やり方教えて下さい!

959 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 14:26:54.02 ID:xcAZYE+8.net]
>>913
糞クローラー作るな
逝ってよし

960 名前:デフォルトの名無しさん mailto:sage [2018/11/17(土) 16:36:18.08 ID:Y/z/VfN+.net]
もやはサイバーテロだな



961 名前:デフォルトの名無しさん [2018/11/17(土) 19:28:23.67 ID:eQWBxdMf.net]
おまえは存在がリアルテロやんw

962 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 00:50:16.86 ID:mGYzq3D+.net]
python2.7 ubuntu utf-8

requests使ってpostするんですけど
response.text.encode('utf-8')が文字化けします。
post先のページもutf-8なので文字化けする理由がわからなくて困ってます。
他の原因が考えられるでしょうか?

963 名前:デフォルトの名無しさん [2018/11/18(日) 00:52:09.78 ID:RRVp+pUX.net]
は?他でない原因はなんやwww
おまえなんも原因の推測しとらんやんけwwwww

964 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 02:08:45.13 ID:IKIz+EAu.net]
Ruby で作った

host_name = "https://example.com/"
ext_name = ".jpg" # 拡張子

dir_name = 3..4 # 3〜4 の範囲
base_name = 9..10 # 9〜10 の範囲

dir_name.each do | dir_n |
base_name.each do | base_n |
puts "#{ host_name }#{ dir_n }/#{ base_n }#{ ext_name }"
end
end

出力
https://example.com/3/9.jpg
https://example.com/3/10.jpg
https://example.com/4/9.jpg
https://example.com/4/10.jpg

965 名前:デフォルトの名無しさん [2018/11/18(日) 02:29:02.25 ID:+Y8H8lPp.net]
オブジェクト指向言語のRubyが今大人気!!

世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さすがRuby!貫禄のランクイン!!
Railsで作られたサービスでの集計ということを差し引いてもすごい!

966 名前:デフォルトの名無しさん [2018/11/18(日) 09:13:17.46 ID:ZxrLCeZc.net]
>>917
response.encoding = response.apparent_encoding

追加してみ

967 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 13:07:11.78 ID:OtDWWVpG.net]
>>919
グロ

968 名前:デフォルトの名無しさん [2018/11/19(月) 16:41:17.86 ID:6QwGyqzR.net]
PILで画像に対してimage.getdataで値を取得すると、
ImagingCore object at 0x111993790 のようなメモリ上の値が得られますが、
これに類することはjavascriptで出来ますか?

969 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:41:55.53 ID:hzrCQ9gE.net]
>>923
javascriptスレできけ案件

970 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 18:57:29.17 ID:Rj4PyB0Y.net]
メモリ上の値じゃなくてアドレス情報だろ



971 名前:デフォルトの名無しさん [2018/11/19(月) 19:03:49.34 ID:rVdz2W17.net]
だから?
ここPythonスレだよ?

972 名前:デフォルトの名無しさん [2018/11/19(月) 20:44:02.95 ID:m6msMsxr.net]
超初心者なのですが、pythonでwebの画像を取得する方法がよくわかりません、、、
ggると大量取得のスクリプトは出てくるのですが、
http://〜〜〜.jpgという1枚を保存するにはどうすればいいのでしょうか。
どなたかご教授いただければ嬉しいです。

973 名前:デフォルトの名無しさん [2018/11/19(月) 21:05:05.45 ID:rVdz2W17.net]
アドレスバーに入れてエンター
右クリック
名前をつけて保存

1枚だけならこうすればいいだけだから出てこないんだと思われる

974 名前:デフォルトの名無しさん [2018/11/19(月) 21:10:19.46 ID:m6msMsxr.net]
説明が不足してました、失礼
勉強がてら自分でスクリプトを作りたくて
responseとbs4で、1枚目のurlからhttp://〜〜〜.jpgを
抜き取るとこまではできたのですが、そこからのダウンロード方法がよくわからないです
1枚のダウンロード方法が分かり次第for分で回す予定なのですが

975 名前:デフォルトの名無しさん [2018/11/19(月) 21:11:32.92 ID:m6msMsxr.net]
↑requestの間違いです

976 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 21:41:38.78 ID:SMn8EX2d.net]
r = requests.get('example.com/eroero.jpg', stream=True)
with open('eroero.jpg', 'wb') as f:
  while 1:
    bin = r.raw.read(128)
    if not w: break
    f.write(bin)

977 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 21:45:32.10 ID:hzrCQ9gE.net]
>>927
だから糞クローラつくるんじゃねえksg
くたばれ
窓からPC投げ捨てろ

978 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 21:53:27.71 ID:SMn8EX2d.net]
>>931
× if not w: break
○ if not bin: break

979 名前:デフォルトの名無しさん [2018/11/19(月) 22:03:04.22 ID:m6msMsxr.net]
>>931
ありがとうございます!
wをrに読み替えて実行したところ保存できたけど
処理が終わりませんでしたが、
>>933
で終わりました、勉強になりました!
バイナリ保存をもう少し勉強してみますm(_ _"m)

980 名前:デフォルトの名無しさん [2018/11/19(月) 22:20:46.67 ID:OVa0imR9.net]
>>934
930のbinとwって単なる変数だからな
openのモードのrwbとがと関係無いからな



981 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 22:36:23.06 ID:lzm8caWs.net]
>>921
ありがとうございます
追加したけどやっぱり文字化けしました

982 名前:デフォルトの名無しさん [2018/11/19(月) 22:48:30.82 ID:m6msMsxr.net]
>>935
なるほどです

983 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 23:17:27.92 ID:057j8H5Q.net]
ダウンロードして保存するコマンドは、curl, wget

984 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 00:36:50.22 ID:2X5h674N.net]
以下は何をしているのでしょうか?
同じ物を代入したり返しているようにしか見えないです
お助け下さい・・・

https://github.com/Theano/Theano/blob/master/theano/compat/__init__.py

59行目
cmp = cmp

63行目
def decode(x):
return x

985 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 05:15:47.87 ID:0YIMqUF3.net]
ユーザーに派生クラスを作ってもらうための、ひな形・マーカーメソッドかも。
派生クラスを作らなかった場合の、デフォルトの動作なのかも

例えば、Ruby で抽象(マーカー)メソッドを作れば、
もし派生クラスB で、メソッドa を再定義(override)しなければ、例外をraise するから、
ユーザーは派生クラスで、メソッドa を再定義しなければならない

つまり、プログラマーに注意喚起する印・マーカー

class A
def a
raise NotImplementedError, "未実装です"
end
end

class B < A
end

B.new.a # 未実装です

986 名前:937 mailto:sage [2018/11/20(火) 05:21:34.81 ID:0YIMqUF3.net]
ライブラリの作者は、様々な、decode の実装方法があるから、ひな形だけは作っておくので、
ユーザーは派生クラスで、具体的なdecode の処理を、再定義して使ってください

もし再定義しなければ、何も処理しません

987 名前:デフォルトの名無しさん [2018/11/20(火) 10:53:50.60 ID:QMDiuUiOY]
実行すると、同じ値しか出てきません。
ランダムで出すにはどうしたらいいですか?
また、ランダムで10回繰り返すとかできるんですか?
よろしくおねがいします。

import random

a = random.randrange(2,5,2)
b = random.randrange(2,9,2)
c = random.randrange(12,61,12)
pm = ['+','-']
printpm = random.choice(pm)

calc = printpm + str(a) + '(' + printpm +str(b) + '×' + printpm + str(c) + ')='
print(calc)
print(calc)

988 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 09:32:49.23 ID:2X5h674N.net]
>>940-941
ありがとうございました、そういう事だったのですね

989 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 12:30:52.12 ID:xneveUXp.net]
>>943
いやそれ間違ってるから。

python2、python3両方で使えるようにそれぞれメソッドが定義してあって、
たまたまpython2のほうは演算する必要がないから引数をそのまま返しているだけ。

そいつはマ板で有名なpython知らないruby荒らしだから無視したほうがいいよ

990 名前:デフォルトの名無しさん [2018/11/20(火) 13:05:13.83 ID:ZtIBLsed.net]
>>940
さすがRuby!
圧倒的ランクイン!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg



991 名前:デフォルトの名無しさん [2018/11/20(火) 13:34:07.29 ID:jmuJusIM.net]
https://docs.python.org/ja/3/library/exceptions.html#NotImplementedError
https://docs.python.org/ja/3/library/constants.html

992 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 1 ]
[ここ壊れてます]

993 名前:6:39:53.72 ID:5NbKWroI.net mailto: >>936
しぇばん、importが済んだ後あたりに

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

って書いてみて
[]
[ここ壊れてます]

994 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 19:08:18.20 ID:PIfvSzhu.net]
ディレクトリ内に
aaa_000.txt
aaa_001.txt
  :
aaa_100.txt てな感じでファイルが保存されてたとします。
aaa_000.txt以外をglob.glob()で一覧化して取り出したいんですが
glob.globの引数に指定する正規表現、どうすればいけますでしょうか???

995 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 19:13:57.66 ID:5NbKWroI.net]
!(^000$) じゃね?

996 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 19:15:38.40 ID:5NbKWroI.net]
禿しくまちがってた

^(?!000)$

997 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 19:52:04.79 ID:PIfvSzhu.net]
import glob
l = glob.glob(r"^(?!000)$")
print(l)
こうですか? なんかダメみたいです(´・ω・`)

l = glob.glob(r"aaa_(?!000)$")
l = glob.glob(r"*(?!000)$")   も試してみましたがダメでした。

998 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 20:46:06.89 ID:eXMfunJO.net]
素直にre使ってりゃ1分で終わってたな

999 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 20:48:08.12 ID:d/DSkvWp.net]
globは正規表現使えないぞ。
使えるのはワイルドカードだけ

1000 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 20:48:55.37 ID:5NbKWroI.net]
んんんんn…
l = glob.glob(r"aaa_(?!000)[0-9]*\.txt")
でどうよ



1001 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 20:49:50.73 ID:5NbKWroI.net]
>>953
mjd

>>951
全部取り出してから
そのリストから
aaa_000.txtだけさくーじょするのが早い(´・ω・`)

1002 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 20:51:12.06 ID:+8Izpd7U.net]
>>955
その方が後から見てわかりやすいしな

1003 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:05:36.49 ID:5mSMf66i.net]
あああ、mjdって「マジで」かー

1004 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:13:03.42 ID:aqI13PjQ.net]
いくらくだすれとはいえこんな頭のおかしい奴が回答者だとは…

1005 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:13:50.48 ID:5NbKWroI.net]
初心者の
初心者による
初心者のための
互助すれ

1006 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:15:21.06 ID:yKairBEQ.net]
[x for x in glob.glob() if int("".join(re.findall("\d", x))) > 0]
でいけるかな
ファイル名が決め打ちで分かってるなら
[x for x in glob.glob() if int(x.replace("aaa_","").replace(".txt","")) > 0]
でもいける
でも今日日os.scandir()とかあるのにglob使う必要性はないと思う

1007 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:15:59.61 ID:3m3Squu1.net]
Pythonのtime sleepとcrontabのコードって相性悪くない?

1008 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:19:44.13 ID:5NbKWroI.net]
俺の環境(python2.7 Win7(XPからのアプデ))では
time sleepは常にラグい (`・ω・´)キリッ

1009 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:22:17.92 ID:yKairBEQ.net]
[x for x in glob.glob() if {y for y in x if y.isdigit() and y != "0"}]
が一番スマート()か

1010 名前:デフォルトの名無しさん [2018/11/20(火) 21:36:20.21 ID:lC+kMZiu.net]
glob.glob('aaa_*.txt').remove('aaa_000.txt')



1011 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 21:46:55.78 ID:PIfvSzhu.net]
>>960
>>963
サンクス、コピペしたけど動かなかったので諦めました

>でも今日日os.scandir()とかあるのにglob使う必要性はないと思う
os.scandir ←これ知らんかたわw これでなんとかなりそうですw


>>964

           .-´    ``ヽ   
          /  ヽー     `ヽ
         / ノ    (O )ノ ̄ ̄`ヽ、―ニ  
        / (●) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!    
          ヽo (__ン  }、ー‐し'ゝL _  
         

1012 名前:人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
                    |
[]
[ここ壊れてます]

1013 名前:デフォルトの名無しさん [2018/11/20(火) 22:15:47.35 ID:lC+kMZiu.net]
>>964
何でダメなのかわからんかったけどremoveメソッドはNoneを返すんだな

x = glob.glob('aaa_*.txt')
x.remove('aaa_000.txt')

>>965
ごめんね

1014 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 01:45:07.75 ID:yscr9wE/.net]
Ruby で、配列の差集合を使った

ary = Dir.glob( 'aaa_*.txt' ) - [ 'aaa_000.txt' ]

1015 名前:デフォルトの名無しさん [2018/11/21(水) 02:04:45.67 ID:ILAAUKO6.net]
Rubyが大人気!Rubyが大人気!
学ぶ価値がある大人気言語Ruby!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg

1016 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 18:00:19.78 ID:/haBP7x7.net]
なぜpathlib使わないのか

1017 名前:デフォルトの名無しさん [2018/11/21(水) 18:42:34.45 ID:vOPCMSrj.net]
bashからpythonのCGIプログラムを実行するときにGETパラメータを渡す方法を教えてください。

1018 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:05:39.22 ID:NMvk2xsS.net]
get1=get1_val
get2=get2_val
が渡したいとすると

url="example.com/cgi-bin/recv.php?get1=get1_val&get2=get2_val"
curl $url

1019 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:07:16.16 ID:NMvk2xsS.net]
example.com/cgi-bin/recv.php

pythonのcgiを置いて動かしてるアドレスに読み替えてくれ

1020 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:07:21.27 ID:vOPCMSrj.net]
デバックしたいです。



1021 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:14:02.86 ID:NMvk2xsS.net]
pythonのCGIン中のimportんところの最後に

import cgitb
cgitb.enable()

と書け

デバッグが終わったら消すのを忘れるな
忘れるとたいへんなことがおきる

1022 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:16:30.77 ID:NMvk2xsS.net]
>>971-972 あとで見返す人も居ないと思うがもうちょっとわかりやすく書いておこう

get1としてget1_val
get2としてget2_val
が渡したい


Apacheなんかでlocalhostを動かしていて
bash-cgiふぉるだんなかに
ターゲットとなるhoge.cgiが置いてある
とすると

url="localhost/bash-cgi/hoge.cgi?get1=get1_val&get2=get2_val"
curl $url

1023 名前:デフォルトの名無しさん [2018/11/21(水) 20:50:52.10 ID:jrFgFGaV.net]
‘/home/hoge/foo/*.txt’ みたいなパスが与えられてglobしたい時って、pathlibだと一度切り分けて
Path(‘/home/hoge/foo’).glob(‘*.txt’)
とするしか無い?
glob.globなら最初のパスを丸ごと与えて終わるけど

1024 名前:デフォルトの名無しさん [2018/11/21(水) 21:06:34.58 ID:JM/nMfDs.net]
pathlib使わんくてもええんやで?なにに追い立てられとるんやおまえら?

1025 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 00:08:45.16 ID:VnO3ZoaR.net]
Ruby では、絶対・相対パスの両方が使えるよ

Dir.glob( 'C:/Users/Owner/Documents/*.txt' )

1026 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 08:08:40.14 ID:MlwCwGep.net]
>>978
荒らし氏ね

1027 名前:デフォルトの名無しさん [2018/11/22(木) 08:55:38.42 ID:GbIN7rVe.net]
>>978
そんな基本的なことで自慢しなけりゃならないとはよっぽどショボい言語なんだなww
>>968 という状況に追い込まれるのも当然な気がするwww

1028 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 09:44:14.26 ID:5DqVDDdG.net]
ガイジしか使ってないし
開発者もガイジ揃いだから

1029 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 11:17:29.92 ID:yaFldicH.net]
Rubyはガイジ隔離言語として世の役に立ってるよなw

1030 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 12:06:33.50 ID:kIWLxEQb.net]
(Rubyガイジ)うんこ…うんこ…



1031 名前:デフォルトの名無しさん [2018/11/22(木) 13:34:33.95 ID:blyr971h.net]
次スレよろ

1032 名前:デフォルトの名無しさん mailto:age [2018/11/22(木) 17:10:16.21 ID:JDIt5Mgb.net]
( ・∀・)ノフォラァヨ!!---===≡≡≡ くだすれPython(超初心者用) その40
mevius.5ch.net/test/read.cgi/tech/1542874174/

1033 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 16:02:50.08 ID:joE0voDR.net]
rate="486,380(26.03%)"
みたいなのから正規表現で26.03だけ

1034 名前:取り出したいんですけどどうすればいいですか?
最初はrate[-7:-2]で取り出そうと思ったんですけど、たまに"500(3.27%)みたいな%が一桁のデータがあって、出力すると(3.27になり、エラーの原因になってしまうんです
つまり()の中の数字だけ取り出す方法を教えてください
[]
[ここ壊れてます]

1035 名前:デフォルトの名無しさん [2018/11/23(金) 16:34:17.54 ID:e4GZHgy/.net]
>>986
re.compile(r'\((.*)\%\)', re.I)

1036 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 17:04:36.40 ID:joE0voDR.net]
>>987
神がいた
最後のre.lがあるとなんかエラー起きたけどちょっと弄ったらできたわ
ありがとうございます
正規表現は素人には難しい

1037 名前:デフォルトの名無しさん [2018/11/23(金) 17:08:26.06 ID:f04GZ1ux.net]
>>986
'\d+\.\d+(?=\%)'

1038 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 17:41:39.39 ID:joE0voDR.net]
>>989
こっちでもできた
しゅごい

1039 名前:デフォルトの名無しさん mailto:age [2018/11/23(金) 18:29:59.34 ID:cGOad0jL.net]
>>990
かわいい
掘らせて ハアハア(´Д`*)

1040 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 03:48:05.11 ID:01jBobXF.net]
Ruby で作った。
正規表現内で特別な意味をもつ、特殊文字を判別する

rp = Regexp.escape "(%)"
puts rp #=> \(%\)

( ) は特殊文字なので、それらから特別な意味を除いて、単なる文字として使うには、
前に、\(逆スラッシュ)を付けて、エスケープする

rate = "486,380(26.03%)"

md = rate.match /\((.*)%\)/
puts md[ 0 ] #=> (26.03%)
puts md[ 1 ] #=> 26.03

外側の( ) は、単なる文字として使うので、\( \) とエスケープするが、
内側の( ) は、キャプチャーの意味なので、エスケープしない

md[0]はマッチした文字列で、md[1]は、( )でキャプチャーした部分



1041 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 08:22:15.36 ID:sJe2ncgH.net]
>>992
いい加減にしろよ屑

1042 名前:デフォルトの名無しさん [2018/11/24(土) 09:57:01.31 ID:hG+y0dS8.net]
>>992
圧倒的大人気言語Ruby!!

https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
https://i.imgur.com/0YbMsqj.jpg

大人気!!!

1043 名前:デフォルトの名無しさん [2018/11/24(土) 11:16:19.41 ID:ZWAqZgZk.net]
>>994
記事読んでみたらRuby落ち目で草

1044 名前:デフォルトの名無しさん [2018/11/24(土) 12:12:32.95 ID:4kdGLnPd.net]
re.search と re.findall どっち使うのが良いの?
web で調べると re.search 使ってる人や薦める人が多いみたいだけど
実際は re.findall の方が使いやすいと感じる

1045 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 12:22:51.14 ID:rqBWhuzZ.net]
お前が使いやすいと思うものを使え
お前の感性なんざ知らねえよ

1046 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 12:25:19.78 ID:rqBWhuzZ.net]
だいたいre.searchを薦めてる奴はその理由を書いてるだろ
(書いてない奴はゴミだから信用するな)
それを理解した上でre.findallの方がというなら、もはや否定する理由はない
お前の中ではそうなんだな、で終わりだ

1047 名前:デフォルトの名無しさん [2018/11/24(土) 13:07:33.24 ID:b4dZse+n.net]
>>998
だったら最初から黙っとけよ、チンカス

1048 名前:デフォルトの名無しさん [2018/11/24(土) 13:11:24.69 ID:4kdGLnPd.net]
finditer が良さそうなのでこれにします
本当にありがとうございました
仲良くしてね

1049 名前:デフォルトの名無しさん mailto:sage [2018/11/24(土) 14:00:15.36 ID:f9pHxWoA.net]
一個見つかれば良い状況で
searchではなくfinditer使うのは面倒くさいだけのような
finditerはマッチしてもしなくてもイテレータが帰ってきちゃう

1050 名前:デフォルトの名無しさん mailto:age [2018/11/24(土) 14:17:31.53 ID:S/+07wK4.net]
じつにくだすれらしい
くだくだなながれですね (´・ω・`)



1051 名前:デフォルトの名無しさん [2018/11/24(土) 14:24:37.27 ID:4kdGLnPd.net]
何個見つかるか事前に判らないので
match したかしなかったか調べるのに if m is None: みたいな書き方するなら
for _ in iter: でする方が楽なんです
条件後付けと言われればその通りですが

1052 名前:デフォルトの名無しさん [2018/11/24(土) 14:25:34.56 ID:4kdGLnPd.net]
ume

1053 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 6時間 34分 59秒

1054 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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