[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/23 11:57 / Filesize : 297 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直

545 名前:デフォルトの名無しさん [2022/03/23(水) 18:03:21.12 ID:cM5bvOqV.net]
あーなるほど、そういう感じなんですね
わかりました。ありがとうございます

なんか要素へリンクしてて
l = bbox[0]
print(l) # 0
l = 20
print(bbox[0]) # 20
みたいな感じになると思ってました

bboxクラス作ります

546 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 19:08:25.09 ID:OkzK5R+n.net]
>>537
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします

547 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 13:39:47.22 ID:uOX7ULt1.net]
openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう
エラメでぐぐってもイマイチよくわからなかった

548 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 14:33:26.73 ID:9HZfMhVl.net]
chart2=chart1
とかやったりするとそうなるかも

複数チャート作る時に前のチャートを使いまわしたりしてない?

549 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 15:27:53.71 ID:uOX7ULt1.net]
使い回しはしてましたね…
グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた
グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか

550 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 06:26:35.95 ID:m+SAsqZm.net]
ダメってわけじゃないけど気を付けないといけないポイントがある
チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う

551 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 11:27:01.85 ID:qLHTxQhk.net]
配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か
pyinstallerでまとめるくらいしか手は無いのかな。
どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。

552 名前:デフォルトの名無しさん [2022/03/27(日) 17:22:26.41 ID:nYvTQ02C.net]
質問なんです
GIMPのpython使っています
# -*- coding: utf-8 -*-
import glob,os,re
file = glob.glob(‘C:\Users\name\Desktop\*.jpg’)
で取り出したファイル名を使ってファイルを開こうとすると
ファイル名が日本語の場合文字化けしてファイルが開けませんでした。
文字化けを直すにはどうしたら良いのでしょうか?
print(file)した時に文字化け表示される文字は
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'
こんな感じです
よろしくおねがいします

553 名前:デフォルトの名無しさん [2022/03/27(日) 17:44:38.62 ID:p/i0WnQH.net]
>>544
>ファイルが開けませんでした。
この時どんなエラーがでましたか?



554 名前:544 [2022/03/27(日) 18:47:55.50 ID:nYvTQ02C.net]
>>545
RuntimeError: 'C:\Users\name\Desktop\�A���G�N�`���b�g�Ή�.JPG' を開いて読み込むことができません。
Invalid argument

これと詳細な情報のところに
Traceback (most recent call last):
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 740, in response
dialog.res = run_script(params)
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 361, in run_script
return apply(function, params)
File "C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins\add_aaaaaaaa.py", line 11, in aaaaaaa

555 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 18:48:39.52 ID:px6SVueC.net]
>>544
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'.decode("mbcs")

556 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 19:01:26.37 ID:ayYjDlX4.net]
>>544
バイナリでglobしてバイナリでopenしてみれば?
cp932がutf8の文字列として解釈されてるのが原因だと思う
glob(b'*.jpg')

557 名前:544 [2022/03/27(日) 19:04:53.96 ID:nYvTQ02C.net]
>>547
ありがとうございます!
無事ファイルが開けてプラグインが完成しました!!

558 名前:544 [2022/03/27(日) 20:00:09.87 ID:nYvTQ02C.net]
もう一つ質問で悪いのですが
これもGIMPです
数字を文字列にして文章とつなげているのですが
その半角数字を全角数字にしようとしましたが
エラーが出ます
どうしたらいいのでしょうか?
コードを書くと書き込めなかったので
スクリーンショットを貼ります
https://imgur.com/a/F2J1Ksw

エラーはこちらです
https://imgur.com/a/xv8Hcrt

559 名前:デフォルトの名無しさん [2022/03/27(日) 20:31:27.21 ID:p/i0WnQH.net]
>>550
https://ideone.com/
再現ができないのでここにコードを書いて、そのリンクを貼ってください
コードを書いて、Runボタンを押すとリンクが生成されます

こんな感じで
https://ideone.com/UGO5O1

560 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 20:34:15.47 ID:px6SVueC.net]
>>550
gimp2にバンドルされてるpythonは2.7なのでそのコードは使えないね

561 名前:デフォルトの名無しさん [2022/03/27(日) 20:35:54.32 ID:p/i0WnQH.net]
Python2か

562 名前:544 [2022/03/27(日) 21:00:21.01 ID:nYvTQ02C.net]
>>551
こうですか?
https://ideone.com/cKytn2

>>552
python2の場合はどうすればいいですか?

563 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 22:12:37.46 ID:GW1PkVkn.net]
python2ってなんだよと思ったら、gimpって開発の勢いがないソフトだったんだな

2007年10月24日 - GIMP 2.4.0
2008年10月1日 - GIMP 2.6.0
2012年5月3日 - GIMP 2.8.0
2018年4月27日 - GIMP 2.10.0
今は2.10.30

Python 3.0は2008年12月3日



564 名前:デフォルトの名無しさん [2022/03/27(日) 22:21:41.23 ID:p/i0WnQH.net]
>>554
https://ideone.com/xemuRV
これでどうですか

565 名前:544 [2022/03/27(日) 22:34:09.27 ID:nYvTQ02C.net]
たびたびすいません、GIMPのモノです。
glob.globが治っていたのが勘違いで
今度はアドレスに日本語が入ってると何も検索してくれなくなりました
どうしたらいいですか?
>>> glob.glob(b"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg")
[]
>>> glob.glob("C:\\Users\\name\\Desktop\\新しい\\*.jpg".decode("mbcs"))
[]
>>556
ありがとうございます!
無事小文字から大文字になりました

566 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 08:06:48.20 ID:bggr0gZp.net]
書き間違いだろ

「新しいフォルダー」と「新しい」のどちらかが、存在しないのでは?

567 名前:デフォルトの名無しさん [2022/03/28(月) 11:24:31.81 ID:xKLASzt7.net]
久しぶりにPython2触ってたら痒くなってきた

568 名前:デフォルトの名無しさん [2022/03/28(月) 17:43:20.16 ID:FxPljt62.net]
>>558
すいません地中で名前を変えたので
紛らわしくなりました
年のためもう一度試してみたのですが
やはりフォルダー内を検索してくれませんでした

569 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 17:54:40.03 ID:rI7b9so+.net]
解決案じゃなくて恐縮だけど
DOSの頃からAPI上のパス区切りはスラッシュで通るのに
入門書やサイトにバックスラッシュで記載あるのなんとかならんかな

570 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 18:42:28.40 ID:zYEeILU0.net]
ソースコードをutf8で書いたらいけない、ソースがutf8でなくshiftjisになってる、のどっちかじゃないか

571 名前:544 [2022/03/28(月) 18:59:10.76 ID:FxPljt62.net]
自己解決です
folder_path=folder_path.decode("utf-8")
にしてみたら日本語でも行けました!
お騒がせしてすいませんでした。
>>561
GIMPのコンソールだとglob.glob()の中はバックスラッシュじゃないと反応しなかったです

572 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:04:00.69 ID:rI7b9so+.net]
>>563
そうなんだ
わざわざ試してもらってありがとう
Python2のglob実装みてみる

573 名前:デフォルトの名無しさん [2022/03/28(月) 19:27:15.27 ID:FxPljt62.net]
>>564のおかげで
バックスラッシュに気づけたので
解決出来ました
ありがとうございます

>>562
気づかずすいません
ありがとうございます!
そういう事みたいでした



574 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:41:51.56 ID:awWxWPo2.net]
u"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg"
のように最初からユニコード文字列にするのが正攻法かな
でもgimpのpythonコンソールに直に書く時は
u"C:\\Users\\name\\Desktop\\\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u30fc\\*.jpg"
のようにunicodeエスケープしないといけないのが難点

俺環のgimp2.10.30はスラッシュでも問題ないな

575 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 03:06:27.47 ID:NFxs7VO2.net]
【悲報】俺が2時間かけて作ったプログラムがこれ [125096601]
https://greta.5ch.net/test/read.cgi/poverty/1649069479/

576 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:14:08.59 ID:EwNP7gad.net]
uwscのBETWEENSTRに該当する
指定文字列から、AとBの検索語の間で文字列をカットする関数はありますか?

577 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:57:12.47 ID:qZGMajZg.net]
>>568
https://docs.python.org/ja/3/library/re.html#regular-expression-syntax
正規表現の (?<=...) と (?=…) をつかって re.search() あたり?

578 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:23:32.74 ID:h0FbB6w5.net]
まんま実装してるライブラリも探せばあるんだろうけど、普通は正規表現だろうね
python 正規表現 タグの間を取得」とかでぐぐれば

579 名前:デフォルトの名無しさん [2022/04/05(火) 18:27:10.86 ID:/cMxK+XJ.net]
zipファイル解凍しなくてもファイル数の確認ができるのだが
rarファイルではできないの?

580 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:59:43.10 ID:EwNP7gad.net]
>>569
ありがとうございます
labでいろいろ試してみます

581 名前:デフォルトの名無しさん [2022/04/06(水) 00:25:28.29 ID:vOjBJMWB.net]
テスト

582 名前:デフォルトの名無しさん [2022/04/06(水) 18:52:36.40 ID:V6m5p1Ce.net]
https://www.python.jp/train/loop/index.html
を参考にwhile文でクレジットカードのアカウント管理プログラムを作ってみようと思ったんだけど

例えばパイソンクレジットのパスワードはpythonだとして

text = ""

while text != "パスワード":

text = input("パイソンクレジット:")

print("python")

これで実行は出来たのですが2つ分からないことがあって

・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
・while文は「パスワード」だけど、これだけじゃなくて「パス」や「pass」でも答えが表示できるようにしたい

この2つがどうしてもできません

583 名前:デフォルトの名無しさん [2022/04/06(水) 18:59:11.46 ID:PpwVEMc8.net]
>>574

> ・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
IDや暗証番号もinputで取る
whileの条件を増やす


> ・while文は「パスワード」だけど、これだけじゃなくて「パ



584 名前:X」や「pass」でも答えが表示できるようにしたい
while text not in ('パスワード', 'パス','pass'):
[]
[ここ壊れてます]

585 名前:デフォルトの名無しさん [2022/04/06(水) 19:21:28.09 ID:V6m5p1Ce.net]
>>575
後者やってみたけど

パスワードpassじゃないと入力できなくなっちゃった
書き方がおかしいのか?

586 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 19:48:17.76 ID:aY4pnG+o.net]
クォーテーションが全角になってるぞ

587 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 06:43:14.77 ID:wVatZXx3.net]
文字コード=sjis、改行コード=CRLFのテキストファイルを
それぞれutf8、LFのファイルに変換したい
どうすればいいですか

588 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 12:11:07.10 ID:NfDoLo6c.net]
>>578
with open('shift_jis.txt', mode='r', encoding='shift-jis') as f:
  lines = f.read()
with open('utf8.txt', mode='w', newline='¥n') as f:
  f.write(lines)

589 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 13:41:11.89 ID:bGha8t6H.net]
Windows相手なら encoding='cp932' が無難やね

590 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 15:29:47.16 ID:iHIe6oz3.net]
Shift-JIS_2004が来やがる事しばしば
かと思ったらWindows-1254とかと誤判断

591 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:06:38.29 ID:pSQTwr1V.net]
cchardet.detect(文字列)['encoding']
で取得した結果をopenのときに投げればいいんじゃないの
意外と使えるよ

592 名前:デフォルトの名無しさん [2022/04/08(金) 17:51:57.12 ID:7I4TuE41.net]
anser = input("パスワードは?:")

while anser!="パスワード"or"pass"or"パス":

print("OK")

これでどうしてもエラーが出てしまう

593 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:59:24.81 ID:Nr5XXVVB.net]
answer...



594 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:01:49.89 ID:+3oW9fkF.net]
そうですか。次はちゃんと質問しような

595 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:07:50.56 ID:bGha8t6H.net]
>>> "パスワード" or "pass" or "パス"
'パスワード'
想定してるような集合扱いにはならないのと、先に`answer != "パスワード”`が評価されるから
>>> True or "pass" or "パス"
True
>>> False or "pass" or "パス"
'pass'
のどっちかになる。

596 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:28.20 ID:7I4TuE41.net]
>>586
ちょっと違うみたいで

anser = input("パスワードは?:")
while anser!="パスワード"or"pass"or"パス":
print("OK")

で↑に行を開けると起動するんだけど
今度は無限ループになる上に、while文の"パスワード"or"pass"or"パス"が効かなくなる
(enterキーとか適当な文字入力でも

OK
OK

597 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:44.05 ID:7I4TuE41.net]
って無限ループしちゃう

598 名前:デフォルトの名無しさん [2022/04/08(金) 18:25:12.75 ID:o9HNgSR+.net]
質問です。
pyenvの設定をネットで調べると次の2つが見つかりました。
どっちが正しいのでしょうか?

(1)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
# ↑ binになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile
(2)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile
# ↑ shimsになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile

599 名前:デフォルトの名無しさん [2022/04/08(金) 18:30:46.90 ID:7I4TuE41.net]
実行環境忘れてた

ptyon3.10
IDLE

600 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:53:45.66 ID:D6M1QgM/.net]
エラーメッセージちゃんと読んでるか?

601 名前:デフォルトの名無しさん [2022/04/08(金) 18:59:35.32 ID:7I4TuE41.net]
>>591
expected an indented block after while statement on line 2

602 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:00:25.07 ID:LwBnqH/T.net]
>>589
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
日本人が作った、多言語バージョンマネージャーのanyenv を使っている。
nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。
同様のツールに、asdf もある

漏れは、~/.bash_aliases に、下のように書いている。
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

これは、~/.bashrc の終わりの方で、
もし、~/.bash_aliasesが存在するなら、それを読み込むように書いてあるから
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

bash で、下を入力すると、
which ruby
~/.anyenv/envs/rbenv/shims/ruby

which node
~/.anyenv/envs/nodenv/shims/node

WSL2, Ubuntu 18.04 サーバー(CUI のみ)では、~/.bash_profile は存在しない

603 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:02:02.75 ID:bGha8t6H.net]
>>589
https://github.com/pyenv/pyenv#installation
まず公式読んで

>>592
while True:
  answer = input('パスワードは?:')
  if answer in ['パスワード', 'pass', 'パス']:
    break
print('OK')

先にチュートリアルで構文を学ぼ
https://docs.python.org/ja/3/tutorial/



604 名前:デフォルトの名無しさん [2022/04/08(金) 19:02:33.34 ID:KIOBCG5Y.net]
>>590
そのコード何がしたいかわからん
inputパスがあってたら中身表示するとしたら

while True:
__ans = input('パスは?')
__if ans.lower() in ['パス', 'パスワード', 'pass', 'password']:
____中身表示系書く

とかだぞ
あと評価式でorするときは1から書き直す
if a == 1 or a ==2 or ,,,

