X



くだすれPython(超初心者用) その51【まず1嫁】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2020/10/17(土) 10:05:38.14ID:1RQ0Wdhu
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
  ↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。最近流行中?
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 くだすれPython(超初心者用) その50【まず1嫁】
http://mevius.5ch.net/test/read.cgi/tech/1598527450/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
0003デフォルトの名無しさん
垢版 |
2020/10/17(土) 14:00:51.41ID:dPJ220D1
いちおつ有能
0005デフォルトの名無しさん
垢版 |
2020/10/17(土) 14:13:02.49ID:Y2egJtFL
可読性を犠牲にして実行速度を得られるPythonのコードってどういう例がありますか?
0007デフォルトの名無しさん
垢版 |
2020/10/17(土) 16:37:45.50ID:SpKdHUv/
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
0009デフォルトの名無しさん
垢版 |
2020/10/17(土) 22:57:23.60ID:aI2oeiUv
何があったか知らんけど、7みたいな中学生をコテンパンに言い負かしたやつが悪い
0010デフォルトの名無しさん
垢版 |
2020/10/18(日) 00:29:45.75ID:BP1EUUz6
list_a = ['a', 'b', 'c']
list_list = [] (リストのリスト)

list_aの末尾に要素を追加してから、そのリストを丸ごとlist_listへ追加したい。(list_aの中身はどうなってもいい)

(1)
list_list.append(list_a.append('d'))
→戻り値で評価されて、Noneがappendされてしまう

(2)
list_a.append('d')
list_list.append(list_a)
→ならlist_listは想定の結果となる
(list_aは更新される)

(3)
list_list.append(list_a + ['d'])
→も想定の結果となる(カッコ内がリストの戻り値だから)
(list_aは更新されない)

(1)のような書き方みたいに、そのオブジェクトが更新されるメソッドを実行した後のオブジェクトとしてappendの引数に入れるような書き方というのはできないですか?
0012デフォルトの名無しさん
垢版 |
2020/10/18(日) 01:09:16.00ID:XIKHaV9E
listを継承して、append後にselfを返すメソッドでも実装しなはれ
0013デフォルトの名無しさん
垢版 |
2020/10/18(日) 01:13:49.31ID:XIKHaV9E
class MyList(list):
__def append(self,a):
____super().append(a)
____return self

list_a=MyList([‘a’,’b’,’c’])
list_list=[]
list_list.append(list_a.append(d))
0014デフォルトの名無しさん
垢版 |
2020/10/18(日) 09:52:27.61ID:h0an4siz
>>10
list_list = [*list_a, 'd']
0015デフォルトの名無しさん
垢版 |
2020/10/18(日) 10:28:15.04ID:+vZczgoX
>>10
オブジェクトを直接変更するメソッドは変更後のオブジェクトを返さないのが
Pythonの基本的な考え方なので
(2)の動作を求めてるならそのまま2行で書くやり方に慣れたほうがいい
0016デフォルトの名無しさん
垢版 |
2020/10/18(日) 11:01:34.94ID:vmWunLYe
>>10
そう言うのは関数型言語的な発想。
もしくは同じオブジェクト指向でもメッセージパッシング主体のSmalltalkやRubyの発想。
Pythonのオブジェクト指向はC++的。

美しきHaskell畑へようこそ。
0018デフォルトの名無しさん
垢版 |
2020/10/18(日) 11:30:11.96ID:H1xH1BRx
他の言語知ってても
python 初心者の頃は仕方ない
sort() sorted() でも混乱するし
len() はナニコレって思う
0019デフォルトの名無しさん
垢版 |
2020/10/18(日) 13:40:43.68ID:LTF40fUE
むかし無印C そしてアセンブラをちょっとやってPythonに来たんだけど
len()便利!って思ったおもひで
0020デフォルトの名無しさん
垢版 |
2020/10/18(日) 19:26:16.89ID:sP6Ssfc9
Windows版 Anacondaでenv配下のpython exeを直叩きするとライブラリのエラーを吐く(baseが起動されてる?)んですがこれって仕様ですか?
Ubuntuで使ってたときはpython直叩きで普通に動いてたのですが…
0022デフォルトの名無しさん
垢版 |
2020/10/19(月) 01:51:34.80ID:/dP3R2fY
>>11-16
遅くなりすみませんが、ありがとうございました。
そういうもの、ということでpythonに慣れていきたいと思います。
0023デフォルトの名無しさん
垢版 |
2020/10/19(月) 02:50:44.31ID:OVCmHBqA
[{"a":1},{"a":2}]
みたいなネストされた複数辞書をjson.loadで読み込むことに成功はしたのですが
なぜか相対パスだと成功して絶対パスだと
dictionary update sequence element #0 has length 1; 2 is required
なエラーがでて失敗します
なんでですか
0025デフォルトの名無しさん
垢版 |
2020/10/19(月) 07:24:07.28ID:zWJLigJ7
>>23
エスパーすると
フルパスの中の
半角スペースか
2バイト文字が
悪事を働いている

あるいは
ダメ文字
0030デフォルトの名無しさん
垢版 |
2020/10/19(月) 13:22:16.43ID:xZeEkj1k
今どき全角だから受け付けないとか許されんわ。
うっかり世界中に絵文字を流行らせてしまった責任取れ
0031デフォルトの名無しさん
垢版 |
2020/10/19(月) 13:27:52.28ID:asy7wTux
ソースのエンコード
テキストデータのエンコード
ファイルシステムのエンコード
把握しとけよ
0032デフォルトの名無しさん
垢版 |
2020/10/19(月) 21:01:35.50ID:2Is2q0wK
>>30
表示の問題でスペースに見える文字がたくさんある
これらを認めることにするのかしないのか決めないといけない
0033デフォルトの名無しさん
垢版 |
2020/10/20(火) 13:43:26.44ID:ysKzRYjJ
簡単な検索サイトみたいなの作りたく5月に初プログラミングでPythonはじめて、1ヶ月くらいで原型はできてきたけど
そこからMysqlの速度改善、いろんなケースの対応とか修正改良に何ヶ月もかかってしまった…
まだHTMLとCSSもほとんどできてないし、ウェブサイト作成の道のりがこんなに長いとは思わなかった
最初に完成形を思い描いておいて正解だった。目標が見えてなかったらとっくに挫折してる
0034デフォルトの名無しさん
垢版 |
2020/10/20(火) 15:21:01.77ID:Zx1gytYL
おきばりやす
0035デフォルトの名無しさん
垢版 |
2020/10/20(火) 16:29:48.06ID:eycpLBp6
class A:
_def __init__(self):
__self.data = [1,2,3]

a = A()
for d in a.data:
_print(d)

forで回すときだけ、for d in a:と書くだけで
実際はa.data返してくれる特殊メソッド的なやつはないのでしょうか
0037デフォルトの名無しさん
垢版 |
2020/10/20(火) 17:29:05.66ID:nDz4VJ3V
__iter__()
0038デフォルトの名無しさん
垢版 |
2020/10/20(火) 17:31:25.43ID:vcQhkuUZ
>>35
[Python] イテレータを実装する - Qiita
https://qiita.com/tchnkmr/items/e740173d7400f8672d75

Python3 – __iter()__によるイテレーターの実装 – TauStation
http://taustation.com/python3-iterator-implementation/

Pythonの特殊メソッド一覧を備忘録としてまとめてみた。 - Qiita
https://qiita.com/y518gaku/items/07961c61f5efef13cccc

C++やJavaに慣れていればどうということは無いかんたんな仕組み
0040デフォルトの名無しさん
垢版 |
2020/10/20(火) 19:50:39.99ID:HzDHbN9N
>>35
__iter__でa.dataを戻り値
0041デフォルトの名無しさん
垢版 |
2020/10/20(火) 19:57:20.87
import itertools
import time

class A:
_def __init__(self):
__self.data = [4,6,5]
_def __iter__(self):
__return itertools.cycle(self.data)
_def __next__(self):
__return next()
a = A()
for d in a:
_print(d)
_time.sleep(1)

>>37,38
self.dataを汚すかどうかは置いといて
できました ありがとうございました

>>36
ないのでしょうか?
一応それっぽいというか、まさにってものができたのですが
やらないほうがいい理由を後学のため教えてください
0043デフォルトの名無しさん
垢版 |
2020/10/20(火) 20:09:19.14
だめだ会話が成り立たない
クラスにするかどうかってここで関係あるのかなぁ…
>ないからって
というのはどういう意図で言ったのか聞きたかっただけなのに
0044デフォルトの名無しさん
垢版 |
2020/10/20(火) 22:38:32.31ID:vwGc/p8H
自分は逆に、こういうのでもクラスを使うほうがいいのかと思ってしまった
いまだに自作のクラスを使わないといけない状況にあったことがないので
だから全然クラスの知識が増えない
0045デフォルトの名無しさん
垢版 |
2020/10/20(火) 22:50:02.10ID:19yz3Hql
pandasでカラム1〜カラム10まであるとして、
axis=1の方向でソートして3番目の値を新たにカラム11とする場合の書き方を教えてください。
カラム1〜10はすべて数値です。
0046デフォルトの名無しさん
垢版 |
2020/10/21(水) 11:34:12.69ID:zDJAgP8g
勉強始めてまだ3日目。まだアンダーバーの意味すらわからん。
カメに捕まってしまいましたし。
0047デフォルトの名無しさん
垢版 |
2020/10/21(水) 12:31:30.33ID:xBgAWF1Y
import random
import pandas as pd
df = pd.DataFrame([[random.randint(1,10) for _ in range(10)] for _ in range(5)])
df['No3'] = df.apply(lambda x: sorted(x)[2], axis=1)
print(df)
0051デフォルトの名無しさん
垢版 |
2020/10/21(水) 23:59:34.46ID:eEy42ac7
先週からPythonを始めた初心者です
手書きの数字を書いた画像ファイルからその数字を予測させるプログラ厶を作っているのですが、作ったプログラムファイルと画像ファイルを同一フォルダ内に入れるにはどうすればいいでしょうか?
画像ファイルはペイント3Dで作成したものです
コード以前の質問で申し訳ありません
0052デフォルトの名無しさん
垢版 |
2020/10/22(木) 02:29:50.64ID:9XviiwvN
>>51
ペイント3Dで画像を保存する時にプログラムファイルと同じフォルダを指定して保存すれば良いんじゃないの?
処理の手順とか書いてくれたら何がしたいのか分かるかも
0053デフォルトの名無しさん
垢版 |
2020/10/22(木) 10:41:34.94ID:vPWH9GQz
退屈な事はpythonにやらせよう
0055デフォルトの名無しさん
垢版 |
2020/10/22(木) 14:48:20.36ID:iRctxXkJ
料理洗濯も
0058デフォルトの名無しさん
垢版 |
2020/10/22(木) 19:58:02.49ID:3xJ2F0Gf
>>52
回答ありがとうございます
Python IDLEでプログラムファイルを作成し、次にペイント3Dで作った画像ファイルを同じ場所に保存しようとしたのですが、作成したプログラムファイルが見つかりませんでした
Python IDLEのメニューからだと見つけられるのですが、ペイント3Dからだと同じ場所を探してもありませんでした
仕方なくPython IDLEのメニューからフォルダを新規作成し、そこにプログラムファイルと画像ファイルをコピペしたのですが、それを実行してもRESTARTと表示されるだけで何も起こりませんでした
PC自体に疎く、説明が上手くできず申し訳ありません
0065デフォルトの名無しさん
垢版 |
2020/10/23(金) 00:44:59.96ID:L7Q9DyFd
>>64
名前を付けて保存を選択したら.pingという拡張子になったのですがこれではいけないでしょうか…
0066デフォルトの名無しさん
垢版 |
2020/10/23(金) 01:32:11.21ID:ykqFrr6r
>>65
いけない子ですねー、バチが当たります。
>>51> "数字を予測させるプログラ厶"
はそんな.ping子を呼びだしとるんかね?
0067デフォルトの名無しさん
垢版 |
2020/10/23(金) 02:24:54.03
javascriptでいうところのブロック{}で囲んで複数行のコードを書けるような無名関数と同等のものって
pythonだとラムダ式で \ を使う方法しかないっぽいですね?
(lamba:[,,,]みたいな書き方だと変数を外におけば大抵はいけそうですけど)
0068デフォルトの名無しさん
垢版 |
2020/10/23(金) 07:13:03.18ID:loxVAW2U
>>67
Pythonはlambdaで実現できないもの(文)はdefで名前つける必要がある、というルールだから、厳密に同じことはできないのではないかな
見た目は多少ごちゃごちゃするけど、関数内defで困ることはない感じ
0070デフォルトの名無しさん
垢版 |
2020/10/23(金) 09:43:35.64ID:GB49RwlR
>>58
ペイント3Dからpythonのプログラムファイルを見つけようとしたの?
通常ペイント3Dから見えるのはペイント3Dで開ける画像形式だけだよ。
エクスプローラーから両方のファイルが見えるなら正常動作
0071デフォルトの名無しさん
垢版 |
2020/10/23(金) 12:12:46.38ID:nXkr9gOB
リスト内の検索で教えて下さい。
[0, 1, 2, 3, 4]
[0, 1, 2, 4, 6]
[1, 2, 3, 4, 6]
  :

このようなリストを10000行含むテキストがあります。テキストの中に重複はありません。

sf = open('Search.txt', 'r')
S_list = sf.readlines()

for i in range(20):
print(S_list[i], end='')

として確認すると、ちゃんと読み込まれています。
プログラムの中で、新しい [1, 3, 3, 4, 9]

というリストをつくり、これが読み込んだ S_list に含まれるかという
判定をしたいのですが、すでにある[0, 1, 2, 3, 4]を

'[0, 1, 2, 3, 4]' in S_list
とかを試しても、Falseとなってしまいます。

これでTrueを返すにはどうしたら良いでしょうか。
データの比較は1行そのものにマッチするかという感じです。

関係ないかもしれませんが、データ形式を確認すると
print (type(S_list[0]))
<class 'str'>

となり、読み込まれた行データはstrとなっているようです。
どうか、よろしくおねがいします。
0072デフォルトの名無しさん
垢版 |
2020/10/23(金) 12:26:54.44ID:5NWyTruo
S_listに入ってるのは '[0, 1, 2, 3, 4]'という文字列
でもあんたが欲しいのはきっとリストの集合でしょ

printすりゃリストのように見えるのも当然
0073デフォルトの名無しさん
垢版 |
2020/10/23(金) 12:30:01.02ID:5NWyTruo
だから「新しい [1, 3, 3, 4, 9]というリスト」じゃなくて
「『新しい [1, 3, 3, 4, 9]というリスト』を文字列にした、'[1, 3, 3, 4, 9]'という文字列」をS_listに入れる

リスト[1, 3, 3, 4, 9]をprintとしたときの見映えと、'[1, 3, 3, 4, 9]'という文字列をprintした時の見映え、一緒になるでしょ
だから見ても分らない
0074デフォルトの名無しさん
垢版 |
2020/10/23(金) 12:33:45.18ID:vvEFmscd
> すでにある[0, 1, 2, 3, 4]を
>
> '[0, 1, 2, 3, 4]' in S_list
> とかを試しても、Falseとなってしまいます。

先にこれに答えてあげたら?
0075デフォルトの名無しさん
垢版 |
2020/10/23(金) 12:42:54.50ID:abzAGR5J
>>71
改行コードが含まれてるからだよ
デバッグすればS_list[0]に何が入ってるか確認できるでしょ
0076デフォルトの名無しさん
垢版 |
2020/10/23(金) 13:28:22.51ID:nXkr9gOB
コメントとありがとうございます。

確かにおっしゃるとおり[0,1,2,3,4]をある組み合わせの数値リストとして
利用しています。例は5個の組み合わせですが、実際は10個の数値リスト
を一つの組み合わせとしています。

そのため、一つの組み合わせを調べるのにもそれなりに時間がかかるため、
すでに調べた組み合わせのリスト化し(それがs_listです。)、新しい
組み合わせがそのリストの中にあれば、再調査する必要がないので
「リストの中を検索して同じ組み合わせがあるか」を調べたいと考えたわけ
です。

