Pythonのお勉強 Part71at TECH
Pythonのお勉強 Part71 - 暇つぶし2ch598:デフォルトの名無しさん
23/11/09 07:14:51.81 i4b+P9OO0.net
書けないな
ifの中に無いとSyntaxErrorになる
ifの中にあっても無くてもよくて代入結果が評価可能になるだけ、という演算子でも良かったのに

599:デフォルトの名無しさん
23/11/09 10:07:00.20 Wk14M+OK0.net
>>586
そんなもん文脈次第であって何も注釈がなければ式の値で比較するのが普通だろうよ

600:デフォルトの名無しさん
23/11/09 10:38:26.14 i4b+P9OO0.net
1+1=2を習う時点で批判的思考ができる奴は少ないので、
こうなんだと言われたらそうなんだと丸呑みしてるだけ
そのまま現在に至る

601:デフォルトの名無しさん
23/11/09 10:46:29.67 Wk14M+OK0.net
偉そうな事言ってるだけでなんの反論にもなってない

602:デフォルトの名無しさん
23/11/09 10:47:28.47 i4b+P9OO0.net
反論?
教導だよ

603:デフォルトの名無しさん
23/11/09 10:56:43.22 Wk14M+OK0.net
偉そうな事言ってるだけでなんの教導にもなってない

604:デフォルトの名無しさん
23/11/09 11:37:06.85 gopD44tH0.net
x=x+1くらいは1度説明したらすぐわかるやろ
学生よりも京大の教授がこのレベルというのが衝撃的
日本が沈没するわけだわ

605:デフォルトの名無しさん
23/11/09 12:09:23.93 Fo7n9qIpa.net
単に記号の問題なので
x := x + 1
でも
x :~ x + 1
でも
x <- x + 1
でも
x ← x + 1
でもなんでも良い
手間がかからないのが
x = x + 1
それだけ

606:デフォルトの名無しさん
23/11/09 12:10:16.09 Fo7n9qIpa.net
>>595 >>597
古典数学は 1+1=2 をそのまま受け入れる
現代数学は 1+1=2 を疑いその証明から始める

607:デフォルトの名無しさん
23/11/09 12:18:15.60 Wk14M+OK0.net
それは>>586
>1+1=1+1は正しい
>1+1と2は明らかに違うもの
と繋がるの?

608:デフォルトの名無しさん
23/11/09 12:49:40.60 Nh0igmG80.net
guido氏が来るぞ
URLリンク(pyconjp.connpass.com)

609:デフォルトの名無しさん
23/11/09 13:11:26.45 Fo7n9qIpa.net
>>602
灯台ωωω

610:デフォルトの名無しさん
23/11/09 13:15:59.83 i4b+P9OO0.net
代入が := で、比較が == なのに、= も使う言語がある
= も比較で、文字列の大文字小文字を無視するという違いがある

611:デフォルトの名無しさん
23/11/09 14:24:11.67 iUBVM1B70.net
>>602
PyPyの例えば2.7.13ではDecimalで桁数が10^10^5程度まで数値が扱える(最大値は不明)が、
Python3のDecimalでは桁数が999999999999999999までしか数値が扱えない。
この点を今後どうするのか聞いてほしいな。

612:デフォルトの名無しさん
23/11/09 14:53:50.44 Wk14M+OK0.net
ID:Fo7n9qIpaもID:i4b+P9OO0も話を放りだしちゃったな

613:デフォルトの名無しさん
23/11/09 15:02:43.48 Fo7n9qIpa.net
import decimal
decimal.getcontext().prec = 15

614:デフォルトの名無しさん
23/11/09 15:11:21.88 iUBVM1B70.net
とりあえずPython3でもMpmathでprecを巨大にすれば巨大数が扱えて誤差は出ないようだが、
検算にPython3のMpmath、計算にPyPy2.7.13のDecimalを使っている。
環境が異なるために1つのプログラムで検算までできないという問題点がある。
ちなみに2^128倍精度浮動小数点数の最大値の計算をするときには、
PyPy2.7.13のDecimalではprecを1000に、Python3のMpmathではprecを10000とか100000とかにしないと誤差が出る。

615:デフォルトの名無しさん
23/11/09 15:14:41.36 Wk14M+OK0.net
>>607
>>600-601の続きはなし?

616:デフォルトの名無しさん
23/11/09 15:21:06.86 iUBVM1B70.net
>>608
今はMpmathのprecは1000で誤差は出なかったかも?
先頭から100桁程度までしか確認していないので何とも言えないが。

617:デフォルトの名無しさん
23/11/09 15:31:52.00 iUBVM1B70.net
python3では
getcontext().prec = 1000
getcontext().Emax = 999999999999999999
まで、
PyPy2.7.13では
getcontext().prec = 1000
getcontext().Emax = 10**10**5
程度まで、Emaxを10**10**6にするとエラーになる。

618:デフォルトの名無しさん
23/11/09 15:54:04.12 iUBVM1B70.net
mpmathでprecが1000での実行結果
2023-11-09 15:40:37.341115
8.693707727864259530039258884770161044063845806590697696822196758051010321507084364738474185393716049143428269592664416299506985821607020...
e+258313751232903212140244172706732768962283773495639777019746650509389263410185892774365178070439343470463409842392677007886631633129570799399839688363235723
2023-11-09 15:40:37.821113
0:00:00.479998
mpmathでprecが100での実行結果
2023-11-09 15:40:42.917141
1.73874154557285190600785177695403220881276916131813953936443935161020206430141687294769483707874321
e+258313751232903212140244172706732768962283773495639777019746650509389263410185892774365178070439343470463409842392677007886631633129570799399839688363235724
2023-11-09 15:40:42.969102
0:00:00.051961
precが100だと明らかに誤差がある。これも問題。
前者は先頭から100桁程度までと桁数は正確なのを確認している。

619:デフォルトの名無しさん
23/11/09 16:07:17.61 Fo7n9qIpa.net
>>609
ごめん >>601 が何を言いたいのか判らなかった

620:デフォルトの名無しさん
23/11/09 16:16:09.89 Wk14M+OK0.net
>>613
>>586から読み直して

621:デフォルトの名無しさん
23/11/09 16:16:32.99 iUBVM1B70.net
>>602
PyPyのDecimalの誤差の問題は言いにくいが、Python3のDecimalの桁数限界の問題は言っても良さそうだよな。
Python3で動くMpmathの誤差の問題についても言っていいのかな?
Pythonの計算能力は非常に高いので高く評価できる。そのことも言っておきたい。
あとMSのVscodeからダウンロードできるPythonではいまだに3.10が使われているが、なぜまだ3.11や3.12にならないのか?も。

622:デフォルトの名無しさん
23/11/09 16:33:36.64 iUBVM1B70.net
こういう計算ではprecを大きくしないと誤差が出る。
また、2^16倍精度浮動小数点数の最大値あたりから桁数が999999999999999999を超えてしまいPython3のDecimalではオーバーフローする。
URLリンク(ideone.com)
2^256倍精度浮動小数点数の最大値は計算してみたが、2^512倍精度浮動小数点数の最大値は未確認。

623:デフォルトの名無しさん (ワッチョイ 4910-ZTan)
23/11/09 18:53:31.64 iUBVM1B70.net
Python2のDecimalのEmaxの最大値はたぶん10**999999
URLリンク(paiza.io)

これを超えてもエラーすら出ないが計算結果も出ないのでたぶん最大値。

624:デフォルトの名無しさん (ワッチョイ 4910-ZTan)
23/11/09 18:54:46.14 iUBVM1B70.net
書くのが面倒くさいので10の指数表現にしてしまったので、実際にはもっと大きいかも?

625:デフォルトの名無しさん
23/11/10 15:53:55.15 5sYei61M0.net
>>585
xなんか使うからややこしいだけでnum=num+1にしたら誰でもわかる

626:デフォルトの名無しさん
23/11/10 16:33:17.33 FbH8Mxce0.net
ヌムって何

627:デフォルトの名無しさん
23/11/10 19:08:35.02 smhSXpZ/0.net
変数か定数かにざっくり2種類に分かれるので、
xとかvarならいいけど、numと書いてしまうとそれは定数

628:デフォルトの名無しさん (ワッチョイ 7f7d-wReO)
23/11/11 09:33:25.52 1WRqPqOP0.net
TikTok LiteでPayPayやAmazonギフトなどに交換可能な4000円分のポイントをプレゼント中!
※既存TikTokユーザーの方はTikTokアプリからログアウトしてアンインストールすれば参加できる可能性があります。

1.SIMの入ったスマホ・タブレットを用意する
2.以下のTikTok Litのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
URLリンク(lite.tiktok.com)
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリを起動
4.アプリ内でTikTok未使用の電話番号かメールアドレスを使用して登録
5.10日間連続のチェックインで合計で4000円分のポイントゲット

ポイントはPayPayやAmazonギフト券に交換可能!
家族・友人に紹介したり通常タスクをこなせば更にポイントを追加で獲得できます。

629:デフォルトの名無しさん (ワッチョイ 1f01-qIOU)
23/11/11 10:26:25.79 HDC3RNtv0.net
>>622
こういう方法もあるんだな

630:デフォルトの名無しさん
23/11/13 22:27:11.06 V0ByRftD0.net
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
というプログラムで、フォルダ内の画像を作成日時順にソートできたのですが、
ここの中から上位10個を取り出してそれぞれ関数に入れたいのですが、
どのような手法でやったらいいのでしょうか?
(例:001.png→data1,002.png→data2へのような形にしたいのです。)
よろしくお願いします。

631:デフォルトの名無しさん (ワッチョイ ff30-hgj4)
23/11/13 23:08:29.99 hIb2N2Ge0.net
>>624
URLリンク(docs.python.org)
ソート載ってたこの文書にスライスってのがあるのでそれで取り出しはできる
端から公式文書に目を通すつもりないならChatGPTさんに聞くのもいいよ

632:デフォルトの名無しさん (ワッチョイ 1f27-xIya)
23/11/14 00:03:28.13 3XtDLzP+0.net
>>625
㌧クス
公式ドキュメントは頭から抜けてたわ・・・
申し訳ない。
色々検索しても出てこなかったからどうしようかと思ってたので質問しました。

633:デフォルトの名無しさん (ワッチョイ 7f19-qIOU)
23/11/14 00:35:16.33 c91qDKwg0.net
>>622
コスパ良いポイ活だな

634:デフォルトの名無しさん (ワッチョイ 1f01-vgtH)
23/11/14 00:44:14.40 eAuNTGnN0.net
こいつ自演レス2回やるようになったんだな
以前は1回だった

635:デフォルトの名無しさん
23/11/14 01:34:46.08 KAjgCxWWM.net
>>624
画像ファイルを関数に入れるってどういう意味?

636:デフォルトの名無しさん
23/11/14 09:59:04.47 POS4QBLh0.net
スライスはpython入門の1時間目でやるだろ

637:デフォルトの名無しさん (ワッチョイ 1fa7-uZuc)
23/11/14 12:04:58.19 a6f/tVQx0.net
>>629
パスを渡すってことだろ
逆になんでそれくらい読み取れないんだ?

638:デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
23/11/14 19:06:35.65 xujXPfzz0.net
>>631
画像のバイナリを関数に渡すって考える方が普通じゃ?

639:デフォルトの名無しさん (ワッチョイ 9f54-NzoM)
23/11/14 19:12:22.18 POS4QBLh0.net
そんなアホな取り回しはせんやろ

