◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

くだすれPython(超初心者用) その39 YouTube動画>1本 ->画像>26枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1535064635/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

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

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

前スレ
くだすれPython(超初心者用) その38
http://2chb.net/r/tech/1526522954/
2デフォルトの名無しさん
2018/08/24(金) 07:50:54.90ID:VD4/++xS
◆関連リンク Python の Home Page
http://www.python.org/

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

◆まとめwiki
http://python.rdy.jp/
3デフォルトの名無しさん
2018/08/24(金) 11:55:16.20ID:ZVlysGry
ストロー廃止
4デフォルトの名無しさん
2018/08/24(金) 16:34:04.92ID:RSpOEB9t
『日経ソフトウェア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デフォルトの名無しさん
2018/08/24(金) 16:59:48.14ID:O0T9h+Ku
>>4
日経ソフトウエアって読む価値ありますか?(゚Д゚)?
6デフォルトの名無しさん
2018/08/24(金) 22:42:39.09ID:J2z8mB41
環境整えてみたんですが
いざなにを作ればいいんですか?
7デフォルトの名無しさん
2018/08/24(金) 22:55:45.28ID:A0MvxlLt
自分探しの旅みてーな疑問だな
8デフォルトの名無しさん
2018/08/25(土) 04:28:11.12ID:gxBSyOuw
日経ソフトウエアは、読む価値なし

日経Linux、WEB+DB、Software Design などは良い
9デフォルトの名無しさん
2018/08/25(土) 10:02:26.96ID:H9tlLYtz
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に正しく値を渡すには、どうしたらよいでしょうか。ご教示よろしくお願いします。
10デフォルトの名無しさん
2018/08/25(土) 10:17:20.53ID:5go0Mg15
>>9
a[0]は日でa[1]は本
if b[0] == "日本語1":
にすればいい
11デフォルトの名無しさん
2018/08/25(土) 10:38:37.45ID:H9tlLYtz
>>10
すみません!コードを抽象化するときに書き間違えました。
a[0].a[1]のところは、正しくはb[0].b[1]です。
せっかく教えていただいたのにすみません。
b[0]を日本語1と評価されるようにするにはどうしたらよいでしょうか。
12デフォルトの名無しさん
2018/08/25(土) 10:53:10.81ID:5go0Mg15
>>11
日本語1の1が全角とか?

b[0]の出力をそのまま
b[0]== の後にコピペしてもfalseになるの?
13デフォルトの名無しさん
2018/08/25(土) 11:10:46.62ID:H9tlLYtz
>>12
コピペで試しているので、文字列は同一だと思います。
今、試しにコマンドラインでスクリプトに引数を渡すと、コンソール上では期待通りの動作をしました。
PHPからだと、print出力的には同一に見えるけど別なデータになっているということでしょうか
14デフォルトの名無しさん
2018/08/25(土) 11:31:58.85ID:5go0Mg15
>>13
PHPから受け取ったのがstrじゃなくてbyte型なのかな?type()で調べてみたら?
15デフォルトの名無しさん
2018/08/25(土) 11:46:56.88ID:kfh++Yrt
必要なとこだけコピペで貼ってくれ
16デフォルトの名無しさん
2018/08/25(土) 11:50:43.54ID:H9tlLYtz
>>14
type(b[0])
だと何も返ってこないのですが、
type(b[0] is str)
だとTrueが返って来ます
17デフォルトの名無しさん
2018/08/25(土) 13:02:46.63ID:H9tlLYtz
>>15
すみません。これでいかがでしょうか。
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'
18デフォルトの名無しさん
2018/08/25(土) 14:30:45.41ID:kfh++Yrt
>>17
文字コード不一致してね?

LANG=xxx python3 python.py "日本語1 日本語2"
とかで、ロケール設定して実行してみたら?
19デフォルトの名無しさん
2018/08/25(土) 14:50:58.87ID:H9tlLYtz
>>18
動きました! ありがとうございます!
system localeはLANG=ja_JP.UTF-8だったので、そこは疑ってませんでした。
20デフォルトの名無しさん
2018/08/25(土) 18:14:21.70ID:P/kKO950
また今日も天才に救われた人が居るな、解決おめでとう!
21デフォルトの名無しさん
2018/08/26(日) 01:55:23.42ID:TJFxEnkY
プログラム初学者ですが、入門書を買って勉強しております。
複合代入演算子の項を見ていたら1点疑問があり、

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

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


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

とするのはだめなのでしょうか?
初歩的な質問ですみません。
22デフォルトの名無しさん
2018/08/26(日) 02:11:05.36ID:xGLfO5+N
>>21
text += 'XXX'
で形が揃うから見やすいとかコピペや順序入れ替えが楽って以外の意味はないと思う
というか理由が書いてないならあまり良くない入門書だな

3.6以降ならf-stringを使って
text = f'我輩は{who}である'
のほうが良さげ
https://atsuoishimoto.hatenablog.com/entry/2016/12/25/122220
23デフォルトの名無しさん
2018/08/26(日) 02:24:57.28ID:TJFxEnkY
>>22
ありがとうございました。URL参考になりました。
入門書はいろいろ調べてみたんですけどやはり周りに修学者がいないと選びにくいですね。
24デフォルトの名無しさん
2018/08/26(日) 04:17:09.95ID:L324XJEs
みんなのpythonって本はプログラム知識が殆ど無い入門者にお勧めできますか?
本屋で立ち読みしようと思ったんですけど無くて、アマゾンで調べたら評価はまちまちみたいで…
25デフォルトの名無しさん
2018/08/26(日) 07:36:47.56ID:w0D5YFHr
この2冊は、既にプログラミングが出来る人向け。
数言語は知っていて、Ruby, Python を学ぶ人向け

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

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

知らないけど、progate のサイトで勉強すれば?
26デフォルトの名無しさん
2018/08/26(日) 07:44:31.55ID:KclbjBGL
>>21
同じように動くという意味では問題無い。


著者としては空の変数を定義することで
変数の宣言と値の代入を分離したかったんじゃないかな?
pythonでは変数を明示的に宣言だけすることはできないから、
27デフォルトの名無しさん
2018/08/26(日) 07:49:32.68ID:KclbjBGL
>>24
合うか合わないかは人によるから
kindleでお試し読んでみたら
28デフォルトの名無しさん
2018/08/26(日) 07:58:14.06ID:L324XJEs
>>25
スッキリわかるjavaはやりました
なのでその次に読む本として選んでみました。大丈夫そうですか?
簡単だと良いんですが
2925
2018/08/26(日) 09:57:49.56ID:w0D5YFHr
読む順番としては、先に「たのしいRuby」を3回読むと、
「みんなのPython」が楽に読める

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

たのしいの方が、正規表現とか、内容が濃い
30デフォルトの名無しさん
2018/08/26(日) 10:32:43.51ID:L324XJEs
>>29
そうなんですね。みんなのpythonの方が表紙にでっかく絵が書いてあったり
堅苦しい内容じゃなさそうで入門向けで良いのかなって思ったんですが内容ないんですね…
わかりました。たのしいruby買います。アドバイスありがとうございます
31デフォルトの名無しさん
2018/08/26(日) 12:18:03.60ID:Y1vMA8RK
>>30
そいつは有名なruby荒らしだぞ。
python勉強するのになんでruby本読む必要があるんだよ。よく考えろ
32デフォルトの名無しさん
2018/08/26(日) 17:39:56.34ID:O9adGcKd
もうrubyをNGしてもいいぐらい
33デフォルトの名無しさん
2018/08/26(日) 18:15:35.15ID:wR7TFJf0
ガイジに優しくしよう
34デフォルトの名無しさん
2018/08/26(日) 19:59:11.67ID:7VGl0ROF
脈略のないrubyコードの貼り付け、ruby本の紹介は禁止ってテンプレに入れておいてくれ
3525
2018/08/26(日) 23:41:34.26ID:w0D5YFHr
Ruby, Python, JavaScript というのは、単なる各言語の文法書。
プログラミングの本じゃない

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

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

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

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

プログラミングを学ぶには、各言語の「Effective 何々」という本を読む。
これは、プロの必須本。
文法書の次のレベルへ行かないと、プログラミング自体を学べない
36デフォルトの名無しさん
2018/08/27(月) 00:26:43.00ID:lvpUeXXJ
Rubyは衰退していくだけのオワコン言語だから手を出したら負け組だよ
37デフォルトの名無しさん
2018/08/27(月) 00:53:03.94ID:HhBAi2Wr
Rubyみたいなオワコン言語の話は余所でやれ
38デフォルトの名無しさん
2018/08/27(月) 02:33:22.67ID:+WOcodwf
スクリプトのやり方教えて下さい
認識できないって出るんですけど…
39デフォルトの名無しさん
2018/08/27(月) 03:15:17.22ID:yTR9Y+Mn
>>24
プログラミング未経験でオライリーの入門Pythonを買ってがんばってる
今のところついていけてるけど、
みんなのPythonはきっとイラストや絵が入ってて紙面もカラーなんだろうなって考えるとうらやましい
こっちは絵もイラストも全くないです
40デフォルトの名無しさん
2018/08/27(月) 03:17:20.38ID:yTR9Y+Mn
早速躓いた

>>26
変数

値の代入
ってとうちがうんですか?
41デフォルトの名無しさん
2018/08/27(月) 03:21:04.08ID:yTR9Y+Mn
プログラミング自体を学ぶのにこれはどうですか?

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

PythonじゃなくてRubyで説明されてるみたいなんですけど
42デフォルトの名無しさん
2018/08/27(月) 06:12:09.02ID:ba8BcfX3
与えられた2つの数値から、最小公倍数・最大公約数を求めてみろ
43デフォルトの名無しさん
2018/08/27(月) 07:06:23.18ID:A3+vkFVR
>>41
pythonなら「独学プログラマーーpython」がある。
44デフォルトの名無しさん
2018/08/27(月) 07:25:20.50ID:fqwvA6xk
スタートブックとかの方が分かりやすいんじゃないの?
プログラム初心者なら
45デフォルトの名無しさん
2018/08/27(月) 12:18:58.34ID:Q4eMB8Ps
>>42
互除法
46デフォルトの名無しさん
2018/08/27(月) 21:06:47.86ID:KW/ftoFq
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)
47デフォルトの名無しさん
2018/08/27(月) 21:26:41.39ID:6eK9kwOU
>>46

>>> proglamId = '20180827200000'
>>> f'-s={proglamId}'
'-s=20180827200000'
48デフォルトの名無しさん
2018/08/27(月) 21:33:33.15ID:KW/ftoFq
>>47
どうもありがとうございます。
2行目はfフォーマットって言うんですかね?それを使っていると思うんですが、46のsubprocessの中ではどう書くんでしょうか?
49デフォルトの名無しさん
2018/08/27(月) 21:56:03.71ID:KW/ftoFq
>>48
出来ました。

パターン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)

どっちがスマートな書き方ですか?
50デフォルトの名無しさん
2018/08/27(月) 23:29:37.66ID:KW/ftoFq
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
何がいけないんでしょうか?
51デフォルトの名無しさん
2018/08/28(火) 00:20:33.07ID:TEJeUOom
端末で入力すると、シェルが、? の機能を動かすけど、

subprocess で、プロセスを直接起動すると、
シェルが介入しないから、? が展開されないとか?
52デフォルトの名無しさん
2018/08/28(火) 00:26:18.50ID:wjmNvrcp
>>51
?sbrの部分を省いてもエラーは改善しなかったです
53デフォルトの名無しさん
2018/08/28(火) 05:00:41.28ID:PEha72vP
shell=true
とかは? と muxer なんて知らないくせに適当に言ってみる
54デフォルトの名無しさん
2018/08/28(火) 05:07:01.91ID:PEha72vP
ん?
その前に
stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
の部分って必要なの?
55デフォルトの名無しさん
2018/08/28(火) 08:35:42.53ID:M3D05fOs
>>50
もちろんrunの第一引数が悪い
"-i"と"input.aac"を分けろ
56デフォルトの名無しさん
2018/08/28(火) 08:36:39.19ID:skYXWt6l
>>50
上2つは "-i input.aac?sbr" がオプションとして認識されてそう。'-i', f'input.aac?sbr' とかで分けてくれ
3つ目は shell=True で動く(/bin/sh -c 'muxer ....' と展開される)
シェルインジェクションとかあるので、お作法として shell=True はあまり使わないほうがいいかな
詳しくはマニュアル参照

>>49
書き方は好みだからなんとも言えんなー俺ならこんな感じで書く
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)
57デフォルトの名無しさん
2018/08/28(火) 08:39:26.15ID:M3D05fOs
空白が混じってると
> 一般に、引数のシーケンスを渡す方が望ましいです。なぜなら、モジュールが必要な引数のエスケープやクオート
> (例えばファイル名中のスペースを許すこと) の面倒を見ることができるためです
によってエスケープされるので意図通りにシステムコールに渡らないわけだな
58デフォルトの名無しさん
2018/08/28(火) 10:16:39.79ID:wjmNvrcp
みなさんどうもありがとうございます

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

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

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

>>54
この書き方だとsubprocess.callとsubprocess.check_callとsubprocess.check_outputの3つがまとめて出来るらしいのでこれで書きました
59デフォルトの名無しさん
2018/08/28(火) 14:55:03.72ID:WFu4qQCr
find関数で
line.find('a')だと部分一致で返してくれるんですが
c=input() aと入力して
line.find(c)とすると完全一致でしか返してくれないんですがどうすればいいですか
60デフォルトの名無しさん
2018/08/28(火) 16:02:01.79ID:eDasHWl3
んなこたぁない。
61デフォルトの名無しさん
2018/08/29(水) 09:39:33.95ID:t35BnR1i
python3m ってなんですか?
62デフォルトの名無しさん
2018/08/29(水) 10:09:58.87ID:zNgJ3vFs
住友と関係が?
63デフォルトの名無しさん
2018/08/29(水) 17:38:59.31ID:zHN7x4pt
xmlの属性を指定する場合、以下のどっちも同じ答えを返してくれるんですが、どっちで書くのがいいんでしょうか?

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

パターン2
duration2 = int(root.get("dur"))
print(duration2)
64デフォルトの名無しさん
2018/08/29(水) 19:50:21.16ID:+JD/mPB3
BeautifulSoup前提で喋ってます?
もしそうなら、属性が存在する限りどちらでもよい
getは属性が存在しないときNoneを返すが、attribはそうではない
まあ試してみ
65デフォルトの名無しさん
2018/08/29(水) 19:54:41.40ID:zHN7x4pt
>>64
どうもありがとうございます
xml.etree.ElementTreeです
たしかに存在しない場合の挙動は違ってました
66デフォルトの名無しさん
2018/08/29(水) 21:03:23.42ID:LyGOIS06
すいません日付の計算で疑問なんですが、

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になるのがなんか疑問です。
それとも記述に問題あるでしょうか。
67デフォルトの名無しさん
2018/08/29(水) 21:09:31.82ID:GQLl9uCt
>>66
3.0-3.1=-0.1だろう?0じゃないだろう?
そういうこった
68デフォルトの名無しさん
2018/08/30(木) 10:23:36.80ID:S/vwwZyF
int()とかと一緒か
[0.5]=0
[-0.5]=-1
69デフォルトの名無しさん
2018/08/30(木) 21:55:04.51ID:hf8/OGEv
>>67
すいません、分からず…

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

>>68
int()だと、正も負も小数点以下切り捨てではないですか?
70デフォルトの名無しさん
2018/08/30(木) 21:59:01.86ID:Ffnu7dR5
>>69
68が言ってるようにたぶん四捨五入なんだず
71デフォルトの名無しさん
2018/08/30(木) 21:59:56.98ID:Ffnu7dR5
おっと 1時間でも -1ってでるのか
じゃあ
時間は切り捨てじゃなくて四捨五入でもなくて切り上げになってんだ
72デフォルトの名無しさん
2018/08/30(木) 22:19:45.36ID:Ffnu7dR5
おっと
おれのうしろで
おれのいもうとが
「そのマイナス1はエラー値であって 数値じゃない diff.daysはぬるぽしない」
といっている
73デフォルトの名無しさん
2018/08/30(木) 22:29:53.78ID:Ffnu7dR5
それから
なぜ print(date_diff)してみないんだ
ともいっている
74デフォルトの名無しさん
2018/08/30(木) 22:42:08.44ID:Ffnu7dR5
おれは
aaa_date + date_diff
をためしてみてから、
timedeltaについての説明を読みに行くことを最終的におすすぬする。
75デフォルトの名無しさん
2018/08/30(木) 23:01:55.56ID:TEO8FkA/
別マシンで書いたスクリプトを動かそうとしたら
dateutilが無いと言われ実行出来ません。

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

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

dateutilはどこで入手するんでしょうか?
76デフォルトの名無しさん
2018/08/30(木) 23:04:27.25ID:TEO8FkA/
すみません
pip で dateutilsを入れたら使えました。
77デフォルトの名無しさん
2018/08/31(金) 04:09:39.70ID:rWvqNQHt
python 3.6
windows10

import pyautogui

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

と書くと右クリックのあとマウスが動いてくれない。
これはライブラリのバグ?
78デフォルトの名無しさん
2018/08/31(金) 04:37:56.39ID:rWvqNQHt
ごめん動いてた
79デフォルトの名無しさん
2018/08/31(金) 09:38:10.61ID:cxARIA2x
罰としてお前の突起という突起をクリックしてやる
80デフォルトの名無しさん
2018/08/31(金) 19:38:51.59ID:IH56D7c/
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だけを出力する関数ってありますか?

続く
81デフォルトの名無しさん
2018/08/31(金) 19:39:30.70ID:IH56D7c/
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

つづく
82デフォルトの名無しさん
2018/08/31(金) 19:40:14.75ID:IH56D7c/
文字列を分割してその中の一部を取り出す方法ですが、
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の共有リンクを取得したり確実な文字列の分割方法を知りたいです。
83デフォルトの名無しさん
2018/09/01(土) 12:32:11.32ID:Z1lBiRzX
>>82
ずいぶん遠回りしてるけど、
a=dropbox.Dropbox(トークン).sharing_create_shared_link
として、
a.url
を参照すれば良いのでは?
他についても
a.path とかで参照できるはず
84デフォルトの名無しさん
2018/09/01(土) 15:22:01.82ID:5RO4iQNV
すいません、ハマって困っています。

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)
85デフォルトの名無しさん
2018/09/01(土) 15:26:08.43ID:VfnjVYeD
BOMついてないか
86デフォルトの名無しさん
2018/09/01(土) 15:37:12.61ID:kUpkBQ3x
echo 1 | ruby -e 'STDIN.each { |line| puts(line.to_i + 1) }'

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

Python でも同じように、1-liner でやってみれば?
87デフォルトの名無しさん
2018/09/01(土) 15:55:11.65ID:A/mNPeDe
>>84
open("sample.txt", encoding="utf-8-sig")

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

中略
> もし、そのようなファイルを読む場合には、この印を自動的にスキップするために 'utf-8-sig' コーデックを利用してください。
https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data
88デフォルトの名無しさん
2018/09/01(土) 16:02:39.43ID:kUpkBQ3x
プログラムでは、BOMなしUTF-8 (UTF-8N)を使った方が無難

その代わり、Windows のExplorer ではテキスト検索できなくなるから、
Windows10・WSL・Ubuntu から、grep してる
89デフォルトの名無しさん
2018/09/01(土) 16:30:27.70ID:eWdCnGo4
>>83
どうもありがとうございます!
.urlなどで簡単に取り出せました。
これはdropboxのライブラリの機能でしょうか?
90デフォルトの名無しさん
2018/09/01(土) 16:55:46.47ID:5RO4iQNV
>>85, 86, 87, 88
ありがとうございます。
BOMが原因でした。

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

使うメソッドとかについてはドキュメント読むと今回みたいなことはすぐ分かるだろうし、勉強にもなるよ
92デフォルトの名無しさん
2018/09/01(土) 23:59:25.43ID:eWdCnGo4
>>91
.sharing_create_shared_linkはドキュメントの中で見つけた関数なんですが、英語分からないから試行錯誤していました
ありがとうございます
93デフォルトの名無しさん
2018/09/02(日) 05:35:01.36ID:0w6R8dvF
Python初心者(プログラミング初心者)です。
スクレイピングをしようとしていたら躓いてしまったので質問をさせてください。
requestsで変数htmlに入れたサイトのhtmlをファイルに保存したいのですが良く分かりませんでした。
file.writeみたいなのも書いてみてるんですがエラー吐かれたりします。誰か例として作ってくれませんか?
requests.getで変数htmlに取得したサイトhtmlをc:/user/hoge/Documents/hymlfile.htmlに追記モードで保存したいです。
無能でごめんなさい助けてください。
94デフォルトの名無しさん
2018/09/02(日) 07:13:26.28ID:5WqNet32
File.open(file_path, 'a') { |io| io.write text }

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

a なら追記書き込み

「python file write」で検索!
95デフォルトの名無しさん
2018/09/02(日) 08:24:22.51ID:GLq4HnWW
import requests

r = requests.get("https://www.python.org";)
f = open("c:/user/hoge/Documents/hymlfile.html", "a")
f.write(r.text)
96デフォルトの名無しさん
2018/09/02(日) 09:00:47.26ID:0w6R8dvF
>>95
てゃんks
無事解決しました本当にありがとう
やっと眠れtる
97デフォルトの名無しさん
2018/09/02(日) 16:47:00.30ID:RE+xVvI9
f.write(r.text)

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

スクレイピングしたサイトに絵文字があると(?)このエラーが起こるようです。
エンコーディングの関係だと思うんですけど対処法分かる方いますか?
UnicodeEncodeErrorで調べたら解説しているところが少し見つかったんですが僕には何が言いたいのかさっぱりでした。。。。
98デフォルトの名無しさん
2018/09/02(日) 16:56:55.96ID:RE+xVvI9
f.openの時にencoding='utf-8'渡したら解決しました!!
うれしい!!!ありがとう
99デフォルトの名無しさん
2018/09/02(日) 16:59:32.33ID:5WqNet32
cp932 はやめて、BOMなしUTF-8(UTF-8N)で書き込めば?

それか、エンコード変換できない文字は、
エラーにせずに、? に置き換えるとか
100デフォルトの名無しさん
2018/09/02(日) 17:49:53.80ID:B4IY8jcq
ElementTree、lxml、BeautifulSoupってそれぞれどう違うの?
101デフォルトの名無しさん
2018/09/02(日) 17:51:26.55ID:B4IY8jcq
ElementTreeは純正
lxml、BeautifulSoupはサードパーティ

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

って感じ?
102デフォルトの名無しさん
2018/09/02(日) 19:12:56.97ID:dvfcpVZJ
何が言いたいのか
103デフォルトの名無しさん
2018/09/02(日) 19:26:55.59ID:/VgxTU/I
開けっ放しにするんはいけんよ
104デフォルトの名無しさん
2018/09/02(日) 20:28:17.67ID:NdoNeabl
lxml 言う程速さを感じないんだよな
105デフォルトの名無しさん
2018/09/03(月) 01:13:17.00ID:IUTdxFc1
import requests
from lxml import etree

url = http://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="くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚 ; height="60" width="60"alt="ふじこ"></td> </tr></table><br />
<br /> あいうえお<br />かきくけこ
<br /><br /> 番組Webサイト:<a href="http://example.com/";>http://example.com/<;/a><br />
メッセージフォーム:<a href="http://example.com/mail.html";>http://example.com/mail.html<;/a><br />
<br /></div>

がプリントされます。(投稿できなかったので途中で改行してます)
次に、本文はどうやって取り出すんでしょうか?
106デフォルトの名無しさん
2018/09/03(月) 01:49:47.20ID:BfF9DJB1
要素の内側のテキストを収集するためには、itertext() を参照してください。例えば "".join(element.itertext()) のようにします。
107デフォルトの名無しさん
2018/09/03(月) 19:12:05.50ID:ttVcJTrG
Ruby のNokogiri なら、CSS セレクター・XPath とか

jQuery でも、CSSセレクター
108デフォルトの名無しさん
2018/09/06(木) 00:43:50.19ID:YKdnoVr6
```python
hstg = info.get('hashtags')
print(hstg)

# hashtag

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

p_urlの行をget()だとどう書けばいいですか
辞書にアクセスした時存在しないキーだとNoneを返したいんでget()を使いたいんですが
109デフォルトの名無しさん
2018/09/06(木) 01:06:41.32ID:9wgcxN1e
ようわからんが
info.get('url', {}).get('short')
とか?

若干無駄があるがこの程度の無駄が気になる神経症はCでも書いとけ
110デフォルトの名無しさん
2018/09/06(木) 02:03:26.11ID:YKdnoVr6
>>109
どうもありがとうございます!
試してみます。
{}の中に'short'が入るイメージでしょうか?
111デフォルトの名無しさん
2018/09/06(木) 14:42:12.77ID:tPMc56fx
馬鹿はオウム返しですぐ次の質問するよね
112デフォルトの名無しさん
2018/09/06(木) 15:13:17.47ID:QdhwFBW3
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が入れ替わりません
原因は何でしょうか?
113デフォルトの名無しさん
2018/09/06(木) 16:49:56.62ID:ntAiYVJq
インタプリタ言語最強
114デフォルトの名無しさん
2018/09/06(木) 17:12:39.45ID:QdhwFBW3
>>112
rootにbindしたらいけました
すみません
115デフォルトの名無しさん
2018/09/06(木) 18:22:16.04ID:t3mpF7WK
VSCodeの「ターミナルで選択範囲/行を実行」って機能をよく使うんですけど
作ってる最中のfor文内(1行目がインデントしてるテキスト)をテストしたいときは
インデントを一時的に消して実行するしか無いんですかね?

IPythonなら1行目がインデントしてても実行してくれるけど
あれはターミナルにフォーカスを移してEnterを押さないと実行してくれないのが不満だし
116デフォルトの名無しさん
2018/09/06(木) 18:56:40.11ID:r2CzgwVn
馬鹿はオウム返しって言うの好きだよね
117デフォルトの名無しさん
2018/09/06(木) 19:24:48.49ID:UI2giREj
VSCode の拡張機能のCode Runner を入れたら、
右クリックメニューから、そのまま実行できる

または、選択したコードを実行できる
118デフォルトの名無しさん
2018/09/06(木) 21:13:55.88ID:fyvsaEga
入門書で学んでるプログラミング初学者です。
数字以外を入力した場合に「不正な値です」と表示させたいのですが計算を間違えた際にも「不正な値です」と出てしまいます。
どこを直したらいいでしょうか?
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)
119デフォルトの名無しさん
2018/09/06(木) 21:16:02.79ID:r2CzgwVn
当っとるからええやん
120デフォルトの名無しさん
2018/09/06(木) 21:16:08.52ID:fyvsaEga
あれ、書き込みにインデントが反映されてない…
121デフォルトの名無しさん
2018/09/06(木) 21:33:42.86ID:rG7JeulO
>>120

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

>>1
122デフォルトの名無しさん
2018/09/06(木) 21:46:28.09ID:r2CzgwVn
>>118
真面目に添削すると

数字意外を入力した場合に「不正な値です」と表示する
→数字でないならそもそも値ではないやんか、何言っとんやわれ?なめとんか?
「不正な入力です」と表示する
→不正というワードは否定形なのでわかりにくい
「間違った入力です」と表示する
→何が間違っているのかわからない
「数字以外の入力です」と表示する
→だからどうすれば良いのかわかりにくい
「数字を入力してください」と表示する
→漢数字でもええんか?
「答えになる数値を入力を入力してください」と表示する
→めっちゃわかりやすいやん!
123デフォルトの名無しさん
2018/09/06(木) 21:56:28.45ID:bpm1lb7O
>>118
assert使うといいよ
124デフォルトの名無しさん
2018/09/07(金) 00:32:30.89ID:hV93LKBw
>>121
すみません。テンプレ読み直します。
>>122
ありがとうございます。何気にすごく重要なことを教えてもらった気がする。
>>123
試してみます。
125デフォルトの名無しさん
2018/09/07(金) 16:30:33.98ID:DKf48tK4
>>122
イイネ!(・∀・)ワロタヨ!
126デフォルトの名無しさん
2018/09/07(金) 17:07:52.42ID:82uhpEUK
>>118
valueはstrだから、たとけ入力されたのが"123"とかの数'字'であってもtypeはstrになる
つまり、自分で明示的に型変換をしない限り何を入力してもtype(value)==intが成り立つ事はない

入力を受け取ったらまず最初にvalueをintに型変換したら?
int(value)でできるし、変換できない文字列が入って来たらエラーになるので例外処理で不正な入力も検知できるよ
127デフォルトの名無しさん
2018/09/07(金) 17:26:59.78ID:po/zaTpZ
たとけ
128デフォルトの名無しさん
2018/09/07(金) 18:10:30.75ID:DKf48tK4
たとけ
129デフォルトの名無しさん
2018/09/07(金) 18:16:00.07ID:QgSvA/nW
とたけけ
130デフォルトの名無しさん
2018/09/07(金) 20:30:20.91ID:DKf48tK4
とたけけけ
131デフォルトの名無しさん
2018/09/08(土) 02:42:10.64ID:zJ7GwxeF
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』 が 『大けが』 のレコードがあるか無いか知りたいんですが、当たり前だけどこれだとダメでした。どうやってあるかないかを調べたらいいんでしょうか?
132デフォルトの名無しさん
2018/09/08(土) 03:07:51.29ID:zJ7GwxeF
自己レスです。
これで出来たっぽいけど他にもっといいやり方ありますか?


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)
133デフォルトの名無しさん
2018/09/08(土) 07:56:53.17ID:aeU58kvm
>>126
丁寧にありがとうございます。
なるほど…例外処理でやってみます。
134デフォルトの名無しさん
2018/09/08(土) 08:21:40.63ID:BJl7Ln5g
こんにちは。
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環境が必須になっています)
135デフォルトの名無しさん
2018/09/08(土) 08:54:48.94ID:LzkjeqyB
>/cygdrive/c/pycharm_doc/test001/c:/pycharm_doc/test001/main.py

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

/mnt/c/Users/Owner/Documents

Ubuntu側から、WindowsのDocumentsフォルダへアクセス
136デフォルトの名無しさん
2018/09/08(土) 09:21:46.04ID:r9+/L/Cg
>>132
試さずに書くけど、元のコードのfindをfind_oneに変えるか、
元のコードの条件文をif len(results) > 0:に変えれば動くんじゃない?
137デフォルトの名無しさん
2018/09/08(土) 10:40:12.37ID:BJl7Ln5g
>>135
ありがとうございます。
もしかしたら、リモート(ssh)で接続するのが正解か?と思い始めました。
どうでしょうか。
138デフォルトの名無しさん
2018/09/08(土) 12:03:41.47ID:TO1NWAp1
変数名つける時って何語くらいまででつけますか?
詳しく説明すると長くなるし、短いとかぶるし、省略とか頭文字みたいなのは良くないらしいですが
参考文献とかあったら教えてほしいです。
139デフォルトの名無しさん
2018/09/08(土) 12:43:49.56ID:cbJtO1ny
リーダブルコードでも読んでこい
140デフォルトの名無しさん
2018/09/08(土) 21:24:47.08ID:JF6Ma/9C
標準ライブラリとかメジャーなフレームワークコードのコード読んで好きなの選べばいいじゃん
141デフォルトの名無しさん
2018/09/08(土) 23:13:29.87ID:fPoBP/2C
>>138
頭文字で名付けても手にとるように意味がわかるコードが良いコードやね
142デフォルトの名無しさん
2018/09/09(日) 11:20:55.79ID:kzlGF2pO
ジェーン台風のJって台風10号だってすぐ判るネーミングやね
143デフォルトの名無しさん
2018/09/09(日) 16:08:53.74ID:pN0oDaL+
rssを表示したいんだけど、行末が『ます。』のものだけを表示することにしてます。もし、1行も『ます。』がなくて表示すべきものが全く無かった場合は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)
144デフォルトの名無しさん
2018/09/09(日) 16:26:44.95ID:XnExmf42
5chは連続する半角スペースを消してしまうから
インデントが崩れる

(インデント崩さず)ソース貼れるサイト
https://pastebin.com/ ペーストビン
https://ja.osdn.net/pastebin/ OSDNコピペ ログインしないで投稿すると一週間で自動削除
145デフォルトの名無しさん
2018/09/09(日) 16:33:13.24ID:pN0oDaL+
どうもすみません
以下のコードです
https://pastebin.com/PCvvn322
146デフォルトの名無しさん
2018/09/09(日) 17:06:15.73ID:0ym3cmgA
counter = false

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

もし、counterがfalseのままなら{ 処理 }
147デフォルトの名無しさん
2018/09/09(日) 17:17:25.83ID:pN0oDaL+
>>146
どうもありがとうございます
うまくいきました。
148デフォルトの名無しさん
2018/09/09(日) 23:08:48.04ID:pN0oDaL+
forループの続きなんですが、「to」が「imanoJikan」よりも先の項目が見つかったら直近のひとつだけ取得してループを終了させる方法おしえてほしいです

https://pastebin.com/hUp7pyTB
149デフォルトの名無しさん
2018/09/09(日) 23:26:11.91ID:sFuHefah
printの下に同じインデントで
break
150デフォルトの名無しさん
2018/09/09(日) 23:29:15.01ID:pN0oDaL+
>>149
おおお!
ありがとうございます
151デフォルトの名無しさん
2018/09/10(月) 00:27:49.39ID:8UsAQXCT
えぇ…
152デフォルトの名無しさん
2018/09/10(月) 08:53:06.79ID:iZVjiAgO
python卒業します
これからはjsと戯れます
153デフォルトの名無しさん
2018/09/10(月) 08:54:23.89ID:iZVjiAgO
さようならみんな
sys.exit()
154デフォルトの名無しさん
2018/09/10(月) 09:37:57.70ID:SBVp+ZlE
達者で
155デフォルトの名無しさん
2018/09/10(月) 13:25:23.61ID:nF+UxiuD
>>152
え!え?
そこは、普通 jsではなく
juliaだろ?

println("Hello julia")
女子小学生より31歳のお姉さまだろ、普通
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
156デフォルトの名無しさん
2018/09/10(月) 18:29:25.45ID:C7zSAi11
subprocessで実行したコマンドの出力の最後の1行と終了ステータスを取得する方法教えてください!
157デフォルトの名無しさん
2018/09/10(月) 20:00:58.83ID:7UcGX0Ag
>>155
整形サイボーグっぽいですね
普通の人間がいいです
158デフォルトの名無しさん
2018/09/10(月) 20:04:57.98ID:ZkfvzKVs
>>156
subprocess.run()でコマンドの出力と終了ステータスを取得できる
https://docs.python.jp/3/library/subprocess.html

最後の1行は改行文字でsplitして一番最後を取れば良い
159デフォルトの名無しさん
2018/09/10(月) 20:08:23.29ID:t8KSuPE1
>>156
サブプロセスは最後に終了ステータスを吐くように記述しておく

pipeをつくる
終わる前にpipeから出力を全部とってきて
最後の2行(最後の1行+終了ステータス)以外はポイする
160デフォルトの名無しさん
2018/09/10(月) 20:09:03.35ID:t8KSuPE1
>>158
ケコ━━━━(・∀・)人(・∀・)━━━━ン
161デフォルトの名無しさん
2018/09/10(月) 23:14:11.21ID:068EZbdc
python 3.6.3 最新のpandas

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

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

.csvファイルからデータを読み込んでます
表示させると、こんな感じになります。index3以下は数値で埋まってます
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
162デフォルトの名無しさん
2018/09/10(月) 23:21:28.90ID:zuFyRahU
df.drop(df.index[0])
163デフォルトの名無しさん
2018/09/11(火) 07:33:52.50ID:0W5Zv88y
>>162
そうすると、消えちゃうと思います
消さないように条件指定したいです
164デフォルトの名無しさん
2018/09/11(火) 08:19:03.98ID:bezMNa3/
そうか
なら死ぬまでやってな
165デフォルトの名無しさん
2018/09/11(火) 09:27:36.32ID:0W5Zv88y
csvから数値を取り出してるのに、str型とint型は比較できないとか言われる…

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

文法は合ってますよね?
>>161
166デフォルトの名無しさん
2018/09/11(火) 09:52:26.79ID:Y91dzGGO
>>165
>>165
すみません、df.drop(df.index[0])はしてます
167デフォルトの名無しさん
2018/09/11(火) 12:07:19.86ID:0Qtu/zKE
>>165
まちがってる希ガス
168デフォルトの名無しさん
2018/09/11(火) 13:17:25.77ID:tPkMAepR
パイソンやる気が起きないんですがどうしたらいいですか
169デフォルトの名無しさん
2018/09/11(火) 13:27:48.27ID:dcNBqXet
queryってラベル日本語okだっけ?
170デフォルトの名無しさん
2018/09/11(火) 13:34:14.95ID:dcNBqXet
あと
(体重 < 60)
queryってこのカッコっているんだっけ?
171デフォルトの名無しさん
2018/09/11(火) 14:29:20.23ID:MIcxujEr
>>167
ほんとですか…帰ったら見てみます

>>169 >>170
Shift jisでエンコードしてて、printfしたら普通に見られたのと、エラーも吐かなかったので大丈夫かとおもいます
()は参考サイト通りにやりました。()取ってもダメでした
172デフォルトの名無しさん
2018/09/11(火) 14:43:17.34ID:SPzv7yKx
プログラミングしたことない文系大学生なんですが、python始めるなら
pythonスタートブック増補改訂版
っていうのでいいですか?
173デフォルトの名無しさん
2018/09/11(火) 14:46:13.07ID:pwo3DQbp
無理
174デフォルトの名無しさん
2018/09/11(火) 15:35:17.46ID:MIcxujEr
>>171
dropでindex[0]を消して、一旦保存し、また開き直して、抽出したら出来ました
スレ汚しすみませんでした…
でも、すごく無駄なことをしてる気がする…

原因として、index[0]にある文字列のせいで、下の数値も文字列として認識しちゃってた可能性が浮かびました
だから、開き直したらエラーも出ずに出来たんだと思います
ちなみに、reset_index も意味無かったです
175デフォルトの名無しさん
2018/09/11(火) 16:45:24.82ID:SPzv7yKx
>>173
昨日
print("〜〜") っていうの覚えたレベルなのですが、無理なのですか?
176デフォルトの名無しさん
2018/09/11(火) 18:16:29.60ID:YvR5RO13
生きるのにも向いてねえよ
はよ死ね
177デフォルトの名無しさん
2018/09/11(火) 18:25:17.89ID:p1uFk9aE
みんなのPython 第4版、2017

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

たのしいRuby 第5版、2016

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

他には、Progate などの教育サイトもある
178デフォルトの名無しさん
2018/09/11(火) 18:55:41.75ID:0Qtu/zKE
>>168
まず、PyのアイコンをA4サイズに拡大プリントします
179デフォルトの名無しさん
2018/09/11(火) 19:19:03.51ID:AZXlXK10
pipでインストールしたライブラリに不備が見つかったので変更を加えたのですが実動作に反映されません。

キャッシュの削除も試してみたのですが変わらず・・・
180デフォルトの名無しさん
2018/09/11(火) 19:19:31.34ID:cR5Dh89A
>>158
>>159
どうもありがとうございます。
返事遅くなってすみません。
ドキュメントが難しくて理解出来なくて。

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

これだと、NameError: name 'stdout' is not definedってなってしまいます。
181デフォルトの名無しさん
2018/09/11(火) 19:26:50.17ID:cR5Dh89A
>>180
aaa = subprocess.run(コマンド, stdout=subprocess.PIPE)
bbb = aaa.stdout.read()
ccc = bbb.split("/")[-1]
print(ccc)

こうやると
AttributeError: 'bytes' object has no attribute 'read'
このエラーでした
182デフォルトの名無しさん
2018/09/11(火) 19:43:31.84ID:cR5Dh89A
subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(subprocess.PIPE)

-1がプリントされるんですが、-1とはなんですか?
183デフォルトの名無しさん
2018/09/11(火) 19:54:36.58ID:cR5Dh89A
何度もすみません。

>>> 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
となりました。
184デフォルトの名無しさん
2018/09/11(火) 20:13:26.71ID:cR5Dh89A
自己レス
引数に『universal_newlines=True」を追加したら大丈夫みたいでした。
185デフォルトの名無しさん
2018/09/11(火) 21:54:28.05ID:LBODaWXG
>>172
それで良いと思うよ、ガンガレ
186デフォルトの名無しさん
2018/09/11(火) 22:09:09.67ID:SPzv7yKx
>>176
ひどくないですか?流石に

>>177
ありがとうございます
progateというのは知り合いからオススメされてました
見てみます
187デフォルトの名無しさん
2018/09/11(火) 22:09:33.55ID:SPzv7yKx
>>185
あざす
188デフォルトの名無しさん
2018/09/11(火) 22:15:10.44ID:LBODaWXG
>>184
解決したならいいけど
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)
189177
2018/09/11(火) 23:32:02.26ID:p1uFk9aE
Python には、多くの多言語の著者も、参入してる

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

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

「スッキリ」「猫でもわかる」は、まだ参入していない
190デフォルトの名無しさん
2018/09/11(火) 23:57:02.57ID:UiecLNUs
みんなの〜がいいのか

Pythonチュートリアル買っちゃった
191デフォルトの名無しさん
2018/09/12(水) 00:04:21.73ID:Qysc30q7
>>188
どうもありがとうございます
decode()でも取り出せました。
universal_newlinesつけるのと、decode()とで、中の処理はなにが違うんでしょうか?
192デフォルトの名無しさん
2018/09/12(水) 00:39:20.04ID:NOD5QCpZ
>>980
次スレ立てるときはテンプレに下記文言の追加よろしく。

本スレでRuby本を薦めたりRubyコードを貼ることを禁止します
193177
2018/09/12(水) 00:40:25.77ID:pVbQPMMe
Guido の「Pythonチュートリアル」は、ほとんど内容が無いw

詳細は何々を参照してください、ばっかりw
194デフォルトの名無しさん
2018/09/12(水) 00:59:48.52ID:2r/3byF9
Pythonで以下のようなことは私のような超初心者でも可能でしょうか?
当方VBAとJavaをちょっと(API未経験)な程度のスキルしかありません

1 テキストファイルに書かれたアドレスのページを順番に保存
2 特定のページを開きその先にあるリンクを定期的に保存
例えば定期的に気象庁の地震速報一覧のページをまず読み、
https://www.jma.go.jp/jp/quake/quake_sindo_index.html
こちらにある地震の揺れ日時リンクのリンク先
例:https://www.jma.go.jp/jp/quake/20180911100918353-11190739.html
などを全て保存したいです
今は手動で保存しています
195デフォルトの名無しさん
2018/09/12(水) 01:06:18.26ID:m5YCt3ez
matplotlibで波形を出力したいのですが
a = [1,2,3,4,5,6,…,16,17,18,19,20]という配列があった時に
偶数値から奇数値の間の線を赤,奇数値から偶数値の線を青
というように条件付で一部色を変えながらplotすることはできるのでしょうか?
196デフォルトの名無しさん
2018/09/12(水) 01:32:48.47ID:2r/3byF9
>>194です
保存方法はテキストだけの形式と画像含めたmimeフォーマットでできないでしょうか?
情報後出しで申し訳ないです
197デフォルトの名無しさん
2018/09/12(水) 02:21:34.30ID:Fp0BM1OM
>>196
取り敢えずPython スクレイピング で検索してみて
試してみたら?
一回なら1requestとbeautifulsoupが情報が多い
定期ならScrapyが良いのかな?
198デフォルトの名無しさん
2018/09/12(水) 02:26:40.00ID:pVbQPMMe
簡単なクローラーは、wget

他には、Ruby のMechanize とか

もっと複雑な、JavaScript でページを作っているような動的なページは、
Ruby でSelenium WebDriver で、ブラウザを操作する
199デフォルトの名無しさん
2018/09/12(水) 06:29:26.14ID:niWPqMtZ
>>189
まだJuliaには参入してない。
200デフォルトの名無しさん
2018/09/12(水) 07:04:54.42ID:9GMFh4Pp
今年はJuliaとかDartとか
もう終わりかかってるような奴の復活宣言が多い
201デフォルトの名無しさん
2018/09/12(水) 13:04:47.85ID:wa3fqHL8
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となる理由もわかりません
202デフォルトの名無しさん
2018/09/12(水) 20:43:31.59ID:krza25ay
それよりも基礎やれよ
関数も分からんのだろお前
203デフォルトの名無しさん
2018/09/12(水) 21:26:10.04ID:T/3USJ28
スペック
プログラム未経験JK
退屈なことはPythonにやらせようを買ったけど難しくて入門Python3を買った
退屈なことよりも分かりやすいけどやっぱり難しい
スタートブックにしたらよかったぜ
204デフォルトの名無しさん
2018/09/12(水) 21:38:01.53ID:pVbQPMMe
>>194-198
「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 内だけで動くように、リンクを相対パスに変換する
205デフォルトの名無しさん
2018/09/12(水) 21:40:29.26ID:pVbQPMMe
>>203

>>189
に書いてある
206デフォルトの名無しさん
2018/09/12(水) 21:42:05.84ID:T/3USJ28
>>205
地雷一覧?
207デフォルトの名無しさん
2018/09/12(水) 23:06:58.17ID:2r/3byF9
>>197
>>204
ぐぐって勉強します
ありがとうございました
208デフォルトの名無しさん
2018/09/13(木) 00:31:00.11ID:ECzOVYUy
test
209デフォルトの名無しさん
2018/09/13(木) 00:33:41.14ID:ECzOVYUy
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
210デフォルトの名無しさん
2018/09/13(木) 00:34:51.38ID:ECzOVYUy

テキストファイルで"a"で始まる行を"----"に書き換えようとしたのだが、
"----"が"a"で始まる行ではなくテキストの最後に追加されます。
f.writeでも同じ。
助け舟お願いします。
211デフォルトの名無しさん
2018/09/13(木) 00:41:01.41ID:ttzoAgZZ
ファイルサイズ変わるような途中の書き換えはできないので
素直に別ファイルに書き出しましょう
212デフォルトの名無しさん
2018/09/13(木) 00:41:04.65ID:X3zFvlHv
>>202
このレスは何が言いたいの?
213デフォルトの名無しさん
2018/09/13(木) 00:45:51.99ID:ECzOVYUy
>>211
そうなのか
サンクス
214デフォルトの名無しさん
2018/09/13(木) 03:04:18.35ID:TyIiud+k
>>212
そこまでバカなら5chより幼稚園がオススメ
215デフォルトの名無しさん
2018/09/13(木) 03:27:39.30ID:2ca+8xGJ
>>214
詳しく
216デフォルトの名無しさん
2018/09/13(木) 09:48:20.60ID:Ch5jIF+X
>>210
1行ずつ読み込むんじゃなく、read()で全部読み込んでまとめて置換して書き出したら?
217デフォルトの名無しさん
2018/09/14(金) 01:19:44.19ID:13WSTRRA
tqdmについて質問です。
ラジオで今放送されている番組情報を表示するスクリプトを作っててプログレスバーを付けたいです。
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

以下がそのコード一部です。これだとスクリプトを動かした時点がプログレスバーの0%の位置なんですが、
プログレスバーの0%の位置は番組開始時間、100%が終了時間、プログレスバー長さは現在の時間ってやる事で来ますか?
https://pastebin.com/BN0iYknv
218デフォルトの名無しさん
2018/09/14(金) 01:27:39.44ID:KCZmWOCp
なかなか面白い事やってるね
219デフォルトの名無しさん
2018/09/14(金) 01:54:22.66ID:Vmeq3cpR
Ubuntu16.4の環境下でPython3.6でFlask+uwsgiでRESTサーバ作っており、
そこでロギングで壁に当たってます。

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

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

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

いろいろ検証してるのですが答えが見つからず・・・ 知っているかたいれば教えて対策教えてください。
220デフォルトの名無しさん
2018/09/14(金) 02:15:35.00ID:13WSTRRA
>>218
変なことやってしまってますか?
221デフォルトの名無しさん
2018/09/14(金) 02:38:02.20ID:YQ1y2eFS
>>219
>正確に毎時0分に、ローテーションというのは無理なのでしょうか?
そういう設定があるのでは?

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

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

とにかく、ログローテーションの文書を読むしかないと思う
222デフォルトの名無しさん
2018/09/14(金) 03:25:15.25ID:KCZmWOCp
>>220
処理の仕方じゃなくて、目的がね
ラジオ番組の演目や進捗状況に活用って意味で
223デフォルトの名無しさん
2018/09/14(金) 03:58:34.22ID:13WSTRRA
>>222
ミュージックプレーヤーのようにプログレスバーがあると、コンソールでも動きが出ておもしろいかなと思ってつけてみようと思いました。
224デフォルトの名無しさん
2018/09/14(金) 13:03:14.11ID:7Qnl0jfy
Rubyの ruby -e ‘p “hello”’みたいのはPythonでどうやるの?
できたとしてインデントどうするのかわからんけど
225デフォルトの名無しさん
2018/09/14(金) 13:34:13.63ID:6AOpn7AN
>>217
tqdmは手動で動かすこともできるので、番組開始時間や現在の時間から計算した値をセットすればできる

with tqdm(total=番組の長さ) as pbar:
pbar.update(番組開始から現在までの経過時間)
#残りはfor等で適宜update
226デフォルトの名無しさん
2018/09/14(金) 14:31:48.36ID:GqHziv8p
>>224
シェルからってこと?
ruby言われてもわかんない

python3 -c 'for r in range(3): print("py")'
227デフォルトの名無しさん
2018/09/14(金) 17:19:47.96ID:13WSTRRA
>>225
どうもありがとうございます
forの書き方はこれであってますか?
https://pastebin.com/Aapebfqk
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
この書き方だと、スクリプトを動かしたすぐは0%のままで経過時間分のバーにはならず、forループの1回目が終わったら、経過時間をプラスした分メーターが進みました。

あと、プログレスバーの右側の
11372/14400 [10:18<50:51, 1.01s/it]
ってなってる所の表示を消したり変えたりする事も出来ますか?
tqdmのドキュメントにはプログレスバーの左側に文字を入れたりバーの色を変える方法は載ってたんですが右側の事は分かりませんでした。
228デフォルトの名無しさん
2018/09/14(金) 17:26:16.68ID:tz1WlCUG
>>226
おおthx
229デフォルトの名無しさん
2018/09/15(土) 10:47:39.63ID:Rbm//AmR
みんなのpythonという参考書を終えたのですが次にやるレベルの参考書教えてくれませんか?
230デフォルトの名無しさん
2018/09/15(土) 10:54:49.48ID:0IDKpbCI
https://www.packtpub.com/packt/offers/free-learning

タダやし好きなのをどうぞ
231デフォルトの名無しさん
2018/09/15(土) 11:20:31.39ID:WA7DfSYz
英語…
232デフォルトの名無しさん
2018/09/15(土) 11:38:53.49ID:AVfR6YnT
thx
233デフォルトの名無しさん
2018/09/15(土) 12:08:10.76ID:enopwIka
英語だけで怯んでたら何も出来るようにならんぞ
234デフォルトの名無しさん
2018/09/15(土) 12:24:03.66ID:QOgSOXWg
>>229
何作りたいの?
人工知能ならゼロから作るディープラーニング
WEBアプリならdjangoの公式チュートリアル
235デフォルトの名無しさん
2018/09/15(土) 12:44:48.44ID:FXFGXSpW
>>229
職のためにやってるならDB、Django、AWS、Docker、HTML
趣味のためにやってるならスクレイピング、SQLite、PyGame

人工知能はあまりおすすめできない
大半の人間には難しいものだし、学習データを大量に用意できないと話にならんし
236デフォルトの名無しさん
2018/09/15(土) 12:57:03.70ID:eH38IGCF
>>227

pbar.update(keikaJikan)
の後に
pbar.set_description(refresh=True)
いれたら?
ドキュメントに詳しい記述がなかったので
うまくいくかわからないけど
237デフォルトの名無しさん
2018/09/15(土) 13:04:52.29ID:eH38IGCF
>>227
ごめんよく見たらrefresh()があった
set_description(refresh=True)
のかわりrefresh()入れてみて
238デフォルトの名無しさん
2018/09/15(土) 17:06:04.40ID:uTfOzQke
>>234
「みんなのpython」読んだばかりの初心者に、
その後すぐ「ゼロから作るディープラーニング」を勧めるのはどうかと
239デフォルトの名無しさん
2018/09/15(土) 17:20:15.56ID:Ek2iwFvX
>>227
そういう表示変更したいならprogressbar(2)のwidgets使ったほうが便利そう
240デフォルトの名無しさん
2018/09/15(土) 17:58:30.21ID:QOgSOXWg
>>238
そうかもね
でも名著なのば間違い無いでしょ
241デフォルトの名無しさん
2018/09/15(土) 20:08:55.40ID:jV44o+ul
>>235
何をやりたいかで変わるんじゃないの?
何も目的もなく、Python習得するわけじゃないだろうから
242デフォルトの名無しさん
2018/09/15(土) 20:12:40.41ID:8rxpHkWL
何をやりたいかで変わらんと悟るまでpythonチュートリアル何遍でも読み返しとったらええねん
243デフォルトの名無しさん
2018/09/15(土) 22:34:28.61ID:VdLZkjGs
この2冊は双子だから、両方読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

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

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

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

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

掌田津耶乃の、
Python Django 超入門、2018
Node.js超入門、2017
244デフォルトの名無しさん
2018/09/15(土) 23:45:55.32ID:3GwANLPp
みんなのGO言語は?
これは兄弟じゃないの?
245デフォルトの名無しさん
2018/09/16(日) 00:20:27.43ID:0MknoGjv
>>236、237、239
どうもありがとうございます!
その関数とprogressbar2について調べてみます。

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

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

Pythonで何が出来るのか分かっていないから他に何をやりたいという事が思いつかないので、学習のモチベも保てない。
マルチタスク?マルチスレッドについて学ぶために番組情報の表示と再生が出来るようにしたらいいですか?
もっと面白いことやりたいです。
246デフォルトの名無しさん
2018/09/16(日) 01:54:46.83ID:EK9e0hMh
女性なら「たのしいRuby 第5版、2016」をすすめる。
Rubyの女神・女優の池澤あやかも女性

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

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

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

Showroom のメニュー・アバターなども、うっとおしいから、それで消してる
247デフォルトの名無しさん
2018/09/16(日) 05:21:28.05ID:RAxt/rA1
Ruby勧めてどーすんの
248デフォルトの名無しさん
2018/09/16(日) 05:50:28.28ID:32fLF0l4
ガイジに一般的な思考で対応するな
249デフォルトの名無しさん
2018/09/16(日) 12:25:11.08ID:TMbORASx
とりあえず入門python3やります
250デフォルトの名無しさん
2018/09/16(日) 14:41:53.91ID:8ER5Tq3J
>>249
effective pythonにすれば?
251デフォルトの名無しさん
2018/09/16(日) 17:55:04.89ID:Zt4iEZ/q
ちわーくっそ初心者です。

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: 'あ'
252デフォルトの名無しさん
2018/09/16(日) 17:59:16.64ID:75aeC/cD
本気で言ってるのか
inputの位置とtryブロックの範囲をよく見ろ
253デフォルトの名無しさん
2018/09/16(日) 18:00:51.59ID:ynEgKPZ+
Python3のhttp.serverモジュールだけど
HTTP/2には対応しないのかな。
254デフォルトの名無しさん
2018/09/16(日) 18:20:04.63ID:MHdxl4uh
公式のチュートリアルでおk
255デフォルトの名無しさん
2018/09/16(日) 18:22:33.91ID:Zt4iEZ/q
>>252
アンタァ数時間におよぶ疑問を解決してくれた救世主だよ
ありがとうございました
256デフォルトの名無しさん
2018/09/16(日) 18:29:11.76ID:HF0YmRsW
これはひどい
257デフォルトの名無しさん
2018/09/16(日) 20:07:13.91ID:nqHAh3X3
こういうやり取りは良いと思うな
258デフォルトの名無しさん
2018/09/18(火) 12:20:43.82ID:IalC5NJv
>>209の様にファントを変えて投稿するには
どうするのですか?
259デフォルトの名無しさん
2018/09/18(火) 13:06:11.53ID:Gab8FMCl
>>258のビューワが勝手にASCIIアートと判断してるだけじゃね。
自分のビューワだと同じフォントに見えるよ
260デフォルトの名無しさん
2018/09/18(火) 19:28:18.62ID:5C+j+SZY
モジュールAからモジュールBをインポートすることでモジュールAのメソッドの定義を上書きしたいんだけど可能?
261デフォルトの名無しさん
2018/09/18(火) 19:36:01.79ID:32W6TMTL
モジュールAをインポートせずにモジュールBだけインポートすれば良いのでは?
262デフォルトの名無しさん
2018/09/18(火) 19:45:53.01ID:5C+j+SZY
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
―-
とかできない?
263デフォルトの名無しさん
2018/09/18(火) 20:15:26.82ID:3Z5SLW4f
そおゆうトリッキーな事はできないと思え
264デフォルトの名無しさん
2018/09/18(火) 21:34:34.65ID:3PaEdz0L
>>263
お前なら出来るだろ?
265デフォルトの名無しさん
2018/09/18(火) 21:34:50.63ID:5C+j+SZY
class C1:
 def f1(self):
  print(‘aaa’)

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

C1.f1 = f2

C1().f1() #=> ‘bbb’
はできるのに?
266デフォルトの名無しさん
2018/09/18(火) 21:44:32.07ID:3Z5SLW4f
>>265
そおゆうトリッキーな事は今すぐ忘れろ
それはできないのだ
267デフォルトの名無しさん
2018/09/18(火) 21:54:38.88ID:MzzhSWkv
C1.f1 = f2をm1でやるんじゃだめなんか?
268デフォルトの名無しさん
2018/09/18(火) 21:57:26.18ID:6b03zZt1
すいません、手でカチカチっとダブルクリックした方が
早いようなことをパイソンにやらせるのはどうしてでしょうか
269デフォルトの名無しさん
2018/09/18(火) 21:57:40.61ID:3Z5SLW4f
>>267
ダメにきまっとるやろw
バカはしばらく黙っとけw
270デフォルトの名無しさん
2018/09/18(火) 22:04:25.92ID:5C+j+SZY
テストの時にimportすると定義を上書きしてスタブを使うとかやりたいのだ
271デフォルトの名無しさん
2018/09/18(火) 22:07:14.79ID:3Z5SLW4f
>>270
トリッキーな事をしたかったらせめて自分で調べて理解できるようになってからやれ

これ以上はつきあわんぞ俺はまた無能に戻るからな
272デフォルトの名無しさん
2018/09/19(水) 00:05:43.10ID:McwJY1yY
>>271
結局何も情報提供してないのに無能に戻るとどうなっちゃうの?
273デフォルトの名無しさん
2018/09/19(水) 12:06:37.88ID:kBVhwTEM
>>262
C1を継承したクラスC2を作ってオーバーライドするのが真っ当だと思う

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

def f1(self):
print(‘bbb’)
274デフォルトの名無しさん
2018/09/19(水) 12:10:33.79ID:kBVhwTEM
>>270 を読んでなかったわ
275デフォルトの名無しさん
2018/09/19(水) 12:18:54.82ID:PupZqwJJ
最後に C1 = C2 で桶
276デフォルトの名無しさん
2018/09/19(水) 12:30:17.29ID:j0vZv9bU
>>268
そういう作業を何千回もやる可能性があるならプログラムにやらせたほうが楽で正確だから

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

単純にプログラムを書くのが楽しいから
277デフォルトの名無しさん
2018/09/19(水) 15:16:53.25ID:bRibFDbQ
pythonってVisualStudioで使えますか?
278デフォルトの名無しさん
2018/09/19(水) 17:57:22.09ID:2g+A18ll
>>277
使えるよ
使ってる奴あんまいないけど
279デフォルトの名無しさん
2018/09/20(木) 00:31:03.27ID:v2140bTt
ありがとうございます
言語変えるたびに環境変数とかいじったりって面倒臭そうなので
助かります
280デフォルトの名無しさん
2018/09/20(木) 09:49:06.07ID:dj+2oZ6y
大量にあるDataFrameのデータの日付が
Year, month, day, ...
という感じで各時間区分ごとに別れて入っているのですが、これをtimestampに変換するいい方法はありますか?
281デフォルトの名無しさん
2018/09/20(木) 10:51:05.31ID:fiW+YUJ7
>>280
とりあえずここを見て使えそうな処理を使えばいい
https://docs.python.jp/3/library/time.html

俺だったらテキストとして結合して、strptimeで処理するかな
桁揃えの必要があるならzfillを使う
282デフォルトの名無しさん
2018/09/20(木) 11:11:45.64ID:dj+2oZ6y
>281
ありがとうございます、テキスト結合→strptimeをforループで回してタイムスタンプのみの配列を作るのをやってみたんですが、レコードが数百万個あるので速度からすると数十分かかりそうでした。
forループを使わずになんとか早くする方法はないでしょうか?
283デフォルトの名無しさん
2018/09/20(木) 12:19:46.96ID:7WHuQIEO
numpyに入れる
284デフォルトの名無しさん
2018/09/20(木) 13:48:45.51ID:fiW+YUJ7
>>282
1回だけの処理なら中断保存・再開できる仕組みを入れつつ数十分ぐらい我慢しろ
何度も処理しなきゃいけないなら、処理が遅いPythonにやらせるべきじゃない
CやJavaみたいな処理が早い言語にやらせるべき

あと、リストを渡すと処理したリストを返してくれる関数は
内部的にはforループ使ってる
だから「forループを使わずに」なんて無理
285デフォルトの名無しさん
2018/09/20(木) 14:06:39.21ID:2iENFSTM
年月日がバラバラならtimestampのコンストラクタに年月日をそれぞれ渡したほうが多少は早いんでないの?
286デフォルトの名無しさん
2018/09/20(木) 14:55:31.07ID:tnMs4KBD
>>284
numpyみたいに内部的にはCで実装されてるライブラリもあるから使いこなせばPythonでも十分有望
287デフォルトの名無しさん
2018/09/20(木) 15:49:34.65ID:gMhM2k+x
>>284
面白いねw
288デフォルトの名無しさん
2018/09/20(木) 18:01:52.58ID:HnUdBV/V
WEBフレームワークにflaskを採用しようと思ってる超初心者プログラマーですが、flaskは仕事で一生使えるフレームワークなのでしょうか?
フレームワークに流行り廃りはあるのは承知ですが今学ぶならRailsみたいに人気のあるフレームワークを勉強した方がいいでしょうか?
289デフォルトの名無しさん
2018/09/20(木) 18:07:51.35ID:wnlFKUtW
自然言語で何語を勉強しようかと迷うのに似てる
290デフォルトの名無しさん
2018/09/20(木) 18:22:22.52ID:HnUdBV/V
>>289
何を選べば無難ですか?
291デフォルトの名無しさん
2018/09/20(木) 19:31:20.85ID:DBWB48iV
>>288
そもそもweb屋自体おまえが働ける間生き残り続ける可能性が低いんやからいらん心配せんで好きなんやれや
292デフォルトの名無しさん
2018/09/20(木) 21:45:31.05ID:Mlnbbzfh
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
293デフォルトの名無しさん
2018/09/20(木) 22:02:59.66ID:kFoauySG
>>290
Pythonを選ぶ時点で大冒険なので大差ない
294デフォルトの名無しさん
2018/09/20(木) 22:23:37.92ID:8Bepevhe
>>282の用途なら、juliaがいいんじゃないの?
って思った
Pythonのライブラリも呼び出せるし、移行はカンタン
CSV読み込み用の不特定な型の集合を扱えるDataFrames構造も使えるから
元々大規模なデータ解析の為にjuliaが作られたようなもの

荒らしになるだけなので、この辺で
295デフォルトの名無しさん
2018/09/21(金) 00:13:59.10ID:m8DL5ZJ4
>>288
掌田津耶乃
Python Django 超入門、2018
Node.js超入門、2017

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

本当は、シンプルサーバー・Sinatra などで、フルスクラッチで書いていくと、
フレームワークを自作するのと同じになるから、よくわかる
296デフォルトの名無しさん
2018/09/21(金) 07:37:02.86ID:PZuz7ukr
>>288ですが無難にrailsにすることにしました
色々相談に乗ってもらってありがとうございました
297デフォルトの名無しさん
2018/09/21(金) 07:47:52.29ID:IzrcU96S
それがよい
298デフォルトの名無しさん
2018/09/21(金) 08:34:45.57ID:OMTVor1h
>>296
念の為言っとくが295はpythonスレでruby宣伝を何度注意されても辞めないム版で有名なrubyガイジだからな
299デフォルトの名無しさん
2018/09/22(土) 13:39:42.64ID:xOVRbYWf
>>295
書き込みと売り上げが連動してるのか
宣伝乙
300デフォルトの名無しさん
2018/09/24(月) 02:48:42.15ID:6gosj3pF
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()
301デフォルトの名無しさん
2018/09/24(月) 08:23:14.19ID:hrySGkvz
>>295
掌田さんの本同じシリーズのNode.jsは読んだが
取っつきやすさはいいものの実用性は低いよな
あと付録のダウンロードサンプルが酷い
302デフォルトの名無しさん
2018/09/24(月) 08:52:45.17ID:WK7dhq80
>>300
多分だけどlambda使わないと
ボタンが作られた時点で関数が実行されて
メッセージボックスが開いてしまうんじゃないかな
303デフォルトの名無しさん
2018/09/24(月) 13:07:01.64ID:6gosj3pF
>>302
確かに使わない場合はそのような挙動になりました。
304デフォルトの名無しさん
2018/09/24(月) 17:20:23.86ID:WK7dhq80
lambdaの部分を普通の関数として書き換えると
def func():
def showMassage():
tkm.showinfo("info",entry1.get())
return func
これってコールバック関数といわれていて内側の関数は
イベントが発生した時(ボタンが押された時)しか実行されなくなる

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

コールバック関数を詳しく説明できる能力がないです、ごめんなさい
305デフォルトの名無しさん
2018/09/24(月) 17:30:21.36ID:Kttr1loZ
decorator
306デフォルトの名無しさん
2018/09/24(月) 17:37:31.00ID:y9vcPQXH
クロージャーで苦労じゃー
307デフォルトの名無しさん
2018/09/24(月) 18:41:43.61ID:otYBczLg
みんなのpython終わったばかりの初心者ですが画像認証はオライリーの本でいいですかね?
308デフォルトの名無しさん
2018/09/24(月) 18:53:58.73ID:QjVDfSuK
>>307
マルチポストする屑カスはしね
309デフォルトの名無しさん
2018/09/24(月) 19:20:04.62ID:otYBczLg
>>308
聞いただけなのに(´・ω・`)
310デフォルトの名無しさん
2018/09/24(月) 20:01:59.08ID:y9vcPQXH
>>307
画像認証はオライリーの本
これってどういう意味?
311デフォルトの名無しさん
2018/09/24(月) 20:07:48.74ID:QjVDfSuK
>>310
コピペにレスすんなし
http://2chb.net/r/tech/1529888279/685
312デフォルトの名無しさん
2018/09/24(月) 20:12:59.31ID:y9vcPQXH
>>311
マルチポストが気に入らんのならスルーしてりゃあいいじゃない
いちいちウザイよ
313デフォルトの名無しさん
2018/09/24(月) 20:32:11.67ID:QjVDfSuK
( ゚д゚) 、ペッ
314デフォルトの名無しさん
2018/09/24(月) 20:38:00.99ID:y9vcPQXH
>>313
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
315デフォルトの名無しさん
2018/09/24(月) 21:32:02.69ID:qyE/3qBT
>>304
騙されそうになったが、実質自分自身を返すだけで何もしない関数じゃないかw
316デフォルトの名無しさん
2018/09/24(月) 21:50:36.77ID:cIWp1XlU
>>300
>button1 = tk.Button(text="push",width=50,command=lambda:showMassage(entry1.get()))

