X



【まず1嫁】くだすれPython(超初心者用) その55
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
当スレに★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(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
0952デフォルトの名無しさん
垢版 |
2021/12/14(火) 21:30:31.61ID:lu87KQQd
コード追ってはないけどnumpy側でそういう風に__eq__実装してるだけ
なんなら
>>> a1 == a2
array([ True])
になるしうれしいけど変だわな
0953デフォルトの名無しさん
垢版 |
2021/12/15(水) 11:10:32.17
>>951-952
なるほど
pandasもnumpy int64なので
dataframeを何かしらのAPIに投げるときに
そのままjson.dumps使えたらなぁと思いましたが
とりあえずはint32変換して成型した方がよさそうですねありやした
0954デフォルトの名無しさん
垢版 |
2021/12/17(金) 08:55:01.03ID:s+y1HFod
Windows、Linuxの両方で動作するスクリプトを作ろうと思っているのですが
スクリプトのファイルの改行コードについて、CR+LFがよいのかLFがよいのか
教えて下さい

#!/usr/bin/env python3
print("aaa")

こういうshebangが使われたスクリプトの場合なのですが、関連付けやbashのshellext等の
設定が無い環境では
・改行コードがLF
 →Windowsだと「python3 〇〇.py」で実行OK。ただし編集はエディタを選ぶ
 →Linuxだと「./〇〇.py」でも「python3 〇〇.py」でも実行OK
・改行コードがCR+LF
 →Windowsだと「python3 〇〇.py」で実行OK
 →Linuxだと「./〇〇.py」は「bad interpreter」となる。「python3 〇〇.py」では実行OK
…となりますよね

いずれのOSでも必ず「python3 〇〇.py」として実行できますし、
改行コードの問題はshebangの問題なので
・ファイルの改行コードはCR+LF
・Linuxでの実行は「python3 〇〇.py」で行う。shebangは書かない、使わない
こうするのが最も無難な方針に思えますが、いかがでしょうか
それともshebangも活用すべき、文字コードはLFとすべき、なのでしょうか
0955デフォルトの名無しさん
垢版 |
2021/12/17(金) 10:09:24.99ID:Ufm8xgDf
世の中のWinアプリ以外のソースはほぼLFだし
コーディング用途にLF扱えないエディタの出番はなくない?
それかハマりどころあるけどGit管理でautocrlf活用するか
0957デフォルトの名無しさん
垢版 |
2021/12/17(金) 13:32:20.53ID:fkpshCq+
Windowsがメインだけど、シバンは使う、改行はLF
エディタ(NPP)でもアドオンつかって、保存時にLFで自動で保存(問い合わせ)できるようにしている
0958デフォルトの名無しさん
垢版 |
2021/12/17(金) 16:27:15.20ID:6e8bb+xR
LF以外の選択肢考えたことなかったわ
0959デフォルトの名無しさん
垢版 |
2021/12/17(金) 17:25:27.22ID:tWB5K5S1
漏れは、WSL2, Ubuntu 18.04 で、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使っているけど、
たぶん、CR + LF だとバグる

#!/usr/bin/env ruby

echo -e "$RBENV_ROOT\n$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv
/home/ユーザー名/.anyenv/envs/nodenv
0962デフォルトの名無しさん
垢版 |
2021/12/18(土) 00:15:24.44ID:mxS9DQCX
pandasで、1つの列のデータからapply()を使って複数の値を戻り値として返してそれぞれ別々の列として追加したいです。
(列データxに対して、x*2, x/2 を返す等)

DataFrameのapply()には、result_type='expand'で複数戻り値を別々の列(Series)に格納できるものがありますが、Seriesのapply()にはresult_typeがありませんでした。result_type='expand'のようなシンプルなやり方をするにはDataFrameのapply()を使うしか無いですか?
できればSeriesを指定した上でapplyを呼び出したいです。

ちなみに、呼び出した関数でpd.Seriesを戻り値として返すやり方もWebで見つかりましたがものすごく処理が遅かったので正しいやり方では無さそうです。
0963デフォルトの名無しさん
垢版 |
2021/12/18(土) 00:37:48.68ID:mmV8s4af
applyを2回呼ぶのは?
0964デフォルトの名無しさん
垢版 |
2021/12/18(土) 01:52:04.79ID:mxS9DQCX
それが一番簡単ですが冗長な感じと思ったので…
でも、result_type='expand'も処理時間が遅いようなので、やはり複数回呼び出す方法にします。
0967デフォルトの名無しさん
垢版 |
2021/12/18(土) 23:23:56.96ID:rJsqD2PP
以下のようなファイル・ディレクトリ構成でツールを作ってます
mainscript.py
modules/
 __init__.py
 moduleA.py ← 実際のメイン処理
 moduleB.py ← 関数を別ファイル化

mainscript.pyの中でmoduleA.pyに書いた機能を使うので、mainscript.pyの中にて
from modules import moduleA
として読み込んでいます

ここで、moduleA.pyは、moduleB.pyに書いた機能を使ってます
この場合、moduleA.pyに
from modules import moduleB
と、「from modules import 〜」が無いと動作しないので、必要なのだと思ってます

しかしmoduleA.py、moduleB.pyを流用するとき、moduleA.pyは「from modules」を
流用先のディレクトリ構成にあわせて修正しなければならず、困ってます
また「modules」ディレクトリは、mainscript.pyから見てのものであり、
moduleA.pyに「from modules」文があると、moduleA.pyだけ見ていても
modulesディレクトリは親ディレクトリであることを読み取れず、それも困ってます

上記のような構成にしたとき、このような問題を解決する方法を教えてください
0969デフォルトの名無しさん
垢版 |
2021/12/18(土) 23:35:58.62ID:rJsqD2PP
>>968
回答ありがとうございます

moduleA.pyに相当するものが多数あるので全ての修正はこれからですが、
うまく動作しそうです

ありがとうございました
0971デフォルトの名無しさん
垢版 |
2021/12/20(月) 11:22:53.74ID:sxGOmJ2J
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
0972デフォルトの名無しさん
垢版 |
2021/12/23(木) 16:13:24.40ID:UaimnPqj
beautifulsoupで取得したページでth:-soup-containsというセレクターを使うと
NotImplementedError: ':-soup-contains' pseudo-class is not implemented at this time.
と出ます。

この原因は何でしょうか?必要な情報があれば載せます
0974デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:05:30.20ID:Gg61L1jf
streamlinkってpythonで書かれてるんだよね。
python的な書き方ってないの?
subprocess使って
subprocess.call(['streamlink', url, 'best', '--hls-duration', time, '-o', out2])
ってやってるんだけど、python的な書き方は無いのかなって思って。
0976デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:40:50.88ID:Gg61L1jf
>975
このページ、白バックに白文字になってるところが多くて読みづらいですね。
fd = stream.open()
data = fd.read( 00:30:00)
fd.output(filename)
みたいな書き方できないのかなって。
0977デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:49:03.00ID:Gg61L1jf
read()でbyteじゃなて時間で指定したいし、readしたdataをoutputする方法が知りたいんです。
codec は copy で、生のまま ts とか mp4 にoutputしたい。
スクリプトのサンプル探してるんだけど、みんな ffmpeg に渡したり、subprocess 使ってる。
0978デフォルトの名無しさん
垢版 |
2021/12/23(木) 23:04:17.60ID:zCNeJPRa
取得後は単なるデータ列としてか扱えないぽいから
https://streamlink.github.io/api.html#streamlink.stream.HLSStream
コマンドライン同様どう取得するかを指定できるだけであまりうれしくなかった。
それでいいならI/Oとしては扱える。

MPEGコンテナ操作するプログラムを別途書けば加工もできるけど
どこまで制御したいかによる。
0979デフォルトの名無しさん
垢版 |
2021/12/23(木) 23:19:13.76ID:Gg61L1jf
取得したデータをffmpeg-pythonに渡してoutするしかないんですかね。
0980デフォルトの名無しさん
垢版 |
2021/12/24(金) 06:23:53.37ID:7mLGjij2
Visual Studio Code で python 3.9を使用していたのですが
python 3.10にアップデートしました
match文を使ってみたところ、インデントのエラーが表示されます
実行はできます
Visual Studio Codeで何か設定したりしなければいけないのでしょうか?
0982デフォルトの名無しさん
垢版 |
2021/12/24(金) 17:30:33.82ID:7mLGjij2
>>981
Python Language Server を jedi から pylance に変えたらエラーがでなくなりました
正しい対応かわかりませんが、しばらくこの設定でやってみます
0983デフォルトの名無しさん
垢版 |
2021/12/25(土) 14:28:37.83ID:O1DganTQ
vscは基本pylanceでええょ
0984デフォルトの名無しさん
垢版 |
2021/12/25(土) 15:00:20.62ID:f1xUz6ll
Pythonの拡張のデフォルトランゲージサーバーってpylanceにじゃなかった?
まだデフォルトになってないっけ
0985デフォルトの名無しさん
垢版 |
2021/12/25(土) 18:39:11.66ID:wLd1kjlZ
Jediに設定したことがあったらそっちが使われるからな
俺は今でもJediを使ってる
Pylanceだと、Python 2/3の互換性を維持しようとすると、
もう片方のインポートエラーとかが鬱陶しいんだよ
まぁ、黙らせる設定でもいいんだけど、Jediのほうが手っ取り早いので
0986デフォルトの名無しさん
垢版 |
2021/12/25(土) 23:26:55.99ID:4wn3W7Lt
10桁以上のint値を扱うと、自動で数字変換されてしまうのですが、どういう原理になってんでしょうか?
6631510311なら-1978424486に変換

ライブラリはNumpyとPandas
0987デフォルトの名無しさん
垢版 |
2021/12/26(日) 01:16:59.54ID:bjcghV5B
32ビットintだと21億までしか表現できないから適当な数(ルールはあるが面倒だからここでは触れない)に置き換えられてる
64ビットintにすれば置き換えされない
0988986
垢版 |
2021/12/26(日) 11:08:42.45ID:+UpYRQsi
解決しました。有難う
intにもビット指定があったんすね
0990デフォルトの名無しさん
垢版 |
2021/12/26(日) 15:33:50.15ID:ipgF0889
不等号を反転させ、逆の結果を得たいと思いました
a,bはint型ですが3や5には特に意味はありません
b>a(例 5>3)がTrueとなるような値を取ります
f=-1でその逆の結果になるのを想定しています

a=3
b=5
def hoge(f=1):
_if f*(b-a)>0:
__print("o")
_else:
__print("x")
hoge()
hoge(-1)

これでいいでしょうか?
例外があったり、こういうことをする場合の標準関数とかすでにあるのかなと思い質問しました
0992デフォルトの名無しさん
垢版 |
2021/12/26(日) 15:52:21.23ID:YaEmqJRZ
関数にするんだったらdef hoge(a,b)みたいにしたほうが分かりやすいと思う
符号を1、-1、0で返してくれるnumpy.sign()ってのもある
0993デフォルトの名無しさん
垢版 |
2021/12/26(日) 17:08:09.42ID:JuKsRG7c
すみません。ソースコードのディレクトリ、ファイル構成については以下を参照しているのですが、正しい情報でしょうか?
ttps://rinatz.github.io/python-book/ch04-07-project-structures/
また、上記ではライブラリとアプリケーションの区別が出来ない構成であることが問題とされています。
ライブラリを作成後、それをアプリケーションで使いたい場合、アプリケーションのソースコードの構成はどのようにするのが、定跡なのでしょうか?

よろしくお願いいたします。
0996デフォルトの名無しさん
垢版 |
2021/12/26(日) 17:54:42.34ID:JuKsRG7c
>>994
すみません。教えていただいた情報も基本的にパッケージに関する構成についての説明のようです。
パッケージを自作することは出来そうですが、それを呼び出すアプリ側をどうすればいいのかはよくわかりませんでした。
0997デフォルトの名無しさん
垢版 |
2021/12/26(日) 22:23:52.52ID:bjcghV5B
993のgithubの文章はアプリケーションとライブラリと両方の側面を持つプロジェクトの話をしてるけど、あなたのプロジェクトもそうなの?
そうなら文章の一番下に書いてある構成を取ればいい
そうじゃなくて他のプロジェクトからこのプロジェクトをパッケージとして参照したいということなら、それはsys.pathsの話であってプロジェクト構成はあまり関係ない
0998デフォルトの名無しさん
垢版 |
2021/12/26(日) 22:34:36.91ID:bjcghV5B
んでパッケージを他のプロジェクトから参照したいなら
利用される方のパッケージをpip installできるように作ってインストールするか
他のプロジェクトの方で起動前にPYTHONPATHを設定するか
他のプロジェクトの方でimportする前にsys.pathを追加するか
さしあたりはどれかをする必要がある

ここらはいいガイド文章を知らないので知ってる人に紹介してほしい
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 86日 7時間 49分 11秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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