そのため、目的は文字列として一致していれば良いので、(type(S_list[0])
がstrでも問題はないかと思っています。

python自体が今回はじめてなので、的外れでしたらすみません。
0077デフォルトの名無しさん
垢版 |
2020/10/23(金) 13:45:29.78ID:0ETx0fm7
回答者は型としてのリストと勘違いしてるようだけど、質問でいうリストって単なる文字列のことだよね。
文字列比較がうまくいかないって聞いてるんだと思うけど。
0078デフォルトの名無しさん
垢版 |
2020/10/23(金) 13:52:27.99ID:1Lfwgj44
Ruby なら配列同士を、<=> で比較するだけ

p [ 1, 2, 3 ] <=> [ 1, 2, 3 ] #=> 0

自身と other の各要素をそれぞれ順に、<=> で比較していき、
結果が 0 でなかった場合に、その値を返します

各要素が等しく、配列の長さも等しい場合には 0 を返します
0079デフォルトの名無しさん
垢版 |
2020/10/23(金) 14:16:49.16ID:I6W4x6m7
print(True) if '' else raise Exception('err')

参考演算子の中でraiseって使えないのですか?
0080デフォルトの名無しさん
垢版 |
2020/10/23(金) 14:23:32.89ID:nXkr9gOB
71です。

いろいろお騒がせしましたが解決しましたのでご報告いたします。
原因は75さんのおっしゃるとおり改行コードでした。

いろいろ試しているうちに、
S_list[0] in S_list
ならTrueを返すことに気がつきました。
そこで
[0,1,2,3,4] +'\n' in S_listとやったら
無事、Trueが帰ってきてくれました。

これを解決するのに4時間ほど要しましたが(汗)
苦しいけれどプログラミングは面白いですね。

まだまだ勉強が足りません。

みなさん、ご協力ありがとうございました。
008178
垢版 |
2020/10/23(金) 14:28:49.18ID:1Lfwgj44
Ruby で作った

require "json"

json = <<'JSON'
[0, 1, 2, 3, 4]
[0, 1, 2, 4, 6]
[1, 2, 3, 4, 6]
JSON

json.each_line.with_index( 1 ) do | line, idx | # 各行・添字
ary = JSON.parse( line )

if ( ary <=> [ 0, 1, 2, 4, 6 ] ) == 0 # 同一なら
puts "#{ idx }行目と一致しました!"
break
end
end

出力
2行目と一致しました!
008279
垢版 |
2020/10/23(金) 15:04:56.16ID:I6W4x6m7
関数にして実行することにしました
def _inter(msg):
_raise Exception(msg)
print(True) if '' else _inter('err')
0083デフォルトの名無しさん
垢版 |
2020/10/23(金) 18:20:11.52ID:VhlDKsUn
>>79
三項式は”<式> if <条件式> else <式>”の形
式のところに文を書くことはできない
raiseは文
0084デフォルトの名無しさん
垢版 |
2020/10/23(金) 22:00:16.63ID:L1dflzY5
以下のGitHubのコードで
https://github.com/jstasiak/python-zeroconf/blob/master/examples/browser.py

「def on_service_state_change(....) -> None:」

という箇所があるのですが、 「-> None」というのはどういう意味・どういう処理ですか?
初めて見たのですが、検索に引っかかりにくそうな文字列なので教えてください。
戻り値がないことを明示するような何かでしょうか?
0085デフォルトの名無しさん
垢版 |
2020/10/23(金) 22:26:52.76ID:0nvuAgk9
ググれば普通に出てくるけど
返り値がないことを明示するもの
実行時の影響はない、人間が読みやすくするため
0088デフォルトの名無しさん
垢版 |
2020/10/24(土) 02:17:03.53ID:JC525kC6
モジュール等の関数の引数で、単体の文字列でも、文字列のリスト型でも渡せるようなものがありますが、あれは関数内でリストかどうか判別して処理してるんでしょうか。

たとえば↓こんな処理があるとして
for str in str_list:
___ print(str)

str_list = ['abc', 'def']
str_list = 'abc'
のどちらでも、'abc'はひとかたまりに'abc'と扱うようなシンプルな書き方はありますか?

if type(str_list) != list:
___ str_list = [str_list]
のように1個だけのリストに置き換えてあげないとダメですかね
0089デフォルトの名無しさん
垢版 |
2020/10/24(土) 07:04:59.96ID:RnpA+Mw5
>>88
エスパーしてみると、
どっちがこようが、中身を1つずつfor文ブン回して処理してて
その中でさらにlen()を使ったりして中身の中身が1文字になるまでfor文ブン回してるなら
リストがこようがstrがこようが問題ない
0090デフォルトの名無しさん
垢版 |
2020/10/24(土) 10:26:22.07ID:lgAxN1Yc
>>71
def func(*args):
if len(args) == 1 and isinstance(args[0], (list, tuple)):
return func(*args[0])

for s in args:
print(s)

書いては見たものの、普通に分岐して処理を分けたほうが効率も可読性も上がると思う
0092デフォルトの名無しさん
垢版 |
2020/10/24(土) 11:23:27.37ID:878uww5f
>>88
一般的にはリストかどうかを判定するんじゃなく
渡されたiterableがstrかどうかを判定して分岐させる
0093デフォルトの名無しさん
垢版 |
2020/10/24(土) 12:43:38.66ID:+LCko2A7
>>88
>モジュール等の関数の引数で、単体の文字列でも、文字列のリスト型でも渡せるようなものがありますが
ものがあるならそれを見ろよ
見てもわからないならそのリンクを貼れよ

何で馬鹿正直にここでコードを書いてるんだ
0094デフォルトの名無しさん
垢版 |
2020/10/24(土) 17:18:10.10ID:lO0DTzsg
main.py から hoge.py をimportするとき、 hoge.py が main.py と同じディレクトリにあることを
明示的に示したい場合はimportをどのように書くのが正しいんでしょうか。

import hoge で一応実行はできますが、vscode(Pylance)から認識できなくて警告が出ます。
from . import hoge とするとvscodeで認識されるようになるのですがpythonの実行がエラーになります。
もしかしたらvscodeがおかしいのかもしれませんが。
0095デフォルトの名無しさん
垢版 |
2020/10/24(土) 17:20:55.44ID:+GevKgJx
from . import hoge
でももちろん OK

sys.path.append('.') の反対で sys.path の先頭に '.' が来るようにすれば良いんじゃね
0096デフォルトの名無しさん
垢版 |
2020/10/24(土) 17:21:54.71ID:+GevKgJx
あと
main.py のディレクトリに
__init__.py
を造る
0097デフォルトの名無しさん
垢版 |
2020/10/24(土) 21:32:18.14ID:d1F6LvKA
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
0098デフォルトの名無しさん
垢版 |
2020/10/24(土) 22:17:47.25ID:lO0DTzsg
ありがとうございます。
どうも from . の相対指定は __main__ からは使えないようですね。
なんでvscodeは import hoge だと見つけてくれないんだろう。
0099デフォルトの名無しさん
垢版 |
2020/10/25(日) 10:06:10.70ID:yMGC2owQ
配列を回転させるにはどういうロジックを使うんでしょうか?
テトリミノです
これを
var mino = [
[1,0,0,0],
[1,1,1,0],
[0,0,0,0]
]

var mino = [
[0,0,0,1],
[0,1,1,1],
[0,0,0,0]
]

こうしたいのですが、1つの目の配列のmino[1][2]番目にある配列を原点としたいので、並行移動も必要かとは思います
あるいは配列のフィールドを大きくする必要がありますね

var mino = [
[1,0,0,0,0,0],
[1,1,1,0,0,0],
[0,0,0,0,0,0]
]
var mino = [
[0,0,0,0,0,1],
[0,0,0,1,1,1],
[0,0,0,0,0,0]
]
0100デフォルトの名無しさん
垢版 |
2020/10/25(日) 10:14:15.45ID:ems4w7oQ
>>99
テトリミノごときでは、予め
リスト_ブロックの種類その1=[向きその1の座標リスト、同2,3,4]
みたいに
全種類のブロック、全向きの描画指示リストを作ってしまっておき、

右回転ボタンを押したら リスト_ブロックの種類その1[ここの中を1足せ!]
左回転なら リスト_ブロックの種類その1[ここの中を1引く!]
で、ブロックアイコン部分を処理し、

上下左右ボタン押下時は描画中央点の座標を移動させる
とやるのが定番らしいぞ。
0101デフォルトの名無しさん
垢版 |
2020/10/25(日) 10:24:53.87ID:yMGC2owQ
>>100
上のミノの場合は上下左右全4パターンしかないでしょうか?
回転描画と移動は分けるわけですね
テトリスでもそのロジックでやるんでしょうか?
0102デフォルトの名無しさん
垢版 |
2020/10/25(日) 10:35:02.78ID:ems4w7oQ
>>101
Yes普通は
そのようだ
そのようだ

テトリスで重要かつ難しいのは、
「考えれば詰まない」程度にブロックの出現比率を考えること
0103デフォルトの名無しさん
垢版 |
2020/10/25(日) 10:58:03.08ID:yMGC2owQ
ありがとう
もう少し調べてから来る
とりあえずクラスにそれぞれの方向の配列を作ってみる

でも、回転させる方法もあるにはあるんだよね
0104デフォルトの名無しさん
垢版 |
2020/10/25(日) 11:07:46.70ID:FKBCMSG5
>>102
テトリスではブロックの出現率はすべて均等
もっと言えば7種類あるテトリミノは7回のツモで全て出るようになっている
これは最近のゲーム全てで採用している共通仕様(ガイドライン)
0107デフォルトの名無しさん
垢版 |
2020/10/25(日) 11:14:19.93ID:FKBCMSG5
あとテトリスの回転規則はすべて規定されてるから
軸ブロックの位置のデータと向き(4パターン)だけ持っといて
普通に回転できるならパターンだけ入れ替える
他のブロックや壁と干渉するなら合法な回転になるように補正する
でいい
0108デフォルトの名無しさん
垢版 |
2020/10/25(日) 12:31:00.34ID:yMGC2owQ
パターンを作るのと、普通に回転させる手法で、後者の手法はなんというかわかりますか?
0109デフォルトの名無しさん
垢版 |
2020/10/25(日) 12:46:40.25ID:zd7LSfWt
名前が欲しいなら「単純回転法」とか自分で勝手に好きな名前を付けていい
何をどう呼ぼうが自分の自由
0110デフォルトの名無しさん
垢版 |
2020/10/25(日) 12:47:39.12ID:zd7LSfWt
なので美人投票になり、多くの人が名付けそうな名前を当てればいい
0111デフォルトの名無しさん
垢版 |
2020/10/25(日) 12:47:47.86ID:FzqccguI
>>99
それは回転じゃない
反転だ
0113デフォルトの名無しさん
垢版 |
2020/10/25(日) 13:06:09.27ID:FzqccguI
z軸があるならな
0114デフォルトの名無しさん
垢版 |
2020/10/25(日) 13:08:35.94ID:FzqccguI
自己レスだけど
ああ答え出たわ

>>112
thx
0115デフォルトの名無しさん
垢版 |
2020/10/25(日) 14:24:35.81ID:pXppxvnv
>>98
Ruby でも、require, require_relative は異なる

requireは、$LOAD_PATH に指定されているディレクトリから、
相対パスで該当のファイルを探しに行く。
$LOAD_PATHには、カレントディレクトリは入っていない

一方、require_relativeは、そのファイルがあるディレクトリからの相対パスで探す
0116デフォルトの名無しさん
垢版 |
2020/10/25(日) 14:45:30.88ID:owEUdSKz
すみません
ネズミの血管が高血圧でどれだけ縮んだかを調べてほしいなんて言われたのだけど、
画像には縮んだ跡がはっきりわかるほど色の違いがでてるので、
色の閾値範囲内で面積を求めるようなサンプルが解説してあるようなホームページってどこかにあります?
0117デフォルトの名無しさん
垢版 |
2020/10/25(日) 14:47:54.52ID:FzqccguI
医療器具の開発が5chで質問とか世も末だな
0118デフォルトの名無しさん
垢版 |
2020/10/25(日) 14:56:11.81ID:/elpRfls
血管が高血圧で縮んだのではなく、
血管が縮んだから高血圧になったのでは?
スタートから間違えてる気がする。
0121デフォルトの名無しさん
垢版 |
2020/10/25(日) 17:45:47.26ID:oSLDmiXU
なんで一般的かどうかを気にするんだ?
0122デフォルトの名無しさん
垢版 |
2020/10/25(日) 17:54:01.25ID:33H36Dsf
746 名前:デフォルトの名無しさん[sage] 投稿日:2019年12月18日(水) 14:05:40.87 ID:j0+9FDxC
ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ?
0126デフォルトの名無しさん
垢版 |
2020/10/25(日) 19:14:06.08
https://note.com/thinknewproducts/n/n6db63a3dcc1e
>▶Dockerを用いた開発手順
>Bコンテナ内で開発を行う
ってあるけど
dockerって基本GUIは推奨じゃないよね
コンテナ端末上のviとかで開発すんの?
(さすがに、ホストにインストールした開発環境でコードをコピペして云々じゃないよね)
デバッグのときだけエディタでコンテナ使うならわかるけど
0127デフォルトの名無しさん
垢版 |
2020/10/25(日) 19:33:58.76ID:xycg9nf+
>>126
vscodeとか使ったらssh経由でリモートのファイルを触れるので(感触はローカルファイルと一緒)、編集はそれでして
ビルド、実行、デバッガはコンテナ上で行う
0129デフォルトの名無しさん
垢版 |
2020/10/25(日) 19:37:14.60ID:DefYxvki
なんでmac標準で入ってるpythonは2なんだ?
0130デフォルトの名無しさん
垢版 |
2020/10/25(日) 19:40:24.62ID:owEUdSKz
>>119
ありがとうございます。参考にします。

>>117
ただの病院の事務です
医者に宿題を出されて、画像から面積計算なんてやったことないよと頭を抱えてるところなだけです
0132デフォルトの名無しさん
垢版 |
2020/10/25(日) 21:15:42.93ID:Y8lAuHf9
numpyのndarrayに時系列でのデータと計測時のタイムスタンプが保存してあるのですが
これをcsvに書き出すにはどうすればいいですか?
writecolsみたいなのがあればいいんですが…
0134デフォルトの名無しさん
垢版 |
2020/10/25(日) 22:30:07.80ID:pXppxvnv
Ruby では、

require 'csv'

CSV.open( 'out.csv', 'w' ) do |csv|
csv << [ 1, "a,b" ]
csv << [ 2, "あ\nい" ]
end

ファイル書き込みの結果

1,"a,b"
2,"あ
い"
0137134
垢版 |
2020/10/25(日) 23:44:34.30ID:pXppxvnv
require 'csv'
は、標準モジュール

Ruby は、便利な標準モジュール・電池付き言語。
Batteries included
0140デフォルトの名無しさん
垢版 |
2020/10/26(月) 00:03:53.08ID:eROnJLfC
CSV = 'important string'
require 'csv'

こうするとエラーで止まるがエラーメッセージがTypeError (CSS is not a class)
相変わらずエラーメッセージ糞な言語だな。
CSV is already usedとか出せんのか。
0142デフォルトの名無しさん
垢版 |
2020/10/26(月) 10:30:00.58ID:cPtCGHMp
>>140
>CSV is already usedとか出せんのか。

すでに使われてるというのがエラーの原因じゃないからね
間違ったエラーメッセージを出せっていうのは無理筋
0143デフォルトの名無しさん
垢版 |
2020/10/26(月) 12:25:53.52ID:3haw0p11
「正しいエラーメッセージ」に従ってcsvモジュールの中調べに潜っちゃうんですよね分かります
0144デフォルトの名無しさん
垢版 |
2020/10/26(月) 14:22:47.45ID:cPtCGHMp
>>143
require ‘csv’してるのに、それによってトップレベルに追加されるモジュール名/クラス名を把握してないなら調べるのは当然だよね
0148デフォルトの名無しさん
垢版 |
2020/10/26(月) 21:27:54.90ID:qgIOQEH4
import axios from 'axios';

JavaScript でも、ファイルパス・ファイル名も書いていないのに、
どこかにある、axios が読み込まれるw

これは標準モジュールじゃない。
npm/yarn で、自分でインストールしたもの
0149デフォルトの名無しさん
垢版 |
2020/10/26(月) 23:15:43.99ID:eROnJLfC
>>148
pythonのimportもjsのimportもasがあるからアサインする変数名自由に決められるよね。nodeのrequireも=でできる。
で?rubyは?
>>140 の CSV = 'important string' を救う方法はあるの?ないの?
誤魔化さずに答えろよ!逃げんなよ?
0150デフォルトの名無しさん
垢版 |
2020/10/26(月) 23:21:55.77ID:OwfKZM8a
>>148
どこかにあるって言うか、解決の順番はあるんだが。
rubyみたいにenvとかで逃げる必要すらない。
0152デフォルトの名無しさん
垢版 |
2020/10/27(火) 00:20:22.39ID:VaMRm4CO
>>151
誤魔化すな。逃げるな。
あるならなぜ示せないんだ?
まさか無いの?www
そんなわけないんだよな?
誤魔化すな!逃げるな!ルビチョン!
0157デフォルトの名無しさん
垢版 |
2020/10/27(火) 10:11:39.22ID:telUcSp6
>>155
nicovideo。jp
watch/sm8517855
0159デフォルトの名無しさん
垢版 |
2020/10/27(火) 19:02:39.46ID:dsTe3rvX
おおもとのクラス内の関数内でrandomモジュールを使って指定した変数を、継承したGUIを作るclassに継承するにはどうすればいいですか?
0160デフォルトの名無しさん
垢版 |
2020/10/27(火) 20:05:38.34ID:6PTspJnf
https://ideone.com/CtT6qc
クラスメソッドにして、継承先のクラス実行する
もしくは、クラス変数として継承元クラス定義時に定義してしまう
クラスの外(__init__.pyとか実行ファイル)で定義してそれを使うようにする
0161デフォルトの名無しさん
垢版 |
2020/10/27(火) 20:10:00.62ID:6PTspJnf
関数内の変数は関数を実行した時に定義される
0162デフォルトの名無しさん
垢版 |
2020/10/28(水) 11:28:22.30ID:tejl9TT4
習慣化するには、結果よりもルーティーンにこだわったほうがいいですか?
何分出来たかではなく、既定の時間にとりかかれたかどうかす
0163デフォルトの名無しさん
垢版 |
2020/10/28(水) 11:38:45.30ID:d52OC3St
>>162
嫌々やってるならどうやったって定着はしないだろう。
その勉強に価値がある、面白い、自分にとって必要だ、何でもいいから動機付けがあるなら一日の時間にとらわれず続けられるはず。
0164デフォルトの名無しさん
垢版 |
2020/10/28(水) 11:47:01.94ID:tejl9TT4
嫌嫌だと定着しないというのも良くわからないですが
筋トレは嫌ですけど、定着してますよ

目的は達成したいけど、プログラミング自体は英数字の羅列だし、拒絶反応が出るのですよ
0165デフォルトの名無しさん
垢版 |
2020/10/28(水) 11:59:26.49ID:d52OC3St
>>164
筋トレは筋肉に負荷をかければそれで目的が達成されるから、嫌々でもやれば効果は出るだろう。
プログラミングはただ教材を読みました、何かをなぞって書きましただけでは身に付かない。
ぼくは勉強しました!がんばってます!っていう満足感と実績が欲しいだけなら、嫌々でも目的は達成されるだろうけど。
0168デフォルトの名無しさん
垢版 |
2020/10/28(水) 15:19:15.80ID:Y8qQZoY4
知らんがな
0170デフォルトの名無しさん
垢版 |
2020/10/28(水) 16:10:09.82ID:Mf8tEr2f
脳味噌筋肉
0171160
垢版 |
2020/10/28(水) 22:29:14.06ID:WlV9Vtig
なんも反応ないと何か心許ないので、誰でもいいから意見ください
肯定でも否定でもなんでもいいです
0174デフォルトの名無しさん
垢版 |
2020/10/30(金) 09:18:46.55ID:5DZdR9u/
1から体系的に学び直したい(学び直させたい)んだけど、書籍としてはオライリーの「入門 python3」が良いんでしょうか?

他におすすめの書籍があったら教えていたはだけないでしょうか?

初〜中級くらいに向けた書籍がありがたいです。
0176デフォルトの名無しさん
垢版 |
2020/10/30(金) 10:35:53.97ID:FRK/o1cy
質問!
PyCharmなんだけど自分のクラスのインスタンスを返すクラスメソッドの返り値の型ヒントはどう書けばいい?

class MyClass:
@classmethod
def make_my_class(cls) -> MyClass:
return cls()

って書くとUnresolved reference ‘MyClass’となる
0177デフォルトの名無しさん
垢版 |
2020/10/30(金) 11:03:04.25ID:uffCAw9U
あてずっぽうの直感ではself
0178デフォルトの名無しさん
垢版 |
2020/10/30(金) 11:13:07.10ID:7MkyV1Cp
typing.ForwardRef('MyClass')
0179デフォルトの名無しさん
垢版 |
2020/10/30(金) 11:15:03.48ID:7MkyV1Cp
>>177
super(MyClass, self) ならどう?
0182デフォルトの名無しさん
垢版 |
2020/10/30(金) 12:59:50.08ID:CJZJZESp
そうなんだよな
公式のチュートリアルまじお勧め
分かりやすく間違いなく書いてある
なんで金を出してマンガがいっぱいで
間違いの多い本をみんな買いたがるのか不思議だ
0183デフォルトの名無しさん
垢版 |
2020/10/30(金) 13:37:34.98ID:6xHqOxHn
でもこういうチュートリアルにはDBとかクラウドとの連携についてはほとんど書いてないよね
文法を勉強したいなら良いけど実用的じゃない
0184デフォルトの名無しさん
垢版 |
2020/10/30(金) 13:38:27.61ID:6xHqOxHn
そもそもプログラミングの漫画本なんてほとんど無くね?
自己啓発の世界じゃねーんだぞ
0186デフォルトの名無しさん
垢版 |
2020/10/30(金) 14:19:54.66ID:7MkyV1Cp
>>183
それは言語仕様じゃなくてライブラリの使い方だから載ってないというか
それぞれ別の利用するDBライブラリの資料観ろとしか言いようが無い
0187デフォルトの名無しさん
垢版 |
2020/10/30(金) 15:17:38.57ID:CJZJZESp
>>184
マンガっていうか挿絵ね
あるいは無駄な茶番劇ね
それにかなりのお金を払っていることになる
0188デフォルトの名無しさん
垢版 |
2020/10/30(金) 16:06:11.01ID:t+8AqTUm
>>174
パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6/1

漏れが、新しい版を出せと、ヤイヤイ言ったから出た!

改訂2版 パーフェクトRuby、2017
Ruby の方は、2017年に出てるから
0190188
垢版 |
2020/10/30(金) 17:43:22.47ID:t+8AqTUm
普通、改訂版は5年後に出す

でも、パーフェクト Python は、なかなか出さないから、
漏れがグチグチと、文句を言い続けた
0193デフォルトの名無しさん
垢版 |
2020/10/30(金) 19:58:38.49ID:5DZdR9u/
追加でクレクレしてすみませんが、機械学習&ディープラーニング系の本と、画像認識系の本のおすすめも良かったらお願いします。
0194デフォルトの名無しさん
垢版 |
2020/10/30(金) 21:48:17.31ID:UE18jLTS
もしかして今から始めるなら3.9は避けた方が良いの?
取り敢えず新しいの入れろ的なブログばっかだったんだけど
拡張?みたいのがまだ追いついてないから避けろみたいなのも見て混乱してる
0200デフォルトの名無しさん
垢版 |
2020/10/31(土) 00:22:09.30ID:ac0myftI
"xxx=yyy=ccc=ddd"
という感じで、=で繋がれた4つの文字列があった場合
最後の4つ目のdddだけを、aaaに書き換えるにはどうすればいいですか?
dddの部分は、dddで固定されているわけではなく、tttなど変化する場合があります。
0201デフォルトの名無しさん
垢版 |
2020/10/31(土) 00:26:36.33ID:7kzNw0LI
>>200
a= "xxx=yyy=ccc=ddd"
a=a[:-3]+”aaa”
0205デフォルトの名無しさん
垢版 |
2020/10/31(土) 06:40:49.63ID:0qFsgGrp
ある言語だと
a[-3,3]="aaa"
0206デフォルトの名無しさん
垢版 |
2020/10/31(土) 10:57:01.95ID:fxcwqRC2
右から探し始めて最初に見つかった=で以降置換出来る正規表現無かったっけ
0207デフォルトの名無しさん
垢版 |
2020/10/31(土) 11:22:42.38ID:ZFPaD7BU
本家のPythonの場合プロンプト画面を非表示にするには
拡張子py→pywにするでおkなんだが
Anaconda付属のPythonでこれやるとプロンプト表示される
対策てある??
0209デフォルトの名無しさん
垢版 |
2020/10/31(土) 12:57:18.69ID:YFUksD3m
>>206
=.*$
0212デフォルトの名無しさん
垢版 |
2020/10/31(土) 13:36:05.08ID:fxcwqRC2
=[^=]*?$

いけました
ありがとう
0213デフォルトの名無しさん
垢版 |
2020/10/31(土) 14:00:16.47ID:0qFsgGrp
>>200 >>209
import re
a= "xxx=yyy=ccc=ddd"
b=re.sub("...$", "aaa", a)
print(b)

c=re.sub("=.*$", "aaa", a)
print(c)

実行結果
xxx=yyy=ccc=aaa
xxxaaa
0214デフォルトの名無しさん
垢版 |
2020/10/31(土) 14:05:33.56ID:9ujp1MGy
開発環境って、VScodeが最適?
Eclipseとか、pycharmとどれば良いですか?

おすすめを教えて欲しいな。
0216デフォルトの名無しさん
垢版 |
2020/10/31(土) 14:17:00.52ID:fxcwqRC2
split は bowling の split や野球の split fingered fast ball
strip は君らの好きなあれ
0217デフォルトの名無しさん
垢版 |
2020/10/31(土) 20:11:22.92ID:ZTltDpC1
競技プログラミングで pypy は幅を利かせているように思えますが、
競技プログラミング以外での pypy はどうですか?
0218デフォルトの名無しさん
垢版 |
2020/10/31(土) 20:19:55.02ID:KY/T1AyA
>>211
oops
0220デフォルトの名無しさん
垢版 |
2020/10/31(土) 22:58:03.68ID:Oo7C4HEc
>>217
CPythonでしか動かないパッケージを使ってなくてパフォーマンスに困ってるならいいんじゃない
でも、大抵CPython必須なパッケージを1つ以上使っているケースがほとんどだと思うけど。
競技プログラミングはアルゴリズム実装に特化してる競技だから、実用とはまた違うよね。
0222デフォルトの名無しさん
垢版 |
2020/10/31(土) 23:06:35.78ID:rTRLWM7Q
>>214
総合面で考えるとSCodeが楽
大まかに書くと
・Eclipse
昔からあるツールだけど、言い換えると古い
UIやフォーマット機能も考慮すると、正直選択肢には上がらない

・PyCharm
 IDE使って開発するなら実質これ一択
 Pythonだけなら無償版で十分だけど、機械学習やWeb(Django)とかを触るなら有料版が無いと辛い

・VSCode
 必要な拡張機能をぶち込めばIDEと遜色なく使える
 元がテキストエディタなので比較的軽いのも魅力
 というか無料でやっていくなら大体これに落ち着く
0223デフォルトの名無しさん
垢版 |
2020/11/01(日) 00:00:28.25ID:CuITjVo7
VS Code用Python拡張機能に「debugpy 1.0」が搭載、2020年10月リリースより
https://codezine.jp/article/detail/13135
 米Microsoftは、Visual Studio Code用Python拡張機能2020年10月リリースの提供を、10月28日(現地時間)に開始した。MarketplaceまたはVisual Studio Codeの拡張機能ギャラリーからインストールできる。
0224デフォルトの名無しさん
垢版 |
2020/11/01(日) 01:22:57.63ID:uXcrli8I
>>222
ありがとう。
結局、無料ならばvscode ってことになるのね。

とりあえず、つかってみるね。

助かりました
0226217
垢版 |
2020/11/01(日) 09:16:48.10ID:qI7pQI5j
>>219,220
ありがとうございます
CPythonでいきます
0227デフォルトの名無しさん
垢版 |
2020/11/01(日) 14:46:20.08ID:SB/4dHgp
pythonはよく遅いって言われるけどそんなに体感出来るほどのものなの?
プログラミング自体pythonが初めてだからどういう使い方してる時に遅いって感じるんだろう
0228デフォルトの名無しさん
垢版 |
2020/11/01(日) 14:51:30.41ID:BdB3gM+x
for は遅い
numpy は速い
0231デフォルトの名無しさん
垢版 |
2020/11/01(日) 15:23:30.26ID:Nw3wtxBc
for i in range(1000000000):
  k= 1+1

出力しないと最適化されてなくなりそう。
出力すると print の速度に依存するし。
0232デフォルトの名無しさん
垢版 |
2020/11/01(日) 15:59:45.23ID:AjRcesHd
長さ10億の空配列(リスト)準備しておいて順番に入れてくとか
100萬行のファイル出力で競争するとか
工夫必要かー
0234デフォルトの名無しさん
垢版 |
2020/11/01(日) 18:17:59.71ID:6FKS57jf
プロのpythonistともなると競技プログラム全問制覇は当然のこと、
それでは飽き足らずpythonそのもののソースコードを読んでその高速化に努めるようになる

そうこうしてると動的計画法の難問をちょっとした片手間と戯れでpythonとc++の両方で解くこともしばしばだ
するとC言語系に比べてpythonは遅いということを実感する
0235デフォルトの名無しさん
垢版 |
2020/11/01(日) 18:26:01.81ID:KpbUCpE2
そこまでしなきゃ実感できんのか…
0236デフォルトの名無しさん
垢版 |
2020/11/01(日) 20:10:44.85ID:a4q/79iQ
>>235
Pythonで適当に書いた計算コードの完了見積もりが10日とかになると、
流石にまずいなと思って1日ぐらいかけてC++で書いてみるんよ
それで10倍とか100倍速かったりすることがあるんよ
(速くないこともある)
そのときにPythonは遅いと実感する

だけど、実装までの時間は速いし、Pythonで試行錯誤してからC++で清書する方が初めからC++で試行錯誤するより早くできる場合も多いから、
遅いと感じたら最適化すればよい

「早すぎる最適化は諸悪の根源」ってやつよ。
コンセプトが正しいことを確認してから最適化するのが99%のケースにおいて良い進め方だと思う。
0237デフォルトの名無しさん
垢版 |
2020/11/01(日) 20:45:34.09ID:KpbUCpE2
>>236
それにしても書き直すのはオーバーヘッドデカすぎ内
Cython,numba,Numpyを適切に使うんじゃだめなの
0238デフォルトの名無しさん
垢版 |
2020/11/01(日) 20:47:37.69ID:a4q/79iQ
>>237
それでもいいよ。書き直すっていっても全部書き直す訳じゃないんだよ。
pybind11とかその辺のもの使って部分的に書き直す
0239デフォルトの名無しさん
垢版 |
2020/11/01(日) 20:50:52.83ID:a4q/79iQ
>>237
言葉が足りなかったけど、CPythonはそのぐらいC/C++との親和性が高くて、
遅いところだけ書き直すオーバーヘッドがそれなりに低いということね。
やってみると結構簡単だよ。
この点が"CPython"ならびにPythonが大流行してる理由の一つだと思うよ。相互運用性が高い。
0242デフォルトの名無しさん
垢版 |
2020/11/01(日) 21:16:02.65ID:6FKS57jf
>>241
Pythonで文字列が数字か英字か英数字か判定・確認 | note.nkmk.me
ttps://note.nkmk.me/python-str-num-determine/
0246デフォルトの名無しさん
垢版 |
2020/11/03(火) 16:54:41.49ID:iMW/lpvl
今は正規表現を下記のように一度mにセットしてif文と2行で書いています。

for line in f:
m = re.search(r"^ *[#\n]", line)
if m:
continue
m = re.search(r"^ *(\S+) +(\S+)", line)
if m:
print("{} {}".format(m.group(1), m.group(1)))
continue
print("エラー")

これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが
何かスマートな書き方はありますか?
イメージは下記です。

if m = re.search(r"^ *[#\n]", line):
pass
if m = re.search(r"^ *(\S+) +(\S+)", line):
print("{} {}".format(m.group(1), m.group(1)))
else:
print("エラー")
0248デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:14:21.34ID:iMW/lpvl
インデントが見づらかったので再投稿。

今は正規表現を下記のように一度mにセットしてif文と2行で書いています。

for line in f:
 m = re.search(r"^ *[#\n]", line)
 if m:
  # コメント行。何もしない
  continue
 m = re.search(r"^ *(\S+) +(\S+)", line)
 if m:
  print("{} {}".format(m.group(1), m.group(1)))
  continue
 print("エラー")

これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが
何かスマートな書き方はありますか?
イメージは下記です。

if m = re.search(r"^ *[#\n]", line):
 # コメント行。何もしない
 pass
elif m = re.search(r"^ *(\S+) +(\S+)", line):
 print("{} {}".format(m.group(1), m.group(1)))
else:
 print("エラー")
0249デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:27:55.36ID:70+q1zbl
日本,2,セネガル,2
日本,1,ポーランド,0
日本,2,コロンビア,1

例えばこのようなデータをテキストでcsv形式のファイルに保存していたとして、
これを行ごとに読み込んでいったときに、”日本”がdata[0]として扱われない原因は
どんなことが考えられますか?
0250デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:38:08.47ID:PKcQzeRx
>>248
3.8以上ならassignment expressionでif文やwhile文での代入ができる
それよりも先に同じ処理の繰り返しをループにまとめたほうがいいんじゃないかな
0254デフォルトの名無しさん
垢版 |
2020/11/03(火) 17:58:14.34ID:70+q1zbl
ここで関数を
game(fname,"日本","セネガル")としても「試合なし」が返ってきます。
0256デフォルトの名無しさん
垢版 |
2020/11/03(火) 19:14:06.72ID:70+q1zbl
>>255
あ、split(',')にする必要があるってことですね。ありがとうございました。
0257デフォルトの名無しさん
垢版 |
2020/11/03(火) 19:49:23.79ID:j8uSLtHh
>>247
チェリー本ってそれほどいい本だとは思わないけど
第3章の「テストの自動化」が珍しいだけで
0258デフォルトの名無しさん
垢版 |
2020/11/04(水) 00:18:25.38ID:eR5jspY1
MacBookでPythonの勉強したいんだけど
アナコンダは非推奨なんですか
ちなプログラミングのプもわかりません
0260デフォルトの名無しさん
垢版 |
2020/11/04(水) 00:25:03.99ID:eR5jspY1
>>259
ありがとうございます試してみます
0262デフォルトの名無しさん
垢版 |
2020/11/04(水) 12:37:41.53ID:ef0NVCqR
>>261
何を作りたいの?
0263デフォルトの名無しさん
垢版 |
2020/11/04(水) 14:06:36.26ID:r2X6H2u5
Python代替実装「Pyston v2」がリリース、Python 3.8よりも20%高速化を実現
 Pyston開発チームは、Pythonと互換性があり、より高速な「Pyston v2」を、10月28日(現地時間)にリリースした。

 「Pyston v2」は、「Python 3.8」と比較して20%高速であり、chaos.pyやnbody.pyといったベンチマークを用いたテストでは、標準のPythonと比較して2倍の処理速度を実現している。
http://codezine.jp/article/detail/13152
0264デフォルトの名無しさん
垢版 |
2020/11/04(水) 16:40:32.58
pathlibでstr(Path('/dir/to/file/'))ってやると
/dir/to/file
ってなりますが
ラストのスラッシュはつけないっていうのはそういう決まりなんですかね?
0265デフォルトの名無しさん
垢版 |
2020/11/04(水) 17:56:35.81ID:pCSm/LDs
XLwingsで文字色を変える事は出来ないのでしょうか。
Openpyxlで保存するとシェイプが消えるので、、、

もしくはopenpyxlはxlwingsのようにエクセルを開いたままでも変更がはいりますでしょうか。
それならば保存だけエクセル上でやればよいかなーと
0267デフォルトの名無しさん
垢版 |
2020/11/04(水) 20:04:09.19ID:ef0NVCqR
公式のインストーラとvenvだけで十分事足りる
0269デフォルトの名無しさん
垢版 |
2020/11/04(水) 20:20:09.16ID:a9nrTc1S
>>268
公式とは関係ない勝手なサイトなんだな。
anaconda勧めるとか、とりあえずインストールすらさせないとか、なんか恣意的過ぎてちょっと違う気がするわ。
colabでできる事なんか限られてるだろうに。
0272デフォルトの名無しさん
垢版 |
2020/11/04(水) 21:58:36.73ID:k0COKPgk
まあ公式にこだわるのはわからんでもないが正直公式のvenvなんかよりanacondaのが動作が安定してる。
そもそもそこまでこだわるならdocker使った方がよっぽど安全だわ。
0273デフォルトの名無しさん
垢版 |
2020/11/04(水) 23:44:09.28ID:oOk5Pqvr
>>261
パーフェクト Python [改訂2版]、2020/6/1

パーフェクトシリーズは、Ruby の新版が出たのに、Python のが出ないから、
漏れが文句を言い続けたら、新版が出た!

改訂2版 パーフェクトRuby、2017
パーフェクト Ruby on Rails 【増補改訂版】、2020/7/25
0274デフォルトの名無しさん
垢版 |
2020/11/05(木) 00:32:39.97ID:1YRmT/TT
偉いのは著者と編集者だろ
何を誇ってんだ
0275デフォルトの名無しさん
垢版 |
2020/11/05(木) 02:31:26.70ID:tM7hzUED
>>262
とくにないです
これからきめます
0277デフォルトの名無しさん
垢版 |
2020/11/05(木) 12:47:57.84ID:nZjhZ210
python.jp は非推奨
0278デフォルトの名無しさん
垢版 |
2020/11/05(木) 18:34:22.22
データベースで管理するほどのもんでもないような辞書データって
何の形式で管理すればいいの?
今やってるのはjson全部開いて挿入して全部上書きってやってるけど
なんか無駄が多そうな気がしてモヤモヤする
0280デフォルトの名無しさん
垢版 |
2020/11/05(木) 19:36:08.36
>>279
一通りやってみたけどdumpとloadしかできないっぽい?

データ更新したいとき
全部読み込んで解析して変更して全部保存
みたいな
jsonで扱うときとそう変わりないような
こういうのは問答無用でデータベース管理しとけばいいのかな
0284デフォルトの名無しさん
垢版 |
2020/11/05(木) 23:23:30.89ID:4fCLIDu0
もしよろしければ教えて下さい。

リストの要素単独に1を与えようとして、a[i][j]=1のときに
a[i][j]=a[i][j]+1
とすると、
なぜかa[i][j]以外のa[i+1][j],a[i+2][j],a[i+3][j]・・・もすべて2となってしまします。
考え方間違ってますでしょうか?
0285デフォルトの名無しさん
垢版 |
2020/11/05(木) 23:39:04.11
>>282
もうこの際mysqlもsqliteも使い比べしてみるd
>>283
csvを操作するモジュールに、
範囲指定でいらない部分を削除したり、範囲部分だけ持ってきたりできるなら使ってみようかな
0286デフォルトの名無しさん
垢版 |
2020/11/06(金) 00:03:28.62ID:5acjwhy7
ブラウザなど、多くのアプリは、SQLite を内蔵してる。
ゲームエンジンでは、Lua, Squirrel

単純な構造なら、CSV。
複雑な構造なら、JSON, YAML, XML

そのプログラミング言語特有の形式を使うと、別の言語で処理できない
0287デフォルトの名無しさん
垢版 |
2020/11/06(金) 00:14:09.97ID:Wznfx/R9
>>284
>考え方間違ってますでしょうか?
間違ってないですよ
https://ideone.com/O14zpu
0290デフォルトの名無しさん
垢版 |
2020/11/06(金) 15:50:21.95ID:LTqO0fOq
>>278
pickel
yaml
json
msgpack
sqlite
0292デフォルトの名無しさん
垢版 |
2020/11/06(金) 20:27:32.32ID:1gMNE7IB
>>287,288,289
ありがとうございました。
まさに289さんのリンク先の間違った書き方例をしてしまっていて、
書き換えたら行けました。
大変助かりました、ご親切にありがとうございました。
0293デフォルトの名無しさん
垢版 |
2020/11/07(土) 00:42:40.82ID:zMpN0fYG
画像比較のライブラリみたいのってないの?
メソッドに送ると相似率が返ってくるみたいな
0295デフォルトの名無しさん
垢版 |
2020/11/07(土) 03:36:36.18ID:CdQvP3Xl
anaconda使ってるやつええんか
0297デフォルトの名無しさん
垢版 |
2020/11/07(土) 12:00:05.29ID:LW+62T9+
https://ideone.com/JaF7A2
配列を0の箇所に表示するにはどうしたらいいんでしょうか?0は壁でテトリス作成中です。
if文で条件指定していますが、うまくいきません。
こうなります。
0部分にだけ表示させる分岐を教えて下さい。

[1, 2, 3, 3, 0, 0, 0, 1]
[1, 2, 3, 3, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
0298デフォルトの名無しさん
垢版 |
2020/11/07(土) 13:38:20.15ID:CPm1qeuk
スレチ
0300デフォルトの名無しさん
垢版 |
2020/11/07(土) 15:55:50.21ID:CPm1qeuk
300get
0304デフォルトの名無しさん
垢版 |
2020/11/07(土) 21:58:11.38ID:ZMEyYeEe
Raspberry pi 4B でPytorchのtorchvisionパッケージ(0.8.0)をインストールしたいのですが、pip3でインストールしようとすると、0.2.2までしか無いってエラーメッセージが出て困ってます。みなさん自分でビルドしてるのでしょうか?もし良い方法があればよろしくお願いします。
0305デフォルトの名無しさん
垢版 |
2020/11/08(日) 00:22:47.76ID:r3laU95t
漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 をコンパイルして入れた

なぜかと言うと、パッケージマネージャーに入っているのは、
古いバージョンが多いので使えない

build-essential とか使って、コンパイルする

build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています

パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential

簡単なのは、DockerHub で、それ用のDockerを探す
0306デフォルトの名無しさん
垢版 |
2020/11/08(日) 00:31:34.39ID:cR4RFWp/
winのpyaudioでwasapi排他モードを使いたいんですが
デバイスには他のアプリケーションからアクセスできるので
wasapi共有モードっぽいです
排他モードに切り替えるにはどうすれば良いですかね
0307デフォルトの名無しさん
垢版 |
2020/11/09(月) 00:13:57.75ID:AHppX36c
ベトナム戦争で韓国軍に家族を虐殺されたベトナム人女性が
韓国政府に損害賠償を求める裁判を初めて起こした。

韓国では慰安婦問題などで日本批判が長年展開されているが、
「戦時の暴力」をめぐり今度は韓国政府が法的責任を問われる側に立たされた。

https://special.sankei.com/a/international/article/20201022/0003.html
0308デフォルトの名無しさん
垢版 |
2020/11/10(火) 12:52:08.49ID:JaMU8miU
tkinterで教えて下さい
┏━━━━━━━━━━━━━┓
┃          □□ ┃ ━ window
┃          □□ ┃ ─ Frame + ScrolledText
┃※───────────┐┃ □ Button
┃│           │┃
┃│           │┃
┃└───────────┘┃
┗━━━━━━━━━━━━━┛
こんなウィンドウがあった時、※の座標を指定して右とか下にウィンドウを
マウスで広げても追従するにはどうしたらよいでしょうか。
↓は非常に理想に近いのですが、下に隙間が出来てしまっています。(左右下の隙間は5ピクセル程度)

import tkinter as tk
import tkinter.scrolledtext as tkst

win = tk.Tk()
frame1 = tk.Frame(master = win,bg = 'blue')
frame1.pack(pady=50,fill='both', expand='yes')
editArea = tkst.ScrolledText(master = frame1, wrap = tk.WORD,width = 50,height = 20)
editArea.pack(padx=5, pady=5, fill=tk.BOTH, expand=True)
editArea.insert(tk.INSERT,'abcdefg')
win.mainloop()
0309デフォルトの名無しさん
垢版 |
2020/11/10(火) 13:00:14.77ID:08CevRpc
pady=0
0310デフォルトの名無しさん
垢版 |
2020/11/10(火) 13:48:38.61ID:WtIXeKuk
コメントありがとうございます。
pady = 0 だと、上の余白が無くなってしまいます。
上の余白を保ったまま、左右下を動かして追従させたいという事です。
説明不足ですみません。
コメントありがとうございました。
0311デフォルトの名無しさん
垢版 |
2020/11/10(火) 14:15:54.10ID:3xGJBleZ
ボタン四つを包んでる仮想フレームが伸縮自在になればいいんでねえの
0312デフォルトの名無しさん
垢版 |
2020/11/10(火) 14:18:15.62ID:3xGJBleZ
┏━━━━━━━━━━━━━┓
┃※───────────┐┃ ※目に見えないサイズ可変のフレーム
┃│         □□│┃
┃│         □□│┃
┃└───────────┘┃
┃┌───────────┐┃
┃│           │┃
┃│           │┃
┃└───────────┘┃
┗━━━━━━━━━━━━━┛
0313デフォルトの名無しさん
垢版 |
2020/11/10(火) 19:19:14.70ID:kCGKGXm/
>> 312

助言ありがとうございます。

https://daeudaeu.com/tkinter_place/
を参考に1から作ってみました。
import tkinter
import tkinter.scrolledtext as tkst

# メインウィンドウ作成
app = tkinter.Tk()
app.geometry("600x400")

frame1 = tkinter.Frame(app, width=200, height=200)
editArea = tkst.ScrolledText(app,wrap= tkinter.WORD, width=20,height = 10)

frame1.pack()
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
# メインループ
app.mainloop()



最初のコメントの説明がわかりにくかったですが、こんな感じのを
イメージしていました。

ありがとうございました。
0314デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:39:31.48ID:kNJZ67Nm
Tweepy分かる人いますか
err.266 This request looks like it might be automated. 〜
のメッセージなんだけどこれってどれくらいほっといたら解除されるんですかね
アプリ切り替えても各key変えても出てくるのでアカウントに対しての制限だとは思うんですが3時間経っても変わらなかったので
0315デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:45:28.69ID:/QH/ERIj
banされたんだろ
あきらめろ
0316デフォルトの名無しさん
垢版 |
2020/11/11(水) 13:47:11.21ID:kNJZ67Nm
普通にTwitter公式クライアントでもWebでもツイートrtフォローdm全部できるんですよ
何故かtweepy経由だとダメなんです
0317デフォルトの名無しさん
垢版 |
2020/11/11(水) 14:01:48.69ID:0Y2LevwY
User-Agent 変えてみ
0318デフォルトの名無しさん
垢版 |
2020/11/11(水) 14:07:37.84ID:bNkK+RZv
APIリクエスト数制限ではなくbotとみなされて制限されたんだから解除されるのはツイッター様の気分次第だろうな
0319デフォルトの名無しさん
垢版 |
2020/11/11(水) 14:21:04.98ID:kNJZ67Nm
ua変更の方法から調べてきます
0320デフォルトの名無しさん
垢版 |
2020/11/11(水) 16:34:56.51ID:kNJZ67Nm
わかりませんでした...
0324デフォルトの名無しさん
垢版 |
2020/11/11(水) 21:07:26.30ID:cJF0V5Oo
無難を求めるなら変なレイヤを重ねない方がトラブルは少ないに決まってる
pymysqlに一票
0325デフォルトの名無しさん
垢版 |
2020/11/11(水) 21:59:07.66ID:L1zlK20N
21時に試したけどダメでした
1週間くらい様子見ることにします
0326デフォルトの名無しさん
垢版 |
2020/11/11(水) 22:19:42.14ID:J97jBwV+
一番上にimportをまとめた方がいいみたいなベストプラクティスは無いですよね?
import foo
import bar
何らかの処理
import poo
みたいに書きたいのですが
0329デフォルトの名無しさん
垢版 |
2020/11/11(水) 23:27:50.57ID:J97jBwV+
>>328
そうなんですね

importとそのimportで読み込んだものを使うプログラムのセットで定型文として
冒頭にコピペしたいとき
必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
どうかなと思ったのですが
0331デフォルトの名無しさん
垢版 |
2020/11/12(木) 00:05:37.45ID:zPJeS2Gd
>>330
#!/usr/bin/env python
# -*- coding: utf-8 -*-
的なやつとか
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
してすぐ変数に代入したいときとか
(あくまでコピペする用途に関して)他のimportと干渉しないように書けるのかなぁと
0332デフォルトの名無しさん
垢版 |
2020/11/12(木) 00:26:37.68ID:zPJeS2Gd
ちなみに今は>>331みたいなのをエメットで出して
その下にそのプログラムで必要なimportを追記して
あとで整理(importだけ一番上でまとめる)しようかなと思っていますが
他のプログラムと比較したときにimportの差分がパットみ見づらく放置してしまっています
その程度の用途なら好きに書いても良さそうな気がしてきました
他にいい書き方、整理の仕方があるのかもしれません
0333デフォルトの名無しさん
垢版 |
2020/11/12(木) 00:55:30.25ID:I/DI2P2Q
>>329
>必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
前者はコードフォーマット機能で自動で消せるし
後者も自作ライブラリじゃなきゃインポート文を自動的に追加する機能があるから
これの作業をすること自体が少ない

ついでに言うとimport文を先頭にまとめるのはpep8でも決められてるから
その辺のコーディングルールに反する事になる

……というかimport文がまとまってないと必要なライブラリ/モジュールが一目で分からんくなるから
可読性がクソ落ちるぞ
0334デフォルトの名無しさん
垢版 |
2020/11/12(木) 01:35:01.77ID:HIqoM8fx
>>322
ORマッパで楽したいか、SQL直接書きたいかで変わる
求めるパフォーマンス次第だよ、パフォーマンス必要ならSQL直書きのほうがいいし
0335デフォルトの名無しさん
垢版 |
2020/11/12(木) 01:38:26.14ID:HIqoM8fx
>>332
importでgrepしてsortして一番上に入れ直せばいいんじゃない?
あとemmetでそれ入れたとしてもちゃんとカーソル動かしてimportの下に入れるんじゃダメなの?
0336デフォルトの名無しさん
垢版 |
2020/11/12(木) 02:06:15.41ID:aGTNjSDS
>>323
>>324
ありがとう。それも見てみる

>>334
それは書くべきだった。ごめん
非同期バッチで軽めのクエリ投げるだけなので楽な方が良い
0338デフォルトの名無しさん
垢版 |
2020/11/12(木) 10:07:47.02ID:SLO+XJAz
>>334
自分はPythonとMysqlを同時に始めたからSQLのが便利だったな
ORMで検索すると一言目にはSQLを書かなくていい覚えなくていいって出るけど、メリットどころかなんでわざわざSQLをORMで書き直す必要があんのって感じだった
一度どっちかが便利だって思ったらそうそう変えられない。入り口によるのかもしれない
0339デフォルトの名無しさん
垢版 |
2020/11/12(木) 11:41:49.27ID:ctukqySm
1秒後に空ファイルを作るコマンドをなげて、本処理はそこで止まらずに進みたいです。

空ファイルはとりあえず
p=pathlib.Path('xxx')
p.touch()
で作ろうと思っていますが、time.sleepを使うと本処理自身もとまってしまうので使えませんでした。
何か方法はありますか?
0341デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:08:42.65ID:8fd8Jcut
いちおう
os.system('sleep 1;touch xxx')
でできますが、一度シェルに投げるのは気持ち悪いので、できればpython内で完結できればと思っています。
0342デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:57:01.06ID:f5BAQJxF
thread.run(pathlib.Path('xxx').touch)

touch() じゃなくて touch を渡す
0343デフォルトの名無しさん
垢版 |
2020/11/12(木) 12:57:50.22ID:f5BAQJxF
thread.run(lambda : pathlib.Path('xxx').touch)
こっちかも知れん
0344デフォルトの名無しさん
垢版 |
2020/11/12(木) 13:17:42.67ID:OJpnz+qw
>>339
空ファイルの用途と、一秒後という理由がわからないけど、
本処理の前に作ってしまってはダメなの?
意外とそういう処理で済んじゃう場合もあるし
0345デフォルトの名無しさん
垢版 |
2020/11/12(木) 13:33:35.86ID:8fd8Jcut
>>342,343
このthread関数は

from threading import Thread

ではなく、python2系にある全部小文字の

import thread

でしょうか?
0346デフォルトの名無しさん
垢版 |
2020/11/12(木) 13:38:24.26ID:8fd8Jcut
>>344
空ファイルはフラグ用で、別に動いてる処理と連携させるものです。
即ファイルが作成されるとその後の工程でまずいので制御したいと考えています。
0348デフォルトの名無しさん
垢版 |
2020/11/13(金) 18:22:13.24ID:0B/9Af9p
Tkinterてwinで作ったのをmacで表示させると
レイアウトぐちゃぐちゃだけど

他のGUIライブラリも一緒?
Kivy、PyQt、wxPython、PySide辺りで試したことあるひと
教えてくり
0350デフォルトの名無しさん
垢版 |
2020/11/14(土) 00:06:13.71ID:XJ24TZhC
sizer使えばおk
0351デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:11:00.88ID:4Qzmu7NG
絶対配置はどのライブラリもダメてことだよね
OSごとのウインドウやフォントがそもそも違うから

ウイジットを画面いっぱいに埋めるように配置指定すればいけるてことでおk?
でもこれ不格好すぎるんだよね

で空白のためpx単位で指定したらもうアウトてことか…
0352デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:32:45.42ID:T+rYowJl
pythonでマルチプラットフォームのGUIアプリを作ろうとしてる時点で道具の選択を間違ってるよね
0353デフォルトの名無しさん
垢版 |
2020/11/14(土) 11:46:08.53ID:QzputhfI
ピクセル単位で指定しても良いけど面倒臭いだろ
それでもどうしてもというなら適当に余白造って
OS変わっても大丈夫な様に造るしかない
0355デフォルトの名無しさん
垢版 |
2020/11/14(土) 13:51:47.27ID:4Qzmu7NG
相対値て設定できるライブラリてあるのかな?
0356デフォルトの名無しさん
垢版 |
2020/11/14(土) 13:57:01.44ID:l26MbGN7
>>354
オートレイアウト的なのだけ駆使してても
OSかえたらコレジャナーイ感が出ることは
まれどころじゃなく
よくある

>>352
んだ
0357デフォルトの名無しさん
垢版 |
2020/11/14(土) 14:13:44.32ID:5DwlosOq
初心者相手にデマ撒き散らすのが流行ってんのか?
これも売電推しのマスゴミのせいだな
0358デフォルトの名無しさん
垢版 |
2020/11/14(土) 18:59:50.44ID:G79Bc0pr
非同期?アプリを作りたいんだけど、async/awaitが難しすぎて理解できない
俺は無能なんでしょうか
やりたいことは以下
・PCの特定のフォルダを監視し、新規ファイル・更新ファイルがあるたびに
SQLiteのテーブルにファイル名とタイムスタンプを格納・更新する

これを単純なループで作るとPCが固まってしまうので
非同期アプリにする必要があると思った次第
0359デフォルトの名無しさん
垢版 |
2020/11/14(土) 19:11:37.26ID:DnZAmAgg
asyncioの惨状なんだあれ
リリース毎にDeprecatedだらけの迷走っぷり
折角async/awaitキーワードまで取り入れたのに名前が足りなくて関数名がおかしくなっとるやん
0361デフォルトの名無しさん
垢版 |
2020/11/14(土) 22:43:31.52ID:HbMOH9xQ
自分はpyqt使ってマルチプラットフォームアプリ作ってます
自分はMacで,周りもMacの人が多いです
議論なされてるようにWinではレイアウトが微妙にズレてますが,大半の人が自分のレイアウトで使えてるから,まあいっかと思ってます
気にできるほど他の言語に明るくないので…
0362デフォルトの名無しさん
垢版 |
2020/11/14(土) 23:19:14.33
同階層のpyファイルを読み込むにはimport ○○とするらしいのですが
ふと思いました
○○.pyと、すでにインストール済みのモジュール名がかぶったときはどうするのでしょうか
あと、単に同階層の○○.pyをimportすることが明確な場合に、
とりあえず別のインストール済みのモジュールも総当りで?見つけようとするのは無駄な動きな気がしてしまうのですが問題はないのでしょうか
0363デフォルトの名無しさん
垢版 |
2020/11/15(日) 06:40:07.09ID:XAziMnEB
同階層のやつが優先されるのでお察しの通りエラーを吐く
なのでモジュールと同じ名前は避ける必要がある
0366デフォルトの名無しさん
垢版 |
2020/11/15(日) 11:04:54.86ID:xwGOSzxB
>>358
うちもパイソンはじめて1ヶ月くらいのときに同期やろうとしたけどわけわかんなくて挫折したw
別の方法で解決したけどいつか再挑戦したい
0368デフォルトの名無しさん
垢版 |
2020/11/15(日) 13:03:57.44ID:Q3DWzppx
plt.subplot(2, 2, 4)
plt.plot(ほにゃらら)
pltshow()
print('end')

みたいにplt.subplot使ってplt.show()するとplt.show()でグラフ表示した後フリーズして
print('end')
が実行されないのですが・・・、どうすればいいでしょう?
グラフ自体は望んだ通りのものが表示されているのですが、グラフウインドウを閉じてもprintが実行されません。
0370デフォルトの名無しさん
垢版 |
2020/11/15(日) 13:50:29.62ID:1NoBqfO6
フリーズはしていない
戻って来て欲しい時は
plt.draw()
0371デフォルトの名無しさん
垢版 |
2020/11/15(日) 14:04:02.28ID:1NoBqfO6
ごめん間違った
この手順でやってみ
>>> from matplotlib import pyplot as plt
>>> plt.subplot(2, 2, 4)
>>> plt.plot([[1,2,3],[4,5,6]])
>>> plt.pause(0.1) # ここで表示されて 0.1 秒後に戻る
>>> plt.plot([[1,2,3],[4,5,8]])
>>> plt.gcf().canvas.draw() # 更新
0374デフォルトの名無しさん
垢版 |
2020/11/15(日) 17:14:49.77ID:Q3DWzppx
>>371
できました。ありがとうございます。m(_ _)m
でもなんでできたのか、わからない・・・???

plt.show()
でなんでフリーズして

plt.pause(0.1)
plt.gcf()canvas.draw()
だと戻ってくるんでしょう?
0379デフォルトの名無しさん
垢版 |
2020/11/16(月) 12:36:25.59ID:A2ai6viK
>>348
pyqt5でも乱れる。俺はだいたいウィンドウをリサイズなしの大きさ固定にしてるけど、
フォントの関係か、だいたい乱れる(大きくは乱れない)。
デザイナーで微調整が必要だな。
0381デフォルトの名無しさん
垢版 |
2020/11/16(月) 19:38:01.87ID:ZlvPcwtM
Pythonおじさんがマイクロソフトに入ったから、EXCELにPython同梱して操作できるようにしてくれ(´・ω・`)
0383デフォルトの名無しさん
垢版 |
2020/11/16(月) 20:01:01.30ID:ysP24k7m
はえーそんなのあるんだ
0386デフォルトの名無しさん
垢版 |
2020/11/18(水) 15:35:14.76ID:cVTuS9Vl
ウェブアプリのレスポンスをjsonで返そうとして
res = '{"status":"{status_code}","error":"{error}"}'
return res.format(status="200",error="")
みたいにすると変数res内の{とformatの{が干渉してエラーが出てしまいます
なので
res = '"status":"{status_code}","error":"{error}"'
return '{'+res.format(status="200",error="")+'}'
としたのですが、、なんかかっこ悪い気がしてもやもやします・・
もっといい方法はないでしょうか
json.dumpsを使うと
res['status'] = 200
res['error'] = ''
の行が増えてしまうのでそのあたりが気になります
0387デフォルトの名無しさん
垢版 |
2020/11/18(水) 16:02:18.01ID:/USRxP5S
ちょっと何言ってるか分からないんだけど、
return json.dumps({“status":status_code,"error":error})って事ではないの?
0388デフォルトの名無しさん
垢版 |
2020/11/18(水) 16:19:03.18
>>387
ええ、関数化やモジュール化するまでもなければ簡潔に書ける方法はないかな
ということです
status_codeが200だけ出てくる場合なら別にそれでいいと思いますが
0391デフォルトの名無しさん
垢版 |
2020/11/18(水) 16:59:39.36ID:cVTuS9Vl
>>390
で、できました!
"\{"とかで出来きず他の方法がありそうな気がしていましたが
{{だとは・・
ありがとうございました!
0392デフォルトの名無しさん
垢版 |
2020/11/18(水) 17:21:35.12ID:vHQTDRO5
res.format(status=500, error='Error: "foobar”’)とかするとバグらない?

素直に関数化するかクラス化したほうが良いと思うな
def res(status_code, error):
__return json.dumps({'status': status_code, 'error': error})

res(500, 'Error: "foobar"')
0394デフォルトの名無しさん
垢版 |
2020/11/18(水) 23:26:31.23ID:4/YKHsf6
ここに書いてある事がほとんど分からないんですが
本当に超初心者のスレですか?
0395デフォルトの名無しさん
垢版 |
2020/11/18(水) 23:45:00.61ID:hkPPdx4I
簡単に説明←簡単じゃない
初心者向け←初心者向けじゃない(書いてる奴が初心者)

よくあること
0396デフォルトの名無しさん
垢版 |
2020/11/18(水) 23:47:39.86ID:cVTuS9Vl
>>392,369
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
0397デフォルトの名無しさん
垢版 |
2020/11/19(木) 06:48:28.38ID:SrLjxFgj
>>394
Pythonにはいろんな機能があるから、質問も多岐にわたるわけで
理解できないものがあって当然
JSONなんて使わない人は一生使わない機能だし
0398デフォルトの名無しさん
垢版 |
2020/11/19(木) 08:41:29.87ID:YoVNSJkp
>>272
Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
0399デフォルトの名無しさん
垢版 |
2020/11/19(木) 10:53:10.35ID:z88yTjzg
>>386 >>396
status_code=200
error="error"
res = str({"status":status_code,"error":error})
0400デフォルトの名無しさん
垢版 |
2020/11/19(木) 12:09:45.64ID:oRKf5Y34
>>399
それだとstr()が環境によるのか仕様かはわかりませんが
”が'で表示されてしまいますね
実際そのコードをサーバー立てた試験はしてませんが
以前、JSONをバックエンド側でシングルクオートで書くと
クライアント側でエラーが起きた記憶があります

あと、毎回status_codeとerrorを変数に置く必要もない気がします
もしstr()のシングルクエート化が問題なく
statusもerrorも固定であればもうこれでいいのでは
return str({"status":200,"error":"err"})

自分は簡単な場合はこんな感じです
res = '{{"status":{},"{}":"{}"}}'
#分岐
return res.format(200,"msg","ok")
0401デフォルトの名無しさん
垢版 |
2020/11/19(木) 15:47:35.30ID:EbSX4tjh
>>400
>res = '{{"status":{},"{}":"{}"}}'

jsonシリアライザーを使わず文字列+format関数を使うメリットなくない?

それに>>396で言ってるプログラムを分けた時に
テンプレートになる文字列をコピペして回るくらいなら
関数化/モジュール化してimportしたほうが健全だよ
0402デフォルトの名無しさん
垢版 |
2020/11/19(木) 16:15:53.36ID:oRKf5Y34
>>401
>文字列をコピペして回るくらいなら
そんなこといい出したらimport行もプログラム毎にコピペしてません・・?
関数もコピペしてますよね
親で読み込むならまだしもモジュール名に困りますし。
gitで管理するほどのものでもないし

そういう簡単な用途でない場合は
普通に関数化するしjson.dumpsも使っていますし
gitで管理するレベルのモジュール化も実際してしますけどね
0403デフォルトの名無しさん
垢版 |
2020/11/19(木) 16:54:21.20ID:4Pgi61oy
質問です
「実用的でないPythonプログラミング」という本をやっているのですが
Pylintのところで
コマンドプロンプトに
> pylint -rn --max-line-length=79 --generate-rcfile > myconfig.pylintrc
という風に設定ファイルを作った後に
> pylint --rcfile myconfig.pylintrc pseudonyms_main(評価したいプログラム名です)
とすると
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python39\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
0404デフォルトの名無しさん
垢版 |
2020/11/19(木) 16:54:40.27ID:4Pgi61oy
File "c:\users\owner\appdata\local\programs\python\python39\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python39\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

となって評価してくれません
0407デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:23:13.66ID:YSWc8XxM
>>403-406
3.9なんて使うからじゃろ
3.8にしとけよ
あと
ターゲットの本文?に全角文字入ってないか?入ってたらそれをヤメレ
0408デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:28:17.91ID:ikoVfZxF
教えて下さい。

tkinterのテキストに処理の状況を表示していきたいのですが、処理終了後に
一気に再描画される感じになってしまいます。
printしてshellに出力されるような感じで、テキストに出力するにはどうしたら
よいでしょうか。

サンプルです。
------
import tkinter
import tkinter.scrolledtext as tkst

def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # 一気に描画される
print(str(i)+'回目') # このようにしたい

# メインウィンドウ作成
root = tkinter.Tk()
root.geometry("600x400")

Button1 = tkinter.Button(root,text='実行',command=click)
Button1.pack()
editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10)
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)

# メインループ
root.mainloop()
------
どうかよろしくおねがいします。
0410デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:40:55.60ID:4Pgi61oy
>>407
評価したいプログラムは
https://github.com/rlvaugh/Impractical_Python_Projects/blob/master/Chapter_1/pseudonyms_main.py
です、たぶん全角は入ってないと思います
いま3.9から3.8.6に変えてみて同じことをやってみても
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python38\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
0411デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:41:42.54ID:4Pgi61oy
File "c:\users\owner\appdata\local\programs\python\python38\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
File "c:\users\owner\appdata\local\programs\python\python38\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode
return codecs.utf_8_decode(input, errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
というふうになって同じみたいです
0412デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:50:31.40ID:OpsIjeL3
>>403
文字コード変えてないか?
VSCODEとかのテキストエディタで該当ファイルを開いた時に
ちゃんとUTF-8になってるか?
0413デフォルトの名無しさん
垢版 |
2020/11/19(木) 17:51:00.78ID:KWn/SEv2
>>410
その評価したいプログラムがUTF-16で保存されてるみたいだから
VS CodeかなにかでUTF-8で保存しなおせば大丈夫かも
0415デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:03:30.56ID:EbSX4tjh
>>402
値をあちこちにコピペして使うことと
値を参照してる変数や関数をあちこちで使うことの違い

複数のファイルで同じようなimportを何度も繰り返しやってるなら
__init__.pyとかでまとめればいい

gitは何の関係が?
0416デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:11:08.22ID:UFBeFMfP
>>git
自分はそこそこできるんだぜアピールじゃないかなw
よくいるよね。こういうタイプの人。
0419デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:31:09.44ID:oRKf5Y34
>>415
>複数のファイルで同じようなimportを何度も繰り返しやってるなら
ええ、そういう用途のときはそうすればいいと思いますよ

>gitは何の関係が?
ホストPC以外で開発する場合、通常はクラウドでコンテナ作って云々すると思いますが
いちいち簡易レスポンスのためのimportをコピペするのが面倒なので
gitでリモートします
0420デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:33:57.52ID:oRKf5Y34
というかホストPCで開発するときも
プロジェクト毎にcloneすると思うけど
毎回ファイルごとコピペしてる人が多いのかな
0421デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:43:27.44ID:4Pgi61oy
>>418
BOMっていうのは知らなかったですけど
https://qiita.com/JINr/items/255429d6174fad76b9b7
ここに書いてあることをやってみたのですが
BOM付きっていうところをにはチェックは入ってなかったです
あらためてチェックなし状態で上書き保存して同じことしても
同じようなエラーが出ました
0422デフォルトの名無しさん
垢版 |
2020/11/19(木) 18:53:18.11ID:ikoVfZxF
>> 409
コメントありがとうございます。
flush() 色々と調べてみましたが、まだ有効に使えていませんが、
調べているうちに、update()とsee()というメソッドがあるのが
わかり、組合せたら上手くいきました。
ヒントいただきありがとうございました。

一応、結果報告
import tkinter
import tkinter.scrolledtext as tkst
import sys

def click():
for i in range(10000000):
# 10000回ループに1回テキスト出力
if (i / 10000 ) % 1 == 0:
editArea.insert('end',str(i)+'回目\n') # OK
editArea.update()
editArea.see('end')
#sys.stdout.flush()
print(str(i)+'回目') # このようにしたい

# メインウィンドウ作成
root = tkinter.Tk()
root.geometry("600x400")

Button1 = tkinter.Button(root,text='実行',command=click)
Button1.pack()
editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10)
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
root.mainloop()
0424デフォルトの名無しさん
垢版 |
2020/11/19(木) 19:03:04.41ID:YSWc8XxM
>>422解決おめ+報告乙

>sys.stdout.flush()
おう、これ↑は標準出力(Win系ならDOS窓)への出力をいますぐやれよ という命令だから・・・
sysのimportもコメントアウトしちゃって大丈夫にみえる
0425デフォルトの名無しさん
垢版 |
2020/11/19(木) 19:04:21.67ID:YSWc8XxM
>>421
今知れてよかったな>BOMの存在
(これからもまれに苦しんでいくことだろう)

>>423横じゃが
なるほどなっとくありうる展開
0426デフォルトの名無しさん
垢版 |
2020/11/19(木) 19:11:37.20ID:4Pgi61oy
>>423
!!!その通りでした!!!
myconfig.pylintrcがBOMつきUTF-16になっていました・・・
本にフォルダでShiftを押しながら右クリックで
「コマンドウィンドウをここで開く」か「PowerShellウィンドウをここで開く」を選べと書いてあったので
PowerShellで開いてやってました
すいません正確な情報じゃなくて・・・
myconfig.pylintrcをUTF-8にしたらうまくできました!!!
ありがとうございます!
0427デフォルトの名無しさん
垢版 |
2020/11/19(木) 22:17:37.25ID:Na4zD9bI
>>419
クラウドでコンテナ云々とか別に普通じゃないと思うけど
場合によるでしょ
というか今どきはVSCodeのリモート開発がマジでローカルで開発してるみたいで便利でいいよ
あと、jsonモジュールはPython標準なのだから、よっぽど性能を出したいとかじゃなければ標準ライブラリ使った方がトラブらないと思う。自分のいい加減なコードより10万倍ぐらいテストされてるだろうから。
そもそも性能出したいときにPython使わないし、jsonモジュールを使わない方がいいケースがあまり思いつかないなあ。
0428デフォルトの名無しさん
垢版 |
2020/11/19(木) 22:31:26.53ID:oRKf5Y34
>>427
いや普通に主にVSCodeでのリモート開発ですよ
>ローカルで開発してるみたいで
そのためのコンテナなんですけどね・・
場合によってVSCodeなり別だったりでgit管理、運用がコンテナってだけで。
普通は仮想環境下ならこれらはセットだと思いますよ・・
あと繰り返しになりますが
>intとstrのみとわかっている
みたいな単純な用途の場合ですよ
0429デフォルトの名無しさん
垢版 |
2020/11/19(木) 23:28:35.13ID:Na4zD9bI
>>428
なるほど、ちゃんと読んでなかったけど
importを書きたくないからの主張なのか
なら、json.dumpsの1行上にimport jsonを書いて2行コピーするのはどうかな?
何回importがあっても問題ないし、文が書けるところならどこにでも書けるし、
式で完結させたければ
__import__('json').dumps(obj)
とすればいいみたい。(これにはちょっと驚いた)

自分はめちゃくちゃ簡単なはずのjsonでも固定のjsonを条件によって2個出し分ければいいとかじゃなければ、
たかだかjsonを出すのに、strに変な文字が入らないか考えたりintをstrに変換する方法を考えたりして、余計な判断が入るのが嫌だから、jsonモジュール任せだな。
まあ、楽な方法は人それぞれだと思うんでjsonモジュールを使わないのが楽と思う人もいるのは否定しないけど。
0430デフォルトの名無しさん
垢版 |
2020/11/19(木) 23:38:08.43ID:zsB/MCGD
考え方は人それぞれなんでしょうけど、「スマートな書き方」という質問に対して、JSON形式で返すのならjson.dumps使ったほうが他人がコードを読んでも「あ、これはJSONで返すんだな」と意味が理解しやすいしスマートだと思うなぁ
自己満足的なスマートか、保守性も考えたスマートなのか、方向性の違いかしら。
0432デフォルトの名無しさん
垢版 |
2020/11/20(金) 00:20:07.13ID:aJFtJ7NQ
>>429
>importを書きたくないからの主張
'{"status":200,"error":"hoge"}'
とか直接書いてもいいし
res(200,"hoge")とかでもしいし
json.dumps(res)とかでもいい
自作モジュールで管理するでもいいし
という前提があります
が今回は、関数に分けるまでもjsonモジュール使うまでもなさそうだな
という用途で、かつ汎用的に流用したい、かつ変数代入やimportの省略による行数の節約
などができないかと思ったときに
formatの使い勝手が良かったしかし、{の干渉があった
が、結果的にその干渉を除くことができました
ってだけの話です
書きたくないというより使うまでもないな
ということに尽きると思います
0433デフォルトの名無しさん
垢版 |
2020/11/20(金) 00:25:40.46ID:Y24NtUEO
>>432
個人的な趣味だけど、まあC言語とかで書いてるなら言うことは同意できるよ。C言語で書いててそこからの移植とか。
個人的な趣味だけど、Python使ってて「使うまでもない」かどうか一々判断するのは面倒だなって思っちゃう。Pythonって、使えるものは何でも使ってやれの富豪プログラミングの精神に近いかなと。
まあ個人的な趣味でしかないんで、その判断をするのが異常だとは思わないよ。色々な理由があるのだろうし。
0434デフォルトの名無しさん
垢版 |
2020/11/20(金) 01:08:25.18ID:kqUw2Oqc
>>432
このケースで文字列のコピペでいいと思うのはたぶん君だけ

可読性/変更容易性/テスト容易性など他と比べて何一ついい点がなく明らかにマズい書き方
0435デフォルトの名無しさん
垢版 |
2020/11/20(金) 01:22:02.94ID:aJFtJ7NQ
極論""返すだけだとしてもどんな場合でもチェックすべきだ
みたいな議論と同じでその主張はさすがに違和感あります >>434
0436デフォルトの名無しさん
垢版 |
2020/11/20(金) 01:28:55.33ID:1jDOgyGC
statusコードを成型して返すだけのモジュールは別のケースで使っていて
今回はそれを使わないケースだった、というだけの話なのですが
もしかするとどんな場合でもformatを使った書き方でやっている
と勘違いしてる人がいるのかもしれない
0437デフォルトの名無しさん
垢版 |
2020/11/20(金) 05:05:30.75ID:pwTm9Uxw
>>272
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
0438デフォルトの名無しさん
垢版 |
2020/11/20(金) 05:15:51.38ID:pwTm9Uxw
Ruby on Rails では、API モードがあって、API 用のアプリも作れる

初心者は、そういう事を知らないから、
何でも時間をかけて、低品質なアプリを自分で作るw
0439デフォルトの名無しさん
垢版 |
2020/11/20(金) 05:29:48.35ID:pwTm9Uxw
>>411
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
これで、検索してみれば?

UTF-8 は以下のように、先頭ニブル・4ビットで、1〜4バイト文字を判別しています

1バイト文字: 0000〜0111: 0〜7

多バイト文字の2バイト目以降
1000〜1011: 8〜11(8〜B)

2バイト文字: 1100〜1101: 12〜13(C〜D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)

0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
0440デフォルトの名無しさん
垢版 |
2020/11/20(金) 05:43:06.55ID:pwTm9Uxw
我流の人は、Git のプルリクを知らなそう。
就職では必須項目

上の人が見たら、一発で書き直し。
バグりやすいコードは、プルリクを受け付けられないだけ

議論するだけムダ

チェックを通ったコードは、合法になるから、
皆が模範にしてコピペするから、我流はダメ!
0441デフォルトの名無しさん
垢版 |
2020/11/20(金) 06:50:20.26ID:DAmoUJMr
>>432
> かつ変数代入やimportの省略による行数の節約などができないかと思った
いつの時代のおじいちゃんなんだよw
0443デフォルトの名無しさん
垢版 |
2020/11/20(金) 08:27:43.79ID:04W8lkpW
パイソンって書いた事ねーんだけっども、ブロックってインデントで
表現するんだべ?するってーと、100行のブロックにifに入れてぇ
ときは、100行分インデントすんのけ?
0444デフォルトの名無しさん
垢版 |
2020/11/20(金) 09:03:36.27ID:azkfkwLr
>>443
せやけど
IDEがまともだったり、テキストエディタでもSakuraエディタみたいなPythonソースコードモードがあるエディタなら
自動でやってくれるべ?
0445デフォルトの名無しさん
垢版 |
2020/11/20(金) 09:09:51.23ID:WciP5EDn
でも範囲の指定は自分でやらんとならんよね。
他の言語ならブロックの開始と終了を書いてやればいいんだけど
pythonは自分で範囲指定してインデントしてやる必要がある。
0446デフォルトの名無しさん
垢版 |
2020/11/20(金) 09:33:53.10ID:04W8lkpW
やっぱりそれなりのエディタや統合環境が前提なのかな(もちろん批判ではない)。
マジレスありがとう。
0447デフォルトの名無しさん
垢版 |
2020/11/20(金) 09:52:05.41ID:azkfkwLr
>>446
だがおれはいつもは秀丸でコードを書いている。
範囲指定→右クリメニュー「インデント」→おk!
0448デフォルトの名無しさん
垢版 |
2020/11/20(金) 11:05:57.25ID:T+fLV2lq
行選択してtabキー押すだけじゃないの?
秀丸ってそうなの?
0451デフォルトの名無しさん
垢版 |
2020/11/20(金) 11:33:54.21ID:iBr2xRx4
回答者側と思しき立場でただのgit管理にすら怪訝する人が上の方でちらほらいたので正直驚いたけど
個人開発であってもgitはほぼ必須になってくる場面があるのでまとめて覚えておいて損はない
0452デフォルトの名無しさん
垢版 |
2020/11/20(金) 11:48:54.11ID:SYPK5ijx
>>451
流れ軽く読んで来たけど
・実装の重複を防ぐためのクラス/メソッド抽出してモジュール化
 ⇒設計的な話
・Gitでモジュール化したものを管理する
 ⇒バージョン/ファイル管理的な話

この二つは本質的には別問題だけど、何故か混同された話になってて
よく分からん事になってるな
(実際の開発考えるとGit使ったやり方になるから分からん話でもないが)
0456デフォルトの名無しさん
垢版 |
2020/11/20(金) 12:47:59.38ID:27JFXKUI
>>439
>4バイト文字: 1111: 15(F)
>0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?

1バイト文字は0xxx-xxxx
2バイト文字は110x-xxxx
3バイト文字は1110-xxxx
4バイト文字は1111-0xxx

↑この制限だけでも4バイト文字の先頭バイトは0xF0~0xF7の範囲
実際はUnicodeのコードポイントの上限がU+10FFFFまでなので0xF0~0xF4(1111-0100)
0458440
垢版 |
2020/11/20(金) 13:17:17.31ID:pwTm9Uxw
YouTube で有名な、雑食系エンジニア・KENTA が言ってる

Git のプルリクは、転職に必須項目だと
0459デフォルトの名無しさん
垢版 |
2020/11/20(金) 13:33:16.00ID:RwZlwr9h
パソコンor通信環境のスペック次第だが仮想環境であればvscodeに限らず大体使える
スマホですら動く
0460403
垢版 |
2020/11/20(金) 13:44:15.80ID:OhxLwjcY
>>439
>>423で解決しましたよ
0461デフォルトの名無しさん
垢版 |
2020/11/20(金) 14:07:20.42ID:geOpYg9g
>>451
git管理に怪訝してる人なんて一人もいないでしょ
むしろgitも理解してるから話が噛み合わない
0462デフォルトの名無しさん
垢版 |
2020/11/20(金) 14:57:48.56ID:gfvoQY5i
gitを持ち出したのは>>416の指摘通りだろうけど、書いてる内容見るとpythonのモジュールを理解してなさそう

自分が知らなかったことや見落としてたことを絶対に認めずに (本人にとっての)俺はできるんだぞアピールで返す人はスルーに限る
0463デフォルトの名無しさん
垢版 |
2020/11/20(金) 15:40:25.51ID:abuyzRZn
>>458
プルリクっていろんな人が好き勝手にソースをいじるOSS開発で役立つ機能っしょ
転職に何ら関係ないと思うが
0464デフォルトの名無しさん
垢版 |
2020/11/20(金) 16:07:05.73ID:Cnjv1GAE
いやプルリクそのものじゃなく今までにプルリクした実績のことじゃないの
GitHubアカウントを見せてこんなことしてきましたよと自己アピールする感じで
そんなん実際にするのか知らんけど
0466デフォルトの名無しさん
垢版 |
2020/11/20(金) 16:21:35.66ID:abuyzRZn
>>464
そういうことね
あまり意味ないと思うなあ
プルリクって他人の作ったアプリに寄生する行為だし
こいつ採用してもOSSにかまけて仕事しないんじゃないかと思われるだけだろう
0469デフォルトの名無しさん
垢版 |
2020/11/20(金) 17:12:00.89ID:27JFXKUI
プルリクはOSSに限らないよ
転職の話はプルリクベースの開発スタイルに馴染みがあるかどうか
もしくは適応できるかどうかっての話だと思う
0470デフォルトの名無しさん
垢版 |
2020/11/20(金) 17:38:21.51ID:AGMq159w
すまん、それpython関係ある???
0471デフォルトの名無しさん
垢版 |
2020/11/20(金) 17:53:38.81ID:04W8lkpW
あげるなよ、何かを信じてる方々の啓蒙活動なんだから。
背景雑音だっぺ。
0472デフォルトの名無しさん
垢版 |
2020/11/20(金) 19:34:59.52ID:M1wpYzhx
モジュール化してimportするまでもない
git管理するまでもない
関数化はしてもいいがするまでもない
そういう用途下で、ただのformat関数をつかった文字列出力の小技の話なのに
なぜかどんな場合にもimportすべきだjsonモジュール使ってチェックすべきだ
みたいな勢力がいる違和感
0473デフォルトの名無しさん
垢版 |
2020/11/20(金) 19:42:56.25ID:abuyzRZn
>>472
違和感でも何でもない
技術者にはそれぞれ己の中に譲れないポリシーがある
「〜するまでもない時はしないでいい」というのもポリシーだし
「どんな時も〜するべきだ」というのもポリシーだ
それが匿名掲示板でぶつかり合うとこうなる
0474デフォルトの名無しさん
垢版 |
2020/11/20(金) 20:00:35.31ID:OHdUFTne
>>462
git持ち出したのは>簡単な用途でない場合
の一例ですよ
簡易的に仮想環境化で動作確認したい場合とか
statusを返すようなモジュール個別開発したりcloneしたりバージョン管理もする必要のない用途例として出しただけです
ここの人なら普通に使ってるものだと思っていたし
できる人のアピールになぜgit?という感じで正直謎でした
0477デフォルトの名無しさん
垢版 |
2020/11/20(金) 20:47:13.53ID:uMSrjpcB
JSONで返しますって言ってるAPIがJSON風の自前の文字列返してくるとか嫌がらせ以外のなにものでもない
何のためにJSONが存在してると思っている
0478デフォルトの名無しさん
垢版 |
2020/11/20(金) 20:54:33.52ID:abuyzRZn
>>475
sに入力した文字列を'S'を境にして区切り、区切った文字列ごとに文字数を算出し
その中から最大の数を選んで表示する

これは難解
map関数は関数型言語からバクッてきた機能らしく、Pythonの文脈に馴染んでおらず
使うと大抵可読性が落ちる
プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
0479デフォルトの名無しさん
垢版 |
2020/11/20(金) 20:57:12.97ID:Y24NtUEO
バージョン管理しない書き捨ての用途だとしてもjsonモジュール使う方が何も考えなくていいもの
jupyterで適当なコード書くときだってjson numpy pandasあたりは大体始めに必要だとわかってimportしとくわ。

自分でフォーマットする合理性が理解できない。
「jsonモジュールを使うまでもない」というが、「jsonモジュールを敢えて使わない理由はない」と思ってしまう。
それこそ内包forを使うまでもないから使わない、みたいな話と同じように感じてしまう。
車輪の再発明はどうしても必要とされない限りは基本的に避けた方がいい行為、ということにも合意はなされない、のかな。
0480デフォルトの名無しさん
垢版 |
2020/11/20(金) 20:59:04.30
>>477
つまりパーサーを通したものこそ真のJSONである、と・・
しかし、そのパーサーの中身は・・?
これやってみては
if json.dumps({"status":200}) == '{"status": 200}':
_print(True)
0481デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:00:33.44ID:Y24NtUEO
>>475 >>478
print(max([len(st) for st in s.split('S')]))
だったら理解できるのかな?
特に478、こっちの書き方なら十分にPython流で明快とされると思うのだが
0482デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:01:42.82ID:azkfkwLr
>>479
> 車輪の再発明
そういえば
去年あたり、このスレに
「エクスポーネンシャルの逆関数を発明した俺天才!」みたいな書き込みしにきたあふぉがいたなぁ・・・  (´ー`)
0483デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:08:06.35ID:Y24NtUEO
>>480
筋悪だな
json.dumps(json.loads('{"status": 200}')) == json.dumps({"status":200})
ぐらいにしないとFalseになる可能性は十分にある、今実験してTrueなったから未来永劫Trueだろう、というのは考えが甘いよ
それがTrueになるのはどのPythonの実装でなら担保されるのかな?

要は、いちいちJSONの仕様を100%確かめて、100%準拠した手書きJSONを書くというのは割りに合わないということ。
import jsonとかjson.dumpsと書くたったの10秒ぐらいの余計な時間で、
もし間違ったJSONを出力してパーサーの方でパースできない原因を究明することになったときに必要な何十分がなくなるんだから、
余計な10秒をかけない理由がない

変に手抜きすると結局その手抜きが原因で100倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
0484デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:09:07.64ID:l5Hw5z7m
>>478,481
なるほど。ありがとうございます。
少ない行数で書ける人に憧れてましたけどそうなんですね…
0485デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:14:07.28ID:Y24NtUEO
>>484
少ない行数で書けることがカッコいい、わけではないが、このぐらいのmapは流石に読めたほうがいい
これを5行で書くほうが良いと言うのは、正直いって10年以上前にプログラミングを習ってそこから知識がアップデートされてない人種だと思ったほうが良い
勿論初心者なら、ちょっと読み解くのが難しいから自分には5行でしか書けない、5行のパターンじゃないと読むのが難しい、というのでも構わない
でも今どきJavascriptなんかでこんな書き方は当たり前なんだから、向上心があるなら慣れるべきだと思う
0486デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:23:59.20ID:aJFtJ7NQ
>>483
ただの書き方の解釈、開発環境での用途の話であって
Trueが担保されるかどうかは別の話
余計な10秒をかけたくないときに使えば良いだけ
ただの文字出力用途で100倍余計に時間がかかってしまう具体例を教えてほしい
0487デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:39:21.22ID:Y24NtUEO
>>486
え、「ちゃんとパース可能なJSON」を書き出したいんじゃなくて、「ただの文字出力」をしたいって話だったの?
ただ単純に「ちゃんとパース可能なJSON」を書き出すのが目的だとしたら、
1. JSONの規格を100%理解しているわけではないプログラマーがいい加減に書き出した文字列(テスト回数10回ぐらい)
2. Pythonの標準ライブラリとして用意されているjsonモジュールを使ってオブジェクトをJSON文字列に書き出した文字列(テスト回数100万回ぐらい)
のどっちが良いか、で、1が良いなんてことあるの?
1が良い場合もないとは言えないと思うけど、何かしら条件が必要だと思わない?
「いい加減に書き出した」せいで1時間デバッグに余計にかかったんだとしたら360倍時間かかってるわけで
そもそも{}がうまく出ないとか5chに質問してる時点で相当解決に時間かかってるのでは…?
0488デフォルトの名無しさん
垢版 |
2020/11/20(金) 21:56:03.77ID:AGMq159w
pythonでmap, filterあたり使う理由ってほぼないだろ
内包表記に比べて遅いしgeneratorで返ってくるし
0489デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:04:18.19ID:V+7Wns2i
>>488
シーケンシャルに処理していくならgeneratorを連鎖させると速い
それでも generator内包表記で充分なのは確かだが
0490デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:08:29.63ID:Y24NtUEO
>>488
内包表記に比べて遅い、は最近のPythonだとFalseだよ
内包表記に比べて短く書けるわけではない、というのは場合によりTrue
map(lambda x: func(x, 2), arr)と書くよりは
[func(x, 2) for x in arr]と書くほうが短いが、
map(str, arr)とかだったら、
[str(x) for x in arr]より短いから意味がないということもないと思う
list付けてもこの場合はmapの方が短いしね
と言いつつ、関数の呼び出しの形の差でmapを使うか内包表記を使うかいちいち考えるのはめんどくさいので常に内包表記使ってるけど...
0491デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:10:42.73ID:aJFtJ7NQ
>>487
繰り返しになるけど、文字出力と同等の用途なだけ
個人的にフロントで「ちゃんとパース可能なJSON」を解釈できればいい、その程度の用途
あとはfomatの{回避にふと疑問を持ち質問を投げた、それだけこと
というか他でjson.dumpsは普通に使ってるので
こっち({回避の疑問)の方が主ではあります

繰り返しになりますが、何がなんでもformatを使って自己パーサーを作る、なんていう質問意図ではないです
個人用途で、キーや値の変更による成型を考える場合の変数代入や関数化する過程で発生する
json.dumps使用以外の過程を省きつつ
フロントで解釈できる程度の結果を得たい(得た)というだけの話

個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
0493デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:36:29.18ID:wMzkLTJS
>>491
だからそれが正しいと思うならそうすればいい
ただそう考える人はあまりいないと言うだけの話
特に職業プログラマーはチームで作業してることが多いから個人が考える「かっこいい方法」は忌み嫌われて当然
ましてや>>386程度の質問をするレベルじゃあねw
0494デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:40:22.91ID:Y24NtUEO
>>491
「フロントで「ちゃんとパース可能なJSON」を解釈できればいい」のならjson.dumps(obj) 一択
1行でコピペできないという問題も__import__('json').dumps(obj)という書き方で解決された

なぜそこまで自分のコードが信頼できるのか疑問
jsonモジュール(別にjsonモジュールに限らず、他の言語も含む世の中にある名の知れたライブラリ)を書いたプログラマーのほうが
色んな人にソースコードの動作を検証してもらってるし、コード自体も査読してもらってるし、長い時間をかけてそのモジュールを書いているし、
そもそもオープンソースとして公開する時点で優秀なプログラマーの可能性が高い
あなたの言う「スマートなやり方」というのは、「言語/言語のエコシステムの補助を使わずになんとかする方法」なのかな?

「適当な文字出力」と「パース可能なJSONの出力」はハードルが違うからね。
あと、この場合あなたが書きたいのは「パーサ」じゃなくて「シリアライザ」とか「フォーマッタ」と呼ばれる

ぶっちゃけ何度もimportしても構わないからimportは必ずプログラムの頭に書かなくてもいいとか知らなかったことを認めるのが癪で
引っ込みがつかなくなってるのではないかな?
超初心者用のスレなんで、知識が怪しいんじゃないか、というところにツッコミを入れるのもアレだけど、パーサの誤用とか含めて
プライドが高い割には知識が怪しいように思っちゃうなぁ。
0495デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:40:35.67ID:aJFtJ7NQ
>>492
投げた質問が返ってくるまでその質問タスクしか処理できないなんてありませんよ・・
あなたはそうなのかもしれませんけど

>>493
その程度の読解力やレッテル貼りするような人格だと苦労しそう
お察しします
0496デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:43:05.19ID:abuyzRZn
>>481
個人のポリシーでしかないから押し付けるつもりはないが
内包表記も関数型言語からの取入れであり可読性の悪いコードになる
何せコードを右から読まなくてはいけないからね
よって自分は先のmapとこの内包表記は極力使わないようにしてる
forとifとappendでリストにまとめるスタイルが一番しっくりくる
0497デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:43:14.36ID:8FBZ4Sqf
>>474
gitの話が簡単でない用途の例ってますます分からん

"gitで管理するレベルのモジュール"??
管理しないモジュールがあるの?
ファイル1個追加するだけっしょ?
0498デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:48:59.72ID:aJFtJ7NQ
>>494
>importは必ずプログラムの頭に書かなくてもいい
importの場所は主題ではないですよ
そのobjはどこでどうやって成型した・するのでしょうか

>信頼できるのか
繰り返しになりますけど、ただのJSON文字列同等の用途で使っている
という理解だからです
繰り返しになりますが、そうではない、と思うなら普通にjsonモジュールを使っています

個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
0499デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:50:34.06ID:Y24NtUEO
>>496
どこまで複雑な内包表記を認めるかというのは、仰るとおりポリシー次第なところはあるね。
3重内包表記ぐらいまでは書くことあるけど、書くときはノリノリで書いてシンプルに纏まったぜ、やった、って思っても、
後で2重目のループの処理を修正したいときに地獄を見ることがあったりするのは事実。
内包表記はその存在自体がややこしいので一切認めません、というのもポリシーとしては普通にありだと思う。

関数型言語からの取り入れという事実を後押しする形になるのだが、
数式を読み慣れてると、内包表記やmapは数式に近い形なので、逆に可読性は悪くない、と思うケースも多いのだよなぁ
リストの中身を2乗して全部足すみたいな場合とかね。forループで手続き的にやる方が見通しが悪くなると個人的に思う。
0500デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:58:01.95ID:Y24NtUEO
>>498
status = 200
error = None
とかいう値が入ってるとして
__import__('json').dumps({'status': status, 'error': error})
で終わりなんだけどな
result_obj = {'status': status, 'error': error}
__import__('json').dumps(result_obj)でもいいし
もちろん
__import__('json').dumps({'status': 200, 'error': None})
でもいい

JSONを書き出すのに、「文字列」なんて概念を持ち出す必要がないのよ
dictがそのままjsonモジュールで妥当なJSONになって各言語のパーサーでそのまま解釈できると考えておしまい
だから、いちいち妥当でない可能性のある「文字列」の状態を考えたくない
0501デフォルトの名無しさん
垢版 |
2020/11/20(金) 22:58:07.55ID:GCIXM+fw
>>475
某言語では
s split("S") map(size) max println
0503デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:02:30.97ID:aJFtJ7NQ
>>500
いやだから(一つとして)その
>とかいう値が入ってるとして
の行数の話をしているだけですよ
statusが500のとき、errorに何かしら入れるとき
どうしますか?っていうだけの話
0504デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:07:40.26ID:Y24NtUEO
>>503
え、マジでわからんの?
statusが500だったりerrorになんか入っているときも書き方同じじゃん?
じゃあさ、formatを使う場合と__import__('json').dumpsを使う場合でコードを並べて、
formatの方がここが優れていると教えてくれよ。
逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、formatだと余計なエスケープ処理が入ると思うけどなぁ。
0506デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:12:44.36ID:998hZ133
>>481
ナゼこう左から右へと流れるように書けないのかと悩むこと小一時間、

 s.split(’S’).map(len).max()

>>478,496 に賛同するに至る

 >>478
 > プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
 >>496
 > forとifとappendでリストにまとめるスタイルが一番しっくりくる

これぞPythonスタイルなり
0507デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:17:41.85ID:wMzkLTJS
>>495
> その程度の読解力やレッテル貼りするような人格だと苦労しそう
レッテル貼り?
質問の内容から判断してるんだけど?
読解力とか意味わからんしw

> お察しします
人の事を心配するレベルじゃないことを自覚したほうがいいと思うぞ…
0508デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:20:59.09ID:Y24NtUEO
>>506
C#のLINQみたいにmapとかmaxとかをリストやジェネレータのメソッドとして追加できたらその書き方も出来るのだろうね。
実際、pandasやnumpyでは当該ライブラリで用意しているクラスではそのような書き方ができるような配列ライクなクラスを用意している。
Python言語が生まれた時期が微妙に古いというのが不自然な文法に影響しているかもね。
習いたての頃は、なんでarr.len()じゃなくてlen(arr)なんだ、って思ったもの。
0509デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:26:46.17ID:aJFtJ7NQ
>>504
もう上の方で書いてます
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
result_obj = {'status': 200, 'error': None}
__import__('json').dumps(result_obj)
__import__('json').dumps({'status': 200, 'error': None})

>逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、
入らない用途なので自分の環境下では問題ありません
0511デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:37:51.38ID:Y24NtUEO
>>509
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")

__import__('json').dumps({'status': 200, 'error': None})
を比較して、前者のほうがスマートだと感じるなら、
他の人にも散々指摘されてるが、あなたはおそらく殆どの人が同意できない感覚の持ち主だろう
ゴーイングマイウェイで頑張ってくれ、ぶっちゃけ一緒に仕事はしたくないが

会社の経理のおばちゃんが、計算ミスばっかりするからどうしてかと思ったら、なんと算盤使って紙に向かって計算してて、
「頼むからExcel覚えてExcelでやってくれ」ってお願いしてるんだけど、「私は算盤が得意だからいいの!」って言われてる感じ
0512デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:42:08.20ID:aJFtJ7NQ
>>511
例えばstatusコードを複数吐くとき
どうなりますか
res = '{{"status":{},"error":"{}"}}'
res.format(201,"null")
res.format(202,"null")
res.format(203,"null")
res.format(204,"null")
res.format(205,"null")
__import__('json').dumps({'status': 201, 'error': None})
__import__('json').dumps({'status': 202, 'error': None})
__import__('json').dumps({'status': 203, 'error': None})
__import__('json').dumps({'status': 204, 'error': None})
__import__('json').dumps({'status': 205, 'error': None})
0513デフォルトの名無しさん
垢版 |
2020/11/20(金) 23:48:08.89ID:Y24NtUEO
>>512
複数回出すなら、
import json
json.dumps({'status': 201, 'error': None})
json.dumps({'status': 202, 'error': None})
とするだろうけど
本当に多いなら
res = lambda s, e: json.dumps({'status': s, 'error': e})
res(201, None)
res(202, None)
短く書くというのが目標ならlambdaでもまだ意図は明確だしformatより短いよ。
0515デフォルトの名無しさん
垢版 |
2020/11/21(土) 00:01:48.28ID:TffSxZDq
>>514
ここまで示されててわからんの?煽るだけじゃなくて勉強しようよ。
res = lambda s, k, v: json.dumps({'status': s, k: v})
res(500, 'error', 'hoge')
0516デフォルトの名無しさん
垢版 |
2020/11/21(土) 00:11:54.22ID:RHs1PlgB
>>515
ありがとうございます
キー名はそのまま代入できたのですね!
自分が書いたjson.dumpsを使った方ではlambda式では長くなってしまい
結局formatでいいか、みたいな経緯がありました
あとは辞書の結合やショートカット機能使えない環境化をでも使ってみたいのでそのあたりを工夫してみようと思います!
0517デフォルトの名無しさん
垢版 |
2020/11/21(土) 00:15:10.92ID:TffSxZDq
えぇぇ、
いやまぁ納得してもらえたならいいけど、、、
良かったね
0518デフォルトの名無しさん
垢版 |
2020/11/21(土) 01:07:30.25ID:v5QqbOTJ
そうか
lispのコードをさんざん見てきた私は
内包表記もmapも普通なんだけどな
分かりにくい人がいるというのを認識した
0519デフォルトの名無しさん
垢版 |
2020/11/21(土) 01:09:15.76ID:5FVo37Wp
普通にhttpレスポンスを生成する関数の中でモデルをjson化してれば
json.dumpsのところだけをlambdaにしたいなんてことにはならないと思うんだけどなぁ
0521デフォルトの名無しさん
垢版 |
2020/11/21(土) 07:22:59.30ID:Va5Vhbzu
こんにちは。

pandasのdataframeのデータから、別途用意されたカラム名リストの
カラムだけ取り出す方法をご教授願います。

例:

df

はa〜zの列がある。

list = ('d', 'g', 'h')

にあるカラム名の列だけ取り出したい。

(listの中身はその都度変わって数も多い。)

よろしくお願いします。
0522521
垢版 |
2020/11/21(土) 07:40:18.66ID:Va5Vhbzu
リストは()じゃなくて[]でした。
0524521
垢版 |
2020/11/21(土) 08:22:43.36ID:Va5Vhbzu
自己解決しました。

data = df[df.columns.intersection(list)]
0525デフォルトの名無しさん
垢版 |
2020/11/21(土) 10:37:59.41ID:TffSxZDq
>>524
細かいことだが、
listという名前は上書きしないほうが良い(list関数が使えなくなる)
のと、
listの要素がcolumnsに必ず含まれているのが保証されるなら、
data = df[list]だけでいけるよ
0526440
垢版 |
2020/11/21(土) 12:18:46.35ID:jQLdetle
VSCode で、Microsoft の拡張機能を入れてない香具師とか、
git のプルリクを知らない香具師とか、
JSON ではなく文字列を結合する香具師とか、問題外

文字列の結合を認めたら、SQL・HTML タグを文字列で書いたりして、SQL インジェクションされる

新技術を学べない、老害に多い

日本人は植物油を多く使うから、脳にアミロイドが貯まって、新しく記憶できない。
全員が痴呆症w
動物油なら、こういう事はない

プルリクもKENTA が言ってるから、マコなりの学校にも、グループ学習がある。
グループ学習やっていない香具師は、採用されませんって。
でも、高い授業料を払って、グループ学習する意味はないと反論する人もいる

Ruby on Rails なんて、Rails Way・レールに乗る。
我流・レールに乗っていない方法は、すべて却下される

YouTube で有名なRubyist、伊藤淳一の動画でも、コードレビューしてる
0529デフォルトの名無しさん
垢版 |
2020/11/21(土) 16:32:50.83ID:RuZftilT
macOS での python の質問もここで良いのですか?それとも他に板やスレがありますか?
0533529
垢版 |
2020/11/21(土) 23:22:52.56ID:yoIvpsjT
>>532 その様な名前の板は今はないようです。

色々と探しましたが、他に適当な場所がなさそうなのでここで質問させてもらいます。

http://codepad.org/4R0nolza

の python コードが linux や FreeBSD では正常に動くのですが、macOS では動きません。
問題なく起動してウインドウは表示されるのですが、"Run" ボタンを押すと、
----------------------------------------------------------------
gi.repository.GLib.Error: g-io-error-quark: 子プロセス“/bin/ls”の起動に失敗しました: Failed to fdwalk: Too many open files in system (0)
----------------------------------------------------------------
となり機能しません。
理由や解決方法が分かる方がいましたら、よろしくお願いします。
pygobject3 と gtk+3 は brew install してあります。
maxfiles は 256 から 500000 に増やしても変わらないので関係ない様に思います。
macOS を持ってる方が居ましたら、同じ様に動かないか、試して貰えると助かります。危険なコードではないです。
0536529
垢版 |
2020/11/22(日) 03:46:53.92ID:cFZbur5B
>>534
情報どうもです。なるほど、バグでしたか。では、待てば治りますかね。
そうとは知らず、だいぶ時間を費やしてしまった。。。
0537デフォルトの名無しさん
垢版 |
2020/11/22(日) 16:28:51.73ID:G9NcntIf
>>129
MACの一部のプログラムはpythonで動いてて、それが昔から変わってないからなはず
だからアンインスコするとOSが正常動作しなくなる場合があるので注意
0538デフォルトの名無しさん
垢版 |
2020/11/22(日) 19:43:13.90ID:ybcOLacK
>>518
lispの内包表記って、どんなの?
0542デフォルトの名無しさん
垢版 |
2020/11/23(月) 16:16:30.12ID:8ahwCiT0
俺もjavascriptというかGASと行き来してるんだがセミコロンの有無とかごちゃごちゃになる
0543デフォルトの名無しさん
垢版 |
2020/11/23(月) 17:33:21.21ID:QPYZ0Uk0
質問です
古いバージョンのPython(3.6など)と新しいバージョンのそれ(3.9など)が
同じパソコンにインストールされている時に、
バージョンを指定してコマンドプロンプトで起動するには
どうすればよいでしょうか?
0546543
垢版 |
2020/11/23(月) 18:24:55.81ID:QPYZ0Uk0
>>544
>>545
分かりました
ありがとうございました
0547デフォルトの名無しさん
垢版 |
2020/11/23(月) 19:38:33.80ID:ILFQzaXV
py launcherにチェック入れてインストールしてあるなら
py -3.6 〜
py -3.9 〜
のようにバージョン番号指定で起動できる
0548デフォルトの名無しさん
垢版 |
2020/11/23(月) 20:56:03.18ID:uZZUCgAn
>>543
Windowsならpy -3.6 もしくはpy -3.9で起動できる
仮想環境もpy -3.9 -m venv envでつくれる
0550543
垢版 |
2020/11/24(火) 19:13:50.73ID:HZvvV0Lc
やってみたら出来ました
答えてくれた方、ありがとうございました
0552デフォルトの名無しさん
垢版 |
2020/11/24(火) 19:22:37.02ID:1r1WUQcO
pythonのimport周りはガチでゴミ
0554デフォルトの名無しさん
垢版 |
2020/11/24(火) 23:51:24.27ID:rjI7LKiS
カタカナの伸ばし棒がすべて半角ハイフン-になっているとして
・コ-ヒ- → コーヒー
・コ-ヒ--砂糖入り- → コーヒー-砂糖入り-
・カフェオレ-ミルク- → カフェオレ-ミルク-
こういうのってPythonで可能?規則性がない場合出現しうるあらゆる単語を手動で対策しないと無理かな
-の前がカタカナなら伸ばし棒に変換ってので単語としては成立するけどカフェオレーミルクーはお手上げ
0556デフォルトの名無しさん
垢版 |
2020/11/25(水) 00:20:42.57ID:e2GmmQnc
規則性ないから辞書がないと無理でしょ
カフェオレーミルクーというメニューがないと知らないといけないから
0558デフォルトの名無しさん
垢版 |
2020/11/25(水) 09:34:58.20ID:RkyjIoNj
>>554
>カフェオレ-ミルク-
これはどういうこと?カフェオレにさらにミルクが入ってるの?
それとも、カフェオレとはコーヒーにミルクが入ったものですよっていうこと?
その辺が曖昧だよね
0559デフォルトの名無しさん
垢版 |
2020/11/25(水) 10:12:51.09ID:BL1+yQyO
主題副題分割なら、まずは全部の箇所で分割して、
コ -ヒ-
これはハイフンを閉じ括弧の亜種として対になってるから第一次判定に合格、
そしてコが主題でヒが副題、
しかし文字数判定であり得ない(主題副題共に1文字)から、主題でなければ副題でも無い、とすりゃいい

***

1 コ -ヒ--砂糖入り-
2 コ-ヒ --砂糖入り-
3 コ-ヒ- -砂糖入り-
4 コ-ヒ-- 砂糖入り-

1番はそれっぽいが「ハイフンは二つ重ならない」というルールで却下
2番も「副題主題はハイフンからは始まらない」として却下
4番は問題外
残るは3番は副題のハイフンが括弧対を形成しているので合格
0560デフォルトの名無しさん
垢版 |
2020/11/25(水) 10:20:06.38ID:BL1+yQyO
丁度いいのがあった
フル-ル・ド・ラパンのハ-ブティ--ローズヒップ-
ttps://pbs.twimg.com/media/C-kqXNUUQAMoc-5.jpg
0561デフォルトの名無しさん
垢版 |
2020/11/25(水) 10:25:03.24ID:DoFzLzHw
後ろの-砂糖〜-とかのパターンは限られてそうだから、
こんな感じでだいたいはできないかな?
(?<!-)-(?!($|[ミ砂]))
0565デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:06:14.77ID:BL1+yQyO
どうにかするルールを考えればいいじゃん

でも今回は、
炭酸コ-ヒ--クリ-ム- は「ハイフンは二つ重ならない」のルールで何とかする
C-1000タケダ-ミルク- は「主題副題が短すぎる」のルールで何とかする
0566デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:17:21.18ID:BL1+yQyO
主題副題分割なんだから、多分こういうのも念頭にあるんじゃないのか
ギャラクシ-エンジェル-激レアフォ-チュンクッキ--
本当のところの用途は知らんけど
0567デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:22:18.15ID:bqcTiXDb
本当の用途は歌手名/曲名なんじゃないか
あと炭酸コーヒーは美味しくないから法で規制した方がいい
0568デフォルトの名無しさん
垢版 |
2020/11/25(水) 13:50:19.95ID:B0nrdhk4
プリティ-プロジェクトの孤高のビュ-ティ-プリンセス、るかにゃんこと姫乃川琉歌のクリスマスライブ衣装-にゃっぱれ恋泥棒バ-ジョン-

ちょっと規則性見いだせなかったわ
0569デフォルトの名無しさん
垢版 |
2020/11/25(水) 14:22:40.62ID:BL1+yQyO
「装-」の「(漢字)ー」のパターンは無いとしていい
漢字の後に長音が続くパターンだ

すると、それはハイフンでなければならない
さらに、それが末尾でないなら、対括弧の開始ハイフンになる
0571デフォルトの名無しさん
垢版 |
2020/11/25(水) 14:31:59.92ID:BL1+yQyO
1、主題副題の文字数が短すぎる
2、副題の後に文字があるパタンは実は副題ではなく、全文は分割できない
 つまり、閉じ括弧相当のハイフンの後に文字は来ない、故に分割してはならない
0572デフォルトの名無しさん
垢版 |
2020/11/25(水) 15:47:17.11ID:RoX/Ogzq
ゴ-ヤ-チャンプル-
ゴ-ヤ-マ-ボ-
ゴ-ヤ-マヨバタ-

ゴーヤ-チャンプル-、ゴーヤ-マーボ-、ゴーヤ-マヨバタ-なのか
ゴーヤーチャンプルー、ゴーヤーマーボー、ゴーヤーマヨバターなのか

どちらとも取れる単語がある限りは辞書使っても100%は無理なので
おおよそいけそうなルールを自分で決めてあとは諦める
0573デフォルトの名無しさん
垢版 |
2020/11/25(水) 17:08:34.67ID:CO7swdP4
コーヒーくらいジャンルが限定されてれば末尾がーのものも限られるだろうからコーヒーとか特定ワードで引っ掛ければと思うがノンジャンルなら厳しいかもね
0574554
垢版 |
2020/11/25(水) 19:06:50.76ID:Sppz/PEX
いろいろレスサンクス
やはり当初の作戦通りン以外のひらがな、カタカナの後は伸ばし棒で基本処理するよ。
クリ-ム、ミルク、ローズヒップの後は-にすると、手前に来る単語で徐々に狭めていく。ジャンルが近い頻出単語はこれで潰せる
>>572こういうのがほんとに厄介、どちらの可能性もある単語。もう入力した本人に聞くしかないレベルのものとかもある
人間が判断するようなことをPythonにやらせるのはやはり難しいか
0575デフォルトの名無しさん
垢版 |
2020/11/25(水) 19:11:55.38ID:nXT1AK4P
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

強姦と窃盗するために生きてるゴミw
クソチョンw
0580デフォルトの名無しさん
垢版 |
2020/11/25(水) 20:50:30.10ID:V89kYTjd
本件のように、一件の間違いも許されないデータ処理に機械学習は適さないと思う
0582デフォルトの名無しさん
垢版 |
2020/11/25(水) 21:47:27.42ID:Sppz/PEX
>>579
自分も機械学習ってそういうもんなのかと思ってた
いまだに機械学習がなんなのかもわからんし使ったこともない
0583デフォルトの名無しさん
垢版 |
2020/11/25(水) 22:14:39.20ID:e2GmmQnc
>>580
そもそも人間でも正答率100%じゃないこの手の問題は機械学習向けでしょ
ゴーヤーチャンプルーは沖縄料理だから日本人大体知ってるけど、人によるし、
マリ-ゴールド-コ-ヒ-とかだと、
マリ・ゴールド・コーヒーという名前のものがあるのかないのかで全然答え変わってくるし、
判定者(判定システム)がそういう名前のものがあるかないのかは知りようがないのでは?
まあ、どうしてもルールベースもやってくれ、と言われたなら仕方ないからルールは考えるけど、
辞書や機械学習なしにやるのは筋悪案件なのには変わりない。
0584デフォルトの名無しさん
垢版 |
2020/11/25(水) 22:47:17.02ID:GINPOaUE
答え(勝ち負けとか正解不正解)が分からなければ機械学習出来ない
何か機械学習を勘違いしてない?
何千何万何百万と間違って最適化していくのが機械学習
正解不正解の判定が出来なければ学習不可能
答えが分かるならこの問題は解決する
学習型spamフィルタみたいに人が教え込んで辞書なりフィルタ定義を構築していくのは機械学習とは違うぞ
0585デフォルトの名無しさん
垢版 |
2020/11/25(水) 23:15:22.99ID:7hZTXx85
機械学習でやってみたら少し面白そうなテーマではある
'-'が'-'なのか'ー'なのかを間にある文字同士の結びつきで当てる分類タスクになるのかな
0586デフォルトの名無しさん
垢版 |
2020/11/25(水) 23:47:21.82ID:zhDDaAJr
>>580
>>572みたいな表記揺れがあったらどうしようも無いだろ
正解すらあるかないかわからんのに間違いが許されないって言われても困るw
0588デフォルトの名無しさん
垢版 |
2020/11/26(木) 00:27:20.76ID:IMBwVNgm
本について質問です
友人にPythonスタートブックを勧められたのですが、
他にも良い入門書ってありますか?
0589デフォルトの名無しさん
垢版 |
2020/11/26(木) 00:38:20.52ID:Ahy8UMnM
>>588
おすすめの本じゃないが
自分は市の図書館で入門書を5冊くらい借りて覚えた
個々人で合う合わないあると思うが数でカバーできる

買おうと思ってる本も図書館にあるなら借りてみるといい
0590デフォルトの名無しさん
垢版 |
2020/11/26(木) 01:03:27.64ID:nrM3g88W
図書館使う人とかあまり好きになれない。身銭使って学べない奴は薄っぺらいんだよなあ。
0591588
垢版 |
2020/11/26(木) 01:04:05.68ID:IMBwVNgm
>>589
ありがとうございます
検討してみます
0592デフォルトの名無しさん
垢版 |
2020/11/26(木) 01:31:10.09ID:MXca/5hQ
>>589
pythonは人気がありすぎて、図書館で借りようにも、なかなか読めないよw
まぁ、多言語経験者なら公式ドキュメントを読んだほうがよほどためになるとおもうし、
わざわざ自腹きって本を買って読まなきゃならないものでもないな。
立ち読み程度で十分。
0593デフォルトの名無しさん
垢版 |
2020/11/26(木) 01:31:12.38ID:X4oHX3Yn
>>584
スパムメールのベイジアン学習も機械学習の一つの手法だと思うが
違うとしたら境目はなに?
大体、「答えが分からなければ機械学習できない」と、「人が教え込んでいくのは機械学習じゃない」は矛盾してない?
0594デフォルトの名無しさん
垢版 |
2020/11/26(木) 02:02:57.72ID:KChL8khM
>>592
自分の住んでるところでも貸し出し中は多かったよ
貸し出し中でも貸し出し予約出来るが
貸し出し中じゃないものから選んで借りた
ネット経由で最寄りの図書館受け取りだし気軽に借りれる

最近は逆引き系の書籍を借りてみたがそこそこ使えそうなの購入検討中
0595デフォルトの名無しさん
垢版 |
2020/11/26(木) 13:43:41.02ID:BC4iA6x5
>>590
別に金をけちるためと言ってるわけでもなく、図書館の正当な活用方法が何で気に入らないのか分からないが、お前のその決めつけも薄っぺらいものだと思うぞw
0597デフォルトの名無しさん
垢版 |
2020/11/26(木) 14:18:20.57ID:dGdApgXM
pythonの入門書とか時間と金の無駄
無駄なものにお金をケチって有意義なものにお金を使うのは賢い選択
0598デフォルトの名無しさん
垢版 |
2020/11/26(木) 14:22:28.77ID:pWRU7DEh
そりゃPythonで食っていくぞーって人なら本買えよって思うけど、このスレはそんな人ばかりじゃないから
0599デフォルトの名無しさん
垢版 |
2020/11/26(木) 14:23:24.62ID:ye1vQ6Qi
学び方は人それぞれ
本をじっくり読み込むスタイルが合う人もいれば、
キーボードを叩きながらPC画面で学べるオンライン学習サイトが合う人もいる
大切なことは毎日続けること
人は三日プログラミングから離れると、自分の書いたコードすら読めなくなる
0600デフォルトの名無しさん
垢版 |
2020/11/26(木) 14:27:01.12ID:l+ppMWJa
オンラインにも情報転がってるし金を出す意味はない
時間は惜しみなく出せ
0601デフォルトの名無しさん
垢版 |
2020/11/26(木) 15:41:49.21ID:nrM3g88W
愚者はそうやって時間を捨て老いていく。
賢者は金を払い、効率よく順序よく学びスキルを身につける。
0602デフォルトの名無しさん
垢版 |
2020/11/26(木) 16:42:01.95ID:D+V6U/tS
本だけ買い揃えて満足してそう
0604デフォルトの名無しさん
垢版 |
2020/11/26(木) 16:47:36.29ID:xBQH8cKm
本読む価値があるのって設計とかCSの本とかじゃないの
言語単体なら本買うより公式リファレンス見た方がマシ
0605デフォルトの名無しさん
垢版 |
2020/11/26(木) 16:49:19.09ID:vejzC3OQ
自称賢者はカネさえ払えば効率が良いと考えているようだな
取捨選択すらできないで効率もへったくれもないと思うんだが
0607588
垢版 |
2020/11/26(木) 17:11:15.74ID:IMBwVNgm
書き込みとかしたいのでやはり買うことにしました
図書館を勧めてくれた方ごめんなさい
SBクリエイティブの「Python超入門」にしました
0608デフォルトの名無しさん
垢版 |
2020/11/26(木) 17:44:52.48ID:StrviZCw
私、本に書き込む人って嫌い
0609デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:17:13.29ID:nrM3g88W
>>605
初心の話をしてるだよ、右も左もわからない状態で取捨選択できるような人間少ないだろう。
多少過激な物言いをすると直ぐに時系列を理解しないこーゆう愚者が現れ恥を晒す。
0610デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:22:28.42ID:T0UZuAda
>>600
オススメのサイトとかある?
0611デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:24:27.19ID:ko8YYDT7
Pythonの入門書を選ぶのは結構難しいよな
とある事情で他人に勧める参考書を探しているのだけれども、
基本を押さえていて、リファレンス的になりすぎず、かといって変に応用だけやるみたいにもなっておらず、間違いがない本を探すのはかなり難しかった。
他言語の経験がある人なら公式チュートリアル読めで終わりなんだけどね
0612デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:41:18.80ID:fjpYUDuO
図書館にPythonの本は何冊かあるんだけど普通に10年前くらいのあるなぁ…
2015年出版とかの本は使えるのだろうか?
0613デフォルトの名無しさん
垢版 |
2020/11/26(木) 18:42:37.49ID:YYN7U/8V
>>611
だから図書館で複数纏めて借りたんだけどね
筆者毎に薦める開発環境も入り方も全く違うから
自分に合うのが1冊あれば他は返却するつもりだったし
合うのが無くてもそれぞれ読み合わせるつもりだった
0614デフォルトの名無しさん
垢版 |
2020/11/26(木) 19:11:36.57ID:l+ppMWJa
>>610
めちゃくちゃ叩かれそうだけど書く
paizaとqiitaを往復するのがいいと思う
paizaのスキルチェック受けながらわからないところを調べていく
pythonでなにか作りたいとかなければこれがベストなんじゃないかな
課題を与えてもうのはとても良いことだと個人的には思う
0615デフォルトの名無しさん
垢版 |
2020/11/26(木) 19:20:10.25ID:zyTAEVOK
>>611
なにを勉強するにも入門書ってあうあわない+良し悪しがあってむつかしいねぇ

>>613
複数まとめて借りたってちゃんと最初からかいてたっけっか?
0618デフォルトの名無しさん
垢版 |
2020/11/26(木) 20:25:58.77ID:Su7UQCea
>>609
だから自分で調べるなりここで聞けばいいだけだろ?
金出して教えを請うたりしたところで、大した違いはない
各種選択肢の中から結局自分で解決方法を選ぶことになるんだから

金出せば簡単にすむと思ってる輩には難しいのかもしれないけど、
自分でやろうとする気のないのは何やってもだめなんだよ
0619デフォルトの名無しさん
垢版 |
2020/11/26(木) 20:48:24.82ID:nrM3g88W
>>618
論点がズレてるから絡まなくてよい。
読書はよい、このように思考がバグってる奴の相手をしなくてすむからな。洗練された筆者と時空を超えて対話するツールである。
0621デフォルトの名無しさん
垢版 |
2020/11/26(木) 21:55:47.46ID:H5c28v3A
自身がバグっていないと証明することは不完全性定理により不可能なんだっけ

賢い俺らは自身と外界の両方から情報を得てアップデートしていこうな!
0623デフォルトの名無しさん
垢版 |
2020/11/26(木) 22:40:02.36ID:NeNbHCSj
>>614
paizaってスキルチェックなんかもあったんだ…知らなかったなぁ…ありがとナス!
0625デフォルトの名無しさん
垢版 |
2020/11/27(金) 13:46:54.91ID:m0c4MBXJ
>>619
> 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
( ( ( ( ( (゚∀゚) ) ) ) ) )ユンユンユーン
0626588
垢版 |
2020/11/28(土) 12:23:46.13ID:bhBilOI2
この本コメントの書き方が載ってない… 信じられない…

まあ#で書くって知ってはいるけど
0630デフォルトの名無しさん
垢版 |
2020/11/28(土) 21:27:25.17ID:73Gx5wYa
純粋の母数の問題じゃねえか?
スタージョンの法則で90%はゴミ、
ただし業界のピラミッドがでかけりゃデカいほどクズ本は巷に溢れる
Haskell本の少なさを見てみろ

ネコも杓子もpython入門書を書いてる、
圧倒的なまでに量産されてる、
それが原因だ
0631デフォルトの名無しさん
垢版 |
2020/11/28(土) 21:28:57.39ID:Qx/oNDgY
プログラミング自体の初心者が多いので、
畢竟、入門書もプログラミング自体の基礎から始める必要があるんじゃないかねぇ
0632デフォルトの名無しさん
垢版 |
2020/11/28(土) 21:32:14.00ID:mMC1knSV
>>629
わかりやすいぞ
これほどわかりやすい言語は他にない
C・Java・JavaScript・Ruby・Go…これらの言語に挫折してきた俺がPythonだけは覚えられたからな
0633デフォルトの名無しさん
垢版 |
2020/11/28(土) 22:26:16.41ID:FGpMIdZG
「みんなのPython」など、多くの本の質が低下した

なぜ、文法が減ったかと言うと、
Jupyter Notebook, Pandas など、ライブラリの説明が増えたから

一方、Ruby では「たのしいRuby」1冊で、十分に文法が説明されている
0634633
垢版 |
2020/11/28(土) 22:36:37.55ID:FGpMIdZG
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない

最初に、Python, PHP を学べとは、絶対に言わない。
将来的に、Pythonをやりたいからと言って、Pythonから始めてはいけないって言ってる

つまり小学生が将来、大学へ行きたいからと言って、
いきなり大学の試験勉強から始めてはいけない

小学生は、小学生の勉強から始めなければならない。
次に中学生になれば、中学生の勉強をする。
そして高校生の勉強をする

つまり、勉強の順番が大切
0635デフォルトの名無しさん
垢版 |
2020/11/28(土) 22:55:57.26ID:9//L8RlG
>>630
母数警察です👮🚓
母数は分母のことではありません
統計用語としてのparametersの訳です
詳しくはwikipediaなどを引いてみてください
0638デフォルトの名無しさん
垢版 |
2020/11/29(日) 10:04:01.50ID:GnQH3nQR
Python で デスクトップアプリwwww
とか言われてるの見て、違うんかなと思ってたけど、最近OKINI の MyPaint ってソフトのGITHUB みたらほぼ Python で書かれてたわ
ちゃんと快適に動作するんやね
PyQt とか、PyGTK とか、 Native Library をゴリゴリによんでるっぽいが、それが楽なのは良いよね
0639デフォルトの名無しさん
垢版 |
2020/11/29(日) 14:49:24.35ID:EaJiwQmK
>>623
paizaスキルチェックは答えを公開してはいけない規約のせいで良いコードが見れない。
paizaスキルチェックはスキルを伸ばし終えた人が就職のためにやるものだと思う。

スキルを伸ばしたいならCheckiOで冒険するのがベストだゾ
https://checkio.org/

checkioでは問題を解いた後、Best Solutionsで他の人が書いたコードで高評価が多かったものが見れる。
そういうのを読んでいけばスキルが向上していくと思うわ。
0640デフォルトの名無しさん
垢版 |
2020/11/29(日) 15:42:13.31ID:nZSW4pQM
じゃあ最初からいいモノだけを見せて純粋培養すればもっと効率よくなるじゃん
自分で解くだけ時間の無駄じゃん
0643デフォルトの名無しさん
垢版 |
2020/11/29(日) 17:59:19.66ID:QDwVKtUj
>>610
<5分で始めるクリップボードにコピーしたテキストを検索>
退屈なことはPythonにやらせよう編

#! python
import webbrowser, sys, pyperclip
if len(sys.argv) > 1:
# この下の1行は半角スペース4個分あけてから書く(半角スペースを開けなかった時のエラーメッセージは"IndentationError: expected an indented block")
keyword = ' '.join(sys.argv[1:])
else:
# この下の1行は半角スペース4個分あけてから書く
keyword = pyperclip.paste()
# ttpsをhttpsに変更して使ってね
webbrowser.open("ttps://www.deepl.com/translator#xx/ja/" + keyword)
webbrowser.open("ttps://stackoverflow.com/search?q=" + keyword)
webbrowser.open("ttps://qiita.com/search?q=" + keyword + "&sort=like")
webbrowser.open("ttps://teratail.com/search?q=" + keyword)
webbrowser.open("ttps://www.google.com/search?q=" + keyword)
# ttps://duckduckgo.com/bang_lite.html

# Automate the Boring Stuff with Python > Chapter 11 – Web Scraping > Step 3: Handle the Clipboard Content and Launch the Browser
# ttps://automatetheboringstuff.com/chapter11/
# RUNNING PROGRAMS
# ttps://automatetheboringstuff.com/2e/appendixb/
# 翻訳版:退屈なことはPythonにやらせよう ――ノンプログラマーにもできる自動化処理プログラミング Al Sweigart 著、相川 愛三 訳
0644デフォルトの名無しさん
垢版 |
2020/11/30(月) 12:39:15.63ID:79yVLdeW
Tweepyで3-leggedOAuth認証とAccessToken,AccessTokenSecretの取得方法教えて
0645デフォルトの名無しさん
垢版 |
2020/11/30(月) 14:02:35.50ID:wCS2S4dQ
押忍
iniファイルの読み出しに付いて教えてほしいです

URLをブラウザからコピーするとURLエンコードされた状態でコピーされます
これをそのままiniファイルに貼り付けると、configparserで読み出すときにエラーになってしまいます

[example]
url = https://example.com/%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
ini['example']['url']
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 1255, in __getitem__
return self._parser.get(self._name, key)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 799, in get
return self._interpolation.before_get(self, section, option, value,
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 395, in before_get
self._interpolate_some(parser, option, L, value, section, defaults, 1)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 442, in _interpolate_some
raise InterpolationSyntaxError(
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/'


今は仕方なく適当なサイトでURLデコードして貼り付けてますが、結構な手間です
手間かけずに巧くやる方法はないでしょうか

ちなみにデコードすると以下になります
https://example.com/あいうえお/abcdefg/
0649デフォルトの名無しさん
垢版 |
2020/12/03(木) 22:55:54.00ID:KIgHVg2T
とあるサイトでrequests.postでうまく投稿ができない

ポストすると
投稿成功のときは”投稿に成功しました”
投稿内容が不正だったときは”投稿内容を確認してください”
というhtmlが返ってくる
pythonのrequestsから投稿するとこの”投稿内容を確認してください”が返ってくる

ブラウザ側でも試したところクッキーを消したときにだけ同じ投稿ミスになることは確定だが
”投稿に失敗しました”ではなく”投稿内容を確認してください”というエラー表示に糸口がありそうな気がする
s = requests.Session()でs.post()とやってみたけどやはりポスト内容が反映されていない
headersつけたりもしたけど同じ
ブラウザからajaxでの投稿には成功
パラメータを.encode("utf-8")したり
dataにjson.dumpsでやってもだめだった

他のサイトでは大抵sessionの問題だけで普通にrequests.postでできるけど
そのサイトではなぜか上で書いたようにいろいろやってもことごとく投稿ミスする
曖昧な情報しかだせないけど、他に考えられる要因があれば教えてください
どうせcookie周りの問題だと思うけどsession.cookiesで確認した内容と
ブラウザで確認したcookieにそう変わり無かったしお手上げ状態
0651デフォルトの名無しさん
垢版 |
2020/12/03(木) 23:39:07.22ID:Glofd6fS
>>649
1. Chrome -> デベロッパーツール -> ネットワークタブを開いて成功するリクエストを投げる
2. ネットワークタブから該当のPOSTリクエストをCopy as cURLでコピる
3. ターミナルにペーストしてcURL使ってPOSTリクエストを投げる
(5chみたいに重複ではじかれる仕組みがあるならリクエスト内容を変えること)

まずはこれで切り分け
cURLでもリクエストが成功するなら
その内容を徐々に削っていけば最小限必要なものが何か分かる

でそれをpythonに実装する
0652デフォルトの名無しさん
垢版 |
2020/12/03(木) 23:44:55.74ID:KIgHVg2T
>>650-651
パラメータは成功したものをそのコンソールでコピペしてるからタイプミスはないとして
そのパラメータも簡単で、idとnameとcommentとnonce(3文字の数字)だけだった
(リダイレクトもないタイプだったのでpreserve logする必要もなかった)
そのnonceに対応する値もパラメータには無かった
簡略して書くと文字通りこんな感じのパラメータをポストしてるだけだった
prm = {"id":"id","name":"name","comment":"comment","nonce":"123"}
(もちろん重複エラーを出されないようにポストするときにはポスト内容を変えて何回もテストしてる)
数字認証にもタイムアウトがあると思って、ブラウザでサイト開いて数字をメモしてpython側で投稿テストした

書いてて思ったけど、もしかするとその数字認証の数字発行のタイミングとセッションに関係性があるのかもしれない
(発行された数値から作られたcookieを使う必要?)ので
それで試してみるd
0653デフォルトの名無しさん
垢版 |
2020/12/04(金) 00:11:56.59ID:V5csDP6P
>>652
Copy as cURLでCookie含むヘッダーも全部コピってくれる
パラメータだけじゃなく一連のHTTPのリクエスト/レスポンスを見るようにしないと原因わからないよ
0654デフォルトの名無しさん
垢版 |
2020/12/04(金) 00:55:14.15ID:mbGy2PTH
>>653
すまn書き忘れたがそれでコピーしたヘッダーとかポストパラメータを整えて
まずajaxで投稿成功したものを、pythonにて(header設定の有無など)投稿テストしてる


とりあえず解決した
(python側のセッションと依存関係のない)ブラウザで開いた問題のサイトを開いて得た認証数字とcookieを使って
python側のrequestsでそのcookieを設定しつつその認証数字をpostしたところ
投稿に成功した
どうやらcookieと数字認証を紐づけしてセッションとして扱うという
そのサイトの仕様だったっぽい
ありやした
0655デフォルトの名無しさん
垢版 |
2020/12/04(金) 03:07:55.96ID:2+VKdPy1
opencvのセットアップ本当にめんどくさくてワロタwww
散々漁った挙げ句ビルドツール揃えてgtkフラグ立てて自分でビルドしろとかなんじゃそりゃwwww
0658デフォルトの名無しさん
垢版 |
2020/12/04(金) 11:36:09.84ID:J43e5p8N
3.5サポート終了か

3.6終了されるとヤバいんだよなあ
深層学習の色んなモジュールで安定してるのが全部ダメになる
0660デフォルトの名無しさん
垢版 |
2020/12/04(金) 18:19:21.77ID:huRYsfdX
Pythonは3.3のyield fromで完成した
それ以降はどうでもいい機能追加ばかりで言語の簡潔さが損なわれる一方だ
0663デフォルトの名無しさん
垢版 |
2020/12/04(金) 18:57:25.08ID:0C1YXDY5
趣味レベルでしかプログラミングしないから遅延評価?とかジェネレーター?って使ったことないわ
使いみちがイマイチ思い浮かばないんだけど何に使ってんの?
0666デフォルトの名無しさん
垢版 |
2020/12/05(土) 06:15:08.82ID:FCSL7Haz
ジェネレータは動作テストなんかで簡易的なステップ実行をさせる時に便利
コマンドラインでnext()を打つたびに一個ずつデータが返ってくるから
0668デフォルトの名無しさん
垢版 |
2020/12/05(土) 12:40:24.70ID:Na39OKS5
ブログ書いてたら彼女と無料で海外留学という名のデートに行けた話【影響力やばい】
https://www.youtube.com/watch?v=Y8Q1z3Mi7BQ
若いうちから人を雇ったり、任せるクセをつけるべき理由とは?
https://www.youtube.com/watch?v=6yAvDQxhldI
【対談】インフルエンサーマーケティングに300万円突っ込んでみた結果...
https://www.youtube.com/watch?v=AMjWD0F8PLQ
収入を上げたければ、自分の影分身を作るべし
https://www.youtube.com/watch?v=V3Kc-lUxH88
勉強のために10日間で21個のアプリを作った話【初心者時のプログラミング学習】
https://www.youtube.com/watch?v=JkN5kmR9dgk
学校では教えてくれないことの中にはお宝が眠っている
https://www.youtube.com/watch?v=oq92u9nJ7FY
ブロガーからステップアップしていくために必要なスキル
https://www.youtube.com/watch?v=F6qsOyRIaQE
0669デフォルトの名無しさん
垢版 |
2020/12/05(土) 13:28:53.84ID:ZDhFj9p4
今オブジェクト指向勉強してるんですが
同一クラスの中で関数の継承って出来ないんですか?
抽象化した関数を1つ定義してそこから継承して微妙に役割の違う関数をいくつか生やしたいんですが

class Hoge():
def abstract():
def concrete1(abstract):
def concrete2(abstract):
0671デフォルトの名無しさん
垢版 |
2020/12/05(土) 13:42:39.17ID:ZDhFj9p4
なるほど
それでは大本の処理は同じで細部だけが異なる関数を定義したい場合ってどう書けば良いんですか?
関数ごとに抽象クラス継承した新しいクラス定義するしか無いんですかね?
0672デフォルトの名無しさん
垢版 |
2020/12/05(土) 13:45:09.96ID:En2ZUb0e
>>669
そういう時は関数を受け取る関数を1つ定義して
微妙に違う部分を引数として渡すことが多い
0673デフォルトの名無しさん
垢版 |
2020/12/05(土) 13:46:47.29ID:3OUqO/Qz
Ruby では、lazy を付ければ無限配列も扱える

最初に、無限配列を実体化しない。
必要な所までしか演算しない

p ( 1..Float::INFINITY ).lazy.select{ |n| n.even? }.first( 3 )

出力
[2, 4, 6]
0674デフォルトの名無しさん
垢版 |
2020/12/05(土) 14:28:45.82ID:IToZisS4
結局実装はイテレーター使うようなもんだろ。。そんなクソ機能どうでもええわ
0677デフォルトの名無しさん
垢版 |
2020/12/05(土) 17:20:49.97ID:gZAhFzLL
>>674横レスだが
簡潔にして要点をおさえてるすばらしいレスage
0678デフォルトの名無しさん
垢版 |
2020/12/05(土) 18:10:26.12ID:2n9rdHeb
関数を受け取ってちょっと処理をつけ足したり変更したりした
新しい関数を返すのって、それデコレータって機能の出番じゃないかな
勉強始めたけどちょっと難しくて一時挫折中の機能だわ
0679デフォルトの名無しさん
垢版 |
2020/12/06(日) 11:47:20.63ID:Ki7zJHSL
>>678
デコレータは既存の関数を包む形で別の機能を追加するものなので意図がちょっと違う
メソッド横断的に共通して利用する機能を実装するときに使うのが一般的

@log(level=ERROR)
def foobar():

>>672はデザインパターンで言うテンプレートメソッドを高階関数で実装するやり方
0680デフォルトの名無しさん
垢版 |
2020/12/06(日) 12:52:46.51ID:jZtFYDuX
筋がいいか分からんがメソッド名で引数調整するとか?

def func_core(self,format)
# 処理

def func_csv(self,*args,**kwargs)
kwargs['format']='csv'
self.func_core(*args,**kwargs)
0681デフォルトの名無しさん
垢版 |
2020/12/06(日) 18:07:14.38ID:boBfQzjD
# get image pixel count using opencv
imgCV = cv2.imread(file_name)
height, width, channel = imgCV.shape

height, width, channel = imgCV.shape
AttributeError: 'NoneType' object has no attribute 'shape'

となるんですが、なんでだろう?
前はこのコードで動いていたように思うのですが・・・
0683デフォルトの名無しさん
垢版 |
2020/12/06(日) 19:14:40.59ID:SvaTNPrC
画像読み込みに失敗してる
たから、imgCVにNoneが入っている
0684デフォルトの名無しさん
垢版 |
2020/12/06(日) 22:17:30.03ID:cg3234iv
python 3.7.9
win10
bs4
requests

データ収集中に発生した問題につきお答えいただければ幸いです

<span class =“calcHEADas1”>40</span>

上のようなspanという要素に囲まれた40というテキストがあります。そして下に書かれたものを実行すると空文字が返ってきてしまいました。確かに40というテキストはあるのになぜ空文字が返ってくるのでしょうか。同じ境遇の方いらっしゃいましたら是非知恵を貸していただきたいです。

s = soup.select_one('span[class="calcHEADas1"]')
print(span.text)
0686デフォルトの名無しさん
垢版 |
2020/12/06(日) 22:44:06.26ID:Ki7zJHSL
>>684
spanの後ろにスペース入れて[class=…]としてるから
spanより下位の要素でクラス名が’calcHEADas1’のものを探しにいってる

span要素のクラス名ならスペースを入れちゃだめ
CSSのルール
0687デフォルトの名無しさん
垢版 |
2020/12/06(日) 22:49:17.73ID:cg3234iv
>>685
>>686

お二人方のご指摘通りでした。
恥ずかしい限りです…! 3年くらい勉強してまいります!!
勇気が出ました
0689デフォルトの名無しさん
垢版 |
2020/12/07(月) 13:08:18.23ID:LDzktyL7
全角文字が混じっているだろ。
半角英数字以外はダメ!

Ruby では、

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<span>xyz</span>
<span class="abc">あいう</span>
EOT

elements = doc.css( 'span[class="abc"]' )
puts elements.first.content #=> あいう
0693デフォルトの名無しさん
垢版 |
2020/12/08(火) 12:58:50.73ID:QO/1LqBg
ファイルパスのデータ列のデリミタは何が適切ですか?
カンマはファイル名に入力出来るからダメだし
コロンはドライブ名称にくっついてるからダメだし

ひとまず半角アスタリスクとかクエスチョンマークで妥協してますけどこれでいいんですかね?

パス1*パス2*...*パスn
のような感じです今
0694デフォルトの名無しさん
垢版 |
2020/12/08(火) 13:10:57.97ID:qUjj4bQw
ワイルドカードと被るやん
セミコロンでよくね?
0695デフォルトの名無しさん
垢版 |
2020/12/08(火) 14:02:18.54ID:lZ/QPFbs
unix系ではほんとの文字がファイル名に使えてしまうし
プラットフォーム依存したくないのなら何らかのエスケープした上で適当なデリミタ使えばいいんじゃね?
0696デフォルトの名無しさん
垢版 |
2020/12/08(火) 14:33:43.81ID:CDSUfSjl
>>693
JSONやCSVなど適当なシリアライズフォーマットを選んで配列をシリアライズしましょう
単純な用途にオレオレフォーマットを再発明しても誰も得しないよ
0697デフォルトの名無しさん
垢版 |
2020/12/08(火) 14:39:55.69ID:Xg+JZs6m
普通に、CSV で、カンマ区切りで良い

要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(")があれば、
クォート文字で囲まれるだけ

あ,"a,b"
いう, xy

ファイルに、: ; * などを使うと、バグる。
ハイフン・アンダーバーだけにしておくべき
0698デフォルトの名無しさん
垢版 |
2020/12/08(火) 14:53:31.44ID:O6ovwbXJ
タブ区切りのTSVでいいんじゃないか
そもそも一行に繋げて書く意味あるのか
そしてここは5chなんで正式なデリミタは<>だ
0699デフォルトの名無しさん
垢版 |
2020/12/08(火) 18:55:43.08ID:lpLUbgnY
>>693
普通にCSVでカンマかTSV(タブ区切り)でええやろ
別にファイル名にカンマが混じっててもエスケープするなり

むしろアスタリスクとか変なもん混ぜると後でくそっそ面倒だぞ
(アスタリスクなんて正規表現のワイルドカードと被るから、絶対に揉める)
0700デフォルトの名無しさん
垢版 |
2020/12/09(水) 00:11:56.51ID:f0tiUfmU
質問です

統合開発環境を使うのと、
テキストエディタ+コマンドプロンプトで作業するのとでは
どちらが良いでしょうか?
0701デフォルトの名無しさん
垢版 |
2020/12/09(水) 00:36:04.09ID:XzWvmoKM
>>700
目的、好み、能力などでどちらがよいかは人それぞれ

ただコマンドプロンプトという書き方をしてるところを見ると
IDEを使ったほうがよさそうに思える
0702デフォルトの名無しさん
垢版 |
2020/12/09(水) 01:10:02.17ID:/cMUVFNS
Python入門者ってわけじゃないならPyCharmが開発しやすい
とりあえずやってみたいって感じならAnacondaでJypyterNotebook
VSCodeでやりたいならVSCode
0704デフォルトの名無しさん
垢版 |
2020/12/09(水) 08:10:15.18ID:psoc2su5
プログラミング完全初心者で、初めて学ぶ言語がpythonです。pycharmを使って勉強しています。
指定された任意の時間で動作するプログラム(アラームのようなもの)を作っており、自分のPCでは期待通り動く状態まで持っていくことが出来ました。
これをネット上で公開して不特定多数の人に使ってみてもらいたいと思うのですが、ここから先何を勉強・用意すれば良いのかアドバイス頂けると幸いです。
今一番わからないのは「pythonで書いたプログラムをどうやってweb上で動かすのか」という点です。

その他のポイントとしては
・プロのエンジニアを目指しているわけではないが、ニッチな需要に応える簡素なサービスを作ってみたい
・xserverを使ってwordpressでブログを公開しているが、同じサーバーにこのプログラムを置けるのか?
・FlaskとかDjangoを使うべきなのか

以上、よろしくおねがいします。
0706デフォルトの名無しさん
垢版 |
2020/12/09(水) 12:26:26.93ID:7lJYNuqP
>>704
ウェブサーバの知識が必要かな
王道なのはapacheかnginxだけど、pythonだけなら
python -m http.server
でウェブサーバになるから、そこに肉付けしていけばいい
0708デフォルトの名無しさん
垢版 |
2020/12/09(水) 12:51:57.91ID:/MUc+cdS
>>704
鯖マシンにPythonをインスコするor最初からPython動くよっていってるレンタル鯖をかりる

やればぁー
置ける 704の設定次第
使えばぁー
0709デフォルトの名無しさん
垢版 |
2020/12/09(水) 15:06:10.60ID:y7KEYUhD
ベンチャーでは、AWS, Ruby on Rails が多い

AWS Lambda, Batch などのサーバーレスとか
0711700
垢版 |
2020/12/09(水) 16:39:45.80ID:f0tiUfmU
>>700です
返信が遅くなってすいません
レスくれた方、参考になりました
ありがとうございました

Visual Studio CodeとAnacondaをインストールしようと思います
0712デフォルトの名無しさん
垢版 |
2020/12/09(水) 19:43:21.29ID:oTqbLT2F
Pythonで競馬予想ソフト作りたいんですがどう勉強していけばいいですかね?
C言語は趣味程度に書いてたのでPythonの基礎的なところはすぐにモノになりそうなんですが
0713デフォルトの名無しさん
垢版 |
2020/12/09(水) 19:53:12.28ID:9U2YLq5f
>>712
言語そのものの習得より競馬予想アルゴリズムの研究にはるかに時間がかかると思うけど、
そこは置いとくとしたら、公式サイトのPythonチュートリアルをやれば十分。
0714デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:27:08.07ID:oTqbLT2F
>>713
ありがとうございます。
ちなみに公式サイトのPythonアルゴリズムってのはググれば出てきますか?
0716デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:37:34.05ID:/MUc+cdS
チュートリアルとアルゴリズムの違いがわからないってどういうことだ
Cとやらもハローワールドうごきません(^O^) ってかんじなのか
0718デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:48:09.46ID:fxsKXvPp
最近はなんでも機械学習だよ
過去3年分くらいのデータ集めて学習させるだけで的中率9割くらいなら軽く出るよ
0719デフォルトの名無しさん
垢版 |
2020/12/09(水) 20:59:03.75ID:oTqbLT2F
>>717
せやな(笑)
0721デフォルトの名無しさん
垢版 |
2020/12/09(水) 21:05:46.65ID:oTqbLT2F
>>720
ありがとうございました!
0722デフォルトの名無しさん
垢版 |
2020/12/09(水) 23:43:18.95ID:aOSmD5C7
>>718
まじでそれ
前処理できる人材足りないらしいしpython独学学生のワイは少し希望を見出している
0723デフォルトの名無しさん
垢版 |
2020/12/10(木) 05:13:21.20ID:lCcaS4oF
# >>643のShell Script版
#!/bin/bash
CLIPB=$(exec xclip -o -selection clipboard)
CHON=''\'''
[ "$#" -ge 1 ] && ERROR="$CHON""$@""$CHON"
[ "$#" -eq 0 ] && ERROR="$CHON""$CLIPB""$CHON"
GOOGLE=$(rev <<< '=q?hcraes/moc.elgoog.www//:sptth')"$ERROR"
QIITA=$(rev <<< '=q?hcraes/moc.atiiq//:sptth')"$ERROR""&sort=like"
TERATAIL=$(rev <<< '=q?hcraes/moc.liataret//:sptth')"$ERROR"
echo 'DuckDuckGo !Bang一覧:'$(rev <<< 'lmth.etil_gnab/moc.ogkcudkcud//:sptth')
SHUFFLE_BANGS=$(shuf -e '!yjr' '!hashtag' '!gnuk' '!yt' '!so' '!ig' '!bili' '!r' '!qiita' -n 1)
SHUFFLE_KEYWORDS="$CHON"$(shuf -e 'python' 'shell script' '日本人' '料理' 'つまった' -n 1)"$CHON"
DUCKDUCKGO_BANG=$(rev <<< '=q?/moc.ogkcudkcud//:sptth')"$SHUFFLE_BANGS"' '"$SHUFFLE_KEYWORDS"
STUDY_KEYWORDS="$CHON"$(shuf -e '# Bash' '# grep' '# shuf' '# ヒアドキュメント' -n 1)"$CHON"
grep -B 2 -A 3 -n "$STUDY_KEYWORDS" "$HOME/Documents/studyRecord.md"
sleep $(shuf -i 5-7 -n 1)'s'
google-chrome "$GOOGLE" "$QIITA" "$TERATAIL" "$DUCKDUCKGO_BANG"
0724デフォルトの名無しさん
垢版 |
2020/12/10(木) 12:39:28.70ID:OCEZ6BZz
693だけどタブはダメやった。
c:\tempみたいなパスが入ってた時にデリミタ扱いされた・・
*と?はワイルドカードで揉めるみたいだから
半角の<か>で区切ってみる。これならどうだぁ
0727デフォルトの名無しさん
垢版 |
2020/12/10(木) 17:23:44.75ID:+R9MuRqA
てかPythonで使うだけならpickleで十分だろ
csvに書き出すなら改行するのが一番楽だろうに
0728デフォルトの名無しさん
垢版 |
2020/12/10(木) 17:34:45.19ID:PyjUl2il
>>724
\はエスケープするよ普通は
0731デフォルトの名無しさん
垢版 |
2020/12/10(木) 20:52:17.08ID:JL8Xc0jO
SQLiteの分離レベルってどういうときに使うの。。
入門サイト見てみたけどほとんどどこも使ってないんだけど
0733デフォルトの名無しさん
垢版 |
2020/12/10(木) 22:47:51.03ID:7mTcrT9w
>>731
pythonのsqlite3モジュールにあるコネクションのisolation_levelは
トランザクションタイプの指定でDBMSの分離レベルとは何の関係もない

Noneを渡せばimplicit transaction
それ以外はexplicit transactionでロックの取り方が変わる
https://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactions
https://sqlite.org/lang_transaction.html#deferred_immediate_and_exclusive_transactions
0737デフォルトの名無しさん
垢版 |
2020/12/11(金) 04:45:14.45ID:U3Oy8MkO
>>735
num_list1 を表示したいの?
そしたら9行目の print() の中には num_list1 を入れないとダメじゃない?
0738737
垢版 |
2020/12/11(金) 04:47:46.13ID:U3Oy8MkO
>>735
ゴメン再代入されないのはなぜって質問なのか
上から順番に実行されていくから、num_list1を変更してもnum_list2は変更されないからだよ
0740デフォルトの名無しさん
垢版 |
2020/12/11(金) 09:18:34.13ID:J0GcYQf+
プルダウンメニューを自動選択→カートに入れるという自動購入の動作をさせたいのですが、セレクトボックスのidがあらかじめわからない場合はこの動作をさせる事は不可能ですか?
販売時間にならないと、購入ページが前もってわからないタイプのものです
0741デフォルトの名無しさん
垢版 |
2020/12/11(金) 12:12:30.12ID:s+ujdTab
>>735
変数に新しい参照を代入しているのかそれとも参照先の値を変更しているのかの違い

num_list1 = [1, 2, 3]
num_list2 = num_list1
num_list1 = [4, 5, 6]
↑新しい参照を代入している(俗に言う参照の値渡し)

num_list1[0] = 10
↑num_list1が参照している先の値を変更している
0742デフォルトの名無しさん
垢版 |
2020/12/11(金) 13:03:04.49ID:/AL4j9WO
>>740
id 以外でも、CSS セレクターや、2番目などの順番でも指定できるけど、
ページ構成の変化には対応するのが難しい

その点、idなら1つに決まるから、プログラミングしやすい
0743デフォルトの名無しさん
垢版 |
2020/12/11(金) 17:46:58.96ID:QKh+o6Fo
cssセレクタでselectを指定すれば要素特定出来るだろ。どうせセレクトボックスなんてページにそれ一つしかないんだろ。
0744735
垢版 |
2020/12/11(金) 18:50:53.04ID:slOz+bz6
>>737
>>741
ありがとうございました
分かりました
0745デフォルトの名無しさん
垢版 |
2020/12/11(金) 20:48:28.78ID:OnRhFRT3
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
0746デフォルトの名無しさん
垢版 |
2020/12/12(土) 07:26:05.11ID:ch7aCOL8
numpyでnumpy.ndarray.appendしても、ビューが生成されるだけです。
元のndarrayに追加するような方法はありますか?
0747740
垢版 |
2020/12/12(土) 07:31:04.72ID:nMhR9jlV
>>742
>>743
ありがとうございます
cssセレクタで出来ました
0748デフォルトの名無しさん
垢版 |
2020/12/12(土) 13:37:27.43ID:cOibJfw/
以下のコードで
https://pypi.org/project/python-osc/

以下のような箇所がありますが、これはどのような処理ですか?
{0}の部分に、args[0]の値を埋め込んでprintするような処理に見えますが~{1}の部分は何のために書かれているのかよく分かりません。
特に意味はないんでしょうか?

def print_volume_handler(unused_addr, args, volume):
print("[{0}] ~ {1}".format(args[0], volume))
0752デフォルトの名無しさん
垢版 |
2020/12/12(土) 15:00:38.21ID:efKG+ZBS
f文字使うと古いPythonで動かないコードを世に放つことになるからなあ
少なくとも3系のPythonで動くように書かないと世のためにならない
0754デフォルトの名無しさん
垢版 |
2020/12/12(土) 19:50:36.86ID:EiovETKX
俺が総理大臣に就任した暁には、全てのpythonライブラリにはtype hintの使用を義務づける

そして引数のファイルパスの型にstrしか受け付けないライブラリには罰則を与える
0756デフォルトの名無しさん
垢版 |
2020/12/12(土) 20:49:24.20ID:K2sR/21p
型ヒントはさらにまずいね
f文字はなんならformat版に機械的に変換できそうだけど
型ヒントの付いてるコードからヒントを取り除くのは骨が折れそうだ
0757デフォルトの名無しさん
垢版 |
2020/12/12(土) 22:39:53.01ID:nX9tiJMr
最近はどんどん古いバージョン切って捨てるのがトレンドやろ
誰がこんな世の中にしたんやろなあ
大迷惑
0758デフォルトの名無しさん
垢版 |
2020/12/12(土) 22:55:43.15ID:lNVasAwT
新しいほうがいいじゃん?
どうせPythonなんて作っては捨て、
作っては捨ての繰り返しだから。

その場でちょっとしたもの
作るときに使う言語だから。

Pythonなんてバカでもチョンでも
使えんだからさ
0763デフォルトの名無しさん
垢版 |
2020/12/13(日) 00:23:18.51ID:5jMUJn8y
>>759
枯れていて商用に耐えうるメジャーな現役言語ってCかCOBOLしかなくて
しかもこれらの言語はひどく生産性が悪いというソフトウェア界の闇
Pythonはこの辺で仕様凍結宣言をして、COBOLの代替を目指すべき時期に来ている
0770デフォルトの名無しさん
垢版 |
2020/12/13(日) 16:53:54.07ID:LGBnBUYf
a.jp/1.jpgからa.jp/500.jpgまでの画像をダウンロードするにはどんなふうに書けばいいの
0779デフォルトの名無しさん
垢版 |
2020/12/13(日) 20:55:03.28ID:4MwCzqHm
世の中みんなhomebrew使ってパッケージ管理してるみたいですが、pip3だけでなんとかなりますかね
当方homebrewがインストールできない環境です。
0780デフォルトの名無しさん
垢版 |
2020/12/13(日) 21:00:09.98ID:w38sGQBv
>>771
TypeError: can only concatenate str (not "int") to str
このぐらいは実行しなくてもTypeErrorになるのがわかんなきゃ初心者から脱却できてないぞ
0782デフォルトの名無しさん
垢版 |
2020/12/13(日) 22:47:51.42ID:QWR2aP5/
>>781
たまに見かける
images/[1-10]/1.jpg
みたいなパターンだと -O/--remote-name オプションでは大変なことになるけどね
0785デフォルトの名無しさん
垢版 |
2020/12/14(月) 00:13:16.38ID:H9Yj00dL
# >>643のpyperclipを使って
# Python Documetationで学んだことをメモ用ファイルにコピペ

import pyperclip
clipb = pyperclip.paste() + '\n' # クリップボードの中身を取得
print('コレをコピペ -> ' + clipb)
open('memo_pythonDoc.txt','a').write(clipb) # 追記モード('a')でopenして変数clipbの中身をwrite
0786デフォルトの名無しさん
垢版 |
2020/12/14(月) 12:34:28.18ID:IWkHCo3l
>>772
うちも最初の頃は+でつないでたけど、こういうミスがあるからf文字使うようになった
いちいち型を考える必要ない
0787デフォルトの名無しさん
垢版 |
2020/12/14(月) 12:52:19.29ID:KsIuaWid
やっぱf文字は強制にした方が新規には分かりやすそう
Python3.10からはデフォルトにしよう
それかPython4
0788デフォルトの名無しさん
垢版 |
2020/12/14(月) 13:15:39.31ID:r/dWM1IA
PEP582採用して仮想環境を抹殺
型ヒント強制
fstring強制

頼んだぞ、Python Foundation
0790デフォルトの名無しさん
垢版 |
2020/12/14(月) 19:04:53.73ID:hG9yFSan
fを付けない通教の文字列を標準でf-stringにする向きもあるらしいな
0793デフォルトの名無しさん
垢版 |
2020/12/15(火) 00:51:27.65ID:+RD1gPFt
exeで配布しようとするからでしょ
パッケージ配布なら何も面倒なことはない
0794デフォルトの名無しさん
垢版 |
2020/12/15(火) 11:21:51.02ID:GRKD/Ma/
shift-jisのサイトのソースコードを取得し文字コードをutf8に変換する方法を教えてください

import nkf
import requests

url = "https://kakaku.com";
body = requests.get(url).text.encode('UTF-8')
body = nkf.nkf("-w", body)
print(body)

こんな感じでやったのですが文字化けしてしまいます
BeautifulSoupは使えません
0797デフォルトの名無しさん
垢版 |
2020/12/15(火) 12:22:33.10ID:GRKD/Ma/
>>795
できましたありがとうございます!!
0798デフォルトの名無しさん
垢版 |
2020/12/15(火) 15:52:44.91ID:hTSxdvaB
>>796
いいんでないの
まぁpythonでできないことは本質的に機械じゃできないことだったりするけども
0799デフォルトの名無しさん
垢版 |
2020/12/15(火) 22:17:03.19ID:fn0JFbgC
他の言語ちょっとやったことあるってレベルならどの参考書買えばいいんだろうか。チュートリアルはちょっと読みにくい
0800デフォルトの名無しさん
垢版 |
2020/12/15(火) 23:14:40.71ID:vYGb7HVK
プロ向きなら、パーフェクトシリーズだけど、
猿向きなら、スッキリシリーズかな?

パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6

改訂2版 パーフェクトRuby、Rubyサポーターズ、2017
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7
0801デフォルトの名無しさん
垢版 |
2020/12/16(水) 00:03:04.29ID:LU6zCuge
>>799
玉石混合の入門書の中で、自分が勉強しようと思っていろいろ比較してみた所、
ソーテック社の「詳細 Python3 入門ノート」って本が良い感じでした
0803デフォルトの名無しさん
垢版 |
2020/12/16(水) 07:31:45.32ID:VaidjUHq
スッキリシリーズは流石にダメでしょ
0806デフォルトの名無しさん
垢版 |
2020/12/17(木) 20:17:02.64ID:me3npDEa
pyautoguiで特定アプリ内の画像認識をしようとしているのですが、
ウィンドウの指定をして、
そのウィンドウが見えていない、バックグラウンドでも認識させる方法はありますでしょうか
RPAを作ってみたのですが、そのRPAを動かしている間、パソコンに触れなくなるため
バックグラウンドでの動作にしたいです。

pyautogui.locateOnScreen →アクティブウィンドウしかだめ
0808デフォルトの名無しさん
垢版 |
2020/12/17(木) 21:18:19.91ID:HOK8mWEY
給与計算のチェックとかpythonでできますか?
エクセルvbaより楽にできますか!?
0813デフォルトの名無しさん
垢版 |
2020/12/18(金) 09:15:36.09ID:hahJhxSX
言ってもない処理を809がわざわざ書いたから
それしかできないのはしょうがないんだろうと思ったんどろう
0815デフォルトの名無しさん
垢版 |
2020/12/18(金) 09:26:26.05ID:6XgFq4AT
給与計算で書式を保ちたいと要求していないし「一番いい」と言ってることから他にやり方があることが示されているし809のやり方が特別悪いとも思わんな
0816デフォルトの名無しさん
垢版 |
2020/12/18(金) 10:10:14.37ID:tG03PZfz
そんなにムキにならなくてもw
何でもかんでもpythonでやれば楽になるわけじゃないんだから
0818sage
垢版 |
2020/12/18(金) 21:18:36.14ID:a9/WYqr/
808です。
手当の変更のインプットやアップロードはがんばっていれて
チェックは一瞬で楽にできればと思いました。パイソン勉強いたします。
パソコン教室にいきます。
ちなみに810はほかの人です。
0820デフォルトの名無しさん
垢版 |
2020/12/19(土) 09:30:15.24ID:zKdXY8Ql
python 3.7.9でimport win32com.clientを使おうとしとるんやが
importエラーで先に進めない

pip install pywin32 :インストールできたがimportエラー
githubからexe落としてきてインストール :やっぱり動かない

importで詰まったの初めてなんだが
win32comどうやったら使えるん
0823デフォルトの名無しさん
垢版 |
2020/12/19(土) 23:27:44.16ID:KNibJcyt
これからpython始めたいのですがOSはmacの方が良いんでしょうか
windowsしか使った事が無いけどググると環境構築や情報量はmacが優位との事で迷ってます
目的としてはexcelメールの自動化やwebスクレイピングを業務の中で出来るようになればと考えており、結局windowsで動かす事になりそうなのですがmac↔�windowsで環境を跨ぐと支障は出るものでしょうか
0827デフォルトの名無しさん
垢版 |
2020/12/20(日) 00:45:13.65ID:BAtdGKu+
>>823
windowsでもインストーラー落として実行するだけ
0828デフォルトの名無しさん
垢版 |
2020/12/20(日) 07:14:52.70ID:zJwsC3QS
普段使いしてるWindowsに入れればいいよ
セットアップの項目でpythonを環境変数に追加すれば使いやすさは変わらん
0830デフォルトの名無しさん
垢版 |
2020/12/20(日) 14:17:31.37ID:vakUvLku
WindowsとMacではターミナルの使いやすさが違う
Windows Terminalでかなり改善されてるけどね
0832デフォルトの名無しさん
垢版 |
2020/12/20(日) 16:50:04.61ID:CqW8rd2f
WinならNative Pythonにpipenv入れるのが一番良くないか?
Anacondaは個人のライブラリとか入れていくと環境グチャグチャになるから面倒くさいわ
0835デフォルトの名無しさん
垢版 |
2020/12/20(日) 23:26:08.37ID:fYZvWS3R
自分の書いたプログラムを周りの人間と共有する必要があって
その周りの大半がanaconda使ってる状況以外でconda系から始めるのはやめとけ

anacondaとtkinterは初心者をつまづかせる2大無用の長物

最初は直接python入れときゃいい
0836デフォルトの名無しさん
垢版 |
2020/12/20(日) 23:53:36.33ID:tNXdbpIs
今更、anaconda勧めてくるのは無視していいと思う
0837デフォルトの名無しさん
垢版 |
2020/12/20(日) 23:55:27.38ID:VdeMiIWR
>>835
まあそうかも。
ある程度他のビルドが通りやすい他のOSでPython使ってからだと、 Pure Pythonじゃない部分も面倒見てくれるAnacondaはいいんだけど、
ほんとの初心者でpipで入らないモジュールに困るまではいらないかもね。
Anacondaの癖なのかそうでないか見定められるまではAnaconda使わない方がいいかもね。
0838デフォルトの名無しさん
垢版 |
2020/12/21(月) 09:40:55.51ID:bAOWuplU
科学計算、データサイエンスの環境を手っ取り早く作りたいというわけでなければ、anacondaはすすめないかな。
0840デフォルトの名無しさん
垢版 |
2020/12/21(月) 10:01:11.52ID:M/flfVv0
>>833
conda cloudにないけどpypiにだけはあるみたいなライブラリをpip経由で入れると依存関係壊れるのが嫌
逆は基本ないからpip使うのが結局総合的には楽でいいと思う
あとOpenCVみたいなのは自分でビルドしちゃうのが使えない機能があったりしなくて楽
0841デフォルトの名無しさん
垢版 |
2020/12/21(月) 13:22:58.36ID:G5T16kgS
>>839
WSLにDocker 、構築済みコンテナマウント、ローカルにVC-CODE、
0842デフォルトの名無しさん
垢版 |
2020/12/21(月) 15:21:20.98ID:XP0/uvDJ
Windows 10 Home 版に、WSL2, Docker を入れた

OS の連続アップデートに、3時間掛かった。
CPU-i3, 8GB メモリを、CPU・電力エコモードで使っているから、コンパイルが遅いのかも

その後、WSL1 から、WSL2への変更。
Dockerのインストール自体は簡単だった

これで、Windows10 プロ版じゃなくても、Dockerを使える。
Kubernetes も入っていた

君らには、CPU-i7, 16GBメモリ、SSD-256GB以上を勧める

念のために、Windows 10 プロ版もプリインストールしておけ。
プリインストールなら、5千円と安いから

16GBメモリあれば、WSL2の互換性が悪い場合に、
Virtual Box で直接、Linuxも使える
0844デフォルトの名無しさん
垢版 |
2020/12/21(月) 18:18:57.29ID:YgDTrDhJ
>>835,836
たまにはanacondaを触ってみるといいよ
昔の問題だらけの時代とは全然違うから
今はpyenv+pipenvを教えるよりもminicondaだな
tkinterだけは特定のmacOSでトラブルになるから公式のがいいかな
0845デフォルトの名無しさん
垢版 |
2020/12/21(月) 18:22:34.07ID:X2UxBsP1
PythonでもSmoozみたいなアプリ作れますか?閲覧してる情報まるごとぶっこ抜くってなかなかにシビれます。
0847デフォルトの名無しさん
垢版 |
2020/12/21(月) 18:52:08.50ID:ym6gHmkT
numpyやscikit-learnなんかはanacondaがデフォルトでintel-mkl使うバージョンが入ってて速いそうだが
それらを使うならanacondaの方がいいかもな
Vanillaでmkl使う方をインストール出来るならそれでいいんだろうけど
0848デフォルトの名無しさん
垢版 |
2020/12/21(月) 20:03:41.57ID:+4hTUwSB
弘法筆を選ばず

弘法環境を選ばず
厨房環境を論ずるのみ
0849デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:28:54.80ID:UbzYfHI9
WSL, virtualbox, 直python勧めるくらいなら明らかにanacondaのがマシだわ。
こいつら勧めるとかまともにプログラムやってないとしか思えんわ。
0850デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:36:10.92ID:RFvP+jrS
>>848
書家(とりあえず二人にききました)に言わせると
うまいひとほど筆も紙も選びますw
だぞ
0851デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:40:16.48ID:+4hTUwSB
>>850
上手くない人があーでもないこーでもない言ってる
0852デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:41:07.37ID:+4hTUwSB
プログラムは
センス9割
環境1割
0853デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:45:52.65ID:+4hTUwSB
かつて「プログラムは環境で決まる」という宣伝があったそうな
「決まる」というのは、最後の詰めのことを言っているのだろう
良い環境を使うか駄目な環境を使うかによって90点のプログラムになるか、95点のプログラムになるかは重大であろうから
環境を選ばなくてはいけないのだろう
しかし50点のプログラムを書いてる者が環境で5点プラスして何になるのだね
anacondaよりpipenvの方が環境が良いとしても
その環境の差が重要になるほどのプログラムを書いているのかね?

環境、構築、と主張するのはその環境構築が必要になるほどのプログラムを書いている者だけでいい
0854デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:51:42.32ID:+4hTUwSB
釣り、ゴルフ、ゲーム、書道、絵画、カメラ、ドライビング、SEX
0855デフォルトの名無しさん
垢版 |
2020/12/21(月) 22:58:48.82ID:JGiC8qIT
要約:俺は苦労して覚えた。おまえらも苦労しろ
そう言ってるようにしか聞こえない
0856デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:00:06.72ID:JTbvcCyB
人に勧める時はちゃんと環境選んでやれよ
0858デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:44:56.81ID:+4hTUwSB
50点乙
0859デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:45:31.80ID:+4hTUwSB
>>857だと
90 < 55だってさ
0860デフォルトの名無しさん
垢版 |
2020/12/21(月) 23:47:49.32ID:56qSn/9L
環境周りは基本的なことが理解できてからでいいんだって
このスレでもanacondaでつまづいてるやつ腐るほど見てきただろ?

プロジェクト単位の依存性管理や
Pythonのバージョン管理をどうするのがいいの?
って段階になってから考えればいいよ

これからpython始めたいんですがってやつに即anaconda入れろはホント頭おかしいよ
余計なレイヤーを学ぶ必要がない方法があるならそれに越したこと無い
0861デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:13:37.49ID:Fh2P5wuU
>>860
anaconda入れてPATH通せってのがそこまで深刻な複雑さを生むとは思わんがな。
python直に使ってて依存問題起きたらそれこそ初心者じゃテンパって終わるぞ。
0862デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:21:37.04ID:PFh/rGOz
>>850
そりゃプロなら選んで当然だけどさ
思い通りの紙と筆(環境)が揃わなくたって突然下手くそになったりしないでしょう?
そう言う事だよw
0863デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:25:13.93ID:PFh/rGOz
>>861
大概Python始めたいんですけどどうしたらいいですか?なんて聞く奴はPATH?何それ??状態だから
0864デフォルトの名無しさん
垢版 |
2020/12/22(火) 00:37:55.16ID:T7BUya2f
ひたすら書くだけのコード屋が偉そうに
0866デフォルトの名無しさん
垢版 |
2020/12/22(火) 01:04:27.16ID:CkUf338T
かつて環境アセスメントという
地球環境から職場環境までいっしょくたに扱うわけのわからん国の通知があって
なんじゃこりゃっておもった

環境って開発環境のことか?
0867デフォルトの名無しさん
垢版 |
2020/12/22(火) 03:20:24.57ID:HVt96BYo
これでいいだろ

【徹底解説】Windowsでの環境構築|Pythonでプログラミングをはじめる準備をしよう! - YouTube
https://www.youtube.com/watch?v=kb6op3-E_lg
0868デフォルトの名無しさん
垢版 |
2020/12/22(火) 08:13:39.37ID:/GVtgweb
MACでコードを書いて、WINDOWSでそれを使うってことできるのでしょうか?
0870デフォルトの名無しさん
垢版 |
2020/12/22(火) 16:47:04.00ID:GKhnHiXj
プログラマーとして自分は無理だと判断すりゃ次の人生を考え少しでも若いうちに早めに転職した方が良い
老婆心ながら忠告しておく
0872デフォルトの名無しさん
垢版 |
2020/12/22(火) 17:06:55.26ID:uVrRPi3R
思いたったら
何歳からでも始めれば良いさ
0873デフォルトの名無しさん
垢版 |
2020/12/22(火) 17:29:06.72ID:uzy9az6A
>>871
pipを使う場合は、環境構築だけconda createで作成して、あとは全部pipでインストール

condaで後からインストールしても良いけど、依存関係を解消しようとした頑張った挙句、どうしても解決できないものはコンフリクトして失敗する
0876デフォルトの名無しさん
垢版 |
2020/12/23(水) 20:18:46.69ID:9M0dxGbs
質問です

listの要素をごっそり型変換するにはmap関数を使えばいいとあったのですが、
map関数の戻り値がイテレータであるとはどういうことでしょうか?
0877デフォルトの名無しさん
垢版 |
2020/12/23(水) 20:33:31.77ID:/fS+7Fr+
>>876
イテレータはlistと同様にfor分等で一つずつ取り出せるけど、実際の中身は取り出すまでメモリ確保しない
listに1億個の要素があったとするとlistならメモリを沢山必要とするけど、イテレータなら問題ない

使い方はほとんど同じだけどprint()で見ると違いが分かる
0878876
垢版 |
2020/12/24(木) 00:32:29.33ID:UwmGclax
>>877
何となく分かりました。
ありがとうございます。

list()関数と併用したいと思います。
0879デフォルトの名無しさん
垢版 |
2020/12/25(金) 00:08:02.52ID:eWDcI5x6
pythonをソースインストールしてんだけど
./configureの--without-PACKAGEのPACKAGE一覧ってどっかにないかな?
--with-PACKAGE=noでも良いんだけど
このオプションがマトモに機能してる気がしない
要らないパッケージ省いたスリムなpython作りたいんだけど
ソースのREADMEもgithubの記事もどこにも書いてないんよね
0881デフォルトの名無しさん
垢版 |
2020/12/25(金) 13:56:38.42ID:BaOphPzO
そのPACKAGE一覧が./configure --helpでその下にずらっとでてくるやつでしょ
ただ、それで、そのスリムなPythonが作れるわけじゃないけど
0883デフォルトの名無しさん
垢版 |
2020/12/26(土) 14:06:08.04ID:CIvbBvts
>>882
必要ないです
0885882
垢版 |
2020/12/26(土) 16:01:56.86ID:URkT4AMD
>>883
>>884
分かりました
ありがとうございます

ただ、>>882は例があまり良くないのですが、
要は分岐のブロック内で新たに変数が出てくる際に、Javaなどでは
String newName;
等と宣言しておくことが出来るのですが、
Pythonでは変数のメモリ確保?だけやるというのは出来なそうなので、
どうするのが望ましいのかなと疑問に思ったのです

この点に関してもどなたか助言をいただけると助かりますので
よろしくお願いします
0887デフォルトの名無しさん
垢版 |
2020/12/26(土) 16:38:56.17ID:S22m+gw3
すみません、ここを見てPythonをインストールしたのですが、
エディタというのはどこにインストールされているのでしょうか
MACに標準にあるテキストエディットをつかっても、pyという拡張子は作れませんでした

>エディタで先程作成したフォルダ「python_lesson」を開き、その中に「script.py」ファイルを作成してください。
https://prog-8.com/docs/python-env
0888デフォルトの名無しさん
垢版 |
2020/12/26(土) 16:47:26.77ID:ItMdJLnh
>>887
標準のテキストエディタでも別に行けるぞ
多分、拡張子の表示辺りが無くて分かりづらいと思うが
script.py.txtみたいな状態になってるはず

ちなみに、そこのチュートリアルで出てくるエディタはVSCodeで
別ページにインストール手順が書いてある
(そのページの一番上に
・テキストエディタ
HTML & CSS の開発環境を用意しよう! を参考にしてください。って書いてある)
0889デフォルトの名無しさん
垢版 |
2020/12/26(土) 18:35:57.65ID:pHrrDNwV
VSCodeのような支援ツールは使わない方がいい
一文字ずつ自分の指でタイプして書き上げたコードこそが自分の財産になる
0890デフォルトの名無しさん
垢版 |
2020/12/26(土) 18:51:29.24ID:4mRY/k01
素手でトイレ掃除してそう
0891デフォルトの名無しさん
垢版 |
2020/12/26(土) 19:06:03.65ID:5Glc6mpm
そもそもプログラミング使ってる時点で甘えてんだよ
全部紙に書いてそれをファイリングしてデータ管理すべきだわ

ハンコ・紙の申請書・手書き・対面受け渡し
この4つを徹底した業務を10年以上やってから初めてプログラミングをやるべき

ちゃんと自分の財産が形成されてるからコード一行一行から良い風味が出てくる
0892882
垢版 |
2020/12/26(土) 19:11:06.24ID:URkT4AMD
>>886
ありがとうございました
0894デフォルトの名無しさん
垢版 |
2020/12/26(土) 19:34:47.99ID:wXkuq1W2
>>885
pythonにブロックスコープは無いんだ…
だからJavaみたいにブロック内部で別の変数を定義することはできないよ
他のスクリプト言語もだいたいそうだから悲観しなくていいよ
0895デフォルトの名無しさん
垢版 |
2020/12/26(土) 20:07:32.21ID:JYcv42HE
>>891
楽してキーボードカタカタしただけのプログラムは”心”が籠ってなくて冷たい印象を受けるからな
使い手を想いながら心を込めて千枚通しでパンチカードに一つ一つ穴を開けるべき
0896デフォルトの名無しさん
垢版 |
2020/12/26(土) 20:26:26.68ID:lTeoZ7+5
パンチカード使うとか甘えてんのかよ
男なら黙ってプラグボードに決まってるだろ
0897デフォルトの名無しさん
垢版 |
2020/12/26(土) 22:39:38.47ID:xNQiwGF7
フォンノイマン型コンピュータを使うことが甘え
TTLロジックで論理をハードコードすべき
0898デフォルトの名無しさん
垢版 |
2020/12/26(土) 22:45:42.78ID:Pu0ECC81
>>880,881
とりあえずmicropythonをビルドして使う事にした
公式配布されてるembeddable pythonのlinux版を作りたかったのよ

>>887
macならFinder設定の拡張子表示をするようにしとくといいよ
パンチカードとまでは言わないけどターミナルでviって打つと
一応標準でエディタは入ってる
質問の文章的にかなり初心者っぽいけどがんばって
0899デフォルトの名無しさん
垢版 |
2020/12/26(土) 23:48:20.74ID:aomFNOZx
Ruby にはブロックスコープがあるから、プログラミングしやすい

MicroPython か

Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

この本を読んだ印象では、
宇宙開発などの組み込み用、Lua, Squirrel の代替になる

Apache などのミドルウェアに組み込んで、拡張機能を作る。
ロジック・文字列処理は、C よりも、GC のあるmrubyでやった方が、安全性が高い
0903デフォルトの名無しさん
垢版 |
2020/12/27(日) 09:36:53.54ID:0MIy7os4
BASIC,COBOL,Pythonと学んできた身からすると
ブロックスコープって何それ状態なのだが
つまりPythonの関数スコープがifやforにもあるってこと?
頭おかしくなりそう
0904デフォルトの名無しさん
垢版 |
2020/12/27(日) 09:56:36.92ID:JDlKWc3Q
>>903
withの挙動知るともっとおかしくなるぞ
インデント下げてる箇所で変数定義しても、withの外で使える
0905デフォルトの名無しさん
垢版 |
2020/12/27(日) 10:35:02.77ID:vBqHOnr5
>>899
そんなに楽な言語じゃ気持ちがこもらないダルルォ?
0907デフォルトの名無しさん
垢版 |
2020/12/27(日) 10:51:09.98ID:mqWB+gDR
ブロックスコープが無いのはスクリプト言語でもPHPとPythonくらい

バグの温床になりやすい
0908デフォルトの名無しさん
垢版 |
2020/12/27(日) 13:14:13.85ID:vBqHOnr5
>>906
with open(‘test.txt’, ‘w’) as f:
____print(f)

print(f)
0910デフォルトの名無しさん
垢版 |
2020/12/27(日) 13:35:42.01ID:ZwH7MfQO
withはスコープ外れたらファイル閉じるから無理なんじゃないの?
if文ならそうだけど
0911デフォルトの名無しさん
垢版 |
2020/12/27(日) 13:52:55.21ID:SKaFVEwY
勿論 closeされるがファイルオブジェクトは残る
0912デフォルトの名無しさん
垢版 |
2020/12/27(日) 14:19:22.56ID:+iG1rhj8
インデント下げてる場所 だったらこんなんじゃあないの

with open(‘test.txt’, ‘w’) as f:
____count = 1
____print(f)

printf(count)
0913デフォルトの名無しさん
垢版 |
2020/12/27(日) 14:47:56.00ID:bhLcvV8F
まずそもそもスコープを生成しないし、宣言キーワード無いからねぇ
某言語のブロックにしてもその実はクロージャというか別物だし…
仕様自体よりも思い込み・勘違い・混同の方が問題であろうかなと
0914デフォルトの名無しさん
垢版 |
2020/12/27(日) 18:29:26.40ID:MlpROiPU
>>913
嘘ついちゃダメ
nonlocalやglobalは宣言キーワード
スコープ周りが貧弱なので使いにくいハックが必要になってる

javascriptもブロックスコープがない時代はそんなのいらないと強弁してる人が沢山いたんだよねー
0915デフォルトの名無しさん
垢版 |
2020/12/27(日) 18:52:35.43ID:0MIy7os4
>>904
よく考えたらおかしくはないな
Pythonでスコープが作られるのは関数とクラスのみだから
withの中が外と同じレベルなのは当然ではなかろうか
0916デフォルトの名無しさん
垢版 |
2020/12/27(日) 19:22:15.13ID:bhLcvV8F
>>914
代入文が暗黙的なローカル宣言でも、そもそも既出のブロックではスコープを作らないって話から
そこだけ切り取って嘘と言われましても…。明らかにlet相当も無いよねって文脈ですし
そうなっているので参照できるよって事で、要る要らないの話でもないですしね…
0918デフォルトの名無しさん
垢版 |
2020/12/27(日) 19:54:56.15ID:+iG1rhj8
本物の初心者なら違和感ゼロじゃね
0919デフォルトの名無しさん
垢版 |
2020/12/27(日) 21:17:25.27ID:VS6+Jx70
Pythonからプログラミングはじめた人は
変数のスコープという概念自体を理解してないことが大多数なので
違和感なくてもバグを作るだけ
0920デフォルトの名無しさん
垢版 |
2020/12/27(日) 21:36:17.81ID:IoLxP1+p
もう雑談になってるから続けたいならせめて質問にしてくれ
0921デフォルトの名無しさん
垢版 |
2020/12/28(月) 08:15:32.26ID:1wnarVmc
>>912
動きはするだろうが、なんでwriteでファイル開いてそのポインタをプリントしてるのか意味不明。
0922デフォルトの名無しさん
垢版 |
2020/12/28(月) 08:33:07.62ID:SqIAwzQp
ブロックスコープは欲しい。
多分どうしようも無いGILをのぞいて、
Pythonの最もおおきな欠点だと思う。
まあ関数内defをして直後にその関数呼べばいいのかもしれんけど。
0923デフォルトの名無しさん
垢版 |
2020/12/28(月) 10:06:03.35ID:W49AY227
Pythonの本を選ぶときにスコープについて解説してある箇所を見れば本の良し悪しが分かる

初心者がプログラミングの学習を始めて遅くても3日目には習う基本事項にもかかわらず
スコープについて整理してわかりやすく解説してるPython本は驚くほど少ない
0924デフォルトの名無しさん
垢版 |
2020/12/28(月) 12:40:30.36ID:jUcg1lZl
JavaScript(JS), Python の関数はクロージャだから、関数外の変数を取り込んでしまう。
ただし、新しいJSには、ブロックスコープも出来たかも?

一方、Ruby の関数はクロージャじゃないから、関数外の変数を取り込まない

関数外の範囲は大きすぎるので、
取り込むとバグが多くなって、開発が難しくなるから、
透過しない厳格な関数スコープにした

その代わり、関数内にはブロックスコープを作る。
これはクロージャだから、ブロック外の変数を取り込む

関数内は20行程度だから、範囲が小さいので、透過しても大丈夫
0925デフォルトの名無しさん
垢版 |
2020/12/28(月) 13:41:03.84ID:k1Eqi9cA
withは名前から受ける印象で直感に反してるけどルールとしては一貫してる

内包表記で代入式を使うと変数が外に漏れるのはルールにも反してて意味が分からない
0926デフォルトの名無しさん
垢版 |
2020/12/28(月) 16:00:19.42ID:1wnarVmc
まあそもそもリスト内包で副作用があるような処理書く奴はどうかしてるけどな。
そういう場合はアホみたいな書き方しないでfor使えや。
0927デフォルトの名無しさん
垢版 |
2020/12/28(月) 16:59:30.53ID:PwYxLSK+
>>926
また嘘つきさん乙
副作用の有無なんて関係ないぞ
pythonてエクストリーム擁護するやつほど無知だよな
0929デフォルトの名無しさん
垢版 |
2020/12/28(月) 18:59:19.95ID:k1Eqi9cA
さすがにそれは・・・

Cの主作用/副作用の定義だと代入も副作用があるとみなすけど
その定義だと内包表記はイテレータを使うからすべて副作用があることになる

ローカル変数に値を代入する関数を副作用のある関数と呼んだところでPythonにおいては何の意味もないよ
0931デフォルトの名無しさん
垢版 |
2020/12/28(月) 22:01:24.43ID:xPcvMZiv
代入式は代入だから副作用w
副作用だからfor文使えww
エクストリームすぎるやろ
0932デフォルトの名無しさん
垢版 |
2020/12/28(月) 22:49:30.45ID:oo8nUBuZ
Tesseract以外のOCRライブラリで使えるの有りますか?
英語だけで十分なんですが
0933デフォルトの名無しさん
垢版 |
2020/12/29(火) 06:48:07.79ID:hnMWQG4C
アイアン!まーいく!パイソン!
なーんつっちゃって
0935デフォルトの名無しさん
垢版 |
2020/12/29(火) 18:20:40.29ID:mZvn1dXJ
どっちでもいいが、英語配列のキーボードでは'の方がタイプしやすいため'の方が多用されていることが多い
0936デフォルトの名無しさん
垢版 |
2020/12/29(火) 18:36:22.79ID:ojfT27J3
どっちでもいい
プログラミング配信とか見てるとわかるけど、日本人以外でもダブル(")使ってる人も少なくない
自分の中で統一できていればいい
使いにくい方をあえて使おうとしてまで使うメリットも理由もない

例えば、辞書のキーに文字列使う場合はシングル使って、メッセージの様な文にはダブル使うみたいな人もいる
0938デフォルトの名無しさん
垢版 |
2020/12/29(火) 18:57:59.95ID:5lNXv1ot
引用する文字列にダブルクォートが含まれることが多いので、
Pythonでの文字列のくくりには意識してシングルを使ってる

shellみたいに、展開の有無の違いはあったっけ?
0940デフォルトの名無しさん
垢版 |
2020/12/29(火) 19:30:57.15ID:NgMoxJfm
質問です
ちょっとマニアックなんですが…

アンパック代入により_(アンダースコア)を使って値を捨てた後、
_の値を消去しておいた方がいいでしょうか?

data = [1, 2, 3]
a, _, b = data
# del _
0941デフォルトの名無しさん
垢版 |
2020/12/29(火) 19:59:15.43ID:UK0GT2+C
>>940
_にぶっこんだブツがでかい(重い)なら、念のためけせばー
940の内容では、イラネではー
0943デフォルトの名無しさん
垢版 |
2020/12/29(火) 23:37:53.10ID:TVQOurYq
>>940
どうせスコープ抜けたら解放される。気にしなくて良し
適切なコーディングが出来ていてクソデカ関数を書いたりしていなければ、だが
0944940
垢版 |
2020/12/30(水) 00:49:37.22ID:XkI9Mvab
>>941
>>943
分かりました
あまり気にしないようにします
ありがとうございました
0946デフォルトの名無しさん
垢版 |
2020/12/31(木) 09:03:14.64ID:3v1yApEE
ImageGrab.grabでゲーム画面のスクリーンショットを撮ろうとしてもwindowsの壁紙しか映りません。ゲームのメニュー画面は撮れるのですが、対戦画面に切り替わると撮れなくなります。
0947デフォルトの名無しさん
垢版 |
2021/01/02(土) 03:03:06.16ID:pyorPsQx
input()関数での入力受付をマウスのクリックで代わりにできたりしませんか?

例えば、input()では"y"の入力でTrue、"n"の入力でFalseとして処理を分岐させている場合、
マウスを使うイメージでは、左クリック(あるいはyesボタンようなもの)が押されたときにTrue、反対に右クリック(あるいはnoボタンのようなもの)が押されたときにはFalseとなるようにして処理を分岐できるようにしたいです

キーボードでの入力→エンターの手間が地味に面倒で(押し間違いも出てくる)クリック一発で済ませられるようになれば・・・と考えてのことなのですが、簡単な実装の仕方はありますでしょうか?
0948デフォルトの名無しさん
垢版 |
2021/01/02(土) 09:16:28.29ID:oBLo886r
誰かiPhone用の爆サイリーダー作ってください。
0949デフォルトの名無しさん
垢版 |
2021/01/02(土) 10:13:31.52ID:wcwqpSor
>>947
AutoHotKeyとかBetterTouchToolとか使ってマクロを実行しろ
原理的にコンソールアプリで制御する範疇ではないし、すべきではない
0950デフォルトの名無しさん
垢版 |
2021/01/02(土) 12:09:14.26ID:Sivwhl/T
>>947
pygame使う
0952デフォルトの名無しさん
垢版 |
2021/01/03(日) 17:07:25.20
強制的な名前付き引数と可変長辞書引数って同居できなかったっけ??
def hoge(a,**d):
これだとhoge(a=1)でもhoge(1)でも通っちゃうんだが
0953デフォルトの名無しさん
垢版 |
2021/01/03(日) 18:15:44.07ID:GNuYDGUQ
def hoge(a, /, **d) ?
0955デフォルトの名無しさん
垢版 |
2021/01/04(月) 02:13:45.64ID:Kyh5jQEK
C++からPythonへ画像を送りたい または
C++からPythonを呼び出したい(opencvの画像を添えて)
何か楽な方法ありますか?
ちなみに動作環境はUbuntuです
0957デフォルトの名無しさん
垢版 |
2021/01/04(月) 13:08:03.00ID:NzpguK0K
楽な方法ならsystem()に一票
bindして呼び出せるけどトラブった時の対処はスキルがメチャクチャいる
0959デフォルトの名無しさん
垢版 |
2021/01/04(月) 19:54:00.21ID:8c2bemG3
python2で書かれたprint文をpython3に合わせて全てprint( )に直したいのですが、どのような正規表現を使えば良いでしょうか。全て
print '〜〜〜'
の形式で書かれています。
0962デフォルトの名無しさん
垢版 |
2021/01/04(月) 20:02:11.42ID:hngT4Gif
print '(.*?)'$
print(\1)
0965デフォルトの名無しさん
垢版 |
2021/01/04(月) 20:12:17.65ID:KAZJSY+9
エディタ使って一つ一つ確認しつつ置換した方がいいと思うがな。
10000行程度なら俺ならそうする
0966デフォルトの名無しさん
垢版 |
2021/01/04(月) 20:38:52.21ID:Nz2iXOdN
2to3使って元のファイルと差分を確認
が一番楽だと思う
そもそもPython2からPython3だとprint以外にも変更が必要だし
0967デフォルトの名無しさん
垢版 |
2021/01/04(月) 21:24:49.11ID:Mk3YZcaQ
>>963
とりあえずprint()だけ変換しておけば、
from __future__ import print_function でPython2.7でも使えるから
段階を踏むという意味ではいいんじゃない?
0968デフォルトの名無しさん
垢版 |
2021/01/05(火) 16:27:09.20ID:WDUeqgtT
>>959は変更点がprintだけだと思ってるような気がする
0969デフォルトの名無しさん
垢版 |
2021/01/05(火) 19:49:51.47ID:vWLugMBZ
format() やfストリングで、例えば普段は小数点以下第2位までの数値表示で、整数部桁が大きくなる場合は小数点以下は第1位にしたりして、数値全体の最大桁数は固定にすることってできますか?
0971デフォルトの名無しさん
垢版 |
2021/01/05(火) 22:04:38.15ID:vWLugMBZ
>>970
ありがとうございます。
すみません、説明不足でした。

例えばですが以下のように、原則は小数点以下は4桁として、整数部が4桁を超える場合にのみ、小数点以下の桁数を切り詰めて欲しいのです。
(整数部が大きくなるケースを例外扱いのようにし、小数点以下は4桁以上増やさない)

{:8.4f}
__0.1234
_12.3456
123.4567
1234.567
12345.67

フォーマット文字列生成してから、[0:8]で先頭8桁を切り出すしかないですか?
0972デフォルトの名無しさん
垢版 |
2021/01/05(火) 22:56:30.16ID:8pOcMMb2
>>971
foo = [0.123456, 12.34567, 123.45678, 1234.56789, 12345.67890, 12345678.90]
[f"{round(x, 4):.7g}" for x in foo]
#=> [‘0.1235', '12.3457', '123.4568', '1234.568', '12345.68', '1.234568e+07']
0973デフォルトの名無しさん
垢版 |
2021/01/06(水) 14:44:12.17ID:EPQdiTFW
anacondaって有償になったって聞いたんだけど、今まで使ってたやつってどうなるの?
ずっと普通に使えていたから気付かなかった

講習で使ってるだけならセーフか?
つか、そんな事一度も教えてもらわなかったぞ
0975デフォルトの名無しさん
垢版 |
2021/01/06(水) 16:58:18.74ID:ENhPhOS8
去年の頭くらいの話だろうに何で今更聞いてんだ
該当してたらもう遅いだろw
0976デフォルトの名無しさん
垢版 |
2021/01/06(水) 17:35:38.04ID:EPQdiTFW
>>974
ググってもよくわからんから来たんだよ
つか、落としたの1年前でサイトなんて見てないんだから知らないよ...
0978デフォルトの名無しさん
垢版 |
2021/01/07(木) 07:00:37.94ID:4fMQSce9
>>976
シンプルな回答
気にするな

正確な回答
人員200人以上の組織で使ってるならコマーシャルライセンス版を買いリポジトリの使用料を払えという話だ
お前の頭ごときでそんな組織に勤めてAnacondaを使ってるわけがないだろ?
だから気にするな
0979デフォルトの名無しさん
垢版 |
2021/01/07(木) 14:55:40.47ID:cztV9si0
こういうスレは必ず「情弱乙www」とか言うやつが現れるよね。そして何も教えないまま暴言だけを残して去っていく
0985デフォルトの名無しさん
垢版 |
2021/01/09(土) 08:46:32.15ID:DLsCQOwy
バイナリデータをいじくるのに手間がかかってしょうがない
やはりテキストデータ専用言語だなPythonは
バイナリデータ操作に長けた言語を紹介してくれないか
業務で必要なんだ
0989デフォルトの名無しさん
垢版 |
2021/01/09(土) 10:38:29.76ID:fHVxD+CU
スクリプト言語でバイナリ操作というとperlでpack/unpack、pythonでstructモジュールあたりじゃないか?
それも手間だというなら他の言語でも似たようなもんじゃないかと思うが。
0990デフォルトの名無しさん
垢版 |
2021/01/09(土) 11:33:01.84ID:SIlabjr/
扱うデータがリトルエンディアンならCは楽だけど、そうでないならCでも同じくらいの相応の手間はかかる
0992デフォルトの名無しさん
垢版 |
2021/01/09(土) 14:06:54.27ID:N02pNv/D
バイナリ操作つってもいろいろあるから何やろうとしてて手間を感じるポイントを書かないと何とも言えんよ

エラーメッセージすら書かずに「エラーになるんですけど、どうすればいいんでしょう?」と同じレベル
0995デフォルトの名無しさん
垢版 |
2021/01/09(土) 15:43:30.94ID:D6Ll5jvx
分かるまでやれ
下手な説明だけ読んで理解しようとするから分からないままで進まないんだ
疑問に思ったら逐一書いて試せ
0996デフォルトの名無しさん
垢版 |
2021/01/09(土) 17:59:21.61ID:pIgeuh0b
安全にバイナリを操作しようとしたら色々きをつけなきゃいけないけど、適当に実験するだけだったらCが一番楽だと思うけどなあ。
ポインタを気軽に操作できるからこその楽さだよね
もちろんpackとかunpackとか使ったら同じだけど、一手間ある感じ。
0998デフォルトの名無しさん
垢版 |
2021/01/09(土) 21:35:39.87ID:fHVxD+CU
2/4/8バイトをひっくり返すだけの関数ならべつにCじゃなくても楽勝だろうし
Cでも結局64bit版は自作しなきゃならんしで大して違いはないと思うが。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 84日 18時間 52分 37秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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