そのボタンを押したら、その関数・ラムダが呼ばれるだけ。
ボタンを押したときに呼ばれる、コールバック関数を指定している
317デフォルトの名無しさん
2018/09/24(月) 22:24:49.58ID:y9vcPQXH
a = lambda x : x + 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))
318デフォルトの名無しさん
2018/09/24(月) 23:48:46.66ID:prONdPba
y未定義なのに、なにしてエラーにならんの?
319デフォルトの名無しさん
2018/09/25(火) 00:41:04.42ID:5k+bdXu1
>>304
いや、でもなんかすごく納得できました!ありがとうございます!
320デフォルトの名無しさん
2018/09/25(火) 00:43:35.28ID:5k+bdXu1
>>316
もありがとうございました。コールバック関数ググってみます。
321デフォルトの名無しさん
2018/09/25(火) 09:26:57.75ID:iE/DG1HY
すいません。初心者ですがpythonインストールしたのはいいんですが何も始まらないんです。プログラムを書き込むためのウインドウはどこから開けるんでしょうか?
322デフォルトの名無しさん
2018/09/25(火) 09:32:43.28ID:BC4c7eXL
Rubyガイジ出番だ
323デフォルトの名無しさん
2018/09/25(火) 11:28:20.97ID:l358aERP
>>282
Juliaでやりましょう。
324デフォルトの名無しさん
2018/09/25(火) 11:35:40.14ID:l358aERP
>>321
スタートメニューのIDLEをクリックしたらいいんじゃない。
325デフォルトの名無しさん
2018/09/25(火) 12:36:47.64ID:b0qq2JBy
>>324
成る程、WindowsからPythonを使おうとしてたのか
ウチはMacだから、ターミナルからPython3打ち込んでポチポチやってたから
出たしで躓くようなことなかったな
UIからPython使えるAppもあるけど、単にスクリプトファイルを実行させるだけだし

Windows版Jupyter noteはないのかな?
これなら、Web上でPythonのプログラミングもできるから
326デフォルトの名無しさん
2018/09/25(火) 12:47:18.17ID:+eWKZg0K
Google Collaboratoryでいいんじゃね
327デフォルトの名無しさん
2018/09/25(火) 12:56:01.17ID:iE/DG1HY
>>324
なるほど、Integrated DeveLopment Environmentというやつですね。スタートメニューからですか。探してみます。
ちなみにarduirno等マイコンにもpythonは使えますか?
328デフォルトの名無しさん
2018/09/25(火) 15:26:23.04ID:kqix37on
>>325
Windowsにjupyter notebookを入れてHello,Worldするまでのメモ
https://qiita.com/SouTakenaka/items/9801f30c2fd1a378518d
329デフォルトの名無しさん
2018/09/25(火) 15:31:19.89ID:kqix37on
>>327
PythonのIDLEの使い方の基本
https://gammasoft.jp/python/python-idle-basic-operation/
330デフォルトの名無しさん
2018/09/25(火) 18:08:08.89ID:kqix37on
>>327
【Python】Arduinoをシリアル通信で操作
https://algorithm.joho.info/programming/python/arduino-serial/
PythonでI/O制御ができるマイコンボード 「MicroPython pyboard v1.1」
http://select.marutsu.co.jp/list/detail.php?id=733
331デフォルトの名無しさん
2018/09/25(火) 19:53:56.20ID:nX2ocrcO
ありがとうございます。まだアルファベットを表記させるだけしか出来ませんがいずれはモーター等動かしてみるつもりです。
332デフォルトの名無しさん
2018/09/25(火) 22:31:30.68ID:3QVoU2wO
最近の月刊I/O見てないけど
pyboard特集やってそう
ラズベリーで工作しよう!な連載載ってたから

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

昔は、BASICやマシン語だったのに
333デフォルトの名無しさん
2018/09/26(水) 14:56:26.05ID:gW7INjNq
「算数&ラズパイから始めるディープラーニング」というのもあるな。
334デフォルトの名無しさん
2018/09/26(水) 18:57:46.78ID:cGc5yci5
pythonの2.7使ってるんだけど文字化けとかエンコとか面倒くさくない?
簡単なスクリプト書くだけなんでwinのコンソールから文字列受け取ってそれに合わせて多少処理変えてどうのこうのーてやるだけなんだけど
ideではエラー出んのにpyinstallerとかpy2exe使って配布する前に最後テストしたら文字化け頻発とかですごい混乱する
335デフォルトの名無しさん
2018/09/26(水) 19:03:39.24ID:DFsxHyBv
>>334
めんどくさいから
今からやるなら3系にしんさい
336デフォルトの名無しさん
2018/09/26(水) 19:31:13.27ID:cGc5yci5
>>335
仕事で使ってるsiem製品でスクリプト書いたりとかもするんだけど公式サポートしてるのが2.7らしく慣れるためにもとりあえず何でもかんでも2.7使ってる
けどやっぱり普段は3にして一部要求された時に2.7のが良いんかね
337デフォルトの名無しさん
2018/09/26(水) 20:56:35.83ID:DFsxHyBv
>>336
なんか事情があるなら仕方ない
2.7の文字問題に慣れたまへ
338デフォルトの名無しさん
2018/09/26(水) 20:57:51.04ID:DFsxHyBv
そして
2.7が時代遅れとなった際に
3なり4なりを学び直すのである・・・
339デフォルトの名無しさん
2018/09/26(水) 21:57:57.79ID:SlOVL1Du
学び直すというほど変わらんけどな2と3
340デフォルトの名無しさん
2018/09/26(水) 22:13:37.90ID:WQTU7aa+
>winのコンソールから文字列受け取って

2の時に比べたら全然マシだけど
他と連携したり、他から.py実行したりすると
3でも相変わらずエラー起きない?
まあ、対処法は見つけたので困ることはないけど
あ、ちなみにmacです
341デフォルトの名無しさん
2018/09/26(水) 23:12:45.83ID:+un+mAjX
マカーならやむを得まい
342デフォルトの名無しさん
2018/09/27(木) 00:27:16.96ID:Ft8D7cEG
頭悪いからな
343デフォルトの名無しさん
2018/09/27(木) 00:41:45.56ID:3K4WTrnL
>>334
2.7なら、標準の__future__パッケージの各モジュールをインポートすれば、
わざわざ'u'ふらずに済むし、3.*との違いはそれほど大きくない
344デフォルトの名無しさん
2018/09/27(木) 05:43:50.57ID:i5i/991d
>>338
python2のサポート2020年で来れるんだけど。
345デフォルトの名無しさん
2018/09/27(木) 07:07:01.03ID:L3kO3oQ5
>>344
もちつけ
346デフォルトの名無しさん
2018/09/27(木) 11:47:37.94ID:+X2PETpr
>>334
馬鹿には無理
347デフォルトの名無しさん
2018/09/29(土) 13:56:00.42ID:IuTgmxg/
pythonなんか頭悪いのしかつかってない
しかもただのスクリプトのくせに普通にそのまま動かないとか
どんだけ役立たずスクリプトやねんと
348デフォルトの名無しさん
2018/09/29(土) 15:44:00.08ID:5u9meNsM
こっちも荒らされてるのか
349デフォルトの名無しさん
2018/09/29(土) 16:03:41.88ID:UwfF5QN4
ここは初心者スレなんで、pythonを普通にそのまま動かせない半角みたいな初心者でも暖かく見守ってあげないと。
350デフォルトの名無しさん
2018/09/29(土) 19:05:41.87ID:/uKoNQUv
python絡みで嫌なことでもあったのかな
351デフォルトの名無しさん
2018/09/30(日) 15:37:29.45ID:A7oy0eHN
https://www.daxx.com/article/python-developer-salary-usa
アメリカで需要と平均給与トップとかにわかには信じ難いんだが
352デフォルトの名無しさん
2018/09/30(日) 16:39:57.82ID:eyIH13tv
にわかならしょうがないね
353デフォルトの名無しさん
2018/10/01(月) 15:27:24.26ID:2uLYuzSw
誰か、pythonista3 の 活用本発行して!!

絶対に売れる。
354デフォルトの名無しさん
2018/10/01(月) 16:46:09.34ID:2dwOGw6s
句読点の荒らし率は高いからこれに反応するレスがつくかつかないかで自演を判断できる
355デフォルトの名無しさん
2018/10/01(月) 21:46:25.11ID:tVJz3rsp
Python始めたいんやけど、何からやればいいんや
今かけるのはJavaとシェルスクリプトを業務システムレベルや
356デフォルトの名無しさん
2018/10/01(月) 21:58:34.22ID:ooXTjlBW
なにはなくともハローワールド
その次がファイル入出力
その次はたぶんそれだとテキスト置換の練習とか?

今から始めるなら3.x系にしておけ
357デフォルトの名無しさん
2018/10/01(月) 22:01:27.51ID:YZMrVKUg
Javaとシェルスクリプトを業務システムレベルやったらpythonなんて楽勝やろ
358デフォルトの名無しさん
2018/10/01(月) 22:03:49.06ID:tPw9Kpxi
>>355
他の言語で(自分で)書いたスクリプトをPythonでフルスクラッチするというのは、
一方をよく理解しているということも相まって、違いも比較できて結構勉強になるよ。

自分の場合2.xの頃から始めたので、結果として、3.xも同様にやる羽目になったけど。
359デフォルトの名無しさん
2018/10/01(月) 22:36:46.55ID:Mau1OsTK
paizaでスキルチェックやってみたら
360デフォルトの名無しさん
2018/10/02(火) 02:56:27.70ID:/QfTYNRi
たのしいRuby 第5版、2016
みんなのPython 第4版、2017

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

サイトのprogate でもよい
361デフォルトの名無しさん
2018/10/02(火) 06:20:21.08ID:XHPfCFYq
パイキチ、またPythonスレを荒らしだしたのか
マッチポンプは今時流行らないってば
362デフォルトの名無しさん
2018/10/03(水) 12:55:45.41ID:ULIaqVnE
保守上げ
363デフォルトの名無しさん
2018/10/03(水) 21:59:47.02ID:Tma5IQla
不思議なんだけど、どの言語を贔屓したいかは理解できるが他の言語を貶してなにか得することあるの?

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

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

単純にダークサイドに堕ちて、非建設的な争いを好む人が多いってことなの?
364デフォルトの名無しさん
2018/10/03(水) 22:02:02.48ID:NshUGL/I
>>363
まぁ現場で他人が書いた糞コードを見て苦労して言語自体にヘイトを溜めるっていうシチュエーションは少なくはないと思う
365デフォルトの名無しさん
2018/10/03(水) 22:22:52.23ID:BYNnNKG/
「くだすれPython」を「くたばれPython」と見間違えてるんだろうな
366デフォルトの名無しさん
2018/10/03(水) 22:26:57.33ID:b6hWRg0Q
アイデンティティを自分以外の事物や集団に委譲している奴はそうなる
その事物が傷つけられることはアイデンティティの危機となり、
事物が持ち上げられることはアイデンティティの強化になる
帰属意識が度を越したような奴だ
そんなに珍しくもない
367デフォルトの名無しさん
2018/10/03(水) 23:54:17.11ID:H62SNGUL
キモすれPython
368デフォルトの名無しさん
2018/10/04(木) 07:12:26.90ID:sNcNJ12C
Pythonが好きだからこそ他言語を挙げて叩くというマッチポンプをやりたいんだろうな
正直そんな理由でPythonスレを荒らすなよと
369デフォルトの名無しさん
2018/10/04(木) 09:39:44.00ID:uDQ1dvui
プログラマは知識マウントしたがる奴が多すぎて、初心者を鬱に追い込む件
370デフォルトの名無しさん
2018/10/04(木) 10:25:17.49ID:FXVBuQxV
VB/VBAとPHPは貶されて当然
371デフォルトの名無しさん
2018/10/04(木) 10:57:37.99ID:vhCji18k
>>370
貶されて当然とゆう事は断じてない
間違いなくペチパー、ジャバパー、そしておまえ、は現代の三大バカやけどw
372デフォルトの名無しさん
2018/10/04(木) 13:06:43.22ID:OaKCCsBZ
普通の荒らしかリアルでゴミみたいな扱いをされて俺の使ってる言語は凄くてそれを使える俺は偉い!他の言語使ってるようなやつはクソ野郎!ていう思考でも持っているのでは?
373デフォルトの名無しさん
2018/10/04(木) 13:18:44.19ID:b8j5ZQ1w
どっちみちこのご時世でマッチポンプに引っかかる奴はいないだろ
374デフォルトの名無しさん
2018/10/04(木) 15:24:58.18ID:7tiJnAAs
>>368
それはない。
pythonスレ以外でも全力でruby上げしてるガイジだぞ?
375デフォルトの名無しさん
2018/10/04(木) 19:16:10.73ID:VCC0vX9L
if文が複数できない・・・

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

これを入力したいのですが4行目でエンター押して毎回エラーになります・・・なぜ…?
376デフォルトの名無しさん
2018/10/04(木) 19:26:51.44ID:uDQ1dvui
print文のインデントは?
377デフォルトの名無しさん
2018/10/04(木) 19:28:37.16ID:VCC0vX9L
あっすみません インデントはしっかりやってました
正確にはこうですね 失礼しました

x = 2
if x == 2:
    print("数字は 2.")
if x % 2 == 0:
    print("数字は偶数.")
if x % 2 != 0:
    print("数字は奇数.")
378デフォルトの名無しさん
2018/10/04(木) 19:32:25.59ID:VCC0vX9L
ただこれでもエラーになるという・・・
ええ・・・if文ホントは複数無理なんじゃね・・・?
って心持です 参考書のままにやってるのに・・・

ちなみにバージョンは最新だと思います
3.7(32-bit)
379デフォルトの名無しさん
2018/10/04(木) 20:15:29.41ID:wVc7LVoj
ふーん
https://ideone.com/7vnM9W
380デフォルトの名無しさん
2018/10/04(木) 20:48:40.74ID:gfYLoY1b
>>378
2行目以降のifをelifに置き換える、が答えになると思う
一応そのままゴリ押しするなら一文ごとにelse:で閉じるでもできなくはないと思うが
381デフォルトの名無しさん
2018/10/04(木) 20:52:07.59ID:P6ujSYbe
なんで? 今のままでエラーなんか起きないだろ?
382デフォルトの名無しさん
2018/10/04(木) 20:58:51.04ID:S7+ANpdX
どんなエラー?
インデントにタブとスペースが混ざってたりしない?
383デフォルトの名無しさん
2018/10/04(木) 20:59:28.68ID:zeP0iUEY
コンソールでやらないで.pyファイル作れ
384デフォルトの名無しさん
2018/10/04(木) 21:11:59.01ID:lQWMlWLo
これは何とも面妖な
385デフォルトの名無しさん
2018/10/04(木) 21:43:29.94ID:DS3BxQCZ
エラーメッセージをエイリアン語か何かと思って無視する癖を止めたら、超初心者は卒業できると思うよ。
兎に角エラーメッセージを晒してね
386デフォルトの名無しさん
2018/10/04(木) 22:14:58.83ID:KoEltKNu
>>378
対話モードでやってるからエラーになるんだろうな
4行目を入力する前に空行を入力して
if文が終わったことを明示しなくてはならないかと
6行目のところも同じことがいえる
387デフォルトの名無しさん
2018/10/05(金) 01:03:06.71ID:/hQuS5mo
へえ、そうなんだ、知らなかったよ
388デフォルトの名無しさん
2018/10/05(金) 02:36:56.42ID:cxTW4oac
おまいら親切すぎる
なつかれたら面倒
389デフォルトの名無しさん
2018/10/05(金) 06:17:27.57ID:euHA0F3o
>>386
ありがとうございます 納得しました
次はエラーメッセージも晒します

>>388
人になつかれたことなさそうな人がなんか言ってて笑える
390デフォルトの名無しさん
2018/10/05(金) 07:00:21.00ID:37p1YF83
分からん。。。

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

ポジション取るんだけど、バックテストで資金が上昇してもロットは一緒。
>>389
391デフォルトの名無しさん
2018/10/05(金) 07:00:40.10ID:37p1YF83
誤爆した。。。
392デフォルトの名無しさん
2018/10/05(金) 10:49:11.38ID:kmGDPqXy
エラーメッセージそのままググるだけでもだいぶ違う
393デフォルトの名無しさん
2018/10/05(金) 11:22:51.52ID:vpbu8eze
なんで、コンソールなんか使うのか?

Ruby, Python でも、VSCode を使え!
拡張機能のCode Runner で、何も考えずとも、右クリックメニューから実行できるわい!
394デフォルトの名無しさん
2018/10/05(金) 11:59:37.83ID:zGlW4kB1
クリックとかしたくねえからだよ頭悪いな
395デフォルトの名無しさん
2018/10/05(金) 15:22:39.94ID:xGDGeoHe
関数呼び出しの構文について教えて欲しいんだけどさ
AAA(BBB: CCC)とAAA(BBB=CCC)って一緒なの?
396デフォルトの名無しさん
2018/10/05(金) 15:27:22.70ID:Ohnhdvdr
AAA(**{BBB: CCC})とAAA(BBB=CCC)
はホボ一緒だけど
関数の定義のされ方によっては違う
397遊園地 ◆ExGQrDul2E
2018/10/05(金) 15:40:53.24ID:oe8MXe/3
F5な。
398デフォルトの名無しさん
2018/10/06(土) 17:47:15.35ID:ClYVvTDI
djangoでゲーム作ってる方っています?
作ってるなら、どんな感じのゲームを作ってるか知りたいです

