【まず1嫁】くだすれPython(超初心者用) その53at TECH
【まず1嫁】くだすれPython(超初心者用) その53 - 暇つぶし2ch2:デフォルトの名無しさん
21/03/16 19:25:04.88 GPMJJDKk.net
>>1

PyTorchの力と共にあらん事を

3:デフォルトの名無しさん
21/03/16 20:29:18.93 SXyIy3pf.net
なくなってたと思ったらくだすれ発見!

4:デフォルトの名無しさん
21/03/16 22:43:33.75 wDp7dZOY.net
くだれす~

5:デフォルトの名無しさん
21/03/17 04:34:23.73 OOj2NSgC.net
ずっと気になってたんだけど「くだすれ」って何?

6:デフォルトの名無しさん
21/03/17 08:06:19.70 TpdTO3YL.net
>>5
(わざわざスレ立てするほどでもない)
くだらない質問
の略

7:デフォルトの名無しさん
21/03/17 14:14:35.31 TpdTO3YL.net
>>6途中で送っちゃってた
(わざわざスレ立てするほどでもない)
くだらない質問を書いてくスレ
の略。 >>5

8:デフォルトの名無しさん
21/03/17 17:37:06.12 OOj2NSgC.net
>>7
なるほどそう言う事だったのか
サンクス

9:デフォルトの名無しさん
21/03/17 18:40:31.97 TpdTO3YL.net
>>8
なーに
いいってことよ
おれもむかしこのスレの過去シリーズできいた

10:デフォルトの名無しさん
21/03/18 01:44:53.32 A6mO37qQ.net
requestsのpostしても空っぽで返ってくるのにハマりまくったけど
post(url,data=data)
のdataのところを
json.dumps({"name":"tarou","age":20})
みたいに文字列化したらなぜかうまくいった・・・
他のところは辞書型のままでもいけたのに

11:デフォルトの名無しさん
21/03/18 05:24:55.18 E6K6GX2p.net
>>10
たまたまそこに至るまではうまくいいようにはからってくれてたか
こころのひろい鯖さんだったのだろう
解決よかったね+理由記載乙
なにかだれかのたしにもなるといいね

12:デフォルトの名無しさん
21/03/18 15:10:11.71 HfXxQmPX.net
そこは json.dumps より urllib.urlencode 汁

13:デフォルトの名無しさん
21/03/18 15:15:49.51 HfXxQmPX.net
前スレ
>>983
Erlang と OTP は良くやってる

14:デフォルトの名無しさん
21/03/18 16:07:41.59 k/Cp5d5i.net
導入で詰んだ
minicondaをインストールしたがpipを実行しようとするとpython38.dllが見つからないとしはじかれる
python38.dllはpython38.exeと同一フォルダにあるのに

15:デフォルトの名無しさん
21/03/18 16:09:25.79 k/Cp5d5i.net
python38.exeではないなpython.exeか

16:デフォルトの名無しさん
21/03/18 16:50:30.37 VjRMlHUp.net
Ruby on Rails 6 の本も書いている人が、新刊を出した
Elixir実践ガイド、黒田努、2021/2/5
Ubuntu 20.04, Docker CE 19.03, Elixir 1.11
Erlang/OTP か、片方向リストは、先頭の要素だけが速いとか、
実行環境の内部構造の話が多くて、辛い

17:デフォルトの名無しさん
21/03/18 17:27:24.11 7Uj1c/fU.net
推奨NGワード: Ruby
推奨NGワード: Rails
推奨NGワード: 書いている人

18:デフォルトの名無しさん
21/03/18 17:32:30.78 E6K6GX2p.net
>>14-15
スレタイも1も読めない池沼にはむりぽっぽ

19:デフォルトの名無しさん
21/03/18 17:44:58.89 k/Cp5d5i.net
はいどうも、書いてみるもんですな、原因はセキュリティソフトでした、どうも失礼しました

20:デフォルトの名無しさん
21/03/19 12:46:20.22 bQkGR5Qu.net
質問スレって結構解決率高くて役に立つよね
なぜか投稿した直後に自己解決する

21:デフォルトの名無しさん
21/03/19 13:33:42.02 +kOAJZBd.net
書くことで頭の整理ができて自己解決することもおおいいいいい

22:デフォルトの名無しさん
21/03/19 14:05:53.67 WPerE166.net
くだすれってどういう意味?

23:デフォルトの名無しさん
21/03/19 15:24:56.01 +kOAJZBd.net
あえてつられてさしあげよう
現行ログくらい嫁

24:デフォルトの名無しさん
21/03/19 16:35:36.21 lT0CdhUS.net
くだを巻くの「くだ」

25:デフォルトの名無しさん
21/03/19 16:57:10.38 JOVgIa9u.net
管狐のくだ

26:デフォルトの名無しさん
21/03/19 19:20:08.31 AYoTSH/q.net
菅スレw

27:デフォルトの名無しさん
21/03/19 19:22:35.26 VzIhkYvX.net
蛇だけに

28:デフォルトの名無しさん
21/03/19 22:45:14.97 X0y0iVpq.net
「it is assumed that your working directory is the root folder of the library.」
以下の文章中にある↑の文の意味が分かりません。
作業ディレクトリがライブラリのルートフォルダであることを仮定するというのはどういうことですか?
ライブラリのルートフォルダって何ですか?
The functionality for sound in this chapter can be found in the module sound in the
library, and the code examples assume that this module has been imported without a
prefix:
from sound import *
Moreover, it is assumed that your working directory is the root folder of the library.
Since the Python code in the library is located in the python folder, a simple way to
ensure that the library modules will be found is to add
import sys, os
sys.path.append(os.path.join(os.getcwd(), ’python’))
at the top of your program.

29:デフォルトの名無しさん
21/03/19 23:15:47.95 RMQx/osX.net
pythonはまず起動されたディレクトリからモジュールを探す
sound.pyか、sound/__init__.py
それが無ければリストsys.pathに入ってるパスを見に行く
親切なインストーラは勝手にsys.pathにリストされたディレクトリに入りに行く
親切過ぎて勝手にsys.pathを改変する逆に迷惑なライブラリもある
何もしないライブラリ/インストーラも当然あるので、自分で追加しよう
しかしコード内からsys.pathを直接弄るのは薦めない
pythonは起動時にsys.pathに加えるパスを環境変数PYTHONPATHから調べるので、そこにsoundのパスを加えるべき
もし直接弄ると、その特定のコードの実行時にしか見えないバグを産みかねない、ユーザーとしては非常に厄介
python -i script.pyで実行後に対話モードに移れるけど、特に他人の書いたコードでそんなことやる気起きないでしょ?

30:デフォルトの名無しさん
21/03/19 23:23:26.41 RMQx/osX.net
PYTHONPATHが長くなり過ぎるのも見にくいので、ホームディレクトリ直下にpylib3.10みたいなディレクトリ作って、それだけPYTHONPATHに加え、そこにパッケージシステム管理外のライブラリを全部ブチ込むのもあり

31:デフォルトの名無しさん
21/03/20 09:08:07.43 nt8Be5Ib.net
>>29-30
ありがとうございました。

32:デフォルトの名無しさん
21/03/20 21:03:20.71 cHAvtLAs.net
print(range(3))
と一行書いて実行すると、
0 1 2
と表示されるはずなのに
range(0, 3)
としか表示されない。どうしてでしょうか。

33:デフォルトの名無しさん
21/03/20 21:12:13.24 cHAvtLAs.net
>>32 は自己解決しました

34:デフォルトの名無しさん
21/03/20 21:41:21.50 GfnHrk+w.net
オブジェクトだからさ。

35:デフォルトの名無しさん
21/03/20 23:09:48.82 SzdWYV/s.net
好きなだけ広い範囲を取れるぞ!
好きなだけ取って楽しめよ!

36:デフォルトの名無しさん
21/03/21 00:41:47.55 c1Fm1qtl.net
>>32
もしrange(5000兆)とかがその場で展開されたらメモリが足りなくなるから
必要になってから都度計算するrangeオブジェクトっていうオブジェクトになる

37:デフォルトの名無しさん
21/03/21 01:15:24.00 ba25SXqE.net
自己解決したと書いてるのに、蘊蓄を披露するのが我慢できない人達

38:デフォルトの名無しさん
21/03/21 03:30:01.28 Duyg5pmm.net
蛇だけに!

39:デフォルトの名無しさん
21/03/21 07:55:22.35 Xyvra8tZ.net
「じゃあ」ってか
>>37
自己解決のさいは
なにしたら解決できたか書いて毛なのに
むしろ質問者は書いていかないし

40:デフォルトの名無しさん
21/03/21 08:02:45.18 rOmbGrT+.net
このくらいは質問する前に気づいて欲しいな
そしたら蘊蓄披露したがりクンも沸いてこなかった
つまり質問者が悪い

41:デフォルトの名無しさん
21/03/21 09:50:58.07 c1Fm1qtl.net
>>37
Rubyでは、・・・
とか言い出すよりマシだろ?

42:デフォルトの名無しさん
21/03/21 10:50:14.27 ba25SXqE.net
すまん、俺が悪かった。

43:デフォルトの名無しさん
21/03/21 10:56:39.10 eocPnEKi.net
「オブジェクトだから」だと思ってる人達は文字列(str)はオブジェクトじゃないと思ってるのかな?
range(0, 3)と表示される仕組みを理解してるとは思えないんだが

44:デフォルトの名無しさん
21/03/21 11:10:46.35 dweFEPRe.net
inとか調べるのがノーコストになるというのはインフォマティブだよ
コンテナ実装するときにふと思い出してくれればよい

45:デフォルトの名無しさん
21/03/21 11:17:17.80 dweFEPRe.net
俺もついでにくだを巻いていくけどrangeだけなら整数2つ持ってるのと大差ない(lo<=i <hiと等価)が
rangeが生きるのはもっと複雑なテスト、rangeはchainsで数珠繋ぎにして生きる

46:デフォルトの名無しさん
21/03/21 11:21:05.88 GVEcec50.net
Juliaというプログラミング言語がいいという話ですが、Pythonに詳しい人はPythonと比較してJuliaについてどう思いますか?

47:デフォルトの名無しさん
21/03/21 11:31:49.59 ECrDs+gQ.net
ブーム前はFortran/Matlab(&Octave)と同じ感覚で配列を自在に扱える代替環境ってのがPython/numpyの需要だったのよ
numpy/scipyはFortranライブラリのラッパ集として始まったわけで
今はもうPythonは手軽なスクリプト言語はじめ色んな用途が開けてるから、古い感覚だけどね
C風のPythonし、結局Fortran民はJuliaを作ったわけだけど
まあPythonでいい

48:デフォルトの名無しさん
21/03/21 11:42:30.17 ECrDs+gQ.net
文書がバグってた…
Pythonは配列0始まり/メモリ配置行メジャーのC系の慣習を引きずってる
線形代数記法、つまり配列1始まり/メモリ配置列メジャーの数値計算の慣習と逆ってことね
新興で後者採用のFortran系の言語はJuliaくらいしかないのでそっちに慣れてるオッサンならjuliaの方が受け入れやすいと想う

49:デフォルトの名無しさん
21/03/21 11:51:31.81 ECrDs+gQ.net
Pythonも不便ということはないよ
生Pythonで配列扱うmemoryviewやctvpesにちゃんと'F'フラグ容易されてるし
numpyももちろんそうで、FortranコードをPython関数として簡便コンパイルするf2py.pyもある
自身をコンパイルする為だけど、もちろんユーザーも使える

50:デフォルトの名無しさん
21/03/21 11:59:02.49 Duyg5pmm.net
numpy入れるとコマンドラインからf2py直接呼べるようになってるね
比較的小さいスクリプトだけど、これこそがnumpyの本体

51:デフォルトの名無しさん
21/03/21 13:02:14.02 ba25SXqE.net
超初心者スレでそのネタを書く?
マウンティングが目的?

52:デフォルトの名無しさん
21/03/21 13:16:37.33 Duyg5pmm.net
PythonとJulia比べるならそこの違いだろうよ
Pythonでよろしい、潰しも効くし

53:デフォルトの名無しさん
21/03/21 13:20:42.89 M5Jy6lC/.net
pandasで時系列データを集計やソートしたりするのですが
df = pd.DataFrame([{'p':1,'at':日付オブジェクト1},{'p':3,'at':日付オブジェクト2},,,])
時系列データフレームとして扱うためにインデックスを設定
df2 = df.set_index['at']
df2.resample('H').sum()
で無事、時系列であれこれできました
で、これをsqlite3にappendしようとしたとき
このインデックスが時系列のままsqliteにappendすればいいのか
時系列は'at'カラムに移動させてからsqliteにappendすればいいのか迷っています
ぶっちゃけどちらでもいいとは思いますが
公開されている統計データなどをみていると大抵は、(インデックスは無しか連番で)カラムに日付データが入っているので
そういう慣習でもあるのかが気になります

54:デフォルトの名無しさん
21/03/21 13:38:24.45 11DwdO6F.net
>>41
メモリアロケーションされてるかどうかなんて全く関係ない理由をあげて間違った理解を植え付けるくらいなら
Rubyでは・・・のほうがまだマシだわ

55:デフォルトの名無しさん
21/03/21 13:49:42.36 c1Fm1qtl.net
質問者はrangeをlistかtupleと同一視していると思われたから、どちらでも無い別種のオブジェクトだと教えたまでだが問題あったか?
(メモリアロケーション云々は何故rangeがlistを返さないかの説明に過ぎない)
いきなり__repr__の実装に言及しても訳分からんだろ

56:デフォルトの名無しさん
21/03/21 13:52:10.61 b+/7pFI3.net
0 1 2 と表示される方法を知りたかったのかも知れない。

57:デフォルトの名無しさん
21/03/21 14:24:12.67 HtK2VIhJ.net
>>55
見苦しい言い訳だね~
それなら「rangeはlistとは違うから」とでも答えておけばいいだけだろ
必死に調べて__repr__見つけたのかなw
でも間違ってるしreprの実装に言及しないと説明できないと思ってる時点で分かってないから
超初心者にドヤ顔で間違った答えを教えたりRubyキチをバカにする前に公式チュートリアルくらいは読めよな

58:デフォルトの名無しさん
21/03/21 14:33:51.63 c1Fm1qtl.net
>>57
そうだね、ケチ付けてばかりじゃなくて「分かってる」あなたも説明してみてよ
初心者スレだからみんなの為になるよ

59:デフォルトの名無しさん
21/03/21 15:01:23.60 rOmbGrT+.net
はいはい。病院でお医者さんにはなしてあげてね

60:デフォルトの名無しさん
21/03/21 15:08:07.65 ba25SXqE.net
つまらん煽りは他所でやってくれ
と、俺が言ってみる

61:デフォルトの名無しさん
21/03/21 17:19:57.60 LD2dmgE2.net
>>58
print関数は引数のオブジェクトの文字列表現を出力する関数で
range(3)の文字列表現は'0 1 2'じゃなく'range(0, 3)'
なのでprint(range(3))を実行するとrange(0, 3)と表示される
ちなみにlistなら'[0, 1, 2]'みたいな表現になるから'0 1 2'と表示したいなら自分で加工する必要がある
例えばprint(' '.join(str(x) for x in range(3)))

62:デフォルトの名無しさん
21/03/21 17:51:46.12 sFWHtMDC.net
>>> print(*range(3))
0 1 2

63:デフォルトの名無しさん
21/03/21 19:05:58.83 7CdIp7EP.net
>>62
優勝!

64:デフォルトの名無しさん
21/03/21 19:14:50.12 .net
処理Aが同じで
無限ループしたいときと、任意回数ループしたいときを分けたいんだけど
n = 10 if 条件 else 99999999
i=0
while i < n:
_print('処理A')
_time.sleep(1)
_i += 1
無限ではないにしろこれでいいんだけど
n=99999999がなんかかっこ悪い・・
別の書き方ありませんか

65:64
21/03/21 19:22:48.42 .net
自己解決・・かどうかわからないけど
でいけた
でも
for i in range(float('inf')):
は無理だった・・

66:デフォルトの名無しさん
21/03/21 19:30:08.83 g0m1T9az.net
n = 10
a = 1 if 条件 else 0
i = 0
while i < n
_print('処理A')
_time.sleep(1)
_i += a

67:デフォルトの名無しさん
21/03/21 19:46:13.27 Duyg5pmm.net
[*iter]

68:デフォルトの名無しさん
21/03/21 20:27:26.58 c1Fm1qtl.net
>>61
その「文字列表現」を決定するのが__repr__では?
__repr__の実装に言及せずとも説明できると言うのは?
単に名前を出さないだけで言及していないことにはなってないな

69:デフォルトの名無しさん
21/03/21 20:28:41.92 .net
>>66
変数増えるけどスッキリしてこっちのがいいですね
ありがとうございました

70:デフォルトの名無しさん
21/03/21 20:41:49.95 Duyg5pmm.net
numberを継承したoo.__lt__にreturn falseをブチ込む

71:デフォルトの名無しさん
21/03/21 22:32:14.97 OQZaxlrU.net
よろしくお願いいたします。
aList = [[1,2]for j in range(3)]
aList = [[1,2]]*3
2つとも[[1, 2], [1, 2], [1, 2]]の多重リストが作られたのですが、なぜ下の文で多重リストができるのか教えてほしいです。

72:デフォルトの名無しさん
21/03/21 22:53:21.54 mInw6BRh.net
>>68
>いきなり__repr__の実装に言及しても訳分からんだろ
__repr__の実装に言及する必要なんてない
__repr__が果たしてる役割を超初心者にも分かる言葉で説明すればいいだけ
それができないと感じるのは自分がその事柄を理解してないから
理解してれば「オブジェクトだから」とか「アロケーションされてないから」みたいな嘘を教えたりしない

73:デフォルトの名無しさん
21/03/21 22:56:09.50 mInw6BRh.net
文字列表現がどう決まるのか、どういうついでに言っておくとprint()で使われるのは__repr__じゃなくまず__str__な
__str__が定義されてない場合だけfallbackして__repr__が使われる
公式チュートリアルに書いてるので勉強してね

74:デフォルトの名無しさん
21/03/21 23:00:23.62 mqfsmAhv.net
>>71
クラスの操作だからクラスをそういうふうに
作ればそうなる
何故とか本質がどうとかは設計した人の考え
便利だなと思えば使えばいい

75:デフォルトの名無しさん
21/03/21 23:09:36.59 OQZaxlrU.net
>>74
ありがとうございました!
気にせず使っていきます

76:デフォルトの名無しさん
21/03/21 23:22:30.25 ztnIU7M3.net
>>71
listやtupleやstrなどのシーケンスと呼ばれる型に対する*演算子は
シーケンスの中身の要素を指定した回数分繰り返した新しいシーケンスを返すように定義されてる

77:デフォルトの名無しさん
21/03/22 04:49:29.76 FrFq7CFg.net
>>71
FAQ中のFAQだから余計な世話かもしれんが、見た目が同じでも同じリストでは無いことに気をつけてね
リストの中身は要素への参照だから、それを複製した後者は同じオブジェクトを3回参照してる(cでいえば、同じポインタx3)
見た目が同じオブジェクトを判別するためにid関数が用意されているから試してみて
前者をl1, 後者をl2として
map(id, l1), map(id, l2)
前者のidは全て同じ、後者は新たに作った[1,2]を3つ並べてるので3つとも違うはず
参照の概念をややこしいと思いlistを避けたいと思うのなら、型の同じ要素を入れる場合は常にarrayを使う事を推奨する(標準型の範囲では)
具体的な値の配列なので、型チェックも入り、効率もよい

78:デフォルトの名無しさん
21/03/22 05:17:24.56 FrFq7CFg.net
i for rangeイディオムは不要な添字iが気持ち悪いよな…
ロジック通りに、ビルトイン関数のみでミニマルにやるには
memoryview([1, 2]).cast('b', shape=(3, 2)).tolist()
[[1, 2]
[1, 2]
[1, 2]]
でいいだろう
tolistはリスト表示するためなのでお好みで
数字が小さいからbyte配列にしたけど、普段使いならlongにしといた方が気楽かも

79:デフォルトの名無しさん
21/03/22 05:25:09.41 FrFq7CFg.net
byteって言ってるのにbyte抜けてたごめん
memoryview(bytes([1, 2])).cast('b', shape=(3, 2)).tolist()
[[1, 2]
[1, 2]
[1, 2]]
です、試してないけど多分動くだろ
実用にはbytesはarray('l', seq)へ差し替えてね

80:デフォルトの名無しさん
21/03/22 12:40:31.58 uAAKNqiZ.net
while True:
_a = 1
_break
print(a)
インデント下がって定義した変数をwhileの外でも使うのは普通なのでしょうか
スコープの判断で可読性が落ちるかなと個人的に思ったのですが慣れですかね

81:デフォルトの名無しさん
21/03/22 12:53:03.86 bzTgC/HJ.net
>>80
それしきの深さならえんでねーの
それにしてもパイセンいわく
while True:で安易に無限ループ作るのはイクナイ(・A・)らしいが

82:デフォルトの名無しさん
21/03/22 14:08:43.53 Rzf9eLtl.net
>>80
python的には普通らしい
ただ見通しが悪くなる場合が多いのと
勘違いによる不具合を起こさないために自分は極力避けてる

83:デフォルトの名無しさん
21/03/22 15:33:16.54 uAAKNqiZ.net
>>81,82
なるほど
とりあえずは現状維持にしときます ありやした

84:デフォルトの名無しさん
21/03/22 21:09:47.56 cezDTGq+.net
>>81
Cなら for(;;) とか出来たけど
itertools.count() とかダサいねん。

