【まず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)
t = np.linspace(-PI, PI, 10000)
x = npfunc_x(t)
plt.plot(t, x)
plt.show()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

覚えとけよw

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

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

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

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

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

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

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

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

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

143:デフォルトの名無しさん
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()}

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

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

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

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

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

149:デフォルトの名無しさん
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__を実装したクラスでラップする
どれかをどうぞ

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

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

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

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

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

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

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

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

158:デフォルトの名無しさん
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)
→ ×
どなたかお知恵をお貸しください。よろしくお願いします<(_ _)>

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

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

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

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

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

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

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

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

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

168:デフォルトの名無しさん
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と表示

169:デフォルトの名無しさん
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」で検索

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

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

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

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

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

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

176:デフォルトの名無しさん
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))

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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