とりあえず君は初心者本1冊完走してから作りたいもの作ろう

605 名前:593 mailto:sage [2022/04/08(金) 19:10:07.84 ID:LwBnqH/T.net]
~/.pyenv/bin/ か、~/.pyenv/shims/ に、

python, python2, python3 の内のどれかは知らないけど、
あるかどうか見てみれば?

606 名前:593 mailto:sage [2022/04/08(金) 19:14:42.64 ID:LwBnqH/T.net]
普通は、多言語バージョンマネージャーのanyenv かasdf を使う。
pyenv だけ使う事はまれ

nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)なども使うから

それか、Docker。
Windows, WSL2 なら、Docker Desktop

607 名前:デフォルトの名無しさん [2022/04/08(金) 19:15:41.95 ID:7I4TuE41.net]
>>594-595
https://www.python.jp/train/loop/index.html
一応このサイト見て勉強してるのですが
どうにもうまくいきません……
あとお二人方のコードで試したら、また別なエラーが出ました

作りたかったのは

Q パスワードは?
A パスワード、パス、pass
でAを入力するとOKと表示されるコードでした

608 名前:デフォルトの名無しさん [2022/04/08(金) 19:43:33.96 ID:cn/Cvl0A.net]
>>583
自分は、pythonは記憶とんだ。
だから、門外漢だけど、
「"パスワード"or"pass"or"パス"」じゃないなら、ループ。
って、おかしくない?

「"パスワード"or"pass"or"パス"」ならループ。
じゃないの?
ループを脱出したら「OKを表示」じゃないの?

609 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:50:24.15 ID:xCRwEkJt.net]
>>598

password_list = ['パスワード', 'パス', 'pass']
input_key = input('Enter Your password: ' )

if len(input_key) > 0:
for i in password_list:
if input_key == i:
print('おk')
if input_key != i:
pass

610 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:55:23.52 ID:cn/Cvl0A.net]
自分の発想のアルゴリズムだと、
アルゴリズム変えなければ、たぶんコメントなしだね・・・・・。

611 名前:589 [2022/04/08(金) 20:16:11.04 ID:o9HNgSR+.net]
>>594
レスありがとうございます。

612 名前:デフォルトの名無しさん [2022/04/08(金) 20:24:09.51 ID:KIOBCG5Y.net]
>>598
本当に作りたいのがそれだけなら
passlist = ['a', 'b' , 'c']
if input('password ? ') in passlist:
__print('ok')
なんよ

とりあえず落ち着け。作りたいもの置いといて、基礎を学ぶのだ
今のままじゃ多分全部聞いて、全部身にならない

613 名前:デフォルトの名無しさん [2022/04/08(金) 20:47:17.17 ID:7I4TuE41.net]
>>603
上に上げたサイトだとローカル巻数とグローバル巻数の部分まで来たんですが
ここがどうしても意味不明です



614 名前:デフォルトの名無しさん [2022/04/08(金) 20:57:37.08 ID:L/LJ1T8Z.net]
>>604
お前にはプログラミングは無理だ

615 名前:デフォルトの名無しさん [2022/04/08(金) 21:39:05.15 ID:7I4TuE41.net]
まずIDLEだとインデントが上手くいかない
最後のprintだけスペース戻したらエラーになる

616 名前:デフォルトの名無しさん [2022/04/08(金) 22:21:47.04 ID:YkLgLgBr.net]
>>606
VSCode入れて、それでそのチュートリアルやってみたら

617 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 22:57:08.82 ID:Qvok9sII.net]
質問です
>>594>>603のようにlistでin演算子を使ったところ

同僚に「あー……listでin演算子使っちゃうタイプね(ニチャア)setやdictならわかるんだけどね……(ニチャア)参考までにこういうブログ読んでね【listでin演算子は遅いことを示したURL】(ニチャア)」

ということがありました
苛ついたので月曜日までにPythonを改良して(Python4を自作する)listのin演算子を早くしたいです。よろしくお願いします

618 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:35:22.01 ID:xCRwEkJt.net]
>>606
google colabでやったら?

619 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:41:09.25 ID:xCRwEkJt.net]
>>603
ほおおおおお
シンプルで勉強になる

620 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 02:15:52.81 ID:Da31VTkt.net]
ローカル巻数とグローバル巻数がわかりません

621 名前:デフォルトの名無しさん [2022/04/09(土) 05:08:42.56 ID:fKWuF8Ed.net]
IDLEは単純に使いづらいぞ、付属品だけど使ってる人皆無
VSCodeかPyCharmの無料版に切り替えた方が良いぞ
実際に開発する時も使うのはこのどっちかだし

Pythonのインデントは基本半角スペース4つだから全角はもちろん、TAB文字でもNG
だから最低でも半角スペースとかTAB文字が視覚的に表示されるエディタ使わないと話にならないし
何よりもデバッガ使って問題がある箇所を探す、っていう工程を覚えないと身にならん

622 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:17:34.20 ID:STE4KUoA.net]
>>611
赤巻紙、青巻紙、黄巻紙

623 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:29:39.23 ID:eHvkij8x.net]
ラズパイでPyQt5使ってます。
IDEはeric6ですが、他にありますか?



624 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:39:02.83 ID:STE4KUoA.net]
>>614
つ google colab

625 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 06:21:03.55 ID:O1Wp6+GJ.net]
>>579
ありがとうございます
openにこんなにいろいろ指定できるなんて感動
newline=に指定するのは出力したい真の改行文字ってことですね

ついでに改行文字について調べてみたら、
Windows版Pythonでprintやwriteに使う改行文字\nってLFのことで、
ホントはCRLFを出力したければ\r\nと書くべきなんだけど
newlineを指定しなければOSに合わせて\n→\r\nに変換して
出力してくれてるってわかってためになりました

ただこれはいいことばかりではなくて、str.replaceで改行文字を
指定して変換をかけるような時は、しっかり\r\nと書かないといけない
ので落とし穴でもあり、改行は恐いなと思いました

626 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 08:13:20.11 ID:r2/dOOYj.net]
>>615
ColabでGUI?っておもったけどローカルのJupyterに接続するんかな
手軽にリモート開発できていいかも

627 名前:デフォルトの名無しさん [2022/04/09(土) 08:50:33.02 ID:eI7Hi2BA.net]
質問です。
MacOS10.12.6 [bash]のpython3.8.3で、
下記のエラーメッセージが出ます。
どういう原因が考えられますか?
どうすれば良いのでしょうか?

ImportError: dlopen(/Users/xxx/yyy/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): Symbol not found: ____chkstk_darwin

628 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:15:21.81 ID:0h6RcYap.net]
>>612
Python3.10になってIDLEメッチャ良くなったぞ
左にプロンプト専用のスペースができて表示が格段に良くなった
あとはjupyterみたいなセルを導入して欲しいかな

VSCodeとかPyCharmは聞いたことあるけど、明らかにIDLEの方が使われてるよ
だって付属品なんだもん、そもそもエディターはVimしかありえないじゃん?
Vim+IDLEが最強だって!

IDLEはbatファイルから起動させるようにしてるわ
毎回importするパッケージや変数定義をbatファイルに記述しておいて
batファイルでIDLE起動ドーン! これ超便利!
作業別にbatファイルを用意しておいてドーン! これ超便利!

629 名前:デフォルトの名無しさん [2022/04/09(土) 09:23:42.23 ID:fKWuF8Ed.net]
>>619
https://news.mynavi.jp/techplus/article/20200508-1031849/
残念ながらPyCharmとVScodeだけでシェア60割近く握ってるんだ……

batファイル起動とかも、今なら別にGitでクローンして持って来れば良いから
そんな面倒な事せんでも・・…

630 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:38:45.07 ID:0h6RcYap.net]
>>620
https://www.itmedia.co.jp/news/articles/2105/27/news089.html
残念ながらシェア60割近く握っているのはサクラエディタと秀丸なんだ・・

batファイル簡単じゃん、Gitクローンとか知らんし

631 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:53:46.27 ID:a9m8EYfT.net]
それ絶対一人で何回も投票した人いるよね?

632 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:56:19.00 ID:erlZKZM8.net]
>>621
それIDEも使わないようなエンジニアだしw
https://image.itmedia.co.jp/news/articles/2105/27/dy_nn_02_w290.jpg
あと>>620もそうだが60割って…

633 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:06:40.99 ID:fKWuF8Ed.net]
60%って書こうとしてたら60割って書いてたわ……
こんなアホみたいなミスするとは……



634 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:19:09.57 ID:7zWpZRsf.net]
PyCharmとかvimがそんなシェアあるって嘘だろって数値だから
ネタで割使ってるのかと思ったら素でやってたのか・・・

635 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:24:51.12 ID:0h6RcYap.net]
>>624
batも勘違いしてるでしょ?
IDLE起動するとき毎回同じimport文やらを記述するのが面倒だから
そういうのをbatファイルに記述しておいて、IDLEを引数渡しで起動させるってことだよ?
Gitクローン関係無いよね?

636 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:52:35.78 ID:fKWuF8Ed.net]
>>626
すまん、何か色々勘違いしてたみたいだわ
普通にコードのテンプレートみたいなものをbatで生成してるのかと思ったわ

637 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:29:12.77 ID:0h6RcYap.net]
>>627
なるほど、そういう勘違いね
IDLEでガッツリコードを書くわけじゃなくて、コードはVimで書く
IDLEは実行とかテストとかだね、VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで
たぶんやってることは同じだと思う、知らんけど

638 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:37:03.51 ID:ehpYMGIZ.net]
>VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで

IDLEってTkInter使ったただのエディタじゃね?VSCodeが裏で使うってどういう場面で?

639 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:54:52.85 ID:0h6RcYap.net]
https://docs.python.org/ja/3/library/idle.html
えー、IDLEは対話的インタプリタでありまして・・VSCodeはインタプリタの設定があるようで、
であるからして、えーインタプリタを裏で実行しているということでありまして
えー、、、つまり最後に「知らんけど」って書いてあるのが全てであります

640 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:47:04.00 ID:yJynhyxC.net]
IDLEは、コメントアウトのショートカットキーで"'# "に出来ない時点でアウトなんだよ

641 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:49:50.16 ID:LiKgioEf.net]
>>630
それよりPythonそのものがインタプリタ言語でしょって話だろ
一行ずつ変換してCPUで実行してるで原理は変わらない

642 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:51:34.84 ID:LiKgioEf.net]
開発環境の標準化と管理しやすさから
Docker使うのが楽ちんこかゆい

643 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:56:08.24 ID:XJ3vBTOo.net]
どういうことなの



644 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 13:15:20.25 ID:fH1CYxKR.net]
>>616
>ただこれはいいことばかりではなくて、str.replaceで改行文字を
>指定して変換をかけるような時は、しっかり\r\nと書かないといけない

テキストモードでnewlineを指定しなければ読ま込み時に\nに変換されてるのでstr.replaceは\nで大丈夫

645 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 14:56:49.55 ID:lodglsEl.net]
htmlのタグつきソースじゃなく、webの文字だけを直接取得する方法ってないの

646 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:08:35.72 ID:LiKgioEf.net]
正規表現でいけるんじゃね

647 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:42:19.36 ID:STE4KUoA.net]
つ 「クローリングハックあらゆるWebサイトをクロールするための実践テクニック」

648 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:50:48.63 ID:0h6RcYap.net]
>>636
直接取得する方法は、webページ上でCtrl+A -> 右クリック -> コピー で直接取得できます!

ちなみにhtmlタグつきソースからwebの文字を抽出する正規表現はこんな感じだと思います
import re
re.findall(r'>([^<>]+?)</(?!script)', htmlタグつきソース)

649 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:17:02.76 ID:lodglsEl.net]
検索結果から結果の文字列だけ取りたいんだけど
BeautifulSoupじゃなくてもとれるの?
re.findall で, > と < の間の入力文字を取るってこと
やはり一時sourceから整形しないといけないんだね

650 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:52:16.54 ID:mo38de66.net]
#TVer改悪 ですか?

651 名前:デフォルトの名無しさん [2022/04/09(土) 19:04:45.34 ID:q9kiD+/u.net]
while 10:
if 10<100:
input("数字")
print("NO")
elif 10>0:
input("数字:")
print("no")


print("END")

数字:10を入力するとENDになって
11~100を入力するとNOと表示されて
10~0を入力するとnoと表示されて戻るプログラム作りたいんだけど
何を入れてもNOとしか表示されない

652 名前:デフォルトの名無しさん [2022/04/09(土) 19:49:24.04 ID:i94l3mqO.net]
超初心者以前の知能が足りない人用スレが必要なんじゃないかな

653 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 19:59:15.82 ID:yZu8Oa/R.net]
gensim使ってword2vecのモデル作ろうとしてんだけど、単語の長さが1文字になっている
例えば富士山って単語があって、その前後にきっちりスペース入っててちゃんと区切られてても、「富」と「士」と「山」として学習されてる

モデル作るときのオプションになんかあるんかなと思って公式のマニュアルみたけど、それっぽいのないしどなたか助け船ください



654 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 21:52:07.66 ID:0h6RcYap.net]
>>642
while True:
  n = int(input("数字:"))
  if n == 10:
    print("END")
    break
  elif 11 <= n <= 100:
    print("NO")
  elif 0 <= n <= 10:
    print("no")

>>644
gensimとか全然知らんけども、調べたら
VECTORS_SIZE = 50 #次元数は20〜50必要と書いてる
あとは文章を単語に分けるget_words周りをチェックしてみたらいいんじゃないでしょうか
https://developers.goalist.co.jp/entry/vector_jisho

655 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 23:11:12.72 ID:yZu8Oa/R.net]
>>645
レスありがとう
そのベクトルサイズっていうのは単語の意味を決めるベクトルの次元数を示してて、単語そのものの長さじゃないんだ

めっちゃアバウトに言うと
抱き枕=抱き締める、枕 …ベクトルサイズ2
抱き枕=抱き締める、枕、気持ちいい …ベクトルサイズ3

ほんで次元数が増えれば増えるほど意味の精度が良くなる感じ

単語にわけるのは問題ない、中身みてもうまく行ってるんで
よくわからん…

656 名前:デフォルトの名無しさん [2022/04/10(日) 00:09:48.46 ID:QKdC6ZNW.net]
>>645
ありがとうございます

657 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 00:28:15.42 ID:ECLG0OKI.net]
>>644
自己解決

658 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 10:28:10.14 ID:AUZk5nGZ.net]
>>648
ぜひ回答も書いてスレの肥やしにしてください

659 名前:593 mailto:sage [2022/04/10(日) 21:01:22.34 ID:ZtzjE5Lq.net]
>>589
の処理を要約すると、
~/.bash_profile に、下の1 か2を書いているだけ

(1)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