djangoでのwebアプリ制作の練習も兼ねて、ログインとかデータ保存のできるブラウザゲームを作ろうと思ってるところなんですが、個人でフレームワークを使っての開発は手に余るかな、と気になって…
JavaScriptの方が管理しやすいかなぁ
399デフォルトの名無しさん
2018/10/06(土) 17:57:08.71ID:e52HQVrn
どうみてもDjangoの方が楽
400デフォルトの名無しさん
2018/10/06(土) 18:03:47.60ID:WCVR4P9P
>>399
Dangoでゲーム?
フロントエンドどうすんの?
JS必須だろ
401デフォルトの名無しさん
2018/10/06(土) 18:22:42.90ID:ClYVvTDI
ほんとだ、結局JavaScriptが必要ですね
それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ…
402デフォルトの名無しさん
2018/10/07(日) 08:57:44.35ID:uCAn2+3z
言語より環境の方に縛られるという事だな
403デフォルトの名無しさん
2018/10/07(日) 12:13:18.81ID:Q039ezIc
既に環境を構築してあるDockerを使え
便利だぞ
404デフォルトの名無しさん
2018/10/08(月) 14:28:05.12ID:ofuYlJd2
webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます
pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます
jsonをcsvに変換する良い方法他にないですかね?
jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです
csvは10万行近くになります
405デフォルトの名無しさん
2018/10/08(月) 15:11:28.99ID:+5qyKWRv
元のjsonファイルと出力したいcsvのイメージ貼ってみ
406デフォルトの名無しさん
2018/10/08(月) 16:49:00.47ID:QZm1evdb
jsonはこんな感じにvisitの中身全部が欲しいです https://jsoneditoronline.org/?id=9ceece44f53c498e925b524305f23a33
csvはこんな感じくだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
keyがカラムで値がフィールド、actionsの中のthreatsが配列になってるのでその部分は複数行に分けて配列数分欲しいです
407デフォルトの名無しさん
2018/10/08(月) 19:20:19.69ID:0S7LCRH0
1レコードあたりの行数に目途が付くなら
単にテキストファイルをシーケンシャルに読んで
レコード毎にループして正規表現とかで処理するか
丸ごと一個のjsonを読むんじゃなくて
json の visits [] の中身だけに適用して
やっぱりレコード毎にループで処理
408デフォルトの名無しさん
2018/10/09(火) 11:08:24.97ID:ut46KIbF
ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ
409デフォルトの名無しさん
2018/10/09(火) 12:09:20.78ID:lquF7TGT
>>408
全体的にpandasは使わずに
正規表現などを使った自前の処理でカンマ区切りのテキストを生成して
テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね
ということ

あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか
"os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば
多少早くなるかも
410デフォルトの名無しさん
2018/10/09(火) 17:28:44.16ID:c0UbTvkE
jsonのobjectって結局馬鹿デカいリストだから
全部pandasに食わせるのは非効率
411デフォルトの名無しさん
2018/10/09(火) 19:09:14.17ID:QlHcI7ga
>>407
>>409
ありがとうございます
目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので…
pandasは勝手に軽いものと思ってたんですがそうでは無いのですね
もう少し自力で試しつつ、無理そうであれば別の方法探してみます
回答ありがとうございました
412デフォルトの名無しさん
2018/10/10(水) 01:28:49.68ID:cxHjn/W/
25000件で10万レコードって意味なら
1レコードあたりたったの4行だぞ
大したことないじゃん
413デフォルトの名無しさん
2018/10/10(水) 01:50:02.45ID:q9nqGoRh
恥ずかしい
414デフォルトの名無しさん
2018/10/10(水) 07:27:32.29ID:sjNy7la0
anaconda環境でnotepadでプログラム書くのできますか?
Jupiter使ったほうが良いでしょうか?
415デフォルトの名無しさん
2018/10/10(水) 07:48:52.41ID:qywSzTWT
メモ帳は、プログラミングに使ったらダメ!

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

今は、すべての言語で、VSCode を使う
416デフォルトの名無しさん
2018/10/10(水) 08:25:31.03ID:sQpJ1MsF
jupyterな
417デフォルトの名無しさん
2018/10/11(木) 05:13:12.70ID:MfMAF/GN
>>415
ありがとうございます。PCが古いので軽いの探します。
418デフォルトの名無しさん
2018/10/11(木) 06:05:36.88ID:4dmempzq
>>417
メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ
BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる
いろいろな言語の予約語の強調表示にも対応してる

TeraPad
https://www.vector.co.jp/soft/win95/writing/se104390.html
419デフォルトの名無しさん
2018/10/11(木) 08:09:45.65ID:MfMAF/GN
>>415
すいません、ありがとうございます。

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

英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。
なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。
420デフォルトの名無しさん
2018/10/11(木) 08:27:36.65ID:55KoDwWG
>>419
ログインし直す
421デフォルトの名無しさん
2018/10/11(木) 09:45:22.82ID:/KTbB4eS
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'

何がいけないんでしょうか?
422デフォルトの名無しさん
2018/10/11(木) 11:12:50.15ID:dGtKIiaR
'dict_keys' オブジェクトは 'sort' 属性をもっていない
sortメソッドはおそらくリストオブジェクトのメソッドだろうから
dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ
423デフォルトの名無しさん
2018/10/11(木) 11:17:30.10ID:6B3tPTW8
>>417
MeryやgPadがおすすめ
TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない
424デフォルトの名無しさん
2018/10/11(木) 11:25:22.78ID:/KTbB4eS
>>422
どうもありがとうございます
list()で括ったらうまくいきました

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

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

print(hoge), # こんな感じで
425デフォルトの名無しさん
2018/10/11(木) 11:31:34.26ID:3Bdkvxy9
漏れは、TeraPad は、メモ書きに使っている。
アプリのサイズが小さい

ただし、一部の文字が使えない。
中国の地名の「深圳」みたいな文字が「深?」になる
426デフォルトの名無しさん
2018/10/11(木) 11:35:19.88ID:dGtKIiaR
>>424
詳しくはpython2とpython3の違いでググってね
427デフォルトの名無しさん
2018/10/11(木) 11:43:56.19ID:3Bdkvxy9
>>419
例えば、コマンドプロンプトで、where notepad
と入力すると以下のように、メモ帳の実行ファイルのパスが表示される

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

同様に、where python と入力すれば?

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

環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、
その知識がないと、開発なんてできない!
428デフォルトの名無しさん
2018/10/11(木) 12:31:23.10ID:3et536X6
>>424
3年前でpython2なのか、スゲー本だな
訳注ぐらい入れれば良いのにね
python3だとprint(hoge end='')
429デフォルトの名無しさん
2018/10/11(木) 12:35:06.81ID:3et536X6
いけねカンマ抜けた
print(hoge, end='')
430デフォルトの名無しさん
2018/10/11(木) 13:10:38.79ID:bLRRmr2D
>>426
>>428
>>429
どうもありがとうございます。
2と3の違いググりました。
listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね

2016年7月に原書が出て2017年8月に日本語版が出た本です。
今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。
print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。
431デフォルトの名無しさん
2018/10/11(木) 18:42:11.43ID:MfMAF/GN
>>427
ありがとうございます。
ずっとやってましたが、色々と調べててもわかりそうにありません。
anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。
ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。
自分でいじるのは、知識をどうにかしてつけてからにします。
432デフォルトの名無しさん
2018/10/11(木) 20:38:12.53ID:OPK+KI2v
>>431
Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽
433デフォルトの名無しさん
2018/10/11(木) 23:48:03.56ID:gjrJHmO+
Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん
C:\Anaconda3にパス通しても動かなくて当たり前
コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く
434デフォルトの名無しさん
2018/10/12(金) 05:14:13.33ID:sf+PB/Vk
>>432
将来的に検索もできる対話型AIを作りたいです。
>>433
その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。
パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。
一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。
435デフォルトの名無しさん
2018/10/12(金) 09:45:35.48ID:C1pVYns8
Linux の基本コマンドとか、環境変数PATH など、
OS の基礎を知らない人は、開発者になれない

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

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

activate する前には、python というコマンドは実行できないが、
activate した後には、python というコマンドが実行できる
436デフォルトの名無しさん
2018/10/12(金) 14:37:53.89ID:46Wm2YVF
>情報処理資格

Linux とは関係ない

開発に必要ということは同意
437デフォルトの名無しさん
2018/10/13(土) 20:39:27.21ID:i2AAnytP
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じゅないの?
438デフォルトの名無しさん
2018/10/13(土) 21:34:22.63ID:f9khLXsZ
>>437
ちょっとググったら2.5.0から実装されたみたいよ
https://qiita.com/gameover/items/13868ca9101348bdf4fc
439デフォルトの名無しさん
2018/10/13(土) 22:05:44.95ID:i2AAnytP
サンクス
バージョンアップに挑戦してみる
440デフォルトの名無しさん
2018/10/14(日) 00:43:28.48ID:7a55cFNG
re.searchでグループ化したものを取り出す時に
?P<name>で出来たのですが
re.subと同様に通常の正規表現の「\1」のように
書く書き方は出来ないですか? よろしくお願いします。
441デフォルトの名無しさん
2018/10/14(日) 02:11:30.62ID:bkAbhEU5
>440
> m = re.search("b(.)", "abcdefg")
> print(m.group(1))

c
442デフォルトの名無しさん
2018/10/14(日) 02:22:51.26ID:7a55cFNG
>>441
ありがとうございます!
443デフォルトの名無しさん
2018/10/14(日) 06:13:05.25ID:Ov+YlZxq
アナコンダインストールすればIDEいらない?
444デフォルトの名無しさん
2018/10/14(日) 16:58:59.85ID:G4e8iFcg
Py_INCREF()を呼ぶタイミングを教えてください
445デフォルトの名無しさん
2018/10/14(日) 19:12:00.22ID:NuEYON6j
下のようなコードを書いたとして、
mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね?

def func1():
import hoge
...

def main():
...
446デフォルトの名無しさん
2018/10/14(日) 19:35:54.62ID:FWr9wKhu
>mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
されないよ ためしてみそ
447デフォルトの名無しさん
2018/10/14(日) 20:15:26.78ID:O0tCb1jZ
ありがとうございます!
確かめたくても方法が分からなかったですので。助かりました
448デフォルトの名無しさん
2018/10/14(日) 21:15:09.25ID:jLw0xcfm
>>446
どうやったら試せますか?
449デフォルトの名無しさん
2018/10/14(日) 21:16:06.39ID:WLfX4fFS
キャッシュで判る
450デフォルトの名無しさん
2018/10/14(日) 21:44:29.12ID:FWr9wKhu
>>448
>>445の状態で、importしてないと呼び出せない機能をmainに書き込む
たとえば

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

def main():
re.compile('hoge')
↑func1をよんでないのにこれ書いたらエラーする
451デフォルトの名無しさん
2018/10/14(日) 21:45:08.68ID:SE0u9ZQa
日本語で
452デフォルトの名無しさん
2018/10/14(日) 21:46:06.36ID:WLfX4fFS
その理屈だと一回呼んで戻ってきたら使えることになるな
453デフォルトの名無しさん
2018/10/14(日) 21:48:40.36ID:FWr9wKhu
>>452
あー
そのはっそうは なかったw