640:デフォルトの名無しさん (ワッチョイ 7f5c-wD1F)
23/11/14 20:05:40.30 lvDQJ2KR0.net
ワロタw

641:デフォルトの名無しさん (JP 0H4f-9Nvu)
23/11/15 08:14:14.82 PY3kt1RSH.net
そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね

642:デフォルトの名無しさん (ワッチョイ 9f54-NzoM)
23/11/15 08:38:19.84 +heJlrgN0.net
>>624に書いてある、data1というのは関数名なのか
命名のセンスが悪い

643:デフォルトの名無しさん (ワッチョイ 9f46-uMtu)
23/11/15 10:00:41.77 4ca/PT+K0.net
>>635
それが出来ない言語は無いのでないか。

> そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね

644:デフォルトの名無しさん (ワッチョイ ff89-Xl/w)
23/11/15 11:08:40.78 t2csacDc0.net
>>635
4つほど思いつくが
>そもそも10個の関数を順番に呼び出す仕組みがPythonにはないよね

645:デフォルトの名無しさん (ワッチョイ 9f54-NzoM)
23/11/15 11:11:13.85 +heJlrgN0.net
似たような関数が並んでるなら引数でどうにかするし、
全然違うのならテーブルで並べるか、シーケンシャルに書いちゃうか
全部画像を処理するんだから、似てると思うけど

646:デフォルトの名無しさん (JP 0H4f-9Nvu)
23/11/15 15:31:22.25 PY3kt1RSH.net
>>638
あるの?
だって10個の関数だよ
同じ関数を10回呼ぶのと違うよ
例えば関数名がdata1~data10だとして、
この10個の関数に各々別のパス名を引数に渡しつつ順に呼べる?

647:デフォルトの名無しさん
23/11/15 15:38:36.15 /tSVEj7/0.net
そんなことする必要ないことに気がついてくれ

648:デフォルトの名無しさん
23/11/15 15:44:53.45 VGv7kGCa0.net
仮にやりたいって話でしょ
Pythonは関数もファーストクラスだから余裕

649:デフォルトの名無しさん
23/11/15 17:45:49.81 olanfxkjd.net
# 超適当に答えてみる
def data1(path):
 pass
paths = ["path1.txt","path2.txt","path3.txt",]
datas = [data1,data2,data3,]
# こっちはべた書き
data1(paths[0])
data2(paths[1])
data3(paths[2])
# こっちはグルグル
for data,path in zip(datas,paths):
 data(path)

650:デフォルトの名無しさん
23/11/15 18:01:40.79 QwHxvQAv/
Pythonでログ削除する方法あったら教えて

651:デフォルトの名無しさん
23/11/15 20:01:43.64 qjPY1w3P0.net
配列定義する手間で全部書けるだろなにがしたいんだ

652:デフォルトの名無しさん (ワッチョイ 1f27-XI6K)
23/11/15 21:38:54.96 SiUAlBQI0.net
>>629-643
624です。
Lineを使ってStableDiffutionで作成した画像をソートして作成日時が新しいもの10個を自分用に送り付ける方法を考えてました。
んで、関数の話としては>>643のべた書きが近く・・・というかまんまで、文字通りべた書きで10回処理を行いそれぞれ別関数へ突っ込んでます。
本当はもっといい処理方法あると思いまが、あまりプログラム系は触ったことがなく、自分でできる範囲で最適化するつもりです。
>>629 の画像ファイルを関数に入れるに関しては、
im1 = Image.open(data)
という処理を別でやっており、10枚の画像ファイルを、2列5行の画像ファイルで書き出して送信するするつもりです。(ランダムで10枚を1枚にしてLineに送る処理はできたので・・)
LINE NotifyやLineAPIを叩いても、複数画像をまとめて送る手法がなかったので、1つの画像で送る方法をとっています。
で、そのプログラムですが以下のようになってます。
(Google Colabで実行)
from pathlib import Path
import os
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
print (paths.sort)
l_reversed = paths[0::-1]
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]
print (l_reversed)
print (l2_reversed)
print (l3_reversed)
このプログラムでソートした上から3つを取り出せたのですがいかがでしょうか。
また、
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
の処理があまりよくわかっていないのですが、
これは、for file in pathsでフォルダ指定したフォルダ内の全ファイルに対して、{file.stat().st_mtime:.0f} で更新日、{file.name}でファイル名の表示で会っていますでしょうか。
それか、ほかにもっとスマートな手法ありますでしょうか。 よろしくお願いします。

653:デフォルトの名無しさん
23/11/16 00:51:14.98 Q2M7jM7u0.net
たぶんやりたいことはこんなかんじだろ
for i in range(10):
eval("data" +i)(paths[i])

654:デフォルトの名無しさん
23/11/16 01:17:55.83 YpHIXhGK0.net
>>646
from pathlib import Path
import os
paths = list(Path('/content/drive/MyDrive/StableDiffusion/').glob(r'*.*'))
paths.sort(key=os.path.getmtime, reverse=True)
for file in paths:
print(f'{file.stat().st_mtime:.0f} {file.name}')
print (paths.sort)
l_reversed = paths[0::-1] <- ここと同様に似た部分は重複処理なので値の変化量を保存する処理にするともっと良くなるかも
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]
print (l_reversed)
print (l2_reversed)
print (l3_reversed)

655:デフォルトの名無しさん
23/11/16 10:39:16.68 QXdh7keCa.net
print (l_reversed)
print (l2_reversed)
print (l3_reversed)
かっこわるい

656:デフォルトの名無しさん
23/11/16 11:03:41.52 pvCpT+Yld.net
もしかして、
「関数」じゃなくて「変数」だったり?

657:デフォルトの名無しさん
23/11/16 13:24:54.46 eCSrCCxs0.net
>>646
>>563 急がば回れの典型

658:デフォルトの名無しさん
23/11/16 17:03:02.71 1QM1kixjd.net
l_reversed = paths[0::-1]
l2_reversed = paths[1::-2]
l3_reversed = paths[2::-3]
こんな書き方してるのに
> ランダムで10枚を1枚にしてLineに送る処理はできたので
ここまで辿り着けたのがすげぇ
ランダムのソースコード(I/F部分だけでも)を貼ったら、答えがすぐ返ってくると思う
他の部分もめちゃくちゃ言われるだろうけど、そっちはお勉強ということで

659:デフォルトの名無しさん
23/11/16 17:12:01.88 KD9PIbB20.net
このプログラム系の知識感でAPI叩いてるってのが逆にすごい。

660:デフォルトの名無しさん
23/11/17 00:14:30.55 7IofKhtq0.net
subprocessとsubprocess.PIPEを1行でimportする方法ってある?

661:デフォルトの名無しさん
23/11/17 09:10:23.93 40Zys+6x0.net
import subprocess; from subprocess import PIPE て事ではなく?

662:デフォルトの名無しさん (アウアウウー Sae3-OPKY)
23/11/17 10:18:44.46 BqbQlbW7a.net
inport subprocess
だけでよくね?

663:デフォルトの名無しさん (ワッチョイ ff46-uMtu)
23/11/17 11:02:23.16 HkmKeaDT0.net
>>656
許せない。。

>>> inport subprocess
File "<stdin>", line 1
inport subprocess
^
SyntaxError: invalid syntax
>>>

664:デフォルトの名無しさん (スプッッ Sd7f-Xzxn)
23/11/17 11:28:45.83 180/RciHd.net
もちつけ
>>> import subprocess
>>> print(subprocess)
<module 'subprocess' from '.../subprocess.py'>
>>> print(subprocess.PIPE)
-1

665:デフォルトの名無しさん (ワッチョイ 1fb1-u6Hu)
23/11/17 13:19:32.60 FFgkWy7J0.net
使えなくなるまで
os.system()を使います><。

666:デフォルトの名無しさん (ワッチョイ ff7f-vmna)
23/11/17 15:17:29.47 Y0aXBNXC0.net
>>655
1ステートメントと言うべきだった
importを2回書くしか方法がないなら2行にしとく
Rustのuse std::io::{self, Read};みたいなのをイメージしてた

>>656
PIPEやDEVNULLで十分なところを
subprocess.PIPEやsubprocess.DEVNULLとするのは
書くのも読むのも辛い
少し凝ったことをすれば何回も使うからね

667:デフォルトの名無しさん (ワッチョイ ff63-kIyz)
23/11/17 22:22:21.30 i6SiN6NQ0.net
>>660
別のモジュールで同じ名前の関数なんかもあるので
せめて明示的に別名にして使ったほうが良くないかい?

668:659ではない (ワッチョイ 6e46-eNDp)
23/11/18 03:49:04.58 0Uy+05Nv0.net
>>661
import subprocess {self as sp, PIPE as spp}
みたいにして、subprocessとsubprocess.PIPE各々を別名にして、1ステートメントでimportする方法ってある?

669:デフォルトの名無しさん
23/11/18 07:14:32.15 kMLLK9REH.net
>>662
無理でしょ
subprocess に別名を付けるには import
subprocess.PIPE に別名を付けるには from import
import と from import は別の構文だから並べられない

670:デフォルトの名無しさん
23/11/18 08:04:12.74 Kfn2l2LH0.net
可読性を犠牲にしてまで1行にこだわるのかが謎だ

671:デフォルトの名無しさん
23/11/18 17:02:58.33 rXJKESWNa.net
from subprocess import *

672:デフォルトの名無しさん
23/11/18 17:19:32.77 gr23gvrO0.net
>>665
>>654 の要件を満たさないのでは。
>>> from subprocess import *
>>> dir(subprocess)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'subprocess' is not defined
>>>

673:デフォルトの名無しさん
23/11/18 20:47:54.52 fIOteNuc0.net
>>655の回答では気に入らず、>>662を望むとは
理解しがたい。
好きなだけ自分の望む書き方を、ひとりで探求すればいい。

674:661
23/11/18 21:57:39.08 gr23gvrO0.net
>>667
>>654 の中の人は納得したんじゃないの。
「1行で」という命題に対する >>655 の回答は、
printf("hello, "); printf("world"); printf("\n");
みたいで、オレはナンダカナーと感じるけれど。

675:デフォルトの名無しさん
23/11/18 22:09:39.15 2M9ZJit40.net
昔パールを初めてやってた時
open($fp,"/bin/ls | ") || die 'cant open /bin/ls';
while(<$fp>){
print;
}
close($fp);

これスゲーって思った。
コマンドをパイプつきでオープンして、while文で読み込むって。
でもパールはダメだ、見切りを付けてpythonに移った。
久し振りすぎて、上の書くのも苦労したww

676:デフォルトの名無しさん
23/11/18 22:57:41.75 STIOjWGd0.net
pythonでも似たようなことやるがな

677:デフォルトの名無しさん
23/11/18 23:18:59.79 2M9ZJit40.net
え、できるの?知らんかった。

678:デフォルトの名無しさん
23/11/18 23:26:44.76 STIOjWGd0.net
話題のsubprocess.PIPEにstdoutを流す

679:デフォルトの名無しさん
23/11/19 00:05:14.88 B+HVId7D0.net
まあ、そりゃそうだけど。
perl の open()関数でコマンド起動してファイルを読み込むのと同じ仕様で書けるって
力技感一杯じゃんw

680:デフォルトの名無しさん
23/11/19 02:07:38.68 S9/JwIsQ0.net
>>668
最初、改行文字の節約って思ったけど、
セミコロン+スペースと変わらんもんなぁ
LFなら改行のほうが少ないし
pythonは行あたり80文字という一応の目安を文書化した言語だから、
改行に抵抗がない人が多そうだけど、そうでもないのかな?

681:デフォルトの名無しさん
23/11/19 07:30:36.55 vAXGDL640.net
>>674
敢えて利点を挙げるなら、
import urllib2.{Amodule, Bmodule} # Rust風?
と書ければ、キーワードが集約されるので、
import urllib2.Amodule
import urllib.Bmodule # 「2」字脱落
みたいな片ちんばな誤記にならない。
from urllib import Bmodule と誤記して、Bmodule.same_function() を呼ぶと、
urllib2 の関数を扱っているつもりが、実は
urllib を使用していたという、自分では解りにくいミスになるかも。
なまじ Amodule はマトモなので、思い込みに泣く。

682:デフォルトの名無しさん
23/11/19 12:19:59.30 /G2k3fWta.net
>>668 観て造った
>>654
URLリンク(paiza.io)
def rust(mod, names):
globals()[mod] = __import__(mod)
for n in names:
globals()[n] = getattr(__import__(mod, globals(), locals(), [n], 0), n)
rust('subprocess', ['PIPE', 'STDOUT'])
print(dir(subprocess))
print(PIPE)
print(STDOUT)

683:デフォルトの名無しさん
23/11/19 16:33:07.78 oPb7CqgG0.net
>>676
ネタだとしてもサブパッケージ等対応出来てないものがいくつかあるので却下ですね

684:デフォルトの名無しさん
23/11/19 16:51:15.74 j9gIHEdT0.net
DAOデザインパターンのセッションオブジェクトって
どこで持つべき?
ロジッククラス?それともセッション管理クラスを新しく作る?
それともDAOの中でセッション張る?

685:デフォルトの名無しさん
23/11/19 22:43:20.36 9EvVoZ760.net
>>648-653 
いろいろ教えていただきありがとうございました。
646です。
>>651 さんが行ってるように関数じゃなくて、変数ですね・・・勘違いしてました。申し訳ない。
必要に駆られてプログラム書いてたので、コピペと
なんかほしい感じのやり方+APIとかのサンプルプログラムを見てポチポチ書いてた感じです。
>>649 さんの書いたプログラムで上から10個選択できたのでこれで自分なりに最適化をしていこうと思います。
>>653 さんが言ってた、ランダム選択のプログラムは以下の通りです。
file_path = './img/'
file = glob.glob("./img/*")
data =random.choice(file)
こいつでimgファイル内のどれか1つの画像を選ばせてます。
(ほぼコピペです)

また、l_reversed = paths[0::-1] で[0::-1]を[1::-2]のようにすると
ソート順で表示する画像が1つずれるのはちょっと理由がわからないのですが、
理屈を教えていただけないでしょうか。
よろしくお願いします。

686:デフォルトの名無しさん
23/11/19 22:59:46.66 uFm9+T2V0.net
アンカーどうなっとんねん

687:デフォルトの名無しさん (ワッチョイ 6e7b-QUH3)
23/11/20 09:06:45.18 RnUiirN00.net
>>679
とりあえず配列の使い方を勉強したほうがいい

688:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/20 09:28:59.78 QoOP4h9Z0.net
URLリンク(pbs.twimg.com)
チートシートが要るくらい判りにくい

689:デフォルトの名無しさん
23/11/20 14:01:18.90 MS7hPbOQa.net
Blender4登場でPython用無しへって言われてるけど
Python使った方が描き易くね

690:デフォルトの名無しさん
23/11/20 15:38:29.00 DbfyuSYxd.net
すまん、アンカーつけミスってた

691:デフォルトの名無しさん (スプッッ Sd82-OPfZ)
23/11/20 17:19:06.53 39chtrqnd.net
>>679
(なんでsampleじゃなく、choiceなんだ・・・)
data =random.choice(file)
は1つの画像
l_reversed = paths[0::-1]
は1つの画像が入ったリスト
ランダムもソートも、このあとどう使われてるのかさっぱり分からんのだぜ

(別の問題が発覚しそうだけど)
とりあえず、ランダムのプログラムにこの2行入れちゃえば解決しそう
file.sort(key=os.path.getmtime, reverse=True) # ソートして
file = file[:10] # 10個だけにする

あと、最適化とかスマートとか気にするレベルじゃない

692:デフォルトの名無しさん
23/11/20 21:11:58.82 uCxOj8y10.net
Excelの散布図で近似曲線の数式(y=ax+bみたいなの)をすぐ表示できるけど、
plotnineのstat_smooth関数使うときに同じ感じでサクッと表示する方法ないですかね?

693:デフォルトの名無しさん
23/11/20 22:34:11.87 QThOiYWP0.net
>>686
ありがとうございます。
検証したら確かに
file.sort(key=os.path.getmtime, reverse=True)
で行けそうです
(Google Colabだとアップロード順や作成時間の関係でmtime/ctimeが若干思った挙動と違いますが・・・)
この場合だと、べた書きすると
File_1.sort(key=os.path.getctime,reverse=True)←ここで作成日付逆順でソート(getctimeで作成日順でソート)
File_1_Last = File_1[0]←最初の1個(一番直近に作成したやつ)
という理解でであってますかね?
10個絞り込みたかったらFile_1[0~10]でべた書きすればいいということですよね?
初歩的なことですいません・・・(-_-;)

694:デフォルトの名無しさん
23/11/20 22:34:48.05 QThOiYWP0.net
>>685
やん・・・またアンカーミスった(;´д`)

695:デフォルトの名無しさん
23/11/20 23:42:23.04 LeyGRqAQd.net
>>687
公式ドキュメントのチュートリアルの最初の方に書いてある
チュートリアルくらいは、一度目を通してくれ
URLリンク(docs.python.org)
URLリンク(docs.python.org)

696:デフォルトの名無しさん
23/11/20 23:55:15.19 7M4T/4JK0.net
>>689
これの11.3まではやったけど
11.4のマルチスレッディング以降はまだやってないなあ

697:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/21 08:23:09.96 LcVKgP510.net
チュートリアルには
from urllib.request import urlopen
が書いてあるけど、
import requests
の方がいいよな

698:デフォルトの名無しさん
23/11/21 09:32:55.38 OtSZp9c+0.net
チュートリアルなんだから、PyPIその他サードパーティモジュールの使い方について学ぶ段階に進む前は、標準モジュールのみで話を進めねば

699:デフォルトの名無しさん
23/11/21 10:04:19.49 QDAC0gh80.net
>>687
なんかすごい速度で進化していきそうだな。理解が早そう。
ただ、ランダムとか言ってた割にソートしたがるのは謎だが。

700:デフォルトの名無しさん
23/11/21 12:16:17.16 0aCdJNBJ0.net
このスレ見てチビったけどお前ら上級者なんだろ?
最初はこういうのから始めればいいんだよな?
URLリンク(imgur.com)

701:デフォルトの名無しさん
23/11/21 12:50:42.41 QDAC0gh80.net
どんな言語でも最初はhello worldと相場が決まっている

702:デフォルトの名無しさん (ワッチョイ 6e46-4xZ8)
23/11/21 15:20:50.52 aUIDxCId0.net
>>694
input 関数があるなんて初めて知ったわ。
オレはようやくのぼりはじめたばかりだからな
このはてしなく遠い Python坂をよ…

703:デフォルトの名無しさん (アウアウウー Sa85-LQE0)
23/11/21 15:26:30.08 Vub9wpCBa.net
>>696
勘弁しろよ
標準入力から入力するってどの言語でも1番最初にやるレベルのことだぞ

704:デフォルトの名無しさん (アウアウウー Sa85-LQE0)
23/11/21 15:35:40.89 Vub9wpCBa.net
inputという関数があるんだ、それは入力を受け取る関数なんだ、じゃなくて
標準入力(キーボード)から入力する方法があるはずだ、それはpythonではinput関数なんだ
こういう発想でやらないとコードなんていつまでも書けんぞ
この思考でやれば他の言語の時も脳の負荷が少ない
俺はこれを抽象的仮説思考と読んでいる

705:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/21 15:41:58.36 LcVKgP510.net
普通に使ってたらinput()なんか使わんやろ
実行を一時停止する時に使うくらい

706:デフォルトの名無しさん (アウアウウー Sa85-LQE0)
23/11/21 15:59:34.91 Vub9wpCBa.net
んなアホなw

707:695 (ワッチョイ 6e46-4xZ8)
23/11/21 16:01:38.28 aUIDxCId0.net
>>697,698
sys.stdin で憶えたからそっちばっかり使っていたわ。
勉強になるね、ChatCPT。

708:デフォルトの名無しさん (JP 0H66-F30J)
23/11/21 16:15:26.01 is7gJ9QfH.net
AI使い出すとやりたいこと書けばサンプルコード吐いてくれて、更にそれを発展させることも出来てしまうから、なんかアイデアだけで給料貰ってる感じがする
これからはコード書けるとか、ここでやり取りしてるような知識では飯食えんな

709:デフォルトの名無しさん
23/11/21 17:03:35.20 YwWuHKsv0.net
オンラインじゃない現場なんてクソあるから
飯は食えるけど、サクッと合意形成とサクッと試作品とサクッと検証するまでがセットにならないと開発者としては落ち目

710:デフォルトの名無しさん
23/11/21 17:05:25.01 YwWuHKsv0.net
インターネット接続できない場所もあるからね

711:デフォルトの名無しさん
23/11/21 19:33:06.81 KWbYnmSX0.net
>>698
>標準入力(キーボード)から入力する方法があるはずだ、それはpythonではinput関数なんだ
必要に迫られてキーボード入力の方法を探してればそうなるし、そういう場面がなければ
>inputという関数があるんだ、それは入力を受け取る関数なんだ
になる
そんだけの話

712:デフォルトの名無しさん (ワッチョイ 29b1-ettz)
23/11/21 22:11:07.25 YnWTOShJ0.net
input()ってデバッグの時に使うな。
ある条件の時の結果を見たい時、input()入れておいて一旦プログラムを止めて結果を見る。

713:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/21 22:29:10.41 LcVKgP510.net
まあ、普通は止まっても何も嬉しくないけど、seleniumでブラウザが動いてる時は、
止めて観察しないと作れない

714:デフォルトの名無しさん (ワッチョイ e9a6-fy5B)
23/11/21 22:32:29.50 x0TxAGsF0.net
ブレイクポイントの使い方を覚えようか

715:デフォルトの名無しさん (ワッチョイ c1f0-LQE0)
23/11/21 22:49:08.88 MyNMYruR0.net
>>706
Visual Studio Codeでデバッガ使えよ

716:デフォルトの名無しさん (ワッチョイ cd67-4Kip)
23/11/21 22:58:06.32 ilvvGzSI0.net
これはまた珍しい人だな

717:デフォルトの名無しさん (ワッチョイ c1f0-LQE0)
23/11/21 23:04:11.72 MyNMYruR0.net
まさかプレーンなエディタ使って書いてる?
マジで生産性ゼロだからやめとけ

718:デフォルトの名無しさん
23/11/21 23:32:04.01 LcVKgP510.net
何で書いても変わらんよ

719:デフォルトの名無しさん
23/11/21 23:47:12.00 W0YnhLkK0.net
俺は初めATOM使ってたわ
色んなパッケージ組み合わせて使いやすい環境にして楽しんでたけど、会社でvscode使ってみたらスゴすぎて速攻移行したw

720:デフォルトの名無しさん
23/11/22 00:17:21.38 F4GGzYS90.net
素人はVScode一択だ
エラーとか事前に全部チェックしてくれるし
型がないからそこまで有効ではないが補完もボチボチ
あとデバッガもある
組み込みのデバッガは癖があるので使いにくいしね
いい時代になったもんだ
昔はemacsかvimでゴリゴリカスタマイズするか
IntelliJみたいな有料IDE使うしかなかった

721:デフォルトの名無しさん
23/11/22 00:18:44.29 F4GGzYS90.net
>>713
Sublimeやatomをさらに強化したようなエディタだしね
もはやこれに勝てるエディタはない

722:デフォルトの名無しさん
23/11/22 00:19:14.06 F4GGzYS90.net
素人さんでもそれなりのレベルに引き上げてくれる
使わない手はない

723:デフォルトの名無しさん
23/11/22 02:19:33.89 1zch1/igH.net
>>711
IDEは覚えること多すぎてダメ
苦労してやっとPython使えるようになったのに今度はVSCode覚えろとか無理

724:デフォルトの名無しさん
23/11/22 03:23:40.39 F4GGzYS90.net
>>717
VSCodeはたいして覚えなくても良い
拡張だけ入れとけば勝手にやってくれる
他のIDEに比べたら劇的に簡単だから使ってみろ
ちょっとずつ覚えれば良い
多分VSCodeは代わりがないから
今後10年レベルで使うことになるからとっとと入れよ

725:デフォルトの名無しさん
23/11/22 03:24:46.57 dB+b5h5a0.net
VSCODEは慣れたら最強だが
プラグイン増え過ぎでそれを使いこなせてる人でないと敷居が高いともw
spyderはちょっと重い
idleは軽くて使い易いがanacondaのトップに無いからだんだん使わなくなる
サクラエディタ、terapad、notepad++あたりはちょっと開いて確認、修正するくらいなら使うか
エディタではないが
jupyter各種も勉強という意味では良い

726:デフォルトの名無しさん
23/11/22 03:30:31.61 dB+b5h5a0.net
VSCODEも開いて書いて実行するの環境設定に一瞬だけだが手間が掛かるから超初心者は「どうやるんだろう」
で時間が掛かる
ググればいいけどな
でも開発に8GBメモリのPCが与えられる職場だと厳しいか

727:デフォルトの名無しさん
23/11/22 07:28:28.99 eWaPk4Ti0.net
VSCodeで難しいとか言ってたら
eclipse見たら発狂するぞ

728:デフォルトの名無しさん (ワッチョイ 2968-F30J)
23/11/22 07:40:33.97 xMRvBf/x0.net
まぁ情報収集にここを使うくらいの知識レベルなんだから何事も難しいのは仕方ない

729:デフォルトの名無しさん (JP 0H66-ue97)
23/11/22 07:40:36.14 1zch1/igH.net
一回だけVSCode入れてみたことあるんだけど
設定メニューがへんてこなXML風で、これは習得コストが高いと思って断念した

730:デフォルトの名無しさん (ワッチョイ 9d56-bMQn)
23/11/22 09:06:57.79 Xn5wjfcn0.net
>>723
そうなっちゃうか
結局設定画面ってそのXMLを書き換えてるだから、ここを変えると...おー!反映されてる!
とかならない?

731:デフォルトの名無しさん (ワッチョイ 6e46-4xZ8)
23/11/22 09:09:31.67 O2r9KWkp0.net
結局これ↓

> 組み込みのデバッガは癖があるので使いにくいしね

で充分と、個人的には思う。gdb と似たコマンド体系だし。

732:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/22 09:11:14.45 DreVDkFV0.net
他人に使わせるツールとか作ると判るけど、
手間の大半はメイン部分じゃなくてUI部分なんだよな
設定ファイルエディタを各自作る羽目になる

733:デフォルトの名無しさん (ワッチョイ a155-YW6P)
23/11/22 09:45:45.64 LokQ4a0j0.net
>>723
設定ファイルの形式のことを言ってるならJSONだけど
設定画面を使ってる限りは特に意識する必要ないでしょ
そこだけを見て習得コストがーとか結論づけるのはナンセンス

734:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/22 09:49:49.84 DreVDkFV0.net
configparserで読み込むiniは人間が書く用だけど、
xmlやjsonは人間に触らせたら駄目な気がする
読めるというだけで矛盾なく編集するのは無理

735:デフォルトの名無しさん
23/11/22 10:44:12.45 LokQ4a0j0.net
vscodeは設定ファイルにもコード補完や型チェックが効くのよ

736:デフォルトの名無しさん (ワッチョイ c1f0-LQE0)
23/11/22 12:07:57.61 F4GGzYS90.net
>>723
デフォルトでやれ
そこいじる必要はない

737:デフォルトの名無しさん
23/11/22 13:02:58.88 2R+eTKz90.net
XMLは最高のGUI定義ツールなので扱える方が良い。
AndroidスマホもXMLでOSのス�


738:^イルを定義している。 覚えるというよりは、扱いに慣れておくと良い。 ソフトウェアエンジニアならそれくらい出来て当然。



739:デフォルトの名無しさん
23/11/22 13:38:46.84 bouDYTS90.net
そういう話なのか
スキーマがないJSONもXMLは滅んでくれなら分かるが

740:デフォルトの名無しさん
23/11/22 13:57:34.26 J37I1a5Va.net
いやそれ黒歴史だから
今やXMLを陽に出してるのはほとんどない
裏のフォーマットとして存在してるだけだし
しかもGUIは全部HTMLで作るのが主流になって完全なオワコンになった

741:デフォルトの名無しさん
23/11/22 13:59:53.66 J37I1a5Va.net
もちろん当時の時代背景を考えればXML採用は自然だった
2000年ぐらいはXMLの大ブームが来て
(今思えばあのブームはマイクロソフトが恣意的に作ったものだった?)
全てをXMLにしようという動きがあったから仕方ないけど

742:デフォルトの名無しさん
23/11/22 14:12:19.15 DreVDkFV0.net
xlsxファイルを展開してxmlを手で修正してxlsxに戻す、とかやってたな
excelのバグでデータ壊れるのに直す気が無い

743:デフォルトの名無しさん
23/11/22 14:20:39.43 J37I1a5Va.net
>>735
xlsxをパースしてhtmlに変換するとかやってた
まじで無駄すぎ

744:デフォルトの名無しさん
23/11/22 14:26:19.12 DreVDkFV0.net
excelついでに
巨大なxlsxファイルを出力するのってどうやっても異様に遅いけど、
高速化する手段無いよね
データ入力して解析して出力データ作って、までは一瞬なのに、
xlsx形式への変換だけで延々と待たされる

745:デフォルトの名無しさん
23/11/22 14:49:22.81 QuV+YjRV0.net
内容によるしpythonで完結しないけどcsvで出してエクセルで読み込むとかどう?

746:デフォルトの名無しさん
23/11/22 15:49:36.79 DreVDkFV0.net
複数シートあるからcsv使えないんだよな
バラでやるという方法もあるけど、手作業が入るくらいなら一晩放置の方がいい

747:デフォルトの名無しさん
23/11/22 16:23:45.37 IUnPDzEi0.net
xlsbではどうだろうか?

748:デフォルトの名無しさん
23/11/22 16:44:32.44 xdLBQuj30.net
>>737
pyexcelerate > xlsxwriter >>> openpyxl
なんだけど今は何使って出力してる?

749:デフォルトの名無しさん
23/11/22 16:50:36.69 DreVDkFV0.net
openpyxlだけど、それしかなくない

750:デフォルトの名無しさん
23/11/22 16:57:18.94 QuV+YjRV0.net
>>742
>>741が書いてくれてるじゃん。openpyxlが一番遅いって。

751:デフォルトの名無しさん
23/11/22 17:10:10.92 DreVDkFV0.net
おお、試してみよう
機能も多そう

752:デフォルトの名無しさん
23/11/22 17:28:52.18 F4GGzYS90.net
実験屋はデータをエクセルそのまま渡したがるのだけど
マジでやめてほしい

753:デフォルトの名無しさん
23/11/22 17:53:44.07 bouDYTS90.net
でもJupyterのノートブックしか受け付けません、とはならんし
Excelで情報渡すなら範囲に名前定義したり
データのみシートに分離するのが至極当然であることを伝えよう

754:デフォルトの名無しさん
23/11/22 17:57:45.73 F4GGzYS90.net
openpyxlでそのままパースできるからいいじゃんと言われてぐうの音も出ない

755:デフォルトの名無しさん
23/11/22 19:19:26.29 B4K5aofh0.net
独学でPythonマスターできますか?
オツムは関関同立理系レベルでふ

756:デフォルトの名無しさん (ワッチョイ ae68-6Q50)
23/11/22 20:13:17.88 B4K5aofh0.net
すみませんやっぱり諦めます

757:デフォルトの名無しさん (ワッチョイ c1f0-LQE0)
23/11/22 20:14:43.45 F4GGzYS90.net
諦めたらそこで試合終了だよ

758:デフォルトの名無しさん (ワッチョイ 9140-jMfl)
23/11/22 21:31:30.57 Rzk2Qyuv0.net
VBA使う方が楽
できるだけPythonでやりたくても、インプットがexcelファイルである以上ある程度はVBAでやる方が楽だなって最近実感した

759:デフォルトの名無しさん (ワッチョイ 29b1-ettz)
23/11/22 22:02:07.45 wOB76uPy0.net
プログラムってほとんどの人が独学だから「やればできる!!」

760:デフォルトの名無しさん (ワッチョイ aefe-8oJ/)
23/11/22 22:42:31.11 eWaPk4Ti0.net
>>723
設定に変える部分ある?

761:デフォルトの名無しさん (ワッチョイ aefe-8oJ/)
23/11/22 22:43:48.36 eWaPk4Ti0.net
>>728
jsonはわかりやすくね
個人的にyamlより読みやすいよ
XMLはクソ

762:デフォルトの名無しさん (ワッチョイ f932-Oqke)
23/11/22 23:13:13.90 rqdHSTy50.net
手書きするなら圧倒的にJSONの方がXMLよりいい
YAMLは文脈依存文法な感じがしんどい、とかいってPython使ってて何言ってんだって感じだけど、
pythonに慣れてなかったころの敬遠する感覚を思い出す

763:デフォルトの名無しさん (ワッチョイ 5d54-fbAv)
23/11/22 23:22:58.96 DreVDkFV0.net
形式なんか何でもいい
そんなもんを手書きさせるのが間違い
内部データを保存するのにバイナリよりシリアライズしたテキストの方がよっぽど素性がいいというだけ

764:デフォルトの名無しさん (アウアウエー Sa0a-bKrX)
23/11/22 23:25:03.35 BN/HxvkXa.net
yamlの中にjson書いちまえよ

765:デフォルトの名無しさん (ワッチョイ cd00-YW6P)
23/11/23 00:25:25.41 6RfeBRcn0.net
>>756
>形式なんか何でもいい
>そんなもんを手書きさせるのが間違い
最近は設定ファイルがスキーマを持っていて効率よく手書きできるんだよ

766:デフォルトの名無しさん
23/11/23 10:14:43.85 mHKDjshta.net
>>728
>読めるというだけで矛盾なく編集するのは無理 (誤)
矛盾なく編集するのは馬鹿には無理 (正)

767:デフォルトの名無しさん
23/11/23 10:18:32.79 mHKDjshta.net
>>732
そうだね

768:デフォルトの名無しさん
23/11/23 11:40:45.92 xT+GKDoJ0.net
pythonやってると何でも出来すぎて他人と差がつかない気がしてきた
pythonエンジニアとしてアドバンテージ取るには何できたらいいですか?

769:デフォルトの名無しさん
23/11/23 11:52:12.60 FNLD9uI30.net
開発環境に凝る

770:デフォルトの名無しさん
23/11/23 12:40:09.57 xT+GKDoJ0.net
凝るっていっても開発環境なぞ共通ではないですか

771:デフォルトの名無しさん
23/11/23 13:25:00.91 amPFEvIW0.net
開発環境に凝るのは誰もが通る道だろ

772:デフォルトの名無しさん
23/11/23 13:29:38.82 M3SMKrV50.net
今はVSCodeで良くなったしな
docker使えばOSの差もない
つまんない時代よ

773:デフォルトの名無しさん
23/11/23 13:31:59.61 9np+Rtrn0.net
pythonでできることといっても多岐にわたるから差をつけられないってことはないだろう。
pythonの使い方だけで差をつけようと思ってもそりゃ無理だが。

774:デフォルトの名無しさん
23/11/23 13:34:08.79 M3SMKrV50.net
速度を除けば大抵のことができるからね
これほどライブラリが揃ってる言語は歴史的に見てもない

775:デフォルトの名無しさん
23/11/23 14:34:59.54 flwx+3WQ0.net
>>761
python以外の言語を習得してみたら?
世界が広がるよ

776:デフォルトの名無しさん (ワッチョイ 4657-J2Wu)
23/11/24 16:53:48.87 YbIXxF2c0.net
今からPython勉強するのにJupyterLabじゃなくnotebook使うメリットはありますか?

777:デフォルトの名無しさん
23/11/25 20:04:58.86 dphqiFMy0.net
ちょっと古いnotebook(6系)ならjupyter-contrib-nbextensionsが優秀だからアリ
7系だとJupyterLabを使わないとnbextensions相当のことができなくてなし、かな個人的には
scratchpadないのは厳しい

778:デフォルトの名無しさん
23/11/26 06:37:33.73 /ewoALlR0.net
使える機能拡張に


779:違いがあるということか 学習系の動画見てると候補が出てくるのが便利だな何かなと思っていたがそれなのね ありがとう参考にするわ



780:デフォルトの名無しさん
23/11/26 08:57:43.58 svIGcsZy0.net
メモ帳をエディタとして使う話かと思った

781:デフォルトの名無しさん
23/11/26 09:41:10.75 YklbHXOm0.net
notepad と terapad しか無い環境で、頑張った思い出...

782:デフォルトの名無しさん
23/11/26 11:25:49.02 +Jpfh5lQ0.net
>>773
そういう環境で、ポータブル化VScodeとかWinPythonとかの
インストール不要なものを持ち込んでやってたわ

783:デフォルトの名無しさん
23/11/26 11:35:13.55 svIGcsZy0.net
ダウンロードも禁止だよ

784:デフォルトの名無しさん
23/11/26 15:06:58.60 sYav70q40.net
プログラミング勉強始める人にオススメ聞かれたら公式のPythonとVSCode一択かな

785:デフォルトの名無しさん (ワッチョイ bf91-eApT)
23/11/27 01:03:26.27 ggQuSpTQ0.net
Python では転職できない。
企業は理系で大学院数学科か、AWS 機械学習資格を持っていない香具師を雇わない

ウェブ開発で転職できるのは、Ruby on Rails のみ

例えば、YouTube の女子大生のかよちんは、
Railsの初心者で就職して、
1年後に、Django の会社に転職した

YouTubeで有名な雑食系エンジニア・KENTA は、
初心者のキャリアパスは、Rails → Go だけと言ってる

786:デフォルトの名無しさん (ワッチョイ e754-9mH+)
23/11/27 01:15:42.85 Q/UdWWa/0.net
googleの奴隷になる覚悟があるならGoで就職するのもありだろう
RoRの需要は減る一方なので、それで仕事を見つけても同時に次を探さないと早晩食い詰める
pythonができますと言ってもそのくらいは当たり前なので、
pythonで何ができますまで無いと仕事には結びつかない
セキュリティ、ビッグデータ、人工知能あたりが不足してる

787:デフォルトの名無しさん
23/11/27 19:07:42.88 HA2WCtFh0.net
chatGPTに得意な言語聞くと
「Python」と返答したので
Pythonでいいだろう
Python知ってると
どの分野に行ったとしても
パソコン使う仕事の時に手っ取り早く自動化できる
Python知ってれば他の言語は使わないだろう

788:デフォルトの名無しさん
23/11/27 19:28:02.33 Q/UdWWa/0.net
perl覚えた時も、これあればずっと困らないかもと思ってた
C言語は今でも普通に使ってる
あいつ何なんだ

789:デフォルトの名無しさん
23/11/27 20:07:30.10 HA2WCtFh0.net
学生の時、Cとjava勉強して基本情報処理をC言語で取ったが
python使うようになってから家ではpythonしか使わない
でも、、今まで勉強した言語の中で唯一
一冊も本を買っていない

790:デフォルトの名無しさん
23/11/27 22:31:56.55 XZyg9nsC0.net
C++ ってC++17 C++20 C++23 ってばんばん規格が更新されるじゃん。
もう付いていけてないw
最終的にはpythonみたいに書きたいんじゃね?って思うw 違うかw

791:デフォルトの名無しさん
23/11/27 23:07:27.83 58wAMQmG0.net
c#も毎年のようにバージョン上がってるけどそんな話にはならん

792:デフォルトの名無しさん
23/11/27 23:14:46.03 jksiOuqq0.net
CとJavaScriptもPythonじゃ置き換われん

793:デフォルトの名無しさん
23/11/28 00:43:20.23 tbHgY5Ye0.net
辞書に値入れるとき、キー名とバリューの変数名が同じならキー名だけでよいって仕様にならんかなぁ…

794:デフォルトの名無しさん
23/11/28 01:19:34.65 5v5wYsOr0.net
そんなJSみたいなクソ仕様は入れない

795:デフォルトの名無しさん
23/11/28 06:44:20.72 tbHgY5Ye0.net
>>786
ごめんなんでクソなの?
変数名とキー名を合わせることにも繋がるし可読性高まってよいと思ってた

796:デフォルトの名無しさん (JP 0H8f-EFbn)
23/11/28 07:17:14.41 khx6ZkglH.net
Javaは厳格すぎるしJavaScriptは緩すぎる
Pythonが一番バランスがいい

797:デフォルトの名無しさん (ワッチョイ e754-9mH+)
23/11/28 07:45:02.70 Qmk7LgpZ0.net
それsetを使うべきなのでは

798:デフォルトの名無しさん (ワッチョイ c781-1+JT)
23/11/28 07:55:42.57 fKkgRK0i0.net
>>787
a = (1,2,3)
b = (1,2,3)
d = {a, b}

仮に、{a, b}がsetにならないならこういう事?

799:デフォルトの名無しさん
23/11/28 08:10:19.81 kRkdmaFgd.net
変数名とか関数名とか
動的に取得されたりすると
難読化で不具合出るんよな。。。

800:デフォルトの名無しさん
23/11/28 08:12:46.13 iKFapkLZ0.net
難読化するつもりがあるのなら
Pythonなんて真っ先に除外する対象じゃね?

801:デフォルトの名無しさん
23/11/28 08:16:25.22 VInsuioq0.net
>>787
え?
dic1 = {"a":"abc", "b":"bc", "c":"c"}
と、キーバリューの同じ場合があるのでなく、
dic1 = {"a":"a", "b":"b", "c":"c"}
と、常に同じという意味なの?

802:デフォルトの名無しさん
23/11/28 08:20:01.05 VgOmfrQ10.net
>>789
キーと変数名が同じで中の値自体は別

803:デフォルトの名無しさん (アウアウウー Sa0b-6V65)
23/11/28 08:35:12.55 t7+ip2Xga.net
>>785 Rust には(dictではないが)あるよ
>>789 set とは用途が違うんだよ

804:デフォルトの名無しさん (アウアウウー Sa0b-6V65)
23/11/28 08:37:37.91 t7+ip2Xga.net
>>793
そうじゃなくて
a = "abc"
b = "bc"
c = "c"
ってのがあるときに
dic1 = {"a":a, "b":b, "c":c}
は面倒だろ
dic1 = {a, b, c}
って描けるんだよ

805:デフォルトの名無しさん (ワッチョイ e754-9mH+)
23/11/28 08:42:59.96 Qmk7LgpZ0.net
確かに、keyと変数名が同じことはよくあるな
クラスのメンバ名と変数名もよく揃ってる
def __init__ (self, なんやら):
self.なんやら = なんやら
なんで同じこと3回も言うねん

806:デフォルトの名無しさん
23/11/28 09:26:56.20 t7+ip2Xga.net
def __init__ (self, **kwargs):
self.kwargs = kwargs
これでもまだ冗長に観える

807:デフォルトの名無しさん
23/11/28 11:52:54.06 rFxrbgTI0.net
それだとキーワード引数が複数個ある場合の使い方とアンパックして中の値を使いたいかの目的が多重化している

808:デフォルトの名無しさん
23/11/28 11:55:42.65 rFxrbgTI0.net
具体的にわかりやすく書いてくれたから容易に、思いつく。

809:デフォルトの名無しさん
23/11/28 12:01:56.55 Qmk7LgpZ0.net
print(f'なんやら={なんやら}')

print(f'なんやら=')
に省略可能なのと同じ規則で、
self.なんやら =
だけで終わると補完される
危険すぎる

810:デフォルトの名無しさん
23/11/28 20:50:42.09 HOP5xTToa.net
技術的選択というのは最終的には必ずトレードオフになるので
ある選択のプラス面だけしか見ない/考えない/認識できないやつは何やらせてもダメ

811:デフォルトの名無しさん
23/11/28 21:24:12.74 hiFSE4Z1M.net
欲しい理由が書くのが面倒とかって時点でな

812:デフォルトの名無しさん
23/11/28 21:27:35.30 1nBQ24fZ0.net
やはりmojoの時代来るか

813:デフォルトの名無しさん
23/11/29 04:15:28.77 MwCCIaBL0.net
プログラミング言語覚えるなんて必要な努力が知れてるでしょ。特にパラダイムが変わらない場合。
Pythonがある程度書けるようになったらプログラマー目指してるなら他の言語やったほうがいいし、そうでないなら機械学習みたいな明らかに別のドメイン知識の勉強が必要なものやるかした方がいいでしょ。
Pythonだけ極めてる人なんてほとんど居ないのでは。

814:デフォルトの名無しさん (アウアウウー Sa0b-6V65)
23/11/29 06:25:40.88 n75oaT1ga.net
Pythonだけチョットデキルようになって
極めたつもりになってる人なら沢山いるね

815:デフォルトの名無しさん (ワッチョイ 8701-4JCo)
23/11/29 06:28:25.87 rNDCOHEd0.net
O'REILLY本は何を読んでます?

816:デフォルトの名無しさん
23/11/29 10:37:01.51 CDmlmqgH0.net
>>761とかまさに

817:デフォルトの名無しさん (ワッチョイ a675-w+dO)
23/12/02 10:07:20.71 ltiFkw6s0.net
macのpythonでpip installしたパッケージが
インポート出来ないのどうしたらいいの?

import pip
pip.main([“list”])

するとちゃんと一覧出てくるんだけど
じゃあそのパッケージimportってすると
ModuleNotFoundErrorになる

818:デフォルトの名無しさん
23/12/02 11:13:47.87 6G8OKUYC0.net
うちのは Python 2、3両系入っていて、2系に誤インストールしたライブラリが3系で見つからず、よく大騒ぎする。

819:デフォルトの名無しさん
23/12/02 15:54:14.39 5vdThGAW0.net
>>806
そういう"誤解"は人間にはとても重要
必要もないのに変に実力を知らせたがるのが多いけれど無意味
レベルアップするときに知ればいいだけ
客観的真実というのは人間には害になることのほうが多い

820:デフォルトの名無しさん
23/12/03 01:33:52.43 l1Ri8dMm0.net
Python3エンジニア試験に合格したぜよ
これでエンジニア名乗っていいな

821:デフォルトの名無しさん
23/12/03 02:44:06.55 hEIQYuRL0.net
最低コンピュータサイエンスの学士じゃないとエンジニアとは呼べないな。

822:デフォルトの名無しさん
23/12/03 03:11:29.20 IsmlQ0Hp0.net
↑こういうやつが好きな単語
アルゴリズムとデータ構造
自社開発
後何があるかな

823:デフォルトの名無しさん (ワッチョイ 3580-1tr5)
23/12/03 03:50:52.85 Pw30HPy40.net
>>809
pip installする時とimportする時で
違う呼び名のモジュールっていくつかあったなあ

それともモジュールがバージョン違いだったって奴だろうか
やっぱりanacondaじゃないとダメかなあ

824:デフォルトの名無しさん
23/12/03 11:18:15.19 QTewqrs7a.net
>>814
馬鹿には無理

825:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/03 12:07:46.29 CywJMuft0.net
csvを読んで加工してテキストで出力する
csvファイルを開くwithと出力用のwithの二重になるのがなんか嫌なので、
csvを読んだ時点で一旦閉じたい
どうやったら全体をメモリに取り込めるだろう

826:デフォルトの名無しさん (アウアウクー MM7d-CgE6)
23/12/03 13:29:53.87 l9F3rDC0M.net
import pipってなに

827:デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
23/12/03 14:10:05.75 vkjAQods0.net
>>812
書かない方が良いぞ
「資格持ってるからエンジニア名乗れると思ってるやつ」と思われるから

828:デフォルトの名無しさん (ワッチョイ 5df0-/D3x)
23/12/03 14:11:17.90 vkjAQods0.net
>>814
思いつかなくて草

829:デフォルトの名無しさん
23/12/03 15:13:20.38 A1Jz2HtB0.net
>>817
withのブロックを抜けたタイミングでファイルは閉じられるが内容を読み込んだ変数はブロック抜けても生きてる
ブロックスコープのある言語に慣れてるとちょっと気持ち悪いけど

830:デフォルトの名無しさん
23/12/03 15:41:03.50 XzZP3JPh0.net
客の前に出すときは、入社3週間でもエンジニアを連れてきましたと言って紹介する

831:デフォルトの名無しさん (ワッチョイ 9103-YS9E)
23/12/03 19:32:26.44 6s2zsrgs0.net
>>817
ネストが深くなるのが嫌と言う意味ならwith ()で2つ同時にwithればいい

832:デフォルトの名無しさん
23/12/04 01:35:16.40 W3mu4L/A0.net
>>817
with open(filename, 'r') as f:
text = f.read()
# textを使った処理
と書けば普通にreadしてメモリに読み込んでファイルは閉じられる。
CとかC++とか、JavaとかC#でも一緒じゃない?

833:デフォルトの名無しさん
23/12/04 07:23:54.73 MHjmHZBI0.net
>>824
別に気持ち悪くないね。
>>821 曰くの気持ち悪い変数はどれぢゃ。'f' か?

834:デフォルトの名無しさん
23/12/04 08:25:28.28 L1Td53yR0.net
いつもはそうしてる
f.read()が全部をメモリに読み込む処理だから
with open(CSV_FILE) as f:
  csv = csv.DictReader(f)
これでもうfと縁が切れるかというと、csvから読む時にまだfを使うので閉じられない
全部読み込むオプションとかあればいいのに

835:デフォルトの名無しさん
23/12/04 08:45:12.95 0tblxJUD0.net
csv.reader の第一引数はファイル以外も可、csv.DictReader も同じく
URLリンク(docs.python.org)
> イテレータ プロトコルをサポートし、 __next__() メソッドが呼ばれた際に常に文字列を返すような任意のオブジェクトにすることができます
with open("a.csv", newline="") as f:
    reader = csv.DictReader(f.readlines())

836:デフォルトの名無しさん
23/12/04 08:52:03.37 L1Td53yR0.net
おお、イテレータなら何でもいいんだ
じゃあ解決

837:デフォルトの名無しさん
23/12/04 08:57:42.70 L1Td53yR0.net
マニュアルを調べてそう書いてあるから、ではなくて、
こんなもんファイルじゃなくてもリスト突っ込んでもいけるだろ、と試してたら即解決してた
そういう想像が働くかどうかがセンスなんだろうな

838:デフォルトの名無しさん
23/12/04 09:23:09.09 vGycO/bSa.net
想像働かせてもcsv.DictReaderがサポートしていないと意味無い
結局マニュアル嫁が正解

839:デフォルトの名無しさん
23/12/04 09:34:09.32 L1Td53yR0.net
サポートっていうか
わざわざそうしてくれてるというよりは、普通に作ったらそうなったというだけで
自分で作る場合でも受け取ったものをforで順に見ていけば勝手にそうなる
だから、サンプルにfと書いてあっても、他のものでもいける筈だとセンスがあれば直感できる

840:デフォルトの名無しさん
23/12/04 10:11:28.23 kngv0jx8d.net
センス無く、マニュアル読まない、出来ない子が>>826
センス不明、マニュアル読む、出来る子が>>827
初歩的な部分は
センス磨くより、確実なマニュアル読んだほうが良くね?
頭にマニュアル入ってた方がセンスも光ると思うし

841:デフォルトの名無しさん
23/12/04 10:12:47.70 vGycO/bSa.net
センスの善し悪しは否定していないよ
だけどマニュアル嫁が正解

842:デフォルトの名無しさん
23/12/04 10:14:29.29 f3mcZ5dk0.net
作法に則って作られたものは直感的に扱えるというだけの話
ただしそれが作法に則っているかどうかは自明ではないから
センスがあればマニュアル不要ということにはならない

843:デフォルトの名無しさん
23/12/04 10:16:09.07 L1Td53yR0.net
マニュアルは全てが書いてあるからな
もしかして、イテレータ全部いけるのでは、という想定があって読まないと必要な場所が判らない
で、そんな想定が持てるなら読まなくても解決できる
全部読み込むオプションは無いかな、という観点でマニュアル見ても素通りする

844:デフォルトの名無しさん
23/12/04 11:06:46.65 zZiGuUQkd.net
言ってることが支離滅裂で意味不明
どうしてもマニュアル不要に持っていきたいのは伝わってくるが

845:デフォルトの名無しさん
23/12/04 11:21:42.25 L1Td53yR0.net
マニュアルで解決するならチュートリアルも解説書も要らん
ぐるっと回ってきて最後に、ああマニュアルにあったのか、となるのがいつものパターン

846:デフォルトの名無しさん
23/12/04 11:31:56.68 dR/JDXQy0.net
さらに支離滅裂だな。自分で言ってる事がわからなくなってるんじゃないか?

847:デフォルトの名無しさん
23/12/04 11:49:50.89 cL5NOEP90.net
初心者のクレクレで申し訳ないのですが…
pythonに挫折しかかってます。
a = 1
print ("if文テスト")
a = input ("1を入力してください")
if a == 1:
print ("成功")
else:
print ("失敗")
これがどうしても成功に行かない…
行開けるとかnotにしてみるとかしたのだけれど。
教えて頂けると幸い。

848:デフォルトの名無しさん
23/12/04 11:58:54.27 MHjmHZBI0.net
input() の返り値の型を調べてみては。
a = input ("1を入力してください")
print(type(a))
とか。

849:デフォルトの名無しさん (アウアウウー Sa21-wVFe)
23/12/04 12:09:40.21 vGycO/bSa.net
>>837
>ああマニュアルにあったのか

結局マニュアル読まない無能を自白しちゃったね
自己紹介乙

850:デフォルトの名無しさん (アウアウウー Sa21-cMNP)
23/12/04 12:17:03.22 HYznMI51a.net
>>814
一般的にエンジニアと名乗りたいなら
コンピュータサイエンスの学士 + 国家試験 + 経験年数5年は必要かな。

851:デフォルトの名無しさん (アウアウウー Sa21-cMNP)
23/12/04 12:20:42.17 HYznMI51a.net
>>814
プログラマを名乗りたいなら国家試験 + ベンダー試験 + ドメイン知識でなれるだろう。

852:デフォルトの名無しさん (ワッチョイ 1eda-zrcD)
23/12/04 13:11:21.69 cL5NOEP90.net
>>840
レスthanks

最後の行に「print(type(a))」貼ってみたら
<class 'str'>が出てきた。

一番上で整数宣言してると思うんだが
なぜに?

853:デフォルトの名無しさん
23/12/04 13:38:44.25 dR/JDXQy0.net
整数宣言とは1行目のa=1?
a = input ("1を入力してください”)でaの値を自分で変更してる

854:デフォルトの名無しさん
23/12/04 13:55:48.74 cL5NOEP90.net
いや…
a = int
print ("if文テスト")
a = input ("整数を入力してください")
if a == int:
print ("成功")
else:
print ("失敗")
print(type(a))
これでも失敗にしかならないんだが…
ウチのpythonぶっ壊れてるのかな?

855:デフォルトの名無しさん
23/12/04 14:16:02.37 dR/JDXQy0.net
下実行してもわからんかったら理解が足りない
a = int
print(type(a))
a = input ("整数を入力してください")
print(type(a))

856:デフォルトの名無しさん
23/12/04 14:31:25.94 UR+VnO+A0.net
a = 1
a = "2"
としたら
代入時か比較時にキャストが走って a == 2 になる言語がどこかにあるってことか

857:デフォルトの名無しさん
23/12/04 14:33:03.89 L1Td53yR0.net
= の左側は必ず新しいオブジェクトになる
というのはそうでない言語知ってると飛躍があるな
入れ物を用意して、中身を入れ替えていく変数観とは全然違う

858:デフォルトの名無しさん
23/12/04 14:47:47.19 apNvJw2Gd.net
>>837
マニュアル、チュートリアル、解説書にはそれぞれ役割がある
それが理解できないのかな

859:845
23/12/04 14:58:26.57 cL5NOEP90.net
理解が足りてないようです…
(別に皮肉じゃないです)
もう少し勉強してから出直してきます。

860:デフォルトの名無しさん
23/12/04 15:10:15.88 X18HmWgG0.net
a = 1
の時点でaはint型かもしれないけどその後でinput文では数字入れてもstr型、つまり文字としての"1"が代入される
やりたいならinput文のあとでa=int(a)でint型に型変換するか、条件文で数字の1ではなく文字の"1"と比較すればいい
int型に型変換する場合はinput文で"A"とか数字に変換できない文字が入力されるとエラーになるのでそれを回避する条件文とか書くことになって面倒だけど・・・
pythonには型宣言は基本的に無いから後に代入された型で染められる
他の人も言ってるけど一行ごとにprint(type(a))とかで何の型になっているかチェックしてみたら?

861:デフォルトの名無しさん
23/12/04 15:14:10.25 03ItZlbx0.net
>>846
動的型付けというのは変数に入ってる”値”によって変数の型が実行時に(動的に)決まること
変数の型がコンパイル時に(静的に)一つに決められるの静的型付けとは根本的に違う

862:デフォルトの名無しさん
23/12/04 15:16:05.57 MHjmHZBI0.net
>>848
/bin/sh は a = "2" が a == 2 になるね。
文意は皮肉かもしれないが、一応マジレス。
$ a='2'
$ test ${a} -eq 2; echo $? # 数値比較→真
0
$ test ${a} = '2'; echo $? # 文字比較→真
0
$ test ${a} -eq 1; echo $? # 数値比較(異値)→偽
1
$ test ${a} = '1'; echo $? # 文字比較(異値)→偽
1
$

863:デフォルトの名無しさん
23/12/04 15:25:20.99 L1Td53yR0.net
a = '1'
if a == 1:
は何のエラーにもならずfalseだけど、それが嬉しい局面って何かあるんだろうか
普通にエラーになってくれた方が助かるのに

864:845
23/12/04 15:35:02.50 cL5NOEP90.net
ifのあと"1"
にすれば>>839のコードでも成功に行くのはわかっているのですが
整数の1をif文で判定したくて四苦八苦しております。

親切な人多くて嬉しいです。

865:デフォルトの名無しさん
23/12/04 15:41:24.31 dR/JDXQy0.net
そもそもinput使う時点で文字列にしかならんからな

866:デフォルトの名無しさん
23/12/04 15:43:42.86 apNvJw2Gd.net
>>855
値を比較しただけで実行時エラーになるような言語とか正気か?
もう黙ってなよ

867:845
23/12/04 15:48:46.40 cL5NOEP90.net
>>857
マジっすか!?

868:デフォルトの名無しさん
23/12/04 15:53:55.42 hskMlW3m0.net
>>859
>>852をちゃんと読もう

869:デフォルトの名無しさん
23/12/04 15:59:02.03 D7B41PS90.net
Python2のinput()はPython3のeval(input())
Python2のraw_input()はPython3のinput()

870:845
23/12/04 16:10:06.06 cL5NOEP90.net
とりあえず納得できました
皆さまのおかげです
また詰まったらクレクレしに来ます(苦笑)
ありがとうございました

871:デフォルトの名無しさん
23/12/04 16:42:52.46 f5vq9b6L0.net
ユーザー入力が文字列以外で解釈される言語は見たことないけどな
あるのかな?

872:デフォルトの名無しさん
23/12/04 16:59:52.75 L1Td53yR0.net
python2がそうだったのでは

873:デフォルトの名無しさん
23/12/04 17:20:13.89 UR+VnO+A0.net
>>858
べつに設計上おかしかなくない?
Pythonは__eq__で解決できなくてもフォールバックあるけど一長一短

874:デフォルトの名無しさん (スッップ Sd0a-48z8)
23/12/04 17:53:17.77 jOpGWHbYd.net
>>865
等価演算子に実行時エラーを出させるのが妥当とは思えんよ
そういう機能が欲しければ独自のチェック関数を作るべきだろう

875:デフォルトの名無しさん
23/12/04 21:14:40.89 UR+VnO+A0.net
>>866
静的言語やTSならそもそも実行できないケースだよ?
Pythonをそうせよって意味ではなく
そういう設計の動的言語があってもぜんぜん不思議ではない

876:デフォルトの名無しさん
23/12/04 21:39:54.56 XU6NDivrd.net
比較演算子は、
・真
・偽
・比較出来ない
・例外
の4値を返すべきだな
とっても面倒くさくなりそう

877:デフォルトの名無しさん (スッップ Sd0a-48z8)
23/12/04 22:24:07.98 jOpGWHbYd.net
>>867
俺はその設計が妥当だと思わないって意見表明をしてるんだよ

878:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/04 22:28:33.13 L1Td53yR0.net
コンパイルできないくらい間違ったコードに警告するのは親切でありこそすれスルーするメリットは無いのでは

879:デフォルトの名無しさん
23/12/04 23:03:05.60 GzgqXY0ad.net
>>870
静的型付け言語では型のチェックに関して静的解析の恩恵が受けられる
動的型付け言語では実行時に自前でチェックする必要がある
そしてそれを比較演算子に例外生成させることで実現しようというのは比較演算子の守備範囲を逸脱していると考える、という話
スルー云々という話ではない

880:デフォルトの名無しさん
23/12/04 23:20:04.47 L1Td53yR0.net
なるほど、判らん(酔ってるから)

881:デフォルトの名無しさん
23/12/04 23:44:56.40 NLHKgHYS0.net
1 > ‘1’が実行時エラーになるように
1 == ‘1’を実行時エラーにする方針の言語があっても別にいいと思う
大小比較も等値比較もCPyrhonでは同じ一つの関数で処理されるんだけど
左辺の型からも右辺の型からも比較演算をサポートしてないとなったら等値比較の場合だけオブジェクトID比較を返すフォールバックを使うことになってる
言語設計者がエラーで弾いた場合のメリットよりフォールバックした場合のメリットを優先したというだけで比較演算子の守備範囲とかはあまり関係ないと思う

882:デフォルトの名無しさん
23/12/05 02:10:11.77 9BlMohwu0.net
Ruby では以下は、両方ともfalse になる。
エラーにはならない。
型が違うから、問答無用でfalse
p 1 == "1"
p "1" == 1
true の条件は同じ型で、値も同じ時
Rubyは静的言語ではないから、コンパイルエラーにはならない。
テストでバグを見つけないといけないから、
その点、動的言語は面倒くさい
だから、TypeScript が流行った

883:デフォルトの名無しさん
23/12/05 10:20:00.26 5ZWKk5tJd.net
>>872
どうせ酔ってなくても大して変わらん
>>835とか見れば分かる

884:デフォルトの名無しさん (ワッチョイ 35d1-QDDZ)
23/12/05 18:52:32.32 d/HKFAig0.net
>>831
pandasのread_json関数は直接文字列を渡したりファイルオブジェクトを渡せるけど、read_csvは直接文字列を渡せないんだけど
普通に作ったらとかいうけど、普通とは?って思うけどなあ

885:デフォルトの名無しさん (ワッチョイ 35d1-QDDZ)
23/12/05 19:01:32.87 d/HKFAig0.net
>>870
例えばJavaで((Object) 1) == "a"という式はエラーにならないし場合によるとしか言えないと思うけど。
「コンパイルできないくらい間違ったコード」っていうけど、「普通」と一緒で、どこからが間違ったコードなのよって話になる。
動的型付け言語ならなおさら。

886:デフォルトの名無しさん
23/12/06 10:09:21.73 OIX9QIK5d.net
>>876
ほんそれ++

887:デフォルトの名無しさん (ワッチョイ 6689-jFys)
23/12/06 11:53:32.45 e50gn0BB0.net
javaのイコールとpythonのイコールは異なるからなあ
isinstanceかisかtypeかなぁ

888:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:20:52.35 1hCR5TUW0.net
麻雀の点数計算できるライブラリみつけた
仕様が書いてあるページどっかにない?

889:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:38:12.91 1hCR5TUW0.net
仕様は見つけたけどすっげー読みづらい‥

890:デフォルトの名無しさん (ワッチョイ 5ed4-aytD)
23/12/06 23:41:21.41 TvfjVsdx0.net
AIチャットボット向きの課題かも
ローカルルールを箇条書きで渡してコード書いてもらったら?

891:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:50:23.95 1hCR5TUW0.net
>>882
いやライブラリ見つけて仕様書もあったんだけどいかんせん読みづらくて…

892:デフォルトの名無しさん (ワッチョイ 5e00-WD8q)
23/12/07 03:59:22.29 kyWDdJFq0.net
>>876
Ruby のCSV なら、ファイルや文字列から、
1行ずつ、または全てを読み込める

CSV.foreach : ファイルから一行ずつ読み込む
CSV.read : ファイルから全てを読み込む

CSV.parse : 文字列から一行ずつ、または全てを読み込む

893:デフォルトの名無しさん (JP 0H3e-kPRq)
23/12/07 06:22:39.87 tyKSl/WnH.net
>>883
仕様書読んで何をしたいの
ライブラリって労力を省くためのものなのに
中身を知ろうとして苦労するのって本末転倒っしょ

894:デフォルトの名無しさん
23/12/07 07:57:00.99 BRWWjO5+0.net
Pythonのお勉強スレでRubyを紹介するって、やっぱRuby使いは頭がおかしい。

895:デフォルトの名無しさん
23/12/07 08:22:37.28 qvan2CQu0.net
awk -> perl -> python と流れてきたけど、
途中でrubyに立ち寄らなくて本当に良かった

896:デフォルトの名無しさん
23/12/07 08:46:37.16 bis3W60d0.net
隙有らば自分語り
誰も興味ないのにね

897:デフォルトの名無しさん
23/12/07 12:22:23.65 G+XGanQ+M.net
GPLに汚染されたRoRをずっと愛でてれば良いのに :-p

898:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/07 13:32:27.34 qvan2CQu0.net
pythonでGPL感染に困るケースってある?

899:デフォルトの名無しさん (ワッチョイ 8a11-WyqO)
23/12/08 15:55:44.91 j/ISpuI80.net
>>885
どういったフラグがあってとかわからないとかけないじゃん?
と思ったけどchatgptで聞けばよかっただけだった

900:デフォルトの名無しさん (ワッチョイ 5e5b-aytD)
23/12/08 22:49:50.08 lBrblQMP0.net
ライブラリの使い方聞くんじゃなくて
点数計算のプログラム書いてもらえばええんよ

901:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/08 23:09:45.86 Q/J1Vxp/0.net
判定自体は簡単だけど、役満は断么をオーバライドするとか、
役満と役満は共存するとか、イレギュラーな規則の実装が面倒そう

902:デフォルトの名無しさん (ワッチョイ a510-yDrh)
23/12/08 23:17:23.87 4oKxEziY0.net
麻雀の点数計算なんて30年以上前からゲームで実装されているだろ。
何をいまさら。

903:デフォルトの名無しさん
23/12/08 23:58:52.73 Q/J1Vxp/0.net
そんな頃からpythonある訳ないだろ

904:デフォルトの名無しさん (ワッチョイ 5763-JBvs)
23/12/09 01:08:20.81 ScuIIvWx0.net
python自体は30年以上前からある

905:デフォルトの名無しさん
23/12/09 03:48:32.15 Nm74I+ug0.net
スクレイピング案件ゲットするのに何時間勉強必要ですか?地頭は悪いです

906:デフォルトの名無しさん (JP 0H8f-UJ9L)
23/12/09 04:59:58.84 +cLwEiyiH.net
>>891
すごいな
最近のAIはPythonのライブラリの使い方まで教えてくれるのか
と思って今苦戦しているargparseの使い方を聞いてみたが
簡単なサンプルを提示してあとはドキュメント読めと言われた…

907:デフォルトの名無しさん (ワッチョイ 9f11-yUyk)
23/12/09 09:01:15.35 /JDiY9I00.net
>>898
0からは書いてくれるけどライブラリはサンプルだけだったわorz

908:デフォルトの名無しさん
23/12/09 09:58:36.92 Nm74I+ug0.net
みなさんPythonの総勉強時間はどのくらいですか

909:デフォルトの名無しさん
23/12/09 10:35:34.71 UhMT32qI0.net
Pythonの勉強とライブラリの勉強は切り離せない
ライブラリの勉強とライブラリの基礎理論の勉強は切り離せない
従って、人生の勉強時間の全てはPythonの勉強時間だったと言って差し支えない
つまり、人生の時間=Python勉強時間だ

910:デフォルトの名無しさん
23/12/09 10:47:51.86 HTRrM6ov0.net
YouTubeの視聴で10時間くらい

911:デフォルトの名無しさん
23/12/09 14:49:16.11 Nm74I+ug0.net
>>901
会社でも勉強の日々ですか?

912:デフォルトの名無しさん
23/12/09 14:49:31.46 Nm74I+ug0.net
>>902
ワイは1時間

913:デフォルトの名無しさん (ワッチョイ 176b-08gk)
23/12/09 16:21:11.17 X/idpvxd0.net
>>898
曖昧に聞くと曖昧にしか答えてくれないけど、具体的に詳しく聞けばちゃんと答えてくれるよ、用途を伝えてどうすればいいか説明してと聞いてみたら?

914:デフォルトの名無しさん (ワッチョイ 9f11-yUyk)
23/12/09 19:37:36.95 /JDiY9I00.net
>>905
いや聞いても答えてくれないよ
ソースをイチから書いてくれは言うこと聞くけど
ちょっと前からバカになった

915:デフォルトの名無しさん
23/12/09 22:16:09.54 mK/Jf29s0.net
>>903
あたぼうよ
生きる時間全てが勉強よ

916:デフォルトの名無しさん (ワッチョイ 1f0e-tASO)
23/12/10 10:08:03.35 tnUY9tvW0.net
pyinstallerで作成したexeファイルの起動速度を上げたい
何をチューニングしたらいい?

917:デフォルトの名無しさん
23/12/10 11:04:36.18 dvINkCpQ0.net
gRPCを使ってローカルサーバー内のasyncio.Queueに別のプログラムからputとgetをすると
Queueが空のときにgetをすると後から呼ばれたputがgetの完了を待ってしまう
イメージとしてはredis-pyのblpopとrpushのようなことがしたいんだがどうすればいい?
クライアント側からは非同期処理を意識せずに呼び出せるようにしたい
server.py URLリンク(techiedelight.com)
producer.py URLリンク(techiedelight.com)
consumer.py URLリンク(techiedelight.com)
grpcserver/grpcserver.proto URLリンク(techiedelight.com)

918:デフォルトの名無しさん
23/12/10 11:35:35.01 nA++m0MY0.net
>>908
高速なCPUに載せ替え

919:デフォルトの名無しさん
23/12/10 11:46:03.36 wF+vsUm70.net
>>908
EXEを作る際に不要なモジュールを削除しておく。
または必要なモジュールのみをインストールした環境で作る。

920:デフォルトの名無しさん
23/12/10 14:14:44.65 zLH0tlZ60.net
>>909
空かどうかチェックしてから呼べば?

921:デフォルトの名無しさん
23/12/10 14:40:05.97 dvINkCpQ0.net
>>912
さっそくの回答ありがとうございます
それはPopMessageの中でタイムアウトまでget_nowait()を無限ループで回すって理解でいい?
PopMessageは空のキューで待ち構えててアイテムがputされたら即getって挙動にしたいんだけど
現在はタイムアウトになって空だった判定が終わってからputが実行されてる

922:デフォルトの名無しさん
23/12/11 09:46:23.18 +ZTyxHoM0.net
>>909
サーバーをgRPC AsyncIO APIを使って書き換えたら想定していた動作になった
server.py URLリンク(techiedelight.com)
ただpush後にqueueの現在のサイズを表示する処理が
popされるまで実行されなくて
popされた直後にまとめて表示されるのをなんとかしたいけどどうすればいい?
それとも実はpopされるまでpushはタスクが積みあがってるだけで実行されてない?

923:デフォルトの名無しさん
23/12/11 15:14:04.17 9aD5b1NYa.net
>>914
こうしたら?
async def _push_message_impl(self, content: bytes) -> None:
coro = self._message_queue.put(content)
task = self._loop.create_task(coro)
await task
print_size = functools.partial(self._print_size, "Pushed.")
print_size()

924:デフォルトの名無しさん (ワッチョイ 7f01-L8ZV)
23/12/11 15:53:29.44 +ZTyxHoM0.net
>>915
ありがとうございます
それも試してみたけどpushのprintがまとめて実行される件は解決しなかった

試行錯誤した結果以下のコードで上手く動いた
putは待たずに即実行してほしいのだからput_nowaitにすべきで
あとはput_nowaitを投げっぱなし(fire and forget)にすると上手くいった

server.py URLリンク(techiedelight.com)

925:デフォルトの名無しさん
23/12/12 17:44:29.04 PeOBrpb00.net
>>916
sys.stdout.flush()

926:デフォルトの名無しさん
23/12/12 17:56:17.06 tcE92BOU0.net
print(flush=True)

927:デフォルトの名無しさん
23/12/12 23:45:57.11 C+wFRSZxa.net
>>855
intとfloat

928:デフォルトの名無しさん
23/12/12 23:50:46.81 C+wFRSZxa.net
>>868
if a==b
の話だからそれだとif節が4つの分岐処理できるようにしないといけないんじゃ
そんな言語嫌だ

929:デフォルトの名無しさん
23/12/13 00:30:55.74 l6shR1Bw0.net
RustのPartialEqが欲しそう

930:デフォルトの名無しさん
23/12/13 01:11:36.89 /DXrNli00.net
0除算といっしょで想定外な後ろ2つは
止まるか例外だすだけちゃうの?

931:デフォルトの名無しさん (ワッチョイ f754-+saG)
23/12/13 08:17:29.51 S1FKlcqe0.net
でも設計者は真にした方が便利だと考えた
どういうケースを想定したんだろう

932:デフォルトの名無しさん (アウアウクー MM4b-Ej2Q)
23/12/13 08:19:45.88 6xdHA+bAM.net
>>922
Pythonの演算なんだから3番目はNotImplementedを戻すだろう
それでも3つ分岐がいることになる
(そうじゃないなら例外にまとめてなきゃ変)

933:デフォルトの名無しさん (スプッッ Sd3f-AgIM)
23/12/13 08:39:21.17 2i8DhGS8d.net
複数の分岐処理がしたいなら、match文でいいんじゃ?

934:デフォルトの名無しさん (ワッチョイ 3746-vhj2)
23/12/13 11:33:11.42 h3rLFE4B0.net
O除算。

>>> 1 / 'O'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'int' and 'str'

935:デフォルトの名無しさん (ワッチョイ ff89-Qlhn)
23/12/13 12:54:06.42 oNl+0rt40.net
チェックしたほうが良いんじゃね。
ケーキ食べたいのに、スフレかもしれんし

936:デフォルトの名無しさん
23/12/13 13:56:39.90 0Tk5upMb0.net
お嬢さん

937:デフォルトの名無しさん
23/12/13 14:13:11.71 WrZJJMf/0.net
スフレチーズケーキはスフレ?ケーキ?
多重継承?

938:デフォルトの名無しさん
23/12/13 19:44:31.54 AZIMh9+DM.net
class Cake:
kind = souffle

939:デフォルトの名無しさん
23/12/13 23:02:45.82 scKOPc+Y0.net
Nuitkaとollvmをつかって難読化コンパイルできたけど需要ある?

940:デフォルトの名無しさん (ワッチョイ ff93-tASO)
23/12/14 07:16:50.48 VrbATqem0.net
Pythonって難読化意味ある?

941:デフォルトの名無しさん (ワッチョイ d7be-HI/Z)
23/12/14 09:15:34.70 6IAGuCnn0.net
Nuitka使ってる時点で解析しずらくなる

942:デフォルトの名無しさん (ワッチョイ f754-+saG)
23/12/14 09:26:18.20 mwsN68xN0.net
秘密鍵をコードに埋め込みたい時とか

943:あいうえお (ワッチョイ 63dd-wR7E)
23/12/16 11:39:26.79 sPGHYPZJ0.net BE:558199425-2BP(0)
sssp://img.5ch.net/ico/nida.gif
LINEのオプチャでつかえるBOT作りたいんやがどうやるん?
pythonでできると聞いた

944:デフォルトの名無しさん (アウアウアー Sa6e-ztdx)
23/12/16 11:50:39.29 1cAC/5Dza.net
アホみてぇな質問のしかた
少しはググれよ

945:デフォルトの名無しさん
23/12/16 13:20:03.76 ZMKoBGKMa.net
アホみたいって共感できるのすごいな
俺にはわからん。

946:デフォルトの名無しさん (ワッチョイ 5ecd-e8vO)
23/12/21 11:14:36.20 coKFs4JJ0.net
Nuitkaにnumpy plugin使うとwarningでるのが気になる…

947:デフォルトの名無しさん (ワッチョイ 1354-STda)
23/12/21 11:22:02.14 NZg9FfTP0.net
selenium使うと必ず謎のwarning出る

948:デフォルトの名無しさん
23/12/21 12:17:23.93 +bYKk0Px0.net
裏庭にwarningがでる

949:デフォルトの名無しさん (ワッチョイ 162a-AQ+F)
23/12/21 15:15:31.26 p8AR9zsG0.net
>>940
近頃の若者は「ワーニング」を「ウォーニング」とナマるから、通じんべ。

950:デフォルトの名無しさん (ワッチョイ e7be-DkQ9)
23/12/21 15:47:42.35 Sj73mPPq0.net
ここにはジジイしかいません

951:デフォルトの名無しさん (ワッチョイ 1601-aw5G)
23/12/21 18:01:43.42 Z95EBtZI0.net
pythonって遅くね?

952:デフォルトの名無しさん
23/12/21 19:57:43.69 qrcYLDTk0.net
pythonは遅いよ
モジュールは早いよ

953:デフォルトの名無しさん (ワッチョイ f705-yJWl)
23/12/21 21:58:50.34 JI0UYSEL0.net
ボトルネックだけRustとかで置き換えてやればいいんだろうね

Mojoならもっと楽に置き換えられるかな?

954:デフォルトの名無しさん (ワッチョイ 1e34-YOgt)
23/12/21 22:05:47.96 bObiKTRM0.net
本家がPyPyに乗り換えればええのに

955:デフォルトの名無しさん (ワッチョイ 1354-STda)
23/12/21 22:06:13.74 NZg9FfTP0.net
対話式に動かせる機能削ったらもっと高速化できたのに
今まで入ったことない分岐に入った瞬間にエラーで止まることもなくなるし

956:デフォルトの名無しさん
23/12/21 23:08:17.59 Y2jP7Dyr0.net
>>947
そんなに速くなるの?コンパイルがうまくなるとか?


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