(2)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init --path)"

漏れが、>>593
に書いた、anyenv 用の下の2行と同じ意味。
環境変数PATH を設定してから、仮想環境を実行する

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

bash で、下を入力すると、
which anyenv
~/.anyenv/bin/anyenv

次へ続く

660 名前:593 mailto:sage [2022/04/10(日) 21:02:11.54 ID:ZtzjE5Lq.net]
前からの続き

ただし、漏れの環境は、WSL2, Ubuntu 18.04。
君のOS や、シェルが何か分からないが、

シェルで下を入力すると、
which pyenv
~/.pyenv/bin/pyenv # 1の場合
~/.pyenv/shims/pyenv # 2の場合

1, 2で、どちらかが表示されるのでは?

まあ、多言語バージョンマネージャーのanyenvか、asdf を勧める

>>596
>~/.pyenv/bin/ か、~/.pyenv/shims/ に、
>python, python2, python3 の内のどれかは知らないけど、あるかどうか見てみれば?

これは、たぶん間違い。
~/.pyenv/bin/pyenv か、~/.pyenv/shims/pyenv がある

結局、~/.pyenv/bin/ か、~/.pyenv/shims/ は、各人の好みなんだろう

661 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 07:06:19.05 ID:+2lQ4ezC.net]
Python venv 仮想環境のフォルダー名 --clearとやったら全部吹っ飛んだんだがどうしたらいいの?

m1 macでやっててユーザー名変えたら何故かvenvがactivateされててもpythonコマンドが2系だったんでどっかのクソサイト真似たら想定してない結果になった

これ復元できるかね?

662 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:12:49 ID:sVlSXLDD.net]
同じく仮想環境でのエラーについて…
modulenotfounderrorの原因って何があるかね(モジュールはrequests)
winのvscode上で、仮想環境内にインストールは当然してるし、スペルミスもない、vscodeとPython両方ともパスも通ってる

あと何がある?追加インストールしたモジュール全部このエラーになるんだ
m1macではエラーはでなかったから尚更意味わかりません

663 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:22:02 ID:8HOMPEv6.net]
箇条書きで整理してから肉付けしてみて
自己解決すんじゃないかな



664 名前:デフォルトの名無しさん [2022/04/11(月) 11:30:00 ID:uYcMdD2t.net]
>>652
そら仮想環境は--clearしたら全部消えるし、ユーザ名変えたらパス変わるし使えなくなるでしょ
何らかのバックアップとってないと復元は無理だと思う

665 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 11:54:19.97 ID:EWxq5I4o.net]
サイトが糞だったのか自分が糞だったのか詳しく

666 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:14:48 ID:rXD/3mKA.net]
>>653
何もミスしてないってのが間違いなんじゃねーの
とりあえずsys.pathをprintすれ

667 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:36:17.27 ID:uIRj5XJN.net]
>>653
Ruby ではモジュールは、モジュール探索パス内から探される

例えば、モジュール探索パスに、フォルダa, b, c が存在する場合、
その先頭から、つまりabcの順番で、モジュールが存在するかどうかを探していく

同名のモジュールが、aとc内にある場合は、
a内のモジュールが使われて、c内のモジュールは使われない

なので、この順番が重要

668 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 13:33:13.98 ID:zI2UWl89.net]
Dockerでやれよ

669 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 20:50:27.40 ID:+2lQ4ezC.net]
>>656
https://dev.classmethod.jp/articles/change-venv-python-version/

こいつの記事を見てインストールし直すといいとか書いてあったからpip installでできる何かかなと思ってreqxirements.txt作ったけどやったあとにそういえばPythonってファイルのことモジュールって言うよなと思いだして見てみたら全部消えてた

こいつの説明もおかしいしclearなんて何をクリアーするのか分からない名前にする方もおかしいしモジュールなんて紛らわしい名前にする方もおかしいし全部がおかしい

しかも一番最後に唐突にpyenvなんて単語が飛び出してきてるあたりvenvとpyenvごっちゃになってるんたろうな

670 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:15:25.54 ID:8HOMPEv6.net]
記事読んだけどpyenvとvenvを混同してるの>>660だけやん
何するにもまず公式サイトの説明かコマンドのヘルプみない方が悪いよ
classmethodだから変なこと書いてる可能性は低いが公式ではないからね

671 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:18:23.24 ID:+2lQ4ezC.net]
>>661
うん本当に公式サイトの説明かコマンドのヘルプ以外何も信用できないと痛感した

今後はその2つ以外何も見ないようにするよ

それはそうとデータ復元させられればいいんだけどね
やる気ないわどうしよう

672 名前:593 mailto:sage [2022/04/11(月) 21:40:41.55 ID:uIRj5XJN.net]
普通は複数言語を使うから、venv , pyenv を単独では使わない。
Ruby と同じで、GUI が無く、HTML, CSS, JavaScript を使うから、Node.js も必要

多言語のバージョンを個別に管理できない

だから、漏れは日本人が作った、多言語バージョンマネージャーのanyenv を使っている。
nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。
同様のツールに、asdf もある

それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop

673 名前:593 mailto:sage [2022/04/11(月) 21:51:13.38 ID:uIRj5XJN.net]
基本的に、単独のバージョンマネージャー、
venv , pyenv, rbenv の記事を書いている香具師は、情弱

そういう香具師は、Node.js を入れる段になると、nvm, n とか言い出すw
各言語で、様々なバージョンマネージャーを使うな。ややこしい

最初から、20言語入っている、anyenv, asdf を使えば良いだけ。
全言語同時に更新できるし

それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop

この3つ



674 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:50:16.65 ID:zI2UWl89.net]
だからDocker以外認めないんだって
さらに環境構築はスレチなので
初心者はgoogle colabでやりなはれ

675 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:53:31.78 ID:zI2UWl89.net]
さもなければ拗ねる

676 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:57:32.81 ID:vk1u9tuU.net]
漏れと香具師とか生きとったんかワレ

677 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 04:43:55.44 ID:iDZ3USXF.net]
「普通は複数言語を扱うから」とかいうのは正しいかもしれないが、だからといってごちゃ混ぜ環境構築ツールを使うのはベストどころか悪手だから信用しちゃいけないよ

どう考えてもその言語専用に開発されたツールを使った方が、言語のバージョンアップに素早く対応できるし、
情報も多いし細かい所まで調整できる

ラッパーツールを使うってことは自らラッパーツールによる制限をあらかじめ課しているようなものなので、
ラッパーツールで十分と判断できるようになるまで理解が進むまでは使わない方がいいと思うわ

poetryですら弱点(pipの --find-links が使えない)があるからなあ。

678 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:14:42.30 ID:5/F0IJac.net]
発達障害の相手をするな

679 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:45:44.48 ID:J6etQu1f.net]
ちんちんシュッ!シュッ!シュッ!

680 名前:593 mailto:sage [2022/04/12(火) 13:21:00.67 ID:gsOGD0UL.net]
多言語バージョンマネージャーのanyenv, asdf を使わない香具師は、大変

例えば、Python は公式のvenv, Ruby はrbenv,
Node.js はnvm。でも、最近は、n もあるのでどうしましょう?
とか聞かれたら、そういう香具師を相手にできない

そいつは様々なバージョンマネージャーを調べる、時間が膨大

681 名前:デフォルトの名無しさん [202 ]
[ここ壊れてます]

682 名前:2/04/12(火) 16:48:37.17 ID:nozFiGE2.net mailto: すいません教えてください
pyautoguiの.pyファイルを.pywにしたら
キー入力されなくなってしまいました
pyautogui.ress("aaaa")してもアクティブウィンドウに入力されません
どうしてでしょうか?
.pyのときはうまくいったのにできません
[]
[ここ壊れてます]

683 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:53:27.00 ID:gsOGD0UL.net]
確かに、python/pythonw, ruby/rubyw の違いって何だろ



684 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:54:12.66 ID:JpfqGpfI.net]
どんなコード?

685 名前:デフォルトの名無しさん [2022/04/12(火) 17:01:08 ID:nozFiGE2.net]
すいません
pyautogui.press('a')でした
pyautogui.press('a')にしてもpywにすると入力されないです

686 名前:672 [2022/04/12(火) 17:05:24 ID:nozFiGE2.net]
>>674
これでみれますか?
https://ideone.com/MBXcaG

687 名前:デフォルトの名無しさん [2022/04/12(火) 17:47:07.40 ID:dyOgG/yk.net]
要素が100あるリストを作るにはどうすればいいですか?
[0] * 100 ってのもカッコ悪い。
整数型で要素数100、初期化は不要。
int d[100]; 的なやつ。

688 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:00:54.92 ID:3I6I23IO.net]
慣れの問題じゃね?
list(range(100))
とかでもかけるけど…

689 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:06:36.43 ID:dyOgG/yk.net]
ありがとう。
[0, 1, 2, .. 99] ってリストを作るのか。

array も numpy 入れないと使えないのが面倒だね。

690 名前:672 [2022/04/12(火) 18:13:09.62 ID:nozFiGE2.net]
>>676の12行目のprintに#をつけると.pyでも
キー入力されなくな

691 名前:閧ワした
代わりにtime.sleep(0.5)いれたらキー入力されるようになりました

これは一体何が起きれるんでしょう???
指定したウィンドウがアクティブになるまで待つループに行かずに
プログラムが終わっちゃってるんでしょうか???
[]
[ここ壊れてます]

692 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:39:56.40 ID:ESzOQLHU.net]
stdoutがないからだよ

693 名前:672 [2022/04/12(火) 19:08:23.01 ID:nozFiGE2.net]
>>681
stdoutを
検索したんですがちょっと難しくて分からないんです
stdoutをどこにどうつけたらいいんですか?



694 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 19:26:07 ID:wqnh+ciA.net]
import pyautogui
import time
time.sleep(5)
print("test")
pyautogui.press('a')
で正常に動く

pyautogui.pressの前に終了してんじゃね

stdoutは今回関係ないと思うけど

695 名前:672 [2022/04/12(火) 20:13:48.89 ID:nozFiGE2.net]
>>683
ありがとうございます
なぜかSleep入れないと終了してしまうみたいです

696 名前:デフォルトの名無しさん [2022/04/12(火) 20:50:57.47 ID:b2N2qKAz.net]
card={"ID":"python123","PASS":"python","an":"1234"}
card_input=input("クレジットカード:")

while True:
if card_input in card:
print(card[card_input])
break
else:
print("違います")

これで何故か違いますがループしてしまいます

697 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:02:02.35 ID:/Ra8N6EM.net]
とくさんか?

698 名前:デフォルトの名無しさん [2022/04/12(火) 21:15:26.84 ID:nozFiGE2.net]
pythonを3.10にアップデートしたのですが
コマンドプロンプトでpython -Vするとpython 2.7.14となってしまいます

cdでpython3.10のある場所まで移動してから
python -Vするとちゃんと3.10.4と出ます

古いバージョンのpythonはアンインストールして
pathも確認したんですがきちんと入ってるし
どうしたら3.10になるんでしょうか?
でも.pyのファイル自体はpython3.10のpython.exeに関連付けさせて
ダブルクリックでpython3で動くようにはなっているみたいだし
これはいったい・・・?


699 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:43:39.95 ID:wqnh+ciA.net]
>>687
コマンドプロンプトでwhere pythonを実行

microsoftのパスが含まれていたら
設定 アプリ アプリ実行エイリアス
アプリインストーラー(python.exe,python3.exe) → オフ

microsoftのパスが含まれていなかったらわからん

700 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:47:47.87 ID:iDZ3USXF.net]
>>677
カッコ悪いとかいう前に、それがPythonだからなあ。[*range(100)]とかもあるがlist(range(100))よりちょっと短いってだけだな

701 名前:デフォルトの名無しさん [2022/04/12(火) 22:07:40.99 ID:nozFiGE2.net]
>>688
ありがとうございます
where pythonしたら
inkscapeの中にあるpythonが出てきたので
inkscapeをインストールし直したら
cmdのpythonも3.10になりました!!

702 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 22:42:33.34 ID:xAlxnI5L.net]
inkscapeはpythonのパスを乗っ取るのか
gimpはそんなことしないのにな

703 名前:デフォルトの名無しさん [2022/04/13(水) 10:15:08.39 ID:mrQ0lXuv.net]
>>677
ary = [None] * 100



704 名前:デフォルトの名無しさん [2022/04/13(水) 11:46:56.33 ID:e4z5vS6p.net]
誰か>>685の質問に答えて

705 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:53:51.12 ID:e6OSlB4j.net]
なんだその態度は!

706 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:57:12.77 ID:DDWJQX1p.net]
そもそも685は質問じゃねーじゃん

707 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:25:16.84 ID:U9T9z/+B.net]
>>685
in dictってkeyそのものの存在チェックにしかならんぞ
だからID、PASS、anって入力した場合は
ifの中に入れるけど、python123とかって入力した場合にはelseに入る

質問するなら、想定してる挙動と実際の挙動
(何を入力した時にどういう判定をして、どう出力されるか)辺りまで軽く書いておかないとエスパー要素必要になるぞ

708 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:30:16.93 ID:Ndo4Py5H.net]
エスパー要素いらないだろ
ソース見れば何を聞きたいかはわかる

709 名前:デフォルトの名無しさん [2022/04/13(水) 12:49:39 ID:ucZJU7o2.net]
>>693
お前は基礎的な知識が足りなさ過ぎて、いちいち質問してたらキリがないから
一度チュートリアル的なことやってこいって言われただろ

710 名前:デフォルトの名無しさん [2022/04/13(水) 13:21:38.69 ID:e4z5vS6p.net]
>>698
申し訳ございません
説明書みて一通り試してみたけど、まだ修業が足りなかったみたいです

711 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 13:34:58.58 ID:OtnGUpOi.net]
>>699
card={"ID":"python123","PASS":"python","an":"1234"}
card_input='ID'

counter = 0
while True:
counter += 1
if counter == 10:
break
if card_input in card:
print(card[card_input])
break
else:
print("違います")

結果はPython123
keyじゃなくてvalueがあるのか知りたいなら

card={"ID":"python123","PASS":"python","an":"1234"}
card_input='python'

counter = 0
while True:
counter += 1
if counter == 10:
break
if card_input in card.values():
print(f'{card_input}はある')
break
else:
print("違います")

712 名前:デフォルトの名無しさん [2022/04/13(水) 13:58:50.36 ID:e4z5vS6p.net]
>>700
ありがとうございます

713 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 15:01:31 ID:axude+fp.net]
>>700
これ両方とも何がしたいのかわからん
特に2つめとかありえんやろ



714 名前:デフォルトの名無しさん [2022/04/13(水) 15:20:53.26 ID:e4z5vS6p.net]
クレジットカードのID、パスワード、暗証番号を文字入力で分かるプログラムを組みたかった