450のかき方(インデントは正しくできているものとしてクレン)したら、
func1の中でしかreのimportは効いてナインかな
454デフォルトの名無しさん
2018/10/14(日) 21:53:34.20ID:FWr9wKhu
ちょっとちゃんと実験してみるは... 三 ( ´D`)
455デフォルトの名無しさん
2018/10/14(日) 21:59:28.27ID:FWr9wKhu
( ・∀・)ノフォラァヨ!!---===≡≡≡ http://dpaste.com/18SSZEP :main内でエラーするかきかた
456デフォルトの名無しさん
2018/10/14(日) 22:03:32.75ID:FWr9wKhu
つづき
http://dpaste.com/17A5RJ3 :やっぱりmain内でえらーしますた (この はっそうは なかった)

けつろん
 >450の注釈はまちがいまくりだな!ゲヒャ(∀・∀)
 >>452の疑問はどんぴしゃごもっともだった
457デフォルトの名無しさん
2018/10/14(日) 22:19:11.86ID:FWr9wKhu
けつろん

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

func1の中でしか
reのimportは効いてナイン
458デフォルトの名無しさん
2018/10/14(日) 22:21:07.83ID:OWtIHbk2
importされたモジュールはimport 文が表れるスコープのローカル名前空間で名前を定義される

https://docs.python.org/ja/3/reference/simple_stmts.html#import
459デフォルトの名無しさん
2018/10/14(日) 22:52:00.55ID:FWr9wKhu
>>458
ありがとーん
460デフォルトの名無しさん
2018/10/14(日) 22:53:21.18ID:O0tCb1jZ
結局スコープ内でしか有効じゃないから確かめる方法は無いってこと?
461デフォルトの名無しさん
2018/10/14(日) 22:53:49.91ID:jLw0xcfm
たいへん勉強になりますた。
462デフォルトの名無しさん
2018/10/15(月) 04:25:17.24ID:0W4mw5Ny
>>460

>>449
キャッシュで判る

実行前にキャッシュを消して
実行後にキャッシュが出来ているかを見れば
読み込まれたか無視してるかは判る
463デフォルトの名無しさん
2018/10/15(月) 08:59:02.58ID:pyA/8yHB
キャッシュはどうやって見れますか?
mainでキャッシュ見れる関数を書くのですか?
464デフォルトの名無しさん
2018/10/15(月) 09:32:04.81ID:vNVpiBIf
マジでアホの考えなんとやらだ
importするとクラッシュするモジュールを用意して
func1からimportしてみりゃーいいだろ
クラッシュすればimportされてるし、しないならimportされていない
465デフォルトの名無しさん
2018/10/15(月) 09:56:16.94ID:XOcEM3KA
importするとクラッシュするモジュールが発見出来ませんでした・・
よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。
466デフォルトの名無しさん
2018/10/15(月) 09:57:31.08ID:vNVpiBIf
いや、自分で書けばいいだろ
馬鹿が
467デフォルトの名無しさん
2018/10/15(月) 10:31:21.43ID:/DZZgAIK
importするmoduleを自分で書くなら
moduleの初期化時にprint('読まれたよ!')って書いて置けば桶
468デフォルトの名無しさん
2018/10/15(月) 12:38:01.14ID:A4+xGAqj
なんなの遊園地?
469デフォルトの名無しさん
2018/10/15(月) 16:32:59.34ID:13a7w8hI
>>467
天才現る!
470デフォルトの名無しさん
2018/10/15(月) 18:05:35.02ID:5iEXqQwD
>>460
スコープ内で有効だから確かめられないではなくグローバル変数にすれば良いのでは

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

def main():
func() #コメントアウトするとprintでエラー
print(re)
471デフォルトの名無しさん
2018/10/15(月) 18:19:51.97ID:/DZZgAIK
def main():
#func() #func()無関係にprintでエラー
import re as _re
print(re)
472デフォルトの名無しさん
2018/10/15(月) 21:29:43.28ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
473デフォルトの名無しさん
2018/10/15(月) 21:35:11.02ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
474デフォルトの名無しさん
2018/10/16(火) 17:08:42.26ID:u7YyW5Kg
自作クラスのインスタンスが持ってる変数を全て、保存しておいた値に戻すようなコードを書きたいのだけれど、どうやって書けばいいかな?
ある時点の値にロールバックしたいということなのだけれど、継承していてもちゃんと動作するようにしたい
想定している処理はこんな感じ

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

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

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

設計が悪いと感じたらなにか代替案を教えていただければ嬉しいです
475デフォルトの名無しさん
2018/10/16(火) 18:16:27.10ID:YLHbxnbG
pickle
476デフォルトの名無しさん
2018/10/16(火) 18:24:52.10ID:LVmCdvc6
あの、プログラム終わったら次のプログラムを起動したいのですがどうやったら開けますか?
最後にはシャットダウンしたいです。

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

こんな感じでやりたいです。
477デフォルトの名無しさん
2018/10/16(火) 18:28:08.45ID:YLHbxnbG
subprocess.Popen
478デフォルトの名無しさん
2018/10/16(火) 18:32:15.10ID:LVmCdvc6
ありがとうございます、できそうです。
479デフォルトの名無しさん
2018/10/16(火) 18:34:41.31ID:+Y6Wm7U2
パイパイを実行?
480デフォルトの名無しさん
2018/10/16(火) 21:07:08.91ID:uMB0oNTu
>>476
それチェーンにしないとダメなの?
普通にp1.py, p2.py, ..., pn.pyを次々に呼び出して最後にシャットダウンするシェルスクリプトなりバッチファイルなりを書けばいいような気もするんだが
481デフォルトの名無しさん
2018/10/17(水) 11:21:44.01ID:tSH31TrF
>>474
グローバル変数使うんじゃだめ?
482デフォルトの名無しさん
2018/10/17(水) 11:49:20.45ID:LtC7K5yP
ORM
483デフォルトの名無しさん
2018/10/17(水) 12:47:48.23ID:tSH31TrF
>>474
>>481です。知ったかぶりしてすみません。グローバル変数ではなくクラス変数でした。
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にはならないみたい。
484デフォルトの名無しさん
2018/10/17(水) 13:06:09.93ID:tSH31TrF
行数制限のため連投ですみません。
継承も大丈夫です。
>>> 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
485デフォルトの名無しさん
2018/10/17(水) 13:31:27.53ID:LGIAN4QA
pickle
486デフォルトの名無しさん
2018/10/17(水) 13:35:53.65ID:cWz6TRDk
>>483
それじゃクラス共通になってまうやん
インスタンス毎にバックアップデータ持てないから意図と違うと思う
>>474 で良いと思うけど、何を懸念してるのかを書くともっといい案をもらえそう
487デフォルトの名無しさん
2018/10/17(水) 17:07:18.34ID:tSH31TrF
>>486
クラスと継承クラス共通でバックアップって意味じゃないの? そりゃスマンコってす
...
各インスタンスごとのバックアップを作って、一括でpush/popしたいなら、
リストの要素を各インスタンスをにしといて、
for i in in instance_list:
 i.backup()
とかにすればいいだけなんでねの?
488デフォルトの名無しさん
2018/10/18(木) 10:08:35.95ID:0gY6dccD
>>487
push-popと言いながらプログラムはpush-popじゃないのはわざと?
489デフォルトの名無しさん
2018/10/18(木) 16:41:15.03ID:551Ojw2f
def 関数(arg1,arg2):
ゴニョゴニョ


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


returnが入ると全くわからない。
490デフォルトの名無しさん
2018/10/19(金) 07:14:22.21ID:97FgwNUY
codecs.openて普通のopenより処理重いきがするんですが認識あってるかね?
2.7使ってて文字コード指定で100mb前後のtxtなりcsvてり触りたいんだけど通常のopenでは文字指定出来ず、ioモジュールのopen使うと他のライブラリで使ってるopenの挙動がおかしくなる(?)し、codecs遅いしでどうするのがスマートなのかわからん
491デフォルトの名無しさん
2018/10/19(金) 08:17:42.62ID:5hJcbR3H
codecs.openを使う
そもそもopenに追加処理をしてるのだから、重くて当たり前だろう
492デフォルトの名無しさん
2018/10/19(金) 12:51:38.13ID:jQ8EJjtV
> 488

493デフォルトの名無しさん
2018/10/20(土) 14:00:43.26ID:aYMp4dZA
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.__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を継承したものです)
どなたかお知恵をお貸し願えたら幸いです。
494デフォルトの名無しさん
2018/10/20(土) 14:07:46.36ID:u8BRF3D8
http://99blues.dyndns.org/blog/2010/01/pywebkit/
495デフォルトの名無しさん
2018/10/20(土) 14:24:18.46ID:n6bj2eyU
>>493
インスタンスメソッドをクラスメソッドみたいにして読んでるから、第一引数として暗黙的に渡されるはずだったselfが足りないって怒られてる。

ソースを斜め読みするとViewerのインスタンスはインスタンス構造上の親であるMainWindowが持っているようなので、
self.__window.viewer.can_go_back()でアクセスできるんじゃないかな
496493
2018/10/20(土) 15:04:15.12ID:aYMp4dZA
>>495
if self.__window.viewer.can_go_back():
self.__window.viewer.go_back()

と書いてやってみたらエラーメッセージはでませんでしたが画面が真っ白になってしまいました。
とはいえ、当初のエラーは解消したので大きな進歩です。どうもありがとうございました。
後は勉強がてら自分でやってみます。
497デフォルトの名無しさん
2018/10/20(土) 15:04:58.12ID:aYMp4dZA
>>494
さんもレスありがとうございました。
498デフォルトの名無しさん
2018/10/20(土) 18:30:22.23ID:V2vR4ZZl
>>489
defがここでおしまいですよ 呼び出し元にかえりんしゃー

という意味
499デフォルトの名無しさん
2018/10/20(土) 18:31:25.93ID:V2vR4ZZl
>>490
from codecs import open as codecsopen
とかやって、
codecsまるごとじゃなくcodecs.openだけ読むようにすればちょっとははやくできる
ちょっとは。
500デフォルトの名無しさん
2018/10/22(月) 23:03:44.42ID:bT6j7LGV
素人質問で申し訳ないのですが助けていただきたく質問します。

いま「みんなの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」にはチェックを入れました。
501デフォルトの名無しさん
2018/10/22(月) 23:37:57.82ID:aY20u7RH
英語よめや。
502デフォルトの名無しさん
2018/10/22(月) 23:54:05.62ID:bT6j7LGV
>>501
環境変数PATHを設定する | Pythonインストールと環境設定
https://www.javadrive.jp/python/install/index3.html

このサイトに書いてあるようにやったらできたんですけど
これでいいんですか?
503デフォルトの名無しさん
2018/10/23(火) 01:14:29.19ID:uxH9lXGD
カレントフォルダからは「相対パス/python.exe」で実行できる。
カレントフォルダ以外からも実行したいのなら「絶対パス/python.exe」で実行できる

カレントフォルダ以外からも「python」というコマンドで実行したいのなら、
「python.exe」のあるフォルダを、ユーザー環境変数PATH に登録しないといけない

例えば、コマンドプロンプトで、以下のように入力すると、
where notepad
where python

そのコマンドの実行ファイルのある、場所を表示できる
504デフォルトの名無しさん
2018/10/23(火) 06:47:31.22ID:EmL9QD5v
はじめまして ラズパイでpythonを利用してます。
Python3 ide?でファイルを実行するとmoduleエラーが起きるんですけど、lxterminalで実行したりcronで実行するとエラーはでないで実行できます。
実行できるので問題ないのですが、なんでpython3 ideで実行するとmoduleエラーになるのかが気になります
詳しい方 お気づきがあれば教えてください
505デフォルトの名無しさん
2018/10/23(火) 07:07:12.22ID:EmL9QD5v
追加ですが温度センサー使ってます。githubからすべて入手したものです。
ググってもなぜかエラー出るよみたいなことが書かれていて原因は不明だったのでお聞きしました。
506デフォルトの名無しさん
2018/10/23(火) 10:24:36.04ID:d2CNB2CT
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: http://sqlalche.me/e/gkpj)

こんな風に書かれてあります。(長いのでここに書くときに改行しました)
何がいけないのでしょうか?
507デフォルトの名無しさん
2018/10/23(火) 10:29:07.79ID:ki4w8hD+
>>504
同じPythonを実行してる?(公式の純正PythonとAnacondaとか)
508デフォルトの名無しさん
2018/10/23(火) 10:35:04.61ID:ki4w8hD+
>>506
yearはStringじゃなくてIntegerじゃ…?
509デフォルトの名無しさん
2018/10/23(火) 10:40:12.34ID:d2CNB2CT
>>508
ほんとだ!あと、リストのMarieの性別も頭が大文字になってました。
凡ミスなのにありがとうございます!
510デフォルトの名無しさん
2018/10/23(火) 10:45:40.79ID:d2CNB2CT
>>506
あと、29行目の%の所でpep8のE228の注意が出てしまいます。

%の前後にスペースを入れて、こう書くのが正しいんでしょうか?
https://ideone.com/qhYas5
511デフォルトの名無しさん
2018/10/23(火) 10:48:34.83ID:ki4w8hD+
>>510
その方がpep8に則ると正しいね
512デフォルトの名無しさん
2018/10/23(火) 10:56:47.49ID:zGwQ/J/L
>>511
どうもありがとうございました
513デフォルトの名無しさん
2018/10/23(火) 11:09:52.98ID:zGwQ/J/L
連投すみません

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))
514デフォルトの名無しさん
2018/10/23(火) 11:13:00.78ID:aeA+1VC2
gtk3とpythonのpygobjectで質問があります。
https://stackoverflow.com/questions/41696515/webkit2gtk-webview-touchscreen-scrolling
こちらの質問にあるとおり、webkit2gtkを使うとlibwebkit1-3.0の時のようなタッチスクリーンによる
スクロールができなくなってしまうのですが、何とかタッチによるスクロール(パンというようですが)
をしたいのです。こちらの質問者の方はコールバック関数にスクロールイベントを書いたらできたと
書いてありましたが、具体的にはどのように記述すれば良いのでしょうか?

https://lazka.github.io/pgi-docs/

こちらのpygobjectのAPIを見てもよくわかりませんでした。どうかよろしくお願いします。
515デフォルトの名無しさん
2018/10/23(火) 11:16:03.36ID:zGwQ/J/L
>>513ですけど、
ふた通りの書き方があるよ、Pythonらしく、より簡単に書く方法はfilter_byの方だよって事ですかね?
516デフォルトの名無しさん
2018/10/23(火) 12:43:50.18ID:EmL9QD5v
>>507
同じpythonです。ラズパイにはじめからはいってるやつです。
ほんと謎
パスかなと思ったけど動いてるから違うんやとおもうけど
517デフォルトの名無しさん
2018/10/23(火) 13:18:18.96ID:ki4w8hD+
>>515
軽くググッてから投稿してみよう
https://stackoverflow.com/questions/2128505/whats-the-difference-between-filter-and-filter-by-in-sqlalchemy
518デフォルトの名無しさん
2018/10/23(火) 13:20:20.07ID:ki4w8hD+
>>516
バージョンも同じなら、理由はわからんなぁ…
519デフォルトの名無しさん
2018/10/23(火) 17:07:59.89ID:J7zWeAP4
みんなやさしいな
520デフォルトの名無しさん
2018/10/23(火) 18:06:12.08ID:Afmb5nM2
別のフォルダに入った同名ファイルを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.)]
521デフォルトの名無しさん
2018/10/23(火) 22:14:21.56ID:86mV9f+c
ファイルの数を返すメソッドはありますか?
例えばsrcの下にディレクトリaとbがあって
それぞれのディレクトリにa1.txt〜a100.txt、b1.txt〜b100.txtとファイルがあった時に
200と返してくれるメソッドはありますか?
defで関数とか作らず1行で済む方法を探しています。
522デフォルトの名無しさん
2018/10/23(火) 22:22:44.49ID:zYWUn764
len(os.lisdir(ディレクトリのpath))
523デフォルトの名無しさん
2018/10/23(火) 22:36:02.00ID:BDP8ufz9
いまやってみたらそのコードでは2が帰って来ました
aとbの2つのディレクトリがあるから2なのですかね?
欲しいのはそのまた下にあるファイルの数でした
524デフォルトの名無しさん
2018/10/23(火) 22:46:04.08ID:oFF/C26V
Pythonは詳しく無いけど、そう言うは再帰でディレクトリが無い最下層まで潜るコードってよく見るね。
525デフォルトの名無しさん
2018/10/23(火) 23:35:56.37ID:EZC/vVVW
>>521
import glob
len(glob.glob(“**/*”, recursive=True))
526デフォルトの名無しさん
2018/10/23(火) 23:36:52.55ID:EZC/vVVW
src/**/* だったわ
527デフォルトの名無しさん
2018/10/23(火) 23:53:26.39ID:BmpWcPqj
>>521
sum([len(files) for root, dirs, files in os.walk("src")])
528デフォルトの名無しさん
2018/10/24(水) 00:12:08.40ID:2LYWqLo0
>>504
パス・カレントディレクトリとか、起動時オプションとか。
別の実行ファイルを起動しているとか

IDE の前提条件は、プロジェクトごとだろ。
プロジェクトフォルダ・プロジェクト設定ファイルありきだろ。
プロジェクトの条件を満たしていないのかも?

プロジェクトとシェルから実行する形式とは、異なるような気がする

そのエラーメッセージをここにも書いて、それで検索すれば?

>>513-517
「python sqlalchemy filter vs filter_by」で検索!
529デフォルトの名無しさん
2018/10/24(水) 00:33:01.65ID:2LYWqLo0
>>521-527
ls -1UR | wc -l

「linux ファイル数 ディレクトリごと」で検索!
530デフォルトの名無しさん
2018/10/24(水) 00:58:29.86ID:2LYWqLo0
>>514
「gtk webkitwebview」で検索!
531デフォルトの名無しさん
2018/10/24(水) 15:19:12.25ID:B3/hQHxI
521,523です
教えていただいたのをやってみました。
525さんの方法は、フォルダーの数が含まれていました。結果は202が返りました。
527さんの方法は、ちょうど200が返りました。
529さんの方法は、windowsなので出来ませんでした。

これにて問題は解決しました。皆さまありがとうございます。
532514
2018/10/24(水) 17:55:05.58ID:Vc8wznQf
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アプリのようにタッチでスクロールできないようです。でも、だったらなんで>>514のリンク先の人はGTK.gestureでできたんだろう・・・
533デフォルトの名無しさん
2018/10/24(水) 18:10:34.94ID:95IsyUjL
>なんといっても、800g弱とは思えない軽さと、
薄型コンパクトな筐体はタブレットと同様に、
「出番はないかもしれないけど常時携行しても良い」レベルです。


いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置

「出番はないかもしれないけど常時携行しても良い」

また持ち出す

いざ使おうとすると windows update が始まって再起動…何時間も待たされる…鞄にしまう。

放置
534デフォルトの名無しさん
2018/10/24(水) 18:40:13.35ID:IR3xnlxd
リストに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を探しています。
535デフォルトの名無しさん
2018/10/24(水) 18:54:46.79ID:Uqd3UckS
>>534
itertools
536デフォルトの名無しさん
2018/10/24(水) 18:57:07.94ID:K3Hn81Y7
リストの中身をシャッフル→前から二つずつ取得
537デフォルトの名無しさん
2018/10/24(水) 18:57:08.14ID:Uqd3UckS
>>532
ここで回答を待つよりリンク先に直凸したほうがはやいきががが

Why could you "scroll" with GTK.gesture?
538デフォルトの名無しさん
2018/10/24(水) 19:10:02.77ID:TphPHDjb
scrapyとXParhについて教えてください

https://ideone.com/af79WT
うまく動いてくれないです。

67行目からの関数が間違えてると思うんですが、77行目のp_templateはどう書くのが正しいんでしょうか?

9行目は
# https://github.com/Kyrand/dataviz-with-python-and-js

17行目は
BASE_URL = 'http://en.wikipedia.org'

40行目は
start_urls = ["https://en.wikipedia.org/wiki/List_of_Nobel_laureates_by_country";]

80行目は
# https://www.wikidata.org/wiki/Q155525

です。
539デフォルトの名無しさん
2018/10/24(水) 19:14:14.74ID:IR3xnlxd
>>535
これは指定した組み合わせ数に達したら中断する方法はありますか?
実際にはnとmが両方4000程なので、nC2を全て取得するのは冗長と思われるので・・
とはいえやりたいことにとても近いのでありがとうございます。

>>536
実際にはm>n/2となるので難しいと思いました。
すみませんこちらの例題が悪かったですね・・
540デフォルトの名無しさん
2018/10/24(水) 19:14:37.21ID:/bxb9sB2
>>534
itertoolsとrandom.sampleを組み合わせる
import itertools, random
def pair(n, m):
combi = list(itertools.combinations(n, m))
return random.sample(combi, m)
541デフォルトの名無しさん
2018/10/24(水) 19:51:07.40ID:8aeYqShI
>>506
これ、モジュールを入れてますが、ideoneで外部モジュールってどうやって使うんです?
542デフォルトの名無しさん
2018/10/24(水) 20:02:29.89ID:Uqd3UckS
>>539
いつでもやめれるぞ

おれはあほだから
count=0からカウントアップしていって
欲しい組数になったらbreak
とか思いつくが
もっとスマートなやり方あるとおもう
543デフォルトの名無しさん
2018/10/24(水) 20:03:01.03ID:Uqd3UckS
>>541
ソースが貼れるだけで
外部モジュールをとってきて動かすまではideoneしてくれない
544デフォルトの名無しさん
2018/10/24(水) 20:26:18.89ID:Uqd3UckS
>>538
大抵は日付Gregorianで書いてあるとおもうから
文字列Gregorianの 前の文字列を探したらよさげなんだが

80行目のアドレスにアクセスして見てみた
Xpathがもはや538が書いたソースと違っつる
(/html/body/pre/span[1577] ってなってて divに1ツも入ってないYO)ので
具体的にどうとは書けない
545デフォルトの名無しさん
2018/10/24(水) 23:59:09.70ID:2LYWqLo0
wikipedia みたいに、しょっちゅう構成が変化するものを、
XPath みたいに順番で指定するものは、動かない

div[2]/div[1]/div/div[2]/div[2]/div[1]
「div の3つ目の、div の2つ目の...」

CSS セレクターみたいに、id, class などの意味で指定する方が、構成の変化に強い。
まだマシ

HTML を解析して、id, class などで限定していくのが基本
546デフォルトの名無しさん
2018/10/25(木) 01:12:10.66ID:33Q6k0An
今日突然プログラミングに興味を持ちとりあえずpythonをインストールした初心者です。

連番を作成するとき range(10)と打ち込んでも結果がrange(0,10)になってしまいます
解説サイトを見ると9まで表示されるらしいのですが、なぜrange(0,10)になってしまうのでしょうか?
バージョンは3.7.1です
547デフォルトの名無しさん
2018/10/25(木) 02:20:57.87ID:NT+vxu3F
>>546
解説サイトがpython2向けだから。
別のサイトを見つけましょう
548デフォルトの名無しさん
2018/10/25(木) 02:27:15.39ID:ZE3NVml1
Ruby の範囲は、 終端を含む、.. と、含まない ... がある

0..3 → 0〜3
0...3 → 0〜2

python では、終端を含まないのかな?

推測だけど、range(10)と引数が1つの場合は、終端のみが指定されたとみなすのだろう。
その場合、始端は0 が指定されたのと同じ

つまり、range(0,10)と同じ
549デフォルトの名無しさん
2018/10/25(木) 07:58:15.11ID:ANca8D/1
>>544
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]
でしたよ

>>544
>>545
583のスクリプトだと誕生日、死亡日、出生地、死亡地、性別を77行目の天ぷらで取得するようになってるけれど、もう天ぷらを改変して使うことも無理だから、項目一つ一つそれぞれ取得しないといけないって事ですか?
550デフォルトの名無しさん
2018/10/25(木) 08:09:34.19ID:ANca8D/1
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 に当てはめる事できますか?
551545
2018/10/25(木) 08:57:54.49ID:ZE3NVml1
例えば、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を解析する
552545
2018/10/25(木) 09:17:05.90ID:ZE3NVml1
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 の開発者が間違っている。バグ
553545
2018/10/25(木) 09:39:35.73ID:ZE3NVml1
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を、解析していくのが難しい。
その仕様は、その製作者が決めたもので、我々が知らないものだから、
隠された情報を暴くのに、時間を食うから、非常に無駄!

仕事以外で、他人の仕様を解析するのは辞めた方がよい。
製作者は答えを知っているけど、我々は答えを知らないから、時間ばかり食う!
554デフォルトの名無しさん
2018/10/25(木) 09:43:11.50ID:wiUcTcgZ
たまにはいいこと言うじゃねえか
555デフォルトの名無しさん
2018/10/25(木) 10:14:40.95ID:yIJtoQcC
今は1階層深くなっているようだ
//*[@id="{code}"]/div[2]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]{link_html}/text()
556デフォルトの名無しさん
2018/10/25(木) 10:21:59.94ID:Rw/1mEHp
>>553
なるほど

まだ途中までしか読んでないけどおそらく本の内容はこんな感じ

1
ウィキペディアにある現在までのノーベル賞受賞者の全員の一覧からウィキデータにある各人のパーソナル情報とウィキペディアの各人の概略と人物写真をScrapyでスクレイピング

2
そのデータをPandasとMatplotlibでクリーニング、分析

3
そのデータをFlaskを使って配信

4
そのデータをJavascriptのD3.jsで可視化

4の可視化に興味があって読み始めた感じ。けどせっかくなので1から読んでScrapyも学んでみようかと。
でも、他人が作ったサイト(ウィキペディア)で悩むよりもAPIなどで簡単に取得出来るような別のデータを使って2に進んだ方がよいですか?
(幸い、本の著作のGithubは数年前にすでにスクレイピングしたデータが置いてありました。数年前なのでもちろん今年の本庶さんは含まれてないですけどね。)
557デフォルトの名無しさん
2018/10/25(木) 10:22:45.04ID:Rw/1mEHp
>>555
それどうやって見つけたんでしょうか?
ちょっと見てみます。
558デフォルトの名無しさん
2018/10/25(木) 10:43:07.24ID:Rw/1mEHp
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
date of birthのところでコピーしたXPath
//*[@id="P569"]/div[1]/div/a

くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
その日付けのところでコピーしたXPath
//*[@id="q155525$82312275-D23F-4048-A710-6EC6AB12C2C2"]/div[2]/div[1]/div/div[2]/div[2]/div[1]

2枚目の画像の部分を選ぶんだと思っていたんですけど、もしかして選ぶ場所間違えてますか?
559545
2018/10/25(木) 11:01:29.24ID:ZE3NVml1
>>556
その本の例題が難しすぎる。
自分で他人のHTML を解析してまでやる必要はない。無視すべし

自分のやりたい部分だけを、やった方がよい
560デフォルトの名無しさん
2018/10/25(木) 11:34:29.89ID:yIJtoQcC
>>558
目的地点はあってるが出発地点が違う
もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう
561545
2018/10/25(木) 12:03:03.26ID:ZE3NVml1
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']
562デフォルトの名無しさん
2018/10/25(木) 12:21:08.82ID:Rw/1mEHp
>>560
出発地点ですか!

例えば「8 October 1927」という文字の上で右クリックして検証を選んで出てくる開発者ツールのElements欄を見てるんですが、もしかしてそこから間違えているとかですか?

> もうちょっとソースを読んで、どういう風にXPathをテンプレート化しているかを理解しよう

どういう事なのかさっぱり分からないです…

>>560
>>561
そういう知識はどこで身につけるんでしょうか?
おそらくこれはPythonとは直接関係ない部分なのでPythonの本でもそんなに詳しくは書いてないのかと思います。
これらはWeb開発の知識でしょうか?
ほんのちょっとだけどPythonは覚えたから大丈夫だけど、Webは分からないから暗号にしか見えず恐ろしいです。

なるべくWeb開発をしなくてもいいように(ほんとはWebは専門の人に任せようって)、Web開発の部分はなるべく最小限で済むようにして、みなさんがPythonとJavascriptのプログラミングに専念してシングルページアプリを作れるようにってのがこの本らしいけれど、
XPathやChromeのこのツールやdivとかクラスっていうものの知識ってどういうところ(本?サービス?言語?)で学ぶといいんでしょうか?結局はやはりWebの知識が必要になってくるんでしょうか?
途中、SVGでグラフィックを作る章の最初にHTMLとcssの基本的な事が書かれてありましたけれど。
563545
2018/10/25(木) 13:36:59.66ID:ZE3NVml1
先に、JavaScript, jQuery で、CSS セレクターを学ぶ。
CSS セレクターの方が読みやすい。
入門用サイトでも見て

HTML で、CSS デザイン用の属性、id, class などを付けるでしょ?
それを手掛かりにして、要素を取得する

XPath は後でよい。
入門用サイトを見る
564デフォルトの名無しさん
2018/10/25(木) 14:08:58.54ID:JjKr6ouj
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
>危険なWeb開発地帯
自分もこの認識
恐ろしい

>>563
早く先に進みたいけれど、一旦Pythonは横に置いて、そういう学習してみます。
プログラミング言語としてのJavaScriptではなくWebで使うためのJavaScriptという位置付けで学ぶとcssなど理解できるようになるんですかね?

あと、JavaScriptのスキルを身に付けたいならフレームワーク(jQueryなど)の存在は完全に無視すべきとありました。
565デフォルトの名無しさん
2018/10/25(木) 14:10:23.63ID:f1dgb8e7
Python少し触っただけの初心者です。
インデント位置が変わるだけでプログラムのロジックの意味が
変わるのを知ってビックリしているのですが、
そんな言語を使ってまともなプログラムを書けるのですか?
566デフォルトの名無しさん
2018/10/25(木) 14:13:05.16ID:JjKr6ouj
>>565
初心者ですけど、逆に分かりやすいと思いました。
567545
2018/10/25(木) 14:20:16.10ID:ZE3NVml1
難しすぎるから、あきらめた方がよい。
他人が作った、HTML を解析しても、時間の無駄で、得るものがない!

本か入門用サイトで勉強した方が、体系的に勉強できて、余程よい

それと投稿時には、名前欄に、538 と書いてくれ
568538
2018/10/25(木) 14:29:40.72ID:JjKr6ouj
>>567
まさにこの本がPython学習者がデータの可視化に向けてJavaScriptを学ぶのにちょうどよい本だと思って手に取ったんですが…
569デフォルトの名無しさん
2018/10/25(木) 15:37:48.62ID:5Cy/pQlU
最近裾野が広がって初学者が増えたのは良いが
FAQはどっかでまとまったの見ておくべき
570デフォルトの名無しさん
2018/10/25(木) 15:45:19.08ID:K87hu2sk
>>565
同じ処理なら誰が書いても同じようなコードになる
571デフォルトの名無しさん
2018/10/25(木) 16:04:24.36ID:g7JlCOxC
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
572デフォルトの名無しさん
2018/10/25(木) 16:27:15.45ID:5Cy/pQlU
無駄な抵抗はよせ
573デフォルトの名無しさん
2018/10/25(木) 17:20:42.65ID:YZYAqGHb
>>562,564

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の知識は必須と思う。
574デフォルトの名無しさん
2018/10/25(木) 18:16:58.93ID:g7JlCOxC
>>572
抵抗させてください
575デフォルトの名無しさん
2018/10/25(木) 19:39:32.30ID:Mzrh8O3p
まず2.5の文法だけで2.5で動く奴を書け
576デフォルトの名無しさん
2018/10/25(木) 19:56:43.69ID:NF5xn3mp
>>575
なに偉そうに命令しとるんじゃ
しばくぞ
577デフォルトの名無しさん
2018/10/25(木) 20:10:31.29ID:NRPlmaaN
>>571
  >>575
  しかるのちpythonのバージョンを検出し
  そのさき読み込む部分を切り替える処理を書く
おk
578デフォルトの名無しさん
2018/10/25(木) 20:58:23.32ID:NT+vxu3F
無駄なあがきだと思うよ
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)
579デフォルトの名無しさん
2018/10/25(木) 23:07:28.40ID:ZUq2YpeN
確かに文字列関係は労力が見合わないな
580デフォルトの名無しさん
2018/10/26(金) 01:52:17.86ID:etilwalQ
>>578
ありがとうございます
いい感じに動いてるっぽいです
ちなみになんですが、
def xopen(file, encoding):
return open(file, encoding=encoding)
xopenという新たに定義した関数のencodingっていうパラメータが、open関数に渡る際に、encoding=encodingとなった右側のみに代入されるのがいまいち何故か分かりません
581532
2018/10/26(金) 10:52:40.48ID:99OxERMj
>>537
遅レスで会話の邪魔して悪いんですが。英語で質問するだけの勇気がありません・・・
pyGTKでgtk.gestureはそもそも文献自体がほとんど(2019/1に洋書が出るようですが)ないので、
とりあえず今はwebkit1を使って凌ごうともいます。
582デフォルトの名無しさん
2018/10/26(金) 11:27:23.79ID:+/5bIPXr
いまスクレイピングの勉強してて、テキスト通りに入力したら
operation not permittedとエラーが出ました
python3.6
IPad Proでpythonista使ってます
写真がその内容です
https://imgur.com/a/DNU9qUA
583デフォルトの名無しさん
2018/10/26(金) 11:28:03.08ID:+/5bIPXr
原因わかるかた教えてください
584デフォルトの名無しさん
2018/10/26(金) 12:46:11.07ID:xBIHPZW8
>>571
そういうマルチバージョン対応などは、10年以上の開発者がやるもの!
初心者がやるべき事ではない

初心者は、python3系だけを使ってください
585デフォルトの名無しさん
2018/10/26(金) 13:22:34.36ID:mc9Lb34M
>>584
アホは出てくんな
586デフォルトの名無しさん
2018/10/26(金) 13:32:28.45ID:kt4cO7LW
>>583
クリップボードの内容を取得したりOSと連携する様な操作は
iPadだと出来ることと出来ないことがあるよ
クリップボードの内容取得は出来るけど
iOS用に書き換えないと

import clipboard
text = clipboard.get()
print(text)

Pythonista のドキュメントに以下の項目があって
iOS 用に使えるモジュールが出てる
Pythonista Modules
Additional modules developed specifically for iOS
587デフォルトの名無しさん
2018/10/26(金) 13:40:57.57ID:pU3zjhOE
pipでuinstallした時に
would remove:
proceed?(y/n)
と聞かれて、yを選ぶと
fikenotfounderrorが出てアンインストール出来ません
どうしたらよいですか?
588デフォルトの名無しさん
2018/10/26(金) 14:05:26.31ID:1xxQ31UG
>>587
pipのバージョン、Pythonのバージョン、OSの種類とバージョンくらい書かないと絶対無理
589デフォルトの名無しさん
2018/10/26(金) 14:59:47.80ID:pU3zjhOE
pip 18.1
python 3.5.3
windows10
です。
590デフォルトの名無しさん
2018/10/26(金) 15:02:26.09ID:pU3zjhOE
そして、uinstallしたいのはtensorflow1.4.0です。
591デフォルトの名無しさん
2018/10/26(金) 15:07:19.64ID:1xxQ31UG
>>589-590
・ないといわれたファイルは実際に(ほんとうに)あるのか、ないのかをexplorerあたりから確認しる
・テンソルフローはうまくうごいていたのか、いないのか
・ログインユーザー名に日本語(2バイト文字)を使ってないか?
592デフォルトの名無しさん
2018/10/26(金) 15:09:31.17ID:1xxQ31UG
もしかしたら
「setuptoolsを再インストール」すればなおるかもしんない。
593デフォルトの名無しさん
2018/10/26(金) 15:41:07.87ID:7cSp+c0W
>>543
なるほど
見せるためだけに使ってる感じですか
ありがとうございます
594デフォルトの名無しさん
2018/10/26(金) 17:48:07.64ID:OsF5A133
>>586
ありがとうございます
やっぱり初心者にpythonistaは厳しいのかなー
iPadで出来ていろいろ便利なんですけどね……。
595538
2018/10/26(金) 20:36:27.02ID:VmKQ+7a8
>>573
どうもありがとうございます 参考になります 。
自分はWebページ作りそのものに感心は全く無いんですが、しかし今の自分が読むべきなのは例えばこういう本なんでしょうか?
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
(アマゾンでHTML5で検索して一番上に出てきた本です)
596573
2018/10/26(金) 23:50:52.48ID:vtwelEqx
>>595
そういう感じの本です。

私の持っている本はこれです。ちょっと古いです。
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

タグや属性を調べるだけならポケットリファレンスで十分かもしれません。
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
597デフォルトの名無しさん
2018/10/27(土) 00:41:13.73ID:QkHwtfgJ
スレチ
598デフォルトの名無しさん
2018/10/27(土) 17:49:12.10ID:ZlRq8doU
HTML, CSS, JavaScript, jQuery などの事は、web制作管理板で聞いてください
599デフォルトの名無しさん
2018/10/27(土) 17:49:31.22ID:M4OQ4nwj
python3で
print("humi" , humi, "%") を実行すると ('temp', 23.0, 'c') ←23は実際のセンサーの値です。
print関数で””で囲んだのは文字扱いで、複数の文字のときは「,」で区切りますよね?
理想は humi 47.0 %  と表示させたいのですがどうすればよいでしょうか?
初歩の質問なのですが悩んでおります
600デフォルトの名無しさん
2018/10/27(土) 17:53:45.53ID:WN5vicFY
>>599
https://ideone.com/TzBly3
601デフォルトの名無しさん
2018/10/27(土) 18:16:13.96ID:M4OQ4nwj
>>600
すまんが 俺もいままではそれでできてた。
今回はそれを入力すると ('temp', 23.0, 'c') って出るんです
そもそもなんで「'」になってるのかすら分からない。
602デフォルトの名無しさん
2018/10/27(土) 18:19:52.16ID:M4OQ4nwj
すまんごちゃごちゃになってますね。
print("humi" , humi, "%") →('humi', 23.0, '%') になります。
普通なら>>600で大丈夫なはずなんですけど。。
603デフォルトの名無しさん
2018/10/27(土) 18:26:42.99ID:d3ZViLoJ
それはpython2の挙動だな
604デフォルトの名無しさん
2018/10/27(土) 18:40:14.43ID:M4OQ4nwj
>>603
ん?そんな急に変わるもんなの?
実行もsudo pythonで実行してるけど sudo python3にできたりするのですか?
605デフォルトの名無しさん
2018/10/27(土) 18:49:01.71ID:QoVX+/e8
>>604
2系と3系はハゲあがるほど文字列まわりが違う
3系をsudoするなら
sudo py
606デフォルトの名無しさん
2018/10/27(土) 19:20:52.01ID:ZlRq8doU
Windows10, WSL, Ubuntu 16.04 では、

which python3
=> /usr/bin/python3
607デフォルトの名無しさん
2018/10/27(土) 19:42:26.23ID:M4OQ4nwj
>>605
それは存じてます。
それより下にあるprint関数はpython3の書き方でしっかり表示できてるんですよね。。
なぜかこの行だけ変な表示になる
608デフォルトの名無しさん
2018/10/27(土) 19:56:03.40ID:tpZx8Nmf
まだ2系使ってるのはどんな層?
609デフォルトの名無しさん
2018/10/27(土) 20:38:05.02ID:p3Z91K38
Linux系じゃね?
ブートストラップ周りに2系がガッツリ食い込んでるって聞いたことある。
そのせいで2系がデフォルトで入ってるとか。
610デフォルトの名無しさん
2018/10/27(土) 20:52:22.52ID:QoVX+/e8
>>608
基本Windows使ってるけど
2系のころ勉強して
そのまんま・・・

あとたしかに>>609
611デフォルトの名無しさん
2018/10/27(土) 21:09:16.81ID:d3ZViLoJ
humi = 25
print("humi" , humi, "%")
print(humi)

出力:
('humi', 25, '%')
25
612デフォルトの名無しさん
2018/10/27(土) 21:26:03.77ID:M4OQ4nwj
>>611
まさにこれ。
python2はないと思う。ずっとこれでやってきてるので。
部分的に2とかありえるのかな?
613デフォルトの名無しさん
2018/10/27(土) 21:28:08.36ID:d3ZViLoJ
>>611はpython2で動かした結果
614デフォルトの名無しさん
2018/10/27(土) 21:39:51.74ID:M4OQ4nwj
>>613
まじですか・・
当方ラズパイをつかってまして lxterminalで sudo python ファイル名 なら実行できるけど
python3 IDLEつかうとモジュールエラー出るから避けてたんだけど もしかしてpython3じゃないってことですかね?
615デフォルトの名無しさん
2018/10/27(土) 21:41:02.12ID:GbJLfo15
ちゃんと調べたら2系で動いてましたテヘペロ
に1票
これまでずっとそうしてきたからとか本当に信用ならん
616デフォルトの名無しさん
2018/10/27(土) 21:42:08.13ID:QoVX+/e8
sudo python -Vと打ってかくにんしる
617デフォルトの名無しさん
2018/10/27(土) 21:53:58.98ID:WN5vicFY
RHEL系もDebian系もシステム周りはここしばらくはpython -> python2で、3はpython3で呼ぶようになってる
618デフォルトの名無しさん
2018/10/27(土) 21:57:57.20ID:M4OQ4nwj
>>615
確認しました。ほんとにそれでしたすいません。
pip3でインストールしなきゃいけなかったそうです
どうもありがとうございました
619デフォルトの名無しさん
2018/10/27(土) 23:54:55.35ID:GbJLfo15
どんまい
620デフォルトの名無しさん
2018/10/28(日) 07:05:43.19ID:7IwsJv31
自分ではどうしようもなくて他人に泣きついたのにどうしてその相手の言うことを聞かずにグダグダやってたんだ?
621デフォルトの名無しさん
2018/10/28(日) 07:43:54.72ID:lVhl2H66
Pythonで作成したモジュールをUWSCで呼び出すことはできますか?
UWSCではDLLを読み込んで関数が使えるのですが
そういう行為をプログラミング用語でなんというのでしょうか
検索ワードがよくないのか手がかりすら掴めてないです
よろしくお願いします
622デフォルトの名無しさん
2018/10/28(日) 07:57:38.17ID:JDWqlC9k
>>621
uwscなんて初めて知ったけど、exec()というコマンドがあるそうだから、単純に
exec("pythonのパス" + "pythonスクリプトのパス")でいいんじゃないの?
623デフォルトの名無しさん
2018/10/28(日) 11:48:06.52ID:lVhl2H66
>>622
execはexeを起動するだけなんです
似たようなものにdoscmdというのがあるんですがこれでも駄目でした
UWSC掲示板があって過去ログもみたんですがPythonに関する質問すらなかったです
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi
すみませんわざわざ調べて頂いて
624デフォルトの名無しさん
2018/10/28(日) 12:12:29.72ID:YiTUMI+K
>>623
それで十分だろ。
思い込みは捨てて
exec("<python.exeのフルパス> <スクリプトのフルパス>")
を実行してみなよ。
discmdのほうも単にパスが通ってないだけだと思うよ。
フルパスで入力してる?
625デフォルトの名無しさん
2018/10/28(日) 12:54:25.06ID:lVhl2H66
>>624
すみません、解決しました
実行時の引数が不足してました
ありがとうございました
626デフォルトの名無しさん
2018/10/28(日) 13:08:03.94ID:auhqQrbO
Fswebcamで撮影した写真をメールで自動送信を考えています。
探知して送るのはあるんですけど、撮影した写真をまとめて送るようなプログラムってつくりにくいですか?
シェルだと楽っぽいけど 慣れてないので分からない。。
627デフォルトの名無しさん
2018/10/28(日) 13:30:49.38ID:auhqQrbO
もしくは撮影されたフォルダ内から日時の新しいものとか新しいうちの四つを添付するとかできないかなと?
普通に添付するならファイルが指定になるから難しそうですかね。。
628デフォルトの名無しさん
2018/10/28(日) 22:42:22.92ID:KcfCsfCB
書いてみれば良いじゃない
629デフォルトの名無しさん
2018/10/28(日) 23:28:27.44ID:fiBcuTbE
numpyで配列の要素が範囲となるような配列をつくることはできますか?
例えばAというはいれつがあって、
A[0] = np.arange(0,1,0.01)
みたいなものです
630デフォルトの名無しさん
2018/10/29(月) 00:31:07.47ID:tXMYusEl
意図があってるか分からないが
A = np.stack([np.arange(0,1,0.01)]*10)
A += np.arange(10).reshape((10,1))
631デフォルトの名無しさん
2018/10/29(月) 09:07:55.84ID:FSHl5k4M
>>620
いるよなこういう何の生産性もないレスする奴(烏賊ブ)
632デフォルトの名無しさん
2018/10/29(月) 09:36:36.83ID:sBuO7UaY
そうだな
633デフォルトの名無しさん
2018/10/29(月) 10:18:07.79ID:ThrPEx61
>>630
ありがとうございます
なんとかできました
634デフォルトの名無しさん
2018/10/29(月) 11:12:02.14ID:wR2M4wFA
requestsでファイルをダウンロードする時タイムスタンプは変更しないでダウンロードする方法教えて下さい!!
635デフォルトの名無しさん
2018/10/29(月) 11:28:06.05ID:VxCr7qKV
os.utime
636デフォルトの名無しさん
2018/10/29(月) 11:56:15.99ID:wR2M4wFA
requestsで何らかの方法を使ってファイルの作成日などを取得してダウンロード後にos.utimeでその日付に書き換えるんでしょうか?
637デフォルトの名無しさん
2018/10/29(月) 11:57:16.03ID:wR2M4wFA
wget -N url
みたいな事が出来るとよいんですが。
638デフォルトの名無しさん
2018/10/29(月) 12:28:53.22ID:20y3T6Cw
httpレスポンスヘッダのlastmodified
639デフォルトの名無しさん
2018/10/29(月) 12:51:46.14ID:VtmwN/uo
wget -N url も utime やろ
640493
2018/10/29(月) 17:45:54.93ID:k7vAtK/H
ちょっと前に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]:
ってどうして必要なんでしょうか?(これがないと機能しないようですが)
641デフォルトの名無しさん
2018/10/29(月) 17:46:38.70ID:k7vAtK/H
関数配置ページ
関数は一ページの変換ミスです。ごめんなさい。
642デフォルトの名無しさん
2018/10/29(月) 17:50:01.97ID:dTGmjkHB
https://imgur.com/a/iT18u6W

titleの文字列取得の時はstring付ければよかったけど、最後の奴はstring付けるとエラーになります
こういうときはどうやって文字列だけ抽出するんですか?
643デフォルトの名無しさん
2018/10/29(月) 18:12:16.70ID:ItEstrK2
>>642
写真だと見づらいね
find_allの時はリストで取得してるから
for c in content: で回して取り出してみて
644デフォルトの名無しさん
2018/10/29(月) 18:35:48.17ID:RJcKPmzk
c.attrs['content']
645デフォルトの名無しさん
2018/10/29(月) 18:38:50.81ID:5LhWTx/7
pandasのtocsv使うときデータ内に¥nが入っててcsv出力時点で改行され、excelからcsvをデータインポートカンマ区切りで読み込みたい時に改行されて悲しいことになるんですがどうするのがスマートですか
¥n入るのは正しく、16桁以上の数字のカラムがあるのでデータインポートで読み込みたいです
646デフォルトの名無しさん
2018/10/29(月) 18:49:52.26ID:dTGmjkHB
本当だ
よく見るとこの場合は実行するとリストとして取得されてるんですね
そりゃstringじゃ無理な訳ですね
わかりやすい
647デフォルトの名無しさん
2018/10/29(月) 19:06:12.03ID:wR2M4wFA
>>638
>>639
もうちょっと教えてくださいお願いします!
648デフォルトの名無しさん
2018/10/29(月) 19:11:52.05ID:PoEM5suC
ん? 今、何でもするって言ったよね。
649デフォルトの名無しさん
2018/10/29(月) 19:21:40.44ID:TEtmhpeX
>>645
to_csvのオプションで個々の値にクォーテーションを付ける
import csv
df.to_csv(“hoge.csv”, quoting=csv.QUOTE_ALL)
650デフォルトの名無しさん
2018/10/29(月) 21:46:01.91ID:b4sCrQ/m
>>640
そんな零細プログラムの詳細をここで質問しても誰も答えないと思うぞ…

気が向いたから答えるけど次はないからな。

__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がエスケープされていたり"#"フラグメントがついてると比較できないから取り除いている。
651デフォルトの名無しさん
2018/10/29(月) 21:54:17.26ID:g2+WGN4L
>>647
一般的にHTTPレスポンスヘッダのLast-Modifiedにファイルのmtimeが入ってるからそれを取得して、ファイル書き出してからmtime更新すれば良い

curl使えるなら-vで一度レスポンスヘッダ見るといい
652デフォルトの名無しさん
2018/10/29(月) 21:58:45.40ID:Uyob8jIm
凄いねよく答えられるな、流石

gtkは全く知らないけど
wigetはwidgetのスペルミスだろうね、きっと
653デフォルトの名無しさん
2018/10/30(火) 06:58:19.30ID:wwkQj2Ri
>>651
これであってますか?

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)) # ファイルパス, (アクセス時間, 修正時間)


ファイルの作成日の取得と書き込みはどうやるんでしょうか?
654デフォルトの名無しさん
2018/10/30(火) 06:59:46.91ID:wwkQj2Ri
>>653
print(ast_modified)はprint(last_modified)の間違いです
655640
2018/10/30(火) 08:47:23.62ID:/tw9qCHj
>>650
レスありがとうございます。助かりました。
656デフォルトの名無しさん
2018/10/30(火) 09:35:33.18ID:/tw9qCHj
次はないと言割れましたがちょっと不思議なことがあったので質問させていただきます。
sorted関数を使うと、
パブリックドメインのepubで有名なgutenbergのファイル名をソートしていたのですが、
(@public@vhost@g@gutenberg@html@files@31278@[email protected]、@public@vhost@g@gutenberg@html@files@31278@[email protected]などというファイル名です)
0. 1.10, 11,12, .2などとソートされるようですが、普通に0,1,2,3,4の順番にできないのでしょうか。
というよりなぜグーテンベルクのファイルだけ、おかしなソートになるのかわかりません。
657デフォルトの名無しさん
2018/10/30(火) 09:48:16.33ID:JqsKq037
数値型は数の大小で比較されるが、
文字列型の数値は文字列として比較されるから数の大小順には並ばない
数値として比較したければ、sort(またはsorted)のkey引数に適切なキー抽出関数を与える必要がある

その本だけがと言っているが、条件を満たしていればどんなリストでもお前の言う「おかしなソート」になる
print(sorted('11', '2', '.1'))
658656
2018/10/30(火) 10:00:46.78ID:/tw9qCHj
>>657
ググったらでてきました。文字列型だと10が2より先に来るようですね。
どうもありがとうございました。
659デフォルトの名無しさん
2018/10/30(火) 12:37:59.64ID:BBRqRtLN
>>653
そんな感じ
ファイルの作成日時は取得する手段がないので諦めて
(独自ヘッダで応答してくれるサーバーを除く)
660デフォルトの名無しさん
2018/10/30(火) 12:44:20.01ID:QArnhM9r
>>649
試してみたけど無理でした
ダブルクリックで開くと問題ないけどtxtのインポートだと開いた時点で改行されるからどうしようも無いのかなこれ
661デフォルトの名無しさん
2018/10/30(火) 14:52:54.90ID:mxVOiKCI
bashからpythonプログラムを実行するときに、pycharmで簡単にデバッグしたいんですが、どうすればいいですか?
pythonコードだけの場合のやり方は分かるんですけど
print()いっぱい書くしか無いんですかね
662デフォルトの名無しさん
2018/10/30(火) 14:55:07.36ID:mxVOiKCI
>>658
float型に変換しないとちゃんとソートできないよ
663デフォルトの名無しさん
2018/10/30(火) 15:01:43.41ID:mxVOiKCI
>>661
解決しました
https://stackoverflow.com/questions/27952331/debugging-with-pycharm-terminal-arguments
664デフォルトの名無しさん
2018/10/30(火) 15:02:59.00ID:o9t78hsF
>>661
pycharm使ってparametersに引数入れてやればいい。
665653
2018/10/30(火) 15:46:23.76ID:74FRV+Zp
>>659
どうもありがとうございます
基本的に作成日の取得は出来ないんですね
666653
2018/10/30(火) 16:13:18.69ID:74FRV+Zp
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)
667デフォルトの名無しさん
2018/10/30(火) 16:47:54.22ID:mxVOiKCI
pycharmでrun/debug configurationのset wowrking directoryに、プログラムを実行したいディレクトリ(pロジェクトのルート外)を入れても、ファイルが見つからないとエラーがでます
ターミナルでは実行可能です
プロジェクトのルート外のディレクトリで実行するにはどうすればいいいか教えて頂きたいです
668デフォルトの名無しさん
2018/10/30(火) 17:27:16.66ID:o9t78hsF
>>667
ちょっと何言ってんだかわかんない。
working directoryは実行するpyhonスクリプトのディレクトリが勝手に入ると思うのだが。
見つからないと言われるファイルは何?
実行するスクリプトから参照しているファイルじゃないの?
図示してくれ。
669デフォルトの名無しさん
2018/10/30(火) 18:23:15.32ID:LRpQBEf3
>>666
前者はクラス名.変数名(ApiError.error)になっているのでクラス変数を参照しようとしている。
故にApiErrorにerrorという名前のクラス変数がなければエラーになる。

後者はインスタンス名.変数名(err.error)になっているのでインスタンス変数を参照しようとしている。
errorはインスタンス変数なのでエラーにならない。
670653
2018/10/30(火) 18:43:42.81ID:wwkQj2Ri
>>669
どうもありがとうございます
dropbox.exceptions.ApiError as err
これって、
dropbox.exceptions.ApiError
をerrって別名にしただけですよね?

ってことは
err.errorと
dropbox.exceptions.ApiError.error
は結局同じ気がするんですが、違うんでしょうか?
違いがわからないです
671デフォルトの名無しさん
2018/10/30(火) 19:22:58.06ID:LRpQBEf3
>>670
違うよ。
ApiErrorはクラス名、errはインスタンス名。
a = MyClass()
って書いたときにMyClassとaは違うものでしょ?それと同じ
672デフォルトの名無しさん
2018/10/30(火) 19:39:22.54ID:vHVA3ezu
except E as N:
と書いてある場合は
"Eが例外オブジェクトのクラスだったら例外をNに代入"
という処理になる
他のasを使った文のようにEの別名をNにする訳ではない
673デフォルトの名無しさん
2018/10/30(火) 23:12:08.40ID:tLch1bmf
普通そういう所に、クラス名など来ない

例外インスタンスが来る
674デフォルトの名無しさん
2018/10/31(水) 00:55:47.26ID:KgeV0wH8
ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.

sklearnでLinearSVCのグリッドサーチするとこの文章が永遠に出てくるんですけどどういうことですか?調べてもわかりませんでした。
675デフォルトの名無しさん
2018/10/31(水) 01:29:09.72ID:C97UeufF
そのままの意味で、毎回の学習が収束まで行ってないからイテレーション回数増やせって事では
676デフォルトの名無しさん
2018/10/31(水) 01:30:14.36ID:KgeV0wH8
>>675
増やしても出てくるんですよね…
677デフォルトの名無しさん
2018/10/31(水) 10:16:21.72ID:C97UeufF
>>676
学習率が大きすぎるとか
678デフォルトの名無しさん
2018/10/31(水) 12:17:11.83ID:/o0RsUYT
1からpythonの勉強始めて、オブジェクト指向とやらで挫折中。
クラスやら継承は何となく理解できて、
どう書けばいいのかも何となくわかるけど、
理解するのに時間がかかりそう。色々なコードを書いて覚えていくしかないのか?
経験者ってここら辺どうなんですか(しっかり理解できているかどうか)
679デフォルトの名無しさん
2018/10/31(水) 13:08:59.03ID:gqgWGRur
関数とかと同じで、クラスも便利だなあと思える具体例や機会があれば使えるようになる
何処か見たアドレス帳を作る例は分かり易そうだったけど、あれは何処だったか
でもクラス使わなくてもプログラムは出来るから直ぐに使えるようにならなくても問題ない
680デフォルトの名無しさん
2018/10/31(水) 13:20:42.47ID:gqtAU0ur
>>678
スクリプターってクラスを使うばっかりで作る方はあんまりって傾向があるから、無問題ではある。
Cも覚えてライブラリ作りも頑張ってほしいかな。
日本のプログラマーの質が問われるから。
681デフォルトの名無しさん
2018/10/31(水) 13:31:11.31ID:zGg5PO0t
日本のプログラマーの質が問われるから。

だってw
682デフォルトの名無しさん
2018/10/31(水) 13:32:03.51ID:gc+olMws
"html54200-0.html#anchor001"

と言う文字列の#の前の数字だけ抽出(542000)したいのですが、どのような正規表現を書けばよいのでしょうか?
([0-9]+)(?=#)
ではだめでした。よろしくお願いします。
683682
2018/10/31(水) 13:35:03.91ID:gc+olMws
書き忘れましたが、現状ではre.findall[54200、 0]と言うリストを取得したあと、
join()で542000にすることを考えていたのですが、アンカーから後を取得すると狂ってしまうので、
アンカーから後は抽出したくないのです。よろしくお願いします。
684デフォルトの名無しさん
2018/10/31(水) 13:40:28.98ID:fzRw5h8F
正規表現とかいらんだろ

str.lstrip("html")
str[:7]
685デフォルトの名無しさん
2018/10/31(水) 13:42:08.67ID:1NzreX+B
re.search("(¥d+).*?(?=#)",s).group(1)
686デフォルトの名無しさん
2018/10/31(水) 13:43:24.16ID:fzRw5h8F
ああそこが欲しいのか

str.lstrip("html")
str[:6].strip("-")
687デフォルトの名無しさん
2018/10/31(水) 13:43:30.37ID:BEBaW28W
>>668
見つからないと言われるファイルはrun/debug configurationのparametersで指定したものです
>>working directoryは実行するpyhonスクリプトのディレクトリが勝手に入る
それをスクリプトを実行したい場所に変更してるんですけど
688デフォルトの名無しさん
2018/10/31(水) 13:45:53.85ID:0yqa0SvH
>>682
(^0-9)|#.* を空文字に置換
689デフォルトの名無しさん
2018/10/31(水) 13:51:38.68ID:XAA9QXm2
>>680-681
2ちゃんや5ちゃんの履歴消すしかないな
690デフォルトの名無しさん
2018/10/31(水) 13:53:01.77ID:gc+olMws
レスありがとうございます。
>>684
これ以外にも似たようなファイルがあるので、できるだけ一般化しておきたいのです正規表現を考えました。
>>685
お教えいただいたところ申し訳ないのですが、Noneとでてしまいました。私の設定のどこかがまずかったのかしれませんが。
691デフォルトの名無しさん
2018/10/31(水) 13:55:03.93ID:1NzreX+B
>>690
¥dの¥はバックスラッシュに直してくれ
[0-9]でもいいよ
692デフォルトの名無しさん
2018/10/31(水) 14:00:41.64ID:gc+olMws
検索する文字列にsplit("#")[0]をつけることを思いつきました。
あんまりスマートじゃないかもしれませんがこれで行こうと思います。
皆さんありがとうございました。
693デフォルトの名無しさん
2018/10/31(水) 14:03:31.31ID:1NzreX+B
>>687
図示してくれるか、何をどうしているのかという全体の構成がわからないと、
何でつまづいているのかがわからない。
parametersにはsys.argvで受け取りたい内容を入れることはわかってるんだよね?
694デフォルトの名無しさん
2018/10/31(水) 14:20:03.17ID:BEBaW28W
>>693
他人の書いたコードがどう動いてるのか理解するためにデバッグしたいと思っていて、全体の構成はよくわかってないんですけど、それだとデバッグはできないってことなんでしかね?
あるファイルが出力される時点で動いてるコードを見たいと思ってるんですけど
695デフォルトの名無しさん
2018/10/31(水) 14:46:51.62ID:1NzreX+B
>>694
イマイチわからんけど、
bashでpythonのscriptに何らかの引数を渡して実行したいって事じゃないの?

そうだとすればbashからの引数がscript parmetersの値で、
pycharmでそのスクリプトを開いてデバッグするだけの事だと思うんだけど違うの?
696デフォルトの名無しさん
2018/10/31(水) 14:54:31.80ID:BEBaW28W
>>695
parameterで渡したはずのファイルがnot found になって困っているんです
で、そのファイルはcontent root 外なので問題なのかなとか思ってるんですけど
697デフォルトの名無しさん
2018/10/31(水) 15:00:36.67ID:1NzreX+B
python側のデバッグ(動作確認)したいだけなら、
引数にこだわらずにダイレクトにファイル指定してやればいいだけだと思うけど?
698デフォルトの名無しさん
2018/10/31(水) 15:27:06.72ID:BEBaW28W
いちいち書き換えないといけないんですかね?
せっかくコマンドライン引数で指定できるようになってるのに
699デフォルトの名無しさん
2018/10/31(水) 15:29:28.35ID:BEBaW28W
>>692
そういう文字列処理はawkとかperlのほうが簡単だよ
700デフォルトの名無しさん
2018/10/31(水) 17:36:50.33ID:DIssBnZo
def gethtml(url, prm=""):
 r = requests.get(url, params=prm)
 r.encoding = 'CP932'
 return r.text

こんな関数でエンコードがCP932(のはずの)サイトを取得して
日本語は普通に表示されてるんですけど
@とかqとかが文字化けしてしまいます。どうすれば文字化けを回避できますか?
701デフォルトの名無しさん
2018/10/31(水) 18:12:41.93ID:taLNwoKn
NEC特殊文字が化けてるのか
いま確認環境がないからどうにかできるかはわからん
702デフォルトの名無しさん
2018/10/31(水) 18:28:43.45ID:XAA9QXm2
>>> print('@とかqとか')
@とかqとか


ちゃんと表示される
703デフォルトの名無しさん
2018/10/31(水) 18:37:40.87ID:DIssBnZo
とりあえず自己解決
対象ページをファイルとして保存した後、codecsで保存したファイルをロードすることで対処できました
704デフォルトの名無しさん
2018/10/31(水) 20:12:08.83ID:gHBnMNYM
epubビューアの開発は順調に進んでるのかな
705デフォルトの名無しさん
2018/10/31(水) 20:40:39.13ID:/o0RsUYT
>>680 >>679
2年間運用(継続中)してます。
所属部署がクラウドに力入れ始めててpython勉強
しとけと言われてやってます。取りあえずスクレイピング
できるようになりたいのでコード漁ってるんですが関数さえ
使用してないように見えてて、おっしゃる通りなんですかね
最終的に何か作れるようになりたいけど、何も思いつかないし
何を目指したらいいのやら
706デフォルトの名無しさん
2018/11/01(木) 00:22:16.46ID:PBz6MbCm
>>682-692
Ruby なら、File.basename の第2引数に、.* を渡せば、. より前の部分を取れる

file_name = File.basename( "html54200-0.html#anchor001", ".*" )
#=> "html54200-0"

>>705
Ruby で、Selenium WebDriver, Nokogiri を使って、
ブラウザで自動ログインしたり、Showroom のアバターを削除したりしてる

他にも、5ch の書き込み内から、画像のURL だけを拾って表示したり、
主に、ブラウザを使った、webサイトの自動テストに使う

その際のPage Object は、典型的なオブジェクト指向による、テスト方法
707デフォルトの名無しさん
2018/11/01(木) 04:05:25.76ID:rG6revia
>>705
まずはDomを理解汁
708デフォルトの名無しさん
2018/11/01(木) 10:34:25.18ID:z733lC2q
>>705-707
スレチ
709デフォルトの名無しさん
2018/11/01(木) 10:58:02.80ID:LBGTfI8S
>>698
言ってる事が矛盾してるんだけど。
>他人の書いたコードがどう動いてるのか理解するためにデバッグ
>いちいち書き換えないといけないんですかね?

理解すれためなら、一回入力するだけでいちいち書き換える必要はないだろ。
710デフォルトの名無しさん
2018/11/02(金) 23:07:04.01ID:WjnTpSxg
MySQL connectorの使い方を教えてください。

MySQLのTIME型をSELECTしてfetchoneすると、datetime.timedelta型になってしまいます。
datetime.time型で取得するにはどうすれば良いのでしょうか?
711デフォルトの名無しさん
2018/11/03(土) 07:29:30.23ID:ddSYlxYG
>>710
がいしゅつぽ
https://teratail.com/questions/141268
712デフォルトの名無しさん
2018/11/03(土) 10:46:05.35ID:j00DZJyr
rawで引っ張って自分でconvertする。
列の仕様がはっきりしているなら、たぶんこれが一番速い。
713デフォルトの名無しさん
2018/11/03(土) 22:09:03.24ID:+dBdxEJM
>>667
まだサポートされていない機能だったらしいです
一応報告
https://youtrack.jetbrains.com/issue/IDEA-88717
714デフォルトの名無しさん
2018/11/03(土) 22:14:11.53ID:+dBdxEJM
pyファイルに引数としてファイル渡して実行しながらデバッグしたいんですけどideでできますか?
715デフォルトの名無しさん
2018/11/04(日) 00:16:25.00ID:NVjVjeVc
さすがにできないと困るでしょう。
716デフォルトの名無しさん
2018/11/04(日) 13:42:02.03ID:5RY1Lh2I
>>711
これあかんやつやω
環境変わったら動かなくなるぞ
717デフォルトの名無しさん
2018/11/04(日) 23:14:32.54ID:mnXqRc1x
Excelの全シートの特定セルから値を抽出したいんですが、

import openpyxl
book = openpyxl.load_workbook('xxx.xlsx')
all_sheet = book.sheetnames
for 抽出 in all_sheet:
print(抽出.cell(row=1, column=1).value)

ってやってもうまくいきません。
ご指導をお願いします。
718デフォルトの名無しさん
2018/11/04(日) 23:33:00.89ID:H3HfNEok
Gmail inboxでメール作成する時、文字の色を替えたり背景色を付けたりは、
Pythonにやらせるのはやはり難しいのでしょうか
例えば文章を[b]と[/)で挟んでも、何事も無く……
ご指導を…m(_ _)m
719デフォルトの名無しさん
2018/11/04(日) 23:45:43.19ID:f0WItr4A
関数の引数の一つをオプションにしたいのですが
デフォルトの値を関数内で決めたいです。例えばイメージとしては

def Function(data, average):

としてaverageのデフォルトの値を引数dataの平均値にしたいです。
average = np.(data)
のようにしてもエラーが出てきます。どのようにすればよいでしょうか?
720デフォルトの名無しさん
2018/11/05(月) 00:12:47.04ID:WItML0Cb
>>717
all_sheet = book.sheetnames

all_sheet = book.worksheets

>>719
やりたいことはよう分らんが
np.(data)

np(data) #.(コンマ)を抜く
とすればエラーが出なくなるんでは
721デフォルトの名無しさん
2018/11/05(月) 00:22:33.69ID:Forp8UuV
>>719
まずエラーメッセージを読む、そしてレスに添え省かない
もしデフォルト引数に書いたなら定義時に評価されるので
None等にしておき呼び出された時に判定して代入するなり
722デフォルトの名無しさん
2018/11/05(月) 00:28:55.36ID:8OhTTD0N
>>719
平均を取るのは np.mean() だと思う。(import numpy as npしてればの話だけど)
関数の引数を他の引数のデフォルト値に設定したりはできないので

def Fucntion(data, average=None):
 if average is None:
   avarage = np.mean(data)

と書くのが普通じゃないかな
723デフォルトの名無しさん
2018/11/05(月) 00:39:16.13ID:Dut8FIaQ
719です。
>>722で解決しました。
ありがとうございました。
724デフォルトの名無しさん
2018/11/05(月) 10:25:00.99ID:h9xlJLA6
Slackでは<{url}|{title}>の形式で書けば、リンクとして表示してくれるので、

slackToken = 'example'
url = 'http://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 <<http://example.com<;タイトルです>>>って表示になって、バグってしまいます。
今はとりあえず、text2の最初と最後が<>だったらその文字を削除してるんですが、text2に<>を含んだままSlackに送るにはどうやるんでしょうか?
725デフォルトの名無しさん
2018/11/05(月) 13:32:25.59ID:o5QGnfIr
&lt;
&gt;
726デフォルトの名無しさん
2018/11/05(月) 13:46:32.33ID:h9xlJLA6
どうもありがとうございます!
727デフォルトの名無しさん
2018/11/05(月) 16:48:18.27ID:0An2vgEj
list.__getitemって何を返すんですか?
調べてもわからなかったんで教えてください
728デフォルトの名無しさん
2018/11/05(月) 17:18:39.84ID:o5QGnfIr
a=[1,2,3]
a.__getitem__(1) # 2
729デフォルトの名無しさん
2018/11/05(月) 17:19:31.32ID:+kDBf8bs
>>727
スライスの演算をオーバーロードするメソッドやで
730デフォルトの名無しさん
2018/11/05(月) 18:10:05.24ID:0An2vgEj
>>728
>>729
heapq.nlargest(n, iterable, key=None)のkeyにlist.__getitem__の結果を入れることに、なんの意味があるんでしょうか。
731デフォルトの名無しさん
2018/11/05(月) 18:29:42.84ID:ll2Vxm5g
これの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/
732デフォルトの名無しさん
2018/11/05(月) 18:33:34.89ID:ll2Vxm5g
あっれ?この野郎!
本とコードが違うじゃないか
独学プログラマーめ・・・
本だと変数のshowがnewに書き換えられてる
733デフォルトの名無しさん
2018/11/05(月) 23:28:07.21ID:i/g7f+lV
>>724-726
Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず
734デフォルトの名無しさん
2018/11/06(火) 09:03:03.85ID:oDFoDpyv
>>731
本が何かわからんけど、
forの中はtv[i] = show.upper()だけで大丈夫。
735デフォルトの名無しさん
2018/11/06(火) 11:06:31.30ID:cQb5p7fE
python+gtkでepubビューアを改造している者ですが、
htmlファイルのアンカーのスクロール座標をjavascriptを使わずにpythonだけ取得することはできるんでしょうか?
具体的な用途としては、ブックマークの時のチャプター名や、
Linuxのevince(document viewer)の様に、画面をスクロールして次のチャプターの領域に入ると自動で、
左のチャプターリストビューの選択もそのチャプターのところに移動してほしいのですが、(クリック扱いになると
チャプターの最初に戻されてしまうので、青い選択が移るだけにしたいのです。)
言葉でうまく説明できなくてすみません
736デフォルトの名無しさん
2018/11/06(火) 11:20:08.33ID:VRf3OGgv
>>734
ありがとう!
「独学プログラマー」って本です

これが終わったらdeeplearningの本読んでAI作るんだ・・・道は遠そう
737デフォルトの名無しさん
2018/11/06(火) 17:51:56.07ID:Zf4d0x7S
htmlで
<td class=" "><a href=" ">TEXT</a></td>
のうちの<a href>内の" "の中身だけを取り出すにはどうすればいいですか?
738デフォルトの名無しさん
2018/11/06(火) 19:12:51.68ID:B9fQWZZ6
>>737
何のモジュール使ってhtmlよんでんだよ


セレニウムなら「href属性 取得 selenium python」でググれ
739724
2018/11/06(火) 20:09:21.47ID:QHiQfJwC
724ですけど、変数内に~~や**があるとそれらもSlack側で以下のように反応してしまいました。

~あいうえお~
と波線で囲めば打ち消し線に、
*あいうえお*
だと、太字です。

記号は記号としてポストするにはどうしたらいいんでしょうか?
740デフォルトの名無しさん
2018/11/06(火) 20:13:57.06ID:B9fQWZZ6
*→ *
~→ ~
741デフォルトの名無しさん
2018/11/06(火) 20:14:48.35ID:B9fQWZZ6
(´Д`lll)&to#は半角でな
*→ &#126;
~→ &#42;
742724
2018/11/06(火) 20:28:42.52ID:QHiQfJwC
>>741
どうもありがとうございます!
試してみます!
今のところ分かったのはこの3つなんですが、記号類をまとめてちゃんと表示する仕組みってありますか?
今ちょっとググってたら
xml.sax.saxutilsのescapeだと<>はエスケープしてくれそうな感じでした。
743デフォルトの名無しさん
2018/11/06(火) 20:31:38.28ID:0p0MEBcD
"mrkdwn": false
744724
2018/11/06(火) 20:32:44.30ID:QHiQfJwC
あと、混乱してしまってるんですが、変数textの中にもし<、>、*、~のいずれかが含まれてたら、<、>、&#126;、&#42;に置き換えるには、if文でどう書くんでしょうか?
745724
2018/11/06(火) 20:36:27.93ID:QHiQfJwC
何度もすみません
import xml.sax.saxutils from escape

import htmlのhtml.escape
はどう使い分けるんでしょうか?
746デフォルトの名無しさん
2018/11/06(火) 20:51:13.02ID:B9fQWZZ6
>>744
findを使ってtextを検索し、-1よりでかい数が帰ってくるかどうかためす。
if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
747デフォルトの名無しさん
2018/11/06(火) 20:56:52.27ID:B9fQWZZ6
(つづき)
でもってif文のインデントの中に
text=text.replace('before','after').replace('before','after').replace('before','after').replace('before','after')

beforeにはそれぞれ<、>、*、~を入れて
aterには&#42;とかそういうのを書いておく
748724
2018/11/06(火) 20:58:43.90ID:QHiQfJwC
>>746
なるほど!ありがとうございます!

> if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
を途中で改行したい場合はどうやるんでしょうか?
バックスラッシュ付けるっぽいんですが、以下だとエラーになります

if text.find(’<’) > -1 or text.find(’>’) > -1 \
or....(略)
749724
2018/11/06(火) 20:59:35.67ID:QHiQfJwC
>>747
ありがとうございます!!
750デフォルトの名無しさん
2018/11/06(火) 21:00:46.35ID:B9fQWZZ6
>>745
前者は基本的に & 、 < 、および > が対象 だが 他の文字もエスケープ汁と命令することが可能

後者は & 、 < 、および > が対象
751デフォルトの名無しさん
2018/11/06(火) 21:08:58.42ID:0p0MEBcD
特殊な記号たち
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
752724
2018/11/06(火) 21:12:17.61ID:QHiQfJwC
>>750
どうもありがとうございます。
例えば、今回みたいに*や~も含めたいって場合なら前者で指定したらよいって事ですね。
753デフォルトの名無しさん
2018/11/06(火) 21:13:16.40ID:B9fQWZZ6
>>748
途中で\入れるのって
pyrhon上で直接コマンド打ってるときだけじゃね?

pyファイルに書いたのを実行させるときはイラネ
754デフォルトの名無しさん
2018/11/06(火) 21:15:03.75ID:B9fQWZZ6
>>752
んだな
詳しくは>>751と https://docs.python.jp/3/library/xml.sax.utils.html あたりをよんでくれ
755724
2018/11/06(火) 21:15:09.62ID:QHiQfJwC
>>751
どうもありがとうございます!
他にもいくつかあったんですね。
それらの記号を >>746-747>>745の前者の方で試してみます
756724
2018/11/06(火) 21:21:01.58ID:QHiQfJwC
>>753
if text.find(’<’) > -1 or text.find(’>’) > -1
or....(略)

だと、エラーになってしまいました。
757デフォルトの名無しさん
2018/11/06(火) 21:21:04.81ID:B9fQWZZ6
>>753
>pyファイルに書いたのを実行させるときはイラネ
oh
オレ無意識に条件文のif以降を()でくくって最後に:付ける癖があるわ

 ↓
if (text.find(’<’) > -1 or
 text.find(’>’) > -1 or
 ....(略) ...):
        ↑

みたいに()でかこってやれば何行にわけてもおk
758724
2018/11/06(火) 21:28:34.65ID:QHiQfJwC
>>757
へぇ〜
こんな方法もあるんですか!今試したら動いたけれど、
flask8だとW503 line break before binary operator
って言うエラーが出てました
759デフォルトの名無しさん
2018/11/06(火) 21:33:57.41ID:B9fQWZZ6
>>758
アッハイ

or は 行の最後に書かずに
先頭にかけやこのデコスケ野郎

っていうエラーすね。

つまり推奨は
if (text.find(’<’) > -1
or text.find(’>’) > -1
or ....(略) ...):

汚いソースコードの書き方しててすみまそん。。。
760デフォルトの名無しさん
2018/11/06(火) 21:37:10.20ID:B9fQWZZ6
詳しい解説は https://github.com/PyCQA/pycodestyle/issues/513 あたりかな
761724
2018/11/06(火) 21:46:50.14ID:QHiQfJwC
>>759
いや、ありがとうございます。。。
2行目を or から始めてもW503でした。あと、E129も出でます。
E129は2行目の or を if の i から数えて8文字インデントしたら消えました。
762デフォルトの名無しさん
2018/11/06(火) 22:02:51.74ID:B9fQWZZ6
>>761
検証してくれるやつのバージョンによって推奨される書き方がちガッ獲るようだ… https://lintlyci.github.io/Flake8Rules/rules/W503.html

