くだすれPython(超初心者用) その39at TECH
くだすれPython(超初心者用) その39 - 暇つぶし2ch2:デフォルトの名無しさん
18/08/24 07:50:54.90 VD4/++xS.net
◆関連リンク Python の Home Page
URLリンク(www.python.org)
◆長いコードはこういうところにはってください
URLリンク(ideone.com)
URLリンク(codepad.org)
URLリンク(pastebin.com)
URLリンク(dpaste.com)
URLリンク(try.jupyter.org)
◆まとめwiki
URLリンク(python.rdy.jp)

3:デフォルトの名無しさん
18/08/24 11:55:16.20 ZVlysGry.net
ストロー廃止

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


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



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

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

8:デフォルトの名無しさん
18/08/24 22:55:45.28 A0MvxlLt.net
自分探しの旅みてーな疑問だな

9:デフォルトの名無しさん
18/08/25 04:28:11.12 gxBSyOuw.net
日経ソフトウエアは、読む価値なし
日経Linux、WEB+DB、Software Design などは良い

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

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

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

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

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

15:デフォルトの名無しさん
18/08/25 10:53:10.81 5go0Mg15.net
>>13
日本語1の1が全角とか?
b[0]の出力をそのまま
b[0]== の後にコピペしてもfalseになるの?

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

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

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

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

20:a
18/08/25 12:11:07.51 ieXJ7jC8V
android エミュレーター mumu で簡単自動周回
URLリンク(ankulua.boards.net)

21:デフォルトの名無しさん
18/08/25 13:02:46.63 H9tlLYtz.net
>>17
すみません。これでいかがでしょうか。
PHP 7.2
$cmd = 'python3 python.py "日本語1 日本語2"';
exec($cmd, $output);
Python 3.6.5
# coding: utf-8
import sys
listhoge = {"日本語1":0, "日本語2":1}
a = sys.argv[1]
b = a.split(' ')
c = listhoge[b[0]]
error.log
Traceback (most recent call last):
File "python.py", line 23, in <module>
c = listhoge[b[0]]
KeyError: '\udce6\udc97\udca5\udce6\udc9c\udcac\udce8\udcaa\udc9e1'

22:デフォルトの名無しさん
18/08/25 14:30:45.41 kfh++Yrt.net
>>20
文字コード不一致してね?
LANG=xxx python3 python.py "日本語1 日本語2"
とかで、ロケール設定して実行してみたら?

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

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

25:デフォルトの名無しさん
18/08/26 01:55:23.42 TJFxEnkY.net
プログラム初学者ですが、入門書を買って勉強しております。
複合代入演算子の項を見ていたら1点疑問があり、
who = '猫'
text = ''
text += '吾輩は'
text += who
text += 'である。'
print(text)
これ本では2行目の''が大事だと書かれているんですが、省略して

who = '猫'
text = '吾輩は'
text += who
text += 'である。'
print(text)
とするのはだめなのでしょうか?
初歩的な質問ですみません。

26:デフォルトの名無しさん
18/08/26 02:11:05.36 xGLfO5+N.net
>>24
text += 'XXX'
で形が揃うから見やすいとかコピペや順序入れ替えが楽って以外の意味はないと思う
というか理由が書いてないならあまり良くない入門書だな
3.6以降ならf-stringを使って
text = f'我輩は{who}である'
のほうが良さげ
URLリンク(atsuoishimoto.hatenablog.com)

27:デフォルトの名無しさん
18/08/26 02:24:57.28 TJFxEnkY.net
>>25



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



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

30:デフォルトの名無しさん
18/08/26 07:36:47.56 w0D5YFHr.net
この2冊は、既にプログラミングが出来る人向け。
数言語は知っていて、Ruby, Python を学ぶ人向け
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
以下の本は、プログラミング初心者でも読める。
スッキリわかる Java入門 第2版、2014
知らないけど、progate のサイトで勉強すれば?

31:デフォルトの名無しさん
18/08/26 07:44:31.55 KclbjBGL.net
>>24
同じように動くという意味では問題無い。

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

32:デフォルトの名無しさん
18/08/26 07:49:32.68 KclbjBGL.net
>>27
合うか合わないかは人によるから
kindleでお試し読んでみたら

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

34:25
18/08/26 09:57:49.56 w0D5YFHr.net
読む順番としては、先に「たのしいRuby」を3回読むと、
「みんなのPython」が楽に読める
「みんなのPython」を先に読むと、内容が薄くて、現実味が無いかも。
つまり、よくわからない
たのしいの方が、正規表現とか、内容が濃い

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

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

37:デフォルトの名無しさん
18/08/26 17:39:56.34 O9adGcKd.net
もうrubyをNGしてもいいぐらい

38:デフォルトの名無しさん
18/08/26 18:15:35.15 wR7TFJf0.net
ガイジに優しくしよう

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

40:25
18/08/26 23:41:34.26 w0D5YFHr.net
Ruby, Python, JavaScript というのは、単なる各言語の文法書。
プログラミングの本じゃない
オブジェクト指向・クロージャ・スコープ・this などの概念を、学べるわけではない。
文法書を読んでも、プログラミングは出来ない
文法書を読むとプログラミングができると、ほとんどの奴は勘違いしているけど、
「みんなのPython」を読んでも文法がわかるだけで、プログラミングが出来るようにはならない
「たのしいRuby」「スッキリわかる Java入門」などを読んで、
自分でクラスを派生させたり、CSVファイルを読み書きしたり、
Sinatra をいじくりまわしたり悪戦苦闘しながら、プログラミングを学ぶ
プログラミングを学ぶ部分は、Pythonじゃなくてもよい。
いじくりまわすのには、Rubyが最も簡単
プログラミングを学ぶには、各言語の「Effective 何々」という本を読む。
これは、プロの必須本。
文法書の次のレベルへ行かないと、プログラミング自体を学べない

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

42:デフォルトの名無しさん
18/08/27 00:53:03.94 HhBAi2Wr.net
Rubyみたいなオワコン言語の話は余所でやれ

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

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

45:デフォルトの名無しさん
18/08/27 03:17:20.38 yTR9Y+Mn.net
早速躓いた
>>29
変数

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

46:デフォルトの名無しさん
18/08/27 03:21:04.08 yTR9Y+Mn.net
プログラミング自体を学ぶのにこれはどうですか?
初めてのプログラミング
URLリンク(www.oreilly.co.jp)
PythonじゃなくてRubyで説明されてるみたいなんですけど

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

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

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

50:デフォルトの名無しさん
18/08/27 12:18:58.34 Q4eMB8Ps.net
>>45
互除法

51:デフォルトの名無しさん
18/08/27 21:06:47.86 KW/ftoFq.net
subprocessについてなんですが、
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
import subprocess

dl = subprocess.run(["radigo", "rec", "-a=JP13", "-id=QRR", "-s=20180827200000"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)
上記のような場合、変数を引数の一部として渡すにはどうやるんですか?
以下だと{proglamId}という文字列として外部コマンドに送られてしまってダメでした。
area = 'JP13'
ch = 'QRR'
proglamId = '20180827200000'
dl = subprocess.run(["radigo", "rec", "-a={area}", "-id={ch}", "-s={proglamId}"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)

52:デフォルトの名無しさん
18/08/27 21:26:41.39 6eK9kwOU.net
>>49
>>> proglamId = '20180827200000'
>>> f'-s={proglamId}'
'-s=20180827200000'

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

54:デフォルトの名無しさん
18/08/27 21:56:03.71 KW/ftoFq.net
>>51
出来ました。
パターン1
area = 'JP13'
ch = 'QRR'
proglamId = '20180827200000'
dl = subprocess.run(["radigo", "rec", f'-a={area}', f'-id={ch}', f'-s={proglamId}'], stdout=subprocess.PIPE)
パターン2
area = 'JP13'
area = f'-a={area}'
ch = 'QRR'
ch = f'-id={ch}'
proglamId = '20180827200000'
proglamId = f'-s={proglamId}'
dl = subprocess.run(["radigo", "rec", area, ch, proglamId], stdout=subprocess.PIPE)
sys.stdout.buffer.write(dl.stdout)
ど�


55:チちがスマートな書き方ですか?



56:デフォルトの名無しさん
18/08/27 23:29:37.66 KW/ftoFq.net
muxx = subprocess.run(["muxer", f'-i input.aac?sbr', f'-o output.m4a', f'--optimize-pd', f'--file-format m4a'], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
とやると、muxerコマンドからは
Error: you specified invalid option: -i input.aac?sbr.
と返ってきてしまいます。
muxx = subprocess.run(["muxer", "-i input.aac?sbr", "-o output.m4a", "--optimize-pd", "--file-format m4a"], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
これでも上記と同じエラーになり、
muxx = subprocess.run([f'muxer -i input.aac?sbr -o output.m4a --optimize-pd --file-format m4a'], stdout=subprocess.PIPE)
sys.stdout.buffer.write(muxx.stdout)
これだとPythonがエラーになってしまいました。
Usageは
muxer [global_options] -i input1 [-i input2 -i input3 ...] -o output
です。
コンソールで以下のようにやると正常に動いてくれます。
$ muxer -i input.aac?sbr -o output.m4a --optimize-pd --file-format m4a
何がいけないんでしょうか?

57:デフォルトの名無しさん
18/08/28 00:20:33.07 TEJeUOom.net
端末で入力すると、シェルが、? の機能を動かすけど、
subprocess で、プロセスを直接起動すると、
シェルが介入しないから、? が展開されないとか?

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

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

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

61:デフォルトの名無しさん
18/08/28 08:35:42.53 M3D05fOs.net
>>53
もちろんrunの第一引数が悪い
"-i"と"input.aac"を分けろ

62:デフォルトの名無しさん
18/08/28 08:36:39.19 skYXWt6l.net
>>53
上2つは "-i input.aac?sbr" がオプションとして認識されてそう。'-i', f'input.aac?sbr' とかで分けてくれ
3つ目は shell=True で動く(/bin/sh -c 'muxer ....' と展開される)
シェルインジェクションとかあるので、お作法として shell=True はあまり使わないほうがいいかな
詳しくはマニュアル参照
>>52
書き方は好みだからなんとも言えんなー俺ならこんな感じで書く
arg = 'hoge'
cmd = f'bash tst_cmd.sh {arg}'
resp = subprocess.run(cmd.split(), stdout=subprocess.PIPE)
スペース入りファイル名とか使うなら、パーサー作って食わすかな
import csv
def CMD_PARSER(cmd):
....return list(csv.reader([cmd], delimiter=' ', quotechar='"'))[0]
arg = 'hoge foo'
cmd = f'bash tst_cmd.sh "{arg}"'
resp = subprocess.run(CMD_PARSER(cmd), stdout=subprocess.PIPE)

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

64:デフォルトの名無しさん
18/08/28 10:16:39.79 wjmNvrcp.net
みなさんどうもありがとうございます
>>58
>>59
>>60
「-i ファイル名」の形式で書かないといけないので「-i」と「ファイル名」で分けて書くという頭が全くなかったです。
muxx = subprocess.run(["muxer", "-i", "input.aac?sbr", "-o", "output.m4a", "--optimize-pd", "--file-format", "m4a"], stdout=subprocess.PIPE)
と分けて書くとうまくいきました。
>>56
>>59
shell=trueについて調べてみます
>>57 この書き方だとsubprocess.callとsubprocess.check_callとsubprocess.check_outputの3つがまとめて出来るらしいのでこれで書きました



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

67:デフォルトの名無しさん
18/08/28 16:02:01.79 eDasHWl3.net
んなこたぁない。

68:デフォルトの名無しさん
18/08/29 09:39:33.95 t35BnR1i.net
python3m ってなんですか?

69:デフォルトの名無しさん
18/08/29 10:09:58.87 zNgJ3vFs.net
住友と関係が?

70:デフォルトの名無しさん
18/08/29 17:38:59.31 zHN7x4pt.net
xmlの属性を指定する場合、以下のどっちも同じ答えを返してくれるんですが、どっちで書くのがいいんでしょうか?
パターン1
duration1 = int(root.attrib["dur"])
print(duration1)
パターン2
duration2 = int(root.get("dur"))
print(duration2)

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

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

73:デフォルトの名無しさん
18/08/29 21:03:23.42 LyGOIS06.net
すいません日付の計算で疑問なんですが、
aaa_date_str = '2018-08-29 20:00:00'
bbb_date_str = '2018-08-29 19:00:00'
aaa_date = datetime.datetime.strptime(aaa_date_str, '%Y-%m-%d %H:%M:%S')
bbb_date = datetime.datetime.strptime(bbb_date_str, '%Y-%m-%d %H:%M:%S')

として、
date_diff = aaa_date - bbb_date
print(date_diff.days)
--> 0
になりますが、逆にすると、
date_diff = bbb_date - aaa_date
print(date_diff.days)
--> -1
になります。
差異が1日に満たなければゼロになるのかと思いきや
計算結果が負だとゼロにならずに-1になるのがなんか疑問です。
それとも記述に問題あるでしょうか。

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

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

76:デフォルトの名無しさん
18/08/30 21:55:04.51 hf8/OGEv.net
>>70
すいません、分からず…
逆に、3.1 - 3.0 = 0.1 はdaysだと0になるんです。
>>71
int()だと、正も負も小数点以下切り捨てではないですか?

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

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

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

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

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

82:デフォルトの名無しさん
18/08/30 23:01:55.56 TEO8FkA/.net
別マシンで書いたスクリプトを動かそうとしたら
dateutilが無いと言われ実行出来ません。
スクリプトにはこう書きました。
from dateutil.relativedelta import relativedelta
動いたマシンのPythonのバージョンは3.6.4、
動かないマシンのPythonのバージョンは3.6.5です。
dateutilはどこで入手するんでしょうか?

83:デフォルトの名無しさん
18/08/30 23:04:27.25 TEO8FkA/.net
すみません
pip で dateutilsを入れたら使えました。

84:デフォルトの名無しさん
18/08/31 04:09:39.70 rWvqNQHt.net
python 3.6
windows10
import pyautogui
pyautogui.rightClick(100,100)
pyautogui.moveRel(10,10)
と書くと右クリックのあとマウスが動いてくれない。
これはライブラリのバグ?

85:デフォルトの名無しさん
18/08/31 04:37:56.39 rWvqNQHt.net
ごめん動いてた

86:デフォルトの名無しさん
18/08/31 09:38:10.61 cxARIA2x.net
罰としてお前の�


87:ヒ起という突起をクリックしてやる



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

89:デフォルトの名無しさん
18/08/31 19:39:30.70 IH56D7c/.net
sharing_create_shared_linkだと、以下のようになります。
import dropbox
dbxTOKEN = 'DROPBOX_MY_ACCESS_TOKEN'
dbxRemotePath = f'/aiueo/hage.jpg'
dbx = dropbox.Dropbox(dbxTOKEN)
dbx.users_get_current_account()
# アップロード
f = open(dbxLocalPath, 'rb')
dbx.files_upload(f.read(),dbxRemotePath)
f.close()
# 共有リンクの取得
dbxLink = dbx.sharing_create_shared_link(dbxRemotePath,short_url=True) # Dropbox から共有リンクを取得
dbxLink = str(dbxLink)[17:-1] # 整形 「PathLinkMetadata(」と「)」を除外
dbxLink = dbxLink.split(',') # リストに変換
dbxLink = dbxLink[0] # リストの1番目 (url)
dbxLink = str(dbxLink)[5:-1] # 整形
print(dbxLink)
URLリンク(db.tt) # プリントされたurl
つづく

90:デフォルトの名無しさん
18/08/31 19:40:14.75 IH56D7c/.net
文字列を分割してその中の一部を取り出す方法ですが、
PathLinkMetadata(url='URLリンク(db.tt)', visibility=Visibility('public', None), path='/hoge/hage.jpg', expires=None)
こういう1行があったとして、
url='URLリンク(db.tt)',
visibility=Visibility('public', None),
path='/hoge/hage.jpg',
expires=None
こんなふうに分割したいです。
split(',')でやるとpublic', Noneここのコンマでも反応してしまいます。
今回はurlの取得が目的なので今の所実害は無いんですが、もっと簡単にdorpboxの共有リンクを取得したり確実な文字列の分割方法を知りたいです。

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

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

93:デフォルトの名無しさん
18/09/01 15:26:08.43 VfnjVYeD.net
BOMついてないか

94:デフォルトの名無しさん
18/09/01 15:37:12.61 kUpkBQ3x.net
echo 1 | ruby -e 'STDIN.each { |line| puts(line.to_i + 1) }'
Ruby なら、シェルから、1-liner で、2 と出力される
Python でも同じように、1-liner でやってみれば?

95:デフォルトの名無しさん
18/09/01 15:55:11.65 A/mNPeDe.net
>>87
open("sample.txt", encoding="utf-8-sig")
> いくつかの領域では、UTF-8 でエンコードされたファイルの先頭に "BOM" を利用する習慣があります;
中略
> もし、そのようなファイルを読む場合には、この印を自動


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



97:デフォルトの名無しさん
18/09/01 16:02:39.43 kUpkBQ3x.net
プログラムでは、BOMなしUTF-8 (UTF-8N)を使った方が無難
その代わり、Windows のExplorer ではテキスト検索できなくなるから、
Windows10・WSL・Ubuntu から、grep してる

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

99:デフォルトの名無しさん
18/09/01 16:55:46.47 5RO4iQNV.net
>>88, 86, 87, 88
ありがとうございます。
BOMが原因でした。
恥ずかしいことに、BOMというのは全く知りませんでした。
助かりました。

100:デフォルトの名無しさん
18/09/01 20:51:46.35 5sfxmNQl.net
>>92
まあそうだと思う。
自分はDropboxライブラリを使ったことはないけど、>>83を見ると戻り値としてPathLinkMetadataオブジェクトが返ってきていて、属性としてurlとかpathとかがある事がわかった(これはpython的に考えればわかる)
使うメソッドとかについてはドキュメント読むと今回みたいなことはすぐ分かるだろうし、勉強にもなるよ

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

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

103:デフォルトの名無しさん
18/09/02 07:13:26.28 5WqNet32.net
File.open(file_path, 'a') { |io| io.write text }
Ruby では、File.open の引数に、
ファイルパスと、ファイルを開く際の、mode を渡す
a なら追記書き込み
「python file write」で検索!

104:デフォルトの名無しさん
18/09/02 08:24:22.51 GLq4HnWW.net
import requests
r = requests.get("URLリンク(www.python.org"))
f = open("c:/user/hoge/Documents/hymlfile.html", "a")
f.write(r.text)

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

106:デフォルトの名無しさん
18/09/02 16:47:00.30 RE+xVvI9.net
f.write(r.text)
UnicodeEncodeError: 'cp932' codec can't encode character '\U0001f5a5' in position 12657: illegal multibyte sequence
スクレイピングしたサイトに絵文字があると(?)このエラーが起こるようです。
エンコーディングの関係だと思うんですけど対処法分かる方いますか?
UnicodeEncodeErrorで調べたら解説しているところが少し見つかったんですが僕には何が言いたいのかさっぱりでした。。。。

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

108:デフォルトの名無しさん
18/09/02 16:59:32.33 5WqNet32.net
cp932 はやめて、BOMなしUTF-8(UTF-8N)で書き込めば?
それか、エンコード


109:変換できない文字は、 エラーにせずに、? に置き換えるとか



110:デフォルトの名無しさん
18/09/02 17:49:53.80 B4IY8jcq.net
ElementTree、lxml、BeautifulSoupってそれぞれどう違うの?

111:デフォルトの名無しさん
18/09/02 17:51:26.55 B4IY8jcq.net
ElementTreeは純正
lxml、BeautifulSoupはサードパーティ
lxmlは高速だけど、動的なサイトに弱い
BeautifulSoupは比較的簡単
って感じ?

112:デフォルトの名無しさん
18/09/02 19:12:56.97 dvfcpVZJ.net
何が言いたいのか

113:デフォルトの名無しさん
18/09/02 19:26:55.59 /VgxTU/I.net
開けっ放しにするんはいけんよ

114:デフォルトの名無しさん
18/09/02 20:28:17.67 NdoNeabl.net
lxml 言う程速さを感じないんだよな

115:デフォルトの名無しさん
18/09/03 01:13:17.00 IUTdxFc1.net
import requests
from lxml import etree
url = URLリンク(example.com)<) height="60" width="60"alt="ふじこ"></td> </tr></table><br />
<br /> あいうえお<br />かきくけこ
<br /><br /> 番組Webサイト:<a href="URLリンク(example.com) />
メッセージフォーム:<a href="URLリンク(example.com) />
<br /></div>
がプリントされます。(投稿できなかったので途中で改行してます)
次に、本文はどうやって取り出すんでしょうか?

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

117:デフォルトの名無しさん
18/09/03 19:12:05.50 ttVcJTrG.net
Ruby のNokogiri なら、CSS セレクター・XPath とか
jQuery でも、CSSセレクター

118:デフォルトの名無しさん
18/09/06 00:43:50.19 YKdnoVr6.net
```python
hstg = info.get('hashtags')
print(hstg)
# hashtag
p_url = info['url']['short']
```
p_urlの行をget()だとどう書けばいいですか
辞書にアクセスした時存在しないキーだとNoneを返したいんでget()を使いたいんですが

119:デフォルトの名無しさん
18/09/06 01:06:41.32 9wgcxN1e.net
ようわからんが
info.get('url', {}).get('short')
とか?
若干無駄があるがこの程度の無駄が気になる神経症はCでも書いとけ

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

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

122:デフォルトの名無しさん
18/09/06 15:13:17.47 QdhwFBW3.net
python 3.6.3
tkinter でファンクションキーを押したら文字列を表示させたいです
def text _desp(event):
  label["text"] ="bcdef"
label =tk.Label(root, text ="aaaaa", )
label.bind('<F1>', text_desp)
label.pack
と書いて、表示したウィンドウをアクティブにしてからF1を押してもtextが入れ替わりません
原因は何でしょうか?

123:デフォルトの名無しさん
18/09/06 16:49:56.62 ntAiYVJq.net
インタプリタ言語最強

124:デフォルトの名無しさん
18/09/06 17:12:39.45 QdhwFBW3.net
>>115
rootにbindしたらいけました
すみません

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


126:タ行してくれないのが不満だし



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

128:デフォルトの名無しさん
18/09/06 19:24:48.49 UI2giREj.net
VSCode の拡張機能のCode Runner を入れたら、
右クリックメニューから、そのまま実行できる
または、選択したコードを実行できる

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

130:デフォルトの名無しさん
18/09/06 21:16:02.79 r2CzgwVn.net
当っとるからええやん

131:デフォルトの名無しさん
18/09/06 21:16:08.52 fyvsaEga.net
あれ、書き込みにインデントが反映されてない…

132:デフォルトの名無しさん
18/09/06 21:33:42.86 rG7JeulO.net
>>123
ソース貼れるサイト
URLリンク(pastebin.com) ペーストビン
URLリンク(ja.osdn.net) OSDNコピペ ログインしないで投稿すると一週間で自動削除
>>1

133:デフォルトの名無しさん
18/09/06 21:46:28.09 r2CzgwVn.net
>>121
真面目に添削すると
数字意外を入力した場合に「不正な値です」と表示する
→数字でないならそもそも値ではないやんか、何言っとんやわれ?なめとんか?
「不正な入力です」と表示する
→不正というワードは否定形なのでわかりにくい
「間違った入力です」と表示する
→何が間違っているのかわからない
「数字以外の入力です」と表示する
→だからどうすれば良いのかわかりにくい
「数字を入力してください」と表示する
→漢数字でもええんか?
「答えになる数値を入力を入力してください」と表示する
→めっちゃわかりやすいやん!

134:デフォルトの名無しさん
18/09/06 21:56:28.45 bpm1lb7O.net
>>121
assert使うといいよ

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

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

137:デフォルトの名無しさん
18/09/07 17:07:52.42 82uhpEUK.net
>>121
valueはstrだから、たとけ入力されたのが"123"とかの数'字'であってもtypeはstrになる
つまり、自分で明示的に型変換をしない限り何を入力してもtype(value)==intが成り立つ事はない
入力を受け取ったらまず最初にvalueをintに型変換したら?
int(value)でできるし、変換できない文字列が入って来たらエラーになるので例外処理で不正な入力も検知できるよ

138:デフォルトの名無しさん
18/09/07 17:26:59.78 po/zaTpZ.net
たとけ

139:デフォルトの名無しさん
18/09/07 18:10:30.75 DKf48tK4.net
たとけ

140:デフォルトの名無しさん
18/09/07 18:16:00.07 QgSvA/nW.net
とたけけ

141:デフォルトの名無しさん
18/09/07


142:20:30:20.91 ID:DKf48tK4.net



143:デフォルトの名無しさん
18/09/08 02:42:10.64 zJ7GwxeF.net
import dataset
db = dataset.connect('sqlite:///zoo.db')
table = db['zoo']
results = table.find(damages = '大けが')
# for record in results:
# print(record)
if results == None:
print('無いです')
else:
print('ありました')
print(results)

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

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

import dataset
db = dataset.connect('sqlite:///zoo.db')
table = db['zoo']
results = list(table.find(damages = '大けが'))
# for record in results:
# print(record)
if results == []:
print('無いです')
else:
print('ありました')
print(results)

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

146:デフォルトの名無しさん
18/09/08 08:21:40.63 BJl7Ln5g.net
こんにちは。
pycharm という便利なものがあるとのことでさっそく使ってみました。
最新版の"PyCharm Community Edition 2018.2.3"をWindows 10 にインストールし、
プロジェクトの設定の"Existing interpreter"に、普段使用している cygwin64 の "python3.6m.exe"を
指定しました。IDEからRunすると問題なく実行されるのですが、ブレークポイントを設定して
Debugを実行すると、
pydev debugger: warning: trying to add breakpoint to file that does not exist: /cygdrive/c/pycharm_doc/test001/c:/pycharm_doc/test001/main.py (will have no effect)
という、ファイルが存在しないというエラーが出来ます。
cygwinのパスの表現と、windowsのパスの表現が合体した変なパス名が表示されます。
3台のPCで試したのですが、全部同じ結果でした。解決する方法はありますかねぇ。
(こちらの都合でcygwin環境が必須になっています)

147:デフォルトの名無しさん
18/09/08 08:54:48.94 LzkjeqyB.net
>/cygdrive/c/pycharm_doc/test001/c:/pycharm_doc/test001/main.py
Windows10・WSL で、Linux(Ubuntu)側から、Windowsのフォルダへアクセスしたような感じかね?
/mnt/c/Users/Owner/Documents
Ubuntu側から、WindowsのDocumentsフォルダへアクセス

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

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

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

151:デフォルトの名無しさん
18/09/08 12:43:49.56 cbJtO1ny.net
リーダブルコードでも読んでこい

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

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

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

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


156:全く無かった場合はforループの後に別の処理をしたいんだけど、やり方教えてほしいです。 for e in entri: title = e['title'] title = title.split(" - ")[0] summary = e['summary'] summaryList = summary.split("分") dateTime = f'{summaryList[0]}分' chuihou = summaryList[1] if title[:6] != '[ PR ]': if summa[-3:] == 'ます。': print(f'{title} {dateTime}') print(chuihou)



157:デフォルトの名無しさん
18/09/09 16:26:44.95 XnExmf42.net
5chは連続する半角スペースを消してしまうから
インデントが崩れる
(インデント崩さず)ソース貼れるサイト
URLリンク(pastebin.com) ペーストビン
URLリンク(ja.osdn.net) OSDNコピペ ログインしないで投稿すると一週間で自動削除

158:デフォルトの名無しさん
18/09/09 16:33:13.24 pN0oDaL+.net
どうもすみません
以下のコードです
URLリンク(pastebin.com)

159:デフォルトの名無しさん
18/09/09 17:06:15.73 0ym3cmgA.net
counter = false
ループ処理 { 1件でも処理したら、counterをtrue にする }
もし、counterがfalseのままなら{ 処理 }

160:デフォルトの名無しさん
18/09/09 17:17:25.83 pN0oDaL+.net
>>149
どうもありがとうございます
うまくいきました。

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

162:デフォルトの名無しさん
18/09/09 23:26:11.91 sFuHefah.net
printの下に同じインデントで
break

163:デフォルトの名無しさん
18/09/09 23:29:15.01 pN0oDaL+.net
>>152
おおお!
ありがとうございます

164:デフォルトの名無しさん
18/09/10 00:27:49.39 8UsAQXCT.net
えぇ…

165:デフォルトの名無しさん
18/09/10 08:53:06.79 iZVjiAgO.net
python卒業します
これからはjsと戯れます

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

167:デフォルトの名無しさん
18/09/10 09:37:57.70 SBVp+ZlE.net
達者で

168:デフォルトの名無しさん
18/09/10 13:25:23.61 nF+UxiuD.net
>>155
え!え?
そこは、普通 jsではなく
juliaだろ?
println("Hello julia")
女子小学生より31歳のお姉さまだろ、普通
URLリンク(i.imgur.com)

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

170:デフォルトの名無しさん
18/09/10 20:00:58.83 7UcGX0Ag.net
>>158
整形サイボーグっぽいですね
普通の人間がいいです

171:デフォルトの名無しさん
18/09/10 20:04:57.98 ZkfvzKVs.net
>>159
subprocess.run()でコマンドの出力と終了ステータスを取得できる
URLリンク(docs.python.jp)
最後の1行は改行文字でsplitして一番最後を取れば良い

172:デフォルトの名無しさん
18/09/10 20:08:23.29 t8KSuPE1.net
>>159
サブプロセスは最後に終了ステータスを吐くように記述しておく
pipeをつくる
終わる前にpipeから出力を全部とってきて
最後の2行(最後の1行+終了ステータス)以外はポイする

173:デフォルトの名無しさん
18/09/10 20:09:03.35 t8KSuPE1.net
>>161
ケコ━━(・∀・)人(・∀・)━━ン

174:デフォルトの名無しさん
18/09/10 23:14:11.21 068EZbdc.net
python 3.6.3 最新のpandas
数値で条件指定してquery()したいのですが、ここからどうしたらいいか分かりません。
北海道や東京等が邪魔で、比較が出来ないと怒られます。出来れば都道府県は消さずに、このまま条件指定したいです
良い方法ありますか?
.csvファイルからデータを読み込んでます
表示させると、こんな感じになります。index3以下は数値で埋まってます
URLリンク(i.imgur.com)

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

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

177:デフォルトの名無しさん
18/09/11 08:19:03.98 bezMNa3/.net
そうか
なら死ぬまでやってな

178:デフォルトの名無しさん
18/09/11 09:27:36.32 0W5Zv88y.net
csvから数値を取り出してるのに、str型とint型は比較できないとか言われる…
conditions = '(身長 > 160) & (体重 < 60)'
df.query(conditions)
文法は合ってますよね?
>>164

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

180:デフォルトの名無しさん
18/09/11 12:07:19.86 0Qtu/zKE.net
>>168
まちがってる希ガス

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

182:デフォルトの名無しさん
18/09/11 13:27:48.27 dcNBqXet.net
queryってラベル日本語okだっけ?

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

184:デフォルトの名無しさん
18/09/11 14:29:20.23 MIcxujEr.net
>>170
ほんとですか…帰ったら見てみます
>>172 >>173
Shift jisでエンコードしてて、printfしたら普通に見られたのと、エラーも吐かなかったので大丈夫かとおもいます
()は参考サイト通りにやりました。()取ってもダメでした

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

186:デフォルトの名無しさん
18/09/11 14:46:13.07 pwo3DQbp.net
無理

187:デフォルトの名無しさん
18/09/11 15:35:17.46 MIcxujEr.net
>>174
dropでindex[0]を消して、一旦保存し、また開き直して、抽出したら出来ました
スレ汚しすみませんでした…
でも、すごく無駄なことをしてる気がする…
原因として、index[0]にある文字列のせいで、下の数値も文字列として認識しちゃってた可能性が浮かびました
だから、開き直したらエラーも出ずに出来たんだと思います
ちなみに、reset_index も意味無かったです

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

189:デフォルトの名無しさん
18/09/11 18:16:29.60 YvR5RO13.net
生きるのにも向いてねえよ
はよ死ね

190:デフォルトの名無しさん
18/09/11 18:25:17.89 p1uFk9aE.net
みんなのPython 第4版、2017
みんなのが定番だけど、言語の初心者には良いけど、
プログラミング自体の初心者には、どうだろう?
たのしいRuby 第5版、2016
プログラミング自体の初心者は、Rubyでプログラミングを覚えてから、
Python の方が良さそう
他には、Progate などの教育サイトもある

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

192:デフォルトの名無しさん
18/09/11 19:19:03.51 AZXlXK10.net
pipでインストールしたライブラリに不備が見つかったので変更を加えたのですが実動作に反映されません。
キャッシュの削除も試してみたのですが変わらず・・・

193:デフォルトの名無しさん
18/09/11 19:19:31.34 cR5Dh89A.net
>>161
>>162
どうもありがとうございます�


194:B 返事遅くなってすみません。 ドキュメントが難しくて理解出来なくて。 最後の1行をとり出すとして、 subprocess.run(コマンド) stdout.sprit("\n")[-1] これだと、NameError: name 'stdout' is not definedってなってしまいます。



195:デフォルトの名無しさん
18/09/11 19:26:50.17 cR5Dh89A.net
>>183
aaa = subprocess.run(コマンド, stdout=subprocess.PIPE)
bbb = aaa.stdout.read()
ccc = bbb.split("/")[-1]
print(ccc)
こうやると
AttributeError: 'bytes' object has no attribute 'read'
このエラーでした

196:デフォルトの名無しさん
18/09/11 19:43:31.84 cR5Dh89A.net
subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(subprocess.PIPE)
-1がプリントされるんですが、-1とはなんですか?

197:デフォルトの名無しさん
18/09/11 19:54:36.58 cR5Dh89A.net
何度もすみません。
>>> subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE)
CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0,
stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n')
ドキュメントにこう書かれてあるので、CompletedProcessというリストが作られるのかと思い、
subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(CompletedProcess[-1])
とやってみたけど、
NameError: name 'CompletedProcess' is not defined
となりました。

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

199:デフォルトの名無しさん
18/09/11 21:54:28.05 LBODaWXG.net
>>175
それで良いと思うよ、ガンガレ

200:デフォルトの名無しさん
18/09/11 22:09:09.67 SPzv7yKx.net
>>179
ひどくないですか?流石に
>>180
ありがとうございます
progateというのは知り合いからオススメされてました
見てみます

201:デフォルトの名無しさん
18/09/11 22:09:33.55 SPzv7yKx.net
>>188
あざす

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

203:177
18/09/11 23:32:02.26 p1uFk9aE.net
Python には、多くの多言語の著者も、参入してる
クジラ飛行机・大津真、
弾幕系のシューティングゲームプログラミングで有名な、松浦 健一郎・司 ゆき
猿向きなのは、掌田津耶乃・高橋麻奈
「スッキリ」「猫でもわかる」は、まだ参入していない

204:デフォルトの名無しさん
18/09/11 23:57:02.57 UiecLNUs.net
みんなの~がいいのか
Pythonチュートリアル買っちゃった

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

206:デフォルトの名無しさん
18/09/12 00:39:20.04 NOD5QCpZ.net
>>980
次スレ立てるときはテンプレに下記文言の追加よろしく。
本スレでRuby本を薦めたりRubyコードを貼ることを禁止します

207:177
18/09/12 00:40:25.77 pVbQPMMe.net
Guido の「Pythonチュートリアル」は、ほとんど内容が無いw
詳細は何々を参照してください、ばっかりw

208:デフォルトの名無しさん
18/09/12 00:59:48.52 2r/3byF9.net
Pythonで以下のようなことは私のような超初心者でも可能でしょうか?
当方VBAとJavaをちょっと(API未経験)な程度のスキルしかありません
1 テキストファイルに書かれたアドレスのページを順番に保存
2 特定のページを開き


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



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

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

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

213:デフォルトの名無しさん
18/09/12 02:26:40.00 pVbQPMMe.net
簡単なクローラーは、wget
他には、Ruby のMechanize とか
もっと複雑な、JavaScript でページを作っているような動的なページは、
Ruby でSelenium WebDriver で、ブラウザを操作する

214:デフォルトの名無しさん
18/09/12 06:29:26.14 niWPqMtZ.net
>>192
まだJuliaには参入してない。

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

216:デフォルトの名無しさん
18/09/12 13:04:47.85 wa3fqHL8.net
pandasのデータフレームdfに対して次の処理をします
cols=[a,b,c,d]
dfx = df[cols].head(10).astype(str)
処理すべきデータフレームが複数あるとき
dfa,dfb,dfc...
dfxa,dfxb,dfxc...
としたいのですが、ループで処理を使い回すことはできますか?
dfxa=dfxb=dfxc=None
for i,j in zip([dfa,dfb...],[dfxa,dfxb..]):
__j =i[cols].head(10).astype(str)
はダメでした
※あと↑ループ内ではNoneな変数にそれぞれ値が代入されるのに、ループ後にprintするとNoneとなる理由もわかりません

217:デフォルトの名無しさん
18/09/12 20:43:31.59 krza25ay.net
それよりも基礎やれよ
関数も分からんのだろお前

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

219:デフォルトの名無しさん
18/09/12 21:38:01.53 pVbQPMMe.net
>>197-201
「wget 入門」で検索!
-i ファイル 指定したファイルに記載された、URLをダウンロードします。
-r 再帰的にダウンロードします。ページ内のリンクをたどってダウンロードします。
-l 数 --level=数 指定した階層分リンクをたどる。
「-r」オプションのデフォルトは「-l 5」なので「-l1」を指定する。
これで特定のページの、リンク先のページだけをダウンロード(DL)する
-A -R で、DLするファイルの拡張子を指定する。
--spider ファイルをダウンロードせず、URLの存在だけチェックする。
-H, --span-hosts 再帰中に他のドメインも、ダウンロード対象にする
-k, --convert-links HTML や CSS 中のリンクを、ローカルを指すように変更する。
ローカルPC 内だけで動くように、リンクを相対パスに変換する

220:デフォルトの名無しさん
18/09/12 21:40:29.26 pVbQPMMe.net
>>206
>>192
に書いてある

221:デフォルトの名無しさん
18/09/12 21:42:05.84 T/3USJ28.net
>>208
地雷一覧?

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

223:デフォルトの名無しさん
18/09/13 00:31:00.11 ECzOVYUy.net
test

224:デフォルトの名無しさん
18/09/13 00:33:41.14 ECzOVYUy.net
import re
with open('aa.txt', 'r+') as f:
 while True:
  line = f.readline()
  ret = re.search(r"^a", line)
  if(ret):
   f.writelines("---")
  if not line:
   break

225:デフォルトの名無しさん
18/09/13 00:34:51.38 ECzOVYUy.net

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

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

227:デフォルトの名無しさん
18/09/13 00:41:04.65 X3zFvlHv.net
>>205
このレスは何が言いたいの?

228:デフォルトの名無しさん
18/09/13 00:45:51.99 ECzOVYUy.net
>>214
そうなのか
サンクス

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

230:デフォルトの名無しさん
18/09/13 03:27:39.30 2ca+8xGJ.net
>>217
詳しく

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

232:デフォルトの名無しさん
18/09/14 01:19:44.19 13WSTRRA.net
tqdmについて質問です。
ラジオで今放送されている番組情報を表示するスクリプトを作っててプログレスバーを付けたいです。
URLリンク(i.imgur.com)
以下がそのコード一部です。これだとスクリプトを動かした時点がプログレスバーの0%の位置なんですが、
プログレスバーの0%の位置は番組開始時間、100%が終了時間、プログレスバー長さは現在の時間ってやる事で来ますか?
URLリンク(pastebin.com)

233:デフォルトの名無しさん
18/09/14 01:27:39.44 KCZmWOCp.net
なかなか面白い事やってるね

234:デフォルトの名無しさん
18/09/14 01:54:22.66 Vmeq3cpR.net
Ubuntu16.4の環境下でPython3.6でFlask+uwsgiでRESTサーバ作っており、
そこでロギングで壁に当たってます。
汎用loggerにTimeRotatingFileHandlerをaddして1時間毎にローテーションするように実装しました。
これはハンドラが作られた時間がローテションタイミングの基準点で、そこから1時間後に
ローテションって意味で、正確に毎時0分にローテーションというのは無理なのでしょうか?
また、1回目のローテーションまでは正常にローテーションしてるのですが、
2回目以降が1時間単位のインターバルが無効になってるように見え、一定のファイズサイズに達すると
勝手にローテートしてしてしまいます。 これによって1回目に退避されたログが2回目の
ローテーションファイルで上書きされていまい、実質ログが消えてしまいました。
これらの対策としては自分でTimeRotatingFileHandlerのサブクラスで拡張するや、
SocketHanderで受け側を作る構成にするか、または単純にFileHanderで永久出力して
logrotate.dでローテーションしたほうが安全なのでしょうか?
いろいろ検証してるのですが答えが見つからず・・・ 知っているかたいれば教えて対策教えてください。

235:デフォルトの名無しさん
18/09/14 02:15:35.00 13WSTRRA.net
>>221
変なことやってしまってますか?

236:デフォルトの名無しさん
18/09/14 02:38:02.20 YQ1y2eFS.net
>>222
>正確に毎時0分に、ローテーションというのは無理なのでしょうか?
そういう設定があるのでは?
>一定のファイズサイズに達すると、勝手にローテートしてしてしまいます
それは多分、ファイズサイズでローテートする設定にしているから
>これによって1回目に退避されたログが、2回目のローテーションファイルで上書きされてしまい
同じファイル名にならないように、ファイル名に時�


237:盾tけたりすれば? とにかく、ログローテーションの文書を読むしかないと思う



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

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

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

241:デフォルトの名無しさん
18/09/14 13:34:13.63 6AOpn7AN.net
>>220
tqdmは手動で動かすこともできるので、番組開始時間や現在の時間から計算した値をセットすればできる
with tqdm(total=番組の長さ) as pbar:
pbar.update(番組開始から現在までの経過時間)
#残りはfor等で適宜update

242:デフォルトの名無しさん
18/09/14 14:31:48.36 GqHziv8p.net
>>227
シェルからってこと?
ruby言われてもわかんない
python3 -c 'for r in range(3): print("py")'

243:デフォルトの名無しさん
18/09/14 17:19:47.96 13WSTRRA.net
>>228
どうもありがとうございます
forの書き方はこれであってますか?
URLリンク(pastebin.com)
URLリンク(i.imgur.com)
この書き方だと、スクリプトを動かしたすぐは0%のままで経過時間分のバーにはならず、forループの1回目が終わったら、経過時間をプラスした分メーターが進みました。
あと、プログレスバーの右側の
11372/14400 [10:18<50:51, 1.01s/it]
ってなってる所の表示を消したり変えたりする事も出来ますか?
tqdmのドキュメントにはプログレスバーの左側に文字を入れたりバーの色を変える方法は載ってたんですが右側の事は分かりませんでした。

244:デフォルトの名無しさん
18/09/14 17:26:16.68 tz1WlCUG.net
>>229
おおthx

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

246:デフォルトの名無しさん
18/09/15 10:54:49.48 0IDKpbCI.net
URLリンク(www.packtpub.com)
タダやし好きなのをどうぞ

247:デフォルトの名無しさん
18/09/15 11:20:31.39 WA7DfSYz.net
英語…

248:デフォルトの名無しさん
18/09/15 11:38:53.49 AVfR6YnT.net
thx

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

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

251:デフォルトの名無しさん
18/09/15 12:44:48.44 FXFGXSpW.net
>>232
職のためにやってるならDB、Django、AWS、Docker、HTML
趣味のためにやってるならスクレイピング、SQLite、PyGame
人工知能はあまりおすすめできない
大半の人間には難しいものだし、学習データを大量に用意できないと話にならんし

252:デフォルトの名無しさん
18/09/15 12:57:03.70 eH38IGCF.net
>>230
pbar.update(keikaJikan)
の後に
pbar.set_description(refresh=True)
いれたら?
ドキュメントに詳しい記述がなかったので
うまくいくかわからないけど

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

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


255:フはどうかと



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

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

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

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

260:デフォルトの名無しさん
18/09/15 22:34:28.61 VdLZkjGs.net
この2冊は双子だから、両方読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
入門書の次は、どの言語でも「Effective 何々」
Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説
Effective Python ―Pythonプログラムを改良する59項目、2016
Web フレームワークは、無料のRails チュートリアルをやってから、
掌田津耶乃の、
Python Django 超入門、2018
Node.js超入門、2017

261:デフォルトの名無しさん
18/09/15 23:45:55.32 3GwANLPp.net
みんなのGO言語は?
これは兄弟じゃないの?

262:デフォルトの名無しさん
18/09/16 00:20:27.43 0MknoGjv.net
>>239、237、239
どうもありがとうございます!
その関数とprogressbar2について調べてみます。
>>230 ので動かしてみているんですが、どうも番組終了時間になって次の番組が表示されるタイミング時点で偶にバーはまだ68%しか進んでいなかったりしました。
それでも時間が来ると次の番組情報は表示してくれるんですが何となく気持ち悪かったです。
夏休みからPythonをはじめたプログラム未経験文系豚JKの場合です。
自分が読んだ本は退屈なことはPython~、入門Python3、Pythonではじめるデータラングリング、PythonによるWebスクレイピング、Pythonによるデータ分析入門をそれぞれ流し読みしました。
Pythonによるデータ分析入門は分析そのものの説明じゃなかったので自分には全く読めませんでした。
このスレでたくさん教えてもらって、radikoの一日の番組表の表示、今放送されている番組の表示、録音、自動でファイルへのタグ付け、オンエア曲の情報の表示やSQLに保存する、がとりあえず動くようになった。
上の過程でrequestsの使い方が分かったので、録音が終わったらSlackへの通知や、コンソールを使って動かすんじゃなくて、Hubotを使ってSlackのBotに話しかけて上の操作が出来るようになった。
次はradikoプレミアムのログインや認証にチャレンジしたいけれど、さっぱり分からない。
Pythonで何が出来るのか分かっていないから他に何をやりたいという事が思いつかないので、学習のモチベも保てない。
マルチタスク?マルチスレッドについて学ぶために番組情報の表示と再生が出来るようにしたらいいですか?
もっと面白いことやりたいです。

263:デフォルトの名無しさん
18/09/16 01:54:46.83 EK9e0hMh.net
女性なら「たのしいRuby 第5版、2016」をすすめる。
Rubyの女神・女優の池澤あやかも女性
Ruby でも、Selenium WebDriver で、スクレイピングするとか
その後は、Web アプリの開発。
無料のRails チュートリアルをやる
ログインぐらいなら、Selenium WebDriver で、
自動操作で、ユーザー名・パスワードを入力して、ログインできる
Showroom のメニュー・アバターなども、うっとおしい


264:から、それで消してる



265:デフォルトの名無しさん
18/09/16 05:21:28.05 RAxt/rA1.net
Ruby勧めてどーすんの

266:デフォルトの名無しさん
18/09/16 05:50:28.28 32fLF0l4.net
ガイジに一般的な思考で対応するな

267:デフォルトの名無しさん
18/09/16 12:25:11.08


268:TMbORASx.net



269:デフォルトの名無しさん
18/09/16 14:41:53.91 8ER5Tq3J.net
>>252
effective pythonにすれば?

270:デフォルトの名無しさん
18/09/16 17:55:04.89 Zt4iEZ/q.net
ちわーくっそ初心者です。
tryとexceptの構文について質問です。
以下のコードでわざとValueErrorがでるように
ターミナルに文字列を入力してるんだけど
except ValueErrorしてても例外処理できないんですが、なぜだかわかる方いらっしゃいますか?
環境
python 3.6.5
mac OS 10.13.6
Atom
コード
a = int(input('type a number'))
b = int(input('type another'))
try:
print(a/b)
except ZeroDivisionError:
print('無効な入力 / Invalid input')
except ValueError:
print('数値を入力してください')
ターミナル
type a numberあ
Traceback (most recent call last):
File "ExceptPractice.py", line 1, in <module>
a = int(input('type a number'))
ValueError: invalid literal for int() with base 10: 'あ'

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

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

273:デフォルトの名無しさん
18/09/16 18:20:04.63 MHdxl4uh.net
公式のチュートリアルでおk

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

275:デフォルトの名無しさん
18/09/16 18:29:11.76 HF0YmRsW.net
これはひどい

276:デフォルトの名無しさん
18/09/16 20:07:13.91 nqHAh3X3.net
こういうやり取りは良いと思うな

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

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

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

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

281:デフォルトの名無しさん
18/09/18 19:45:53.01 5C+j+SZY.net
m1.py
―-
class C1:
 def f1(self):
  print(‘aaa’)
import m2
―-
m2.py
―-
def f2(self):
 print(‘bbb’)
from m1 import C1
C1.f1 = f2
―-
とかできない?

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

283:デフォルトの名無しさん
18/09/18 21:34:34.65 3PaEdz0L.net
>>266
お前なら出来るだろ?

284:デフォルトの名無しさん
18/09/18 21:34:50.63 5C+j+SZY.net
class C1:
 def f1(self):
  print(‘aaa’)
def f2(self):
 print(‘bbb’)
C1.f1 = f2
C1().f1() #=> ‘bbb’
はできるのに?

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

286:デフォルトの名無しさん
18/09/18 21:54:38.88 MzzhSWkv.net
C1.f1 = f2をm1でやるんじゃだめなんか?

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

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


289: バカはしばらく黙っとけw



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

291:デフォルトの名無しさん
18/09/18 22:07:14.79 3Z5SLW4f.net
>>273
トリッキーな事をしたかったらせめて自分で調べて理解できるようになってからやれ
これ以上はつきあわんぞ俺はまた無能に戻るからな

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

293:デフォルトの名無しさん
18/09/19 12:06:37.88 kBVhwTEM.net
>>265
C1を継承したクラスC2を作ってオーバーライドするのが真っ当だと思う
import m1
class C2(m1.C1):
def__init__(self, *args, **kwds):
super().__init__(*args, **kwds)
def f1(self):
print(‘bbb’)

294:デフォルトの名無しさん
18/09/19 12:10:33.79 kBVhwTEM.net
>>273 を読んでなかったわ

295:デフォルトの名無しさん
18/09/19 12:18:54.82 PupZqwJJ.net
最後に C1 = C2 で桶

296:デフォルトの名無しさん
18/09/19 12:30:17.29 j0vZv9bU.net
>>271
そういう作業を何千回もやる可能性があるならプログラムにやらせたほうが楽で正確だから
作業の回数が1日1回レベルだったとしても、毎日やらなきゃいけないなら
やり忘れや、ちょっとした間違いを防ぐためにプログラムにやらせたほうがいいから
単純にプログラムを書くのが楽しいから

297:デフォルトの名無しさん
18/09/19 15:16:53.25 bRibFDbQ.net
pythonってVisualStudioで使えますか?

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

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

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

301:デフォルトの名無しさん
18/09/20 10:51:05.31 fiW+YUJ7.net
>>283
とりあえずここを見て使えそうな処理を使えばいい
URLリンク(docs.python.jp)
俺だったらテキストとして結合して、strptimeで処理するかな
桁揃えの必要があるならzfillを使う

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

303:デフォルトの名無しさん
18/09/20 12:19:46.96 7WHuQIEO.net
numpyに入れる

304:デフォルトの名無しさん
18/09/20 13:48:45.51 fiW+YUJ7.net
>>285
1回だけの処理なら中断保存・再開できる仕組みを入れつつ数十分ぐらい我慢しろ
何度も処理しなきゃいけないなら、処理が遅いPythonにやらせるべきじゃない
CやJavaみたいな処理が早い言語にやらせるべき
あと、リストを渡すと処理したリストを返してくれる関数は
内部的にはforループ使ってる
だから「forループを使わずに」なんて無理

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


306:ナないの?



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

308:デフォルトの名無しさん
18/09/20 15:49:34.65 gMhM2k+x.net
>>287
面白いねw

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

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

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

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

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


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