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

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

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

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/
2018/11/11(日) 12:06:11.66ID:uw9PiA4L
この自己愛
同種だな
2018/11/11(日) 13:13:23.27ID:3JRsWB+V
謎の一体感w
一般人には理解不能
860デフォルトの名無しさん
垢版 |
2018/11/11(日) 13:36:01.34ID:96wp+TZd
>>828
まさか普段ruby使ってる?
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()
2018/11/11(日) 23:32:22.24ID:ARqR0CiK
>>828
Ruby ではメソッド名に、! がつく、破壊的メソッドが、nil を返すことがある。
破壊的メソッドとは、レシーバ自身を変更するもの

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

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

line.chomp!.empty?

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

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

jQuery では、メソッドチェーンしてもエラーが起きない
2018/11/12(月) 01:26:40.44ID:BcZUmovG
「Ruby」をNGワード登録するのが簡単・便利
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)で返ってきたリストにそのままソートかけてそう
まずはどんなリストが返ってきてるかそのまま表示してみたら?
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以下がないとだめなのでしょうか?
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文の最後に":"があるかないかで判定するのでしょうか?
2018/11/13(火) 11:49:03.16ID:dBAvKT8b
https://realpython.com/python-conditional-statements/#conditional-expressions

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

その前にプログラミングに飽きている可能性の方が高い
2018/11/15(木) 00:52:47.72ID:1MY0pWfp
>>886
ありがとうございました!
888デフォルトの名無しさん
垢版 |
2018/11/15(木) 13:46:36.75ID:djL3d80k
pythonでgui アプリ作るには、tkinterってやつでいいんでしょうか
そもそも作れますか?
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支援とかも完璧なんだろうな。
2018/11/15(木) 19:15:13.23ID:MeEMSEca
>>892
あるぉ
894デフォルトの名無しさん
垢版 |
2018/11/15(木) 19:44:19.96ID:djL3d80k
-m tkinter
でtkinterのバージョンを確認できるそうですが、chdirしないとだめなんでしょうか
デフォルトの場所だとinvalid syntaxエラーになります
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でやってきます(´・ω
2018/11/16(金) 20:10:36.27ID:arJZkCZY
おれidleだけでgui開発やってるよ
902デフォルトの名無しさん
垢版 |
2018/11/16(金) 20:15:48.44ID:IxhrRMJp
tkinterってリファレンスないんすか(´;ω
公式がないですがすでに
2018/11/16(金) 20:23:20.55ID:arJZkCZY
ttps://docs.python.org/ja/3/library/tkinter.html
904デフォルトの名無しさん
垢版 |
2018/11/17(土) 09:50:58.58ID:eS8uuMhZ
pythonとopneglでblenderみたいなソフト作れますか
植物を自動生成したいだけですが
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+
誤爆すまん
2018/11/17(土) 12:52:15.90ID:+Lh4qwu/
https://hoge.com/3/1330.jpg
https://hoge.com/3/1622.jpg

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

https://hoge.com/3/1330.jpg
https://hoge.com/4/5.jpg

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

やり方教えて下さい!
2018/11/17(土) 14:26:54.02ID:xcAZYE+8
>>910
糞クローラー作るな
逝ってよし
2018/11/17(土) 16:36:18.08ID:Y/z/VfN+
もやはサイバーテロだな
913デフォルトの名無しさん
垢版 |
2018/11/17(土) 19:28:23.67ID:eQWBxdMf
おまえは存在がリアルテロやんw
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
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

出力
https://example.com/3/9.jpg
https://example.com/3/10.jpg
https://example.com/4/9.jpg
https://example.com/4/10.jpg
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

追加してみ
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で出来ますか?
2018/11/19(月) 18:41:55.53ID:hzrCQ9gE
>>920
javascriptスレできけ案件
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の間違いです
2018/11/19(月) 21:41:38.78ID:SMn8EX2d
r = requests.get('http://example.com/eroero.jpg', stream=True)
with open('eroero.jpg', 'wb') as f:
  while 1:
    bin = r.raw.read(128)
    if not w: break
    f.write(bin)
2018/11/19(月) 21:45:32.10ID:hzrCQ9gE
>>924
だから糞クローラつくるんじゃねえksg
くたばれ
窓からPC投げ捨てろ
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とがと関係無いからな
2018/11/19(月) 22:36:23.06ID:lzm8caWs
>>918
ありがとうございます
追加したけどやっぱり文字化けしました
934デフォルトの名無しさん
垢版 |
2018/11/19(月) 22:48:30.82ID:m6msMsxr
>>932
なるほどです
2018/11/19(月) 23:17:27.92ID:057j8H5Q
ダウンロードして保存するコマンドは、curl, wget
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
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 の処理を、再定義して使ってください

もし再定義しなければ、何も処理しません
2018/11/20(火) 09:32:49.23ID:2X5h674N
>>937-938
ありがとうございました、そういう事だったのですね
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
https://i.imgur.com/0YbMsqj.jpg
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
2018/11/20(火) 16:39:53.72ID:5NbKWroI
>>933
しぇばん、importが済んだ後あたりに

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

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

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

>>947
全部取り出してから
そのリストから
aaa_000.txtだけさくーじょするのが早い(´・ω・`)
2018/11/20(火) 20:51:12.06ID:+8Izpd7U
>>951
その方が後から見てわかりやすいしな
2018/11/20(火) 21:05:36.49ID:5mSMf66i
あああ、mjdって「マジで」かー
2018/11/20(火) 21:13:03.42ID:aqI13PjQ
いくらくだすれとはいえこんな頭のおかしい奴が回答者だとは…
2018/11/20(火) 21:13:50.48ID:5NbKWroI
初心者の
初心者による
初心者のための
互助すれ
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使う必要性はないと思う
2018/11/20(火) 21:15:59.61ID:3m3Squu1
Pythonのtime sleepとcrontabのコードって相性悪くない?
レス数が950を超えています。1000を超えると書き込みができなくなります。