今どきはどーするのが一番正しくてグッドなのか、
誰か他の回答者を待とう (´・ω・`)
763デフォルトの名無しさん
2018/11/07(水) 00:09:47.09ID:kPzZvNDI
>>738
beautifulsoupとurllibっす
764デフォルトの名無しさん
2018/11/07(水) 00:53:42.51ID:QtFDoqkC
>>763
beautifulsoupなら
soup.a['href']
soupはBeautifulSoupオブジェクトな
765デフォルトの名無しさん
2018/11/07(水) 01:15:28.23ID:+978RLDn
>>744
Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず。
ライブラリを探せ

全言語にある!
Google に「html escape」と入れれば、補完で全言語が出てくる。
php, javascript, java, ruby, python ズラズラっと

そういう一般的な関数を、自作したらダメ。
自作したものは、ライブラリよりも品質が低いから
766デフォルトの名無しさん
2018/11/07(水) 01:23:13.15ID:mTAgM1WN
キチガイ避けには「ruby」でNGワード登録が簡単・便利
767724
2018/11/07(水) 10:31:30.88ID:eBlvm3p7
>>754
from xml.sax.saxutils import escape
text = 'あいうえお'
text = f'~{text}~'
text = escape(text, {'*': '&#42;', '~': '&#126;', '': '', '': ''})
上は実際には半角です。

textをSlackに送信すると、Slackでは、~あいうえお~と表示して欲しいんですが、
&#126;あいうえお&#126;
と、表示されてしまいます。
どこが間違えてますか?

あと、
* を置き換える文字列は&#42;(半角で)のように、
` を置き換える文字列
_ を置き換える文字列
ってどうやって調べたらよいんでしょうか?

>>762
自分のバージョンはPython 3.6.4、flake8 3.6.0でした
768デフォルトの名無しさん
2018/11/07(水) 12:02:53.55ID:gi2gLu8r
最低限↓に目を通してからslackの話を続けて貰えるか?
https://api.slack.com/docs/message-formatting#how_to_escape_characters
769デフォルトの名無しさん
2018/11/07(水) 13:51:51.54ID:A06G1xNF
https://docs.python.jp/3/library/html.html
770デフォルトの名無しさん
2018/11/07(水) 18:19:51.85ID:aDO62va+
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

>>> 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 だぁぃすき
771デフォルトの名無しさん
2018/11/07(水) 18:32:37.21ID:fvfWV4IU
conveert dotup.org1686239.png -flop dotup.org1686239_rev.png

ImageMagickのが簡単だよ
チンポ だぁいすき
772デフォルトの名無しさん
2018/11/08(木) 17:18:54.41ID:vDDK8kog
if random.randint(0,1):
step=1
else:
step=-1

この場合のrandom.randintってどういう意味?
乱数で0か1が発生した場合に1、その他の数字のときelseって意味じゃないよね?
よくわからん
773デフォルトの名無しさん
2018/11/08(木) 17:21:04.79ID:/8FytPr/
スクレイピングなんですがjava?でコンテンツが作られている動的なページはSeleniumのようなwebBrowserをさわって値を取るしか無いんでしょうか
vbaで似たようなのを作ったんですが読み込み等が遅く、処理の高速化を考えていたのですがSeleniumだと実現できないでしょうか
774デフォルトの名無しさん
2018/11/08(木) 17:44:25.17ID:AFbSMZjK
random.randintで0がでたらfalse
1が出たらtrueじゃない?
775デフォルトの名無しさん
2018/11/08(木) 18:13:45.79ID:KFTKKYEO
>>774
コード読むとその解釈で合ってると思うけど、そのプロセスが理解できない
randint(a,b)ってa~bの中で整数を生成するんだよね?
randint(0,1)なら0か1のどちらかを生成する
つまりわからん
776デフォルトの名無しさん
2018/11/08(木) 18:30:34.85ID:AFbSMZjK
多分わからないのはbool型についてかな
ちょっと検索して出てきたから読んだらいいかも
https://note.nkmk.me/python-bool-true-false-usage/
777デフォルトの名無しさん
2018/11/08(木) 18:47:09.00ID:5iWhW6P3
>>775
PyhonのTrue, Falseは0, 1と等価
実際True+Trueを評価すると2になる
778デフォルトの名無しさん
2018/11/08(木) 19:50:06.88ID:KFTKKYEO
TrueとFalseがランダムに生成されるんだろ
つまりif節の中にTrueもFalseも入ってることになんね?
779デフォルトの名無しさん
2018/11/08(木) 19:51:27.62ID:UKor1bXF
ならんよ>>778
780デフォルトの名無しさん
2018/11/08(木) 19:54:09.65ID:KFTKKYEO
俺がアホなのか
全くスッキリと理解できないw
781デフォルトの名無しさん
2018/11/08(木) 20:06:42.76ID:AFbSMZjK
if random.choice([True, False])
こう書き換えれば少しはわかりやすいかな
782デフォルトの名無しさん
2018/11/08(木) 20:21:32.77ID:KFTKKYEO
if random.randint(0,1)==True:
と同じ意味だよね?
これなら簡単に理解できるけど、==Trueがなくても文法として成立するのがよくわからない
783デフォルトの名無しさん
2018/11/08(木) 20:23:05.84ID:UKor1bXF
暗黙の了解で省略されてるだけ
英語の関係代名詞的なさむしん
784デフォルトの名無しさん
2018/11/08(木) 20:30:18.68ID:KFTKKYEO
>>783
マジかよ
人に優しくない言語やんけ!
何時間悩んだと思ってんや
785デフォルトの名無しさん
2018/11/08(木) 20:32:58.15ID:UKor1bXF
もう忘れないだろうから
悩んだことはむだではない
タブンネ
786デフォルトの名無しさん
2018/11/08(木) 21:02:16.60ID:dNW1RU/q
主流言語はみんなそんな感じなんだけどPythonは比較演算子強制でも良かった気もしないでもない。
でも、
bool値を返すisBigメソッドを実装したクラスChinkoがあったとして…
myChinko = new Chinko(16)
if myChinko.isBig():
と自然な英文風に書けるというスゴイ利点もある!
ちなみに12以下だとFalseを返します
787デフォルトの名無しさん
2018/11/08(木) 21:03:49.60ID:JRn9O86F
>>778
1とTrue、0とFalseを同一として認識するのは明らかに間違っている
788デフォルトの名無しさん
2018/11/08(木) 21:04:47.54ID:j6Jh7/pK
自然言語風に書けるのはデメリットやぞ
789デフォルトの名無しさん
2018/11/08(木) 21:15:17.71ID:dNW1RU/q
冗談やで。俺は比較演算強制がよかった
790デフォルトの名無しさん
2018/11/08(木) 21:16:04.42ID:fqxKHZms
ネェ、チンコダッテ?( ´д)オクサン(д` )アラヤダワァ
791デフォルトの名無しさん
2018/11/08(木) 21:53:09.37ID:QbjXdk8c
>>782
==trueとか言うゴミコード書くなよ
792デフォルトの名無しさん
2018/11/08(木) 22:07:08.42ID:j6Jh7/pK
ゴミって些末な事ばかり気にしてゴミコードってゆうよねw
793デフォルトの名無しさん
2018/11/08(木) 22:09:00.10ID:Sh+rXr23
言うをゆうって書く人は初等教育を受けてるのかしら
794デフォルトの名無しさん
2018/11/08(木) 22:14:43.87ID:j6Jh7/pK
言うはゆうて読むんやで
795デフォルトの名無しさん
2018/11/08(木) 22:24:11.22ID:lbifDjkh
誰も読み方について話してないぞ。相当な馬鹿だな
796デフォルトの名無しさん
2018/11/08(木) 22:30:06.41ID:j6Jh7/pK
バカのくせに人の事バカってゆうの恥ずかしいよバカw
797デフォルトの名無しさん
2018/11/08(木) 22:32:56.23ID:KFTKKYEO
ちなみにこういう省略って他にどんなのある?
他の文法で省略あったらまた騙されるなー
798デフォルトの名無しさん
2018/11/08(木) 22:53:42.09ID:PhR3Qfyw
perlはエゲツナイぞー
799デフォルトの名無しさん
2018/11/08(木) 23:07:43.11ID:QbjXdk8c
==Trueが必要だと思う奴はその戻り値に対しても==Trueしとけw
800デフォルトの名無しさん
2018/11/08(木) 23:17:51.55ID:yMIHOz65
the reason why ~ みたいなもんだな
801デフォルトの名無しさん
2018/11/08(木) 23:20:05.30ID:QHwNiY6E
>>773
5ch みたいな動的または、ajax などの非同期処理で、ページの内容を取得しているものは、
その内容が読み込まれるまで、その要素や内容は存在しない

5ch なら、まず空のHTML を送ってくるから、ajax で読み込まれるまで、内容が存在しない

漏れはRuby で、Selenium WebDriver を使って読み込んでいる。
その要素が出現するまで、wait される。
簡単なのは10秒ぐらい、sleep すればよい

5ch なんか、バグが多いから、JavaScript が無限ループしたりして、
30秒待っても、Selenium WebDriverから、そのページへアタッチ出来ないこともある
802デフォルトの名無しさん
2018/11/08(木) 23:22:35.59ID:a5prroZo
「Ruby」でNGワード登録が簡単・便利
803デフォルトの名無しさん
2018/11/08(木) 23:44:41.94ID:mrd9U+a3
50%の確率で2つの処理を選択したい場合によりスマートな書き方はありますか?今はべたべたにこう書いてます
if np.random.rand() > .5:
do1()
else:
do2()
804デフォルトの名無しさん
2018/11/09(金) 02:19:40.37ID:19dRG8QF
(do1 if np.random.rand() > .5 else do2)()
805デフォルトの名無しさん
2018/11/09(金) 04:00:11.42ID:bq31MDXV
すごい!そんな書き方があるのですね。
よければ何という記述方法か教えてもらえますか?(どうやって調べたら出ますか)
806デフォルトの名無しさん
2018/11/09(金) 04:18:51.46ID:Je0vwCJT
np使う理由はあるの?
807デフォルトの名無しさん
2018/11/09(金) 08:30:00.34ID:0hfWLYYN
pycharmでshadows name xxx from outer scopeっていうwarningが出るんだけど、これは何が問題なんや
808デフォルトの名無しさん
2018/11/09(金) 09:42:26.78ID:VXODTqLC
同じ名前の変数が定義されたことで
外のスコープの変数が隠されている
という警告
809デフォルトの名無しさん
2018/11/09(金) 09:43:04.08ID:VXODTqLC
Warningに書いてある通りだな
810デフォルトの名無しさん
2018/11/09(金) 10:18:23.10ID:19dRG8QF
>>805
三項演算子
可読性下がるから使い過ぎはお勧めしない
811デフォルトの名無しさん
2018/11/09(金) 11:58:21.04ID:p9aTnaT/
ちょうど1/2の確率が欲しいとき
if random.rand(0, 1) > .5:
が正解?
それとも
if random.rand(0, 1) >= .5:
が正解?
どっちも間違い?
812デフォルトの名無しさん
2018/11/09(金) 12:04:45.46ID:mwKVhTqG
どっちも間違い

だが少なくとも
random.rand() > .5
では偏りが生じる
813デフォルトの名無しさん
2018/11/09(金) 12:40:54.60ID:0q7AG6jo
>>811
0×1の配列?
814デフォルトの名無しさん
2018/11/09(金) 12:41:31.35ID:ZavMgXDP
Openpyxlでエクセルシートをリスト化した後
シート名を条件に抽出することはできますか?
すみません、調べてもわかりませんでした。
815デフォルトの名無しさん
2018/11/09(金) 13:11:43.28ID:XhL65g6u
>>811俺だったらこうする
if random.randrange(2):

「一定回数抽選すると、AとBの出現率が必ず1:1になる」ことを求めているならシャッフルを使う
a=[0]*50+[1]*50
random.shuffle(a)
816デフォルトの名無しさん
2018/11/09(金) 13:44:15.88ID:lOOqdq/Y
deapのbase.Fitnssでweightsの動き方がよくわからないんですが
仕様を説明したサイトはありますか?
817デフォルトの名無しさん
2018/11/09(金) 13:47:08.53ID:iep8j/69
>>814
シート名は .get_sheet_names()でリストでとってこれるから
とってきたあと
1つ1つのシート名でifすればいいだろ
818デフォルトの名無しさん
2018/11/09(金) 13:49:25.70ID:iep8j/69
>>816
https://deap.readthedocs.io/en/master/api/base.html はもう読んでる?
819デフォルトの名無しさん
2018/11/09(金) 14:27:01.20ID:D1KL18mO
python2.7 pandasのto_csvでの出力、文字コードについてです
utf8のdfがありコレをsjis(sjisで表現出来ない文字は無視や?置き換えで良い)にしてcsvにしたいです
調べると
with codecs.openでencoding='cp932' errors='ignore'で出力ファイルを開き
df.to_csv(ファイルオブジェクト, encoding='cp932')
で出来ると書いてあったのですが普通にUnicodeエラー出ます
何が原因でうまくいかないんでしょうか、また他の解決法なにかありませんかね
820デフォルトの名無しさん
2018/11/09(金) 15:23:15.00ID:iep8j/69
>>819
ソースコードの文字コードは何で書いてる
OSは何よ

Unicodeエラーの内容は略さず書いて
821デフォルトの名無しさん
2018/11/09(金) 16:18:25.51ID:aAkZVDrn
PythonがWEBで覇権取れば最強のスクリプト言語になるのにな
Djangoとかいうゴミはいいから早くRailsとかLaravel並みにいいフレームワーク作ってくんね?
822デフォルトの名無しさん
2018/11/09(金) 17:36:50.37ID:rwK1ciOK
GoogleってWEB開発にPython使ってるらしいけどフレームワークはDjangoなのかな?
社内で別のフレームワーク使ってんだったら公開してほしいな
823デフォルトの名無しさん
2018/11/09(金) 19:22:48.23ID:lOOqdq/Y
>>818
それは読んだんですが多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのかが書いていなかったので
824デフォルトの名無しさん
2018/11/09(金) 19:31:33.70ID:iep8j/69
>>823
weights って重み付けだから、
いっぱいのときも逐一自分で指定するもんじゃないの

>多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのか
俺にはちょっとなにいってるのかよくわかんない(´・ω・`)

各重みの最適値さがしなら
プロジェクト・しらみつぶし が たぶん一番いい・・・
825デフォルトの名無しさん
2018/11/10(土) 12:15:02.20ID:seRmY1tJ
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"がよくわからないんですが、
つけないとエラーになるので必要なのでしょうが、どのような意味なのでしょうか?
826825
2018/11/10(土) 12:26:13.87ID:seRmY1tJ
質問ばかりで申し訳ないのですが、なぜこの式でreduceを使っているのかもよくわかりません。
reduceでぐぐるとすべて畳み込んで計算すると書いてあるところが多いのですが、関数がl.append(x) or lなので違うのでしょうか?
827デフォルトの名無しさん
2018/11/10(土) 13:07:05.83ID:u9Es1usX
>>825-826
条件式(他言語のいわゆる三項演算子や条件演算子と呼ばれる物の代替)
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
828826
2018/11/10(土) 13:46:44.78ID:seRmY1tJ
>>827
丁寧なレスありがとうございます。list.appendの戻り値がNoneだなんて意識しないで使ってました。
破壊的メソッドだからなんだそうですが、自分でもうちょっと勉強してみます。
829826
2018/11/10(土) 15:23:32.40ID:seRmY1tJ
if x not in l else lの"else l"を省略すると
SyntaxError: invalid syntax
が出るんですが、通常のif文の場合はelse以下がなくても問題ないと思うのですが、
なぜこの場合はだめなのでしょうか?
830デフォルトの名無しさん
2018/11/10(土) 15:39:38.87ID:hLxIIZfE
>>829
それは
> if x not in l else l
じゃなくて
> l if x not in l else l
なの
>>827が言う条件式って奴
式1 if 条件 else 式2
で、条件が真と評価されるなら 式1
条件が偽に評価されるなら 式2
を返す
なので else 式2 がないと困っちゃう
(None を返すという選択肢もあったとは思うけど)
831デフォルトの名無しさん
2018/11/10(土) 15:48:08.55ID:seRmY1tJ
>>830
else lのlをNoneにしてみたら、
TypeError: argument of type 'NoneType' is not iterable
とでてしまいました。
でもなんとなく前よりはこの式がわかったような気がします。
どうもレスありがとうございました。
832デフォルトの名無しさん
2018/11/10(土) 17:30:59.29ID:16GnFLu/
>>829
>>827が条件式(他言語に倣って三項演算子と呼ばれることも)だって教えてくれてるじゃん

値1 if 条件 else 値2
条件が真と評価されたら値1を、偽と評価されたら値2を返す
833デフォルトの名無しさん
2018/11/10(土) 18:12:02.74ID:hLxIIZfE
>>825
そもそもこのラムダ式がちょっとトリッキーなんだよね
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'], [])
ってやると思う
834デフォルトの名無しさん
2018/11/10(土) 18:14:37.23ID:GvdPZ72d
>>831
lをNoneにするってのは830の間違い
835デフォルトの名無しさん
2018/11/10(土) 18:59:26.03ID:8RKiULCU
>>830
偽の時は空値返す二項版条件演算子みたいな糞を実装してる言語って何?
有効な使い道が思いつかん
836デフォルトの名無しさん
2018/11/10(土) 19:30:23.53ID:hLxIIZfE
>>835
もっと用途限定だけどC#のnull条件演算子が近いかな
837デフォルトの名無しさん
2018/11/10(土) 19:41:48.00ID:LcpJu9SU
>>836
用途限定どころか目的からして完全に別物
838デフォルトの名無しさん
2018/11/10(土) 20:21:45.94ID:hLxIIZfE
はいはい w
839デフォルトの名無しさん
2018/11/10(土) 20:55:57.38ID:2vwbQ9QW
恥ずかしい奴だな
840デフォルトの名無しさん
2018/11/10(土) 21:43:36.94ID:Kjka4QLz
やっかいなnullを扱いやすくする為に実装された演算子と
偽を受け取ったぐらいで無駄にNoneを返す>>830がかんがえたさいきょうのじょうけんしきなんて別物どころか真逆だよな
実際、Noneを返したんじゃ>>831こうなるだけだし
841デフォルトの名無しさん
2018/11/10(土) 21:48:48.39ID:zCsM6it1
理解できないお前のことだなww
842デフォルトの名無しさん
2018/11/10(土) 21:52:55.81ID:hLxIIZfE
>>840
> やっかいなnullを扱いやすくする為に実装された演算子と
実装の目的と

> 偽を受け取ったぐらいで無駄にNoneを返す>>830
演算子の機能の区別もつかないアホだったのか…

> 実際、Noneを返したんじゃ>>831こうなるだけだし
マジでアホなの?
リスト要求される所にNone与えただけの話だぞ、それ w
843デフォルトの名無しさん
2018/11/10(土) 21:55:57.70ID:nSd/jMeD
Nane「私のためにケンカしないで!!」
844デフォルトの名無しさん
2018/11/10(土) 22:00:38.04ID:jxhvzDRc
>>843
誰だお前は
845デフォルトの名無しさん
2018/11/10(土) 22:04:59.17ID:4gO6mVIc
>>844
ウンコ「おならです」
846デフォルトの名無しさん
2018/11/10(土) 22:06:25.70ID:hPdKPv7V
肛門「よし通れ!」
847デフォルトの名無しさん
2018/11/10(土) 22:10:53.93ID:aFLDlH5i
くだすれ貫禄のくだらなさで不覚にも吹いた
848デフォルトの名無しさん
2018/11/10(土) 22:11:20.00ID:7gTt1pZ+
まだまだ
849デフォルトの名無しさん
2018/11/10(土) 22:19:58.98ID:WPq8ZeKj
判定を失敗すると恐ろしいことになるんだなあ…
850デフォルトの名無しさん
2018/11/10(土) 22:55:34.73ID:jXgJ1KMY
早まってnull条件演算子とかエルビス演算子って言わなくて良かったわ
851デフォルトの名無しさん
2018/11/10(土) 23:22:42.45ID:sSiPAoa8
>>850
そういうのは需要があるから実装されてるんだよ
Noneなんて返されても無駄なチェックコードが増えるだけ
単にelseで適切な値を返すだけでいい
852デフォルトの名無しさん
2018/11/10(土) 23:50:26.34ID:hLxIIZfE
>>851
> 単にelseで適切な値を返すだけでいい
仮定の話しができない低能乙 w
853デフォルトの名無しさん
2018/11/11(日) 08:48:46.33ID:rNrNUiDF
真っ赤っかですな
単芝も紅葉するんだ
854デフォルトの名無しさん
2018/11/11(日) 08:57:40.67ID:cKV3qXJe
低能先生は低能連呼から最終的に殺人に走ったので気をつけてね。
855デフォルトの名無しさん
2018/11/11(日) 10:16:25.06ID:3JRsWB+V
>>854
ソースよろしくww
856デフォルトの名無しさん
2018/11/11(日) 10:30:49.61ID:ZIQY97Xr
https://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
857デフォルトの名無しさん
2018/11/11(日) 11:34:11.51ID:LFgZgESJ
へーっ、こんな事件があったんだな
フルボッコされての犯行か
ならまともな反論もできなくなった>>853とか言ってやれよww
858デフォルトの名無しさん
2018/11/11(日) 12:06:11.66ID:uw9PiA4L
この自己愛
同種だな
859デフォルトの名無しさん
2018/11/11(日) 13:13:23.27ID:3JRsWB+V
謎の一体感w
一般人には理解不能
860デフォルトの名無しさん
2018/11/11(日) 13:36:01.34ID:96wp+TZd
>>828
まさか普段ruby使ってる?
861デフォルトの名無しさん
2018/11/11(日) 14:18:08.94ID:SClia95W
ルビバレする用語:
破壊的・非破壊的
クラスメソッド
特異メソッド
862デフォルトの名無しさん
2018/11/11(日) 16:41:23.18ID:kuiXddTN
ファイルに定義されている関数名を知る方法ありますか?
関数名だけです。
863デフォルトの名無しさん
2018/11/11(日) 17:56:29.41ID:96wp+TZd
globals()
locals()
864デフォルトの名無しさん
2018/11/11(日) 23:32:22.24ID:ARqR0CiK
>>828
Ruby ではメソッド名に、! がつく、破壊的メソッドが、nil を返すことがある。
破壊的メソッドとは、レシーバ自身を変更するもの

line.chomp! # 末尾の改行を削除する
line.empty? # 空行かどうか?

chomp! は、末尾に改行が無くて、削除しなかった場合に、nil を返す

line.chomp!.empty?

上記のようにメソッドチェーンすると、nil から、empty? メソッドを呼び出そうとして、
エラーになるから、メソッドチェーンできない

ただし、最近のバージョンでは、nil 許容演算子が追加されて、
メソッドチェーンしてもエラーが起きなくなった

jQuery では、メソッドチェーンしてもエラーが起きない
865デフォルトの名無しさん
2018/11/12(月) 01:26:40.44ID:BcZUmovG
「Ruby」をNGワード登録するのが簡単・便利
866デフォルトの名無しさん
2018/11/12(月) 21:09:17.74ID:XFjJOyuw
pd.read_html(url)で読み込んだテーブルのある列をtable.sort(by= )でソートしたんだけどその結果が
0
1
2
3
4
1
2
3
みたいに微妙な並び替えになっちゃうのはデータにどんな原因があるの?
867デフォルトの名無しさん
2018/11/12(月) 22:43:29.16ID:ku9n7fSu
#シート名取得
all_sh = book.sheetnames

#シート名が「ss」で終わるものを抽出
all_sh_ss = [s for s in all_sh if s.endswith('ss')]
print(all_sh_ss)

・・この後、シート名が「ss」で終わるシートだけから
特定セルA1の値を抽出したいんですが・・・行き詰まりました。
わかる方いたらご助言をお願いします。
868デフォルトの名無しさん
2018/11/12(月) 23:10:34.73ID:JEwLf6Zk
>>867
じゃあ次はその抽出した文字列のリストでWorksheetオブジェクトを取得してみようか
869デフォルトの名無しさん
2018/11/12(月) 23:21:23.98ID:JEwLf6Zk
>>866
read_html(url)で返ってきたリストにそのままソートかけてそう
まずはどんなリストが返ってきてるかそのまま表示してみたら?
870デフォルトの名無しさん
2018/11/13(火) 11:11:30.00ID:dBAvKT8b
829さんじゃありませんが、横レスで関連する質問があります。

https://stackoverflow.com/questions/38417677/why-am-i-getting-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がなくても問題がない場合が多々あると思うのですが、
なぜ>>829の例がやこのリンク先の例だとelse以下がないとだめなのでしょうか?
871デフォルトの名無しさん
2018/11/13(火) 11:16:50.29ID:ULH3fPUf
>>870
散々出てるがif文じゃなくて条件式だから
872870
2018/11/13(火) 11:17:02.91ID:dBAvKT8b
大事なこと書き忘れました。
リンク先読むとこのスレでも指摘されているように三項演算子なのでelseが必要とのことですが、
普通のif文と三項演算子ってどう区別すれば良いのですか?
873870
2018/11/13(火) 11:42:02.89ID:dBAvKT8b
>>871
どうも失礼しました。公式ページ見たらやっとわかりました。
https://docs.python.org/ja/3/reference/compound_stmts.html#if
if文
https://docs.python.org/ja/3/reference/expressions.html#index-83
条件式
って明確に区別されてるみたいですね。
判別するにはif文の最後に":"があるかないかで判定するのでしょうか?
874デフォルトの名無しさん
2018/11/13(火) 11:49:03.16ID:dBAvKT8b
https://realpython.com/python-conditional-statements/#conditional-expressions

ここにif文と条件式の区別について詳しく書いてありました。これで疑問が氷解しました。
どうもくだらない投稿してすみませんでした。
875デフォルトの名無しさん
2018/11/13(火) 12:11:42.35ID:p27/Ddjo
>>873
まぁそれで区別…できなくもないけどPythonに後置if文はないし役割が違う
というより明確に区別されるのは式と文で、式の中に文を書く事は出来ない
>>825みたいなlambda中の条件式はor含めなんとか値を返すための苦肉の策
876デフォルトの名無しさん
2018/11/13(火) 12:36:07.85ID:X1xMRsix
ワンライナー()のために、処理を行うかの切り替えに条件式を悪用してるだけだからすこぶる行儀悪いわな
877874
2018/11/13(火) 12:49:01.67ID:dBAvKT8b
>>875-876
レスありがとうございます。メモとっときます。
878デフォルトの名無しさん
2018/11/13(火) 18:24:15.89ID:90McxFB4
さすがくだすれ
879デフォルトの名無しさん
2018/11/14(水) 08:37:42.04ID:7XHx6tPI
本当に初歩的な質問で申し訳ないのですが
Openpyxlで読み込んだファイル名を出力することはできますか?
シート名、セル値はわかるのですが、ファイル名のやり方がわからなくて、、
880デフォルトの名無しさん
2018/11/14(水) 08:56:30.82ID:1aZXQx3x
>>879
ファイル名のわからないファイルをどうやって読み込んでいるの?
881デフォルトの名無しさん
2018/11/14(水) 09:08:29.36ID:7XHx6tPI
>>880
ファイル名はもちろんわかるんですが
それをセルに出力したいのです。
882デフォルトの名無しさん
2018/11/14(水) 09:08:38.14ID:yrvGShGp
念力
883デフォルトの名無しさん
2018/11/14(水) 09:22:21.28ID:1aZXQx3x
>>881
Openpyxlは触った事ないけど、
調べた感じでは基本は↓でできるんじゃないの?
sheet = openpyxl.Workbook().active
sheet['A1'] = ‘ファイル名’
884デフォルトの名無しさん
2018/11/14(水) 23:27:59.57ID:2v/yZNsE
ドキュメントのsubprocessのところをみると
似たような機能で
getoutput レガシーなシェル呼び出し関数
check_output 古い高水準 API
os.systemよりsubprocessを推奨
となっていて基本runが推奨で
他は使わないほうがいいとかあるんですか?
例えばいずれなくなるからとか。
それとも単にお勧めというだけなのか?
その辺の読み解き方がよくわからないです。
885デフォルトの名無しさん
2018/11/15(木) 00:01:12.02ID:biHRXo8w
安心が欲しいのなら推奨API以外を使うべきではない
886デフォルトの名無しさん
2018/11/15(木) 00:06:22.84ID:biHRXo8w
まあこれは一般論で
os.systemが廃止されることはないと思うし
これまでの経験からしてDeprecatedとマークされてから2バージョンくらい移行期間があるから
仮に無くなるとしても3年くらいは大丈夫だろう

その前にプログラミングに飽きている可能性の方が高い
887デフォルトの名無しさん
2018/11/15(木) 00:52:47.72ID:1MY0pWfp
>>886
ありがとうございました!
888デフォルトの名無しさん
2018/11/15(木) 13:46:36.75ID:djL3d80k
pythonでgui アプリ作るには、tkinterってやつでいいんでしょうか
そもそも作れますか?
889デフォルトの名無しさん
2018/11/15(木) 14:04:46.04ID:MeEMSEca
Qtとかwxpythonとかほかにもあるでよ

できるよ
890デフォルトの名無しさん
2018/11/15(木) 17:29:06.18ID:djL3d80k
ありがとー
3dとかも扱えますかね?
891デフォルトの名無しさん
2018/11/15(木) 18:07:36.78ID:/yCJioVE
>>888
matplotlibはGUIがtkでボタンもメニューも作れる
3Dも完璧
892デフォルトの名無しさん
2018/11/15(木) 18:40:25.34ID:n3jFLh1o
完璧というからには、GPU支援とかも完璧なんだろうな。
893デフォルトの名無しさん
2018/11/15(木) 19:15:13.23ID:MeEMSEca
>>892
あるぉ
894デフォルトの名無しさん
2018/11/15(木) 19:44:19.96ID:djL3d80k
-m tkinter
でtkinterのバージョンを確認できるそうですが、chdirしないとだめなんでしょうか
デフォルトの場所だとinvalid syntaxエラーになります
895デフォルトの名無しさん
2018/11/15(木) 20:08:14.97ID:MeEMSEca
>>894
pythonのバージョンが3系なら
python -m tkinterじゃなくて
py -m tkinterのはずはず
896デフォルトの名無しさん
2018/11/16(金) 17:42:33.52ID:IxhrRMJp
↑ありがとうございました
897デフォルトの名無しさん
2018/11/16(金) 17:42:49.00ID:IxhrRMJp
idleだけで開発できますか?
不十分な点ってどこでしょうか
898デフォルトの名無しさん
2018/11/16(金) 17:43:28.31ID:IxhrRMJp
あと、どういった環境使ってるか教えてください
pycharmというのはおもすぎてきつかったです
とりあえずatomにpython入れてやってます
899デフォルトの名無しさん
2018/11/16(金) 19:30:29.81ID:no85NK4X
起動時間はpycharmの方が掛かるけど、
起動後はatomとかvscodeの方が描画周りとかまったりしてて重いと感じる。
拡張機能もたくさん入れることになるし。
900デフォルトの名無しさん
2018/11/16(金) 19:55:41.74ID:IxhrRMJp
とりあえずidleでやってきます(´・ω
901デフォルトの名無しさん
2018/11/16(金) 20:10:36.27ID:arJZkCZY
おれidleだけでgui開発やってるよ
902デフォルトの名無しさん
2018/11/16(金) 20:15:48.44ID:IxhrRMJp
tkinterってリファレンスないんすか(´;ω
公式がないですがすでに
903デフォルトの名無しさん
2018/11/16(金) 20:23:20.55ID:arJZkCZY
https://docs.python.org/ja/3/library/tkinter.html
904デフォルトの名無しさん
2018/11/17(土) 09:50:58.58ID:eS8uuMhZ
pythonとopneglでblenderみたいなソフト作れますか
植物を自動生成したいだけですが
905デフォルトの名無しさん
2018/11/17(土) 10:03:17.92ID:FOsw7ObJ
ソフトを作らなくてもblenderがpythonに対応している。
906デフォルトの名無しさん
2018/11/17(土) 10:20:48.12ID:eS8uuMhZ
それはそうなんですが、勉強として
907デフォルトの名無しさん
2018/11/17(土) 11:01:18.90ID:B4GISbTr
>>906
できるけど初心者なら
pygameの方が楽
908デフォルトの名無しさん
2018/11/17(土) 12:26:38.54ID:z9owpr8+
>>522 ぺちぷ
<?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
909デフォルトの名無しさん
2018/11/17(土) 12:27:25.80ID:z9owpr8+
誤爆すまん
910デフォルトの名無しさん
2018/11/17(土) 12:52:15.90ID:+Lh4qwu/
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

1330から1622までの連番の作り方教えて欲しいです

くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

もし、2000を超えたら一つ上の階層に1を足してjpgはまた0から数えたいです

やり方教えて下さい!
911デフォルトの名無しさん
2018/11/17(土) 14:26:54.02ID:xcAZYE+8
>>910
糞クローラー作るな
逝ってよし
912デフォルトの名無しさん
2018/11/17(土) 16:36:18.08ID:Y/z/VfN+
もやはサイバーテロだな
913デフォルトの名無しさん
2018/11/17(土) 19:28:23.67ID:eQWBxdMf
おまえは存在がリアルテロやんw
914デフォルトの名無しさん
2018/11/18(日) 00:50:16.86ID:mGYzq3D+
python2.7 ubuntu utf-8

requests使ってpostするんですけど
response.text.encode('utf-8')が文字化けします。
post先のページもutf-8なので文字化けする理由がわからなくて困ってます。
他の原因が考えられるでしょうか?
915デフォルトの名無しさん
2018/11/18(日) 00:52:09.78ID:RRVp+pUX
は?他でない原因はなんやwww
おまえなんも原因の推測しとらんやんけwwwww
916デフォルトの名無しさん
2018/11/18(日) 02:08:45.13ID:IKIz+EAu
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

出力
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
917デフォルトの名無しさん
2018/11/18(日) 02:29:02.25ID:+Y8H8lPp
オブジェクト指向言語のRubyが今大人気!!

世界最大のソフトウェア開発プラットフォームで最も人気なプログラミング言語は何なのか?
https://gigazine.net/news/20181116-top-programming-languages-2018/

さすがRuby!貫禄のランクイン!!
Railsで作られたサービスでの集計ということを差し引いてもすごい!
918デフォルトの名無しさん
2018/11/18(日) 09:13:17.46ID:ZxrLCeZc
>>914
response.encoding = response.apparent_encoding

追加してみ
919デフォルトの名無しさん
2018/11/18(日) 13:07:11.78ID:OtDWWVpG
>>916
グロ
920デフォルトの名無しさん
2018/11/19(月) 16:41:17.86ID:6QwGyqzR
PILで画像に対してimage.getdataで値を取得すると、
ImagingCore object at 0x111993790 のようなメモリ上の値が得られますが、
これに類することはjavascriptで出来ますか?
921デフォルトの名無しさん
2018/11/19(月) 18:41:55.53ID:hzrCQ9gE
>>920
javascriptスレできけ案件
922デフォルトの名無しさん
2018/11/19(月) 18:57:29.17ID:Rj4PyB0Y
メモリ上の値じゃなくてアドレス情報だろ
923デフォルトの名無しさん
2018/11/19(月) 19:03:49.34ID:rVdz2W17
だから?
ここPythonスレだよ?
924デフォルトの名無しさん
2018/11/19(月) 20:44:02.95ID:m6msMsxr
超初心者なのですが、pythonでwebの画像を取得する方法がよくわかりません、、、
ggると大量取得のスクリプトは出てくるのですが、
http://〜〜〜.jpgという1枚を保存するにはどうすればいいのでしょうか。
どなたかご教授いただければ嬉しいです。
925デフォルトの名無しさん
2018/11/19(月) 21:05:05.45ID:rVdz2W17
アドレスバーに入れてエンター
右クリック
名前をつけて保存

1枚だけならこうすればいいだけだから出てこないんだと思われる
926デフォルトの名無しさん
2018/11/19(月) 21:10:19.46ID:m6msMsxr
説明が不足してました、失礼
勉強がてら自分でスクリプトを作りたくて
responseとbs4で、1枚目のurlからhttp://〜〜〜.jpgを
抜き取るとこまではできたのですが、そこからのダウンロード方法がよくわからないです
1枚のダウンロード方法が分かり次第for分で回す予定なのですが
927デフォルトの名無しさん
2018/11/19(月) 21:11:32.92ID:m6msMsxr
↑requestの間違いです
928デフォルトの名無しさん
2018/11/19(月) 21:41:38.78ID:SMn8EX2d
r = requests.get('くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚 stream=True)
with open('eroero.jpg', 'wb') as f:
  while 1:
    bin = r.raw.read(128)
    if not w: break
    f.write(bin)
929デフォルトの名無しさん
2018/11/19(月) 21:45:32.10ID:hzrCQ9gE
>>924
だから糞クローラつくるんじゃねえksg
くたばれ
窓からPC投げ捨てろ
930デフォルトの名無しさん
2018/11/19(月) 21:53:27.71ID:SMn8EX2d
>>928
× if not w: break
○ if not bin: break
931デフォルトの名無しさん
2018/11/19(月) 22:03:04.22ID:m6msMsxr
>>928
ありがとうございます!
wをrに読み替えて実行したところ保存できたけど
処理が終わりませんでしたが、
>>930
で終わりました、勉強になりました!
バイナリ保存をもう少し勉強してみますm(_ _"m)
932デフォルトの名無しさん
2018/11/19(月) 22:20:46.67ID:OVa0imR9
>>931
930のbinとwって単なる変数だからな
openのモードのrwbとがと関係無いからな
933デフォルトの名無しさん
2018/11/19(月) 22:36:23.06ID:lzm8caWs
>>918
ありがとうございます
追加したけどやっぱり文字化けしました
934デフォルトの名無しさん
2018/11/19(月) 22:48:30.82ID:m6msMsxr
>>932
なるほどです
935デフォルトの名無しさん
2018/11/19(月) 23:17:27.92ID:057j8H5Q
ダウンロードして保存するコマンドは、curl, wget
936デフォルトの名無しさん
2018/11/20(火) 00:36:50.22ID:2X5h674N
以下は何をしているのでしょうか?
同じ物を代入したり返しているようにしか見えないです
お助け下さい・・・

https://github.com/Theano/Theano/blob/master/theano/compat/__init__.py

59行目
cmp = cmp

63行目
def decode(x):
return x
937デフォルトの名無しさん
2018/11/20(火) 05:15:47.87ID:0YIMqUF3
ユーザーに派生クラスを作ってもらうための、ひな形・マーカーメソッドかも。
派生クラスを作らなかった場合の、デフォルトの動作なのかも

例えば、Ruby で抽象(マーカー)メソッドを作れば、
もし派生クラスB で、メソッドa を再定義(override)しなければ、例外をraise するから、
ユーザーは派生クラスで、メソッドa を再定義しなければならない

つまり、プログラマーに注意喚起する印・マーカー

class A
def a
raise NotImplementedError, "未実装です"
end
end

class B < A
end

B.new.a # 未実装です
938937
2018/11/20(火) 05:21:34.81ID:0YIMqUF3
ライブラリの作者は、様々な、decode の実装方法があるから、ひな形だけは作っておくので、
ユーザーは派生クラスで、具体的なdecode の処理を、再定義して使ってください

もし再定義しなければ、何も処理しません
939デフォルトの名無しさん
2018/11/20(火) 09:32:49.23ID:2X5h674N
>>937-938
ありがとうございました、そういう事だったのですね
940デフォルトの名無しさん
2018/11/20(火) 12:30:52.12ID:xneveUXp
>>939
いやそれ間違ってるから。

python2、python3両方で使えるようにそれぞれメソッドが定義してあって、
たまたまpython2のほうは演算する必要がないから引数をそのまま返しているだけ。

そいつはマ板で有名なpython知らないruby荒らしだから無視したほうがいいよ
941デフォルトの名無しさん
2018/11/20(火) 13:05:13.83ID:ZtIBLsed
>>937
さすが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
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
942デフォルトの名無しさん
2018/11/20(火) 13:34:07.29ID:jmuJusIM
https://docs.python.org/ja/3/library/exceptions.html#NotImplementedError
https://docs.python.org/ja/3/library/constants.html
943デフォルトの名無しさん
2018/11/20(火) 16:39:53.72ID:5NbKWroI
>>933
しぇばん、importが済んだ後あたりに

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

って書いてみて
944デフォルトの名無しさん
2018/11/20(火) 19:08:18.20ID:PIfvSzhu
ディレクトリ内に
aaa_000.txt
aaa_001.txt
  :
aaa_100.txt てな感じでファイルが保存されてたとします。
aaa_000.txt以外をglob.glob()で一覧化して取り出したいんですが
glob.globの引数に指定する正規表現、どうすればいけますでしょうか???
945デフォルトの名無しさん
2018/11/20(火) 19:13:57.66ID:5NbKWroI
!(^000$) じゃね?
946デフォルトの名無しさん
2018/11/20(火) 19:15:38.40ID:5NbKWroI
禿しくまちがってた

^(?!000)$
947デフォルトの名無しさん
2018/11/20(火) 19:52:04.79ID:PIfvSzhu
import glob
l = glob.glob(r"^(?!000)$")
print(l)
こうですか? なんかダメみたいです(´・ω・`)

l = glob.glob(r"aaa_(?!000)$")
l = glob.glob(r"*(?!000)$")   も試してみましたがダメでした。
948デフォルトの名無しさん
2018/11/20(火) 20:46:06.89ID:eXMfunJO
素直にre使ってりゃ1分で終わってたな
949デフォルトの名無しさん
2018/11/20(火) 20:48:08.12ID:d/DSkvWp
globは正規表現使えないぞ。
使えるのはワイルドカードだけ
950デフォルトの名無しさん
2018/11/20(火) 20:48:55.37ID:5NbKWroI
んんんんn…
l = glob.glob(r"aaa_(?!000)[0-9]*\.txt")
でどうよ
951デフォルトの名無しさん
2018/11/20(火) 20:49:50.73ID:5NbKWroI
>>949
mjd

>>947
全部取り出してから
そのリストから
aaa_000.txtだけさくーじょするのが早い(´・ω・`)
952デフォルトの名無しさん
2018/11/20(火) 20:51:12.06ID:+8Izpd7U
>>951
その方が後から見てわかりやすいしな
953デフォルトの名無しさん
2018/11/20(火) 21:05:36.49ID:5mSMf66i
あああ、mjdって「マジで」かー
954デフォルトの名無しさん
2018/11/20(火) 21:13:03.42ID:aqI13PjQ
いくらくだすれとはいえこんな頭のおかしい奴が回答者だとは…
955デフォルトの名無しさん
2018/11/20(火) 21:13:50.48ID:5NbKWroI
初心者の
初心者による
初心者のための
互助すれ
956デフォルトの名無しさん
2018/11/20(火) 21:15:21.06ID:yKairBEQ
[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使う必要性はないと思う
957デフォルトの名無しさん
2018/11/20(火) 21:15:59.61ID:3m3Squu1
Pythonのtime sleepとcrontabのコードって相性悪くない?
958デフォルトの名無しさん
2018/11/20(火) 21:19:44.13ID:5NbKWroI
俺の環境(python2.7 Win7(XPからのアプデ))では
time sleepは常にラグい (`・ω・´)キリッ
959デフォルトの名無しさん
2018/11/20(火) 21:22:17.92ID:yKairBEQ
[x for x in glob.glob() if {y for y in x if y.isdigit() and y != "0"}]
が一番スマート()か
960デフォルトの名無しさん
2018/11/20(火) 21:36:20.21ID:lC+kMZiu
glob.glob('aaa_*.txt').remove('aaa_000.txt')
961デフォルトの名無しさん
2018/11/20(火) 21:46:55.78ID:PIfvSzhu
>>956
>>959
サンクス、コピペしたけど動かなかったので諦めました

>でも今日日os.scandir()とかあるのにglob使う必要性はないと思う
os.scandir ←これ知らんかたわw これでなんとかなりそうですw


>>960

           .-´    ``ヽ   
          /  ヽー     `ヽ
         / ノ    (O )ノ ̄ ̄`ヽ、―ニ  
        / (●) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!    
          ヽo (__ン  }、ー‐し'ゝL _  
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
                    |
962デフォルトの名無しさん
2018/11/20(火) 22:15:47.35ID:lC+kMZiu
>>960
何でダメなのかわからんかったけどremoveメソッドはNoneを返すんだな

x = glob.glob('aaa_*.txt')
x.remove('aaa_000.txt')

>>961
ごめんね
963デフォルトの名無しさん
2018/11/21(水) 01:45:07.75ID:yscr9wE/
Ruby で、配列の差集合を使った

ary = Dir.glob( 'aaa_*.txt' ) - [ 'aaa_000.txt' ]
964デフォルトの名無しさん
2018/11/21(水) 02:04:45.67ID:ILAAUKO6
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
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚
965デフォルトの名無しさん
2018/11/21(水) 18:00:19.78ID:/haBP7x7
なぜpathlib使わないのか
966デフォルトの名無しさん
2018/11/21(水) 18:42:34.45ID:vOPCMSrj
bashからpythonのCGIプログラムを実行するときにGETパラメータを渡す方法を教えてください。
967デフォルトの名無しさん
2018/11/21(水) 20:05:39.22ID:NMvk2xsS
get1=get1_val
get2=get2_val
が渡したいとすると

url="http://example.com/cgi-bin/recv.php?get1=get1_val&;get2=get2_val"
curl $url
968デフォルトの名無しさん
2018/11/21(水) 20:07:16.16ID:NMvk2xsS
http://example.com/cgi-bin/recv.php

pythonのcgiを置いて動かしてるアドレスに読み替えてくれ
969デフォルトの名無しさん
2018/11/21(水) 20:07:21.27ID:vOPCMSrj
デバックしたいです。
970デフォルトの名無しさん
2018/11/21(水) 20:14:02.86ID:NMvk2xsS
pythonのCGIン中のimportんところの最後に

import cgitb
cgitb.enable()

と書け

デバッグが終わったら消すのを忘れるな
忘れるとたいへんなことがおきる
971デフォルトの名無しさん
2018/11/21(水) 20:16:30.77ID:NMvk2xsS
>>967-968 あとで見返す人も居ないと思うがもうちょっとわかりやすく書いておこう

get1としてget1_val
get2としてget2_val
が渡したい


Apacheなんかでlocalhostを動かしていて
bash-cgiふぉるだんなかに
ターゲットとなるhoge.cgiが置いてある
とすると

url="http://localhost/bash-cgi/hoge.cgi?get1=get1_val&;get2=get2_val"
curl $url
972デフォルトの名無しさん
2018/11/21(水) 20:50:52.10ID:jrFgFGaV
‘/home/hoge/foo/*.txt’ みたいなパスが与えられてglobしたい時って、pathlibだと一度切り分けて
Path(‘/home/hoge/foo’).glob(‘*.txt’)
とするしか無い?
glob.globなら最初のパスを丸ごと与えて終わるけど
973デフォルトの名無しさん
2018/11/21(水) 21:06:34.58ID:JM/nMfDs
pathlib使わんくてもええんやで?なにに追い立てられとるんやおまえら?
974デフォルトの名無しさん
2018/11/22(木) 00:08:45.16ID:VnO3ZoaR
Ruby では、絶対・相対パスの両方が使えるよ

Dir.glob( 'C:/Users/Owner/Documents/*.txt' )
975デフォルトの名無しさん
2018/11/22(木) 08:08:40.14ID:MlwCwGep
>>974
荒らし氏ね
976デフォルトの名無しさん
2018/11/22(木) 08:55:38.42ID:GbIN7rVe
>>974
そんな基本的なことで自慢しなけりゃならないとはよっぽどショボい言語なんだなww
>>964 という状況に追い込まれるのも当然な気がするwww
977デフォルトの名無しさん
2018/11/22(木) 09:44:14.26ID:5DqVDDdG
ガイジしか使ってないし
開発者もガイジ揃いだから
978デフォルトの名無しさん
2018/11/22(木) 11:17:29.92ID:yaFldicH
Rubyはガイジ隔離言語として世の役に立ってるよなw
979デフォルトの名無しさん
2018/11/22(木) 12:06:33.50ID:kIWLxEQb
(Rubyガイジ)うんこ…うんこ…
980デフォルトの名無しさん
2018/11/22(木) 13:34:33.95ID:blyr971h
次スレよろ
981デフォルトの名無しさん
2018/11/22(木) 17:10:16.21ID:JDIt5Mgb
( ・∀・)ノフォラァヨ!!---===≡≡≡ くだすれPython(超初心者用) その40
http://2chb.net/r/tech/1542874174/
982デフォルトの名無しさん
2018/11/23(金) 16:02:50.08ID:joE0voDR
rate="486,380(26.03%)"
みたいなのから正規表現で26.03だけ取り出したいんですけどどうすればいいですか?
最初はrate[-7:-2]で取り出そうと思ったんですけど、たまに"500(3.27%)みたいな%が一桁のデータがあって、出力すると(3.27になり、エラーの原因になってしまうんです
つまり()の中の数字だけ取り出す方法を教えてください
983デフォルトの名無しさん
2018/11/23(金) 16:34:17.54ID:e4GZHgy/
>>982
re.compile(r'\((.*)\%\)', re.I)
984デフォルトの名無しさん
2018/11/23(金) 17:04:36.40ID:joE0voDR
>>983
神がいた
最後のre.lがあるとなんかエラー起きたけどちょっと弄ったらできたわ
ありがとうございます
正規表現は素人には難しい
985デフォルトの名無しさん
2018/11/23(金) 17:08:26.06ID:f04GZ1ux
>>982
'\d+\.\d+(?=\%)'
986デフォルトの名無しさん
2018/11/23(金) 17:41:39.39ID:joE0voDR
>>985
こっちでもできた
しゅごい
987デフォルトの名無しさん
2018/11/23(金) 18:29:59.34ID:cGOad0jL
>>986
かわいい
掘らせて ハアハア(´Д`*)
988デフォルトの名無しさん
2018/11/24(土) 03:48:05.11ID:01jBobXF
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]は、( )でキャプチャーした部分
989デフォルトの名無しさん
2018/11/24(土) 08:22:15.36ID:sJe2ncgH
>>988
いい加減にしろよ屑
990デフォルトの名無しさん
2018/11/24(土) 09:57:01.31ID:hG+y0dS8
>>988
圧倒的大人気言語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
くだすれPython(超初心者用) その39 	YouTube動画>1本 ->画像>26枚

大人気!!!
991デフォルトの名無しさん
2018/11/24(土) 11:16:19.41ID:ZWAqZgZk
>>990
記事読んでみたらRuby落ち目で草
992デフォルトの名無しさん
2018/11/24(土) 12:12:32.95ID:4kdGLnPd
re.search と re.findall どっち使うのが良いの?
web で調べると re.search 使ってる人や薦める人が多いみたいだけど
実際は re.findall の方が使いやすいと感じる
993デフォルトの名無しさん
2018/11/24(土) 12:22:51.14ID:rqBWhuzZ
お前が使いやすいと思うものを使え
お前の感性なんざ知らねえよ
994デフォルトの名無しさん
2018/11/24(土) 12:25:19.78ID:rqBWhuzZ
だいたいre.searchを薦めてる奴はその理由を書いてるだろ
(書いてない奴はゴミだから信用するな)
それを理解した上でre.findallの方がというなら、もはや否定する理由はない
お前の中ではそうなんだな、で終わりだ
995デフォルトの名無しさん
2018/11/24(土) 13:07:33.24ID:b4dZse+n
>>994
だったら最初から黙っとけよ、チンカス
996デフォルトの名無しさん
2018/11/24(土) 13:11:24.69ID:4kdGLnPd
finditer が良さそうなのでこれにします
本当にありがとうございました
仲良くしてね
997デフォルトの名無しさん
2018/11/24(土) 14:00:15.36ID:f9pHxWoA
一個見つかれば良い状況で
searchではなくfinditer使うのは面倒くさいだけのような
finditerはマッチしてもしなくてもイテレータが帰ってきちゃう
998デフォルトの名無しさん
2018/11/24(土) 14:17:31.53ID:S/+07wK4
じつにくだすれらしい
くだくだなながれですね (´・ω・`)
999デフォルトの名無しさん
2018/11/24(土) 14:24:37.27ID:4kdGLnPd
何個見つかるか事前に判らないので
match したかしなかったか調べるのに if m is None: みたいな書き方するなら
for _ in iter: でする方が楽なんです
条件後付けと言われればその通りですが
1000デフォルトの名無しさん
2018/11/24(土) 14:25:34.56ID:4kdGLnPd
ume
-curl
lud20241217164704ca
このスレへの固定リンク: http://5chb.net/r/tech/1535064635/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「くだすれPython(超初心者用) その39 YouTube動画>1本 ->画像>26枚 」を見た人も見ています:
くだすれPython(超初心者用) その36
くだすれPython(超初心者用) その35
くだすれPython(超初心者用) その37
くだすれPython(超初心者用) その38
くだすれPython(超初心者用) その34
くだすれPython(超初心者用) その33
くだすれPython(超初心者用) その32
くだすれPython(超初心者用) その40
くだすれPython(超初心者用) その45【Ruby禁止】
くだすれPython(超初心者用) その41【Ruby禁止】
くだすれPython(超初心者用) その44【Ruby禁止】
くだすれPython(超初心者用) その42【Ruby禁止】
くだすれPython(超初心者用) その43【Ruby禁止】
【まず1嫁】くだすれPython(超初心者用) その59
くだすれPython(超初心者用) その29
くだすれPython(超初心者用) その48【まず1嫁】
くだすれPython(超初心者用) その50【まず1嫁】
くだすれPython(超初心者用) その51【まず1嫁】
【まず1嫁】くだすれPython(超初心者用) その57
くだすれPython(超初心者用) その49【まず1嫁】
【まず1嫁】くだすれPython(超初心者用) その58
【まず1嫁】くだすれPython(超初心者用) その60
【まず1嫁】くだすれPython(超初心者用) その53
くだすれPython(超初心者用) その52【まず1嫁】
【まず1嫁】くだすれPython(超初心者用) その54
【まず1嫁】くだすれPython(超初心者用) その55
【まず1嫁】くだすれPython(超初心者用) その56
くだすれPython(超初心者用) その46【Ruby禁止】
くだすれPython(超初心者用) その47【Ruby禁止】
くだすれDelphi(超初心者用)その57
くだすれDelphi(超初心者用)その55
くだすれDelphi(超初心者用)その56
くだすれDelphi(超初心者用)その54
くだすれDelphi(超初心者用)その58【Embarcadero】
くだすれDelphi(超初心者用)その59【Embarcadero】
くだすれDelphi(超初心者用)その60【Embarcadero】
くだすれDelphi(超初心者用)その16
くだすれFORTRAN(超初心者用)その6
くだすれFORTRAN(超初心者用)その7
くだすれC++Builder(超初心者用)その5
くだすれC++/CLI(初心者用)part2
Python初心者スレ
Python3を勉強中の初心者ですが
【初心者用】マイニング情報交換スレ19
【初心者用】マイニング情報交換スレ49
■初心者用リモートデスクトップ専用すれっど■
ふらっと C#,C♯,C#(初心者用) Part129
ふらっと C#,C♯,C#(初心者用) Part139
Webサイト制作初心者用質問スレ part249
【rank100↓】グランブルーファンタジー超初心者スレ609
【Rank100↓】グランブルーファンタジー超初心者スレ519
UWSC初心者用スレ
グラブル 超初心者スレ
【初心者用】マイニング情報交換スレ45
俺、パチ初心者用質問スレ11本目
【初心者用】マイニング情報交換スレ34
ふらっと C#,C♯,C#(初心者用) Part141
ふらっと C#,C♯,C#(初心者用) Part144
【初心者用】マイニング情報交換スレ3
ふらっと C#,C♯,C#(初心者用) Part138
0からの、超初心者C++相談室
05:28:46 up 18 days, 6:32, 0 users, load average: 8.77, 8.99, 9.57

in 0.082451105117798 sec @0.082451105117798@0b7 on 013119