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
そんなに速くなるの?コンパイルがうまくなるとか?
957:デフォルトの名無しさん
23/12/22 00:42:37.84 wOpI+TvL0.net
VSCode の拡張機能・Code Runner は、
右クリックメニューから、選択したコード、またはファイル全体を実行する
設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {
"javascript": "node",
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"python": "python -u",
"ruby": "ruby",
ここで、pythonには、-u が付いている。
多分これが無いと、すぐに表示されない。
標準出力がキャッシュされるのかも
958:デフォルトの名無しさん
23/12/22 00:49:19.70 +37DXQP6H.net
>>947
冗談じゃない
IDE嫌いの者にとってインタラクティブモードは生命線だ
959:デフォルトの名無しさん
23/12/22 01:28:54.44 CdWyrZLV0.net
>>947
> 今まで入ったことない分岐に入った瞬間にエラーで止まることもなくなるし
どゆこと?
960:デフォルトの名無しさん
23/12/23 14:30:00.14 +yR1xAXI0.net
split('\t')で取り込んでいちいちintするのも面倒なので、
map(int, split)にしたい
でも空ですらエラーにされる
想定外が来たらNullでいいから、楽に処理できないもんか
961:デフォルトの名無しさん
23/12/23 14:36:35.98 cGlPuzRM0.net
>>947
いやREPLから実行してもインタプリタ本体は同じだから
962:デフォルトの名無しさん
23/12/23 16:44:24.69 v4dsWN6K0.net
>>952
[int(x) for x in s.split('\t') if x]
or
[int(x) if x else None for x in s.split('\t')]
or
def to_int(s):
try:
return int(s)
except ValueError:
return None
map(to_int, s.split('\t')))
Pythonはパイプライン処理とは相性が悪いので
無理せずおとなしくPython風の書き方を従っておいたほうがベター
963:デフォルトの名無しさん
23/12/23 17:10:46.05 +yR1xAXI0.net
やっぱり自分用intを作るのが正解か
964:デフォルトの名無しさん
23/12/23 17:11:30.40 MC2+Dwkk0.net
そんなバカな発想やめな
965:デフォルトの名無しさん
23/12/23 17:50:31.60 v4dsWN6K0.net
pandasならそれなりによろしくやってくれる
converterも指定できるので自分でmapする必要はない
s = "111\t\t222\t\t333\t\t000"
pd.read_csv(StringIO(s), header=None, sep='\t')
Out:
0 1 2 3 4 5 6
0 111 NaN 222 NaN 333 NaN 0
966:デフォルトの名無しさん
23/12/23 17:58:11.43 cGlPuzRM0.net
>>952
モナドの出番だな
967:デフォルトの名無しさん
23/12/23 18:04:54.64 cGlPuzRM0.net
def maybe_int(value):
try:
return Just(int(value))
except ValueError:
return Nothing()
class Just:
def __init__(self, value):
self.value = value
def bind(self, func):
return func(self.value)
def __repr__(self):
return f"Just({self.value})"
class Nothing:
def bind(self, func):
return self
def __repr__(self):
return "Nothing()"
# 例としてのタブ区切りの文字列
input_string = "123\t456\t\t789"
# モナド風の変換
result = [maybe_int(x) for x in input_string.split('\t')]
# 結果の確認
print(result)
968:デフォルトの名無しさん
23/12/23 18:05:26.31 cGlPuzRM0.net
インデントおかしくなったスマソ
969:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:36:53.20 /V7lYSgm0.net
Haskellを使いたい願いながらPythonを使わざるを得ない哀れな人間が書きそうなコード見て笑っちゃった
970:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:58:21.69 /V7lYSgm0.net
しかもこれモナドというよりはファンクターじゃね
971:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 20:01:20.65 /V7lYSgm0.net
あ、いやファクターではなさそう
972:デフォルトの名無しさん (ワッチョイ 031d-tFpX)
23/12/23 20:57:15.51 cy6wCCec0.net
result = [int(i) if type(i) == int else None for i in s.split('¥t')]
これでいけんか?
973:デフォルトの名無しさん (ワッチョイ f354-NbWU)
23/12/23 21:21:39.45 +yR1xAXI0.net
いけるかどうかで言えば、lambdaで書いてもいけるんだろうけど、
いちいちそんなこと書きたくない
974:デフォルトの名無しさん (ワッチョイ 6f01-sfQN)
23/12/23 23:12:44.45 WlHvEb3t0.net
>>964
strなのでtype(i) == intはFalse
975:デフォルトの名無しさん
23/12/24 05:47:20.20 jOD7RUSOM.net
モナドってなんなの?
数学系の人が書いたHaskellの入門書読んだけど写像!写像!ばっかでめんどくさくなっちゃった
あれ本当に便利なの?
976:デフォルトの名無しさん
23/12/24 06:03:40.69 2RNZTzrB0.net
モナドはRustでも採用されとらんし、HaskellでもIOモナド以外であんま使われてる印象ないし、神経質なオタクがIOすら数学的にしたくて入れたような印象があるな
それはそうと写像とかの数学概念は普通に筋の良い抽象化で便利だとは思う
977:デフォルトの名無しさん
23/12/24 08:20:03.60 Cma5/cXc0.net
内包表記も数学から持ってきてるな
978:デフォルトの名無しさん (ワッチョイ 03de-tFpX)
23/12/24 11:28:16.67 r1BGz2rf0.net
>>966
ああそうかsplit後はstrか
ならtypeじゃなくてre.fullmatchならいけるでしょ
979:デフォルトの名無しさん
23/12/24 13:10:11.85 +alFE5Zb0.net
>>970
いけるけど記号を考慮すると面倒なのでtry-exceptしたほうが簡単だよ
int(1_000) => 1000
int(1__000) => ValueError
int(1_0_0_0) => 1000
int(1_0_0_0_) => ValueError
980:デフォルトの名無しさん
23/12/25 04:22:31.09 1pIswkAR0.net
Python使ったデータサイエンス系の開発環境を会社の事情でLinuxからWindowsに移行したんだけど
ファイルやフォルダへのショートカット(.lnk)をPythonで直接的に扱えないことに今更気づいた
Pythonのせいではないとはいえ死ぬほど不便なのでなんとかしたい
WshShortcutを使ってごちょごちょすればアクセスできるけどそんな面倒なことしてられないし
環境がWindowsの人って普段どうしてるの?
ショートカット使うのはやめてmklinkコマンドでシンボリックリンク張る感じ?
でもシンボリックリンク自体がWindowsだとあまり文化として一般的ではないと思う(たとえギークレベルでも)
981:デフォルトの名無しさん
23/12/25 05:28:22.15 fZmNQMgb0.net
漏れは、デスクトップにショートカットを作って、
Windows 10, WSL2 でLinux・Ubuntu を起動して、
VSCode でRuby on Rails をやってるけど
リンク先
C:\Windows\System32\wsl.exe code .
作業フォルダ
\\wsl$\Ubuntu-18.04\home\<ユーザー名>\project
982:デフォルトの名無しさん (スップ Sd1f-AH//)
23/12/25 12:27:50.83 w/c7nza5d.net
Pythonに限った話でなくプログラム言語全般の話で恐縮なのですが、変数名などの命名規則で先頭小文字のキャメルケースが使われることも良くあると思います。(先頭大文字パターンもあるのは認識しています)
この「先頭は小文字」というのは、見た目的に読みやすい、とかそういう理由なのでしょうか?
例えば、ある変数 productCode があったとして、「productCode」をチェックする関数だと
checkProductCode()
みたいな感じになり、Productの先頭が大文字になります。
同じものを指してるのに、先頭が小文字大文字が混在してなんかモヤモヤします。
こういうのはあまり気にならないものなのでしょうか?
983:デフォルトの名無しさん (ワッチョイ 639a-l39z)
23/12/25 12:46:19.39 HDhwTf8w0.net
productCodeはProductCodeのインスタンスが入ってる変数
checkProductCodeは特定のインスタンスではなくProductCodeに対する関数
というふうにわざわざ考えたりしないくらいには気にならない
984:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/25 13:01:34.08 bUfbLUPY0.net
先頭小文字のCamelCaseみたいなキモい書き方Pythonには存在せんだろ
なんでよりによってPythonスレで聞くんだ
985:デフォルトの名無しさん
23/12/25 13:45:24.80 Ebjaalbb0.net
移植する時に直すの面倒でキャメルケースが残ることもある
区切り部分を大文字にしてるんだから先頭は小文字が合理的だけど、
世の中一般では固有名詞に使うことが多いので先頭も大文字になる
pythonでクラス名や例外名が大文字始まりのキャメルケース推奨なのは、
どういう経緯があるんだろう
986:デフォルトの名無しさん
23/12/25 13:46:50.50 KMEA0AVf0.net
>>974
先頭大文字だとクラスを指してるように勘違いしちゃうからとかかもしれん
987:デフォルトの名無しさん
23/12/25 13:52:36.73 93zueivl0.net
>>972
win32comとか使えばできるっしょ
988:デフォルトの名無しさん
23/12/25 14:10:07.28 4YZcJ8/J0.net
初心者が今からこの言語をやりたくなったらこっちをやれ
Perl→PHP+WordpressかPythonやれ
Ruby→絶対Pythonに引っ越すからPythonやれ
Fortran、Matlab、Julia、R、Processing→自分の専門領域でメジャーなものに従え、なければPython使え
Java、VB.net→これ勧めるやつは人売りだから逃げろ、プライベートならC#やれ
Lisp、C→日曜日にやるならOK
VBA→平日にやるならOK
C++→Rustやれ
Rust→Cのあとにやれ
Javascript、Typescript→やるならWebで学ぶのに慣れろ、本はすでに古いかすぐ古くなる
Go→利点がわかるならやれ、なんとなくならC#かPythonにしとけ
Haskell、O'caml、Scala→5年後くらいにイキりたくなったらやれ
SQL、正規表現→できて当たり前だからやっとけ
989:デフォルトの名無しさん
23/12/25 14:31:05.96 77r75M+dM.net
>Lisp、C→日曜日にやるならOK
>VBA→平日にやるならOK
>C++→Rustやれ
>Rust→Cのあとにやれ
おいw
990:デフォルトの名無しさん
23/12/25 14:49:35.59 93zueivl0.net
>>980
C#に関する発言だけは的外れ
991:デフォルトの名無しさん
23/12/25 14:50:59.66 4YZcJ8/J0.net
>>982
マジか
992:デフォルトの名無しさん
23/12/25 15:00:57.01 Ebjaalbb0.net
C#を勧める人は筋トレ勧める人に似てる
993:デフォルトの名無しさん
23/12/25 15:29:16.14 4Z5LCY+60.net
F#で書きたいけど仕方なくC#で妥協してる
994:デフォルトの名無しさん
23/12/25 20:56:30.50 1pIswkAR0.net
>>973
WSLか、あれはいいものだ・・・
でも残念ながらLinux扱いされて社内承認がクッソ面倒な上にホストで動いてるBox Driveへのアクセスができなくて断念した
>>979
できるけど、なんでこんなことしなきゃならんのって気持ちが湧いてきてしまう
慣れれば何も思わなくなるのかな
こりゃもう普通にLinux使用許可もらうよう動いたほうが早いかな
995:デフォルトの名無しさん
23/12/25 22:38:56.44 WF81hfK00.net
どうでもいいことだが
オナ禁したらめちゃ勉強捗るのな
996:デフォルトの名無しさん
23/12/26 07:38:40.27 3bMmKL6bH.net
>>972
普通にパスを指定するだけだが…
ショートカットというのは人が手でファイル操作する時に使うものだろ
997:デフォルトの名無しさん
23/12/26 10:18:42.86 a0/8HJXg0.net
こういう意見が平然と出て来るあたりが、いかにもMS-Windowsだなあという感じする。
>>988
> ショートカットというのは人が手でファイル操作する時に使うものだろ
998:デフォルトの名無しさん
23/12/26 10:34:36.79 3bMmKL6bH.net
>>989
平然も何も、Windowsのショートカットは人がマウスでWクリックするために用意されている機能だろ
999:デフォルトの名無しさん
23/12/26 11:02:02.09 kpi70gTP0.net
Explorerで整理したファイル郡に対して処理したいんでしょ?
OS標準のデスクトップなんだし
自分ではそんなことしないが想像できる範囲の話やん
1000:デフォルトの名無しさん
23/12/26 13:05:12.49 i/USyFaH0.net
マウント取りたいアホしかいない地獄のようなスレ
1001:デフォルトの名無しさん
23/12/26 13:48:05.30 a0/8HJXg0.net
# The Thread from Hell !
from hell import thread
1002:デフォルトの名無しさん
23/12/26 14:13:43.15 HS5XBp93a.net
>>991
まずExplorerを捨てろ
1003:デフォルトの名無しさん
23/12/26 21:26:30.09 kk4yj+FYM.net
ショートカットはシンボリックリンクとは違う
1004:デフォルトの名無しさん
23/12/27 04:00:17.75 TJvzVpkY0.net
小学4・5年生にPython早いですかね?
スクラッチやるよりturtle極めさせようと思ってるんだが
間違ってますかね?
1005:デフォルトの名無しさん (ワッチョイ 53a7-tFpX)
23/12/27 06:26:47.20 U0sabDMs0.net
>>996
何を懸念してるのかさっぱりわからん
1006:デフォルトの名無しさん (JP 0H7f-5bsa)
23/12/27 06:43:09.18 axeHJPf5H.net
>>996
子供の頃からプログラミングなんかさせたら引き籠りニートになっちまうぞ
その時間で勉学をきっちりさせて東大か京大に行かせとけ
1007:デフォルトの名無しさん (ワッチョイ 8f87-6eTB)
23/12/27 07:00:37.83 oR+jfmx80.net
pythonは初心者なんで詳しい説明はできんが基本的なアルゴリズムの考え方は後々役に立つし本人の興味さえあれば年齢は関係無いと思う、俺は早いほうがいいと思う
1008:デフォルトの名無しさん (ワッチョイ bf4b-qNuo)
23/12/27 07:39:33.71 TJvzVpkY0.net
レスありがとう
ゲームクリエイターになりたいっていうんだけど、
テキストプログラミングやる前に、
ビジュアルプログラミングやる方が良いって
散々言われてるし、小学校中学校ではScratch教えてるっぽいから
どうしようかなって悩んでる
勉強させるほうが良いってのはわかる
個人ではいつでもゲーム作れるが
任天堂には勉強してないと入れないからな
1009:デフォルトの名無しさん
23/12/27 08:14:26.20 PW7pbSu60.net
素質があれば言語選ばずなんでもいけるだろ
選ばないと出来ないなら素質が無いんだよ
1010:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 97日 23時間 0分 45秒
1011:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています