【まず1嫁】くだすれPython(超初心者用) その59

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2023/07/13(木) 18:48:41.56ID:INS7SIu4
当スレに★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/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2024/02/25(日) 20:23:29.26ID:hMq2Qtw2
termuxかpydroidかなあ?
2024/02/25(日) 20:32:04.31ID:hMq2Qtw2
python以外もつかうならtermux、uiが使いたいならpydroidかな?
2024/02/25(日) 21:17:43.23ID:oObtEil6
>>395,396
レスありがとう
どちらかというと開発環境みたいな感じなんですね
ほかにQPythonとかQPython 3Lとかはどうですか
よりシンプルな実行環境という観点からするとどれになるのでしょうか
2024/02/26(月) 23:37:11.68ID:GBHslgGd
レビュー見る限りその2つはあまり良くなさそうだね
2024/03/05(火) 16:51:36.85ID:90GfYifC
凄い基本的な質問なんだけどライブラリのことを考えるとPythonはanacondaとPythonそのままどちらのほうがお勧めですか
または他にお勧めのツール?的なのある?
2024/03/05(火) 17:04:30.62ID:90GfYifC
ライブラリじゃなくてモジュールでした
2024/03/05(火) 18:49:14.75ID:xnDaPNvs
とりあえず、公式実装のCPythonでいいのでは?
やりたいことが明確になってから必要に応じてanaconda環境を構築すればいいと思う
2024/03/06(水) 15:55:05.95ID:fNmftXEr
何かライブラリなどをインストールしようとするたびにエラーがでて説明通りにできない
こんなもん?
2024/03/06(水) 16:59:36.65ID:0Fz1GTqO
説明が悪いんでは
前提としてる環境が違っててそこまでは書かれてないとか
2024/03/06(水) 18:30:41.18ID:vezaZ1iv
>>402
その説明では分からない
405デフォルトの名無しさん
垢版 |
2024/03/07(木) 20:32:37.26ID:aIlNu4oQ
自分はPycharmのflaskでウインドウズでは環境構築できなくて諦めました
同じことやってるのに、Macでは動いてウインドウズではエラー
Pythonって学ぶスタート地点に立てない人少なくないかも?
2024/03/07(木) 20:50:36.75ID:Xi0SwO4p
>>364
マジで誰でもできるよ
Pythonに限らずだけど経験一年以上とかで求人出てるし
俺は学歴で落とされたがね
そもそもanaconda使いながらpipとか使うと環境壊れるよ
2024/03/07(木) 20:53:48.81ID:Xi0SwO4p
>>359
まぁ人によって印象違うんだろうな
俺はPHPはもう一生触らないと決めたけど

そしてイテレータやらクロージャやらやんなくていいから
そういうのは出てきた時に意味が分かれば十分
2024/03/08(金) 00:09:38.55ID:xxGRRb0E
基本、全言語はLinux 用。
Windows 用は、C# だけ

だから、Windows 10 から、WSL2・仮想マシンでLinuxを起動できるし、
Docker Desktop も使える

だから、Windows/Mac ネイティブ機械語は動かない。
Linux用のソースコードを、Windows/Mac用コンパイラで機械語にするのは邪道

でも、MacはUNIX のBSD だから、Linuxと似ているので、まずまず動くけど、
仮想マシンでLinuxを起動する方が確実

Windowsで、MSYS2, Visual Studio でコンパイルすれば、Winodows用の機械語になる。
しかし各モジュールの作者は、面倒くさいからLinuxにしか対応しないので、
Windows/Macでは動かない
409408
垢版 |
2024/03/08(金) 00:21:23.96ID:zqy1N+OL
なぜ、Windows/Mac用のネイティブ機械語にしたいのかと言うと、
仮想マシンでLinuxを起動したくないから。
2つのOS が動くから

その代償に動かなくなる。
Linuxじゃないから、Docker Desktop も使えないし

例えば、自分がC/C++ のモジュールを書く時、Linuxにしか対応しないよな。
Windows/Mac用のファイルシステムや、プロセス/スレッドに対応しないはず。
3つのOS で動くようには書かないはず。
面倒くさい
410デフォルトの名無しさん
垢版 |
2024/03/08(金) 00:50:54.05ID:FJDucPJF
>>408
またこの馬鹿の書き込みか
ruby馬鹿よりはマシだけど
2024/03/08(金) 04:38:04.66ID:xViuWNSj
クロージャとデコレータが極悪に難しい
ドキュメントや本を何冊も読んだが何のためにどうやって使う機能なのかさっぱりわからず自己嫌悪に陥る
この世は無知な方が幸せなんだよな…
2024/03/08(金) 15:18:49.79ID:b4tlhFyW
python齧ったけどわけわからん
やっぱCOBOLがわかりやすいわ
2024/03/08(金) 16:10:05.35ID:JEcqFwbk
Pythonで何作れたら中級者くらいって言えるかな?ゲームとか?
2024/03/08(金) 16:11:57.72ID:uXHmVfiG
VS Code使ってたせいだか何だかわからんけど、気分変えて作業フォルダを変更したらimport命令で自作モジュール読み込みするとエラーに。
メインpyファイルと同じフォルダの別pyファイルがimportできない

ぐぐりまくってsys.path.append("ここに任意パス")で上記フォルダの絶対パスを指定したらいけたが、
じゃあそもそも元のパスはなぜ指定もせずにimport出来てたのかっていう疑問が残った。なんか怖い
2024/03/08(金) 16:15:01.89ID:uXHmVfiG
ちなみにこういうエラーね
ModuleNotFoundError: No module named 'My_Mod'
416デフォルトの名無しさん
垢版 |
2024/03/08(金) 16:40:50.56ID:T/tXaIRT
>>414
そうですね。
怖いですね。
2024/03/08(金) 17:18:26.85ID:YKaVE2hY
>>414
もしかして:Pythonのバージョンも違う
418デフォルトの名無しさん
垢版 |
2024/03/08(金) 18:34:14.21ID:1bn2hcNH
>>414
https://docs.python.org/ja/3/tutorial/modules.html#the-module-search-path
には、
「入力されたスクリプトのあるディレクトリ (あるいはファイルが指定されなかったときはカレントディレクトリ)。」がsys.pathに含まれてるって書かれてるのに変だよね
絶対パスを書く他にも、
os.path.abspath(__file__)とかする方法もあるよ
pathlibでPath(__file__)と書いても良いけれど(自分は実はこっちばかりだけど)
2024/03/08(金) 22:04:15.13ID:Olq6J6jV
>>402
pip環境が壊れちゃったのかなあ
2024/03/09(土) 02:10:53.23ID:V+9wfNne
外部ライブラリはPythonの強みであり同時に弱みでもあるね
ライブラリがらみのトラブルで世界中でどれだけの人生が無駄に消費されているだろうか
2024/03/09(土) 02:23:23.87ID:RQZY5Guv
Ruby のrequire が使うロードパスには、
current working directory(cwd) は含まれていないから、

require 'abc' はエラーになるけど、
相対パスのrequire './abc' はOK

一方、require_relative 'abc',
require_relative './abc' は、どちらもOK

相対パスも、その起点がどこからかという問題もある。
ファイルからの相対なのか、cwd からの相対なのか

cwd を変えて、実行してみればよい
2024/03/09(土) 05:27:46.59ID:b/ATK8wU
結局開発環境だと.venv/bin/activateの中にPYTHONPATH書くのが早いんだな
423デフォルトの名無しさん
垢版 |
2024/03/09(土) 12:09:06.37ID:innwL8du
開発環境でもpip installしたほうが
424デフォルトの名無しさん
垢版 |
2024/03/09(土) 12:15:40.44ID:innwL8du
配布先とか別環境でも同じ使い方できるから楽
なんとかtoml最小限書くだけでできるよね?
レス別れちゃってごめんね
2024/03/09(土) 12:47:03.50ID:hNim5q60
venvで細かく分けて保存
何かインストール難しそうなものがあったら
新たな環境作ってそこにpip install
それで壊れたらその環境捨てる

という訳で気付いたら環境が15個とか出来てる

anacondaでconda-forgeから取れるようにすると少し楽だが、いずれにしても管理の習慣が無い人ほどしくじり易い
「どうせ上手く行くから大丈夫じゃねーの?」と舐めプして
基本環境にpip失敗してpython丸ごと再インストールとなる

一般に「アップデートして最新にしましょう」というのがOSや市販アプリなら常識だが
pythonでは他ライブラリとの相性もあり、何でもかんでもupdateすると怖い
conda update condaはさすがにまあ安全だが
426デフォルトの名無しさん
垢版 |
2024/03/09(土) 17:35:27.63ID:KPeEXLi+
>>425
>基本環境にpip失敗してpython丸ごと再インストールとなる
ここがちょっとわかんない
2024/03/09(土) 18:34:45.65ID:bB58iYl/
管理者権限でpip実行してんじゃね?
2024/03/09(土) 19:30:49.00ID:b/ATK8wU
AIないと何もブログラミング出来ないんだけどこれでいいのだろうか
2024/03/09(土) 21:56:34.21ID:Dg4V+RZb
>>428
いいんだよ
プログラミングなんて本来人間のやる作業じゃない
コンピュータのことはコンピュータに任せりゃいい
人間にしかできない仕事をやればいい
430デフォルトの名無しさん
垢版 |
2024/03/10(日) 04:36:05.69ID:YuaEvpE6
>>429
こういう馬鹿ばっか
431デフォルトの名無しさん
垢版 |
2024/03/10(日) 05:30:03.67ID:DGzgjbzK
使えるものは使いこなして効率や生産性をあげないと
使いこなす人に出し抜かれる
有能なアシスタント雇ったと思えばいいじゃないかな
2024/03/10(日) 08:41:17.31ID:GTFEZR4A
>>430
ChatGPT使って書いてみなよ
今までプログラミング技術の習得に費やしてきた時間が全て無駄だったとわかる
433デフォルトの名無しさん
垢版 |
2024/03/10(日) 11:04:27.88ID:xltcl5gU
>>432
全くそうは思わないな
matplotlibみたいな使うのにリファレンス読む時間がめちゃくちゃ長いのは勉強しなくてよくなった感じがするけど
ChatGPTに短い日本語で指示すれば書けるようなプログラムしか書けるようになってないだけだと思うよ
超初心者スレでいうのもあれだけど
434デフォルトの名無しさん
垢版 |
2024/03/10(日) 12:28:14.94ID:2l3n+JcC
Excelのマクロ記録というものも知らなそう
435デフォルトの名無しさん
垢版 |
2024/03/10(日) 17:18:49.80ID:NwXd028v
漁獲を Excelで管理するということ?
2024/03/10(日) 22:53:10.30ID:+HoghBJd
サバの管理も必要
437デフォルトの名無しさん
垢版 |
2024/03/12(火) 18:56:30.23ID:ArnB6rOr
関数間を1行空けると、Vimの Pymodeに、
1 error| expected 2 blank lines after class or function definition, found 1
と怒られ、3行空けると
1 error| too many blank lines (3)
と怒られ、余計なお世話に憤激した。

https://peps.python.org/pep-0008/#blank-lines
> Surround top-level function and class definitions with two blank lines.
などと書かれてあるが、お前等、きっちり2行空けているのかね。
438デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:47:34.41ID:BkSU/P3i
>>437
空けてる
だってflakeに怒られるんだもん
どうでもいいような書き捨てコード書くときはそもそもJupyterとかで書いておしまいだから
PEP8とか気にしないけど、IDEで書いてる時点でメンテナンス性を意識しているから、
PEP8のようなルールに従っておこうという気持ちになっている
439デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:47:41.26ID:vXSbeabq
__ <- このアンダーバーをインデントと仮定する

for x in xs:
__for y in ys:
____for z in zs:

このようにxyzの多重ループで
zからyの所に抜けたい場合とzからxに抜けたい場合に
書き分けられる構文 python3にある?

perl5 で書くとこんなラベル構文がある
https://ideone.com/rIV69S
2024/03/12(火) 22:53:07.42ID:uGnBKOkv
https://github.com/PyCQA/pycodestyle/issues/400
シンプルなようで厳格化するのはたいへんでおもしろい
2024/03/12(火) 23:00:25.97ID:uGnBKOkv
>>439
インデントが空白4文字な世界だと
その場で3重の入れ子なんて書かないから
関数かなんらかのブリッジが介在するはず
だから例外や返り値でいくらでも制御できる
デコレータつかうのといいかも
442デフォルトの名無しさん
垢版 |
2024/03/12(火) 23:05:19.86ID:n3W+Fun6
>>439
gotoパッケージを入れて、goto文を使ってもいいが、そんなループをしないといけないのか?
443デフォルトの名無しさん
垢版 |
2024/03/12(火) 23:10:52.05ID:n3W+Fun6
>>439
ループする条件とbreak文の組み合わせでもいいのに
ネタなの?
2024/03/12(火) 23:22:29.84ID:oG8PduKS
>>437

きっちりつか、autopep8かけるだけ。
445デフォルトの名無しさん
垢版 |
2024/03/13(水) 00:57:33.03ID:TCqO/DNK
Pythonはかなり古めかしい考え方のプログラミング言語だからな
2024/03/13(水) 02:43:27.57ID:ptopN5lQ
Ruby で、多重ループから一気に抜け出すのは、
ラベル付きのKernel.#throw/#catch を使う
2024/03/13(水) 05:11:03.78ID:NVpOWzEq
Rubyはcallccあるんじゃない?なんでもできるでしょ
Pythonもコルーチンあるから今のVMで実装はできそうだけど
あえて提供してないんだろうな
2024/03/13(水) 08:24:43.29ID:fKc7/92t
あれ、breakやcontinueの後に脱出先のラベル名を指定できたはずだが
別の言語だったかな?
2024/03/13(水) 08:38:24.40ID:6IE1D2aF
javaだな
450デフォルトの名無しさん
垢版 |
2024/03/13(水) 12:46:02.87ID:q50ahorY
>>441
インデントが空白4文字であることと入れ子を3重にしないことの因果関係が不明
関数やブリッジを介在した方がわかりにくいコードになることもあるぞ
そもそもCでも空白4文字インデントを使うことが多いが、
普通に3重ループは出てくるでしょ
例えばここ
https://github.com/numpy/numpy/blob/9de8a809efa4c8193a168af9191a0c69290db3e4/numpy/_core/src/umath/ufunc_type_resolution.c#L1517

波括弧がないからlambdaでreturnを持つ複数の文を1つの式で扱えないとかだったらわかるけど、
インデントは関係ないでしょ

綺麗なコードを設計しよう、書こうとしてさまざまななテクニックを知ろうとする意識は大事だと思うけど、
実践なしに本とかに書かれてた「このテクニックはこういうときに使う」を鵜呑みにして、
テクニックを使わない方が見通しが良くなるような簡単な場合にも無理に使おうとするのは
よくないと思うけどなあ。デザインパターンの濫用みたいな感じ。
戻り値で判定はあり得ても例外はあり得ないわ。
誤用としか言いようがない。
2024/03/13(水) 13:02:27.40ID:q3MDl01V
for~else ってなんか直感的じゃない気がするんだけど、なんで「else」なの?

completed
breaked, aborted
finally
みたいな単語なら分かりやすいのに。
2024/03/13(水) 13:27:55.78ID:baZhL1uT
すげえ大昔からあるんだな
https://stackoverflow.com/questions/682185/which-version-of-python-added-the-else-clause-for-for-loops
2024/03/13(水) 15:16:21.22ID:NVpOWzEq
>>450
妄想がはげしい
5chで5行超えたら一旦立ち止まろう
後半句点も復活しているw
2024/03/13(水) 15:54:43.36ID:m9o7WxBh
>>439
それ用の構文は無い
大域脱出の代替手段はいくつかあるけど基本的には早期リターンで対応する
その例だと内側の2重ループを関数化してbreak, continue, return(もしくはyield)で対処可

>>451
for-elseはBad Partsなので使わない
Effective Pythonにも使うなと書いてある
よくある”not found”みたいな処理はfor文の一部としてではなく
一つ上位でハンドリングすべき処理なので役割分担が間違ってる
455デフォルトの名無しさん
垢版 |
2024/03/14(木) 03:42:52.99ID:/Z8fZW3i
>>453
どの辺が妄想なの?
すぐ5行以上とかのレスに長文乙って返してくる人どの板にもいるけど根拠が示されて若干長くなった文章読めないの?短文でマウントとるだけのレスほどくだらないものはないと思うけどね
句読点があったりなかったりすると何が問題なわけ?
447では意味ありそうなレスしてるのに一方で煽るとは不思議な人だね
2024/03/14(木) 19:42:58.77ID:4bFX29zW
pythonをサーバーでプロジェクトルートを認識させられない

NoModuleNamed"プロジェクトのフォルダー名"になる

herokuなんだけど
457デフォルトの名無しさん
垢版 |
2024/03/14(木) 21:13:08.36ID:xE50NtDY
>>450
日本だと4つが一番多いが、外国だと8つも多く、16すらある。
2024/03/15(金) 13:14:40.59ID:6p0ry24q
pygameのlineを使い時計の秒針のようか円を描こうとしたんですがうまく行かない
どこが悪いの???
2024/03/15(金) 13:15:14.89ID:6p0ry24q
import sys
import math
import numpy as np
import time
import pygame

pygame.init()
WHITE = (255,255,255)
WIDTH, HEIGHT = 400, 300
SURFACE = pygame.display.set_mode((WIDTH, HEIGHT))
FSPCLOCK = pygame.time.Clock()

center_x = WIDTH // 2
center_y = HEIGHT // 2
def main():
while True:
for event in pygame.event.get():
if event == pygame.QUIT:
pygame.quit()
sys.exit()
2024/03/15(金) 13:15:36.25ID:6p0ry24q
for theta in range(0, 360, 20):
rad = math.radians(theta)
R = np.array([[math.cos(rad), -math.sin(rad)],
[math.sin(rad), math.cos(rad)]])

point = np.array([center_x, center_y])
rotated_point = np.dot(R, point)

x = rotated_point[0]
y = rotated_point[1]

pygame.draw.line(SURFACE, WHITE, (center_x, center_y), (int(x), int(y)))

time.sleep(1)
pygame.display.update()
FSPCLOCK.tick(100)

pygame.quit()
sys.exit()

if __name__ == '__main__':
main()
2024/03/15(金) 14:06:44.19ID:6p0ry24q
うまく行かない→画面外にlineの先端が飛び出す です
2024/03/15(金) 15:38:52.20ID:NWS7XA3x
>>461
これを試してみてくれ
point = np.array([0, -center_y])

x = rotated_point[0] + center_x
y = rotated_point[1] + center_y
2024/03/15(金) 15:59:41.53ID:6p0ry24q
>>462
ありがとう
円になりました
464デフォルトの名無しさん
垢版 |
2024/03/15(金) 17:26:12.14ID:8JWNUOHY
>>456
なんで?
2024/03/15(金) 17:38:05.39ID:NWS7XA3x
>>463
座標回転は原点からのベクトルにしてから回転して
後で始点座標を加算する
後、縦横の長さが違う時は短い方に合わせないと飛び出す
必要なら1/2、1/4などして長さを調節する
画面サイズを元にスケーリングして長さを求めるのは画面サイズに依存しないやり方
2024/03/15(金) 17:46:21.03ID:F3qtk1ON
>>464
project_xっていうような名前のプロジェクト名だったけどherokuを覗いてみるとそんなフォルダーはなくて/app/って名前になってた

だから相対パスや絶対パスを消して全部プロジェクトルートからのimportにした(ここらへんよく分かってない)

あとherokuでポスグレ使うためにadd-on入れて、自動生成されたsqlalchemyに接続するためのDATABASE_URLっていう環境変数の中身であるpostgres://から始まるurlが正しくはpostgresql://でコード中で直す羽目になった

色々とherokuは使いやすくない
これならawsでも学べばよかった
2024/03/15(金) 17:47:08.11ID:F3qtk1ON
あとgitのdevelopブランチをpushしてたけどherokuはmasterしか見ないらしくそれもハマった
468デフォルトの名無しさん
垢版 |
2024/03/15(金) 21:48:19.54ID:8JWNUOHY
>>466
>だから相対パスや絶対パスを消して全部プロジェクトルートからのimportにした(ここらへんよく分かってない)
https://devcenter.heroku.com/articles/getting-started-with-python?singlepage=true
https://devcenter.heroku.com/articles/python-pip
この辺みたらpipでインストールできるようにしてたらコード書き換える必要なさそう

herokuに限らずデプロイするのにコード書き換える必要がでてきてしまったのはパッケージの構成がよくなさそう
何にしろ別環境にデプロイする以上、pipでインストールできるような構成にした方が楽だよ
469デフォルトの名無しさん
垢版 |
2024/03/15(金) 23:44:29.33ID:gLD47Opc
>>451
条件式がTrueのときループして、条件式がFalseのときelseになる
forもwhileもループ目的でつかうので、条件式がFalseのときというのは自然と終了時になる
たとえば下記のようなループしないコードだとfalseとだけ表示される

while True == False:
____print("true")
else:
____print("false")
470デフォルトの名無しさん
垢版 |
2024/03/16(土) 00:23:50.73ID:tIIuw8RV
いやいや
471デフォルトの名無しさん
垢版 |
2024/03/16(土) 00:34:26.59ID:IFaiGfVE
キーワードを節約のために同じ単語を使ってるけど
if-elseのelseと
try-except-else-finallyのelseと
for-else/while-elseのelseと
みんな意味が違う

ループのelseは”if not break”
2024/03/16(土) 00:41:49.95ID:ENgm2ZqF
意味を与えたら異なってくるけど
内部処理は同一にみえん?
2024/03/16(土) 03:10:31.74ID:KKwFKDp9
全部gotoやろなあ
2024/03/16(土) 05:06:55.01ID:aWIocRO6
herokuにアップしたらドメインとフォルダーの間のスラッシュが何故か2つになって恐らくそのせいで404とcors error出る
ローカルではちゃんと動くし有り得そうなところは全部見たんだが

もうfastapi、react、herokuのどれのせいなのかわからなくて積んだ

elastic beanstalk に変えてデプロイし直すか.....
475デフォルトの名無しさん
垢版 |
2024/03/16(土) 10:02:19.46ID:eI+Kyosu
なんか、ドキュメントとかログとか読まなそうな人だな
476デフォルトの名無しさん
垢版 |
2024/03/16(土) 10:47:04.93ID:h3KSZFE8
>>473
ジョークにマジレスしちゃうけどgotoする条件の違いが重要

goto if false
goto if no exception
goto if no break
2024/03/16(土) 12:00:46.66ID:KKwFKDp9
>>476
(なので同一には見えないの意味でした. 補足ありがとう
2024/03/16(土) 13:00:21.70ID:BNVm3LV8
たぶん予約語を増やしたくないからelseを流用したんだろうね
この辺は言語設計のさじ加減だから仕方ない
2024/03/16(土) 13:18:07.52ID:gBCe/Ijm
try-exceptのelseってtryに全部書きたくない人が使うの…?
2024/03/16(土) 14:41:32.39ID:fX07kGnW
こんな混乱が起こる構文なので
使わない方がベター
実装されてる機能が全ていいとは限らない
2024/03/16(土) 15:25:29.24ID:S+aPEpZd
例外が発生するかもしれないけど上のexceptに混ぜたくない処理を書きたい場合とか?
482デフォルトの名無しさん
垢版 |
2024/03/16(土) 23:03:57.53ID:1SZ3hjNN
forのelseというのは
forに対するelseではなく
forのループの条件式に対するelse

だから意味は違っても内部処理は同一となる
なのでif-elseをループさせてやるとfor-elseと同じ処理を再現できる
https://ideone.com/2MULxa
483デフォルトの名無しさん
垢版 |
2024/03/16(土) 23:25:35.65ID:HgWB99Ut
>>482
なるほどね
言わんとしてることは良くわかったわ
2024/03/18(月) 19:10:03.43ID:mMZjYpOD
ωってPyPyに似てるよね
2024/03/18(月) 22:57:43.88ID:k+0BFsOa
おいなりさんだろ
2024/03/20(水) 21:07:42.45ID:g3UAOGQ4
def one():
 return 1,2

def two(a,b):
 print(a,b)

two(100,100)
two(one())

最後の行で「TypeError: two() missing 1 required positional argument」エラーとなります。
twoで1と2を受け取れるようにするにはどうすれば?
487デフォルトの名無しさん
垢版 |
2024/03/20(水) 21:12:04.19ID:GeI9OXvQ
two(*one())
2024/03/20(水) 21:27:30.26ID:g3UAOGQ4
>>487
サンクス
できました
2024/03/25(月) 21:04:47.80ID:ybmcJkp8
def myfunc():
__myfunc.initialized = True

こういうのってあり?
1年くらいpython勉強してきて、先日初めて見かけたんだけど
ちょっとおどろいてしまって
2024/03/25(月) 22:22:30.06ID:JhT+JdiB
functionもオブジェクトで__call__が生えてるだけと思えるならあり
ただどんな用法でも見通しが悪ければなし
491デフォルトの名無しさん
垢版 |
2024/03/26(火) 01:38:33.45ID:CAcXk4Yx
おどろいてしまうようなやり方はじっくりコードを見ないとわからない振る舞いをするから基本なし
2024/03/26(火) 02:04:23.26ID:s3c2P37L
便利ではあるけどわりと悪用寄りじゃねーかなあ
493デフォルトの名無しさん
垢版 |
2024/03/26(火) 04:38:00.60ID:vQ76deH4
"initialized" て何?
494デフォルトの名無しさん
垢版 |
2024/03/26(火) 09:15:41.63ID:we9m9tD+
>>489
なにそれ

>>> def myfunc():
...   __myfunc.initialized = True
...
>>> myfunc()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "<stdin>", line 2, in myfunc
NameError: name '__myfunc' is not defined
>>>
495デフォルトの名無しさん
垢版 |
2024/03/26(火) 09:32:42.21ID:VDce1kQ4
アンスコはインデントのことやろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況