715 名前:デフォルトの名無しさん [2022/04/13(水) 16:03:29.19 ID:MldHjaMW.net]
>>703
お前はもう消えろ

716 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:14:56.54 ID:oiiWsGZU.net]
パスワードとか暗号化したうえでログインできるスクリプトってかけるの

717 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:17:24.75 ID:LexWIY5u.net]
>>571
rarのヘッダのフォーマット調べたら、
ファイル数そのまんまは記録されてないみたいね
書庫内のファイルのサイズはファイル毎の先頭に書いてあるので、
ファイル末尾までシークしながら数えるしかないみたい

rarは書庫の分割に対応している圧縮形式だけど
たとえば3つに分割して2番目だけ削除すると、
本家のWinrarでも1番目と3番目に入ってるファイルしかわからなくなる

718 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:20:57.30 ID:okI3ZS6T.net]
>>703
クレジットカード1枚だけの情報を管理するプログラム?

“ID”と入力すればその1枚のカード番号が表示される
“パスワード”と入力すればパスワードが表示される
ということ?

719 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:26:04.91 ID:Ndo4Py5H.net]
解凍しなくても数が分かるかって質問に対してはyes。rarも解凍しなくてもわかる

720 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:38:15.19 ID:QsWWVW1A.net]
>>705
OSが提供するPassword Vaultを利用するのが一般的
実行時に何かしらCredentialを渡す形になる

721 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 19:59:56.38 ID:2NeVpU9O.net]
whileループの中にinputがないのにループ回す理由あるの?

722 名前:デフォルトの名無しさん [2022/04/13(水) 20:15:30.03 ID:4yCExL0b.net]
カードガイジが作りたいのはこういうカタチだろ?
whileは待ち受けたい意図でしょ
データベースとアクセサとかGUIとかの話はたぶんできなかろ

実践力を身につけるPythonの教科書 っていうプログラム自体がはじめての人向けの
すげー甘い本があるから,作りたいものを忘れて,手を動かしながら読み切れ
殺すぞクソバカゴミ野郎

banks = ['mizho', 'ufj']
ids = ['a0123', 'z9876']
passs = [1234, 9876]
seqs = [123, 987]

while True:
____req = input('銀行名は? : ')

____if req == 'end': exit()

____try:
________idx = banks.index(req)
____except ValueError:
________print('\n死ね\n')
____else:
________print('\n銀行名', banks[idx])
________print('ID', ids[idx])
________print('PASS', passs[idx])
________print('SEQ', seqs[idx])
________print()

723 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:47:54.73 ID:Rs+TlID+.net]
passs



724 名前:デフォルトの名無しさん [2022/04/13(水) 20:49:17.78 ID:Z6ROrQAS.net]
for p in product:
print(p)

とありますが、この文のpって文字はどんな小文字英語でもいいんでしょうか?
またはこの文字じゃないといけないなど、何かしら理由があるのでしょうか?
ご教授お願いします。

725 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:53:05.46 ID:wi1nO/gW.net]
わかりやすければなんでもいいよ
1文字でなくても

726 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:59:01.94 ID:Rs+TlID+.net]
>>713
https://docs.python.org/ja/3/reference/lexical_analysis.html#identifiers
そこまでに登場してない識別子でキーワード以外

727 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:12:32.22 ID:Z6ROrQAS.net]
ありがとうございます!

728 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:15:44.96 ID:Z6ROrQAS.net]
>>714
一文字じゃなくてもいいんですね
新発見です!

729 名前:デフォルトの名無しさん [2022/04/13(水) 21:24:17.20 ID:MldHjaMW.net]
>>717
いい加減消えろや

730 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:24:39.98 ID:iz/3T8fY.net]
>>711
これは酷い
同じレベルじゃん

731 名前:デフォルトの名無しさん [2022/04/13(水) 21:34:31.03 ID:2yWJivzV.net]
>>719
そり同じレベルで回答しなきゃ質問者が理解できないだろ…
俺ならtryも避けて答えるかもしれん

732 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:24:51.42 ID:uO0SXD9A.net]
ガイジはプラレールとかで遊んでろよ…

733 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:42:48 ID:ZzIGlvaI.net]
いつからこんな悪辣になった?



734 名前:デフォルトの名無しさん [2022/04/14(木) 02:10:25.44 ID:lxOIQ3st.net]
悪貨が良貨を駆逐する
馬鹿がスレをダメにする

735 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 13:12:06.99 ID:BtLi5peK.net]
もともとこんなもんだろ
新年度(と学校の休み期間)は特にそれが顕になるだけ

736 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 15:03:37.58 ID:JhmvXnUD.net]
別にくだすれだから別にええぞ
何度も似たような質問してきたら流石に返答者も荒れるが

