Pythonのお勉強 Part71at TECH
Pythonのお勉強 Part71 - 暇つぶし2ch488:デフォルトの名無しさん
23/10/26 01:18:21.38 A8ieLS5R0.net
pyautoguiの資料を見ると「@」もしくは「`」の入力には対応してるみたいだけど出来ないなぁ
URLリンク(pyautogui.readthedocs.io)

489:デフォルトの名無しさん
23/10/26 01:31:00.09 A8ieLS5R0.net
エディタ上だとちゃんと反応してるけどブラウザ上では無理っぽい。求めてる挙動と違う

490:デフォルトの名無しさん (ワッチョイ 8ef5-fb7B)
23/10/26 08:20:18.04 ylE4orVc0.net
URLリンク(github.com)

491:デフォルトの名無しさん (ワッチョイ f93a-Pfhf)
23/10/26 08:50:54.81 rs0zBr0W0.net
>>476
恐ろしくてバージョンアップなんて出来ない

という訳でAnacondaに別環境をより新バージョンのpython入りで前環境のライブラリをファイルで読ませて入れていく

ryeだともっと簡単というがどうなんだろう

492:デフォルトの名無しさん (ワッチョイ ed5f-ANn9)
23/10/26 18:02:01.37 A8ieLS5R0.net
>>486
マジかぁ
pyautoguiの代わりに使えそうなpydirectinputもoem_3は送れないのでpythonの仕様っぽいのか
UWSCでは使えるのになんてこったい

493:デフォルトの名無しさん (ワッチョイ d689-fpqW)
23/10/26 18:39:57.46 WGT0kSWk0.net
こんだみたいに他人が作った環境なんて恐ろしくて使えんわ

494:デフォルトの名無しさん (スフッ Sd9a-JiYE)
23/10/26 19:26:31.99 ZcVI+/A3d.net
何をしにこのスレに来てるんだ?
心配なら機械語でイチから組めばいい
信頼性はピカイチだぞ

495:デフォルトの名無しさん (ワッチョイ cd68-6kM7)
23/10/27 07:10:55.34 95iydHFu0.net
なんに使うのか知らんが
pyautoguiが必要な状況に問題があると考えるべきで

496:デフォルトの名無しさん (テテンテンテン MMee-Komq)
23/10/27 07:33:51.20 p0bVtqbiM.net
みんなライブラリで楽しようとし過ぎだよね
ブラックボックスだから中を知らなくても使えるが
ひとたびハマれば無間地獄に陥るリスクを覚悟できていない人が多い
やはりプログラムはライブラリに頼らず自分でコツコツと作ってこそだよ

497:デフォルトの名無しさん (ワッチョイ 9154-7Q4E)
23/10/27 07:59:37.19 VEMgZlfJ0.net
pythonすら使わず、言語設�


498:vから自分でコツコツやるべき



499:デフォルトの名無しさん (ワッチョイ c1c6-Pfhf)
23/10/27 09:12:11.79 HdER+Kt30.net
重いconda
試練

500:デフォルトの名無しさん (ワッチョイ ce90-xUKY)
23/10/27 12:21:11.67 Tg/eVNRm0.net
ふるっ!

501:デフォルトの名無しさん (ワッチョイ f919-6kM7)
23/10/27 13:26:25.40 tmcCP2H+0.net
まぁ好んでconda使うヤツの気が知れん

502:デフォルトの名無しさん (ワッチョイ 610b-chvG)
23/10/28 13:34:13.06 QFK90jmU0.net
プロの開発者は、
日本人が作った、多言語バージョンマネージャーのanyenv を使う。
同様のツールに、asdf もある

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv

他には、Docker を使う

各言語で、使い方がバラバラなバージョンマネージャーはややこしい。
Python はvenv、Ruby はrbenv、JS はn とか

503:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/28 13:46:56.01 umtoXwly0.net
全部最新で問題なし

504:デフォルトの名無しさん
23/10/28 14:31:28.70 gVz4J4xYM.net
ライブラリりやツールをいろいろ入れてると
そのうちそれらの相性や設定の管理に要する手間が増えてきて
コードを書く時間が少なくなって詰む

505:デフォルトの名無しさん
23/10/28 15:27:38.08 kl2pZ05R0.net
>>492
ライブラリで楽したいって考える人が選ぶ言語がPythonだとおもうの

506:デフォルトの名無しさん
23/10/28 15:57:05.27 rtxFeUD30.net
>>492
ライブラリ作ってる人のが遥かに優秀だと思うw

507:デフォルトの名無しさん
23/10/28 19:05:48.03 DNCLCg0B0.net
>>500
でもpythonにだけ有って他の言語に無いライブラリって無いやん
類似や同等のものは最近の主要言語では存在するし

508:デフォルトの名無しさん
23/10/28 19:21:08.30 umtoXwly0.net
さすがpython、こんなもんまである
ということはよくあるけどな

509:デフォルトの名無しさん (ワッチョイ f37f-jgoi)
23/10/28 19:33:35.10 2CLqi+B00.net
Mojoにどれだけのライブラリ使えるようになるんだろうか

510:デフォルトの名無しさん (ワッチョイ 9b08-czOC)
23/10/28 20:52:21.49 G9+zV7us0.net
CPythonとABIも互換なんでしょ
ほぼ動くんちゃうかな

511:デフォルトの名無しさん (ワッチョイ 29d4-DD6R)
23/10/28 21:02:32.40 3CL4WWXh0.net
なんだかんだライブラリあるしpythonでGUIから作ってしまう…

512:デフォルトの名無しさん
23/10/29 17:29:52.83 yP8aR5sK0.net
現在、TwitterアナリティクスのJsonを
読みこもうとしていろいろ試行錯誤しています。
範囲の日時指定がエポックミリ秒だということは分かったので、
Time関数を使って、以下のようなモジュールを作りました。
import time
epoch_now = time.time()* 1000
epoch_yesterday = epoch_now - 60*60*24*8*1000
print (epoch_yesterday)
この場合、ステータスコードが500で帰ってきてしまい、
取得できるJson(account_stats.json)と取得できないJson(summary.json)が返ってきます。
そこで、取得できたJsonを見ると取得範囲のエポックミリ秒が
1697846400000~1698624000000
(2023 年 10 月 21 日 9:00:0000~2023 年 10 月 30 日 9:00:0000)
となっており、上記の値を突っ込むことでsummary.jsonも取得できました。
このような0時ちょうど(GMT+9)のエポックミリ秒を生成する手法は何かありますでしょうか?
切り上げも考えたのですが、どうもGMT+9でないと駄目なようです。

513:デフォルトの名無しさん
23/10/29 18:11:34.96 f808PyJm0.net
+9時間なんだからUTCって事やろ
基本から学んでこい
プログラム云々


514:じゃ無くて小学生の社会科で日付変更線習うやろ



515:デフォルトの名無しさん
23/10/29 18:34:57.27 bhsBnVvp0.net
>>507
from datetime import datetime
datetime(2023, 10, 21, 9).timestamp()
1697846400.0

516:デフォルトの名無しさん (ワッチョイ 9b7b-7bAz)
23/10/29 20:28:03.18 yP8aR5sK0.net
>>508
+9でJSTになっているのは理解していました。
書き方が悪く、伝わりにくくて申し訳ない

>>509
ありがとうございます。
この書き方だと、実行毎に日付の入れ直しがいりますよね・・?
こちらで強引に生成することで何とかなりそうです。
unix_start_time = datetime.datetime(year=1970, month=1, day=1, hour=0)
#今の日時取得
now_day = datetime.datetime.now()
#今日-1970/1/1 0:0:0の引き算
epoch_day = now_day - unix_start_time
now_epoch = epoch_day.days
#エポック秒計算
now_epoch_time = 60*60*24*now_epoch

また、Json形式でデータを引っ張ることに関してお聞きしたいのですが、
{
"html": ・・・・・(以下略)
"timeseries": {
"tweetviews": [
[ 1697846400000, 456 ],
[ 1697932800000, 466 ],
[ 1698451200000, 324 ]
],
}
のデータである場合、tweetviewsからうまくカンマ後の数字だけ引っ張ることは出来ますでしょうか?
print (json.dumps(data["timeseries"]["tweetviews"][-1], indent=4))
だと、[1698451200000,324]のような形で帰ってきてしまうので、324だけ抽出したいのですが・・・・

517:デフォルトの名無しさん (ワッチョイ 9beb-9em/)
23/10/29 21:03:20.54 1NQ6b9su0.net
エェェ・・・

518:デフォルトの名無しさん (ワッチョイ 29d4-dxLF)
23/10/29 21:25:12.23 DijUnBtx0.net
>>510
data["timeseries"]["tweetviews"][-1][-1]

519:デフォルトの名無しさん (ワッチョイ d1c5-FetF)
23/10/31 03:39:22.60 l7n6wkIv0.net
pycon炎上してんな

520:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/31 09:35:31.31 FC+25GL80.net
import re
str = r'\path\file.ext'
m = re.search(r'\\(.+?)\.ext', str)
print(m.groups()[0])

とやると、
path\file
が表示される
期待してるのはfileだけなのに
\の扱いがよく判らん

521:デフォルトの名無しさん (アウアウクー MM5d-iMS1)
23/10/31 10:02:30.01 n8WLlcxzM.net
運営関係者がお気持ち表明してたけど
日本語下手くそか?って思った

522:デフォルトの名無しさん (ワッチョイ eb7b-QDRn)
23/10/31 11:07:11.92 xbZAg47A0.net
>>514
\というより正規表現自体の話だね。
m = re.search(r'([^\\]*?)\.ext', str)

例題のパターンなら俺ならre.split(r'[\\\.]',str)するかな

523:デフォルトの名無しさん
23/10/31 11:21:19.22 UwJuUdWI0.net
os.path.basename(os.path.splitext(str)[0])
のがポータビリティあるし具体的
ext縛りしたいなら os.path.splitext(str)[1] をみる
正規表現の学習中だったならスルーして

524:デフォルトの名無しさん (ワッチョイ 1b01-Nf2/)
23/10/31 11:45:54.34 9f9EtR6w0.net
pathlibのpath.stemで
linux上でwindows用のpathを処理したいとかじゃなければ

525:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/31 12:08:29.70 FC+25GL80.net
現実の解はsplitしたけど
正規表現に\そのものって入れられないの?

526:デフォルトの名無しさん (スフッ Sd33-wFsA)
23/10/31 13:02:56.59 ZnsUTzemd.net
馬鹿には無理

527:デフォルトの名無しさん (ワッチョイ eb7b-QDRn)
23/10/31 13:10:09.60 xbZAg47A0.net
>>519
\が使えるから結果が表示されてる。正規表現の解釈が間違っているだけ
左から見ていくからre.search(r'\\(.+?)\.ext', str)だとpathも入る

re.search(r'([^\\]*?)\.ext', str)にすれば.extの直近の\以外の文字範囲になる

528:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/31 13:13:43.57 FC+25GL80.net
.+? が一番短い候補を探してくれる機能は右にしか効かないんだっけ?

529:デフォルトの名無しさん
23/10/31 14:12:22.23 uMAo/1En0.net
\までをgreedyにマッチさせればいい
re.search(r’.*\\(.+?)\.ext', str)
'\foo.extention\file.ext’みたいなのがあっても困らない

530:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/31 14:25:09.92 FC+25GL80.net
.* を足すだけで動いたんだな
右方向にしか探さないというルールを知らずによくこれまでやってこれたものだ

531:デフォルトの名無しさん (ワッチョイ f381-hdhi)
23/10/31 15:55:39.81 cJEQNzhb0.net
自分もこれ最短一致でいけると思ってた

532:デフォルトの名無しさん
23/10/31 18:39:41.68 Vsa18tIj0.net
正規表現できるってマジスゲ

533:デフォルトの名無しさん
23/10/31 19:01:40.80 hfhrZUTs0.net
覚えても使う機会がほとんどないからすぐに使い方を忘れる技術筆頭

534:デフォルトの名無しさん
23/10/31 19:10:21.32 UOgpZEfIM.net
普通コンピューター使ってたら検索するだろう
使う機会の問題じゃなくリテラシの問題なんじゃないの

535:デフォルトの名無しさん (ワッチョイ 136d-st1D)
23/10/31 20:39:25.02 XhCHDiQs0.net
最近はAIに作らせてる

536:デフォルトの名無しさん (オッペケ Srdd-hdhi)
23/10/31 21:23:14.85 AUqnNKgAr.net
普通に考えて使う機会が増えれば使い方を忘れることは減るだろう

537:デフォルトの名無しさん (テテンテンテン MM8b-7Hus)
23/10/31 21:26:59.61 v/vfxNC4M.net
機会があって使いどころを解ってないってのがリテラシ低いヤツ
機会がないわけじゃない

538:デフォルトの名無しさん (ワッチョイ 4954-ybhY)
23/10/31 21:40:49.77 FC+25GL80.net
pythonは正規表現を極力使うなという設計が見え隠れするけどな
startswithとかendswithとかstripとかでかなりの正規表現は使わなくて済む
一番ありそうなスクレイピングはbs4で何とかする
そうすると特殊な文字列解析をしないといけないケースは限られてきて、
適当なモジュールに追い出せば普段書くコードにimport reは不要になる

539:デフォルトの名無しさん
23/10/31 22:25:00.17 hSvVaef5r.net
使う機会の多い少ないなんか人それぞれだろうにそれをどうしてリテラシの問題にしたがるのか謎

540:デフォルトの名無しさん
23/10/31 23:40:18.15 nyF8SqcQ0.net
この業界そういう連中ばっかなのは今に始まったことじゃないでしょ

541:デフォルトの名無しさん
23/11/01 00:00:54.33 hFPjhJnyM.net
>>532
正規表現は極力使わないのが賢明だね
本番データで想定外のマッチングをして大事故につながるリスクを常にはらんでいる

542:デフォルトの名無しさん
23/11/01 16:47:42.46 7xIgv3ci0.net
PyCon APACでDNSクエリを公開する
@mipsparcがそれを指摘する
運営が謝罪
URLリンク(pyconjp.blogspot.com)
何でこれ炎上した上に指摘した人間がツイ消しまでしてんの

543:デフォルトの名無しさん
23/11/01 17:38:35.61 7xIgv3ci0.net
URLリンク(nukalumix.hateblo.jp)
通信の秘密について解説してるブログ

544:デフォルトの名無しさん
23/11/01 18:46:55.26 SK5NEpr2a.net
>>536
そいつが騒ぎ立てて目立とうとしただけだろ
ただ目立つことが目的だから訴訟とかややこしいことになる前に消したのだろう

545:デフォルトの名無しさん
23/11/02 08:38:38.80 8JdTnQ430.net
犯罪を指摘した人に対して訴訟とか言い出すやつは頭おかしいよ
意図的な漏洩なので刑事罰事案

546:デフォルトの名無しさん
23/11/02 10:36:45.79 VbnyJw9p0.net
きっかけとなった投稿みつかった
URLリンク(twitter.com)
>>538
一人が騒ぎ立ててあそこまで炎上させられるのなら、それはそれですごい
(deleted an unsolicited ad)

547:デフォルトの名無しさん
23/11/02 10:43:13.74 VbnyJw9p0.net
というか、投降者の炎上体質は否定しないけど、それ以外にも要素があった?

548:デフォルトの名無しさん
23/11/02 12:30:17.43 obP8ILkg0.net
>>540
いや1人だぞ
そいつに釣られて色んな奴らが反応したせいでここまでおかしくなったのよ
ネットあるあるだ
みんなで無視しとけばよかった

549:デフォルトの名無しさん
23/11/02 12:41:38.15 +5aa8DEY0.net
これを無視はないでしょ
運営へすぐ連絡してくれる味方が少なかったのが敗因

550:デフォルトの名無しさん
23/11/02 12:57:36.33 rfHazXJX0.net
ほーん?
味方が少なかった時点で色々と察してしまうなぁ

551:デフォルトの名無しさん
23/11/02 13:23:22.21 obP8ILkg0.net
PyConってコミュニティっていう感じじゃないのよね
会社に近い
日本で唯一めちゃくちゃ儲かってるし
組織的にやってる
だから対応も組織的になってる
こういう「無敵の人」が暴れた時に弱いよね

552:デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
23/11/02 13:47:53.28 VbnyJw9p0.net
>>542
無視はやべーだろ

>>543
もうツイート消してるからはっきりとわからんけど、運営にも自分で伝えてたみたいな事言ってなかったっけ

553:デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
23/11/02 14:04:28.39 VbnyJw9p0.net
PyCon APAC 2023におけるNOCコンテンツに関するご指摘について
URLリンク(pyconjp.blogspot.com)
発表きたな

554:デフォルトの名無しさん (アウアウウー Sad5-6ZD3)
23/11/02 14:04:44.14 opKyr2X/a.net
無視でいい
少なくとも外野は
運営が気が付かない訳ないんだからな

555:デフォルトの名無しさん
23/11/02 14:26:36.15 VbnyJw9p0.net
>>548
>前日の機構変更により、サブドメインを除いたドメイン名のみ表示に変更
指摘されてすぐ行った対応がこれで、明らかに通信の秘密の侵害を認識できてないから
今回外野が騒なかったらこの対応のまま行ってたと思う

556:デフォルトの名無しさん
23/11/02 14:52:54.35 opKyr2X/a.net
>>549
通信の秘密の侵害になるか?ははっきり言えないと思われ
弁護士の見解もはっきりしてないし実際は裁判しないと決着がつかない部類のものだよ
特に今回のようなケースはね
外野が騒ぎ立てなければここまでプチ炎上することもなかったのだ

557:デフォルトの名無しさん (ワッチョイ 137e-hdhi)
23/11/02 15:25:23.77 vtDg34mi0.net
>>545
>同様に、本件について問題提起をくださったコミュニティの皆様への個人攻撃・誹謗中傷等
>またはこれに類する行為もお控えいただければ幸いです。
だってさ

558:デフォルトの名無しさん (ワッチョイ d16a-ooUb)
23/11/02 16:40:41.85 ORpvM4EQ0.net
>通信の秘密の侵害になるか?ははっきり言えないと思われ
争いの余地なく明らかな侵害
これで侵害してないとかいいだしたら法律いらない
争えるのは刑事罰の対象者と程度くらい
いい弁護士が見つかるといいね

559:デフォルトの名無しさん (ワッチョイ 11f0-6ZD3)
23/11/02 16:42:58.23 obP8ILkg0.net
>>552
君は弁護士?
弁護士じゃないなら偉そうに断定しない方が良いよ
素人なんだから

560:デフォルトの名無しさん (ワッチョイ d16a-ooUb)
23/11/02 16:56:15.37 ORpvM4EQ0.net
脊髄反射ww
よほど都合が悪いんだね
前科付くことになるから仕方ないのかもしれないけど下手な沈静化図ろうとすると逆効果だよ

これ今は警察も見て見ぬふりして動かないかもしれないけどあんまりいい加減なこと言ってると告訴する人出てくるよ

561:デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
23/11/02 17:26:31.97 VbnyJw9p0.net
さすがにここで通信の秘密について議論するつもりはないわ

562:デフォルトの名無しさん (ワッチョイ eb89-mMeg)
23/11/02 18:16:27.99 DKOWPN540.net
議論したところでなんの生産性もない話題(裁判所の匙加減しだいなので、俺たちに介入する余地は無く無意味なのでは)

563:デフォルトの名無しさん (ワッチョイ 137e-hdhi)
23/11/02 18:49:26.57 vtDg34mi0.net
運営が>>547
「電気通信事業者法または憲法が定める通信の秘密の侵害に当たり得る行為だと考えます。」
「少なくとも不適切な行為であったと考えます。」
等々と表明してるんだから話はもう終わってる

564:デフォルトの名無しさん (ワッチョイ b1f3-zW/F)
23/11/02 20:02:16.98 VbnyJw9p0.net
URLリンク(www.youtube.com)
PyCon JP TV #34: PyCon APAC 2023振り返り

触れるかな

565:デフォルトの名無しさん
23/11/02 22:29:18.46 DVTQzfgC0.net
Pythonの言語の学習におすすめのサイトはありますか?
リファレンス的に使えるHP や ライブラリの使い方のHP
ググれば出ますが、おすすめあれば教えてください。

566:デフォルトの名無しさん
23/11/02 22:35:51.46 Z5mhCUTh0.net
運営に争う姿勢がないから略式起訴で裁判にはならない
あとは警察検察の匙加減
罪を認めてるんなら自首したほうが量刑は軽くなるが誰が自首すべきか判断が難しいところ
責任者一人の首を差し出してもスタッフ全員守れるとは限らないからね

567:デフォルトの名無しさん (アウアウウー Sad5-g+2W)
23/11/03 08:10:17.46 rVBPlXQLa.net
つまりここで騒げば騒ぐほど5chの行く末が危うくなると
だから無視しろと?

568:デフォルトの名無しさん (ワッチョイ 295a-9em/)
23/11/03 12:01:30.37 pvnUPuXN0.net
>>547でDNSクエリを晒した動機に触れてなかったり担当がボランティアだと強調してるあたりに批判を和らげたい意図を感じる

それにコメントに書かれてるようにイベント開始前に指摘があったことや運営関係者が告発者を攻撃していたことが事実なら不法行為に対する償いとは別に組織としての謝罪と処分が必要だろう

569:デフォルトの名無しさん (ワッチョイ 1346-eG5z)
23/11/03 14:13:34.80 135shnGH0.net
>>559
docs.python.org/ja/3/tutorial/index.html

570:デフォルトの名無しさん
23/11/05 02:01:03.25 SrPBWcHK0.net
初めてPython触る
VS2022に環境整えたんだけどGUIアプリ作ろうとしても新しいプロジェクトに出てこないんだけどVS2022では作れないってこと?

571:デフォルトの名無しさん
23/11/05 02:32:06.16 WVQonGtV0.net
URLリンク(learn.microsoft.com)
雛形は用意されてない模様
Python用のGUIライブラリを自分で選定して構築する必要がある
ネイティブアプリ書けないから当然なんだけどもVSである必要がほぼないね

572:デフォルトの名無しさん (ワッチョイ 31a7-lNqW)
23/11/05 04:19:08.15 nQmmBj7n0.net
tkinterはネイティブじゃないか?

573:デフォルトの名無しさん (ワッチョイ 4690-0SSA)
23/11/05 06:39:11.16 GNbgJagA0.net
>>564
GUIアプリはPythonでも作成ができますが、C#とかで作成した方がいいと思いますよ。
仕事でPythonを使用することが要件であれば仕方ありませんが。(そもそも、そんな要件を出す人はあんまりいないと思うし)

PythonはPythonが得意としていることに使用するのをお勧めします。

574:デフォルトの名無しさん (ワッチョイ 1949-MfmC)
23/11/05 07:47:07.85 ixjDKXsm0.net
C#はGUI作成なら一番か

Javaも悪くはない
JavascriptのElectronという手もあるがかさ張る

RustのTauriは良さげだがRustの学習コストが高い
VC++のほうがマシかもな

575:デフォルトの名無しさん
23/11/05 10:19:39.87 ol9bMVcca.net
wxPython覚えるとwxWidgetsも使えるようになって
お得ですよ

576:デフォルトの名無しさん
23/11/05 10:25:35.56 RWNjRicl0.net
コンソールから何か打ち込んで1行ずつ実行とかやったことないし、
どうせ長いスクリプト書いてる最中に活用なんかできないんだから、
初心者の最初のステップや解説サイト書く人が助かるだけ
そんなの不可能な代わりにコンパイル言語で高速な方が有り難い

577:デフォルトの名無しさん
23/11/05 11:59:21.94 LMwCZi3CM.net
各々最適があるのだから
好きにすれば良い
押し付けがしく言う必要はない

578:デフォルトの名無しさん
23/11/05 16:32:32.19 NcRV8IfI0.net
Python/Qtで問題ない。

579:デフォルトの名無しさん (ワッチョイ 6dd4-ZTan)
23/11/05 19:35:21.75 i4+JFogG0.net
PySideでやってるな
触ってる人すくなそうだけどQtQuickの方も触りだした

580:デフォルトの名無しさん
23/11/06 09:12:57.41 tszvNtiA0.net
jpgファイルをドラッグアンドドロップしたら
処理するってつくりたいんだけど
winだとコマンドプロンプト経由じゃないとダメ?
PYファイルじゃむり?

581:デフォルトの名無しさん
23/11/06 10:15:00.39 48qtdwXca.net
python(。えxぇ)じゃなくて
pythonw(。えxぇ)の方を使う

582:デフォルトの名無しさん (ワッチョイ 2e89-cBWW)
23/11/06 15:06:07.26 IA199WY/0.net
ちんこ痒いの病気かもしれん

583:デフォルトの名無しさん (ワッチョイ e95f-ZTan)
23/11/08 12:54:07.78 EPzAmPS60.net
Pythonは対話型で学習しやすいのでPythonを学ぶというよりはプログラム初学に向いてる
コンパイルせず即実行できるのが便利なだけ…かな
京都大学では1回生の学生向けにプログラムの授業を行ってるが
X=X+1を方程式と勘違いしてこの方程式は間違ってるとかどうやって解くの?という学生が多い
プログラムでは変数として使うという風に説明する。Pythonならたった数行だけでどういうものかわかるのでやはり初学者向けといえる

584:デフォルトの名無しさん (ワッチョイ c551-ZTan)
23/11/08 13:26:28.57 82yhyslz0.net
=を本来の意味と違う意味で使ってるんだからそりゃ間違ってると思うわな
プログラム言語作ったやつが悪い

585:デフォルトの名無しさん
23/11/08 13:31:21.96 M+eAhKpj0.net
lispのように
(set a 3)
の方がよかったか?

586:デフォルトの名無しさん
23/11/08 13:35:14.32 o1wz1QuQa.net
CS知ってればそんな勘違いするはずないんだけどな
数式をメタファーとして用いてるが関数型言語でもない言語は数学とは全く違うってことが理解できてない
CSは中学生から必要

587:デフォルトの名無しさん (ワッチョイ 4910-ZTan)
23/11/08 15:55:32.78 0RzzgATi0.net
>>577
その話題のおかげで久しぶりにPythonを触ってみようという気になった。
例えば2^16倍精度浮動小数点数の最大値を計算するのに、Python3のDecimalではEmaxを最大にしても桁あふれするが、
Mpmathを使う以外にもPython2のDecimalが使える。
そのDecimalの書き方でもともとやっていた書き方よりも短く工夫できた。

588:デフォルトの名無しさん
23/11/08 17:45:04.49 EFPFqmm90.net
Incoぽ?ち

589:デフォルトの名無しさん
23/11/08 22:59:11.98 EduYhT2N0.net
>>574
Ruby で説明すると、
デスクトップにショートカットを作って、
例えば、コマンドプロンプトでRubyを起動するなら、リンク先を以下のように設定する
C:\Windows\System32\cmd@exe /k "ruby C:/Users/Owner/Documents/a.rb"
ただし、@はドットに変えて下さい
コマンドプロンプトを経由しない場合は、
直接Rubyの実行ファイルがある絶対パスを書く
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb
これで、Drag & Drop したファイルパスが、
a.rb の中で、ARGV[ 0 ] に入ってくる

590:デフォルトの名無しさん
23/11/08 23:01:59.61 rOfRZ5Bf0.net
Goだと?

591:デフォルトの名無しさん
23/11/08 23:05:05.88 hH3k8goZ0.net
関連?スレか
「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態 ★3 [少考さん★]
スレリンク(newsplus板)

592:デフォルトの名無しさん
23/11/08 23:10:06.00 rOfRZ5Bf0.net
=を等しいという意味だとしても、1+1=2を無批判に受け入れるのはおかしい
1+1=1+1は正しい
1+1と2は明らかに違うもの

593:デフォルトの名無しさん
23/11/08 23:26:13.31 HvIjZsS8d.net
Python世界だともう少しややこしく
確か256以下は同じになるんじゃなかった?
2=1+1は正しい
2000=1000+1000は間違い
とかなんとか

594:デフォルトの名無しさん
23/11/08 23:29:18.59 lU2++3tG0.net
やはりPythonでも代入は:=にすべきだったな

595:デフォルトの名無しさん (オイコラミネオ MM75-H91/)
23/11/09 05:37:23.81 u7A0OM5bM.net
>>574
送るからも余裕
argparseが役に立った

596:デフォルトの名無しさん (オイコラミネオ MM75-H91/)
23/11/09 05:40:30.95 u7A0OM5bM.net
>>585
分からないんじゃなくて知らないだけだな

597:デフォルトの名無しさん
23/11/09 07:11:40.89 i4b+P9OO0.net
=使わずに:=だけ使っても書ける?

598:デフォルトの名無しさん
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の値を自分で変更してる


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