85:デフォルトの名無しさん
21/03/22 21:32:57.72 H+rnlZW/.net
whileTrueって使ったらあかんの?

86:デフォルトの名無しさん
21/03/22 21:38:05.40 bzTgC/HJ.net
良くはない、らしい
有能なパイセン談

87:デフォルトの名無しさん
21/03/22 21:45:46.85 OQmrOVJK.net
while str:

88:デフォルトの名無しさん
21/03/22 21:52:49.95 10Qa0fDO.net
するな
コールバックがあるから

89:デフォルトの名無しさん
21/03/22 23:07:52.41 g8se3Ggw.net
Python公式リポジトリ検索してみたらほんと腐るほど見つかって嫌になった。
全部挙げきれないので一例:
URLリンク(github.com)
URLリンク(github.com)
URLリンク(github.com)
URLリンク(github.com)
それならまだしもwhile 1:とかもある↓
URLリンク(github.com)

90:デフォルトの名無しさん
21/03/22 23:19:25.97 xEZrbDTS.net
>>85
無限ループ自体が処理によってはCPU負荷が上がったりするし
break条件をミスってると不具合があった時にループから抜けずに変な所でエラーになる可能性も出てくる
だから最初から有限回ループして確実に止まるループ設計の方が安全だよね、っていう考えはある
(まあwhile True breakの方が書きやすい場面も多いけどね)

91:デフォルトの名無しさん
21/03/23 00:43:05.32 ch/yi3Wo.net
無限ループは無限ループが必要だから使うのであって、
有限のイテレータのループで書き換えられるときには当然使わないのでは?
有限と無限を同列に並べて比較すること自体がなんか違和感あるけど。

92:デフォルトの名無しさん
21/03/23 00:48:20.02 BKCKGFNi.net
while自体の処理が重いから使うなってならわかるけどミスったら困るから使うなって、理由になってなくない
使いどころも無視してとにかく使うなって、先人の下手なトラウマが一人歩きしてるだけじゃねーの

93:デフォルトの名無しさん
21/03/23 02:55:45.64 71b8io/J.net
まあループの有限性が事前にわかるようならそれを表現するためにwhile 1: 使うのは適切じゃないって話だろ。
実際ループ変数ぽいの使ってなぜか while 1使ってるコードは新人にはよくある。

94:デフォルトの名無しさん
21/03/23 02:59:15.82 QbxOC6mC.net
>>81
ポンコツかよ
他に無条件ループ作るコンストラクトがあるなら教えてほしいわ
上の方のレスにある9999999決め打ちでもするのか?
他にもハック挙がってるけどどう考えてもwhile True:より筋が悪いよね?
先輩が言ってたから正しい?自分の意見を持とうよ?

95:デフォルトの名無しさん
21/03/23 03:26:27.50 ND3VvCO4.net
while yes=sir:

96:デフォルトの名無しさん
21/03/23 03:33:34.75 QbxOC6mC.net
…と偉そうなこと言った手前、俺の習慣を紹介しておく
while True や1は仕様上そうするのが筋なので、確かに冗長と批判できる
truthyならwhile "comment":でも、while ...:でもよい
何の情報も含まないwhile True/1:よりは良い習慣
後者は…それが思いつかなかった時だな、コメントがbreakの傍に付いている方が合理的なケースもあるので
....は1, 2, 3, ...という一般に認知されている表記なので、trueを表現するtruthy(5シンボルとしては、1/Trueより優れている事は明らかだろう

97:デフォルトの名無しさん
21/03/23 03:49:20.93 zpYNNqZr.net
>>64
if not cond:
__while True:
____print('処理A')
____time.sleep(1)
for i in range(10):
__print('処理A')
__time.sleep(1)
この部分だけ書けていわれたらこうするわ

98:デフォルトの名無しさん
21/03/23 06:54:35.77 ZYJLDniu.net
>>97
無限ループいつ抜けるの?
それと条件によって無限ループか有限ループかという2つの処理分岐が並列に書かれてないから意図が伝わりにくいよ

99:デフォルトの名無しさん
21/03/23 06:55:42.42 ZYJLDniu.net
>>96
ちょっと何言ってるかわからない

100:デフォルトの名無しさん
21/03/23 10:05:15.95 HSGkWRhe.net
GOTO文のように無限ループ文を作れば解決する

101:デフォルトの名無しさん
21/03/23 14:54:00.54 CY92qFOb.net
while Trueするのはdo~whileしたい場合
そうじゃないなら書き直したほうがいいかもね

102:デフォルトの名無しさん
21/03/23 15:46:37.69 mu30Ep9P.net
ちょっとしたデバッグのときに
lst = [
__{"a":0,"b":1}
__'''
__,{
___"a":2,
___"b":3
__}
__'''
]
シンタックスエラー
'''は#の複数版かと思ったら単なる文字列だったんですね。
こういうときは、ショートカットキーで複数行に#入れたり消したりする人の方が多いのかな

103:デフォルトの名無しさん
21/03/23 16:21:30.22 ch/yi3Wo.net
>>102
さすがにコメントアウトショートカットで出来ないエディタを使うことはないな。
絶対に何も入れちゃいけない環境以外ではVSCodeいれちゃう。
何も入れちゃいけない環境でデバッグしなくちゃいけなくて、
lstに入れるだけいいんだったら、複数バージョンの代入文を作っておいて、if Trueとかでどれを実際に実行するかは決める、ぐらいはやるかなあ。
あとはなるべく改行を入れないで#一つでコメントアウトできるようにするって手も考えるかな。

104:デフォルトの名無しさん
21/03/23 17:12:08.45 q1xbaFi+.net
Octaveだと正方行列とその逆行列の乗法で単位行列が得られる。
GNU Octave, version 4.4.1
octave:1> a = ([4,5,7;-4,1,5;-10,3,8])
octave:2> b = inv(a)
octave:3> a * b
ans =
1.00000 0.00000 0.00000
0.00000 1.00000 0.00000
0.00000 0.00000 1.00000
でもPython3だと単位行列が得られたのかよく分からない。
これで正しいの?
Python 3.7.3
>>> import numpy as np
>>> a = np.array([[4,6,7],[-4,1,5],[-10,3,8]])
>>> np.linalg.inv(a)
array([[ 0.04666667, 0.18 , -0.15333333],
[ 0.12 , -0.68 , 0.32 ],
[ 0.01333333, 0.48 , -0.18666667]])
>>> b = np.linalg.inv(a)
>>> a @ b
array([[ 1.00000000e+00, -4.44089210e-16, 0.00000000e+00],
[ 2.77555756e-17, 1.00000000e+00, 0.00000000e+00],
[ 1.38777878e-17, 0.00000000e+00, 1.00000000e+00]])

105:デフォルトの名無しさん
21/03/23 17:43:46.60 SeSscUQI.net
>>101
どうして?

106:デフォルトの名無しさん
21/03/23 18:30:46.10 f4Z9PwYH.net
>>104
計算誤差でしょ
非対角成分は0にかなり近い

107:デフォルトの名無しさん
21/03/23 18:47:26.71 WuxMgk/9.net
行列が違うのはおいといてOctaveもnumpyも基本は浮動小数点数の演算だから丸め誤差などによりピッタリゼロになるとは限らない
Octaveで
format long e
を実行した後に確認すると多分ゼロになってないと思うよ
表示形式でゼロに見えてるだけだと思う
うちの環境だと0.00000じゃなくて-0.00000になる成分あるし

108:デフォルトの名無しさん
21/03/24 19:57:42.51 8oiSJv/j.net
例えば、Pythonを用いたプログラミングの本を読んでいるとします。
その本の著者のサイトにPythonコードが「.pyファイル」としてダウンロードできるようになっているとします。
ある読者は、普段からIDEではなく、Jupyter Notebookを愛用しているとします。
そのため、この読者は、Jupyter Notebookのセルに著者の「.pyファイル」をロードして、コードを読んだり、変更したり、実行したりしたいと考えています。
この読者はどうすればこれを実現できるのでしょうか?

109:デフォルトの名無しさん
21/03/24 20:00:25.38 jO3PWgho.net
この読者って自分のこと?

110:デフォルトの名無しさん
21/03/24 20:04:40.15 QbxZqHqJ.net
>>108
IDE使おうが同じことすると思うのだけど
なぞなぞに思える
jupyter notebookは知らないがセルじゃなくてシェルなのだろうな

111:デフォルトの名無しさん
21/03/24 20:19:50.51 8oiSJv/j.net
>>109-110
ありがとうございます。
>>109
自分のことです。
%load sample.py
とセルに入力すればいいようです。

112:デフォルトの名無しさん
21/03/24 20:23:27.54 8oiSJv/j.net
JupyterLab上でグラフを表示するには、
%matplotlib inline
というコマンドをセルに入力して実行しないといけないということで、実際今までそうしてきました。
今日、このコマンドを入れずに、
# %load matplotlibexample.py
import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(-3, 3, 1000)
plt.plot(t, np.exp(-t**2)*np.sin(20*t))
plt.title('sample graph $x(t)=e^{-t^2}\sin(20t)$')
plt.xlabel('t')
plt.ylabel('x')
plt.show()

を実行したところ、ちゃんとノートブック上にグラフが表示されました。
%matplotlib inline
はもう入力しなくてもよくなったのでしょうか?

113:デフォルトの名無しさん
21/03/24 20:48:55.22 SWND22zP.net
>>110
横からだけどセル。
notebook用語なのでpython以外のカーネルにしてもセル。
実行単位なんだけどあるセルで算出してる結果に依存してる別のセルを実行する際に依存先のセル未実行だとエラーとかいろいろめんどい。
一世を風靡したスライド
I Don't Like Notebooks
URLリンク(docs.google.com)
2018年のjupyterconでの発表でした
URLリンク(conferences.oreilly.com)
当時の反応(英語)
URLリンク(www.reddit.com)

114:デフォルトの名無しさん
21/03/25 01:57:39.05 5Yw77v05.net
もしかして.pyファイルをjupyter notebookで実行する方法聞いてるだけか
何でそんな長々と意味不明なこと書いてるの?

115:デフォルトの名無しさん
21/03/25 02:19:54.21 Lv/3T6MK.net
回りくどくて草

116:デフォルトの名無しさん
21/03/25 04:13:00.19 TW8zAfP8.net
統失の特徴

117:デフォルトの名無しさん
21/03/25 08:02:26.68 np4EPf1w.net
コピペで大体実行できるかな
別にサクラエディタでもVSCodeでもいいから.pyファイルを開きコピペ
ただしsjisとUTF-8とか
あとインデントに気を付ける
コピペでインデントがずれて動かないことがあるので
そこは丹念に直す

118:デフォルトの名無しさん
21/03/25 08:21:24.72 ITDRmOAn.net
tkinterで
200*100じゃなくて
200x100と小文字のエックスするの何故なのか教えてほしいです……

119:デフォルトの名無しさん
21/03/25 08:39:22.55 3ixfSSYA.net
乗算じゃなくて
ピクセルで領域指定だからジャネーノ
とエスパーしてみる

120:デフォルトの名無しさん
21/03/25 14:26:26.89 B8lnjfbN.net
以下のコードを実行すると、グラフがf(x) = 0のグラフになってしまい、意図したものと異なってしまいます。
どう修正すれば意図通りの結果が得られますでしょうか?
ベクトル化についてよく分かっていないので、そのあたりがあやしいと思っています。
import numpy as np
import matplotlib.pyplot as plt
PI = np.pi
def func_x(t):
if 0 <= t:
return np.sin(t)
else:
return 0
npfunc_x = np.vectorize(func_x)



121:t = np.linspace(-PI, PI, 10000) x = npfunc_x(t) plt.plot(t, x) plt.show()



122:デフォルトの名無しさん
21/03/25 14:28:00.54 Nsykn7+b.net
>>120
そう言う時はxの値を見てみましょう
やり方は「python デバッグ」でググったら出てきます

123:デフォルトの名無しさん
21/03/25 14:33:03.93 B8lnjfbN.net
>>121
xは全部0の配列になっています。

124:デフォルトの名無しさん
21/03/25 14:37:18.67 3ixfSSYA.net
0ベクトルにナニかけても0やぞ
算数やりなおせ

125:デフォルトの名無しさん
21/03/25 14:53:03.27 B8lnjfbN.net
>>123
意味が分かりません。
xは関数の戻り値です。
xに0などかけていません。

126:デフォルトの名無しさん
21/03/25 14:57:17.24 8wVz7C90.net
出力は一番目の値で決定されるから、return 0.0とするかotypeを指定しろ
不等号逆向きにすると動作するけど、そのコードが動作しないのは出力が整数型に固定されて切り捨てでゼロ扱いされるから

127:デフォルトの名無しさん
21/03/25 15:03:02.76 B8lnjfbN.net
>>125
return 0.0
に変更したら、動作しました。
ありがとうございました。

128:デフォルトの名無しさん
21/03/25 15:26:22.39 vHK7Evso.net
今まではプログラミングの経験はなく、
教養としてpythonを勉強し始めました。
ただ仕事で使う機会もなく、いまいち勉強に身が入らない感じです。
皆さんはどうされているんですか?
ここのスレだと仕事で使う人が多いんでしょうか。

129:デフォルトの名無しさん
21/03/25 15:39:56.92 3ixfSSYA.net
>>127
完全に趣味
だがしかし
使いこなせれば仕事でも楽ができる

130:デフォルトの名無しさん
21/03/25 15:43:34.06 3ixfSSYA.net
>>124
インデントが崩壊していたからてきとーに見てた
正直すまんかった
>>125横じゃが
>return0.0
こんな手があるんだ!

小数まで計算するとコンピュータがついてけないからって
都度都度四捨五入処理をするよう組まれてた
ン十年前のプログラムを
Pythonで書き直すときにハマったのをおもいだした

131:デフォルトの名無しさん
21/03/25 16:49:02.78 Q40pz2EP.net
>>127
ブラゲーのbot運用
その次がエロサイトのスクレイピングと自動分類
たまに業務データの解析で使うときもある

132:デフォルトの名無しさん
21/03/25 16:54:43.80 5Yw77v05.net
>>127
こういうのは何か目標がないと続かないと思います
仕事で使うとか〇〇を作りたいとか

133:デフォルトの名無しさん
21/03/25 17:24:40.64 XNAp3E0g.net
>>127
相場売買のAIを作ろうと思ってます

134:デフォルトの名無しさん
21/03/25 18:19:37.27 3ixfSSYA.net
>>132
Pythonのノウハウよりだいじなことをおしえてやろう

相場をヲチって
よしんば正確に予想できるアルゴリズムが完成したとしても
自分が混ざった時点でそのぱーふぇくと理論は崩れる

覚えとけよw

135:デフォルトの名無しさん
21/03/25 18:21:37.93 GJzYUDdl.net
自分もスクレイピングやファイルの分類
ほぼエロ目的
だからそれのために情報を得るしそれに応用できないテクニックや知識は全部無駄
プログラミングを仕事にしてるわけでもないからpython自体の勉強なんかしないしやる気も出るわけない

136:127
21/03/25 18:43:38.10 2VOe+7hV.net
やっぱり、そうなんですよね。
一通り基礎は理解したものの、その後のモチベーションが…
ヒューマンリソースマシーンのような、
プログラミング的なゲームでもやっておいた方が良い気もしてきました(笑)

137:デフォルトの名無しさん
21/03/25 20:05:46.21 nCOBs6jg.net
モチベーション無いなら無理に続けなくても

138:デフォルトの名無しさん
21/03/25 20:10:08.44 KmpgWBAt.net
ヒューマンリソースマシンはあれアセンブラだぞ
使える命令とかマシン語まんま
実用的なプログラムの勉強にはならない



139:ェの体操だね



140:デフォルトの名無しさん
21/03/25 20:55:15.36 2VOe+7hV.net
>>137
プログラミングの勉強になると思ってプレイしてました(笑)
あんな感じでプログラミングの勉強になるアプリとかゲームはありますかね?

141:デフォルトの名無しさん
21/03/25 21:49:59.94 KmpgWBAt.net
>>138
カルネージハートですね。
URLリンク(ja.m.wikipedia.org)
本家はもう10年前だけど外人製のフォロワーゲームとか探せばある

142:デフォルトの名無しさん
21/03/26 00:00:46.47 0ubO4ros.net
こういうやつか
URLリンク(www.gamespark.jp)
> その後、実際に本作の開発を開始する際、ゲームプレイの面でリサーチをし、2つのシステムがとても気に入りました。
> 『ファイナルファンタジーXII』のガンビットシステムと『カルネージハート』のプログラミングインターフェースです。
> 私の本作における目標は、ガンビットのシンプルさと『カルネージハート』の戦術的奥深さの間の妥協点を見つけることでした。

143:デフォルトの名無しさん
21/03/26 19:02:57.03 v+/VCeWZ.net
>>127
金盾へのハッキングが面白くて、熱い

144:デフォルトの名無しさん
21/03/26 22:05:49.82 ndqtKa4D.net
>>141
そんなもんひたすらそっち系検索エンジンに特定のクエリ送り続けるだけやん

145:デフォルトの名無しさん
21/03/27 11:59:14.14 tPWOTzAz.net
以下の辞書内包表記がエラーになります。
どうすればいいでしょうか?
import math
def normalize_coefficients(n, D):
return {(s, i):0.5*math.sqrt(n/s) if s != 0 else (s, i):math.sqrt(n) for (s, i) in D.keys()}

146:デフォルトの名無しさん
21/03/27 14:43:44.30 cpUHfD3R.net
エラーに間違ってるとこを示す矢印っぽいのが出てるでしょ
elseの後の`(s, i):`を削除して

147:デフォルトの名無しさん
21/03/27 16:38:19.00 56gcLvkb.net
>>143
この手の質問はエラーメッセージと、本当はどんな動作を期待していたのか書いた方が答えてもらいやすい

148:デフォルトの名無しさん
21/03/27 19:35:40.12 sxUgZiKM.net
面倒な質問だと「窓から投げ捨てろ」と言う

149:デフォルトの名無しさん
21/03/28 02:30:55.99 AdvYUXyR.net
普通Dとnに何入れたらそうなったかくらいは書くだろ。

150:デフォルトの名無しさん
21/03/28 02:59:44.68 XX3dha92.net
urllib.parse.urlencode()で辞書を渡す場合、値にリストを含む場合の変換結果について教えてください。
例えば以下のようなリスト値を含む辞書データを与えた場合
{'a': [123,456]}
a=[123, 456]
という風にリスト内の値の区切りに空白が入った文字列としてエンコードされてしまいます。(123, と456の間)
(実際には記号や空白は%xxや+でエンコードされます)
a=[123,456]
のようにリスト内の値の区切りに空白を含めない文字列としてエンコードする方法はありますか?

151:デフォルトの名無しさん
21/03/28 04:32:58.94 3NgZ3Zxf.net
bytesでないdictのvalueはstrが呼ばれてstrにされる実装だから単純な方法では無理やな
URLリンク(github.com)
* 文字列化したlistの空白を消すquote_plusを作ってurlencodeのquote_viaに渡す
* dictのvalueにlistでなく文字列を渡す
* dictのvalueに渡すlistを、空白が入らないように文字列化する__str__を実装したクラスでラップする
どれかをどうぞ

152:デフォルトの名無しさん
21/03/28 06:10:39.39 XX3dha92.net
ありがとうございます。
やはり単純にはいかないんですね。
素直にリストではなく、初めから文字列で格納するようにします。

153:デフォルトの名無しさん
21/03/28 20:49:47.97 JC3QvQ/6.net
すっごいしょーもない質問なんですけど
0から始めるならおすすめの初心者向けサイトってありますか?

154:デフォルトの名無しさん
21/03/28 21:02:38.12 2n/niDAm.net
うちProgateでhtmlとかPythonとか自分が使いそうなやつ1ヶ月くらいやってあとはひたすらググって必要なやつだけかいつばんでいった
phpとかもやったけど結局使ってない

155:デフォルトの名無しさん
21/03/28 21:45:28.92 AdvYUXyR.net
サイト見てやるくらいならオライリーの初めてのpythonでも買って全部読む方がよっぽどマシだぞ

156:デフォルトの名無しさん
21/03/28 21:58:48.98 zZ3ybzIq.net
いきなり本なんか買ったって続かないよ
サイトから入るのはいいと思うけどね

157:デフォルトの名無しさん
21/03/28 22:01:08.75 Wfs5bmxs.net
俺はやりたいことが決まってからpythonやりだしたのと
別の言語はできたから一通りfizzbuzzとか書いてから
必要なライブラリ検索して作るっていう工程を繰り返したけど
いきなり無からやり出すんだったら本あったほうがいいと思う

158:デフォルトの名無しさん
21/03/29 01:58:30.08 WE/JZmPT.net
ありがとうございます。本買うことにします。

159:デフォルトの名無しさん
21/03/29 12:17:33.31 np5gG6ll.net
初めてのPythonはGoogleブックスで150ページぐらい読めるから、買う前に目を通してみて解るなら購入したらいいよ
俺にはとてもゼロから始める人に勧めるものとは思えない

160:デフォルトの名無しさん
21/03/30 16:15:46.49 /x/CBTP/.net
Python で連鎖律を解きたいです。
微分には「SymPy」といったライブラリが適していると、解説サイトにありました。
y = u^3
u = x^3 + 2x^2 + 3x + 4
この y の微分を求めたいです。
上記の答えは、
3(x^3 + 2x^2 + 3x + 4)^2 (3x^2 + 4x + 3)
になるそうなんですが、うまくゆきません。
以下に試したコードを書きます。
diff((x**3 + 2*x**2 + 3*x + 4)**3)
→ ×
a = diff((u**3) * (x**3 + 2*x**2 + 3*x + 4), u, x)
a.subs(u, x**3 + 2*x**2 + 3*x + 4)
→ ×
どなたかお知恵をお貸しください。よろしくお願いします<(_ _)>

161:デフォルトの名無しさん
21/03/30 17:26:28.39 jfNjkEti.net
以下を順番に実行したら動いたよ
import sympy
x = sympy.Symbol('x')
sympy.diff((x**3 + 2 * ...略) ** 3)

162:デフォルトの名無しさん
21/03/30 17:32:11.53 2VQXF/Ug.net
u, x, y = sympy.Symbols('u x y')

163:158
21/03/30 22:28:49.03 /x/CBTP/.net
>>159
>>160
どうもありがとうございます、無事計算できました!
感謝です!<(_ _)>

164:デフォルトの名無しさん
21/03/31 10:44:14.63 TYV185HC.net
int型のように振る舞う
小数を加減算すると四捨五入した整数を加減算する
足し算して最大値を超える場合最大値になる
引き算してマイナスになる場合0になる
という独自の型を作りたいのですがどうすればいいのでしょうか?

165:デフォルトの名無しさん
21/03/31 10:54:12.36 1+1U+2+S.net
車輪の発明の仕方は知らんのぉ

166:デフォルトの名無しさん
21/03/31 11:58:37.41 cYN7hqzq.net
まぁaddとかを自力で実装すればできないでもないが…

167:デフォルトの名無しさん
21/03/31 12:28:49.77 qt7DVuKB.net
int継承して四則演算をオーバーライド

168:デフォルトの名無しさん
21/03/31 12:31:16.92 33niRBMd.net
>>162
>という独自の型を作りたいのですがどうすればいいのでしょうか?
作ればいいじゃない

169:デフォルトの名無しさん
21/03/31 12:38:38.39 1K4SHGhs.net
>>162
自分で試した内容と、どこで詰まってるのかくらいは書けよ

170:デフォルトの名無しさん
21/03/31 13:27:07.97 TYV185HC.net
>>165,167
そういうことをやればいいということはなんとなくわかってるんです
「python int 継承」で検索もしました
でも検索でヒットする記事じゃやり方がわからないので
それの具体的なやり方をコードで教えてほしいわけです
あと具体的にやりたいのはこういうことです
a = n(5,100) #実体化のときに初期値と最大値を設定
print(a) #5と表示
a += 5.1
print(a) #10と表示
a += 999
print(a) #100と表示

171:デフォルトの名無しさん
21/03/31 15:25:15.94 Vc5hrOQS.net
>>168
class Foo(int):
__def __add__(self, other):
____return self.__class__(int(self) + other)
続きは「operator overloading in python」で検索

172:デフォルトの名無しさん
21/03/31 16:04:49.92 qDb8EHC5.net
>>169
>>168は検索したってわからないって言ってるだろ
ちゃんと全部書いてやれよ

173:デフォルトの名無しさん
21/03/31 17:40:42.81 kvIfnSeV.net
なんとなくわかってたんだから
>>169見れば後は分かるだろ
逆に何が分からないのかが分からないからそれを教えてくれよ

174:デフォルトの名無しさん
21/03/31 18:37:46.05 TYV185HC.net
仕様は完璧には理解できなかったけど
とりあえず想定通り動いてくれるものができました
URLリンク(pastebin.com)
pass:del(削除用パスだと思ったら閲覧用パスだった)
>>169 他回答してくれた皆さん
ありがとうございました

175:デフォルトの名無しさん
21/03/31 23:49:18.64 Vc5hrOQS.net
>>172
別にいいのかもしれないけど
n(“string”)とかn(10.12)とか比較演算とか
intを継承すれば発生しない問題をたくさん抱えてるよ

176:デフォルトの名無しさん
21/04/01 15:18:01.88 9j9uUZcG.net
初pythonです。
クラス変数なるものを知り、こりゃすべて__init__の中でインスタンス変数にしないと危険だなと思いました。
しかし世のサンプルを見ると、ほとんどがクラス変数となっています。
Webサービスのジョブのクラスのコードでもクラス変数になっていて、これでちゃんと動くのか不安に思っています。
サンプルは自分で考えてスコープ変えろよって言うのが前提なのでしょうか。
初心者過ぎてばかげた質問かもしれませんが、ご意見いただけたらと思います。

177:デフォルトの名無しさん
21/04/01 16:27:57.76 z+kCaEcE.net
>>174
必要なものしかクラス変数にはなってないと思うよ。例を見せて

178:デフォルトの名無しさん
21/04/01 19:17:31.45 sxNAMQCC.net
インスタンス変数によるクラス変数の隠蔽について質問です
以下のコードにおいて、出力が21,19,0となるのは、
21や19の代入時にインスタンス変数ageが生成されて、クラス変数のageが隠蔽されたからという理解であってますか?
class person():
  age = 0
taro = person()
taro.age = 21
jiro = person()
jiro.age = 19
print("{p.age}, ".format(p=taro))
print("{p.age}, ".format(p=jiro))
print("{p.age}, ".format(p=person))

179:デフォルトの名無しさん
21/04/01 20:11:50.07 qWLYbtkQ.net
>>175
正確にはサンプルと言うよりはチュートリアル系のページです。
個人のページを書くのは気が引けるので、例えば、以下のItemクラスなどです。Webサービスなので同時に呼ばれることは多々あると思うのですが。
URLリンク(fastapi.tiangolo.com)

180:デフォルトの名無しさん
21/04/01 20:14:55.23 1gUayPkm.net
>>176
同じ名前があったらインスタンスのを使う
隠蔽っていうか
person.ageでアクセスできないか

181:デフォルトの名無しさん
21/04/01 20:23:36.06 1gUayPkm.net
>>177
pythonだという証拠は

182:デフォルトの名無しさん
21/04/01 20:34:56.02 9j9uUZcG.net
>>179
どういう意味ですか?

183:デフォルトの名無しさん
21/04/01 21:13:14.81 GHLAqcRW.net
pydanticだからじゃん

184:デフォルトの名無しさん
21/04/01 21:30:22.18 9j9uUZcG.net
>>181
なるほど、ヘルプ読んで理解しました
ありがとうございます!

185:デフォルトの名無しさん
21/04/01 21:56:15.69 6NDtmvbq.net
実装方法は違うけど考え方はデータクラスと同じで内部的にインスタンス変数として設定される

186:デフォルトの名無しさん
21/04/01 23:38:19.42 9j9uUZcG.net
>>183
ありがとうございます。
さらには__init__をオーバーライドしないように気をつけなきゃいけないんですかね
pythonチャレンジ二日目でちょっとくじけそうです。
今回のことなんかここで聞かなきゃ回答にいけつけなかったし

187:デフォルトの名無しさん
21/04/02 01:09:36.62 xburNgtP.net
tkinterでメッセージボックス出すときタイトル引数が長くてメッセージ引数が短いと
タイトルバーが省略表示されてしまうんだけど、全部表示するにはどうしたらいいですか?
tkmb.showinfo(validate_inputs_directorypath, "なし")
みたいな場合です

188:デフォルトの名無しさん
21/04/02 06:04:51.09 Lx2Hy5gS.net
>>185
そんなクソなタイトルつけんなwって話なんじゃ・・・

189:デフォルトの名無しさん
21/04/02 22:50:57.48 kA91Mkww.net
pythonはクラス変数がありますが、インスタンス参照がない状態のガベージコレクションはどうなっているのでしょうか?

190:デフォルトの名無しさん
21/04/02 23:37:06.33 Lx2Hy5gS.net
・・・わだいるーぷしてね?

191:デフォルトの名無しさん
21/04/03 00:49:02.53 IxwztQHk.net
ガベコレ

192:デフォルトの名無しさん
21/04/03 10:00:16.00 trgltwrH.net
今まで仕事で必死こいてやってたあれこれが、全部秒かからんで終わる
大したPC使ってないのにどんだけすごいんよ。この子
本当やろうと思えばなんでもできんね。これ

193:デフォルトの名無しさん
21/04/03 10:03:56.14 6fy7iE1I.net
スクリプト言語はどれもそんなかんじやで!
これからもおしあわせに~

194:デフォルトの名無しさん
21/04/03 16:53:33.46 47kYGnI+.net
すみません、
例えばpngの自動文字起こしアプリをPythonで作った場合、そのアプリを別PCでも使いたい場合、そっちでもpipしなきゃいけないんですか?
配布する場合いろんな部署に配布することになるから大変なんですけど

195:デフォルトの名無しさん
21/04/03 17:11:35.11 6fy7iE1I.net
>>192
OSと利用比率くらい書いてけ
+そいつらのPCリテラシー度合いにも多少は左右される

196:デフォルトの名無しさん
21/04/03 17:21:17.78 ClFC++3t.net
>>192
そんな事聞くレベルなら配布すんな。メンテのたびに過労死するぞ

197:デフォルトの名無しさん
21/04/03 17:37:22.20 6fy7iE1I.net
>>194
あああー!
そういえばそうだった!!!>メンテするとチヌ

198:デフォルトの名無しさん
21/04/03 17:44:40.80 EzmFJzRe.net
exeに固めるか、webアプリにするか、lambdaにでも置いておくか

199:デフォルトの名無しさん
21/04/03 17:52:00.45 DP/gaUVz.net
AWSかGCPだな
Pythonで作ったものを非開発者に配布するのは本当に地獄を見るから絶対にやめたほうがいい

200:デフォルトの名無しさん
21/04/03 18:59:42.70 nkSIG8qO.net
pipを使えないような人達に配布するならインストーラかインストールスクリプトを書く
特定のユーザーがログイン時にインストールスクリプトを自動実行するような仕組みを使えば配布は簡単
Webアプリに比べれば環境が多様だから台数が増えればサポートコストは増える

201:デフォルトの名無しさん
21/04/03 19:03:31.16 6fy7iE1I.net
>>198
そのスクリプトなりインストーラ+そのアプデしか走らせられない安全な環境を作るときにチヌわ

202:デフォルトの名無しさん
21/04/03 19:20:47.90 FpevJVBv.net
最悪pythonディレクトリ丸ごと渡せばいい
python embedというスクラッチがあるから
それに必要なの足していけばいいんじゃ

203:デフォルトの名無しさん
21/04/03 19:57:20.93 I8FEebuy.net
' aa a '.strip().strip('aaa')
#' '
おそらく'aa a'の中の半角スペースだけ残るのですがなぜですか
'aaa'には当てはまらないから無視して
'aa a'が残るならわかるんですが

204:デフォルトの名無しさん
21/04/03 20:07:12.42 gHKAEbqs.net
stripのリファレンスをよく読んでごらん
引数に指定するのは「文字列」ではなく「文字の集合」だ
この違いが分かるかね

205:デフォルトの名無しさん
21/04/03 20:08:19.64 gHKAEbqs.net
逆に192はpipしなくていいならどうできると思ってたのか気になる

206:デフォルトの名無しさん
21/04/03 20:47:10.86 bgVKOhSQ.net
ピッピピッピ

207:デフォルトの名無しさん
21/04/03 21:03:05.22 wGJ5LVi5.net
>>202
なんでそんなに上から目線なのかね

208:デフォルトの名無しさん
21/04/03 22:52:04.06 6fy7iE1I.net
>205横だが
大二病かプ二病かその両方なんだろう

209:デフォルトの名無しさん
21/04/04 02:51:57.29 vLoSd5kv.net
>>192です
>>196
exeかwebアプリにして配布するのが基本なんですね
あざます
それなら簡単そうですね

210:デフォルトの名無しさん
21/04/04 05:31:24.72 DYzzbk5J.net
>>207
exeもファイルアップローダもどっちも個人的には難しい部類なんだけど、簡単っって言える人が羨ましい

211:デフォルトの名無しさん
21/04/04 07:37:41.99 /F7LAei5.net
>>208
うpろだはWebアプリちゃうぞ!
べんきょうしる!!!

212:デフォルトの名無しさん
21/04/04 07:39:01.67 ciXsbyqc.net
yolov5 をexe化しようとして失敗したあるよ

213:デフォルトの名無しさん
21/04/04 07:41:07.08 /F7LAei5.net
>>209補足
ベン図をかくと
Webアプリの方がはるかにでっかい。
うpろだはWebアプリの中の一点にすぎない。
違いが判らないマジ超初心者のうちは
Pythonよりずっとずっとさきに
つぶしのきくPC用語をもっといっぱいべんきょうしる!

214:デフォルトの名無しさん
21/04/04 07:42:27.14 DYzzbk5J.net
>>209
「pngの自動文字起こしアプリ」でファイルアップロードしないの?

215:デフォルトの名無しさん
21/04/04 07:52:18.84 /F7LAei5.net
>>212
社内専用かつ中身がexeなzipであっても置いてておkでまともなうpろだ持ってる会社はすげえ少ないぞ。
う○こ味のカレーもたべます!みたいなヤバイ設定のNASがある会社はまずまずあるかもしらんが。。。
んな設定のまま使ってるなやwってーはなしでー
社内Webページに置かせてもらう あたりがまずまず現実的
メール添付で配ろうとするのは、これまたセキュリティにひっかかって地獄をみるだろう。

216:デフォルトの名無しさん
21/04/04 08:04:10.09 DYzzbk5J.net
>>213
だから、「個人的に難しい/簡単って言える人羨ましい」って言ってるんだけど?

217:デフォルトの名無しさん
21/04/04 08:31:16.27 /F7LAei5.net
>>214
Webサのうpが無理ならPythonじゃなくてVBAとかにしとけってはなし

218:デフォルトの名無しさん
21/04/04 08:48:55.24 DYzzbk5J.net
>>215
なんでそんな話になるんだ?
exeもwebも簡単→おれには難しい/簡単って言える人は羨ましいって流れだぞ?
あと、興味本位で聞くけど、VBAで画像認識ってできるの?
外部のアプリ叩くとかだと、その外部アプリどうすんのって話にすり替わるだけだと思うけど。

219:デフォルトの名無しさん
21/04/04 08:53:54.01 /F7LAei5.net
>>216
VBAで画像認識>野良ライブラリ落ちてないから手軽にはできないが、不可能ではない。
個人的には(、ちゅーか個人の事情的には?)(規約とかトラウマ的に)難しい
ってやつね
オトナコトバありがとう

220:デフォルトの名無しさん
21/04/04 08:59:11.82 DYzzbk5J.net
>>217
「pngの自動文字起こし」をVBAでスクラッチって無理な気がするけど。
ガチガチのアップロード機能作るより難しくね?

221:デフォルトの名無しさん
21/04/04 09:06:23.43 /F7LAei5.net
>>218
たしかにそこは
まちがいなく、確実に、
「がちがちのろだ」を整備するほうが簡単。
ところで
簡単っって言える(ようなセキュリティぬるぽでゆるされてる)人が羨ましい
の末尾に
見えない芝生生えてるよな?

222:デフォルトの名無しさん
21/04/04 09:16:30.52 DYzzbk5J.net
>>219
> 見えない芝生生えてるよな?
そんな事ないよ
環境に左右されるケースが大きいから、オレの環境のガイドラインだとハードルが高いってだけだし
ガイドラインが許す範囲で、コスト重視の簡易設計にするのは重要な見切りだと思ってる

223:デフォルトの名無しさん
21/04/04 09:24:05.66 /F7LAei5.net
>>220
個人的には
そのへんの規定がゆるーい(というか上の意識が低くて未整備まだ存在しないな場合がままある)会社だからって、
抵触しなければおkおkおkって「見切り」して
使うだけなひとびとのexe入りファイルのやりとりへの心のハードルずんどこ下げちゃうのは
すげーあぶないとおもうので
芝生がはえてしまう。
ハードルはすれすれで超えましょう。ってのは無論だいじだけど。

224:デフォルトの名無しさん
21/04/04 11:12:15.50 DgttH7dz.net
質問者そっちのけの話が好きだよな

225:デフォルトの名無しさん
21/04/04 11:19:20.22 xtAOreBW.net
質問はいわば大喜利のお題。

226:デフォルトの名無しさん
21/04/04 12:31:22.48 oZvlJFMv.net
>>207
exe化するのはリテラシーの低いシステム部門による苦肉の策であって基本ではないよ
基本はパッケージにして配布

227:デフォルトの名無しさん
21/04/04 12:32:21.42 vLoSd5kv.net
パッと調べただけだけどexe化ってpyinstallerってやつ使えばできるんじゃないです?
Webアプリはしょっちゅう作ってるんで余裕ですね

228:デフォルトの名無しさん
21/04/04 12:34:04.19 vLoSd5kv.net
>>224
なるほど
一部の部署以外は令和とは思えないほどネットリテラシー低いのでexe化は必須っすね

229:デフォルトの名無しさん
21/04/04 12:34:09.34 OG5V/QNa.net
webアプリ化するならPython選ばんだろjk

230:デフォルトの名無しさん
21/04/04 12:52:45.25 DgttH7dz.net
PyInstallerでexeにして上手く動けば儲けもの
動かないならexeを諦めて他、かな
PyInstallerのトラブルを解決できるような人は初心者スレで質問する必要ないよ
たぶん

231:デフォルトの名無しさん
21/04/04 14:51:24.94 JGzgwOb+.net
システム部門のリテラシーが低さをユーザーに責任転嫁するのは使えない情シスあるある

232:デフォルトの名無しさん
21/04/05 04:53:55.03 GCYTY8e9.net
サーバー側はseleniumを使ってアクセスしてる人が分かると聞きました
では、webbrowserを使ってアクセスした場合は分かるのでしょうか
また、その時にpythonが実行されてることは分かるでしょうか

233:デフォルトの名無しさん
21/04/05 05:02:30.07 GCYTY8e9.net
>>230
「webbrowserを使って」を
「webbrowser.openとかsubprocess.Popenを使って」に訂正です

234:デフォルトの名無しさん
21/04/05 06:26:56.58 1rfXdG6q.net
URLリンク(docs.python.org)
これの話をしているか?
これの話をしているなら
1. webbrowserから起動したブラウザでアクセスしたかどうかは分からない
2. Pythonか実行されているかどうかは分からない
Seleniumに関しても正確には理解してなさそうなので補足する
Webオートメーションによってアクセスされているかの判別は
1. navigator.webdriverフラグ
2. 人間らしい振る舞いの検出
に大別される
SeleniumではなくWebオートメーションと呼んだことから察するかもしれないが、
この判別は同じ用途のツールならSeleniumに限らず適用可能である
(逆に言えばSeleniumかどうかの判別ではない)
navigator.webdriverというのは、Webオートメーションによってアクセスしているかどうかをブラウザ自身に通知させるものだ
ただし、今のところブラウザのオプションで強制的にfalseにすることが可能だし、仮に今後オプションで変更できなくなったとしても、
野良ビルドされたブラウザが配布されるようになるだけで、それほど意味はないだろうことが策定時から指摘されている
URLリンク(developer.mozilla.org)
人間らしい振る舞いの検出というのは、例えば、
人間が要素をクリックするときはポインタかフォーカスが要素の上まで移動してくるはずである
この移動している様子がなかった場合は、Webオートメーションである
移動している様子があった場合も、ポインタが完全な直線で移動しているようなら、
人間の操作にあるはずの揺らぎがないことから、やはりWebオートメーションである
みたいなものである
実際のアルゴリズムはこのような単純なものではなく、現在は機械学習による異常検知が主流である

235:デフォルトの名無しさん
21/04/05 07:28:16.88 CsDRo5vQ.net
for inだけでしこしこデータベースをいじってアップデートしてたけど
だいぶPythonに慣れてきたのでいよいよpandasを使って書いてみようとしたらコードは簡潔になったけどめっちゃ遅くなった…
遅い部分を削っていったらもうパンダ使う意味ほとんどなくなったし。げんなり

236:デフォルトの名無しさん
21/04/05 08:01:26.42 GCYTY8e9.net
>>232
はい、そのリンク先の話をしていました
navigator.webdriverをfalseに設定できるってことすら知らなかったです
いや、本当にありがとうございました!

237:デフォルトの名無しさん
21/04/05 10:42:07.74 02jeM6qR.net
>>232
>人間が要素をクリックするときはポインタかフォーカスが要素の上まで移動してくるはずである
人間が使っていてもポインタやフォーカスが移動しないケースはいくらでもあるよ

238:デフォルトの名無しさん
21/04/05 10:50:40.71 Yz4vPuYc.net
>>235
そういうグレーなときだけRecapなんちゃらを出すのサ

239:デフォルトの名無しさん
21/04/05 11:21:28.34 3HQ81ZvQ.net
>>236
全然グレーじゃないよ
いまどき岡崎図書館でもそんなことはしないんじゃないか

240:デフォルトの名無しさん
21/04/05 12:02:27.30 YvbwOQhF.net
実際にはこんな単純なものではないって書いてあるのにこれだから
馬鹿はママとお話ししてろ

241:デフォルトの名無しさん
21/04/05 15:29:59.50 vS+QhcYH.net
亀レスですまんが、↑のexeファイルって自己解凍型のexeのことだと思ってたが違うけん?

242:デフォルトの名無しさん
21/04/06 10:31:52.68 dCmZ7v4+.net
Windowsで作ったPythonの仮想環境を
Linux上で動かしたいです
ただファイル類をコピーしただけだと、
activate.batやPython.exe等がWindows用なので
動作しませんでした
Linux側で仮想環境を作り、Script以外をコピーする等
すればよいのでしょうか

243:デフォルトの名無しさん
21/04/06 11:28:02.29 HwFHEu2a.net
>>240
>Linux側で仮想環境を作り、Script以外をコピーする等
すればよいのでしょうか
よくないです。仮想環境はただ、コピーして動くようなものではありません
Linux側で仮想環境を作り、その中でwheelでもgit cloneでもいいですがpip installできるような環境をつくるべきです

244:デフォルトの名無しさん
21/04/06 14:07:11.93 dCmZ7v4+.net
>>241
Linux側はインターネット接続不可環境なので、
gitやpipでのレポジトリへのアクセスだとか、
自前のレポジトリの作成やライブラリの収集が
できないですね
すいません、そういう環境です

245:デフォルトの名無しさん
21/04/06 14:40:09.24 i2p9OJu5.net
ネットにつながってるマシンでpip環境を書きだし+
入ってるものの各インスコ用ファイルを準備

スタンドアロンのマシンにファイルをうつして
ローカルファイルからのpipインスコを実行

ソースもうごくおいしーいの( ^)o(^ )

246:デフォルトの名無しさん
21/04/06 15:51:35.24 eryrf7Ji.net
Linuxでネット繋げないってわりと無理ゲーな気がするけど何でやろうとしてるんだ……
Python以外にaptも使えないんだぞ

247:デフォルトの名無しさん
21/04/06 19:51:23.47 HwFHEu2a.net
>>242
だったら最初からかけよ
何にしても外からコピーできるんなら、必要なパッケージをコピーして持っていってそれをpipで入れればいいだけだろ
コピーしてって別の仮想環境からじゃなくて、PyPIで配布してるpip install パッケージ名.whlでインストールできるやつな

248:デフォルトの名無しさん
21/04/06 21:11:23.50 wES9tagM.net
WindowsでLinux用のDockerコンテナ動かして
その上にPythonの環境作ってDockerイメージをコピーで

249:デフォルトの名無しさん
21/04/06 22:29:42.47 vVvRH1MT.net
おっぱいそん

250:デフォルトの名無しさん
21/04/06 23:16:04.94 cBLfSlVZ.net
山浦清透、1/15
Docker超入門講座 合併版 | ゼロから実践する4時間のフルコース
www.youtube.com/watch?v=lZD1MIHwMBY
Windows 10 Home 版, WSL2, Ubuntu 20.04 LTS,
Docker Compose, VSCode, Heroku, Ruby on Rails, Git, CI/CD, CircleCI
これを、Python に変えれば?

251:デフォルトの名無しさん
21/04/08 00:25:52.54 l4JF0i/8.net
pythonで成型した文字列をjavascriptのコード(文字列)としてprintしたいのですが
みなさんはどうやっていますか
テンプレート文字列だと辞書のとき{}がかぶっちゃいますよね
print(f"""var obj={}""")
一旦ファイルに保存して読み出しするのが一般的なのでしょうか?

252:デフォルトの名無しさん
21/04/08 12:26:34.36 jMb3Fqbi.net
>>249
波括弧を2個重ねてエスケープするか、raw文字列を使う
print(' {{ ')
print(r' { ')

253:デフォルトの名無しさん
21/04/08 14:22:55.79 BYjSvKlS.net
小林さんちのメイドラゴン
久しぶりに再放送やってたので観たけど
小林さんPython使ってたんだな
バグ仕込んでるみたいだったが

254:デフォルトの名無しさん
21/04/08 14:27:31.74 BYjSvKlS.net
これだ
URLリンク(qiita.com)
URLリンク(qiita.com)

255:デフォルトの名無しさん
21/04/08 20:04:03.76 Fp+NNsfX.net
pythonを一からはじめたいんですが、まとめサイトの中の本から選んだらよいんでしょうか?
2018年から更新されてないようなのですが、おすすめの書籍やサイトありましたら、お願いいたします

256:デフォルトの名無しさん
21/04/08 20:14:37.42 l4JF0i/8.net
>>250
できました!!!
(\でエスケープするのかと思ってました)
ありがとうございました

257:デフォルトの名無しさん
21/04/08 20:21:43.56 SlRPMViD.net
>>253
Dr.bouyo

258:デフォルトの名無しさん
21/04/08 20:27:21.85 H2kw3RWC.net
>>77
ありがとうございました
FAQ読みました

259:デフォルトの名無しさん
21/04/08 22:32:10.93 9Jlergo9.net
>>253
URLリンク(docs.python.org)

260:デフォルトの名無しさん
21/04/09 11:46:09.00 D8NVI6fw.net
Python開発用の環境を構築することの指針なんですが、
インストールしたPython本体は触らず、
仮想環境を作り、そちら側に追加機能をインストールする、
という方針を聞きます
しかしその方針とすると、別プロジェクトを作るとかで新たな仮想環境を作ったとき
改めて追加のパッケージを導入する必要があり、面倒に思ってます
Pylint等、どんな仮想環境でも使いたいものは本体に、
例えばDjangoなんかみたいに特定のプロジェクトで使うものは仮想環境に、
なんて考えましたが、本体に入れるべきか仮想環境に入れるべきかの線引きが
難しいなと思ってます
どんな風に運用するのがよいのか、よいベストプラクティスって、何かありますか?

261:デフォルトの名無しさん
21/04/09 12:14:56.84 mIlalRjZ.net
開発者間で環境を合わせたいor特定バージョンのライブラリを使いたいorある日突然動かなくなっては困る→pyenv
それ以外→直インストール
とかでいいんじゃね?

262:デフォルトの名無しさん
21/04/09 12:31:11.65 BwescqVD.net
自分でちょっとPythonで何か作ってみたいって程度なら仮想どうのこうのなんかど~でもいい

263:デフォルトの名無しさん
21/04/09 13:50:57.78 0I3K7hDb.net
>>258
pipenv install pylint autopep8なり
poetry add pylintautopep8なり
決まり文句はどっかにメモしてコピペすればいいのでは?
パッケージのバージョンの依存関係のあれこれを考えたくないなら、何も考えず仮想環境で全部のパッケージを分けちゃうが一番楽だと思うけどな。

264:デフォルトの名無しさん
21/04/09 14:22:15.50 J5Q+WUmZ.net
VScodeのRemote Containersつかえ
仮想環境がどうとか気にしなくて良くなる

265:デフォルトの名無しさん
21/04/09 14:46:59.82 3bHJNfn7.net
importしないパッケージなら入れてしまっていいと思う
逆に言うとimportするなら面倒くさかろうが毎回入れる

266:デフォルトの名無しさん
21/04/09 14:48:17.91 .net
>>258
・docker(およびdocker-compose)
 dockerを実行できるクラウドサービスを使えば尚良
 linuxなら元から入ってたかもしれないので宅PCで開発してもよい
 docker run, docoker exec, docker オプション, マウント
 などで検索すると、気軽に0からpythonの環境を構築できる方法がわかる
・google colaboratory
 ちょっとしたトライアンドエラーからweb系から機械学習からほぼすべてのプロジェクトを困ること無く仮想環境で開発できる
 初心者ならjavascript並に開発の敷居が下がったといってもいい
・git周り
 clone, add, commit -m'', push, ブランチ
 個人開発ならぶっちゃけこの辺りだけ知ってれば十分
・vscode
 補助として
・django
何を開発するかにもよるけど
google colabやdockerインストール済みの環境で開発しつつ、
まとまってきたらgitへpush
PCが壊れたり、別のPCへ移植したければ
googleのアカウント、gitのアカウント(googleのoauth認証でもいけた?なら実質googleアカウントだけ)だけで
0から同じ環境の構築完了

267:デフォルトの名無しさん
21/04/09 18:14:56.91 z6REo42V.net
>>258
ベストプラクティスは分からないけどプロジェクト毎に環境切った方が問題切り分けられて後々楽になるのは確か
個人のプロジェクトでそこまで神経質になる必要が無ければシステムに全部入れちゃうのが1番楽で別にそれでもいいと思う
自分はnmpみたいにPythonはシステムに入れてる最新版使ってパッケージはpoetryでプロジェクトディレクトリ以下に入れて必要無くなればディレクトリごと捨てるようにしてる

268:デフォルトの名無しさん
21/04/09 20:30:56.27 2i2clTn4.net
配列に格納された連続する二要素をいちばん簡潔に取り出す方法って何になりますか?
A=[1,2,3,4,5]なら(1,2),(2,3),(3,4),(4,5)みたいな感じです

269:デフォルトの名無しさん
21/04/09 20:35:30.64 nftSBFiE.net
omaeno_turple = (A[n], A[n+1])

270:デフォルトの名無しさん
21/04/09 20:42:24.26 BfFQIsqw.net
a=[1, 2, 3, 4, 5]
[(a[i],a[i+1]) for i in range(0,len(a)-1)]

271:デフォルトの名無しさん
21/04/09 20:50:06.30 p7uKRazG.net
list(zip(A,A[1:]))

272:デフォルトの名無しさん
21/04/09 21:13:26.65 2i2clTn4.net
>>268
やっぱりこれが限界ですよね…
>>269もなるほどとは思いましたがA[1:]の部分でメモリに無駄がありそうですし…

273:デフォルトの名無しさん
21/04/09 22:01:07.94 9nMkDqyN.net
ジェネレーター、イテレーター

274:デフォルトの名無しさん
21/04/10 00:27:10.96 Tr2LjW8o.net
more itertoolsは?
chunked([1,2,3,4],2)

275:デフォルトの名無しさん
21/04/10 00:35:15.36 /pBftddC.net
出た、忘れたころに出てくるitertools
めちゃくちゃ使えそうで使えないライブラリ

276:デフォルトの名無しさん
21/04/10 02:22:41.49 edMGid1M.net
def each_cons(x, size):
__return [x[i:i+size] for i in range(len(x)-size+1)]
これでやってる
>>268と同じと言えば同じ
toolzのsliding_windowでもできる
URLリンク(toolz.readthedocs.io)

277:デフォルトの名無しさん
21/04/10 09:37:26.29 yMUSEnBC.net
>>272
ありがとうございます!
調べた感じchunkedだと[1,2],[3,4]みたいに区切って出力されるので、目的には合わなさそうです…
>>268
ありがとうございます!

278:デフォルトの名無しさん
21/04/10 15:25:52.63 7Fqbquic.net
みんなすごいな。
カメでマルかけて大喜びしてる自分とは大違い。
頑張って勉強せないかん。

279:デフォルトの名無しさん
21/04/10 16:21:37.07 s4y3TWlJ.net
>>270
269の書き方がファイナルアンサーだと思うよ。
268と同じく、中間でリストを作ったりすることがない書き方になっている。

280:デフォルトの名無しさん
21/04/10 16:44:35.29 yMUSEnBC.net
>>277
269はA[1:]部分でAをコピーしてる(メモリを無駄遣いしている?)ので268が良いと思っていたのですがこれは間違いですか?

281:デフォルトの名無しさん
21/04/10 17:46:33.48 V9tOEpjW.net
>>269 のA[1:]をitertools.islice(A,1,None)に変えればメモリの無駄も無くせるか

282:デフォルトの名無しさん
21/04/10 18:56:12.07 KhtOrJ3O.net
そもそもpythonでメモリ効率とか考えるだけ無駄なんじゃないかと

283:デフォルトの名無しさん
21/04/10 19:17:22.08 5ksPyy0r.net
>>280
これ
そのAによっぽどデカいもの詰めてるとかじゃない限り気にせんでええと思う

284:デフォルトの名無しさん
21/04/10 19:25:46.02 t2rPFxAg.net
コマンドラインでvenvの仮想環境作って
atomで仮想環境を選択してコード書きたいのですが
コマンドラインってずっと開きっぱなしでないといけないの?
閉じたら仮想環境もdeactivateされるんですか?

285:デフォルトの名無しさん
21/04/10 20:02:22.86 KmPkwZfW.net
閉じたらプロセスも止まるからな
開きっぱなしでも別に邪魔にならんだろ
atomってターミナル無いの?vscも、pychrmもproject開いたらvenvの環境が自動でアクティベートされてるから意識すらしない

286:デフォルトの名無しさん
21/04/10 21:07:32.12 euoo/Shs.net
他のIDEは知らんけど
atom_venvのパッケージの話なら
ターミナルで仮想環境作る

atomで仮想環境のディレクトリを指定してやる

仮想環境にスイッチできる
だけなので、仮想環境作ったあとはターミナルは閉じていい

287:デフォルトの名無しさん
21/04/10 21:15:36.12 OA/XTa6K.net
VSCode では、端末を幾つでも開ける。
デバッグでもよく使うし、常に最低でも、1つは開いている
端末を起動していても、表示・非表示を選択できる

288:デフォルトの名無しさん
21/04/10 21:26:32.12 hfLklo2F.net
コマンドラインのターミナルが仮想環境そのもので
閉じたらatomというただのエディターが残るだけ

289:デフォルトの名無しさん
21/04/11 12:08:23.93 6eqQzCzM.net
仮想環境ってのは有り体にいうとPATHとPYTHONPATHあたりの環境変数がシステムにインストールされているPythonとは隔離されたPython向けに調整されてるってだけで、
プロセスとかは全く関係ないぞ
activateの実態は環境変数の設定

290:デフォルトの名無しさん
21/04/12 09:21:28.49 Whdbrxbg.net
変数を代入する関数を書くとき
x = 1
def func_a():
__x=2
func_a()
def func_b():
__return 2
x = func_b()
どっちで書いた方がいいとかありますか?どっちでもいい?

291:デフォルトの名無しさん
21/04/12 09:23:25.66 MdiLEBnJ.net
>>288
おれなら後者

292:デフォルトの名無しさん
21/04/12 11:41:12.17 JpAFHmXg.net
他に条件ないなら副作用のある関数なんて書いちゃだめ

293:デフォルトの名無しさん
21/04/12 13:01:58.81 3O31AUpl.net
>>288
前者は
*変数名をミスると全く意味を成さない(その上エラーは出ない)
*思わぬ副作用を生みかねない
*モジュール化出来ない
バグの温床になる

294:デフォルトの名無しさん
21/04/12 14:17:43.25 Tqq1DlXC.net
urllibってパースするだけじゃなくクエリを追加して返してくれるような機能ってないんですかね?
(単に&の文字列結合すればいいだけなんですけど)

295:デフォルトの名無しさん
21/04/12 14:49:37.05 iP6DLKCo.net
>>291
なるほど

296:デフォルトの名無しさん
21/04/12 15:06:08.10 eKsxxXZh.net
「Jupyter notebookの起動フォルダ」ってどこのことですか?
Jupyter notebookを開いたときに出てくる一覧のところ?

297:デフォルトの名無しさん
21/04/12 18:30:19.07 6NL/o6lT.net
>>292
ある

298:デフォルトの名無しさん
21/04/12 18:32:07.37 6NL/o6lT.net
>>294
違う
jupyter notebook を起動するときのカレントディレクトリか
あるいはオプションで指定して起動

299:デフォルトの名無しさん
21/04/12 18:52:36.49 eKsxxXZh.net
>>296
ありがとうございます
jupyter notebook を起動するときのカレントディレクトリを調べるにはどうしたらいいですか?

300:デフォルトの名無しさん
21/04/12 19:15:20.69 6NL/o6lT.net
(´・ω・`)知らんがな

301:デフォルトの名無しさん
21/04/12 19:16:47.30 VYgLgFqq.net
セルに
import os
os.getcwd()
って打ち込んでshift+enter

302:デフォルトの名無しさん
21/04/12 19:30:16.70 tJ6MT7iR.net
python と C++ をswigで繋いだ開発をやりたいのですがなにか良い統合開発環境ないですか?

303:デフォルトの名無しさん
21/04/12 19:30:36.85 eKsxxXZh.net
>>299
ありがとうございました

304:デフォルトの名無しさん
21/04/12 20:06:39.90 IyOMD186.net
>>300
普通emacs
boostじゃなくてswigにするの?

305:デフォルトの名無しさん
21/04/12 20:33:50.30 tJ6MT7iR.net
boostはよく知らないですがpythonメインで高速化したい部分をC++で書くイメージです。
emacsってUnix系ですよね?windowsでモダンな開発環境触ってみたいです。

306:デフォルトの名無しさん
21/04/12 21:03:48.11 Tqq1DlXC.net
>>295
確認ですがpr._replaceとurlunparseを使った方法ではないですよね?

307:デフォルトの名無しさん
21/04/12 21:52:57.52 z80SpJNy.net
日本人が作った、バージョンマネージャーのanyenv で、
Ruby, Python, Node.js のrbenv, pyenv, nodenv でも、
使いたいバージョンを切り替えるだけ
rbenv global 2.6.6
rbenv local 2.6.6
global ならシステム全体、
local なら、そのプロジェクトのバージョンを切り替える
rubyコマンドの参照先を確認する
which ruby
~/.anyenv/envs/rbenv/shims/ruby
rbenv global system
なら、apt などで、/usr/bin/ruby へインストールしたバージョンを使う
まあ最近は、Docker を使う事も多いけど

308:デフォルトの名無しさん
21/04/12 21:57:52.65 HnVQKAJ1.net
でそれでDarknetはコンパイルできるのかね?

309:デフォルトの名無しさん
21/04/12 22:18:28.74 I/pOLMrW.net
インスタンスを別のクラスでいじりたい
class Main():
__def get(self):
____self.x = 1
class Sub():
__def convert(self):
____self.x = str(self.x)
みたいな。
obj =Main()
obj.get()
…??
どう書いたらいいのでしょうか
(実際は取得クラスはもっと大きいので、変換系は分離したいのです)

310:デフォルトの名無しさん
21/04/12 22:24:27.92 Eq417zPZ.net
継承する

311:デフォルトの名無しさん
21/04/12 22:34:11.40 CTvbFAAZ.net
class main:
__x=1
class sub:
__def setmainx(a):
____main.x=a
print(main.x)
sub.setmainx(2)
print(main.x)

312:デフォルトの名無しさん
21/04/12 22:42:09.04 rJYHlMWg.net
クラスにインスタンス投げれば良くね?

313:デフォルトの名無しさん
21/04/12 22:48:14.45 8Dw4jEA6.net
>>304
うん

314:デフォルトの名無しさん
21/04/12 23:42:18.89 Tqq1DlXC.net
>>311
なるほどあるのですね
どの関数でしょうか?

315:デフォルトの名無しさん
21/04/13 05:15:27.15 M3Xniwnk.net
質問があります。
コマンドプロントでPython使ってて、
>>> a, b = 0, 1
>>> while a < 10:
... print(a)
... a, b = b, a+b
という単純なプログラムを入力したいんですが、
4行目が書けません…
3行目を書いてEnterした瞬間に実行されてエラーが出てしまいます。
IDLEに入力する場合は全部書いてから実行することを自分で選べるから
上記のプログラムを成せるんですが、
コマンドプロントに入力するのは無理なんでしょうか?
ググっても誰も困ってません…
ド素人な質問ですみませんが、よろしくお願いします。

316:デフォルトの名無しさん
21/04/13 05:21:46.97 Qr7OJO8/.net
>>313
while文のケツの「:」を忘れているか
print文のあとEnterを2回押しているか
Windows10のIMEバグに巻き込まれているか
すきなのえらべ

317:デフォルトの名無しさん
21/04/13 05:29:36.78 M3Xniwnk.net
>>314
早速ありがとうございます。
while行末の「:」はちゃんと打っています。
これがないとそこでエラーになって3行目すら書けないので。
で3行目には無事いけます。実行されずに…のインデントが出てきます。
そしてprint(a)と書いて、Enter押した瞬間に、
今度は次行のインデントが出てくれずに実行されてエラーになります。
何度やってもこうなります。
>>314の選択肢によると残り一択のWin10のバグってことで
コマンドプロントではどうしようもないことになりますか…

318:デフォルトの名無しさん
21/04/13 05:32:08.19 M3Xniwnk.net
whileの中って命令が並ぶことが多いのに、
いちいち1行つづ実行してしまうコマンドプロントでは
長いプログラムは向いてないということもあるのでしょうか

319:デフォルトの名無しさん
21/04/13 06:47:07.47 YlnYj74B.net
そもそも、プログラマーは、VSCode を使う
拡張機能のCode Runner を使えば、右クリックメニューから、
選択したコード片または、ファイル全体を実行できる

320:デフォルトの名無しさん
21/04/13 06:52:20.41 GaFDNALA.net
紀文、当選、いい気分

321:デフォルトの名無しさん
21/04/13 07:26:44.48 M3Xniwnk.net
>>317
VSCodeをインストールしてみました。
ありがとうございます。
IDLEはコマンドプロントより見やすくていい感じだと思ったのに
何故練習用としか言われないのか、理由が分かった気がします…

322:デフォルトの名無しさん
21/04/13 07:58:50.28 U7R135hW.net
>>303
boost::python でggr
リンク貼れなかったので
windowsでも当然動くよ

323:デフォルトの名無しさん
21/04/13 09:44:14.03 0BKbOHYA.net
>>315
インデントしないでエンターするエラー

324:デフォルトの名無しさん
21/04/13 10:29:14.36 M3Xniwnk.net
>>321
それでした!
左に自動で入る「…」がインデントだと思ってしまってました…
コマンドプロントでもちゃんと動きました。
ありがとうございました。

325:デフォルトの名無しさん
21/04/13 12:07:07.45 Qr7OJO8/.net
>>321
そんな罠…

……あるあるw
322解決おめ!

326:デフォルトの名無しさん
21/04/13 12:25:09.19 qZatEyS3.net
windowsの3.8.9でpyzを動かすとPYTHONPATHがどうだとかでfatal errorになるんだが
解決方法はありますか?

327:デフォルトの名無しさん
21/04/13 12:36:23.89 Qr7OJO8/.net
>>324
エラーの指示内容通りに対処汁


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