737 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 18:28:52.38 ID:lv3Dkk0V.net]
ファイルの先頭行に列を挿入したいのですが、列名が無い場合の追加方法がぐぐっても出て来ません( ノД`)

738 名前:デフォルトの名無しさん [2022/04/14(木) 18:32:29.06 ID:GwONt0bS.net]
>>726
そうなんだ

739 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 19:03:58.80 ID:zm2h//wN.net]
>>726
ファイルに行と列があるのはわかるけど、どういう風に行や列を表記するかは千差万別なので
ファイル形式(OpenXMLやCSV、TSVなど)かどのアプリで扱うファイルなのか分からないと答えようがない

740 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 20:52:20.51 ID:kWetsGXW.net]
>>726
そりゃ出てこないだろうな

741 名前:726 mailto:sage [2022/04/14(木) 23:18:32.03 ID:lv3Dkk0V.net]
解んなかったので、Dosのファイル結合で処理しました
失礼しました

742 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 00:49:03.96 ID:gAv1cu4K.net]
ファイル結合で先頭行に列を追加!?
すごいDOS力

743 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 01:08:53.44 ID:9XxTBRIR.net]
まず先頭行に列を追加ってどういうことよ?



744 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 10:48:59.76 ID:JgjbCGpn.net]
先頭行に列追加ってまんまじゃん・・・

プログラムでやるならtmp開いて先頭に追加したいの書き込んで、その後に元ファイルの内容読み込むと同時にtmpへ書き込む
で、全部終わったら元ファイル消して、tmpを元ファイル名にリネームして終わり
エラー処理きちんとしないとトラブル色々起きる

745 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:21:19.02 ID:1FLstH2r.net]
行には行しか追加できんだろ。
まあ列のヘッダを追加したいってことなんだろうけどね。

746 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:42:10.16 ID:NjgRgzMt.net]
配列で[1:100]だと[100]が含まれないのに慣れん。
それなら [1:100) にしろよ。

747 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 17:51:56 ID:PiHpabQE.net]
要素数が100なのにend-startが99だったりしたらそれはそれでややこしかったりするので一長一短かと

748 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 18:52:43.93 ID:NJzLAbi3.net]
空の区間を表現するのに特別な表現をいれたくないしね

> それなら [1:100) にしろよ。
半分同意
Haskell他にある多重ドットを拝借してほしかったけど
どっちがどっちだっけとなりそうだし悩ましい

749 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:03:00.69 ID:Pt8Ngg3U.net]
こういうことでしょ?つまり普通はAが欲しければ[0:1]と書く

じゃなんで[1:100]で100が含まれない?
o.5ch.net/1y4kc.png

750 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:24:36.19 ID:PiHpabQE.net]
>>738
インデックスの1のところが100だとしたら、数値の100はBの位置なんだが…

751 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:32:41.96 ID:atHGer73.net]
またこの話かよ
L[a:b] + L[b:c] == L[a:c]
が成り立つように決められたからだって言ったたろ
あれ、こっちのスレじゃなかったか?

752 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:07:28.54 ID:CLXxITWO.net]
>>740
正直、Pythonの基本仕様で一番難解だと思う
数年Python使っているけどいまだに覚えられなくて
>>738のような図をいちいち書いてコーディングする

753 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:50:41.47 ID:T4CYxiXU.net]
[1:100}で100が含まれないのは非直感的な面はあるのは確かだけど慣れるしかない
[1:100]はfor (i = 1; i<100; i++)みたいなイメージで捉えてる



754 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 22:00:09.34 ID:qspZjXdd.net]
アドレス0からアドレス0x10まで何バイトですかったら16バイトだし
添え字=要素ではなくオフセットと捉えられるなら、そう突飛とは思えぬけど
1ベースなら考えなくもないが、満年齢然り0ベースは<=より断然<だし面倒がない

755 名前:デフォルトの名無しさん [2022/04/15(金) 22:47:15.90 ID:HX7dwYSm.net]
>>743
えっ?

756 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 03:27:04 ID:M2x4IyLd.net]
ああ分かったぞ

100が含まれないじゃなくて含まれるじゃん
ただ[0:100]じゃなくて[1:100]と書いてるから100じゃなくて1が含まれないんだよ
じゃ別に普通だな

それよりrange(0, 100)で0から99までって事のほうがアカンやろ

a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
for i in a[1:100]:
print(i)

757 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 04:37:12.16 ID:GwpFWYo1.net]
すいません、教えて下さい
こういうのをaiとかでやらせたいのですが
何からとっかかればいいんでしょうか?

カラー漫画の吹き出しの中の文字を
周囲と同じ色で塗りつぶして消したいです

おそらく100%うまくいくと思えないので
塗りつぶしのみの画像をaiに作らせて
フォトショップみたいな画像ソフトでレイヤーとして
上に被せて
関係無い部分が塗りつぶされてたら
手で直すって感じを想定してます

問題は学習用のデータがなく
自力で修正した数ページ分の漫画で
コツコツ教え込むしかない事です
よろしくお願いします

758 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 09:26:44.86 ID:ewKy6 ]
[ここ壊れてます]

759 名前:0XC.net mailto: >>746
文字部分だけをマスクした教師データを用意してセグメンテーションするのがいい
塗りつぶすのは別のアルゴリズムを使うほうがいいかなぁ
[]
[ここ壊れてます]

760 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 14:13:32.08 ID:u7Gm+96S.net]
OCR使えばいいだけでは?
誤字とか関係ないんだし

761 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:31:25.88 ID:fPn+eEc/.net]
吹き出しの中に絵が書いてあったらどうするの?

吹き出しの検出は物体検出の分野だと思うのですが
PASCAL VOCで見かけた事は無いのでMS COCOを
漁るか自分で集めるかかな

762 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 16:37:07.55 ID:NFUA2B25.net]
>>746
ちょっとググったらそう言うのは結構やられてるのな
残念ながらフリーのやつは見つけられなかったけど
https://image.itmedia.co.jp/ebook/articles/1107/05/tnfigff2.jpg
https://www.itmedia.co.jp/ebook/spv/1107/05/news067.html

>>749
> 吹き出しの中に絵が書いてあったらどうするの?
そんなレアケースなんて当面考えなくても良くね?

763 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 18:22:27.77 ID:fPn+eEc/.net]
>>750
このリンク先の技術はディープラーニングの洗礼を受ける前のだから、今の技術で再構築すればもっと優れたものが
出来る可能性は高いな

本来あった(であろう)物を補完するのはGANとかになるかと。(ディープフェイクとかの分野や)

なお、GANでアワビを補完して逮捕された事案が最近あったなw



764 名前:746 mailto:sage [2022/04/16(土) 23:16:15.06 ID:GwpFWYo1.net]
もう自分が作ろうと思ってるものが出来てたんですね…
驚きです

765 名前:デフォルトの名無しさん [2022/04/17(日) 01:28:36 ID:WoAMfKL/.net]
こんなことも知らないのは初心者というより知的障害者に近い

766 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 04:46:41.05 ID:2lvfHA8s.net]
>>753
それあなたですよね

767 名前:デフォルトの名無しさん [2022/04/17(日) 11:52:58.54 ID:06xFq++l.net]
xlist, ylist = [], []
getxy(src) ->(x, y) # 出力値は入力値による

大量にgetxyを回してxlist, ylistに結果を記録していくとき
どういう方法が速い(?) / 高効率(?)ですか

xy = getxy()
xlist.append(xy[0])
ylist.append(xy[1])
しかわかりません…

768 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 12:08:40 ID:E+w90SEK.net]
Python onlyかつライブラリなしであればそれでいいよ
回数が分かってるなら[None]*100とかで先に確保しておくと、途中でリストメモリの再確保が入らないから厳密には多少速いだろうけど、まあ誤差でしょ

getxyが画像のピクセルを触ってるなら、何かしらの方法で一括取得できるはずだからリファレンスをよく読め

他にはnumpy使うとかnamba使うとかcython使えば速くなるかもしれない
こいつらは速くなる条件があるから条件に適合するコードを書くことが必要だ
これは少し慣れがいる

あとはそこだけcとかc++とかgoとかrust使ってロジックを書いてctypesで呼べば速い
これはさほど条件に左右されず速くなる
初心者にはおすすめしないけど

769 名前:デフォルトの名無しさん [2022/04/17(日) 12:22:40.47 ID:06xFq++l.net]
>>756
了解です
xyは画像座標なんだけど

getxy(im):
if bbox := myfilter(im).getbbox():
_ return bbox[0] * n , bbox[2] * m
else:
_ return 0, im.width

みたいな感じなのでいじれないかなー
cは書けないので切腹します

770 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 15:19:43.31 ID:AHx/k7U9.net]
要素数が多いほど[None] * nのプリアロケートで得られる速度差は微々たるものになって
インデックス周りなんかのその他の呼び出しで相殺される
それよりPythonでの命令数を減らすほうが速度は上がる

771 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 19:46:30.65 ID:hToGhZqz.net]
pandasで日付を軸にCSVファイルを結合したいのですが、書式をyyyy-mm-ddで統一しているはずなのに、成功するのと失敗するのがあります
失敗 2009-01-05
成功 2009-01-06
失敗の方は同一の日付と見なされないので行が重複します

Pythonには人が見えないものが見えてるのでしょうか?

772 名前:デフォルトの名無しさん [2022/04/17(日) 20:12:58 ID:xdoWfkC3.net]
私にはあなたのやりたい事が見えないです

773 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 20:52:14 ID:BJkxuXtr.net]
質問の仕方で知性も人間性もわかるよね



774 名前:デフォルトの名無しさん [2022/04/17(日) 21:10:58.88 ID:TsyjUgRL.net]
>>759
そりゃ見えてるだろ
それとも君は直接その眼でメモリー内容が見える人なの?

775 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 21:11:17.06 ID:lzcM8q3n.net]
質問に対する反応でもね

776 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:30:00 ID:q3rIpq5e.net]
Win10にAnacondaをインストールしたのですが、AnacondaからSpyderを起動すると落ちてしまい、二度と起動しません。
スタートメニューのショートカットも消えてしまいます。
どうしたらいいでしょうか?

777 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 08:24:53.65 ID:KQnHhLBW.net]
>>759
半角・全角だいじょうぶ?

778 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 12:09:38 ID:aIiYfvVh.net]
VSCodeでPythonしています
frm = tkinter.Tk()
でフォームを作り、これをクリックしたときに座標を取得したいのですが、
frm.bind('<Button-1>',frm_click)
としても、frm_clickを呼び出してくれません
どこがおかしいでしょうか?

779 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 14:35:05.52 ID:B0PpCiU+.net]
pythonからhtmlファイルを指定してブラウザで開く、閉じるができません。
subprocess.popen開くことはできるのですが、開いたらファイルを閉じる(タブを消す)ためにはどうすればよいでしょうか。

780 名前:デフォルトの名無しさん [2022/04/20(水) 21:54:23.66 ID:NTuuFKH0.net]
変数がfor できるかどうか判別する方法ありますか?

781 名前:768 [2022/04/20(水) 21:57:53.61 ID:NTuuFKH0.net]
文字列に対してforしたら、一文字ずつ取得でき想定してない動作になりました
エラーか、ループせずを想定したのですが
リストなど通常、ループできるのが適当なやつを判定するにはどうすればいいですか?

782 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:16:03.52 ID:WoVRayDr.net]
>>769
forで文字列が一文字ずつ取得できるのは正当なPythonの仕様なので
文字列をforの対象にしたくないという考え方が間違っています

783 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:22:57.69 ID:PgCzoxTm.net]
>>769
if isinstance(obj, (Iterable, Sequence)) and not isinstance(obj, (str, bytes)):



784 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:04:40.03 ID:wSEx/joO.net]
>>769
まず基本的な型になれるといいよ
ミュータブル
イミュータブル
シーケンス

785 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:06:36.28 ID:PionEwfV.net]
a = soup.find_all
としたときにaをa0とかa1のように
あらかじめfor i in range(2):で生成される数値を入れたいのですが。
前もってb=a+str(i)=a0として
b= soup.
とできますか?

786 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:30:24.72 ID:2isIGBT3.net]
aやa0/a1は字面こそ似てるけどPythonからすると全く関連のない識別子で統一的に扱えなくなる
listとして単一の変数で扱うのが筋
a = [] # list
a.append(soup.find_all(…))

急がば回れでまず公式チュートリアルをやるべき

787 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:41:19.59 ID:PionEwfV.net]
ご教授有難うございます

788 名前:デフォルトの名無しさん [2022/04/20(水) 23:42:38.34 ID:LGsJlZ4G.net]
subprocess.Popenで動かしたものの出力を拾いたいのですが文字化けしてしまいます
どうすれば文字化けが治りますか?

windows 10
python2.7で3.10の.pyを動かしています

2.7のほう(GIMP python コンソール)
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdout = subprocess.PIPE, shell=True)
line = p.stdout.readline()
line
3.10のoyo.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

print("あいう")

結果
あいうが'\x82\xa0\x82\xa2\x82\xa4\r\n'になってでてきますorz

789 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:49:59.94 ID:5YAs/nU7.net]
もうPython2覚えてないや
line.decode('cp932')
かな?

790 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:53:10.20 ID:CqlWpUmw.net]
>>773
何のためにそんなことしたいの?

前にも似たようなこと書いてた人がいたけど
変数名を連番で生成してそれらに代入したくなる状況が想像できないので理由を説明してくれると助かる

791 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:59:08.90 ID:2isIGBT3.net]
>>778
> 前もってb=a+str(i)=a0として
こうメタプロ的に解決しようとかんがえたんだろ
なんでわからん

792 名前:776 [2022/04/21(木) 00:06:54.28 ID:EXXirMvu.net]
>>777
文字が増えるだけで普通の文字になってくれないです
line.decode('cp932')
u'\u3042\u3044\u3046\r\n'

793 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:31:19 ID:68zG9eph.net]
>>780
ちゃんと「あいう」とUnicode文字列で保持できてる
そのGIMP環境で日本語がprintできる前提で
>>> '日本語'.decode('cp932')
がエラーなしなら
>>> print u'\u3042\u3044\u3046\r\n'.encode('cp932')
でとおるはず
環境によりcp932はutf8他かもしれんが



794 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:38:42.33 ID:Qeso+L0D.net]
>>776
最後2行
line = p.stdout.readline().decode('cp932')
print line

で表示できるはず

795 名前:776 [2022/04/21(木) 00:53:13.48 ID:EXXirMvu.net]
>>781
>>782
GIMPコンソール上では
line.decode('cp932')で
u'\u3042\u3044\u3046\r\n'
とでてたんですが
メッセージボックスだしたら
gimp.message(line.decode('cp932'))
日本語表示されました。
よくわからないですがそういう文字の扱い?みたいです
おさわがせしました
ありがとうございます

796 名前:776 [2022/04/21(木) 01:54:42.76 ID:EXXirMvu.net]
もう一つ質問なんですが
stdoutで他の.pyで動かした出力が受け取れたんですが
他の.pyに入力を与えてその結果出力を受け取るにはどうしたらいいんでしょうか?
検索しても
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdin=subprocess.PIPE,stdout = subprocess.PIPE, shell=True)
みたいに
stdin=subprocess.PIPE
を追加するみたいなんですが、入力する変数はどこに書けばいいのか
入力を受け取る側の.pyではどうやって受け取るのか分からなかったです

797 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 02:05:23.23 ID:Qeso+L0D.net]
>>784
.communicate(input=変数)

798 名前:746 mailto:sage [2022/04/21(木) 06:31:01.36 ID:EXXirMvu.net]
>>785
ありがとうございます
入力を受け取る側の.pyではどうすればいいんですか?

799 名前:デフォルトの名無しさん [2022/04/21(木) 09:46:00 ID:v468I8x9.net]
ターミナルから以下を入力すると問題なく実行できるのに、
ファイルcalendar.pyに保存して実行すると
TypeError: 'module' object is not callableになるのは何故でしょう?

import calendar
print(calendar.calendar(2022))

800 名前:デフォルトの名無しさん [2022/04/21(木) 09:48:00 ID:v468I8x9.net]
すみません自己解決しました。
calendar.pyの名前が被ってるからのようですね。

801 名前:746 mailto:sage [2022/04/21(木) 17:49:56.13 ID:EXXirMvu.net]
自己解決です
受け取る側にinput()で出来ました

802 名前:デフォルトの名無しさん [2022/04/21(木) 19:03:12.96 ID:FRtLfLsM.net]
import tkinter
でTtkが読まれないのは仕様だそうですが、いまいちしっくりこないんですが単なるインポートでコレが読み込まれるとか(Ttkのように)読み込まれないとかはどこで知ればいいのでしょうか?

803 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:17:14.76 ID:gmJJNdw9.net]
>>790
from tkinter
だとtkinter以外インポートしないから
from tkinter import *
のときってこと?
それなら tkinter.__all__ でわかる



804 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:20:14.88 ID:gmJJNdw9.net]
https://docs.python.org/ja/3/library/tkinter.ttk.html
Ttkって拡張があるんだね
これは個々の事情なので知ってないとわからないけど
ここに書いてるし説明くらい読もうよしかいえん

805 名前:デフォルトの名無しさん [2022/04/21(木) 20:19:47 ID:YKw8btnC.net]
import tkinter as tk
import tkinter.ttk as ttk
imporr tkinter.messagebox as tkmb
import tkinter.filedialog as tkfd
俺が普段使うセット

from tkinter import *
from tkinter import ttk
は推奨しない
一部のウィジェットはtk版のが使いやすかったりするから
オーバーライドされてほしくないのだ

806 名前:776 [2022/04/22(金) 01:33:52.51 ID:llHCzfDa.net]
>>776です
input()で入力を受け取ったpython3.10の方が文字化けしてしまって
自分なりにはいろいろencode,decode試したんですが
うまくいかなかなかったです
文字化けを直すにはどうしたらいいですか?
GIMPコンソール上の入力(python2.7)
import subprocess
input_text = 'あいう'
line=""
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True)
line=p.communicate(input=input_text)[0]
print line

python3.10の.py
#!/usr/bin/env python
# coding: utf-8
from tkinter import messagebox
text = input()
messagebox.showinfo("moji",text)
↑このメッセージボックスの中身が
画数の多い漢字と記号に化けてしまいました
コピペできなかったので画像付けます
https://dotup.org/uploda/dotup.org2781923.jpg.html

807 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 02:34:21.05 ID:I15ojW8g.net]
>>794
line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')

808 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 12:16:08.09 ID:j0HvfQsZ.net]
>>778
テーブルを美汁でとるとき一行づつdictしてconcatinationするときに使えないかと思い

809 名前:デフォルトの名無しさん [2022/04/22(金) 13:23:31.05 ID:sHpgXsI/.net]
アナコンダかをインストールして混ぜるな危険のpipとコンダをやってしまい壊れた
pip一本化で問題ないですか?

810 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 13:38:07.44 ID:EkSdB4ug.net]
一本化で問題ない

811 名前:デフォルトの名無しさん [2022/04/22(金) 14:13:32.13 ID:sHpgXsI/.net]
サンクス

812 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:37:59.91 ID:53M5rCU+.net]
クラスを書いているとき中身が肥大化して
__init__関数の引数が膨大な数になって
インスタンスを作るのが大変な状態になってしまったとき
リストでよく使うひな型をいくつか書いておいてそれを渡すという解決法を考えたのですが
妥当なやり方でしょうか?また他に良いやり方があればお教え願います

813 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:45:24.17 ID:CAe1t8bi.net]
>>800
デザインパターンでググる



814 名前:デフォルトの名無しさん [2022/04/22(金) 16:00:19.34 ID:3+eT3Tts.net]
>>800
>クラスを書いているとき中身が肥大化して
>__init__関数の引数が膨大な数になって
インスタンスを作るのが大変な状態になってしまったとき

どんな状態?

815 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:08:00.83 ID:EkSdB4ug.net]
プロセス起動するためのクラス作りたいな。で最初は実行ファイルのexeパス指定だけのシンプルなclassだったけど
arg追加しよう、ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・
引数が膨大になってくってことだろ

816 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:15:58.67 ID:p48HHJp5.net]
>>79

817 名前:6
なるほどわからん
>>774の言うようにコレクションをコレクションのまま扱う感覚を身につけたほうがいいのかもしれない
htmlテーブルをdictionaryにしたいならthの構成に合わせてlistやdictにする(もしくはpandasのread_html)

https://www.w3schools.com/html/html_tables.aspのtable#customersなら
header = [ th.text for th in table.select('tr:first-child > th')]
result = [ {header[i]: td.text for i, td in enumerate(tr.select('td'))} for tr in table.select('tr')[1:] ]
print(result[2]['Country’])
# Austria
[]
[ここ壊れてます]

818 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 17:12:11 ID:DFy/+sOR.net]
何でもやらせるほどsubprocessの極薄ラッパーになっていって
最終的にいらねえじゃんってなる

819 名前:デフォルトの名無しさん [2022/04/22(金) 18:54:56.60 ID:vYYyAoJX.net]
1スレを読んでみようと思ったのですが一つ一つリンクをクリックして戻った結果途中で"rawを読み込めませんでした"と言われこのスレに戻されてしまいました。どなたかこのスレの1を読む方法教えて頂けませんか

820 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:13:49.15 ID:CAe1t8bi.net]
>>806
2ch → 5ch

821 名前:デフォルトの名無しさん [2022/04/22(金) 19:48:10.24 ID:vYYyAoJX.net]
>>807
ありがとうございます!
5ちゃんねるの"くだすれpython"の現行版から過去のスレのリンクを辿ってみました
part34辺りで5chから2chのログに切り替わっているせいかリンクを読み込もうとしなくてロード出来ませんでした
スマホからだと読むことは出来ないと言うことでしょうか

822 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:17:22.51 ID:a0+aRfgz.net]
便所の落書き読む時間があるなら書籍の一冊でも読んだほうが有意義だぞ

823 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:24:41.56 ID:h+Fap4CC.net]
>>803
> ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・
そう言うのはプロパティとかでいいだろ

> 引数が膨大になってくってことだろ
毎回全部指定するつもりなのかよw



824 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:59:16.35 ID:cNb4vicF.net]
毎回全部指定したい(指定強制したい)ってことはあるからな

825 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:03:59.41 ID:7tkDjHFj.net]
>>811
ラッパー経由になるだけだから指定強制なんて意味ないでしょ

826 名前:デフォルトの名無しさん [2022/04/22(金) 21:20:42.63 ID:72MHsUfr.net]
>>800はまだ>>800しか書いてなくて、後は>>803の憶測について議論してるんだよね?

827 名前:746 mailto:sage [2022/04/22(金) 21:33:54.80 ID:llHCzfDa.net]
>>795
ありがとうございます!
出来ました!!
エンコードとデコード両方しないと行けないのですね
助かります!!

828 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:41:33.50 ID:yaJafia3.net]
テキストファイルの先頭からあるワードを検索し
1回目に見つかったワードを特定のワードに置換
2回目に見つかったワードをまた別のワードに置換

という処理を実装したいです
自分の知識だと、テキストを一行ずつ読み込んでは
正規表現でワードをサーチしカウンタを加算し
カウンタ値に応じてreplaceするっていうコードしか浮かばないですが
何か他に効率的・定番的な書き方があれば教えてください

829 名前:776 [2022/04/23(土) 21:11:23.83 ID:S27JpXaa.net]
度々すみません。
>>794で教えてもらった以下の行を入れたのですが
line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')
中国語(繁体語)をinputに入れたところ以下のエラーがでてしまいます
UnicodeEncodeError: 'cp932' codec can't encode character u'\u91d9' in position 0: illegal multibyte sequence
検索してみたところcp932に含まれない文字があった場合にでるみたいです
u'\u91d9'はこの字でした(釙)
https://0g0.org/unicode/91D9/
中国語(繁体語)をinputに送っていたので
以下を参考にエンコードをcp932ではなくてcp950にしてみたのですが文字化けしてしまします
docs.daemon.ac/python/Python-Docs-2.5/lib/standard-encodings.html
他にbig5やbig5hkscsも試してみましたが文字化けします
この文字化けはどうしたらちゃんと表示されますか?
こういった多言語を扱う場合どうしたら良いのでしょうか?
u'\u91d9'(釙)以外にもu'\ufe50'(﹐)などにも引っかかってしまします

830 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:38:30.92 ID:LTun4BN3.net]
>>815
そんな一般性もないような使い捨てのコードは効率よりわかりやすさが大事
文章そのままにコーディングしたらええがな

831 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:06:21.75 ID:A38Z8Utb.net]
>>815
1行ずつ読み込みだとキーワードの途中改行に対応できない気がするけどいいの?

832 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:33:39.38 ID:7+1nJnMo.net]
途中改行するキーワードなんて生まれてこのかた見たことない

833 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:48:08 ID:dSfqqc1i.net]
>>816
Windows の文字コードは、独特で誰も知らない。
たぶん、何百種類もあるでしょ

日本なら、CP932 だけに対応するけど、
全世界の何百種類とかに対応できない

そもそも、外人はCP932すら知らないし

CP何々とか、UTF-16 とか、Linux 用の全言語で処理できない。
Linuxは全言語、UTF-8 のみに統一されている

これ以外の特定の端末用言語、例えば、Windows PC 用言語などは、特殊

だから基本、システムで使ってはいけない。
システムはLinuxのみで、Windows PCは単なるクライアントとしてしか使えない

Ruby on Rails では辞書に定義することで、多言語化しているけど、
これはUTF-8だからできる

この文字はCP932、これはCP950 とか一々、何百種類に対応できない



834 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:49:34 ID:Ac8uMNgs.net]
置換だと検索文字として\n含むのはよくあるし
キーワードに改行なくてもワードラップがきちんとされてないテキストなんかだと改行コードに邪魔されてヒットしないこともよくある
そういうとこはやりたいことの条件しだいだからなんともだな

835 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:04:11.07 ID:ll5AWkFj.net]
>>815
re.subの引数に呼ばれるたびにカウントアップした文字列を返すreplacerを渡してやればいい

836 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:15:47 ID:pT174lS4.net]
>>820
もうlocale知らん奴がいるんだなぁ

837 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:29:24.04 ID:OEg3OW8V.net]
>>816
これでどうだろう

import subprocess, os
my_env = os.environ.copy()
my_env["PYTHONIOENCODING"] = "cp65001"
input_text = 'あいう釙'
line=""
p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True, env=my_env)
line=p.communicate(input=input_text)[0]
print line

後出し条件追加は控えてくれると助かる

838 名前:デフォルトの名無しさん [2022/04/24(日) 00:03:00.76 ID:XmcVNZmY.net]
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

839 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:16:33.35 ID:JO+3K+yc.net]
>>824
my_env["PYTHONIOENCODING"] = "utf-8"
のほうがわかりやすいかな

840 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:25:04.32 ID:lQs7d+0h.net]
外部コマンド前提だから古典Unix的に
間にiconvを挟むのが適当

841 名前:776 mailto:sage [2022/04/24(日) 12:08:29.52 ID:kM/BqeMC.net]
>>824
ありがとうございます
こんな方法があるんですね
驚きました
まさか外国語も色々エンコードあるなんて思いもよらず
後出しになってすいませんでした

>>827
どこにiconvというのを入れればよいのですか?

842 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 12:48:07.19 ID:PxrfmSzI.net]
>>828
https://man.cx/iconv(1)/ja
こういう外部コマンドがある。(ないなら導入する)

python310.exe UTF-8出力するscript.py | iconv -f utf8 -t cp932

でcp932で出力するコマンドと同等になる。前に置くと入力も変換できる。
わかるとおもうがパスやエンコーディングは適当に読み替えて

843 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 13:28:31 ID:JO+3K+yc.net]
多言語処理するなら、824の方法でいいよ
iconvなんか使ったらエラー処理面倒くさくなる
他には、バッチファイルでchcp 65001する方法や、utf-8のファイルで受け渡す方法もある



844 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:10:53.30 ID:QXI/jpLW.net]
いいわけないだろw
utf8決め打ちだけでいいなら苦労しない

845 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:36:36.75 ID:JO+3K+yc.net]
>>831
なら、794の処理を動く形でコード書いてよ
見て判断するよ

846 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:25:05.85 ID:ir2De51z.net]
Python関連から少し外れてしまうのですが、元々汎用系の技術者だったのですが、縁があってデータ分析の仕事に関わることになりました。
現在python3を手続き型の書き方でコード書いているのですが、オブジェクト思考に切り替えた方が良いタイミングやポイントありますか?
今のところ一人でpandasやpysparkを処理していて100行にも満たないくらいの小規模開発しています。
オブジェクト思考に憧れはあるのですが、まだ書いたことはありません。

847 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:35:36.96 ID:5b8jykvI.net]
( ^ω^)汎用って何が汎用なんですかお?

848 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:14.23 ID:ir2De51z.net]
>>834
具体的にはコボラーメインでした

849 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:41:18.84 ID:GNyXlK50.net]
>>833
切り替える必要はありません
オブジェクト指向は大規模開発を大人数で共有しながら進めるために
編み出された作法です
そんなプロジェクトにPythonは使われません

850 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:42:40.76 ID:ufUUo1o1.net]
今どきオブジェクト指向は…

851 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:55:21.47 ID:ir2De51z.net]
>>836
そうなのですね
可読性とか設計的にオブジェクト思考の方が優れているイメージがあり、汎用系出身のプログラマーとしては劣等感を感じています
>>837
最近の流行り=メインストリームは何でしょう?

852 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:59:31.83 ID:NGFGt/bW.net]
>>836
> オブジェクト指向は大規模開発を大人数で共有しながら進めるため
そんなことないだろw
継承とか具体的に使い始めるとたぶん
目からうろこだろ感動もんだろ鳥肌もんだろ汎用系からだと

853 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:40:25.60 ID:Sf8HNHhp.net]
疎結合進んでひとりでも大規模開発できるようになるし
小規模でもアタマ楽になるし学習コスト顧みても利点の方が多い



854 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:51:51.09 ID:ir2De51z.net]
>>840
仕事中は時間の誓約もあるので手続型でコード書いちゃって、プライベートでは作りたいものなくてオブジェクト指向の本読んでも分かったような分からないような感じで実践できていません
皆さんはオブジェクト指向はどうやってマスターしましたか?
デザインパターンの本を写経するのが一番なんですかね。。。

855 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:19:27.73 ID:bO9itIdJ.net]
>>838
よほどクラス設計をきちんとやっておかないと可読性はむしろ落ちます
自分で書いたクラスでも三日経てばわからなくなります
結局のところ手続型で上から下に一直線にゴリゴリ書く方が速いし手直しも楽です
ただしオブジェクト指向は作法ですから、チームが作法として採用している場合は致し方ありません
が、先に述べたようにPythonでチーム開発などすることはまずありませんからご安心を

856 名前:デフォルトの名無しさん [2022/04/30(土) 00:49:48.45 ID:46aR4GCy.net]
データ分析を書き下しでやるなんて聞いたことない
どんな小規模よそれ

857 名前:デフォルトの名無しさん [2022/04/30(土) 01:24:52.50 ID:03xdZc7H.net]
データ分析で100行に満たないとなると、オブジェクト指向じゃないと思うけどなあ.
レコード同士の制約がRDBMSで取り扱えない範囲の制約だったらオブジェクト指向にした方がいいけど、
大体RDBMS的アプローチで十分じゃない?
分析手法が固まった段階で業務にいれこむとなるとちゃんとオブジェクト指向にした方がいいと思うけど、分析の段階だとPOCでしょ

858 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:13:55.43 ID:TTQ8Rhtz.net]
典型的なオブジェクト指向は、Ruby on Rails

でも、最近の言語、Go, Rust, Elixir などは、オブジェクト指向ではない。
オブジェクト指向の弊害の方が目立ってきたため

Elixirは関数型

859 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:19:59.25 ID:38aggrlO.net]
頭の中で完結してるけど説明が下手なのか
書くうちに発散して纏まってないけどそのまま殴り書いたか
ようわからん文章やな

860 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:22:55.20 ID:Zvv3yApT.net]
ぶっちゃけSQLとパワークエリで事足りると思うんですが、会社がPythonメインでやるという方針なのでPython使ってます。pandasもpysparkもデータ分析用というより大量データの結合やデータ変換に使うことが多いです。

環境的には不要で自己満になるかもなのですが、今後のスキルアップのためにオブジェクト指向取り入れて開発したいなぁという願望があります。

861 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:25:25.49 ID:MSWmTJKz.net]
おまえら素人ばかりだな
オブジェクト指向で作るのは理由があるからだ
理由は自分で考えろ

862 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:46.14 ID:Zvv3yApT.net]
>>845
Elixeir初めて聞きました。新しい言語や関数型言語も出てきているのですね。。。

863 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:52.93 ID:MSWmTJKz.net]
pythonメインでやる方針にも理由がある
理由は自分で考えろ



864 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:27:36.14 ID:MSWmTJKz.net]
とにかくやれ
やらない理由はいくらでもあるから
とにかくやる気があるうちにやるんだ

865 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:34:17 ID:MSWmTJKz.net]
やってみて
わからなかったらいつでも質問しておいで

866 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:37:35 ID:Zvv3yApT.net]
ありがとうございます
とりあえず挑戦してみます

867 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 05:55:28.21 ID:OR8SZm5l.net]
>>835
COBOLに慣れてるならGnuCOBOLでも入れて色々遊んでみたらいいんじゃね?
COBOL2002からはオブジェクト指向をサポートしてる

868 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 06:14:48.85 ID:Zvv3yApT.net]
>>854
COBOLでもオブジェクト指向サポートしてるバージョンあるんですね!
時代の進歩に全然追い付けてないです

869 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:21:56.93 ID:nLS5ACA1.net]
妙だな…Pythonでチーム開発とか普通にあるけど

870 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:29:49.76 ID:mj6Qj3Uj.net]
>>856
日本だと少ないとはいえ、チーム開発も少しずつ増えてきてるよな
というか規模の大きな開発が増えてきたから
型ヒント周りの機能が強化されてきてるんだし

871 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:48:06.80 ID:UlwKMlAZ.net]
YouTubeやDropboxがPythonで書かれてるけど、1人で開発されたなんて考えてんのかね、>>842

https://tech-camp.in/note/technology/45702/
DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。

872 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:55:29.45 ID:0pJ/3NeQ.net]
一般的にpythonがーじゃなくて、そいつが職場で開発してるって条件下では大規模開発はありえないって話だろ

873 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 09:46:12.98 ID:2kJdiTOr.net]
>>842の気持ちはわかる
たぶんバッチ処理主体でPythonを使ってる現場なんだろうけど、バッチ処理しか書けない奴って本当に一直線のコードしか書けないのよ
最近は業務系のそういう連中がPythonに進出してきていて、なかなか酷い状況だよ



874 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 12:04:18.69 ID:asMkUOFh.net]
一般常識として身につけておいたほうかがいいとは思うがpandasなんかを使ったデータ分析用途の場合はオブジェクト指向は極力避けて関数とデータを意識的に分けたほうが可読性もメンテナンス性も高いよ

SeriesやDataframeのようにデータとメソッドが不可分な独自の抽象データ構造をライブラリとして提供する場合にはオブジェクト指向を使ったほうがいい

875 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 14:35:51 ID:wjVEP1qN.net]
Pythonはオブジェクト指向を学ぶのには向いてないよな

876 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:03:49.44 ID:Uatckw9k.net]
>>860
その通りです
私はバッチ処理専門で開発していますが
関数すら極力書かないようにしています
関数を作ると処理の流れが行ったり来たりして読みづらいからです
Cで言うとmain関数の中に全ての処理があるように書きます

877 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:17:02.34 ID:XZrd/bpX.net]
>>863
関数の役割分担や命名をちゃんとしてないからでは?
関数はそれ自身で責任を追って実装・検証するもの
使う側は関数内部まで気にしなくても済むようにならないと意味ない
なんで便宜上行ったり来たりは発生しない
外部ライブラリやビルトインの関数の実装までふつう追わないでしょ

878 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:40:05.60 ID:wcqGltd4.net]
>関数すら極力書かないようにしています
さすがにそれはアカン
考えを改めた方がいい

879 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:45:43.84 ID:WuQ7ClRo.net]
個別の関数をmain関数と同居させる場合、
関数の配置の順序とかあるの?
JSで関数を最後にまとめたりしているものがあったけど、
Pythonじゃ見かけないような

880 名前:デフォルトの名無しさん [2022/04/30(土) 16:56:56.93 ID:IElPr3np.net]
>>863
コボラーですね分かります。
合言葉はIDENTIFICATION DIVISION。

881 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:15:45.06 ID:XOEt5cKu.net]
>>866
JSはスコープごとにスクリプトを2回読むイメージで実行されるので
関数や変数の宣言は巻き上げられて先頭で宣言されてるのと同じになる

Pythonにはそういう機能はないので1ファイルならmainの実行は最後にするのが普通

def main():
 hoge()

def hoge():
 print(‘hoge’)

main()

882 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:16:15.33 ID:Uatckw9k.net]
>>866
他の言語は知りませんが、Pythonは関数を呼ぶ処理より前に
関数定義がないといけないんですよ
だから関数のあるスクリプトファイルを開くと、まず関数の羅列が
ズラズラと目に入るわけでして、文書を上から下に読んでいくという
人間の自然な動作に合わないのです

883 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:39:11.77 ID:PWl3mLPj.net]
コボラーってやっぱアタオカだな



884 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:04:44.96 ID:64v4nlhT.net]
>>869
def main(): sukinakansuu()

def sukinakansuu(): pass

if __name__ == '__main__': main()

みたいに書くよ

885 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:07:46.92 ID:OR8SZm5l.net]
>>866
Python の def 文は「実行文」だから定義される関数を呼び出す前に実行しないといけないのでJSみたいにするとエラーになる
ちなみに実行文だから
if xxx:
def foo:
print('foo1')
else:
def foo:
print('foo2')
みたいにして実行時に関数の定義を変えることもできる

886 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:49:26 ID:oMuBjy8I.net]
実行文??

887 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 19:22:27.31 ID:XZrd/bpX.net]
https://docs.python.org/ja/3/reference/compound_stmts.html#function-definitions
式じゃないし識別子でもない単にそこで実行される文

888 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 21:51:14.91 ID:yu/EzU82.net]
>>872
それ「実行文だから」とか全然理由になってない
インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる

実行文ではないC言語でも定義より先に呼び出したらエラーになる

889 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:12:01.94 ID:o6QgUZIK.net]
>>872
┏━━━━━━━━━━━━┓
┃The image you are       .┃
┃requesting does not exist   .┃
┃or is no longer available.   .┃
┃                        ┃
┃imgur.com             ┃
┗━━━━━━━━━━━━┛

890 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:22:35.44 ID:64v4nlhT.net]
seleniumでaタグをclickしてswitch_to.windows(driver.window_handles[1])しても<html><head></head><body></body></html>っていうページにアクセスするようになる
なんで無内容に?どうすればいいんだろう
そもそもGUI上はクリックしてないんだけどなんだこれ

891 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:23:14.79 ID:OR8SZm5l.net]
>>875
> インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる
やれるね、だから何?

> 実行文ではないC言語でも定義より先に呼び出したらエラーになる
コンパイル言語で定義より先に呼び出し?
実行順序とソース上の順序を混同してるだろw

892 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:59:55.25 ID:64v4nlhT.net]
>>877
解決
クリックしたあと2秒sleepさせたら出来た
読み込みに時間が掛かるんだな

893 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 23:11:39.76 ID:484odO/R.net]
>>878
だから何じゃねーよww
ダメだこいつw



894 名前:デフォルトの名無しさん [2022/05/01(日) 02:13:14.49 ID:b95w4aAB.net]
>>875
C言語の場合、宣言すれば定義は後回しでOK。

895 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 05:53:28 ID:Rd1MW222.net]
>>880
ダメなのはお前の頭だろw
他の言語なんて関係ないし

896 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 08:06:33.67 ID:JzdAzqq0.net]
https://i.imgur.com/3qXlqVA.jpg

897 名前:デフォルトの名無しさん [2022/05/01(日) 09:40:22.97 ID:0ggTu6P0.net]
実行文って、コンパイル型言語で宣言文と区別する意味の用語だから、Pythonでは、完全にナンセンス
「実行文だから」は何の意味も持たない
実行文でない文は、逆にあるのか?

898 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:00:01.37 ID:aj8iUgGb.net]
コンパイル言語?
JSにも宣言文はあるんだが

899 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:06:43.73 ID:KjQtFKQ9.net]
インタプリタだって全部の行を一行ずつ実行しながら解釈しているとは限らないんだから区別はあっておかしくない。

900 名前:デフォルトの名無しさん [2022/05/01(日) 10:39:20 ID:c1q3P+1N.net]
宣言っていまいち意味わからんのだけど。
defは今の名前空間に新たにオブジェクト(function/callable)を作成するって捉える方がしっくりする。
だから、名前()で呼び出しするためには、その前に作成が終わってなきゃダメよね、ってなる。
って考えると、Pythonは上から下に順番に実行しかしていない、ってわかる。

901 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:07:07.83 ID:IDzy7BiL.net]
関数定義をまとめた関数をスクリプト末尾に書いて
それをスクリプト先頭で呼ぶようにすれば…と思ったけどダメですね
ズラズラ並んだ関数定義を見たくない場合、定義部分を別スクリプトにして
それをimportすればいいのかな?

902 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:28:22.49 ID:UqOJOPuh.net]
868のやり方じゃ駄目なんけ?main()の呼び出しを最後に書く以外は関数の並び順は自由だし、関数名がmainなら最初に実行されるだろうことは暗に容易に伝わる。
自分も呼び出すほうを上、呼び出されるほうを下に書くほうが読みやすいと感じるから常にそうしてるよ

903 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:54:47.68 ID:IDzy7BiL.net]
>>889
自分はメイン処理をトップレベルに書く派なので
残念ながらこの手法は使えません

しかし知識として知りたくはあります
>>868ってmain()より下にあるhoge()をmain()から呼べるってことですよね
それは何故でしょうか



904 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:26:54.53 ID:Dd8WxxXv.net]
>>890
> 868ってmain()より下にあるhoge()をmain()から呼べるってことですよね
> それは何故でしょうか
main()が(定義される時じゃなくて)実行される時はdef hoge()も実行済みだから

905 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:29:09.32 ID:UqOJOPuh.net]
そのこだわりはよくわからんな…
デメリットしか思いつかん

906 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:46:49.10 ID:JzdAzqq0.net]
相互参照している場合とかどうするんでしょうね?

907 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:52:31.00 ID:Yd4A+jrH.net]
>>885
>>872で「実行文だから実行時に関数定義をかえることができる」と書いてるのは嘘だったってことかな?

908 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:24:18.52 ID:Rd1MW222.net]
>>893
実行までに各々定義すればいいだけだからなんの問題もないだろ

909 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:25:01.76 ID:Rd1MW222.net]
>>894
Pythonの話とJSの話の区別もつかない無能乙

910 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:46:20.12 ID:qrKdrkjM.net]
どうでもいい話になってきてるような
スレタイにふさわしいと言えばそうだが

911 名前:デフォルトの名無しさん [2022/05/01(日) 14:07:59 ID:b95w4aAB.net]
スレタイ通り下らない話で盛り上がってて実に素晴らしい。

912 名前:デフォルトの名無しさん [2022/05/01(日) 14:08:54 ID:QvrU5Mi0.net]
エントリポイントのエの字も出ない

913 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:18:30 ID:Gwm1B3AE.net]
>>891
実行というからおかしくなる
関数のシグニチャを評価するタイミングと
関数のボディを評価するタイミングの違い

前者が他言語でいう宣言文の役割
Cのプロトタイプ宣言とかと同じ
Pythonでも宣言として捉えたほうが分かりやすいよ



914 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:20:32.48 ID:IDzy7BiL.net]
>>891
うーんよくわかりません
なぜ上にある関数から下にある関数を呼べるのか
私の脳はここまでです

>>892
メリットが二つあります
・スクリプトの先頭から実行が始まるので流れを追いやすい
・メイン処理の字下げが一段少なく済む

915 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:40:33.88 ID:vJsN8meg.net]
>>901
> 先頭から実行が始まる
先頭に書いてあるのがmain関数なら上から読み下せるのは同じじゃね?

916 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:53:14.40 ID:KjQtFKQ9.net]
うちはスクリプトの末尾にこの2行、ってのが定番たわ。

if __name__ == '__main__':
main()

917 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:06:46.08 ID:JzdAzqq0.net]
>>895

https://i.imgur.com/1yUgMXq.jpg

918 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:10:06.70 ID:Rd1MW222.net]
>>900
だからそんな思考回路だと
if xxx:
def foo:
print('foo1')
else:
def foo:
print('foo2')
みたいなコード見たらなんで宣言2個あってもいいんだよ?ってなるだろ

919 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:11:46.01 ID:IDzy7BiL.net]
>>902
main関数が処理の始まりかどうかは結局下を見ないと確定しないので…
ならばトップレベルにメイン処理を書く方が安心確実と思う次第です []
[ここ壊れてます]

921 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:15:47.63 ID:4M5GqABF.net]
def main(): hoge()
def hoge(): print(‘hoge’)
main()

Pythonの評価順は基本的に上から下に一行ずつ
1行目ではdef main():までの関数シグニチャのみ評価してボディは評価されない(それがdefの役目)
2行目も同じようにdef hoge():までの関数シグニチャのみ評価
3行目の関数呼び出し時にmain関数のボディが評価される
そのタイミングではhoge関数はシグニチャが評価され関数として宣言済みなのでhogeを呼び出せる

922 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:20:45.71 ID:Rd1MW222.net]
>>901
Pythonインタープリターの気持ちになって考えればわかると思うよ
1: def main():
2:  hoge()

3: def hoge():
4:  print(‘hoge’)

5: main()
1を実行する時は2の内容をmainで登録する(この時点では2自体は実行されない)
3も同様に4の内容をhogeで登録する
5のmainの呼び出しで2が実行されて4が呼ばれるので実行順は1→3→5→2→4のようになる

923 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:24.87 ID:Rd1MW222.net]
>>906
そう思うのは自由だけどPythonでは無理だから諦めるか他の言語にするしかない



924 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:30.22 ID:F/hLZDCn.net]
>>905
宣言が2個あったところで何が問題なの?
2個あったらエラーにするルールのある言語もあるけどPythonにそんなルールない

925 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:30:33.22 ID:vJsN8meg.net]
>>906
確かにそのとおりだけど、あんまり他人を疑いすぎると禿げちゃうよ

926 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:36:27.81 ID:M2LDeL9g.net]
これからはクラス定義もクラスメソッドも関数もごちゃごちゃにして途中でjson入れたり意味なく連想配列作ったりいきなりタプルにしたり判読し辛いコード書くことに決めた
初心者が初心者になる前に躓いて読めなくなるようにしていこう

927 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:37:45.97 ID:M2LDeL9g.net]
オーバーライドしまくってやる

928 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:38:22.08 ID:M2LDeL9g.net]
意味なく戻り値にクラスメソッド使ってやる

929 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:51:18.35 ID:Rd1MW222.net]
>>910
エラーにしない言語って何?

930 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:55:09.23 ID:zrtkQxP2.net]
javascriptは同じ名前の関数が並んでてもエラーにならないな。後ろが使われる

931 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:00:48.30 ID:DfY2Iokg.net]
グローバル変数・定数の定義とか、
場合分けしてモジュール等をインポートするときとか、
これらをサブ関数の中か、その前にグローバルで書くべきかいつも悩むわ

モジュール等のインポート
グローバル変数・定数の定義
 場合分けによるモジュール等のインポート(環境依存)
サブ関数の定義
 場合分けによるモジュール等のインポート(環境非依存)
メイン関数の定義
メイン関数の実行(>>903

これ、問題ある?

932 名前:917 mailto:sage [2022/05/01(日) 16:03:56.84 ID:DfY2Iokg.net]
グローバル変数・定数の定義なんかも
サブ関数としてまとめて定義して、メイン関数で呼び出してグローバル宣言したほうがいいのかな?

933 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:08:44 ID:Rd1MW222.net]
>>916
まあjavascriptはvarで同じ変数使ってもエラーにならないような言語だしね
さすがに最近はletで重複させるとエラーになるみたいだけど



934 名前:デフォルトの名無しさん [2022/05/01(日) 16:30:44 ID:6txgexSj.net]
機能別にモジュール作って、関数詰め込んで使ってるんだが、合ってる?

935 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:30:38 ID:tQAUcym9.net]
一連の流れ見てもよくわからんのだけど、質問は何なの?

936 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:43:16 ID:CmrphzhC.net]
自分の思い通りにソース書きたいけど仕様上書けない、どうしたらいいのって愚痴

937 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:08:52 ID:tQAUcym9.net]
もう質問じゃないよね。だったら区切ってもいいでしょ

938 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:09:28 ID:Jd2/Razo.net]
わからないです

939 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:52:03.79 ID:haToe2zO.net]
>>917
普通にモジュール分割していいなら
メイン関数は定義せず__main__.pyのトップレベルに書く
定数は定数用のモジュールを用意してimport

940 名前:デフォルトの名無しさん [2022/05/01(日) 22:17:08.56 ID:b95w4aAB.net]
「オレは気に入らない」って人は生きるの辛そう。
柔軟性が無いと常に何かと戦うことになる。

941 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 23:58:05.46 ID:Hq8ES+K0.net]
こだわりなくてもいいとこなら別にそれでいいんじゃね
こだわらなきゃいけない事なんていくらでもあるだろう

942 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 00:19:51 ID:zZIONtog.net]
ノットフォーミー全盛期だよな、現代

943 名前:デフォルトの名無しさん [2022/05/02(月) 13:04:57.99 ID:ZthOcqCz.net]
とにかく在日は悪いことしかしない
在日は皆殺しにすべき!



944 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 21:11:16.99 ID:FWJ3qdnv.net]
俺も最初の頃はこだわり持って色々なこと試してたけど結局シンプルイズベストだと気づいてさっさと書くようにしたら効率上がったなぁ

まぁある程度新しいことにも挑戦するべきだけどさ
でもセイウチ演算子の使い所がよく分からないよね

945 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:15:08.74 ID:mgZ8H7hi.net]
> でもセイウチ演算子の使い所がよく分からないよね
C言語やってたら余裕
with open("sample.txt") as f:
while text := f.readline():
print(text)

946 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:20:24.93 ID:ZdlL7fiJ.net]
それfor文より何がいいの?
というかファイルのデータなくなったらエラーでないの?
while文の終了条件がわからない

947 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:51:18.93 ID:mgZ8H7hi.net]
for 文で書いてみてよ

948 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 07:44:11.89 ID:GYbp8Bpg.net]
セイウチ演算子の使い所は、PEPのExapmlesを見れば分かるのでは

https://peps.python.org/pep-0572/#examples

949 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 10:25:34 ID:lrUYCsXU.net]
>>933
for line in f: print(line)
ファイルオブジェクトはiterableで行読み込みする
てかふつうこう書かん?

>>932
https://docs.python.org/ja/3/library/stdtypes.html#truth
ファイル終端で空文字列(=偽)が返って終了

950 名前:デフォルトの名無しさん [2022/05/03(火) 16:37:55.33 ID:zAUrPbJb.net]
0.1*3==0.3がFalseになるのに、0.1*2==0.2がTrueになるのはなぜですか?

951 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 16:54:49.32 ID:zAUrPbJb.net]
解決しました。忘れてください

952 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 18:09:38.71 ID:5IHsdKXO.net]
>>937
ちなみに何故です?

953 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:47:01.45 ID:6X7U05Nz.net]
計算誤差でしょ



954 名前:デフォルトの名無しさん [2022/05/03(火) 20:19:38.25 ID:zAUrPbJb.net]
>>938
二進数だから
>>939
そうなんだけど、0.2はその誤差が何で出ないのかなってわかんなくて聞いたけど、書いてすぐわかっちゃった

955 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:45:03.55 ID:tKI6TxwO.net]
知りたい~

956 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 22:27:11.85 ID:lyrCvvNg.net]
案外やなヤツw

957 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 05:25:28 ID:8abXDPny.net]
ちんちんシュッ!シュッ!シュッ!

958 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 10:24:51.52 ID:vEkkTSCd.net]
(2^((2^(35-1))-1))*(2-(2^-4060))
の計算がしたいんだが、できないのでとりあえず
2^17179869183 の計算がしたいが、

多倍長電卓LMで一瞬で解答が得られる
2^2147483647 でさえも、

ttps://paiza.io/projects/RM8L_oSwcs5_ghDFro5Sew
でも
ttp://codepad.org/ZhAiGY69
でも
ttps://ideone.com/TeJEDo
でもタイムアウトして困っています。

959 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:32:07.83 ID:Yq75WaGa.net]
日本語でOK

960 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:38:36.07 ID:MYAXyIRK.net]
6億桁ぐらいか?
そんなのprintしろって言われても困っちゃうよ

961 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 16:24:10.63 ID:gVprMCyl.net]
>>944
そんだけデカい桁扱いたいなら
Decimal使いつつ、デフォルトの指数設定も弄らないとオーバフロー起こすぞ
https://docs.python.org/ja/3/library/decimal.html

コード例としてはこんな感じ
https://ideone.com/exndwC
(桁数6億ぐらいだから多分合ってると思う)

962 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:06:58.83 ID:vEkkTSCd.net]
>>947
どうもありがとう。
大変参考になります。

963 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:20:45.83 ID:h3TBoBMl.net]
decimal 使わずとも print しなけりゃ時間内に終わるよね?



964 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:22:51.83 ID:h3TBoBMl.net]
https://ideone.com/xXhkPf

965 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:37:43.73 ID:vEkkTSCd.net]
有効桁数100桁で2^17179869183の計算ができました。
https://ideone.com/dqhOTo

どうもありがとう。

966 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 18:05:45.24 ID:vEkkTSCd.net]
>>949-950
カレットが使えないんじゃないかな?
計算結果が違っている。
ttps://ideone.com/SNjYuo

**で置き換えてみたがランタイムエラーになる。
ttps://ideone.com/F2N5yS
ttps://ideone.com/WUSd0H

967 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:04:52.15 ID:h3TBoBMl.net]
元の式をコピペして動いたと思っちゃった。
確かに ** にしないと計算結果違っちゃうね。
python の int は多倍長計算してくれると思ってたけど
上限あったのね。勉強になったです。

968 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:44:57.60 ID:SUkJat8/.net]
>>940
これ教えてください

969 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:54:23.21 ID:Rtfrs1Kx.net]
>>954
二進数 誤差
でググりもしてないならこの分野向いてない

970 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:58:06.37 ID:SUkJat8/.net]
>>955
なんで0.2も0.3も二進数で表現できないのに0.2は誤差がでないんですか?

971 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:20:06.74 ID:Rtfrs1Kx.net]
>>956
答えとしてはたまたまでPythonの浮動小数点の実装方針

>>> [(x, 1e-1 / 10 ** x) for x in range(10)]
これでイメージつくかも

972 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:33:08.66 ID:/WvxkOMY.net]
仮数部が等しいから当然

973 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:51:52.77 ID:tw5Ro1fM.net]
0.2 に誤差がでないのではなく、
誤差付き 0.1 を2倍した結果が、誤差付き 0.2 と等しくなる、
というだけ

0.1, 0.2 を二進数にすると、それぞれ以下の無限小数になる

0.00011001100..
0.0011001100..

これらを正規化すると、以下のようになる

1.1001100.. x 2^-4
1.1001100.. x 2^-3

つまり、仮数部が同じで指数部が 1 だけ異なる

float の仮数部の桁数は小数点以下 52 桁なので、
53 桁目で丸められて誤差が入るが、
元の仮数部が同じなので、丸められた結果の仮数部も同じ



974 名前:デフォルトの名無しさん [2022/05/05(木) 22:29:18.63 ID:VIM8YOLC.net]
優しみがゴイスー

975 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 01:20:26.74 ID:wPj9y4p8.net]
2進数の11 は、3 だけど、
110なら6、1100なら12

指数部の指定で、桁がずれるだけで、仮数部は同じ。
仮数部は2桁で、11とする

10進数の11 は、11だけど、
110なら110、1100なら1100

これも指数部の指定で、桁がずれるだけで、仮数部は同じ。
仮数部は2桁で、11とする

976 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 13:14:50.97 ID:2qmSGQfh.net]
プロジェクトのパッケージ構成で質問
https://packaging.python.org/en/latest/tutorials/packaging-projects/#packaging-python-projects
上記内の例で__init__.py、example.pyが存在するのはsrc直下ではなくて、その中にあるexample_package内であってますか?

977 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 22:17:49.52 ID:hLdUgsLX.net]
>>947で教えて頂いた
https://ideone.com
のdecimalのemaxって最大9を何個まで指定可能か知ってますか?

とりあえず801個まではテストしてみて動きましたが。

978 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 07:16:57 ID:rAxhmZ4o.net]
decimal.MAX_EMAXに書いてある

979 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 08:22:04 ID:vKAQqA9f.net]
>>964
どうやったらそれを画面出力できるの?

print(decimal.MAX_EMAX)
NameError: global name 'decimal' is not defined
print(MAX_EMAX)
NameError: global name 'MAX_EMAX' is not defined

980 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:10:53.78 ID:lPzTyKes.net]
リファレンスの読み方の勉強からはじめたら?

981 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:12:41.48 ID:8ykKyj07.net]
__
    ̄ ̄ ̄二二ニ=-
'''''""" ̄ ̄
           -=ニニニニ=-


                          /⌒ヽ   _,,-''"
                        _ ,(^ω^ ) ,-''";  ;,
                         / ,_O_,,-''"'; ', :' ;; ;,'
                     (.゙ー'''", ;,; ' ; ;;  ':  ,'
                   _,,-','", ;: ' ; :, ': ,:    :'  ┼ヽ  -|r‐、. レ |
                _,,-','", ;: ' ; :, ': ,:    :'     d⌒) ./| _ノ  __ノ

982 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:23:18.61 ID:abjrWq6f.net]
あのさぁ、俺はお前らを「道具」として見てンだわw
俺が聞いたらお前らは素直に答える。これだけでいいのw

decimal.MAX_EMAXの出力方法教えろやおらぁwwwwwwwwwwwwwww

983 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:26:59.55 ID:gMjR/OFO.net]
https://docs.python.org/ja/3/library/decimal.html#constants



984 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:29:39.59 ID:3lpfIXfe.net]
NameError: global name 'decimal' is not defined
これを解決すればいいんじゃない?

985 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:30:11.41 ID:rWXY/EV0.net]
>>965
まずdecimal.MAX_EMAXの値はリファレンスに乗ってる
https://docs.python.org/ja/3/library/decimal.html
の定数って所

で、コードで確認する例もおいておく
https://ideone.com/gt9i0u

986 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:34:38.39 ID:vKAQqA9f.net]
>>969
書いた通りリンク先に書いてある(18個)以上の9の数を設定できちゃうんだけど、
9の数が999999999999999999個ってことなの?
でも1601個設定して10^10^1600を計算したらエラーになったぞ。

987 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:09:59.71 ID:vKAQqA9f.net]
ごめんなさい。1600個いけました。9の個数が足りてませんでした。
9の数が999999999999999999個まで行けそうですね。

すみません。

988 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:20:28.56 ID:vKAQqA9f.net]
ctx.Emax = 10 ** 100000 # 指数上限を増やす

とかできるね。

989 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:33:25.17 ID:vKAQqA9f.net]
処理時間と表示桁数の関係であまり大きいとエラーになるけれども

10^10^2000
https://ideone.com/hjMW7h

このくらいまではいけますね。

990 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:50:23.38 ID:vKAQqA9f.net]
10^10^100000
https://ideone.com/PIILdo

ctx.Emax = 10 ** 10 ** 5
これを
ctx.Emax = 10 ** 10 ** 6
にすると5秒ではタイムオーバーする。

なので上記が限界かな?

10^10^100001(エラー)
https://ideone.com/Og9zW4

991 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:59:02.46 ID:afn9JDvJ.net]
>>847
どんな感じ?

992 名前:デフォルトの名無しさん [2022/05/13(金) 02:25:52.93 ID:LdGyp25/.net]
class sub(tk.Toplevel):
__WIN: tk.Toplevel|None = None

__def __init__(self, root):
____if win:= self.__class__.WIN:
_______win.focus_set()
_______return
____super().__init__(root, name='sub')
____self.protocol('WM_DELETE_WINDOW', self.onExit)

__def __onExit(self):
____self.__class__.WIN = None
____self.destroy()

rootにサブ画面呼び出しボタンがある. 以下のような感じ
btn['command'] = onShow
def onShow(self):
__sub(self.root)

サブ画面はシングルトンにしたい.あればハイライトする,なければ画面生成
で上記の感じで書いて,問題なく動いてはいるんだけど
tkinterのtoplevelのシングルトン表現ってこれでいいんだっけ? __new__に仕込むんだったかな
ボタン押すたびに無駄なインスタンス生じてる気がするんだけど,GCあるし問題ない?

993 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:06.47 ID:n1VwRTHA.net]
Pycharmについての質問なんですが
コードを書いてる途中に出てくる
self:Canvas,からはじまる吹き出しを消したいのですが
どこかの設定なのかプラグインなのかわからなくて困っています
よろしくお願いします



994 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:46:26.19 ID:BQcMDz1x.net]
pandasでgroupbyにGrouperつかってas_index=Falseにすると
Grouperで使用した日付がどこかいっちゃうんですけど仕様なんですか?
df.groupby(pd.Grouper(key="Date", freq="MS"), as_index=False)[["hoge"]].sum()
as_Index=Falseからreset_indexで代わりはいけるのですがなんとも…

995 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:48:07.41 ID:BQcMDz1x.net]
>>980
最後の行間違ってました
as_Index=Trueからreset_index

996 名前:デフォルトの名無しさん [2022/05/20(金) 10:26:37.96 ID:gFWhc+m8.net]
>>978
厳密にやりたいなら、metaclass使う方法なんだけど、
すごくデカイものじゃなかったら、起動時に1回切りで作ってしまうのもありだし、
lazyにしたければ、呼び出し時にインスタンスがNoneかどうか判定する処理を挟むだけ。
どっちも簡易的なシングルトンになる。
そもそも、GCさせないのがシングルトンの目的でしょ?
一般論として、シングルトンはデメリットも大きいことは理解しておく必要がある。
たとえば、画面とデータの同期を常に意識しないといけないとか、その関係でリークの原因になりやすいとか。
そういうのが面倒であれば、シングルトンをやめて画面を再作成する方がいい。

997 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 18:02:35.80 ID:/hGmbW/Z.net]
FlaskでWebアプリケーション作ってHerokuに上げる練習しているのですが
Herokuにデプロイした時、requirements.txtの内容のパッケージをインストールしてるみたいですけど
autopep8とかもインストールしてるのにさっき気がつきました
こういう、開発するときは使うけど本番では使わないパッケージってのはどう管理するものなのでしょう?
パッケージはpipでインストールして、pip freeze > requirements.txt しました
気にしなくてもいいんでしょうか

998 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:12:30.17 ID:KFSuZxfk.net]
>>983
pip標準だけだとdev dependencyを指定する方法はないと思うよ
HerokuはPipenvのPipfile.lockにも対応してるので
Pipfile使って[dev-packages]で指定すれば?

999 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:21:22.65 ID:/hGmbW/Z.net]
>>984
ありがとうございます
やっぱりフォーマッタとかがHerokuにインストールされちゃうのはちょっと嫌なので
Pipenv調べてみます

スレ立て挑戦してみます

1000 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:28:24.41 ID:/hGmbW/Z.net]
立てました。

【まず1嫁】くだすれPython(超初心者用) その57
mevius.5ch.net/test/read.cgi/tech/1653225908/

1001 名前:デフォルトの名無しさん [2022/05/24(火) 16:41:49.28 ID:IF15Gljx.net]
ファイル読み込みでawkで言う'/hoge/,/fuga/{ print }'みたいに特定の文字列を含む行から特定の文字列を含む行のみを表示するにはどうすれば良いですか?
hogeがマッチしたら出力フラグ立てて、fugaがマッチしたらフラグ消すとかみたいなの以外でお願いします

1002 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 17:09:56.59 ID:78F716Pq.net]
>>987
正規表現使うか行単位のイテレータを使うか

1003 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:54:30 ID:LbC2GlL6.net]
インターネット接続が制限されたWindows上でPythonを利用したくなり、
NumPyやpandas等、必要だったパッケージが同梱されていたこともあり、
WinPythonを利用しています

同じようなことを、同様な環境のLinux(Alma Linux 8)で利用したいと思っており、
Anacondaを利用してみましたが、Windowsと同じように使いたく思ってます

Linux向けのPythonディストリビューションで、pip系で運用できるものは
何かありますでしょうか



1004 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:20:04.09 ID:4ToCs4sv.net]
>>989
公式からソースとってきてビルドするだけでpipは使える
Linuxが古すぎると必須ライブラリも自前でビルドする必要はあるだろうけど

1005 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:36:49.09 ID:LbC2GlL6.net]
>>990
なるほど
自前ビルドならpipも使えますね

自前ビルドして、使うパッケージをpipで導入する、という作業をするものとして、
WinPythonのように、既に各種のパッケージが導入された、
Linux向けのPython環境というものがあれば紹介いただけますでしょうか

1006 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 06:33:05 ID:Re2gLZE7.net]
イテレータとイテラブルの項読んでると頭おかしくなるわ

要は「反復可能なオブジェクト」と「反復不可能なオブジェクト」があって
反復可能に設定されてるオブジェクトはnext()とかが使えて

「反復不可能なオブジェクト」はnext()とかは使えないけど
for ... in ,,, にこのオブジェクトをいれると
内部ではiter()の中にぶちこまれてるから反復動作をするようになる

つまり「反復不可能なオブジェクト」でもiter()に入れれば良いんだが
実は「反復不可能なオブジェクト」にはiter()を使えないものもある
iter()が使えるものをイテラブル、と分類している

[オブジェクト]
 ├[イテレータ] next()などOK
 │  └[イテラブル] iter() OK
 │
 └[not イテレータ]next()などNG
    ├[イテラブル] iter() OK → next()などOK
    └[not イテラブル] iter() NG

ということ?

1007 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 07:59:09.30 ID:6BOKaYJy.net]
イテレータは自身を返すiter()を実装しなければならないので、
イテレータはすべてイテラブルでもある

for ... in ,,, は、iter()の結果に対してnext()を複数回呼び出すので、
イテレータでもイテラブルでも動作する

[オブジェクト]
 ├[イテラブル] iter() OK
 │  ├[イテレータ] next() OK
 │  └[not イテレータ] next() NG
 │
 └[not イテラブル] iter()もnext()もNG

1008 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 11:22:58.61 ID:3ilbGXWX.net]
ミュータブルかイミュータブルかイテラブルかシーケンスかそれぞれの型にどの役割を当てられるかの感覚もつといいよ

1009 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 12:31:24.08 ID:Re2gLZE7.net]
>>993-994
ありがとう
ちょっとよく解んなくなってたわ
何度も学べば慣れるかな

1010 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 13:02:02.70 ID:G7XbJ25h.net]
>>995
その辺り分類を掘り下げんでも良いのではなかろか
イテラブルはiter()が使える反復可能オブジェクト
イテレータはそれで返される物くらいのニュアンス

ではイテレータ(型)とは何かって、next()など統一的な方法で
文字列でもリストでも辞書でもファイルでも各要素を反復するため
抽象化されたインターフェイス、主に対象への参照と現在位置を保持する

1011 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 14:19:59.15 ID:ercqZUlb.net]
公式リファレンスは正確性は高いが分かりやすさはお世辞にも高いとは言えないので
公式で分かりにくいと感じたらもう少し分かりやすく書いてる自分に合った補完サイトも読んだ方がいい

1012 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 17:37:58 ID:3ilbGXWX.net]
>>995
必ず慣れる
でもその前に情報を整理する方が大切かもしれない

1013 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 08:30:29.68 ID:BQs+AO7P.net]
python iterable sequentialとかで画像検索すれば分かりやすいベン図みたいなのが出てくるよ



1014 名前:デフォルトの名無しさん [2022/06/05(日) 08:48:37.88 ID:Sg+yaBaV.net]
56埋まるまえに57に書いちゃったよお

1015 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 160日 7時間 10分 28秒

1016 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<297KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef