21/06/10 09:09:42.55 fGM4j9Qy.net
>>> a=10
>>> x=[a]
>>> x
[10]
>>> a=20
>>> x
[10]
>>> a
20
>>>
なんでxが[20]にならないの?
そうなるにはどうすればいいの?
3:デフォルトの名無しさん
21/06/10 09:52:24.45 VzpKjmfX.net
数は書き換え不可の型なんで無理。
a自体を書き換え可能なオブジェクト、例えば配列に入れ込めば、似たようなことは出来なくもないが…
a = [1]
x = [a]
a = [2]
x
4:デフォルトの名無しさん
21/06/10 11:03:02.88 smul9M+b.net
>>2
>>> a = [10]
>>> x = [a]
>>> x
[[10]]
>>> a[0] = 20
>>> a
[20]
>>> x
[[20]]
5:デフォルトの名無しさん
21/06/10 11:05:06.12 smul9M+b.net
>>3
ちょっと何言ってるか判らない
6:デフォルトの名無しさん
21/06/10 11:38:53.73 VzpKjmfX.net
>>5
分かったから>>4で訂正したんでしょ?
7:デフォルトの名無しさん
21/06/10 19:34:32.89 lViDT5hn.net
リストに何でも入るから
思いつきは失敗する
8:デフォルトの名無しさん
21/06/10 21:26:49.02 8fi5Ujsh.net
Pycharmの自動整形には参ったよ
Javaで作ったやつコピペしたらいろいろとやってくれる
リテラルなんか一文字消えてたり空白入れてみたり
実際走らせて気が付くレベル
9:デフォルトの名無しさん
21/06/12 22:29:20.54 0anF7A9v.net
openで開いたファイルオブジェクトをforループで読み込む場合、forにオブジェクトをそのまま添えて一行ずつ読み込めるとのことですが
printするとオブジェクトがそのまま表示されてしまいます(_io.TextIOWrapper~)
みんなのpythonのとおりにやっているつもりですが何がいけないのでしょうか?
python3.7.4を使用しています
10:デフォルトの名無しさん
21/06/12 22:40:15.04 GOzpxksd.net
open(a.txt) as f
でfのメソッド使わないと
fがラッパー
そのプログラム見てみたい
11:デフォルトの名無しさん
21/06/12 22:44:23.46 0anF7A9v.net
>>10
printの引数が間違っていた単純ミスでした
引数に読み込んだ一行の変数でなくオブジェクトの方を指定していました
ありがとうございました、またちょくちょく質問にくると思います
12:デフォルトの名無しさん
21/06/12 22:44:48.20 qlTYomdI.net
>>9
with open(‘path/to/file') as f:
____for line in f:
________print(line, end="")
13:デフォルトの名無しさん
21/06/12 23:31:01.35 0anF7A9v.net
>>12
ありがとうございます、無事解決しました
14:デフォルトの名無しさん
21/06/13 02:45:35.12 6oAiR6bp.net
コマンドライン上(bash)で任意のpythonファイルを実行した時に引数に
色を渡してその色で出力したいのですがどう書けばいいでしょうか?
defの引数に(出力したい色, 出力したい文字列)を渡して
色々やってるのですが、詰んでいてどなたか教えてください。。
スッピン書きでは動作確認取れています。(print(pycolor.RED + word + pycolor.END))
class pycolor:
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
PURPLE = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
RETURN = '\033[07m' #反転
ACCENT = '\033[01m' #強調
FLASH = '\033[05m' #点滅
RED_FLASH = '\033[05;41m' #赤背景+点滅
END = '\033[0m'
15:デフォルトの名無しさん
21/06/13 06:19:52.00 d/vYrCOI.net
VSCode や誰かのモジュールなどに、そういう拡張機能が無いの?
Python の質問と言うよりも、端末の設定の話
16:デフォルトの名無しさん
21/06/13 11:13:39.05 6oAiR6bp.net
コマンドライン上プロンプトや補完機能の色付けとかはbashrcで全て管理してるので問題ない(色付け)です。
Pythonで便利な機能なスクリプト書いたので、そこから測れるか文字列を色付けする方法を知らなくて困ってました。
17:デフォルトの名無しさん
21/06/13 13:08:19.84 6oAiR6bp.net
>>16です
補足でエディター上のシンタックスハイライトの設定ではなく
コマンドライン上の標準出力に色つけしたいという意味です。
18:デフォルトの名無しさん
21/06/13 13:15:17.58 EhTxteT2.net
黒魔術であるところのgetattrとか使えばラクに出来るんじゃね
pycolor."BLACK"
とかで呼び出したいんだろ
でも普通に考えれば連想配列を使う
19:デフォルトの名無しさん
21/06/13 13:31:22.64 1nzveETz.net
何がしたいのかは分かったけど
今度は何でできないのか分からない
20:デフォルトの名無しさん
21/06/13 14:22:53.04 6oAiR6bp.net
class hogehoge:
#
#色の変数リスト省力します
#
def printWithColor(self, color, word):
print(color + word + END)
で出力したいのですが、仮にcolorに赤となる【\033[31m】を展開できないんです。。
selfを消すと引数エラーが出てしまい詰みます。。
21:デフォルトの名無しさん
21/06/13 14:27:14.41 tn2YN+mq.net
windows10のコンソールはエスケープシーケンス効かないけどそれ?
とエスパーしてみる
22:15
21/06/13 14:29:53.03 d/vYrCOI.net
漏れなら、VSCode の拡張機能・テーマなどで探すけど
Terminal Color and Style Highlighting for VS Code
URLリンク(github.com)
「vscode terminal colors extension」「vscode terminal color theme」などで検索してみれば?
23:デフォルトの名無しさん
21/06/13 14:40:04.09 EhTxteT2.net
dic = {
"BLACK": '\033[30m',
"RED": '\033[31m',
"GREEN": '\033[32m'
}
連想配列にすればラクじゃん
24:デフォルトの名無しさん
21/06/13 18:45:52.61 1nzveETz.net
COLOR_DICT = {
"BLACK": '\033[30m',
"RED": '\033[31m',
"GREEN": '\033[32m',
}
COLOR_END = '\033[0m'
def printWithColor(color, word):
print(COLOR_DICT[color] + word + COLOR_END)
そして今度は何か縛り条件が出てくんだろ?
知ってる
25:デフォルトの名無しさん
21/06/13 18:51:41.04 6oAiR6bp.net
できました!!
ご協力いただいた方ありがとうございます!!
class pycolor:
LIST = {
"BLACK": '\033[30m',
"RED": '\033[31m',
"GREEN": '\033[32m',
"YELLOW": '\033[33m',
"BLUE": '\033[34m',
"PURPLE": '\033[35m',
"CYAN": '\033[36m',
"WHITE": '\033[37m',
"RETURN": '\033[07m', #反転
"ACCENT": '\033[01m',#強調
"FLASH": '\033[05m', #点滅
"RED_FLASH": '\033[05;41m', #赤背景+点滅,
"END": '\033[0m'
}
def printColor(self, color, word):
print(self.LIST[color] + word + self.LIST["END"])
26:デフォルトの名無しさん
21/06/13 18:52:25.86 QtPR3o33.net
単純に出力するんじゃなくて、bashに解釈させないとダメなんじゃないの?
echo -e "${python hoge.py}"
こういうイメージ
27:デフォルトの名無しさん
21/06/13 18:58:28.21 fUoO1UdQ.net
import rich
28:デフォルトの名無しさん
21/06/13 21:09:48.44 EhTxteT2.net
こういうことを出来るのは知ってた
Windowsでやったことがある
C言語でターミナルで表示される文字をカラー表示させる : Serendip – Webデザイン・プログラミング
URLリンク(www.serendip.ws)
スネークゲーム
URLリンク(vivi.dyndns.org)
29:デフォルトの名無しさん
21/06/13 21:47:36.32 6oAiR6bp.net
>>27
このモジュールいいですね。
普段からshellscriptは書くのですが、pythonは触ったことがなく四苦八苦しておりました。。。
辞書検索 + 登録アプリでも作ろうかと思ってます。
無事出力出来ました。
みなさんありがとうございます!
URLリンク(imgur.com)
30:デフォルトの名無しさん
21/06/13 21:59:35.61 CH3wHZx1.net
結局何につまづいていたのか
知りたいものだ
31:デフォルトの名無しさん
21/06/14 01:45:14.00 XgAL3CwN.net
未だに分からんよな
32:デフォルトの名無しさん
21/06/14 10:37:51.20 TNhB31Ko.net
色の問題じゃなくてpythonの使い方を知らなかっただけだ
33:デフォルトの名無しさん
21/06/14 18:34:18.68 4CwMrts3.net
pythonでAndroidアプリを作ろうとしたら、どんな環境がありますか?
VSCodeで作れれば一番いいのですが、可能ですか?
34:デフォルトの名無しさん
21/06/14 19:04:01.06 YySv9lVP.net
作って作れないことはないけど苦行の極み
1からkotlin覚える方がまだ早いまである
35:デフォルトの名無しさん
21/06/14 19:07:21.04 hx6guc/Q.net
自分でやるならPyQTぐらい
36:デフォルトの名無しさん
21/06/14 19:07:37.64 4CwMrts3.net
>>34 どうもありがとうございます。
調べてもなかなかないのは、そういう理由ですか。
大人しくAndroid Studioで作ってみます。
あとは、Transcryptでも調べてみるか…
37:デフォルトの名無しさん
21/06/14 19:13:48.59 YySv9lVP.net
凝ったの作らないならpythonで書いて変換系使ってもいいんだけど
ちょっとでも調子乗った瞬間に動かなくなるでな
主観ではpyinstallerの3倍は気を使う
38:デフォルトの名無しさん
21/06/14 19:58:22.16 l+BKKraS.net
どんなのかにもよるけどandroidで動けばいいんならwebアプリ作ってブラウザで動かすて手もある
それならflaskでもDjangoでもいける
39:デフォルトの名無しさん
21/06/15 10:21:34.56 XeCyZroF.net
Pythonでブラウザ内のJavaScriptが持つ変数の値を読みだすことは可能ですか?
40:デフォルトの名無しさん
21/06/15 12:52:49.00 NWTMJvL8.net
スクレイピングしたいのが自分で作ったwebアプリの値取得したいのか分からんけど
スクレイピングならPhantomjsかSeleniumでなんとかなるやろ
webアプリならそもそもjavascript経由せんと直接pythonで受け取ればいいのでは
41:デフォルトの名無しさん
21/06/15 15:23:20.86 dTl1pSLY.net
>>33
SL4A
42:デフォルトの名無しさん
21/06/15 15:24:06.14 dTl1pSLY.net
>>39
Brython
43:デフォルトの名無しさん
21/06/15 16:48:04.29 qJPYDaov.net
drop_indices = [1,3,4]
l1 = [1,2,3,4,5]
l2 = [a,b,c,d,e]
l3 = [.....]
l1~3の要素数は同じです
指定indexを抜いたl1~3が欲しいのですが一番高速なやつを教えてください
対象リストがひとつなら内包表記使うんですが複数リスト相手だとどうすればいいですか?
new1, new2, new3 = [],[],[]
for i,_ in enumerate(l1):
_if i not in drop_indices:
__new1.append(l1[i])
__new2.append(l2[i])
__new3.append(l3[i])
l1 = new1
l2 = new2
l3 = new3
しか分からないです…
できれば外部モジュールなしでおながいします
44:デフォルトの名無しさん
21/06/15 16:50:28.49 qJPYDaov.net
なんで速いのが欲しいかというと
実際のl1~l3が結構長くて
この裁ち落とし処理も複数回呼ぶから
馬鹿にならない感じなのです
45:デフォルトの名無しさん
21/06/15 16:54:06.26 YClXDfsH.net
内包表記3回書けばいいじゃん
それとdrop_indicesはsetにする
46:デフォルトの名無しさん
21/06/15 17:13:12.13 yxrEcVUk.net
まあダサいのはわかるが内包3発かなあ…
47:デフォルトの名無しさん
21/06/15 17:22:55.07 E1asH+ju.net
アクセス時にdropするindexを考慮するとか。
def get_data(index):
index += sum(1 for x in drop_indices if x < index)
return l1[index]
テストしてないです
48:デフォルトの名無しさん
21/06/15 17:51:26.21 ic6VniVo.net
>>43
新しくリストを生成せずに落としたい箇所をNoneにする方法で対応したら?
drop_indicesの要素数、変更対象リストの要素数、変更対象リストの個数(3個固定?)の
値の取りうる範囲や複数回呼ぶ意味によってどういう実装が望ましいかは変わってくる
49:デフォルトの名無しさん
21/06/15 17:58:15.90 dTl1pSLY.net
>実際のl1~l3が結構長くて
外部モジュール使わない訳がない
素直に numpy なり pandas なり使え
50:デフォルトの名無しさん
21/06/15 18:14:18.09 dILRy9B0.net
>>43
if i not in drop_indices
ここの計算量は無視していの?
51:デフォルトの名無しさん
21/06/15 18:37:20.39 TWZkLO+/.net
inのところリストかセットかの違いだけの問題に一票
52:デフォルトの名無しさん
21/06/15 18:37:58.95 YClXDfsH.net
>>43
リスト1つに纏めるのはどうよ
l=[(1,a,…),(2,b,…)..]
53:デフォルトの名無しさん
21/06/15 18:39:02.16 /tfRbTz3.net
長いって言うんならlはミリオン
dropは1000
あたりだろう
もしかすると何らかのウイルスのDNA解析かもしれない
するとl2,l3にはATとCGがペアになって入ってるかもしれない
で、drop_indicesの逆順を生成してこうする
あとは出たのを全部実測して早いの選ぶのがラク
多分リストのappendでのmalloc回数に左右される
new1 = [x for x in l1]
new2 = [x for x in l2]
new3 = [x for x in l3]
for i in drop_indices_invrese:
_new1.pop(i)
_new2.pop(i)
_new3.pop(i)
54:デフォルトの名無しさん
21/06/15 18:48:50.23 dILRy9B0.net
for i in reversed(drop_indices):
__l1.pop(i)
__l2.pop(i)
__l3.pop(i)
55:デフォルトの名無しさん
21/06/15 19:02:46.80 u8BqQmUG.net
dataarray=list(zip(l1,l2,l3))
new.append(dataarray[i])
56:デフォルトの名無しさん
21/06/15 19:49:43.00 KfvfPOTk.net
pythonではじめてwebsocketなる通信をして感動しているのですが
クライアント側のjavascriptで
socket.onmessage = function(e) {socket.send("test msg");}を設定したところ、
websocketサーバー側のログが0.5秒?くらい置きに延々と流れてくるのですが
そういうものなのでしょうか?
そのまま放置していると(無料鯖のため?か)websocketサーバーが止まりました。
57:デフォルトの名無しさん
21/06/15 20:11:02.45 BEepXhp5.net
サーバにデータを送信したらデータを返却するよう実装したんじゃないの?
58:デフォルトの名無しさん
21/06/15 20:32:08.61 KfvfPOTk.net
なるほど
参考にしたサイトが”なでしこ”→"python"で実装されていて
よく見ていませんでしたが改めて見たところ
受信時→WSサーバ全返信
という行を発見しました。
今は制限中なので解けたらその行を消して試してみたいと思います
ありがとうございました
59:デフォルトの名無しさん
21/06/16 01:02:00.77 baQ8tClP.net
Flask
頭の中でフラスコって読んでます?それともフラスク?
60:デフォルトの名無しさん
21/06/16 07:11:03.38 y19mleV6.net
( ^ω^)フラシコ
61:デフォルトの名無しさん
21/06/16 13:20:18.99 mN5o8PJ8.net
>>43
python初心者です。G,C,Pの出現場所を記録したリストを... - Yahoo!知恵袋
URLリンク(detail.chiebukuro.yahoo.co.jp)
>G,C,Pの出現場所を記録したリストを作りたい
>s100 = ['P', 'C', 'G', 'P', 'G', 'C', 'C', 'P', 'G', 'G', 'P', 'C', 'G', 'C', 'P', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'G', 'P', 'C', 'C', 'P', 'G', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'G', 'P', 'C', 'P', 'G', 'G', 'C', 'P', 'G', 'C', 'P', 'C', 'G', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'G', 'P', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'P', 'G', 'C', 'P', 'P', 'P', 'P', 'P', 'C']
なーんか似たような問題が出回ってんな
同一人物か?
62:デフォルトの名無しさん
21/06/16 14:58:53.27 Si4/JcP/.net
学校の課題なのでしょう
63:デフォルトの名無しさん
21/06/16 15:22:04.18 OiJaUQCk.net
同じか……?
64:デフォルトの名無しさん
21/06/16 17:14:18.46 uJQ6HHCX.net
>>61
URLリンク(ideone.com)
s100 = ['P', 'C', 'G', 'P', 'G', 'C', 'C', 'P', 'G', 'G', 'P', 'C', 'G', 'C', 'P', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'G', 'P', 'C', 'C', 'P', 'G', 'C', 'G', 'P', 'P', 'C', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'G', 'P', 'C', 'P', 'G', 'G', 'C', 'P', 'G', 'C', 'P', 'C', 'G', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'C', 'G', 'P', 'G', 'C', 'P', 'C', 'G', 'P', 'C', 'P', 'P', 'G', 'C', 'G', 'C', 'P', 'G', 'C', 'C', 'P', 'G', 'C', 'P', 'P', 'P', 'P', 'P', 'C']
pcg = {'P': [], 'C': [], 'G': []}
for i, s in enumerate(s100):
pcg[s].append(i)
print(pcg)
65:デフォルトの名無しさん
21/06/16 19:58:32.04 aKJkflFH.net
s100のリストを作ることがG,C,Pの
出現場所を記録したリストを作ること
s100があるならやることはない
66:デフォルトの名無しさん
21/06/17 16:25:36.76 JYSb8W8U.net
>>61
ある言語では
echo@I. 'GCP'=/'PCGPGCCPGGPCGCPCGPPCCGGPCCPGCGPPCCGCPGCCGPCPGGCPGCPCGCPPGCGCPGPCCGPGCPCCGPGCPCGPCPPGCGCPGCCPGCPPPPPC'
2 4 8 9 12 16 21 22 27 29 34 37 40 44 45 48 52 56 58 61 65 67 72 74 78 83 85 88 92
1 5 6 11 13 15 19 20 24 25 28 32 33 35 38 39 42 46 49 51 53 57 59 63 64 68 70 71 75 77 80 84 86 89 90 93 99
0 3 7 10 14 17 18 23 26 30 31 36 41 43 47 50 54 55 60 62 66 69 73 76 79 81 82 87 91 94 95 96 97 98
67:デフォルトの名無しさん
21/06/17 20:20:59.14 1IveWNJ3.net
Pythonからmacのシェルコマンドを実行したいのですが引数(ファイル名)が空白と引用符と二重引用符を全て含む時失敗します
例: ファイルコピー)
c1 = 'cp'
c2 = '''s m'p".txt'''
c3 = 'smp2.txt'
p = subprocess.Popen([c1, c2, c3])
p.wait()
「'''s m'p.txt'''」「'''s mp".txt'''」のように引用符が一種類だと大丈夫でした
こんなファイル名でも引数に設定できる方法はないでしょうか?
68:デフォルトの名無しさん
21/06/17 21:10:17.24 pC2mtQih.net
python&エスケープで検索
'\'\'s m\'p".txt\'\''
69:デフォルトの名無しさん
21/06/17 21:59:44.44 1IveWNJ3.net
>>68
ありがとうございます
しかしエスケープしてもやはり同じように失敗します
(コマンドのヘルプが出る)
コマンド側が対応していないのかもしれないですね
70:デフォルトの名無しさん
21/06/18 12:22:12.33 +3NN9ESG.net
"''s m'p\".txt"
71:デフォルトの名無しさん
21/06/18 14:47:10.03 sJhYE6LE.net
python学習にあたりおすすめの参考書はございますか?
現在はpython1年生という参考書が終わりそうです。
72:デフォルトの名無しさん
21/06/19 16:37:39.93 zDrgWeBe.net
scikit-learn いいよね
73:デフォルトの名無しさん
21/06/20 00:15:38.15 md8cXnFb.net
1回目に実行した内容を記憶しておいて2回目に実行した時は処理を変えたいんですけどなんか良い方法ありますか?
具体的には暗証番号入力するプログラム作ってるんですけど暗証番号の入力に失敗したらロックかけて次に同じプログラム実行したらロックかかってますみたいな表示を出すようなことがやりたいです
74:デフォルトの名無しさん
21/06/20 00:18:01.10 md8cXnFb.net
例えばプラグファイル作るでも良いんですけど消されちゃうのであんまり意味ないしジェネレータみたいな感じで1回目の処理を記憶してくれたら良いんですけど
75:デフォルトの名無しさん
21/06/20 02:40:25.03 rz6SzZvo.net
よい方法はないですね
問題の形式が変わっただけで、つまるところ「アプリケーションが保存したデータをユーザーに触られないようにしたい」でしかないので
素直にサーバーに認証回数を保存してください
76:デフォルトの名無しさん
21/06/20 11:50:00.52 2DS4hVGx.net
そんなあー
77:デフォルトの名無しさん
21/06/20 11:53:15.30 l9nv7DGg.net
バイナリ書き換え
78:デフォルトの名無しさん
21/06/20 11:59:36.84 2DS4hVGx.net
なんかメモリー上にアクセスキーを暗号化してキャッシュして保存するみたいのできないんですか?
79:デフォルトの名無しさん
21/06/20 12:10:20.32 2jVSj7S9.net
それじゃ通電中保持するだけでね?
裏で保持プログラム動かしとくのと変わらんのでは
80:デフォルトの名無しさん
21/06/20 16:54:13.54 vSSpHRy4.net
memcached (server だけどローカルPCで動作させても良い)
python-memcached
あるいはレジストリ等
どちらも勝手に消されないように対策すること
81:デフォルトの名無しさん
21/06/20 18:34:49.45 6g3RIy+6.net
>>78
そこまで来るとDBに情報保存した方が早い
82:デフォルトの名無しさん
21/06/20 18:52:22.86 fic9DRbI.net
メモリだろうが何だろうがローカルに暗号化して保存ってのが既に馬鹿馬鹿しい
金庫の上に鍵状態だって分かってるのか?
83:デフォルトの名無しさん
21/06/20 19:36:06.66 Lj9t65si.net
サーバーサイドなら既存のソリューション利用すりゃいいし
ユーザーサイドならもう違法アクセスされてる時点でパスワードどころの騒ぎじゃないし
何故作るのか見えてこない
84:デフォルトの名無しさん
21/06/20 19:49:24.73 akuykRB/.net
>メモリだろうが何だろうがローカルに暗号化して保存ってのが既に馬鹿馬鹿しい
ここだけ切り取ればどこでも普通に行っていることだが?問題はその鍵をどう守るかであって。
85:デフォルトの名無しさん
21/06/20 19:53:01.24 dLsN/Qk5.net
余所のプロセスのメモリ覗く奴がいるからな
86:デフォルトの名無しさん
21/06/20 20:44:34.12 bGnn/scA.net
他人のプロセスを覗けるのは、そのPC・サーバーの管理者だけ
ただし、サーバーが中国にあれば、中国政府に覗かれる。
そういう法律があるから
87:デフォルトの名無しさん
21/06/20 21:09:32.73 4yWZiADR.net
__name__変数について教えてください。
__name__はグローバル変数でモジュール名が格納されていると思います。
ですが、参照をクラス名.__name__とするとモジュール名ではなくクラス名が取得できました。
これはモジュール名が格納されているものとは別の__name__を参照していると思うのですが、どこにある変数を参照しているのでしょうか。
dir(クラス名)としてもそのクラスは__name__変数を持っていないようでした。
88:デフォルトの名無しさん
21/06/20 22:02:33.00 rz6SzZvo.net
普通に `クラス名.__name__` の情報だよ
`dir` は引数にもよるが、全ての属性を報告してくるわけではない
URLリンク(docs.python.org)
URLリンク(docs.python.org)
89:デフォルトの名無しさん
21/06/20 22:17:11.39 wq1/6jdm.net
特殊変数じゃ
90:デフォルトの名無しさん
21/06/20 22:39:48.64 4yWZiADR.net
ありがとうございます。dirですべて確認できると思っていました。
ちなみにですが、関数について↓のような認識でした。
関数は__name__変数を持っていないが関数名.__name__でモジュール名が取得できる。
これはその上位であるグローバル変数の__name__を参照しているため。
これももしかしたら関数の持っている__name__を表示している可能性があるのでしょうか。
91:デフォルトの名無しさん
21/06/20 23:49:53.27 4yWZiADR.net
>>88
「クラス名.__name__」があるのであれば、
クラス内で__name__のようにして変数名だけで参照したときに、クラス名でなくモジュール名が返ってくるのは何故でしょうか…?
質問ばかりすみません、、訳が分からなくなってきました
92:デフォルトの名無しさん
21/06/21 00:03:52.22 jGdEx5NM.net
>>81
そうなるよね
最終的にはもうdbに保存してる毎回呼び出すで良いのではと思えて来た
93:デフォルトの名無しさん
21/06/21 09:16:37.64 b28M8oMP.net
クラスはスコープを作らない。
パッケージグローバル変数を読んでるだけだ。
別に__name__固有の話ではない。
94:デフォルトの名無しさん
21/06/21 14:06:55.24 os4CEfZ3.net
何かの自動化ツールでpasswordを含むプロジェクトがあるとして
githubにうっかりpasswordあげる事故を防止したい
passwordは入力が面倒なのでローカルに保存しておきたい
こんなとき正しいというか定石ってどんなのがある?
95:デフォルトの名無しさん
21/06/21 15:17:05.73 wnQSc3ge.net
環境変数から入力することを徹底するのと
コミットをgit-secretsみたいなので未然に防ぐことかな
この辺はPythonとあまり関係ないけどね
(どの言語でも守られるべき)
96:デフォルトの名無しさん
21/06/21 15:52:44.89 t1WQxVIN.net
pycriptとかで暗号化じゃダメなのか?
97:デフォルトの名無しさん
21/06/21 15:55:22.95 t1WQxVIN.net
年収調べたいので三井住友bankのソースコードをgitにあげたいんですけどどうしたらバレませんか?^ ^
98:デフォルトの名無しさん
21/06/21 19:47:08.24 pouVmMZT.net
torとghostsurf でggr
99:デフォルトの名無しさん
21/06/21 20:00:00.26 lEZW5cAy.net
try-except
って遅くないけど、if-elseのような感じで動いてるわけじゃないのですか?
100:デフォルトの名無しさん
21/06/22 01:12:59.15 cAGj2bSl.net
>>87ですがやっと理解できました。
__name__は単独で使ったときとオブジェクトに繋げて記述したときとで戻り値が違うのですね。
ありがとうございました。
101:デフォルトの名無しさん
21/06/22 23:33:39.51 c2+v+nSA.net
flaskからpostgres操作するライブラリから使うなんちゃらがインストールできない。
後から追加するライブラリが多いとなんだかんだで環境構築の難易度が上がるのでフルスタックのdjangoとかローコードで良いと思った・・・
102:デフォルトの名無しさん
21/06/23 00:00:50.45 8eXIGtIl.net
え?仮想環境入れてないの
マジで?馬鹿じゃないの?
103:デフォルトの名無しさん
21/06/23 07:48:46.56 xA3/S05N.net
あるひとつのフォルダの中身が一定時間後に変わってないことを確認したいんだけど
中身全部ハッシュとって比較するしかないですか?
104:デフォルトの名無しさん
21/06/23 11:16:11.54 Ps8ud9Ds.net
ファイルのコンテンツ以外に信頼できる情報がないならそうするしかないんじゃない?
コンテンツの更新が必ずst_mtimeの更新を伴うとか、制約が増やせるなら検証範囲は絞れそうだけど
105:デフォルトの名無しさん
21/06/23 12:47:09.88 Dblyz7cX.net
>>94
Ruby on Rails では、credentials という機能があって、
デフォルトで、credentials.yml.enc という暗号化されたファイルと、
その解読キー・master.key がある
master.keyは、.gitignore に書かれているので、
credentials.yml.encを、そのままリポジトリに入れても大丈夫
credentials.yml.encを解読すると、
YML 形式で、AWS の設定などが書かれている
# aws:
# access_key_id: 123
# secret_access_key: 345
106:デフォルトの名無しさん
21/06/23 13:08:26.79 6jEPjWCz.net
OSによるけどフォルダの内容変わったら通知来るAPIがあるものもある
107:デフォルトの名無しさん
21/06/23 13:15:55.78 qxrmA+Nu.net
ruby関係ないし
108:デフォルトの名無しさん
21/06/23 19:42:09.00 Z7fMxROS.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
109:デフォルトの名無しさん
21/06/23 20:49:57.20 uwF5rJUS.net
ルビー基地外クソわろ
全てルビーの機能だと思ってんだろうなw
110:デフォルトの名無しさん
21/06/24 01:11:07.96 ZhZSLtyl.net
ドン・キホーテが世の中の全てを騎士道物語として捉えるようなモンだろ
111:デフォルトの名無しさん
21/06/24 11:34:57.39 H+zrwBY+.net
x = [1,5,3]
n = 4
のとき
[[1,2,3,4], [5,6,7,8], [3,4,5,6]]
が欲しい
どう書いたら簡潔ですか?
112:デフォルトの名無しさん
21/06/24 11:44:52.69 52QaJPvq.net
x2 = [[j for j in range(i,i+n)] for i in x]
113:デフォルトの名無しさん
21/06/24 12:17:24.20 H+zrwBY+.net
rangeそう使えるの知らなかった…ありがとう
114:デフォルトの名無しさん
21/06/24 12:29:16.33 d0WSinGu.net
>>110
x=[1,5,3]
n=4
y=[list(range(i, i + n)) for i in x]
115:デフォルトの名無しさん
21/06/24 12:36:29.47 52QaJPvq.net
rangeはそのままでいいのか。勉強になった。
116:デフォルトの名無しさん
21/06/24 19:03:03.87 Kxz6ONml.net
みんなあたまいいなあ
俺馬鹿だからそんなかっこいいコード思いつかないなあ
参考になるわ
[list(range(x[i], x[i]+n)) for i in range(n-1)]
117:デフォルトの名無しさん
21/06/24 19:09:37.98 Kxz6ONml.net
>>114が一番綺麗だと思う
模範解答やね
118:デフォルトの名無しさん
21/06/24 19:15:27.36 OtDRXCUu.net
問題集でもやっとんのけ
119:デフォルトの名無しさん
21/06/24 20:26:31.26 cBTjhTLo.net
問題集ていや先日
要素数(size)と折り返し(rep) の引数を取って
例えばsize=5, rep=2のとき
1_1
1_2
2_1
2_2
3_1
って右がrepするたびに左が増えるやつ欲しいって言われたんだけど
一瞬まったく意味わからんくて笑った。死ぬかと思った
120:デフォルトの名無しさん
21/06/24 20:35:56.55 76Eu+yJ9.net
forの二重ループで回せばいいだけじゃないの普通に…
121:デフォルトの名無しさん
21/06/24 20:42:19.45 H+zrwBY+.net
size=10
rep=3
for i in range(size):
__l=(i//rep)+1
__r=(i%rep)+1
__print(l, r)
こうか
算数怖い
122:デフォルトの名無しさん
21/06/24 20:48:54.16 ev/ZN6Zz.net
えw
それそんな難しいことしなきゃダメなのw
123:デフォルトの名無しさん
21/06/24 20:50:25.36 ev/ZN6Zz.net
これじゃダメなんけw
size=10
rep=3
[str(i)+'_'+ str(j)for i in range(1, size+1) for j in range(1, rep+1)][0:size]
124:デフォルトの名無しさん
21/06/24 20:54:54.61 Uf6wilZL.net
119を123で書いてきたら俺は殴る
125:デフォルトの名無しさん
21/06/24 21:39:25.89 Xj45HSPz.net
def enumrep(size,rep):
_i=0
_b=0
_while True:
__b+=1
__for a in range(rep):
___i+=1
___yield str(b)+'_'+str(a)
___if i>=size:
____return True
for i in enumrep(10,2):
_print(i)
126:デフォルトの名無しさん
21/06/24 21:44:30.95 PG/lAwcj.net
コードは長くなるけどgenとtake(=islice)を分けたほうがわかりやすいしメンテしやすい
127:デフォルトの名無しさん
21/06/24 21:48:35.74 PG/lAwcj.net
def gen_items(rep):
__if rep < 1:
____return
__i = 1
__while True:
____for j in range(rep):
______yield f"{i}_{j + 1}"
____i = i + 1
for x in islice(gen_items(3), 10):
__print(x)
128:デフォルトの名無しさん
21/06/24 23:27:17.31 2xxS1rw4.net
pathlibのiterdir()でwindowsの$recyclebinやらsystem volume infomationやらといった
隠しフォルダをスキップする方法はありますか?
129:デフォルトの名無しさん
21/06/25 08:30:16.10 5m+oUY25.net
別に内包表記でもインデントさせていいんですよ
130:デフォルトの名無しさん
21/06/25 09:19:24.73 bhmn+MFf.net
お前らもっと内包表記とラムダ使っていこうぜ!
131:デフォルトの名無しさん
21/06/25 09:50:24.98 gA4+2U8+.net
>>128
突然難易度上げるな
くだすれだぞ ていうか俺もこれ以外どうやればいいか分からん
import pathlib
import tkinter.filedialog as tkfd
import ctypes
from os import stat
from stat import (
_FILE_ATTRIBUTE_HIDDEN as H,
_FILE_ATTRIBUTE_SYSTEM as S,
_FILE_ATTRIBUTE_READONLY as R)
p = tkfd.askdirectory()
for i in pathlib.Path(p).iterdir():
_attrs = stat(i).st_file_attributes
_check = (bool(attrs&H), bool(attrs&S), bool(attrs&R))
_if any(check):
__print(i, check)
132:デフォルトの名無しさん
21/06/25 09:50:43.51 eijvgSCB.net
嫌どす
133:デフォルトの名無しさん
21/06/25 13:35:46.23 hgpS2vwl.net
機械学習の数学各分野て分野は紹介されてるけど結局どこまで勉強すればいいのかわからん
例えば線形代数を対角化までやったけどLU分解とか初学者向けの本には乗ってないやつも勉強せんなんの?
134:デフォルトの名無しさん
21/06/25 14:28:27.22 Wd+wOk9Z.net
行列計算のアルゴリズムまで自分で実装(特にpython)することは無いだろう
使い方だけ知ってればOKなパターン
135:デフォルトの名無しさん
21/06/25 15:35:46.76 vlMp8RRH.net
Ruby で作ってみた
numbers = [ 1, 5 ]
size = 3
# to_a で、範囲を配列化する
p results = numbers.map{ |init_num| ( init_num...init_num + size ).to_a }
#=> [[1, 2, 3], [5, 6, 7]]
#--------------
size = 3
rep = 2
# 2次元配列
results = ( 1..size ).map do |left_num|
( 1..rep ).map{ |right_num| "#{ left_num }_#{ right_num }" }
end
puts results
出力
1_1
1_2
2_1
2_2
3_1
3_2
136:デフォルトの名無しさん
21/06/25 16:26:01.91 Wd+wOk9Z.net
どこの誤爆よ
137:デフォルトの名無しさん
21/06/25 17:04:03.61 xue6gzfb.net
このルビキチはシェルスクリプトスレにも書き込んでたガチの基地外なのです
138:デフォルトの名無しさん
21/06/25 17:06:47.97 7PD1ckkM.net
無差別爆撃なので誤爆じゃない
Ruby信者のようで実質Rubyアンチな異常者によるテロ行為
139:デフォルトの名無しさん
21/06/25 17:58:50.13 k0/VHtDX.net
ム板に来て本当にrubyが嫌いになったから、彼の試みは完全に成功している
140:デフォルトの名無しさん
21/06/25 18:47:16.58 SMv7sy5/.net
リアル職場ではコミュニケーション取れているのかが気になる
141:デフォルトの名無しさん
21/06/25 19:18:02.12 X8cOj63K.net
無職じゃね?
142:デフォルトの名無しさん
21/06/25 19:23:44.62 RM0Dpgjh.net
>>119
f=: 4 : 0
>: ( x , y ) #: i. x
)
___5 f 2
1 1
1 2
2 1
2 2
3 1
143:デフォルトの名無しさん
21/06/26 08:37:57.19 92XkTmJ1.net
機械学習のお勉強始めたは
中卒のおいらにはそもそも微分とかきいたことなさすぎてつらひ
144:デフォルトの名無しさん
21/06/26 10:07:13.38 TDiYD9T2.net
ま九十九里浜の海岸線の長さはいくつだい?
145:デフォルトの名無しさん
21/06/26 11:40:46.23 IEuGypw6.net
∞
146:デフォルトの名無しさん
21/06/26 11:54:39.83 aONBfxlZ.net
中卒で機械学習て何ができるんや
フレームワーク使うのも指示された通りにしてるだけで何の値操作してるのか理解できなさそう
147:デフォルトの名無しさん
21/06/26 12:08:13.88 UhEO8DM5.net
つかまず前処理で止まるやろ
148:デフォルトの名無しさん
21/06/26 13:40:25.05 BFpvs59u.net
>>146-147
中卒馬鹿にしやがって許さねえからな
149:デフォルトの名無しさん
21/06/26 14:11:37.50 cKS/UcnU.net
その意気で見返してみろ
150:デフォルトの名無しさん
21/06/26 17:03:03.29 TqdTR7t2.net
算数の復習から始めたほうがいい、マジで
151:デフォルトの名無しさん
21/06/26 19:22:30.07 dvpuBJnF.net
今微分の勉強して傾きと切片っていうの理解したわ
馬鹿にしたやつ覚悟してろよ9m
152:デフォルトの名無しさん
21/06/26 20:11:16.22 LeOl9KfK.net
>>151
次は積分だな
その前にイプシロン-デルタかもしれんが
153:デフォルトの名無しさん
21/06/26 20:42:50.01 UhEO8DM5.net
def 雇用(people):
..if people >= 高卒:
....if people >= 実務経験:
154:デフォルトの名無しさん
21/06/26 21:03:33.77 6sjjJ5as.net
MIT も、Julia へ行ってる。
大学院数学科とかじゃないと採用されない
だから皆、文系はRuby on Rails へ行く。
英語さえ出来れば、文書を読めるから
155:デフォルトの名無しさん
21/06/26 21:05:37.21 R2OdYklz.net
>>154
スレタイも読めないお前が何を言っているんだ
ギャグセンスは一流だな
156:デフォルトの名無しさん
21/06/27 10:27:42.26 3P9Fscem.net
>>153
高卒以下のコード書くなよw
def 雇用(people):
..if people.academicHistory>= 高卒 and people.skill >= 実務経験:
…
だろ
157:デフォルトの名無しさん
21/06/27 11:03:04.37 nIt5B8/A.net
お前こそ中卒だろ。なんだよHistoryって。
TitleまたはDegreeだろ。
158:デフォルトの名無しさん
21/06/27 11:11:11.64 dEiG0OR8.net
バカはこれだから…
title は肩書、degree は学位でお前みたいな高卒以下に関係ない属性なw
159:デフォルトの名無しさん
21/06/27 12:26:23.00 HfXxTqRR.net
愚かなギャグのせいでRubyガイジの方が優れている一面を見せてしまった
160:デフォルトの名無しさん
21/06/27 12:30:57.00 d7u3fSB/.net
今どきのPythonistはそういうのはまとめてAIにぶち込んでなんとなくいい感じに判断する
161:デフォルトの名無しさん
21/06/27 12:43:14.16 G7M856dZ.net
そもそも AI ω は意味なんて理解していない
162:デフォルトの名無しさん
21/06/27 12:52:09.26 ZQs2/men.net
お前らPythonicなコードを書けよPythonicなコードを
163:デフォルトの名無しさん
21/06/27 12:54:10.14 ZQs2/men.net
微分積分なんて概要を理解すればいいんだよ
別に包丁がなんで出来ていてどういう歴史があるかなんて知る必要はなくて俺らに必要なのは包丁で野菜を切るただそれだけなのだから
164:デフォルトの名無しさん
21/06/27 15:37:00.86 8YEnojkX.net
まあわざわざ極限使って計算することはなくて形式微分か形暗記したものを手計算なら使うしpcなら数値計算だもんな
微積の傾きと面積の関係、物理単位なら乗数が増減することが分かってれば困ることはない
165:デフォルトの名無しさん
21/06/27 16:35:57.54 QiH1o3Ks.net
楕円の面積は簡単に求められるのに
外周の長さを求めようとすると結局積分が必要になる。
長いほうの直径が27、短いほうの直径が6の楕円の場合
外周の長さを.以下2桁まで求めるには実際にはどうやる?
166:デフォルトの名無しさん
21/06/27 17:00:31.72 HfXxTqRR.net
そーゆーのは高校生の甥っ子にでも出題してマウントってろ白痴
167:デフォルトの名無しさん
21/06/27 17:47:59.81 IGTucaq9.net
degree って普通、象限の事かと思っていたわ
168:デフォルトの名無しさん
21/06/28 04:45:13.70 mjwjNK+P.net
pipenv installで環境構築した後に行う
pipenv shellって何なんですか??
構築した環境以外にもcdできたりrmしたcpしたり
よく意味がわからないのですが。。。
169:デフォルトの名無しさん
21/06/28 09:57:17.80 /8Q9yNC8.net
virtual envをactivateした状態のshellを起動するコマンド
pipenv -hでhelp見て
170:デフォルトの名無しさん
21/06/28 10:52:04.76 pZ6wi+C3.net
pythonって便利なんだな
URLリンク(twitter.com)
(deleted an unsolicited ad)
171:デフォルトの名無しさん
21/06/28 11:40:56.85 vg7m4LKe.net
それリツイートで見たw
172:元気な仔馬
21/06/28 11:46:07.23 3eu2Zryg.net
ラズパイ4でpythonを始めたブログラム初心者です。
python 1年生という書籍の例として入っている文、 PIL.ImageTkというモジュールで悩んでいます。 自分が使っている環境ではこのモジュールが入ってなく、前に進めません。
バージョン違いのものでも動く、これの代わりになるモジュールが ありましたら、 教えていただけませんか?
173:デフォルトの名無しさん
21/06/28 12:13:01.95 /8Q9yNC8.net
>>172
なければインストールしなよ
URLリンク(pillow.readthedocs.io)
174:デフォルトの名無しさん
21/06/28 12:24:21.25 XSoi24Ug.net
>>170
それインスタンスがリークしないか?
175:デフォルトの名無しさん
21/06/28 12:33:10.14 9lV5OqBm.net
from iZoo import encho
176:元気な仔馬
21/06/28 14:40:47.37 3eu2Zryg.net
>173
ありがとうございます
しかし試してみましたがインストール中にエラーになったっぽいです…
状況は変わらず…
177:デフォルトの名無しさん
21/06/28 14:52:36.48 lNsRTxVu.net
いや状況は変わってるだろ
エラーになったから諦めるんじゃなく、どういうエラーか確認して対処すればいいじゃん
だいたいのエラーはエラー文そのままでググれば解決法が出るし、
出ない場合はここにどんな環境で何がしたくて何をしてどうなったかとエラー全文貼れば教えてくれる人も居るでしょ
178:デフォルトの名無しさん
21/06/28 16:46:51.40 V/YMeLZd.net
.foo.xxx_var
.foo.foo.yyy_var
この二種類の形式の文字列があるとき
xxxとyyyを正規表現で抜くにはどう書いたらいいですか?
179:デフォルトの名無しさん
21/06/28 16:55:20.40 JcAv6JCW.net
.+[^\.]+\_var
180:デフォルトの名無しさん
21/06/28 17:18:57.12 quG4wdoj.net
正規表現のスレで、聞いた方がよい
181:デフォルトの名無しさん
21/06/28 18:11:49.59 V/YMeLZd.net
>>180
ああ正規表現スレってあるんですね
失礼しました
182:デフォルトの名無しさん
21/06/28 20:34:53.02 kbwv0g/L.net
正規表現て役に立つけど電話番号とかメアドみたいなよく使われるやつじゃないと他人が見たときわけ分かんないし自分も後で見たらわけ分かんなかったりするよな
よくスクレイピングするやつとか正規表現使う頻度にもよるんやろうけど
183:デフォルトの名無しさん
21/06/28 20:54:22.62 uYdbYpLI.net
共感得てポンコツなのは自分だけでは無いと安心したいのかな?
余程複雑長大なものでも無ければ解釈に大して手間取らないと思うが
184:デフォルトの名無しさん
21/06/28 21:23:46.27 gXPrfTZo.net
>>172
つ Google colab
185:デフォルトの名無しさん
21/06/28 22:13:39.69 pZ6wi+C3.net
>>182
電話番号やメアドこそ、正しく正規表現で表そうとするとわけがわからんくなるぞ
186:デフォルトの名無しさん
21/06/28 23:28:31.01 cZa6zFVz.net
メアドはともかく電話番号で悩むところあるか?
187:デフォルトの名無しさん
21/06/28 23:56:15.26 G75AEbDR.net
それこそ正規表現のスレ行ってください
188:デフォルトの名無しさん
21/06/29 00:11:40.44 SX3qNymL.net
ところで俺の正規表現を見てくれ
189:デフォルトの名無しさん
21/06/29 00:48:34.27 SOQ8GKtA.net
誰にもmatchしないソレのことか?
190:デフォルトの名無しさん
21/06/29 01:16:00.60 wJmyktbp.net
もう^.*$でいいだろ面倒臭い
191:デフォルトの名無しさん
21/06/29 06:09:40.51 tBEGF5OC.net
>>186
今また変わってるけど、July 06, 2011時点だとこんな感じ
URLリンク(blog.livedoor.jp)
192:デフォルトの名無しさん
21/06/29 06:42:38.70 3+LFbHws.net
>>191
パズルとしてならいいけど実務でやってるなら単なるバカ
193:デフォルトの名無しさん
21/06/29 07:15:42.92 tBEGF5OC.net
「正しく正規表現で表そうとするとわけがわからんくなる」が伝わらんかったみたいだったからサンプル出したけど、まぁこのレベルの精度が必要なら正規表現じゃやらんわなw
194:デフォルトの名無しさん
21/06/29 07:41:10.41 MxyOwUyS.net
>>191
厳密に言えば「総務省公表のデータにマッチする正規表現」か。
そこに含まれていない範囲だって未割当の電話番号に違いないでしょ。
195:デフォルトの名無しさん
21/06/29 07:46:39.05 kJlgCPwb.net
電話番号と同じパターンの別の番号が出てきたらどうすんだろ
気づかず置換して事故るんかな
196:デフォルトの名無しさん
21/06/29 07:47:50.85 3NHpnvwy.net
正規表現でウダウダ言う奴ってこういうアスペ的なバカばっか
197:デフォルトの名無しさん
21/06/29 08:29:49.41 tBEGF5OC.net
>>194
ゆるいバリデーションなら、総務省のやつだろうね
アレは楽
リンクのやつは多分各事業者の情報も加味してある
このレベルで実装するなら、メンテが必要なんで、継続的な更新のあるライブラリが必須だね
個人的にはやりたくないw
他言語の資料だけど、これが面白かった
URLリンク(speakerdeck.com)
198:デフォルトの名無しさん
21/06/29 08:30:57.71 tBEGF5OC.net
ごめん
リンク間違ったw
URLリンク(speakerdeck.com)
199:デフォルトの名無しさん
21/06/29 08:55:46.98 1h4nclxf.net
今日は中卒の俺が単回帰分析覚えたぞ?
バカにしたやつ震えるがいいw
200:デフォルトの名無しさん
21/06/29 09:05:44.12 tBEGF5OC.net
>>199
お前がどんなに頑張って俺に追いつこうとしても、俺のいた場所にお前がついたときには俺はお前の少し前に進んでる
永遠に追いつけないんだ!
byゼノン
201:デフォルトの名無しさん
21/06/29 12:30:53.94 S91QebJL.net
>>200
あいたたw
202:デフォルトの名無しさん
21/06/29 17:50:23.25 SOQ8GKtA.net
>>200
こういう引用する方が中卒、いや中坊っぽい
203:デフォルトの名無しさん
21/06/29 19:22:41.33 vRfx68y2.net
なんかたまに名言でドヤって来るやついるけどダサいよな
内容より誰が言うかやからな
あとゲームとか漫画の引用は中学生までや
204:デフォルトの名無しさん
21/06/29 19:36:36.48 1h4nclxf.net
やれやれだぜ
205:デフォルトの名無しさん
21/06/29 20:19:27.59 eB1TyNRb.net
まんがじゃないよ…
206:デフォルトの名無しさん
21/06/29 21:30:03.66 MxyOwUyS.net
そういわれると「ゼノンのパラドックス」ってすごい厨二ネーミングに見えてきた。。。
207:デフォルトの名無しさん
21/06/29 21:44:38.04 1h4nclxf.net
いやダイクストラのアルゴリズムのが厨二っぽい
208:デフォルトの名無しさん
21/06/29 21:54:10.56 MxyOwUyS.net
どっちが上とか言い出したら「フェルマーの最終定理」
209:デフォルトの名無しさん
21/06/29 23:42:32.20 hw58oJ3l.net
次元の呪い
210:デフォルトの名無しさん
21/06/30 00:19:49.96 lUxCO1IZ.net
これは何歳までだとか自分がどう見られるかに拘ってる内はまだまだガキ
211:デフォルトの名無しさん
21/06/30 04:50:10.49 dkF+z6Xg.net
飛んでる矢を止めてるのは俺かDioか、それが問題だ
byゼノン
>>204
中卒、おもろいなw
212:デフォルトの名無しさん
21/06/30 07:48:27.13 D9KqFPaB.net
httpサーバー立てるときに
@route('/')
def index():
_pass
@route('hoge')
def hoge():
_ pass
という風に分けるのですが
index()ではimport sample1を
hoge()ではimport sample2をしたいとき、
一番上(defの外)にまとめてimport sample1,sample2とするのかそれとも
index(),hoge()の中それぞれでimportした方がいいのか
何か慣習はあるのでしょうか?
213:デフォルトの名無しさん
21/06/30 08:54:34.29 fR3i2rdt.net
httpサーバーであるという情報とかデコレーターが付いてるのとかが質問にどう関わるのかよく分からんが、sample1モジュールはindex関数だけから、sample2モジュールはhoge関数だけから使われるケースで何処でimportするか、ということなら、俺の場合
index()やhoge()が__name__ == '__main__'が真であるときにのみ呼ばれるならindexやhogeの中で、そうでないならソースの先頭でimportしてる
つまり、そのソースが単体で実行されるときにしか使わないモジュールは、モジュールとして他のコードにimportされるときにはimportしたくない、という貧乏根性
214:デフォルトの名無しさん
21/06/30 09:39:57.08 QIg09vqW.net
>>212
特別な理由がない限りは全て先頭でimportしたほうがいい
importは重い処理だしエラーを発生させやすいので、なるべく起動時に済ませてしまった方がアプリの挙動が安定する
毎回実行される訳ではないが、初回実行のタイミングの問題だ
Webアプリで特定のアクションが呼ばれたときにエラーで落ちるとか初回実行時だけやたら遅いとかデバッグするの嫌でしょ
逆に、必要になったときに初めて読み込むことで起動時間やメモリ消費を抑えるテクニックもあるが、役に立つのは分散処理フレームワークなど極めて特殊なケースだ
215:デフォルトの名無しさん
21/06/30 10:47:08.67 x9tVpfG6.net
そもそもめったに使わない(まったく使わない)機能のために
依存関係増やしたくないしな
216:デフォルトの名無しさん
21/06/30 21:12:10.78 iVkkZXbL.net
Ruby のrequire は、同じファイルを1回しか読み込まないので、簡単
217:デフォルトの名無しさん
21/06/30 22:30:32.84 EN4MKAxN.net
Rubywww
218:デフォルトの名無しさん
21/06/30 22:57:27.70 C441gc0U.net
RubyとMindはオワコン。
219:デフォルトの名無しさん
21/06/30 23:06:38.74 N62KG6DK.net
利用率ではもはやPerlとどっこいなRuby
220:デフォルトの名無しさん
21/07/01 09:12:46.98 47t/afFm.net
string = '<001>_<9>'
size = 3
から
strings = ['001_9', '002_10', '003_11']
文字列中のタグ部分を任意の長さだけカウントアップした配列が欲しい
def multiple_counting(size, string):
_pat = re.compile(r'<(\d+)>')
_tags = pat.findall(string)
#カウント作成
_counters = []
_for tag in tags:
__counters.append([str(int(tag)+1).zfill(len(tag)) for i in range(size)])
#書き換え
_strings = [string]*size
_for counter in counters:
__strings = [pat.sub(count, string, 1) for count, string in zip(counter,strings)]
_return strings
なんか便利な関数とか、もっとシュッとしたやり方とかあると思うんですが
知らないので教えてください.あと再帰関数使いたかったけど挫折しました
221:デフォルトの名無しさん
21/07/01 09:53:11.45 n7sulsnm.net
置換マップみたいなのなかったっけ
222:
21/07/01 10:36:03.88 Ipwd3DUh.net
>>220
[re.sub(r'<([0-9]+)>', lambda m: f'{{:0{len(m[1])}}}'.format(int(m[1]) + i), string) for i in range(size)]
223:デフォルトの名無しさん
21/07/01 18:34:44.42 47t/afFm.net
>>222
ありがとうございます
224:デフォルトの名無しさん
21/07/01 19:00:33.74 s31eTWYH.net
今日は重回帰分析勉強したわ
スカラーベクトル行列転置をやったけど逆行列って言うのがよくわからねえわ
そろそろ中卒の俺の頭もセグメンテーションエラーだわ
じゃあの
225:デフォルトの名無しさん
21/07/01 19:55:12.97 m9mL4lnU.net
>>224
誰もお前に興味ないから無駄な報告は要らんぞ
226:デフォルトの名無しさん
21/07/02 08:18:08.33 tPTf4bIR.net
>>225
お前俺に興味津々だな
また来るわじゃあの
227:デフォルトの名無しさん
21/07/02 08:46:35.95 9LnHCrkz.net
>>224
さきに高校数学と線形代数やれ
228:デフォルトの名無しさん
21/07/02 13:03:57.17 cZhhmJXr.net
>>227
もちろんやったわ
スカラーベクトル行列は理解したわ
229:デフォルトの名無しさん
21/07/02 13:17:37.81 9LnHCrkz.net
それで逆行列が分からんのに何を理解したというねん
230:デフォルトの名無しさん
21/07/02 13:26:09.60 m4gnkicM.net
はい出ましたw
きちんと理解してないから分からないとかいう奴www
231:デフォルトの名無しさん
21/07/02 13:32:26.18 ILBLMl6W.net
やつ
232:デフォルトの名無しさん
21/07/02 17:57:31.72 Xm/bZCrF.net
value: int みたいに型指定したほうがいいの?
233:デフォルトの名無しさん
21/07/02 21:23:10.28 SG4SXaSP.net
Python処理系は今のところdataclassのフィールド生成くらいにしかタイプヒントを利用しない
それ以外のタイプヒントは完全にタイプチェッカー向けで、タイプチェッカーを利用しないならつける意味はない
234:デフォルトの名無しさん
21/07/02 21:53:09.57 QH8xfbBh.net
逆行列のどこが分からないのかな
AB=I
Iは単位行列
のときBはAの逆行列
235:デフォルトの名無しさん
21/07/02 22:17:24.51 E59Amcuv.net
逆元が分からんのだろ
行列やってる段階の奴が群知ってるとは思えないが
236:デフォルトの名無しさん
21/07/03 09:39:19.49 UqPPpbRy.net
>>234
いや単位行列は斜めに1があるやつで
逆行列は普通の行列に逆行列をかけると単位行列になるって言うのはわかるんだよ
ただその後これはスカラーですだのこれはベクトルですだの出てきて記号いっぱいになると途端に訳が分からなくなるのだよ分かる?
行列積があーだのこーだの
237:デフォルトの名無しさん
21/07/03 09:40:33.15 UqPPpbRy.net
>>235
偉そうなやつだなあ
友達いないだろお前?
238:デフォルトの名無しさん
21/07/03 11:01:50.13 gq7PWL9B.net
>>236
馬鹿には無理
239:デフォルトの名無しさん
21/07/03 11:06:01.41 MyiFvpsW.net
おっさんは行列を高校でやってるからなあ
240:デフォルトの名無しさん
21/07/03 11:53:08.74 ENhcG6bL.net
内積、外積
241:デフォルトの名無しさん
21/07/03 12:45:29.69 WO4lFPcp.net
>>236
>分かる?
とか言われてもその気持ちは分からんなぁ
普通に行列やって普通に単位取れたってことは特に苦労しなかったんだから、
ワケが分からなくなることがなかった
記号が一杯でも初見で大丈夫だったからお前の気持ちは一切分からん
242:デフォルトの名無しさん
21/07/03 14:35:42.16 ZeViGhZj.net
関流に弟子入りするべき
243:デフォルトの名無しさん
21/07/03 16:40:21.53 mObkgdSa.net
>>236
とりあえずは普通の掛け算だと思って
(可換則は成り立たないけど)
大丈夫なんだが
244:デフォルトの名無しさん
21/07/03 17:33:35.17 KyOEtNLT.net
pythonってプログラミング言語の中では簡単な方って本当ですか?
最近勉強してるんですが難し過ぎるんですが
245:デフォルトの名無しさん
21/07/03 17:57:04.61 2G/hXmzA.net
[[1,2,3], [1,2,3], [1,2,3]]
がほしいとき
[[1,2,3]*3]じゃなくて[[1,2,3]]*3だけど
感覚的には前者なので違和感が強いです
なんかいい感じに納得させてもらえませんか
246:デフォルトの名無しさん
21/07/03 18:07:23.78 bc4tv4Cc.net
>>244
言語としては簡単な方だよ
ただ言語の難しさとプログラミングの難しさって別だからね
言語の選択ってのは迷路の広い入り口を選ぶか狭い入り口を選ぶかであって、迷路を進み始めると後は同じなんだよ
247:デフォルトの名無しさん
21/07/03 18:15:50.79 WO4lFPcp.net
かんたん言ってる奴は先に別の言語をやってた可能性が高い
それに比べるとかんたんと言ってる
248:デフォルトの名無しさん
21/07/03 19:42:13.76 KyOEtNLT.net
>>246
なるほど
一つの言語を極めると他の言語を覚えるのは簡単と言うのが分かった気がします
pythonを極められるように頑張ります
249:デフォルトの名無しさん
21/07/03 20:08:02.32 IMGL3rxE.net
>>245
'aho'*3は
'ahoahoaho'になる
''や[]は*3に文字列やリストを渡す
役目があって*3の前に役目を終えている
250:デフォルトの名無しさん
21/07/03 21:33:02.67 I7Zt9Z8V.net
合成関数のとことかシグモイド関数の微分とかお前らモヤらんのか?
中卒野俺にはわからんがめっちゃ頭いいな
251:デフォルトの名無しさん
21/07/03 23:09:47.68 91vjT9iB.net
頑張って一般化逆行列を理解しよう
252:デフォルトの名無しさん
21/07/03 23:27:47.89 avhnjRXY.net
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
初心者は、Ruby on Rails から始める
Python, PHP も勧めていない
バックエンドは、Ruby → Go という路線
253:デフォルトの名無しさん
21/07/04 00:07:57.92 DDnLb3K7.net
ケンタはあわしろ氏の一番弟子。
実力は折り紙付き。
254:デフォルトの名無しさん
21/07/04 03:15:46.12 kVVHiiiU.net
TIOBEのTOP10から転落した落ち目言語はポイーで
255:デフォルトの名無しさん
21/07/04 08:47:31.64 5abFjuPT.net
範囲内、重複なしのreq_indexでdb(リスト)からデータ取得する
selection = [db[idx] for idx in req]
こういうのの逆で、渡されたreqに含まれてないidxデータ取得するとき、一番スマートなのはどういう書き方?
256:デフォルトの名無しさん
21/07/04 08:50:25.61 5abFjuPT.net
db[あ,い,う,え]
req[0,2]
get[い,え]
ていう場合
257:デフォルトの名無しさん
21/07/04 10:13:27.09 hbHHSLi0.net
>>255
[[i, v] for i, v in enumrate(db) if i not in req]
おわり
258:デフォルトの名無しさん
21/07/04 10:17:54.09 pili1Lz/.net
>>245
[3*3] -> [9]
[3]*3 -> [3, 3, 3]
[[3*3]] -> [[9]]
[[3]*3] -> [[3, 3, 3]]
[[3]]*3 -> [[3], [3], [3]]
259:デフォルトの名無しさん
21/07/04 10:19:32.88 pili1Lz/.net
>>248
>一つの言語を極めると他の言語を覚えるのは簡単と言う
誰が言ったの?
260:デフォルトの名無しさん
21/07/04 12:15:28.10 1R4z78Cs.net
ってみんな言ってます!
261:デフォルトの名無しさん
21/07/04 14:20:14.26 BYgnURbL.net
わしもそう思う
262:デフォルトの名無しさん
21/07/04 15:29:30.76 uQBb7zfv.net
いやプログラムの根底は演算と型と制御だろ
そりゃベースが出来てれば大体何でも出来るわ
263:デフォルトの名無しさん
21/07/04 15:59:44.10 SaImNcMt.net
あとライブラリの探し方と使い方かな
264:デフォルトの名無しさん
21/07/04 16:34:17.72 i/yFAdE3.net
>>255
db=[10,20,30,40]
req=[0,2]
a=list(set(db)-{db[i] for i in req})
265:デフォルトの名無しさん
21/07/04 17:11:19.65 Thc8jF3i.net
プログラムの根底とプログラミングの根底は全く別物
その程度の区別が出来ないようなら大体何も出来ない
266:デフォルトの名無しさん
21/07/04 18:27:39.63 CJXzLbyo.net
proxyを通して接続するときに、そのproxyが生きているかどうかだけ確認したいのですが
実際に存在する適当なサイトに接続してステータスコード200を確認すればよいのでしょうか?
今は、
プロキシ経由OKの(なるべくレスポンスの速い)サイトでrequests.getして200返ってきたらproxy生存
みたいにしてるのですが
それ専用のチェックの仕方があるのかな、と気になりました
267:デフォルトの名無しさん
21/07/04 19:06:12.27 KdurfuN3.net
>>265
確かに1行目と2行目の文章が繋がってないお前が言うと説得力あるなあ
268:デフォルトの名無しさん
21/07/04 20:09:32.45 L4Prcy4Z.net
>>255
[db[i] for i in {i for i in range(len(db))}-set(req)]
269:デフォルトの名無しさん
21/07/04 21:43:55.75 aHJdtdht.net
>一つの言語を極めると、他の言語を覚えるのは簡単
これ自体が嘘。
10年以上掛かるし、各言語の特殊性を学んでも、再利用できないから無駄
YouTube で有名な、雑食系エンジニア・KENTA は全く逆の事を言ってる
80 : 20 の法則。
簡単な80% の部分だけを学ぶべき
難しい20%の部分は、特殊だから再利用できない・使う頻度が少ない割に、
学ぶ時間が何倍も掛かるので、効率が悪い
専門学校で必ず言われること
例えば、法律の条文の暗記とか、
15題ずつ、重要度A・B・Cのランクがあったら、
AB だけ暗記して、C を捨てろとか
使う・出る確率が低いから、そこに暗記コストを掛けるのが無駄
ドラゴン桜で言う、京大英語・赤本で英語を学ぶなという格言。
特殊で、誰も使わないようなトリビア表現に、時間を掛けるな
数百人のネイティブがチェックしてる、英検をやれ
270:デフォルトの名無しさん
21/07/04 21:52:26.25 1R4z78Cs.net
>>269
その20:80割合逆だろ
簡単以前なことも学べてないじゃないか
271:デフォルトの名無しさん
21/07/04 22:03:17.62 9C8iWrP9.net
推奨NGWord
Ruby
あわしろ氏
雑食系エンジニア
272:デフォルトの名無しさん
21/07/04 22:19:49.10 YfSOCxWP.net
そうして簡単な単純労働しかできない人が量産されるんですね
273:デフォルトの名無しさん
21/07/04 22:21:45.55 1R4z78Cs.net
簡単な部分の精度を上げろってこった
274:デフォルトの名無しさん
21/07/04 22:35:43.14 ZDZVmq0W.net
難しい2割を理解できる人が世の中をまわす
275:デフォルトの名無しさん
21/07/04 22:38:11.14 1R4z78Cs.net
むつかしいほうは8割だっつっとろうが
276:デフォルトの名無しさん
21/07/04 22:39:45.78 SVViFRUT.net
>>270
横からだが逆じゃないと思うよ
もちろん全体の100をどう捉えるか次第だけど
277:269
21/07/04 22:40:16.40 aHJdtdht.net
簡単な80% の部分を、横に進めていく。
Ruby on Rails なんて、まさにそう。浅く広く
Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
さらに、AWS Fargate, Terraform, Vue.js, TypeScript
KENTA のサロン、AWSのくろかわこうへいのサロンに入る。
だから、1年の未経験者が、10年以上のプロよりも技術力が上になる!
時間が掛かる、難しい20%の部分を勉強しないから。
これを、KENTAが勉強方法のチートと言ってる
簡単な80%の部分の勉強時間は、20%しか掛からないのに、
難しい20%の部分の勉強時間は、80%掛かる
つまり、勉強時間では逆になる。
しかも、特殊だから再利用できない・使う頻度が少なく、役に立たない
例えば、C を10年やってる香具師の大部分の時間が、ポインターを追っかけている時間
だから、時間が掛かるだけで、何も学べていないから、
Railsを1年やっただけの未経験者に負けてしまう
Rubyの女神・池澤あやかも言ってる。
大学生がプログラミングで挫折するのは、Cをやるからだって
つまり、ほぼ無意味なことを長時間やるから、しょーもない
278:デフォルトの名無しさん
21/07/04 22:41:49.47 ZDZVmq0W.net
重要なのは2割って話は知ってるけど
簡単なのは2割って知らんな
279:デフォルトの名無しさん
21/07/04 22:48:09.20 1R4z78Cs.net
統失煽りで文化人を一人殺したので
名前が同じだけでもてはやされてたKENTAは用済み
280:デフォルトの名無しさん
21/07/04 23:01:11.65 PTs94Rmb.net
Rubyって時点でお察し
281:デフォルトの名無しさん
21/07/05 00:27:11.73 SA0zdM26.net
> だから、1年の未経験者が、10年以上のプロよりも技術力が上になる!
プロ舐めすぎやろ
自分のレベルすら正確に把握出来てないだけじゃん
282:デフォルトの名無しさん
21/07/05 01:30:50.54 cyuSl6kj.net
>>245
演算規則を考えよう
1 * 3 = 1 + 1 + 1 = 3
[1] * 3 = [1] + [1] + [1] = [1, 1, 1]
であるので、
[[1]] * 3 = [[1]] + [[1]] + [[1]] = [[1], [1], [1]]
となる
加算と乗算に一貫性をもたせるとしたらこうするか、
1 + 1 = [1, 1]
[1] + [1] = [[1] + [1]]
のような規則にするしかないけど、明らかに1 + 1がリストになっちゃうのは使いにくいでしょ
283:デフォルトの名無しさん
21/07/05 01:54:24.43 ts/O0CHN.net
>>281
ダニングクルーガー効果ってのがあってぇ…
284:デフォルトの名無しさん
21/07/05 08:07:41.22 308oM4PQ.net
>>255
db=[10,20,30,40]
req=[0,2]
a=len(db)
for i in req: db.pop(i-a)
285:デフォルトの名無しさん
21/07/05 11:09:29.47 c503ASju.net
>>281
URLリンク(bokurema.com)
286:デフォルトの名無しさん
21/07/05 11:52:44.70 DJ8mSFAE.net
Railsはすべて分かっている人にとっては楽
初心者は設定や、細かいチューニングで必ずつまずく
287:デフォルトの名無しさん
21/07/05 14:49:22.59 WfBg4Dd7.net
pandasで特定の列(横)の重複した値を削除して一つだけにするのってどうするの
例えばA,B,C,B,C,DってあったらA,B,C,,,Dにしたい(BやCのみでも可)
288:デフォルトの名無しさん
21/07/05 14:56:34.11 zfQ+6anv.net
kwsk
289:デフォルトの名無しさん
21/07/05 17:20:56.75 rH8GS2yx.net
>>287
あえてPandas使ってとなるとむずいな
290:デフォルトの名無しさん
21/07/05 18:56:50.40 +tp9LwEv.net
BやCのみでも可なら
df.replace('B','').replace('C','')
それとは別にdf.duplicatedで空白にしたいインデックスがTrueになる
データフレームが得られる
データフレームにSQLほどの機能はないようだ
291:デフォルトの名無しさん
21/07/05 20:17:35.08 41zUyXOD.net
dfの横はlist的に扱えるから一次元リストの重複要素を任意の値に置き換えるという操作をするだけでは?
292:デフォルトの名無しさん
21/07/05 21:27:56.39 WfBg4Dd7.net
サンクス!
293:デフォルトの名無しさん
21/07/06 00:10:38.82 c1bms/+C.net
みんなのPythonで勉強しているのですがP340のwith文の説明がよくわかりません
私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています
この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか
openするファイルが存在しないと普通にエラーになるのですが
294:デフォルトの名無しさん
21/07/06 00:38:25.59 wcT5LwJn.net
modeによるとしか
readならその通り。writeはファイルが存在しなければ作成される。
295:デフォルトの名無しさん
21/07/06 00:48:09.74 IX8Wt/RA.net
modeの話?
296:デフォルトの名無しさん
21/07/06 00:52:21.13 AJxevGXU.net
Ruby では、存在しないファイルを読もうとしたら、エラーになる。No such file
print File.read 'abc.txt'
出力
No such file or directory @ rb_sysopen - abc.txt (Errno::ENOENT)
297:デフォルトの名無しさん
21/07/06 01:06:54.99 c1bms/+C.net
参考書の例文はモード指定しない既定なのでreadです
with文のreadモードで開いたファイルをfor文で一行ずつprintしています
説明によると、ファイルが存在していたら処理を行うという意味のコードになるとのことです
298:デフォルトの名無しさん
21/07/06 01:21:35.74 n3HBlCzk.net
おじちゃんせっかくマニュアルあるのに読まない子の気持ちはわからないよ
URLリンク(docs.python.org)
299:デフォルトの名無しさん
21/07/06 01:33:10.58 M25Qh6q2.net
>>293
>私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています
違うよ
>この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか
サンプルコードではFileNotFoundErrorをハンドリングしてるね
URLリンク(colab.research.google.com)
300:デフォルトの名無しさん
21/07/06 16:37:29.04 ewE8N/dz.net
def test():
__return random.randint(2,5)
obj=[test(), 0, 1]
l = random.choices(obj, k=3)
# -> [4,2,0]
testが毎回実行されて(lに違う数字で入って)ほしい
どう書けばいいの?
301:デフォルトの名無しさん
21/07/06 16:45:42.95 Fj5fpx8O.net
>>293
withブロックを出るときにclose
open関数の中で
ファイル確認して
ファイルを開く
ファイル確認でエラー
開いてない
ないのに開けない
302:デフォルトの名無しさん
21/07/06 16:46:46.00 8bcWgGBz.net
def test():
__return random.randint(2,5)
def exectest():
__obj=[test(), 0, 1]
__l = random.choices(obj, k=3)
exectest()
303:デフォルトの名無しさん
21/07/06 18:44:35.16 yuAoY/NP.net
numpy.loadtxtでcsvファイルを読み込むんだが、csvファイルのデータが崩れていることがある。
で、何行目にエラーがあって取り込めなかったのかを知りたいんだが、いい方法ない?
データが崩れているというのは、例えば、
-1.234,123.45.789,
みたいに、ありえない数値表現が紛れているということなんだが
csvファイルが崩れないようにするのが本筋だけどそっちに頑張る気がないので
おかしな行を見つけたら手動でその行を削除して再度処理という感じで運用したい
304:デフォルトの名無しさん
21/07/06 19:22:28.01 BTTPD25v.net
typeでチェックすれば
305:デフォルトの名無しさん
21/07/06 20:02:32.04 MGYt6+tS.net
通常はどういう数値が入るのか分からんとなんとも言えないな
306:デフォルトの名無しさん
21/07/06 21:14:42.87 yuAoY/NP.net
>>304
詳しく
>>305
通常は小数点付きの数値でマイナスの場合もある
307:デフォルトの名無しさん
21/07/07 00:12:50.55 eWdID8i0.net
>>303
1pandasで文字列としてロード
2走査しつつ数値にパース
3失敗したらスキップ
308:デフォルトの名無しさん
21/07/07 00:17:53.03 bUHYGk47.net
例えば、Ruby では各列を、変換器・converter で変換して、
変換できたかどうか、型を確認するとか
require "csv"
input_str = <<"EOT"
-0.0,1.2.3
9..9,-0
EOT
csv = CSV.new( input_str )
csv.convert( :numeric ) # 数値型へ変換する
line_num = 0 # 行番号
csv.each do |row|
line_num += 1
p [ line_num, row[ 0 ].class, row[ 1 ].class ]
end
出力
[1, Float, String]
[2, String, Integer]
1.2.3, 9..9 が、変換に失敗して、文字列型のまま
309:デフォルトの名無しさん
21/07/07 00:41:11.10 DonMIAPH.net
>>293です
よく分からなかったのは私の勘違いが原因でした
P340に記載されている内容はP338の差分だったことが分かりました
やっと理解できました
失礼いたしました、皆様ありがとうございました
310:デフォルトの名無しさん
21/07/07 00:49:15.09 85qcEXGX.net
>>308
せめてnumpyを移植してから知った風な口を利け
311:デフォルトの名無しさん
21/07/07 14:46:15.07 JFEXb6g2.net
pep8に
単一の文字 'l' (小文字のエル)、'O' (大文字のオー)、'I'(大文字のアイ) を決して変数に使わないでください。
フォントによっては、これらの文字は数字の1や0と区別が付かない場合があります。
ってあるけど、上のような理屈であれば、単一の文字でなくても同じ理由で使うべきではないことになるんでは?
312:デフォルトの名無しさん
21/07/07 15:11:46.21 49748z4f.net
10ng と long と IONG を間違うかって話だな
313:デフォルトの名無しさん
21/07/07 16:43:31.83 2KJNjcti.net
$python hoge.py 10 | python hoge2.py | python hoge3.py
### hoge.py ###
import sys
for i in range(int(sys.argv[1])):
_print(i)
### hoge2.py ###
import sys
a=''.join(sys.stdin.readlines()).strip().split('\n')
a.append(len(a))
for n in a:
_print(n)
### hoge3.py ###
import sys
print(len(''.join(sys.stdin.readlines()).strip().split('\n')))
ざっくり
(1)hoge.py 10で10個数字を出力
(2)hoge2.pyで受け取り、値を追加して出力
(3)hoge3.pyで受け取り、1個増えたことを確認
なのですが、受け取った値を成形する
''.join(sys.stdin.readlines()).strip().split('\n')
の部分はこの書き方でよいでしょうか?
そもそも標準出力をprintでやるのかもわかりません
それ専用の標準ライブラリとかあるのかな
314:デフォルトの名無しさん
21/07/07 17:49:17.95 vUBZA2na.net
>>313
標準出力はprintでやるのでいいよ
1行ごとに処理したいわけじゃなければ.read().splitlines()すればいいと思う
#hoge2.py
import sys
a = sys.stdin.read().splitlines()
a.append(len(a))
for n in a:
__print(n)
#hoge3.py
import sys
print(len(sys.stdin.read().splitlines()))
315:デフォルトの名無しさん
21/07/07 18:46:33.05 2KJNjcti.net
>>314
なるほどprintでよかったんですね
splitlinesできました!ありがとうございました
316:デフォルトの名無しさん
21/07/08 21:41:26.17 g5ngXWNu.net
raspbian buster上のpython3.7.3で、
subprocess上で読み込むcsvファイルをStringIOにするとうまくいかず困っています。
以下2つのソースで、異なるのは1行目だけです。
[test1.py]
CSVFILE = '/tmp/1.csv'
with open(f'{CSVFILE}', 'a') as CSV:
writer = csv.writer(CSV)
writer.writerow([12,34,56])
CSV.close()
cmd = (f'cat {CSVFILE}')
proc = subprocess.run(cmd, shell=True)
[test2.py]
CSVFILE = io.StringIO()
with open(f'{CSVFILE}', 'a') as CSV:
writer = csv.writer(CSV)
writer.writerow([12,34,56])
CSV.close()
cmd = (f'cat {CSVFILE}')
proc = subprocess.run(cmd, shell=True)
$ python3 test1.py
12,34,56
$ python3 test2.py
/bin/sh: 1: Syntax error: end of file unexpected
何を見落としてるんでしょうか…?
317:デフォルトの名無しさん
21/07/08 22:38:29.83 PyDOiOef.net
何をしたいかが全く分からないがとにかく
そのエラーは/bin/shが
cat <_io.StringIO object at 0x7f1360de01f0>
とかいう文字列を実行しようとして
>が出力のリダイレクトと解釈してその後にファイル名がないからエラーになってる
318:316
21/07/09 07:49:00.55 6wIK8ZSE.net
>>317
ありがとうございます!
例で実現したいことは、
$ python3 test2.py
12,34,56
この結果が出るにはどうしたら良いかが知りたいです。
シェルから見て実体のあるファイル名でないとダメってことですね。それはそうか。
一度ファイルシステムに書き出せば良いのでしょうが、それ以外の手はないでしょうか。
なお、例では長くなるのでcatコマンドに書き換えましたが、実際にやりたいことは
「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」というプログラムです。
処理結果の数字は毎秒積み上がっていくのと、プログラム終了時には実体のcsvファイルに書き出したいのとで
プログラム上では、StringIOを使ったcsvファイルとして処理したいです。
319:デフォルトの名無しさん
21/07/09 08:12:26.61 2AR12dC9.net
>>318
>「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」
だったら質問の意味が尚更分からん
上記の処理を1プログラムでやりたいなら
Pythonで前処理⇒直接前処理結果をグラフ作画⇒作画後に必要に合わせてデータをcsv出力
っていう流れの方が良くね?
書き込んでから読み込む必要性が全く分からん
320:316
21/07/09 08:30:32.97 6wIK8ZSE.net
>Pythonで前処理⇒直接前処理結果をグラフ作画
前処理では複数行複数列の数字(時間と温度です)を積み上げていくので、
その前処理結果のgnuplotへの渡し方としてcsvが適当かな、と思ったためです。
それとも、そもそもpythonスクリプトとしては前処理のアウトプットだけでexitし、
gnuplotはOS側シェルで普通に動かして前処理結果を使えば?という意味だとすれば、
今回はpythonスクリプト内でgnuplotを動かしたいです。
321:デフォルトの名無しさん
21/07/09 08:51:54.66 sj/mydTS.net
データが来るたびにファイルに追記していく(writeのあとにflush)
gnuplotは別に起動して毎秒ファイルを読み直す
と分けるのがよさそうに見える
322:デフォルトの名無しさん
21/07/09 09:04:12.08 2AR12dC9.net
>>320
>その前処理結果のgnuplotへの渡し方としてcsvが適当かな、と思ったためです
gunplotのマニュアル確認したけど、それなら素直にCSVファイルとして書き出さないと無理じゃないか?
大学か会社の都合か分からんけど
Pythonで素直に一連の動作をさせるなら
matplotlibの方がよっぽど楽だけど、それだとダメなんだよな
323:316
21/07/09 09:08:57.43 6wIK8ZSE.net
もともとはシェルスクリプトでそんな感じでやっていて、
拾ってきたpythonで温度を測定し、結果を/tmp/temp.csvに書いてそれをgnuplotに読ませてました。
実はgnuplotが書いたグラフ(png)をまた(拾ってきた)pythonでOLEDに描画するという後処理もあって、
全工程で1秒ちょっとかかってました。
そこで、おっしゃ自前でpythonの1スクリプト化して高速化や!コピペマンから脱却するやでー!
という素人考えで今に至っています。
pythonの1スクリプトで、>>316に書いたtest1の方法(中間ファイル書く)でも
シェルスクリプト版の倍は速く動いてるので、あとはStringIOさえできれば…と思ってました。
何分素人なのでそもそもの考え方が間違ってるところもあるとは思いますが、
なぜそう思うに至ったか、という話でした。
324:316
21/07/09 09:14:25.66 6wIK8ZSE.net
>>322
やっぱ実体としてのcsvファイルがないとダメですかね…ありがとうございます。
matplotlibはグラフ描くがgnuplotより難しそうだから見なかったことにしてました。
いい機会だから、もう一度調べてチャレンジしてみます。
325:デフォルトの名無しさん
21/07/09 09:20:09.59 2AR12dC9.net
>>323
すげえ面倒な方法で見える化やってるなwwwwww
慣れたらmatplotlibも描くの簡単だぞ、Pandasとかnumpyとの相性も良いし
ただ根本的な所で言えば、既存の見える化フローが結構ヤバイな
(グラフ画像をOLEDで映し出すっていうのが衝撃だわ)
抜本的に改善したいなら
Pythonでデータ処理⇒データベースに書き込み⇒データ系の見える化ツール
っていうのが理想形だな
TableauとかPower BIみたいなツール使うと見やすくなる(有償だけど)
無償ツールなら英語だけどGrafanaとかかな?
326:316
21/07/09 09:39:34.13 6wIK8ZSE.net
>>325
今回はラズパイローカルでグラフを物理画面に即描画したいんですよね。
趣味の焙煎釜の温度変化を熱電対で計測し、手元でリアルタイムにグラフ描画したい、
そして記録をcsvに残したい、というのが目的です。
今は単機能の熱電対プローブでやっていて、温度変化が全くわからないので。
そこでまずはアリエクで300円しないOLEDを買ってラズパイに繋いで
gnuplotのpngをSPI接続のoledに送り出し続けるという形にしました。
ほんとはpythonからoledのライブラリとか使って直接描画とかもできるのかもしれませんが、
matplotlibともどもフタをしてました…
これがうまくいったら、OLEDやめてラズパイケース一体液晶にしても良いかなとは思っています。
GrafanaやPowerBIは別件で使ったこともあって、後分析には良いですよね。
327:デフォルトの名無しさん
21/07/09 09:47:38.88 2AR12dC9.net
>>326
>今回はラズパイローカルでグラフを物理画面に即描画したいんですよね。
あーなるほど、そういう使い方もあるのか……俺の知識不足だったすまん
ただ結局グラフのpng画像を生成出来れば問題なさそうだし、matplotlibの差し替えが無難な気はするな
328:デフォルトの名無しさん
21/07/09 23:58:06.76 dI9qqvw1.net
int型の足し算ではintクラスの持っている__add__メソッドが暗黙的に呼び出されていると思います。
ですが、
1.__add__(2)
のようにすると1+2が実行されず構文エラーになります。これは何故でしょうか?
str型の場合は問題なく実行され、以下の場合"aabb"が返ってきます。
"aa".__add__("bb")
329:デフォルトの名無しさん
21/07/10 00:16:00.86 8UKJFvZ/.net
詳しくないが 1. が小数になるのが原因だろう
(1).__add__(2)
とか
1..__add__(2)
ならエラーにならない
330:デフォルトの名無しさん
21/07/10 00:16:24.03 Rm9mfcPV.net
1.x(float)か1のメソッドなのか決まらないから
1.1.__add__とかはメソッドなのが分かるから通る
331:デフォルトの名無しさん
21/07/10 00:59:10.02 MSe133Oz.net
>>329
>>330
納得しました!
ありがとうございます
332:デフォルトの名無しさん
21/07/10 10:33:46.40 chyfa+iT.net
Python3.7で、pdbのtrace中とそれ以外でプログラムの挙動が異なるという問題に悩んでいます。
■現象
PySimpleGUIのpng画像をwhile True:で延々と更新し続ける処理が、
・pdb set_trace中は想定通りに画像が更新され続ける(ただし途中でpdbが止まる)
・traceを外すとそもそも画像が表示されない
■処理
"conv_image"を別関数で更新し続け、
このwindow更新行をwhileで回すだけの処理です。
window['-image-'].update(data=get_img_data(conv_image))
■pdbが止まる件
不思議なのは、通常pdbはデバッグ中に一度nで次に進むと、次行からはEnterだけでエラーのない限り進みますよね。
でもEnter押しっぱなしにしてると、この行でエラーの表示もなくpdbがいったん止まります。
nを押すと進み、画像が更新されます。
そこが問題のポイントなのかなと思いますが、それ以上の手がかりがありません。
333:デフォルトの名無しさん
21/07/10 10:43:05.45 lk+ovMEl.net
>>332
再現できる最小限のコードを提示しましょう
334:デフォルトの名無しさん
21/07/10 11:13:10.52 Ai3MLyk0.net
> get_img_data(conv_image)
この計算は一回でいいんじゃ
335:デフォルトの名無しさん
21/07/10 13:30:27.85 nAGZi/ZP.net
GUIがメッセージを処理する時間がねえんじゃねえの
336:332
21/07/10 14:33:07.51 chyfa+iT.net
>>333
すみませんでした…
URLリンク(dpaste.com)
手元のraspbian buster python3.7.3では、ここまで削っても
後ろから4行目のpdb.set_trace()有無で、>>332に書いた現象が出ます。
>>334
window['-image-'].update(data=conv_image)
こうでいいんじゃないの?と思って最初はこう書いてたんですが、
BytesIOが生で見えてるのか何なのか、"TypeError: 'int' object is not callable"エラーが出ます。
ググったところ、get_img_data関数(割と一般的らしい)を使えとあったのでそのようにしたところ、表示できるようになりました。
>>335
試しに2ヶ所あるwindow.updateの直後にtime.sleep(1)を入れてみたんですが、変化なしでした。
337:デフォルトの名無しさん
21/07/10 16:36:24.47 c5RJ/qlV.net
>>336
PySimpleGUIでメッセージ処理させるのはwindow.read()
メッセージ無くても回したいならtimeoutを指定する
338:デフォルトの名無しさん
21/07/10 18:01:51.33 lk+ovMEl.net
window.read()してないのでtk.update()が呼ばれず画面が更新されない
window.TKroot.update()を呼べば画面が更新されるが
直接呼ばずにwindow.read()を使ってメッセージループを作るほうがいい
デバッグセッション時はそれだと使いにくいから何か対処されてるっぽい
339:332
21/07/10 18:38:29.97 chyfa+iT.net
ありがとうございます。なるほど…!
どこかでサンプルプログラムをコピペしつつ、ボタンはどうでもいいから
とりあえず画像表示ループだけ回そうと適当かつ中途半場に行を削除してしまったので、
その結果イベント処理が進まない状態ということですね。
すごく良くわかりました。
どう処理するかよく考えて書き直してみます。
340:デフォルトの名無しさん
21/07/11 08:30:07.56 k6naGpL9.net
ユニークな長いリスト src があって
おのれはユニークだけどsrcと重複しうるリスト reqがある
reqの要素がひとつでもsrcにあれば云々したい
速いのを探しています。外部ライブラリは使えない
test = set(req)
bool([i for i in req if i in test])
?
341:デフォルトの名無しさん
21/07/11 09:23:01.16 FD6lxZ3g.net
any()かfor-loopのearly breakを使う
srcは長くて固定的、reqは短くて毎回変わるなら
srcのほうをsetにして管理したほうがいい
342:デフォルトの名無しさん
21/07/11 10:48:10.63 k6naGpL9.net
いや冷静に考えたら
フツーにset(src)&set(req)か
343:デフォルトの名無しさん
21/07/11 10:50:02.39 BLRKNf/m.net
共通要素を全て調べ上げる必要が無いなら>>341の方が速いな
344:デフォルトの名無しさん
21/07/11 11:14:07.88 k3ZSGeVZ.net
>>340
速いかどうかは知らん
not set(src).isdisjoin(set(req))
345:デフォルトの名無しさん
21/07/11 12:26:28.31 k6naGpL9.net
>>341
set(src10万)
req300 重複0~5
ではany()と&はほぼ誤差
bool([i in set])がわずかに遅い感じでした
センキュー
346:デフォルトの名無しさん
21/07/11 12:57:32.61 xAgoNPlJ.net
>>258
分かりやすい
347:デフォルトの名無しさん
21/07/11 19:05:49.41 akfEDp81.net
違和感というのは[]を()のように捉えてるから
リストや文字列に対する*は数学の掛け算とは無関係
要素数を増やせという機能
> [3*3] -> [9]
数学の掛け算
> [3]*3 -> [3, 3, 3]
リスト内の要素3を数で3つに増やせ
> [[3*3]] -> [[9]]
掛け算
> [[3]*3] -> [[3, 3, 3]]
内側のリストの要素3の数を3つに増やせ
> [[3]]*3 -> [[3], [3], [3]]
リストの要素[3]を3つに増やせ
348:デフォルトの名無しさん
21/07/11 20:54:53.44 yIl0mON7.net
どうした急に
349:デフォルトの名無しさん
21/07/11 21:15:21.80 BeeJLMuH.net
発作よ
お薬を忘れたみたいね
350:デフォルトの名無しさん
21/07/12 00:05:06.94 hfOyhNhX.net
サブクラスからスーパークラスのメソッドを呼び出す場合、次の①と②は同じ意味ですか?
同じならどちらで書いた方がいいとかありますか?
class MyClass1:
def __init__(self, name):
self.name = name
class MyClass2(MyClass1):
def __init__(self, name):
① super().__init__(name)
② MyClass1.__init__(self, name)
351:デフォルトの名無しさん
21/07/12 00:29:53.14 2Zpr4/N8.net
わざわざsuper というキーワードが用意されているのだから使わない理由ないだろ
クラス名を変更した際の影響範囲を考えてみよう
352:デフォルトの名無しさん
21/07/12 11:10:07.04 4WArcuIG.net
>>350
その例だと同じだけど複数から継承するようなクラスを使う場合は
super()が返すものが普通に想像するものとは違ってくるケースもあるので注意が必要
URLリンク(fuhm.net)
353:デフォルトの名無しさん
21/07/12 19:50:10.58 QV5M7VnV.net
>>347
数学と無関係ではないよ、加群としてとらえても矛盾のない演算になってるでしょ
354:デフォルトの名無しさん
21/07/12 20:27:18.44 HIUYKm1A.net
それは*3が同じものを3つ足し合わせなさいという
常識的な意味合いをわかりやすさのために利用してるだけで
数学的なことなら割り算もあるでしょ
355:デフォルトの名無しさん
21/07/12 21:40:52.58 4WArcuIG.net
常識的な意味合いかぁ・・・
演算子オーバーロードの悪い見本にしか見えない
356:デフォルトの名無しさん
21/07/13 01:00:18.86 o9TqNFAF.net
>>351
>>352
ありがとうございました
ある本に説明もなく両方の記載があったので悩んでました
この機会に多重継承も勉強しようと思います
357:デフォルトの名無しさん
21/07/13 05:15:40.15 eWSxSU0S.net
数学っぽくやるなら
[3]*3->[9]
[1, 2]*3->[3, 6]
のほうがより直感的だった気はする
358:デフォルトの名無しさん
21/07/13 05:42:16.34 QsXB5/qu.net
numpyはそうなってるね
359:デフォルトの名無しさん
21/07/13 11:39:29.89 Oq4/PEVt.net
pythonバージョン3.8.1で次のようなことをしようとしていますが、関数の配置に困っています。
次にするイベントを抽選する
↓
イベントを実行する
↓
イベント終了後にイベント抽選へ戻る
しかし、これだとイベントを抽選する関数をイベントの関数より上に置くとイベント抽選の関数がイベントの関数を認識してくれず、
下に置くと、各イベントの関数がイベント抽選の関数を認識してくれません。
なんとか動かす方法はないものでしょうか?
360:デフォルトの名無しさん
21/07/13 11:45:58.98 uAPVX+Xy.net
5chのこの板のAndroid版のスレタイトル一覧を取得したいのですが、スレタイトル部分だけ抜けてしまいます。
htmlを見ると、スレタイトル部分はjava scriptを呼び出して(?)表示しているようです。
このような別から呼び出す仕組みの検索語だけでも知りたいです。
実行環境はWindows10のcolabです。
何卒よろしくお願いします。
以下がソースとhtml抜粋です。
URLリンク(pastebin.com)
361:デフォルトの名無しさん
21/07/13 11:52:22.48 eWSxSU0S.net
相互参照は常に避けるよう心がけるべき。
回避する方法はいろいろあるけど、
イベント抽選関数はイベントの関数に引数として渡してあげるとか、
イベントの関数はすべて同じ引数、戻り値にしておいて、イベント抽選システムへ予め登録しておく方式にするとか
362:デフォルトの名無しさん
21/07/13 11:55:28.21 I5G4+d/9.net
知らんけどmain関数のなかにwhile True: 抽選関数()
みたいにしてループさせて抽選されたイベント自体は抽選関数を呼ばなければいいだけじゃないの