X

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

レス数が1000を超えています。これ以上書き込みはできません。
2021/01/09(土) 05:22:25.24ID:IpHIsox4
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

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

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
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

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

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2021/01/09(土) 08:31:20.69ID:xMqSmtWz
>>1
次スレ作成ありがとう
2021/01/10(日) 15:10:53.34ID:dzQMColf
文字列の分割について質問です

以下のコードで、最初と最後の空文字列を取って表示する方法はないでしょうか?
https://paiza.io/projects/ar6X8-2ECCzq2wtbKmhSiA

pop()を使えばできますが、事前に表示させないようにする方法はないでしょうか?
2021/01/10(日) 15:20:26.51ID:V6y8E0W0
[x for x in msg.split() if len(x) > 0]
2021/01/10(日) 15:41:23.59ID:fqhi9u3I
>>3
strip() or inspect.cleandoc()
https://paiza.io/projects/eHfooTedeaj4X-_Xtw6flw
6デフォルトの名無しさん
垢版 |
2021/01/10(日) 16:04:48.54ID:8MUFuLES
splitlines()
https://paiza.io/projects/1Mk6pIrG8brxCGyH2G3dng
73
垢版 |
2021/01/10(日) 16:07:06.76ID:dzQMColf
>>4
>>5
参考になりました
ありがとうございました
83
垢版 |
2021/01/10(日) 16:08:47.20ID:dzQMColf
>>6
すいません、書き込んでる途中でした
ありがとうございました
9デフォルトの名無しさん
垢版 |
2021/01/10(日) 16:15:43.93ID:8MUFuLES
msg[1:].splitlines()
2021/01/10(日) 23:29:35.79ID:AA/SLvm2
ここかくだれす!
11デフォルトの名無しさん
垢版 |
2021/01/11(月) 09:22:43.53ID:1PVtmv2H
if文の判定で関数を使うときにその関数結果をIF分の中で使用するのですがスマートな書き方はありますでしょうか
以下のように毎回関数ABを先実行して変数に格納するように工夫してみたのですがちょっと無駄が多いかなと。。

if 関数A is not None:
cv2.imshow(関数A , img)
elif 関数B is not None:
cv2.imshow(関数B , img)

 ※関数Aは2回実行される
 

kansu_Afile = 関数A
kansu_Bfile = 関数B

if kansu_Afile is not None:
cv2.imshow(kansu_Afile , img)
elif kansu_Bfile is not None:
cv2.imshow(kansu_Bfile , img)
 
 ※最初に関数ABが実行される
2021/01/11(月) 10:02:47.17ID:KJWJajMs
>>11
代入式
https://www.python.org/dev/peps/pep-0572

もしくは関数化してearly returnと組み合わせる
13デフォルトの名無しさん
垢版 |
2021/01/11(月) 18:12:10.62ID:emOMJ/kr
root.titleで指定してもウィンドウは開くけど開いた窓にタイトルがつかないのは何故ですか?
14デフォルトの名無しさん
垢版 |
2021/01/11(月) 23:45:10.27ID:1PVtmv2H
>>12さん
ありがとございます。代入式というのがあるのですね
教えてもらった内容でうごきました
15デフォルトの名無しさん
垢版 |
2021/01/12(火) 15:31:11.80ID:LUlB/OIG
>>13
e.s.p.してみる
失敗する方 root.title = u'abc'
成功する方 root.title(u'abc')
但し root.title = u'abc' してしまったあとに root.title(u'abc') しようとしても関数が無いと言われるだろうな
2021/01/12(火) 20:07:58.41ID:Fas3JEHJ
先日初めてプログラミング言語を勉強し始めた初心者の者なのですがpipがダウンロード出来ずに困ってます
ネット色々と調べget-pip.pyというものをダウンロードしてコマンドプロントからダウンロードしてみたり環境変数から色々と触ってみたりはしていますがどれも全く上手くいきません
どなたか分かる方はいらっしゃいますでしょうか?
2021/01/12(火) 20:28:28.70ID:N7+0FVJh
python -m pip install hogehoge
2021/01/12(火) 20:39:50.67ID:Fas3JEHJ
無駄でした
そもそも上でも書いてある通りpipがダウンロードされていないみたいなのでそれが出来ずに困ってます
2021/01/12(火) 21:17:34.90ID:IQ0Q247+
WindowsならマイクロソフトストアからPythonインストールするのが楽だと思う
20デフォルトの名無しさん
垢版 |
2021/01/12(火) 23:16:53.74ID:RB03ab36
>>15
ありがとうございます。
いろいろ試してみたらChromebookの仮想環境だとなぜかタイトルがでなくてWindowsマシンだとちゃんとでるようです。
vscode使用tkinterは8.6のようです
21デフォルトの名無しさん
垢版 |
2021/01/12(火) 23:19:13.27ID:RB03ab36
すみませんお騒がせしました。
ほかの標準ではいってるようなアプリもウィンドウタイトルでてないので多分Chromebook側の仕様ということで自己解決しました
22デフォルトの名無しさん
垢版 |
2021/01/13(水) 16:36:12.00ID:zcsn6Lf0
リネーム処理はpowershellとpythonどちらがいいのでしょうか?
フォルダの先頭ファイルをフォルダ名としたいですが、powershellはマイナー言語なんでしょうか?あん
23デフォルトの名無しさん
垢版 |
2021/01/13(水) 16:47:23.26ID:C+q6Ee0+
書きやすい方でいいのでは?あん
Pyhonにもpathlibを使えばパスの扱いは困らない
2021/01/13(水) 18:54:56.37ID:vKzJc+yq
>>22
Python使った方がまちがいがおきにくいあん
2021/01/13(水) 19:40:47.40ID:zwUHpXfQ
すいません。JavaとPythonはどっちが飯食えますか?
一番ラクに稼げる言語ってなに?

教えてエロい人
2021/01/13(水) 19:57:22.93ID:qgLY/YWl
どちらも楽には稼げない
27デフォルトの名無しさん
垢版 |
2021/01/13(水) 20:05:18.52ID:zcsn6Lf0
リネーム処理に一般的に使われるのはどっちなんでしょうか?
2021/01/13(水) 20:48:58.44ID:1NO/A2tW
シェルスクリプト
29デフォルトの名無しさん
垢版 |
2021/01/13(水) 21:10:37.57ID:C+q6Ee0+
>>27
そこに拘る理由が分からん
「組み込みシステムに一般的に使われるのはどっちなんでしょうか?」とかなら向き不向きが分かれるが、リネームなんてピンポイントかつ些末な処理はどの言語でも普通にできるから
2021/01/13(水) 23:46:40.03ID:uZRkh4HP
>>25
基本、自社開発系ベンチャーのRuby vs SES 系のJava土方の2大勢力

YouTube で有名な、雑食系エンジニア・KENTA は、Rubyで、
逆に、SES 系のモローは、Java, PHP

Ruby on Rails の学校で大儲けしたのは、マコなり。80万円ぐらい。
一方、最安値は、東京フリーランスのデイトラで、10万円

Java は奴隷だから、誰でも受かる。
PHP も、KENTAのサロンで誰かに聞けば十分

SES奴隷土方になりたくない香具師が、大金を払って、学校へ行って、
自社開発系ベンチャーを目指す

Python は、どちらでもない。
MIT など、理系の大学院生だけ
2021/01/14(木) 00:07:19.97ID:hXZPMCaj
NG推奨ワード:
自社開発系
ベンチャー
Ruby
土方
YouTube
雑食系
KENTA
モロー
Rails
大儲け
マコなり
フリーランス
デイトラ
奴隷
サロン
香具師
大金
学校
理系の大学院
2021/01/14(木) 00:29:12.99ID:z8Bt+aan
ハイ!KENTAでーす
2021/01/14(木) 00:55:47.70ID:9aZMy7Uh
>>22
PowerShell よりも、Ruby が簡単。
ただし、DryRun なので実際には実行されません。
ファイル名には、拡張子がない場合だけに対応しています

require 'fileutils'

parent_dir = 'c:/users/owner/documents/test'
src_dir = parent_dir + '/abc'

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く

file_name = Dir.glob( src_dir + '/*' )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.map { |full_path| File.basename( full_path ) } # ファイル名のみ
.sort.first # ソートして、最初のファイル名

dest_dir = parent_dir + '/' + file_name

# フォルダ名を変更
FileUtils::DryRun.move( src_dir, dest_dir )

表示
mv c:/users/owner/documents/test/abc
c:/users/owner/documents/test/a
34デフォルトの名無しさん
垢版 |
2021/01/14(木) 01:14:19.82ID:6VtHfWk2
>>30
キーワードに反応して定型文を返すだけのbot?
3530
垢版 |
2021/01/14(木) 02:04:47.93ID:9aZMy7Uh
2021/1/1

AWS のトップYouTuber・くろかわこうへいの転職話。
SES 奴隷から抜け出して、自社開発系へ転職

年収100万上げて自社開発企業に転職したらSESの営業がキレて大ゲンカした話
【オキテ破りのギリギリ転職術】
https://www.youtube.com/watch?v=CFs41De_KGw
2021/01/14(木) 03:03:19.56ID:kvGQqxiC
message = "2021-01-01 00:00:00"
df.query(f"Time != {message}")
Pandasで特定の時間の行だけ省きたいのですが、上記のように書くと空白のせいかinvalid syntaxが出てうまく動きません
dt.strptimeでdt型にしてみたりもしたけと変わりませんでした
バグですかね?何かいい方法無いですか?
37デフォルトの名無しさん
垢版 |
2021/01/14(木) 05:10:37.97ID:MIjftGny
>>29
powershellってマイナーなのかなと
2021/01/14(木) 05:27:54.43ID:hEUP5GFy
>>36
to_datetimeメソッドで変換してしまうとか
ブールインデックスを使うとか
「pandas query 日付」とかで検索してみると良いかも
https://daizyu.com/posts/2020-05-18-001/

query()の中で変数は@でも参照できるよ
df.query('Time != @message')
39デフォルトの名無しさん
垢版 |
2021/01/14(木) 08:33:20.05ID:5P4t3Lo7
『独習Python』という本に,

data1 = 'abc'
data2 = 'abc'

とすると,data1 == data2 も data1 is data2 も両方ともTrueになると書いてあります.

一方で,

「この挙動はあくまで内部的なものです.文脈によっては,str(文字列型)であっても,「同値であって同一ではない」という状況は発生します.」

と書いてあります.data1 is data2 がFalseになる状況というのはどんな状況なのでしょうか?
2021/01/14(木) 08:40:54.37ID:zLgraEfq
a = "abc123"
b = f"abc{122+1}"

a == b >> True
a is b >> False
41デフォルトの名無しさん
垢版 |
2021/01/14(木) 08:46:58.85ID:9JVxxOom
>>39
この例は処理系が同じリテラルがハードコードされている事を「たまたま」理解出来るから無駄を無くすために”abc”を使い回してるだけ
基本的にisは偽になると考えるべき
2021/01/14(木) 09:02:38.64ID:5P4t3Lo7
>>40-41
ありがとうございました.
2021/01/14(木) 09:28:27.93ID:9aZMy7Uh
普通、文字列の比較に、同一インスタンスかどうかは考えない

普通は、同じ文字列かどうかの意味。
異なるインスタンスでも、同じ文字列なら等しいと考えるべき
2021/01/14(木) 14:35:40.92ID:vrPclvll
まあ代入と等号比較ってのはどの言語でも気にするべき内容だわな。
2021/01/14(木) 15:07:09.78ID:kvGQqxiC
>>38
ありがとうございます
@使ったら普通に動きました

あとこの抜き出したデータフレームに含まれてない物だけを抜き出して新しいデータフレームを作りたいのですが、方法ってありますかね?

やりたい事としては2つのdfの単純な差集合を取りたいだけです
2021/01/14(木) 15:14:43.12ID:kvGQqxiC
すみません自己解決しました
2021/01/14(木) 16:39:43.93ID:jX/4+uzK
50,000、5,000、500
こういうのをre.searchで正規表現を使って数字のみ抽出しようしてるんだけどうまく抽出できないのでどうすればいいか教えてください
48デフォルトの名無しさん
垢版 |
2021/01/14(木) 16:43:03.97ID:poiifTN2
まずはカンマを除去する
次に、でsplitする
すると、文字列での数字が得られる
2021/01/14(木) 16:45:34.33ID:hXZPMCaj
へーjoinしなくていいんだ
2021/01/14(木) 16:46:02.96ID:jX/4+uzK
コード分けて書くしかないのか・・・
2021/01/14(木) 16:48:27.46ID:7visTOmZ
プログラミング覚える前にググり方覚えたら?
そのものズバリがすぐ見付かるだろ
2021/01/14(木) 17:36:21.21ID:edSCC/44
localhost:8080でhello worldの立ち上げに成功したんだけど
試しにpythonで
requests.get(url='http://localhost:8080/')
ってやってもHTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url:みたいなエラーでるなんで・・
2021/01/14(木) 17:37:28.95ID:MboREI0+
>>50
どういう正規表現を試したのか書いてみ
2021/01/14(木) 17:57:42.07ID:edSCC/44
自己解決
docker内でやってたんだけど
ホストPCに戻ってhostname -IでホストPCのipアドレス取得して
localhostのとこをそのホストPCのipアドレス指定して
requests.get(url='http://ホストPCのIPアドレス:8080/')
ってやったら取得できた
お騒がせしました
2021/01/14(木) 22:58:31.74ID:F1kErgCn
形がほぼ同じで、色合いだけ違うものを区別して認識させる方法ってありますか?
OPENCVでグレースケールとカラー両方試してみたのですが、色違いポケモンご認識してしまいます。
2021/01/14(木) 23:11:47.32ID:9/q933wG
>>55
形が同じだとわかってるなら、
どこの色をチェックすれば違いがあるかもわかっているだろう
たとえば全体をHSVにcvtColorしてH成分のヒストグラム作ってみるだけでもわかりそうなもんだけど
2021/01/15(金) 04:06:34.83ID:MomngUWn
ファイアウォールなどで、localhost を定義していない場合には、アクセスできない

その場合は、Local Loopback Address(127.0.0.1)でアクセスする
2021/01/15(金) 04:15:46.87ID:yP8AorQ+
>>57
普通のOSはhostsにlocalhostが書いてあるからいみふ
2021/01/15(金) 12:40:59.26ID:CwWniPih
表計算では難しいデータ処理がしたくて
google colabでpythonを触り始めた初心者です。

全て整数のa:時間、b:測定値からなる
2列の時系列csvデータがあります。

測定値bが前の時間より低下した場合、
bが元の値に戻るまでの時間をデータ列cとして
下のように元のcsvに追加したいのですが
pythonではどのように記述すれば良いでしょうか?

a b Δb c

1 100 0 0 Δb<0で無ければc=0
2 97 -3 3 100まで戻る時間
3 95 -2 1 97まで戻る時間
4 99 4 0
5 102 3 0
6 101 -1 4 102まで戻る時間
7 97 -4 2 101まで戻る時間
8 93 -4 1 97まで戻る時間
9 97 4 0
10 102 5 0
60デフォルトの名無しさん
垢版 |
2021/01/15(金) 14:08:50.89ID:asOAfCNV
疑似コードならこんなもんか

for i in 各行:
__Δbを求める
__if Δb>=0: continue
__c=∞
__for j in i+1, ...:
____if b[j]>=b[i]:
______c=j-i
______break
2021/01/15(金) 15:33:15.80ID:Dsfs083N
Pytorchのfor文内で定義した変数ってローカルスコープになるんだっけ?
VSCodeのpylanceでfor文の外で変数呼ぼうとすると未定義だって言われる
言語によってぐちゃぐちゃだからよくわからん
2021/01/15(金) 21:58:22.91ID:x6u03kZV
>>59
Pandasで
https://ideone.com/VoFp7i
6357
垢版 |
2021/01/15(金) 22:17:32.59ID:MomngUWn
>>58
MySQL とか、色々なアプリで、localhost で接続できない場合がある。
その際、127.0.0.1 でアクセスできる場合がある

頻出パターン
2021/01/15(金) 22:33:46.45ID:Tqgjj02D
>>61
Pythonでローカルスコープが作られるのは
関数とクラスのメソッドの中だけという認識でいるがどうか
65デフォルトの名無しさん
垢版 |
2021/01/16(土) 12:25:41.27ID:gncD+BLl
google colabでtecogan使えます?
2021/01/16(土) 15:58:25.90ID:26j/cWCr
初心者です
環境構築の際WSLで過度にメモリ消費しないようにしたいんですがユーザーフォルダへの.wslconfigの作成はどのようにしたら良いのでしょうか
2021/01/16(土) 16:34:10.42ID:4+YrYRTr
>>66
なにをもって「過度」となすか定義せよ

でもって
コンフィグでどうこうじゃなく、
自分がメモリ消費量が常になるべく小さくて済むコードを書く方がよっぽど大事なのでは
2021/01/16(土) 16:35:57.57ID:4+YrYRTr
んでもって
WSLの環境設定どーのこーのはPythonちゃうわスレチ
6959
垢版 |
2021/01/16(土) 21:48:07.22ID:ZDQmT4z0
>>60 >>62 ありがとうございます。
>>62のリンク先のでを動かせました。
2021/01/17(日) 13:32:11.47
streamlit便利すぎる・・
71デフォルトの名無しさん
垢版 |
2021/01/18(月) 16:36:30.63ID:twrlO24z
tecoganで動画をモザイク除去したいのですが、anaconda環境がいいのでしょうか?
72デフォルトの名無しさん
垢版 |
2021/01/18(月) 16:44:16.35ID:0ToZeY7a
>>66
https://qiita.com/suto3/items/db6f05f943cc2ea2ef59
73デフォルトの名無しさん
垢版 |
2021/01/18(月) 17:07:18.04ID:twrlO24z
動画モザイク除去ってなんのライブラリがいいんでしょうか?tecoganだと情報がない
2021/01/18(月) 17:36:18.09ID:rGsEChT5
ないよ
2021/01/19(火) 00:39:17.87ID:c8bXX+G9
if a in c or b in c:
この場合ってまずaとcの処理が行われてマッチした時点で後ろの処理はせずに終了という認識でおk?
2021/01/19(火) 01:38:53.83ID:JZy8vN9I
>>75
orがショートサーキットで評価されるかということならYes

a in c でaが見つからなければcが2回評価されるので
cの内容次第では違うやり方にしたほうがいい場合がある
2021/01/19(火) 11:37:32.51ID:47F7rTga
>>76
さんくす!
78デフォルトの名無しさん
垢版 |
2021/01/19(火) 19:26:26.07ID:2duJ8/9a
if set(a, b) & set(c):
2021/01/19(火) 20:21:18.38ID:KLo7OE0Q
if (a or b) in c:
80デフォルトの名無しさん
垢版 |
2021/01/19(火) 20:35:10.89ID:61lQZe/N
>>79
if文のinは面白いねえ
2021/01/19(火) 21:40:38.49ID:EnKJ4P3R
>>79
なんでこれでうごくか分からないんだけど参考になる記事とかない?
2021/01/19(火) 21:45:44.20ID:JZy8vN9I
>>79
これは全然意味違うでしょ

aがtruthyなら(a or b)はa
aがfalsyなら(a or b)はbの評価結果
(None or ‘b’)なら’b’
2021/01/20(水) 02:56:28.38ID:gpV/4NvU
う動くif文のがこわいよね
そのまま動いてて何ヶ月か後に実は意図した条件をすり抜けていたとか気づいたりすることも…
2021/01/20(水) 02:59:43.75ID:ZZQujzOy
境界値検査は必須
85デフォルトの名無しさん
垢版 |
2021/01/20(水) 12:17:49.08ID:2siInrr2
PHPのexec経由だとPyTorchをインポートできない件で、諸兄のお知恵をお貸しいただけないでしょうか。よろしくお願いします。

環境は以下の通り。
Ubuntu 18.04
Python 3.6.9
PHP 7.4
PyTorch 1.7.1(本家サイトの通り、pipをpip3にしてインストール)

コマンドライン
$ python3
>>> import torch

ファイル経由(ファイル名test.py)
import torch
$ python3 test.py
は問題ないのですが、上記のtest.pyをPHPで
exec('/usr/bin/python3 test.py', $output);
などとすると動きません。

Traceback (most recent call last):
File "test.py", line 1, in <module>
import torch
ModuleNotFoundError: No module named 'torch'
(Apacheのエラーログ)

またnumpyならばexec経由でもエラーになりません。
パス関係は以下の通りです。
$ pip3 show torch
Name: torch
Version: 1.7.1+cpu
(中略)
Location: /home/ユーザー名/.local/lib/python3.6/site-packages
86デフォルトの名無しさん
垢版 |
2021/01/20(水) 12:20:44.96ID:2siInrr2
>>85 の続き
コンソールではパスも通っています。
>>> import pprint
>>> import sys
>>> pprint.pprint(sys.path)
['', '/usr/lib/python36.zip','/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ユーザー名/.local/lib/python3.6/site-packages','/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
が、PHPのexecでは
import pprint
pprint.pprint(sys.path)
の結果をprint_rで出力するとパスが通っていません。
[0] => ['/usr/lib/python36.zip',
[1] => '/usr/lib/python3.6',
[2] => '/usr/lib/python3.6/lib-dynload',
[3] => '/usr/local/lib/python3.6/dist-packages',
[4] => '/usr/lib/python3/dist-packages']
そこでパスを追加してみました。
import sys, pprint
sys.path.append('/home/ユーザー名/.local/lib/python3.6/site-packages')
pprint.pprint(sys.path)
[0] => ['/usr/lib/python36.zip',
[1] => '/usr/lib/python3.6',
[2] => '/usr/lib/python3.6/lib-dynload',
[3] => '/usr/local/lib/python3.6/dist-packages',
[4] => '/usr/lib/python3/dist-packages',
[5] => '/home/ユーザー名/.local/lib/python3.6/site-packages']
とパスが通っていると思うのですが、
import sys, pprint
sys.path.append('/home/ユーザー名/.local/lib/python3.6/site-packages')
import torch
の結果はやはりModuleNotFoundErrorになってしまいます。
また以前に構築した2つの環境ではexec経由でimportできていて、最近構築したこの環境でのみ発生します。関係ないと思いますが、以前からの環境はさくらVPSとWSL、新環境はWindows 10のHyper-V。OSやソフトは同一です。
何か落ち度や見落とし、情報不足などありましたらご指摘いただけますと幸いです。
2021/01/20(水) 13:33:20.05ID:2iI7lLvp
cd /usr/local/lib/python3.6
ln -s /home/user/.local/lib/python3.6/site-packages
動的にパス設定してるなら
これで動きそう
88デフォルトの名無しさん
垢版 |
2021/01/20(水) 13:57:28.87ID:2siInrr2
>>87
ご教示ありがとうございます。
が、ダメでした。
lnで作った/usr/local/lib/python3.6/site-packages
をdist-packagesにリネームしたりもしましたが、やはりModuleNotFoundErrorです。すみません。
2021/01/20(水) 16:36:15.29ID:sOzWFlEJ
/home/ユーザー名/.local/lib/python3.6/site-packages

のディレクトリ/ファイルのアクセス権の制限とかは?
90sage
垢版 |
2021/01/20(水) 17:15:24.51ID:2siInrr2
home 755
user 755
.local 775
lib 700
python3.6 700
site-packages 700
torch 775
torch-1.7.1+cpu.dist-info 775
で、所有者&グループはこのユーザーディレクトリのユーザー(動いている環境も同様)でした。
2021/01/20(水) 17:41:53.77ID:rAY+15bx
>>86
PyTorchじゃないけど、pywin32とかで必要なダイナミックリンクライブラリが揃ってないときに、
DLLロードエラーが最終的にModuleNotFoundErrorになったのをこないだ見た。
コンソールにはライブラリ読み込み失敗とか出てるような気がするので、コンソールをもっと詳しく見てみては?
パッケージのダメな箇所をどんどん特定していってなんのライブラリ読み込み失敗してるか掘ってみていかないとダメかもしれないけど。
2021/01/20(水) 17:45:33.26ID:5gwvq16z
PHPのexecを実行してるユーザーとの関係は?
2021/01/21(木) 00:23:44.08ID:FkznapS6
python 3.8をインストールしコマンドプロンプトから起動
pipでライブラリをインストールしようとしましたが、

NameError: name 'pip' is not defined

とでてインストールできません。
どうしたらいいんでしょうか?
94デフォルトの名無しさん
垢版 |
2021/01/21(木) 00:41:41.16ID:xsNyeDV8
>>93
pipはPython内のコマンドではないので、コマンドプロンプトを開いたら
直接pipを使ってみてください
95デフォルトの名無しさん
垢版 |
2021/01/21(木) 05:53:48.21ID:DUmqZmwm
画像のモザイクやら消したい場合、
学習の第一歩って何になるんでしょうか?
inpaintingというのがあるらしいですが、チュートがないです
opencvだとaiと言えるのでしょうか
2021/01/21(木) 11:08:54.43ID:zE0uybHN
モザイク消し

ではなくて

オレ今まで一杯モロ画像見てて絵も写真くらいの精度で描けるんだけど、
こういうモザ画像の中ってこんな感じだと結構自然じゃね?

という機能
2021/01/21(木) 11:43:25.48ID:Ugep+Cnq
モザイクと言わず完全に隠されてても保管してくれるからGANはすごい技術だ
俺も勉強したい
2021/01/21(木) 11:46:35.58ID:DtxXx33C
>>86
ユーザー名に、半角英数字以外の妙な文字が入っていないですか?

/home/ユーザー名/.local/lib/python3.6/site-packages に、
別のモジュールを作って入れてみて、正常に動くか確かめてみれば?

他には、sys.path.append で追加するよりも前に、import されているとか?
正しい順番を、設定ファイルか何かで、確定させる必要がある

カーネルのログを見てみるとか、
起動オプションに、エラーログの詳細表示を付けてみるとか

あまりにも、エラーの可能性が広すぎる。
ファイルの文字コードの違いとか、考えられる要因が多すぎて、絞れない

ここは成功、ここは失敗と、
何か、切り分けないといけない
2021/01/21(木) 11:59:34.76ID:uTJ86sk/
おまいらのエロに対する情熱が伝わってこないから教えてやらない
100デフォルトの名無しさん
垢版 |
2021/01/21(木) 13:26:03.84ID:k/PIK3fQ
>>96
>>97
チュートがあんまりないんですおよね、、、
ganの基礎からやるといいんんですか?
2021/01/21(木) 13:39:48.17ID:abaylDM7
そもそも学習用のデータちゃんとあんの?
102デフォルトの名無しさん
垢版 |
2021/01/21(木) 15:11:27.73ID:k/PIK3fQ
そこはスクレイピングで集める
しかしどうせgpuパワーが足りないんだろうと思うから手を出せない
opencvはaiなの?
2021/01/21(木) 21:54:31.49ID:CZIzPSd/
まあ機械学習の機能がある以上広義のAIではあるだろうな
2021/01/21(木) 23:04:38.02ID:6we7z88m
>>86
phpを動かしてるユーザーはapacheだから
他のユーザーのsiteは指定しようが見れないってことじゃ
自分用のpythonと別に考えたほうが面倒がなくていい
自分のホームディレクトリにインストールされてるから
それはlinuxのディストリビューションの管理から離れてるんだろ
2021/01/22(金) 04:57:09.70ID:ucotd9u3
seleniumを使ってGoogle Chromeを一部自動操作して作業を効率化しているのですが、
ctrl+fで開くページ内検索を自動化する方法ってあるませんかね?
周辺単語まで見る必要があるので、検索ボックスを開く→特定のワードを入力、まで自動でできたらOKなのですが

普通のsend_keyですとか
ActionChains(driver).key_down(Keys.CONTROL).send_keys('F').key_up(Keys.CONTROL).perform()
は試してみたのですがうまくいきませんでした(エラーは出ないが検索ボックスが開かない)

pyautoguiでのキーボード入力も試してみたのですが、ブラウザがアクティブ化できないのでidleの検索ボックスが開いてしまいお手上げでした
106デフォルトの名無しさん
垢版 |
2021/01/22(金) 06:14:45.85ID:/SiZ9IrX
>>103
ganのいいチュートありますか
2021/01/22(金) 07:28:49.93ID:Qv7cR1ei
当該ページの要素を取得して特定ワードをテキストとして含んでるならそこにスクロールさせればいいだろ
検索ボックス使う必要がない
2021/01/22(金) 13:47:44.95
Google Colaboratory便利すぎる・・
docker然りこんなのもう自分のPCにpythonインストールする意味ないじゃん。。
2021/01/22(金) 13:53:51.65ID:dclXtjm4
>>100
ワイはGAN Kerasとかで調べて勉強してる
英語読まなきゃきけないのがきつい
2021/01/22(金) 16:26:13.13ID:KA18g7jM
>>88

>>87
のシンボリックリンクがダメなら、ファイルをコピーしてみれば?
2021/01/22(金) 18:07:48.05ID:ZQEfkoyS
シンボリックリンクやファイルコピーは環境構築方法としてはかなり微妙じゃない?

権限の問題だと思うからまずはそれを確定させて
PHP実行ユーザー向けの環境構築をpip使ってできるようにしたほうがいい気がする
権限の問題かどうかはPHP exec経由でファイルの中身が読めるかどうかでわかる
2021/01/22(金) 19:58:48.45ID:ucotd9u3
>>107
回答ありがとうございます
なるほど
ただ、ちょっと具体的なイメージが浮かばないのでもう少し詳しい方法を教えていただけないでしょうか
2021/01/22(金) 21:55:57.48ID:bS3A3tOW
>>107
コード寄越せってことだぞ。あくしろや
11485
垢版 |
2021/01/22(金) 22:36:26.16ID:1dyqdMu0
85です。もろもろレスありがとうございました。
まず結論ですが、PyTorchをimportできるようになり推論結果も出力されました。
皆さまのレスを総合すると、パスを通そうがApacheからユーザーディレクトリは見えない・アクセスできない。
に集約されると考え、pipの-tオプションで/usr/local/lib/python3.6/dist-packagesを指定してPyTorch
をインストールしたら成功しました。
セキュリティ関係含めここにブチ込んでいいものか所有者やパーミッションはこのままでいいのかなどこれから詰めますが、取り急ぎご報告まで。
皆さまのレスがなければ詰んでました。本当にありがとうございました。
2021/01/22(金) 23:07:41.14ID:9jKbgi1Z
https://i.imgur.com/WccgDA1.jpg
2021/01/22(金) 23:28:00.59ID:aHT4H8FH
照すつ文章
2行目
3行目
テスト文章
2021/01/22(金) 23:31:17.68ID:aHT4H8FH
めんなさい、>>116はミスです...

質問失礼します
requestsとBeautifulSoup4で遊んでいましたが、requestsがエラーとなるサイトが出てきてしまい理由がわからずここへ来ました
ひとまずHTMLが取得できるところまで解決したいです
よろしくお願いいたします

実行環境:
Python 3.7.0, Windows 10 64bit, IDLE 3.7.0 (64bit)で実行しています

ソース:
import requests
import bs4

url = "https://www.tokyomotion.net/";
res = requests.get(url)
soup = bs4.BeautifulSoup(res.content, "html.parser")
print(soup)

エラーメッセージ:
============================== RESTART: C:\BOX\Python\test\test.py ==============================
Traceback (most recent call last):
File "C:\Python\Python37\lib\site-packages\urllib3\response.py", line 401, in _decode
data = self._decoder.decompress(data)
File "C:\Python\Python37\lib\site-packages\urllib3\response.py", line 88, in decompress
ret += self._obj.decompress(data)
zlib.error: Error -3 while decompressing data: incorrect data check

During handling of the above exception, another exception occurred:

下に続きます
2021/01/22(金) 23:32:33.64ID:aHT4H8FH
Traceback (most recent call last):
File "C:\Python\Python37\lib\site-packages\requests\models.py", line 753, in generate
for chunk in self.raw.stream(chunk_size, decode_content=True):
File "C:\Python\Python37\lib\site-packages\urllib3\response.py", line 572, in stream
for line in self.read_chunked(amt, decode_content=decode_content):
File "C:\Python\Python37\lib\site-packages\urllib3\response.py", line 769, in read_chunked
chunk, decode_content=decode_content, flush_decoder=False
File "C:\Python\Python37\lib\site-packages\urllib3\response.py", line 407, in _decode
e,
urllib3.exceptions.DecodeError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: incorrect data check'))

During handling of the above exception, another exception occurred:

次が最後です
2021/01/22(金) 23:32:59.50ID:aHT4H8FH
Traceback (most recent call last):
File "C:\BOX\Python\test\test.py", line 5, in <module>
res = requests.get(url)
File "C:\Python\Python37\lib\site-packages\requests\api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "C:\Python\Python37\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python\Python37\lib\site-packages\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python\Python37\lib\site-packages\requests\sessions.py", line 697, in send
r.content
File "C:\Python\Python37\lib\site-packages\requests\models.py", line 831, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "C:\Python\Python37\lib\site-packages\requests\models.py", line 758, in generate
raise ContentDecodingError(e)
requests.exceptions.ContentDecodingError: ('Received response with content-encoding: gzip, but failed to decode it.', error('Error -3 while decompressing data: incorrect data check'))

以上です
よろしくお願いいたします
2021/01/22(金) 23:42:56.73ID:1d1lzUWQ
リクエストヘッダーでgzipで受け入れ可能ということを伝えて
受信した内容をデコードする

headers = {'Accept-Encoding': 'gzip'}
2021/01/23(土) 00:12:05.81ID:fA0JjYru
res = requests.get(url, headers={'Accept-Encoding': 'identity'})
2021/01/23(土) 00:28:43.65ID:fA0JjYru
>>112
executeScriptでscrollIntoView()使う

//xpathで’foobar’を含む最初の要素を検索してそこまでスクロール
var xpath = "//*[contains(text(),'foobar')]";
var match = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
match.singleNodeValue.scrollIntoView()
2021/01/23(土) 00:45:47.09ID:84i3Suj7
>>120,121
ありがとうございます
gzipは初耳だったので調べている途中でしたが、'identity'の方で解決できました!

でもマナーとしてはサイト指定の圧縮形式で取得して自分側で展開するべきということですかね?
2021/01/23(土) 02:18:11.86ID:BPicNdps
0から9の数字が複数描かれた画像があります
いわゆる認証でよく出てくるcaptcha画像の類ですが
練習として、これを機械学習で認識しようとしました

画像の条件として
・数字のサイズは一定
・数字の桁数は一定
・数字の行間は一定
・数字の始まりの座標は不定
です

とりあえず流れとして
データ収集 → 前処理 → データセット作成 → 学習 → モデル作成 → 検証
みたいなことはわかりいくつかのサンプルは成功しました
が、いざ条件のcaptcha画像でやってみたところ
このcaptcha画像から数字ひとつひとつを抜き出す、という前処理でつまづきました

すべて一定ならcv2などで等間隔で区切ればいいのでしょうが
画像の最左に近い場合もあるし遠い場所から数字の連番が始まるときもあります
この最初の座標さえわかればあとは文字サイズなりなんなりで等間隔でトリミングすればいけると思うのですが
どういうロジックを組めばいいのでしょうか?

あと仮に、文字サイズが不定、行間も不定となる場合、
どう一文字を判定するのだろうと思いました
(調べて見るとcv2.findContoursという便利なものがありやってみましたが
画像を2値化するときに数字の線が若干荒れて、輪郭の判定が大量に現れる結果となってしまいました)
2021/01/23(土) 03:43:00.35ID:BPicNdps
とりあえずは数字意外のノイズが確実に出ないしきい値で2値化して
左から1pxずつ1px幅の縦1列を全て検査し、全て255とはならない始めのx列目が、数字の始まり
で、対応できるような気がしました
2021/01/23(土) 12:08:13.54ID:JpTPlhL6
初歩的な質問いいですか?

本によると、int型などはイミュータブル型とありましたが
num = 1
num = 3
というように後に中身を変更できると思うのですが、どういうことでしょうか?
127デフォルトの名無しさん
垢版 |
2021/01/23(土) 12:17:51.59ID:VD+/dXF+
1そのものが3に変化するのでは無い
3を新たに生成して上書きしているだけ
128デフォルトの名無しさん
垢版 |
2021/01/23(土) 12:19:24.57ID:/Vi6Lfdi
x=(1,2)

x=(3,4) # ok

x[0]=10 # error
129デフォルトの名無しさん
垢版 |
2021/01/23(土) 13:28:45.00ID:sVLw03+p
変数名の集合と整数の集合を考える
人間が作り出すであろう全ての変数名が入った無限集合だ
すると、変数名の集合と整数の集合の間の写像になる

「初めから全てが存在していた」とするのが西洋人の考え方
130デフォルトの名無しさん
垢版 |
2021/01/23(土) 15:09:25.35ID:LTjhYSXq
aiやろうとおもってもpcパワーないから結局無理なんだすな(´・ω・`)?
2021/01/23(土) 15:14:12.58
無料の範囲でもgoogle colabでGPUパワーで回せば余裕
2021/01/23(土) 16:29:23.88ID:UQz6+2D6
つ NCS2
FP16だけど早いぞ
2021/01/23(土) 17:03:36.52ID:5Na5U87Z
>>124
JapanPostのサイトに解説あった希ガス
134デフォルトの名無しさん
垢版 |
2021/01/23(土) 17:06:58.44ID:5Na5U87Z
>>127
1の発生場所を3に書き換える変態言語もあった希ガス
135デフォルトの名無しさん
垢版 |
2021/01/23(土) 19:33:58.95ID:LTjhYSXq
>>131
アダルト無理じゃない?
136126
垢版 |
2021/01/23(土) 22:47:11.63ID:JpTPlhL6
答えてくれた方々ありがとうございました
2021/01/24(日) 00:29:44.56ID:s/DRXVeC
>>133
郵便番号の赤い枠線がどうのこうのってやつですかね?
そうだとすれば枠線前提の話になってくるので
枠線なかった場合とではトリミングの方法も違ってきそうな気がしますね
2021/01/24(日) 00:39:34.13ID:s/DRXVeC
文字認識の学習データのセットを作る作業をしていて思ったのですが
学習データよりも、一文字に区切るアルゴリズムの方が重要ですよねこれ…
2021/01/24(日) 00:41:55.95ID:K8Y7qKof
OCRはすでにあるし
2021/01/24(日) 00:47:03.46ID:s/DRXVeC
それでも透かし入ってるのとか背景にノイズ入ってるのとか結構難しくないですかね
しきい値 → 2値化
みたいな方法しかないのか気になるところです
2021/01/24(日) 00:56:04.45ID:K8Y7qKof
いったい何やってるの
キャプチャ認証とか認識できないようにしてるけど
2021/01/24(日) 01:08:32.70ID:s/DRXVeC
>>141
単純に練習としてよくある手書き数字認識のサンプルをいくつかやり終えて
背景にシミとかノイズがあった場合もやってみたくなっただけですね

その場合、一文字に区切るのが難しいとわかったのですが
だったらそもそもノイズ自体も文字として考えればいいのでは、と思い始めてきた感じです
ようは、ノイズの中に文字記号っぽい線の流れを認識できるモデル
(シミュラクラ現象的に)ノイズを文字と認識するようなモデルがあれば
仮に間違ってシミを何らかの文字と認識してもそれは正解でいいような
そんな便利なモデルありそうなのですが
microsoftとかgoogleのOCRを試したところ
どうも大別すると一文字に区切る系の処理をしているような気がしますわかりませんが
2021/01/24(日) 02:34:53.55ID:Kksl1SnT
簡易な奴なら投影で位置決めするんだけど
高度な奴ならsvm使うzinniaとかがあるなぁ

paddlepaddle とかにもデモがあったと
思うけど、中国語読めないので使った事ないな(3.8.xのpythonとpipで入るかと)

PyTroch与えれば後は作れるのか、OpenVinoがあれば出来るのか

どのレベルを求めているかわからないと
回答のしようがないな
144デフォルトの名無しさん
垢版 |
2021/01/24(日) 10:08:13.49ID:r5Iz9DtC
アイドルの画像なんですが、まず画像のまえにリストを作成したいです
そのリストを参考に集めていく感じ
雑誌名と発売日などのリストを作る方法ありますです?
手作業が一番かな
145デフォルトの名無しさん
垢版 |
2021/01/24(日) 11:08:43.25ID:wSlEv8S7
>>137
アホか
いつの時代の話だよ
2021/01/24(日) 18:37:17.09ID:7biDvLeQ
テキストファイルに文字列が存在するかの判定について一番単純(≒記述が単純or無駄が少ないor最速or低コスト)な方法はなにがありますか?
行番号や該当行を取得するなどは必要でなくて、ただ含まれているかどうかだけ真偽値や検索結果が0とかで判断できればいいです
2021/01/24(日) 18:48:29.98ID:3sIGrLL8
>>146
少なくとも↓くらいは書かないとどうしようもない
・通信資源CPUメモリHDD コスト高い順に並べろ
・どのくらいのサイズのテキストと、どのくらいのサイズの文字列なんだ
・2バイト文字の有無
・エンコードは何か
2021/01/24(日) 18:48:59.83ID:IE48Qmt3
ファイルサイズ > 0
2021/01/24(日) 19:29:02.36ID:1RNIc9lC
記号もスペースも文字ではないという判別をしながら
1文字ずつ見ていって文字が2回続けば文字列発見
2021/01/24(日) 19:55:52.94ID:++e8Ymxx
globで頭からファイル舐めるのがいいんじゃないの
2021/01/24(日) 20:00:38.02ID:++e8Ymxx
競プロ形式で質問してくれればわかりやすいんだけどな。プログラミングに限らず日常生活でも。
何を材料に何を出力すればいいかを明確にしてほしい(機械脳)
2021/01/24(日) 20:10:06.75ID:98CVdt0z
grepコマンドに投げれば?
2021/01/24(日) 20:34:59.80ID:6VwlJ5kc
grep
2021/01/24(日) 20:45:39.40ID:lVRRnz8/
餅は餅屋
2021/01/24(日) 20:46:31.51ID:7biDvLeQ
>>147
NGワードが解決できずここにレスできませんでしたので
「NGワード絞り込みスレッド」にテスト投稿した以下のレスを参照お願いします
https://agree.5ch.net/test/read.cgi/mango/1610376010/757

もしどこがNGだったのかわかる方教えてください...
2021/01/24(日) 21:06:52.04ID:3sIGrLL8
>>155
で、そのテキストファイル、
無限に肥大させてくつもりなの?
ばかなの?
ちぬの???

>どこがNGか
MD5ハッシュでggrks


>>151
せやせや
2021/01/24(日) 21:24:44.34ID:gsEGxkN1
典型的なXY Problemだね
2021/01/24(日) 22:03:08.11ID:7biDvLeQ
>>156
ひとまず一通り組み上げてみたかったので>>155の方法を考えました
現時点ではそうなりますが、普通の人はどのような実装をすることが多いのですか?

>MD5
こちらではMD5でググると一致する情報が見つからなかったため本文をどうにかするのを諦めましたが、
そちらではなにか見つかりますか?
2021/01/24(日) 23:58:55.03ID:A3BXsN94
>>146
典型的なオートマトンの問題だな
一番最初の文字がヒットするまでファイルを1文字ずつ見ていく、ヒットしたら2文字目以降もヒットするか確認
計算量は最悪のケースでO(mn)
2021/01/25(月) 01:05:15.62ID:rfwZrgZs
簡単に処理済のURLのリストがほしいなら処理したやつをsetにポンポコ突っ込んでいくのが簡単かな
メモリに乗らなくなったらソートとか分割とかして保存すればいいんじゃないかな
2021/01/25(月) 01:15:04.33ID:T4mYhBzV
こういうのはSQL使うのが一番楽なんじゃない?
2021/01/25(月) 01:25:39.09ID:co/Rkwpa
>8KB/月 程度で増加予定。1行に1URLが記録
>検索文字列(URL):基本30〜100B程度

件数にしたら100~250件/月で10年やっても3万件程度なので
pythonのforループでリニアに1行ずつ判定するのでも速度的に困ることはまずないんじゃないかな
100msの間に10万回や100万回判定できないと困るようなら別だけど
2021/01/25(月) 01:44:25.98ID:baBGx8Uf
正規表現最強だからなあ
素人ががんばってもまず勝てない
2021/01/25(月) 10:58:10.58ID:+q31tGtg
>>155
そのスレッドに、上半分を投稿して、NGなら、また半分に分割して投稿する。
もし上半分がOKなら、下半分がNGだから、下半分をさらに半分に分割して投稿する

つまり、2分探索のように投稿して、どの行がNGなのか、突き止める

宣伝に書きそうな単語は、cost かな?
2021/01/25(月) 18:53:33.40ID:P238B9gb
同一単語連呼じゃね?
166デフォルトの名無しさん
垢版 |
2021/01/27(水) 10:32:47.71ID:McyrI0oe
こんな感じでコンター図描こうとしてます.
x座標とy座標を読み込んで値を返す関数hogeをどうやって定義すればよいか分かりません.
hogeの中身はif文だらけです.
誰か教えてください.

import numpy as np
import matplotlib.pyplot as plt
def hoge(???
???
x = np.arange(0, 1, 0.05)
y = np.arange(0, 1, 0.05)
X, Y = np.meshgrid(x, y)
Z = hoge(X,Y) #そもそもこんな感じで書けるのか?
167デフォルトの名無しさん
垢版 |
2021/01/27(水) 10:59:29.72ID:vVvyPhvD
matplotlib.pyplot.contour ― Matplotlib 3.3.3 documentation
https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.contour.html

これに似せて定義すれば完璧
168デフォルトの名無しさん
垢版 |
2021/01/27(水) 11:21:03.41ID:cJSBZXf9
速度気にしないなら
def hoge_Z(X, Y):
Z = np.ndarray(X.shape)
for y in Y:
for x in X:
Z[y][x] = hoge(x, y)

Z = hoge_z(X, Y)
169167
垢版 |
2021/01/27(水) 11:51:12.24ID:McyrI0oe
返信ありがとうございます.
>168
どこ見たらよいですか?
>169
速度は気にしません.
Zのインデックには整数入れろって言われました.
あと,XとYの2つでループ回すんですか?
170デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:43:52.62ID:cJSBZXf9
def hoge_Z(X, Y):
Z = np.ndarray(X.shape)
for h in len(X):
for w in len(X[0]):
Z[h][w] = hoge(X[h][w], Y[h][w])

Z = hoge_z(X, Y)
171デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:45:47.56ID:cJSBZXf9
ああ
len(X) は range(len(X))
len(X[0]) は range(len(X[0]))
172デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:49:53.43ID:FiwaqU44
opencvではモザイク消せる?
水着を塗りつぶすところまではいけるだろうけど、その先よ
173デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:52:24.66ID:cJSBZXf9
本来は ndarray のまま処理した方が良いけど
そもそも if だらけの hoge の中身ってのが
具体的に示されてないとそこはコメントしようがないので
速度気にせず全要素ひとつづつバラす方法を出した
(慣れたら if だらけの hoge の中身の修正方法は判るようになるはず)
https://deepage.net/features/numpy-meshgrid.html
https://python.atelierkobato.com/meshgrid/
https://www.haya-programming.com/entry/2018/05/19/194006
2021/01/27(水) 13:52:31.52ID:3A/JkQSF
お前いっつもそれ聞いてるな
175デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:53:13.78ID:cJSBZXf9
>>172
禿しく概出
2021/01/27(水) 16:17:43.97ID:sCjAqXlj
ブラック企業で統合失調症になり、5年以上働けていません
一日11時間くらいベッドにいます
この言語を必死でマスターしたら、在宅ワークの仕事をいただくことは出来るでしょうか?
一日1000円でいいので稼ぎたいです
お金よりも、作業に慣れて仕事復帰への足がかりにしたのです
2021/01/27(水) 16:42:15.14ID:l31MIXPZ
>>176
あなたの年齢は?
178デフォルトの名無しさん
垢版 |
2021/01/27(水) 17:05:04.25ID:isvLWJ6Q
>>176
https://www.youtube.com/watch?v=qvjmf_eF_1k
2021/01/27(水) 18:22:32.77ID:sCjAqXlj
>>177
37歳の時にブラック企業で発狂して、5年経って42歳です

>>178
ありがとうございます
時間のある時に見てみます
2021/01/27(水) 18:38:35.00ID:4tKYq7MS
ム板とマ板の違いがわからないようではむずかしくね?
2021/01/27(水) 18:39:13.35ID:4tKYq7MS
>>180>Pythonをマスターする()とかいうビッグマウスの実現が
2021/01/27(水) 18:58:06.58ID:sCjAqXlj
失敗しました
ここはプログラム板でしたね
プログラマー板というのがあるというのは今知りました
2021/01/27(水) 20:42:03.18ID:VFjRyOVo
昔マ板がよくネタになってた気がする
2021/01/27(水) 22:47:37.79ID:nyJ4kTty
windowsでpythonをインストールしたのですが、pyコマンドを使うと
2021/01/27(水) 22:48:55.98ID:nyJ4kTty
windowsでpythonをインストールしたのですが、pyコマンドを使うと

内部コマンドまたは外部コマンド
操作可能なプログラムまたはバッチファイルとして認識されていません

と表示されます
どうすればpyコマンドを使えるのでしょう?
2021/01/27(水) 23:21:24.05ID:lgpuzElo
>>185
py.exeを正しくインストールすれば使える
2021/01/27(水) 23:42:33.88ID:nyJ4kTty
>>186
失礼しました。
2021/01/27(水) 23:42:53.97ID:nyJ4kTty
>>186
OKとなりましたm(__)m
2021/01/27(水) 23:44:42.50ID:nyJ4kTty
from sklearn.metrics import mean_squared_error

とある行で

Traceback (most recent call last):
File "E:/AAAAAA/半側空間無視データ分析/USN_data_analyzer(RANSAC mode)ver1.8.py", line 6, in <module>
from sklearn.metrics import mean_squared_error
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\__init__.py", line 81, in <module>
from . import __check_build # noqa: F401
ImportError: cannot import name '__check_build' from 'sklearn' (C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\__init__.py)

というエラーがでます
scikit-learnのインストールはpipコマンドで成功しているのですが、なぜでしょうか?
2021/01/28(木) 00:01:38.67ID:xWgdnw0/
以前環境設定したときは何の問題もなくSklearn使えたのですが、
今回はなぜかインストールしてもimportできない・・・
2021/01/28(木) 00:07:15.13ID:xWgdnw0/
コマンドプロンプトからインポートするとこんなメッセージがでます
やっぱり、きちんとインストールできてないのかな・・・

>>> import sklearn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\__init__.py", line 81, in <module>
from . import __check_build # noqa: F401
ImportError: cannot import name '__check_build' from 'sklearn' (C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\__init__.py)
2021/01/28(木) 00:20:16.87ID:V1xLv34X
where pip
where python
を比較するといいかも
違う場合は、pipコマンドは違うところにインストールしちゃってる
python -m pip install sklearn
でpythonコマンドのあるところにpipモジュールが入れてくれるので、この方法が一番おすすめ
2021/01/28(木) 00:24:28.11ID:xWgdnw0/
C:\Users\user>where pip
C:\Users\user\AppData\Local\Microsoft\WindowsApps\pip.exe

C:\Users\user>where python
C:\Users\user\AppData\Local\Microsoft\WindowsApps\python.exe

C:\Users\user>python -m pip install sklearn
Requirement already satisfied: sklearn in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (0.0)
Requirement already satisfied: scikit-learn in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from sklearn) (0.24.1)
Requirement already satisfied: numpy>=1.13.3 in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from scikit-learn->sklearn) (1.19.5)
Requirement already satisfied: joblib>=0.11 in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from scikit-learn->sklearn) (1.0.0)
Requirement already satisfied: scipy>=0.19.1 in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from scikit-learn->sklearn) (1.6.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from scikit-learn->sklearn) (2.1.0)

C:\Users\user>

でした。
これって同じところにインストールできてるってことですよね・・・
なんでimportできないんだろ???
2021/01/28(木) 00:39:29.50ID:qlSIyEsC
ん?ms store版python入れたの?
公式の方で試してみたら?
2021/01/28(木) 00:46:08.58ID:jix62l8F
>ImportError: cannot import name '__check_build' from 'sklearn'

まずはエラーが出てるモジュール(__check_build)がimport可能な状態なのかどうかを確認したら?
2021/01/28(木) 01:08:32.60ID:xWgdnw0/
>>194
公式版をダウンロードして再インスコしたら問題なくインストールできました
ご指摘ありがとうございました
これでやっと寝れます・・・

なんでMS版だとだめなんだろう?
いや、もう寝ます

本当にありがとうございましたm(_ _)m
197デフォルトの名無しさん
垢版 |
2021/01/28(木) 10:51:34.67ID:dNWrUHbO
カレントディレクトリとかに変なもの置いてるパターン
2021/01/28(木) 20:25:23.66ID:4rpb/Pko
オススメorm教えて
2021/01/28(木) 20:49:15.80ID:94KM1Ac4
ActiveRecord
2021/01/29(金) 01:41:04.75ID:tsiSROOw
みんな何で開発してるの?
2021/01/29(金) 06:36:24.11ID:8F9BgvB7
秀丸
2021/01/29(金) 08:00:22.46ID:qc+WYcmr
pyscripter
2021/01/29(金) 08:19:31.66ID:/7M+cArx
>>200
お金もらえるから。趣味という人もいるかな。
2021/01/29(金) 08:43:29.56ID:FiRRjN3z
>>200
パソコンかなぁ。スマホはしんどい
2021/01/29(金) 08:52:16.07ID:GH0JLNfn
アスペルガーばっかだなここ
206デフォルトの名無しさん
垢版 |
2021/01/29(金) 16:38:16.71ID:5pIDnM+S
ORMが使いやすいとは思えない
2021/01/29(金) 17:52:02.81ID:GkoRIUQ4
日本語難しい
208デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:13:11.27ID:EWZvTk3z
曖昧な質問をすれば曖昧な回答が返ってくる仕様
ただそれだけのこと
209デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:37:54.78ID:SLqQC90z
禿丸エディタ。
2021/01/30(土) 16:01:53.04ID:9ArkaPud
https://i.imgur.com/RefLq9E.png

線虫の神経エンジンをGoPiGoで動かそうとすると、最後のほうで謎のエラーが出る
俺が書いたコードじゃないから、どこを直せばいいかわからん
Pythonどころかプログラム自体初心者で何もわからん
2021/01/30(土) 16:06:08.38ID:9ArkaPud
文字列、命令の文法が間違ってるのかな(構文エラー?)

ちょっと昔のPython2系のやつを、gopigo3用に無理やり3系に変換したから、
そこでどこかおかしくなったのか
2021/01/30(土) 16:37:20.06ID:5cjiGf9R
解析してる最中だったのに終端まで到達しちゃったんだけどどうしてくれんの?の意味。
たいていカッコが閉じてないからとかだけど、まずはインデントサイズがバラバラなの直せ
2021/01/30(土) 16:48:20.81ID:9ArkaPud
ありがとう
インデントサイズが何なのかわからんからググってみるよ

あとは()の閉じ忘れか
2021/01/30(土) 22:33:23.05ID:e5kc5ZG/
Pythonでインデントがあやふやって命とりだぞ?
2021/01/31(日) 04:38:10.07ID:LnuqQuZJ
恐ろしいことだよ
プログラマが新たな言語を身に着けようとするのではなく
プログラミング素人が、おそらくは機械学習等の話題の技術を使いたくて
ライブラリ・プレイヤーとしてPythonを使おうとする風潮が広まっているのではと危惧している
プログラマなら言語の概略は自習できるはずだからな
2021/01/31(日) 06:40:44.67ID:QZnwKzSF
別に誰が何を使おうがどうでもいいだろ
こんな超初心者スレで土方が偉そうにしてんじゃねえよ
2021/01/31(日) 06:59:47.71ID:7s2vE3J9
だよな
大きなお世話。
2021/01/31(日) 07:57:45.33ID:ztsWDMWg
>>214が超重要なこといってるのに
おまいらときたら・・・
2021/01/31(日) 08:54:49.79ID:r2IynlG8
最近もうpythonすら使う必要ないぞ
ウィザード進めてくだけで深層学習できるサービスをmsとか出してたしな
220デフォルトの名無しさん
垢版 |
2021/01/31(日) 10:13:00.10ID:1DsB1/Xq
>>215
全員最初は素人だし何の問題が?
変な選民思想持ってそう
221デフォルトの名無しさん
垢版 |
2021/01/31(日) 10:56:05.26ID:BqL9JwJS
>>216
そのうちGitHubにSMBC上げるんですね判ります
222デフォルトの名無しさん
垢版 |
2021/01/31(日) 10:58:11.00ID:BqL9JwJS
「最初は素人」は事実だが
選民の思想を知ろうとしない素人は総じてクソ
2021/01/31(日) 11:35:59.24ID:kL2FkcqW
>>220
「ライブラリ・プレイヤーとしてPythonを使おうとする風潮が広まっているのでは」ってことを危惧してるって書いてあって
最初が素人であることが問題とか全く触れてない
日本語学べ
2021/01/31(日) 12:01:58.90ID:ztsWDMWg
ADHDあるあるで
最初の話題をわすれてしまう症状のヤツなのでは
2021/01/31(日) 12:09:04.11ID:+uTrKl1S
「ExcelプレイヤーとしてVBAを使おうとする風潮が広まっている」恐ろしいことだよ。
2021/01/31(日) 12:10:55.49ID:J0fsnxQJ
元はDOM操作をするために生まれたJavaScriptでデスクトップアプリケーションを実装しようとする風潮が広まっているのではないか
2021/01/31(日) 12:13:26.43ID:nCH8CA61
Pythonなんて豊富なライブラリ活用しないなら使う意味ないだろ
フルスクラッチで書くならCでも書いてろって話だわ
2021/01/31(日) 12:13:51.59ID:QZnwKzSF
>>221
むしろ今回の事件起こした人は自作バブルソートとか実装してたみたいだし
このスレでイキってるライブラリを見下してる自閉症オタクみたいなやつの方が可能性高いよ
2021/01/31(日) 13:38:19.95ID:fV+Qo3gM
ぶっちゃけ、普通のプログラミングも出来ないやつは機械学習なんかできないよ
だって、独自に画像を整理したりメタデータ付けたりということを効率的にできないし、
外注したとしても検証する術もない
チュートリアルでメソッド1発でデータセット取れるやつなら出来るけど、それ以上のとこで相当に苦労するよね
230デフォルトの名無しさん
垢版 |
2021/01/31(日) 15:02:29.05ID:o9nNBABB
私は競馬好きのおじさんです
excelvba程度はいじれます

https://www.youtube.com/watch?v=Pz5O52tshvQ
の内容が全然ついて行けないのですが、基礎的知識を付ける方法を教えていただけないでしょうか?
2021/01/31(日) 15:06:29.68ID:ztsWDMWg
>>230
勉強に抜け道なし
じみちにやれやー
2021/01/31(日) 15:12:09.25ID:tXs0q/O2
ググってすぐ解決することもあればどんだけグッグても同じ症状がなくて丸1日無駄にすることもある
2021/01/31(日) 16:05:15.00ID:7s2vE3J9
今月に日経ソフトウェアを買って
Pythonでぷよぷよを作ろう。

出来たら平安京エイリアンにチャレンジだ
234デフォルトの名無しさん
垢版 |
2021/01/31(日) 18:48:25.73ID:v040GjhZ
>>231-234
レスありがとうございます

皆さんはコードを紙に書いてますか?
youtubeやぐぐっても頭に貼らなくて・・・
2021/01/31(日) 18:53:38.01ID:ztsWDMWg
.

            ,.:::.⌒⌒:::::ヽ
            (::::::::::::::::::::::::::::)
           (;:::::::::::::人:::::::::::ノ
           (::: (´・ω・`):ノ またヅラの話してる...
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
2021/01/31(日) 18:57:28.47ID:WemMLUTq
>>234
実際にパソコンで入力して動かしてみないと身に付かないよ。
ついでに言えばyoutubeとかググって見つける断片的な情報で理解するのはよほど理解力があるかすでに基礎がちゃんと身に付いてる人くらいだから、面倒がらずにちゃんと入門書か入門者向けサイトとかで体系的に学んだ方がいいぞ。
2021/01/31(日) 20:38:55.38ID:I1yjTYID
>>234
紙に書くよりも実際にエディタに書きながらの方が良いな
2021/01/31(日) 20:59:40.49ID:qx1o6j8f
どのサイトのデータスクレイピングしてるのか知らんけど規約的にOKなサイトなんだろうか
違法の物を売ってるってことは流石にないか…
2021/01/31(日) 21:23:53.55ID:nzAJKhF6
tkinterでテキストボックスを使って、ボタンに設定した関数に引数として送りたいと思って下記の式を書いたのですが、
ウィンドウ内のテキストボックスで値を入力しても、ボタンへの引数が反映されません
どのようにしたらいいのでしょうか

#関数送り用テキストボックス
txt = tk.Entry(width=5)
txt.insert(tkinter.END,"1") #初期値入力
iii = int(txt.get())

# ボタン生成
start_button = tk.Button(root, text = "test", command = lambda:test(iii))

root.mainloop()
2021/01/31(日) 21:32:40.30ID:ukHS72vv
testの中でtxt.get()
2021/01/31(日) 22:28:44.26ID:3FeQVY09
>>236-237
ありがとうございます
本買ってきて地道に基礎力をつけようと思います
2021/01/31(日) 22:50:06.33ID:ztsWDMWg
>>238
誤爆か?それともアンカーを省略するのがカコイイと思ってるアレなやつなのか???
243デフォルトの名無しさん
垢版 |
2021/02/01(月) 00:14:19.87ID:z41PbL1f
>>223
何故それを危惧するのか分からん
「にわかが機械学習目的でpythonに大量流入していてけしからん」としか読めないが
2021/02/01(月) 01:40:03.07ID:n/vck6ul
>>241
基礎力とはなにや
文法わかるのか?
2021/02/01(月) 02:13:42.29ID:raodPEZB
>>243
ユーザーの質が落ちていくからだよ
Pythonは低レベルユーザーが使う言語という認識が広まるのは
決して良いことではない
2021/02/01(月) 02:32:01.34ID:CsFMKFd2
Pythonに求められてる事なんて簡単に書ける事と
それこそライブラリプレイヤーとしての機能くらいなんだし別にいいだろ
所詮スクリプト言語だぞ
2021/02/01(月) 04:30:17.57ID:lp7rw/Rg
Real Programmers Don't Use Python.
2021/02/01(月) 05:56:37.03ID:nEaLvYMA
言語を使う人の質を気にするなら関数型みたいなオタク言語使ってればいいじゃん
ユーザの質()は上がるんじゃないのw
249デフォルトの名無しさん
垢版 |
2021/02/01(月) 06:27:02.10ID:iI5pUuOE
訳:「pythonはわたくしのような意識の高い選民が使うものなんだから現生の利益だけを求める愚民は寄ってくるな」
2021/02/01(月) 07:08:50.44ID:zru6Wjni
>>245
おまいにPythonがあってないんだ
COBOLかアセンブラあたりへ移動するんだ
2021/02/01(月) 08:40:37.01ID:hLj49IWK
>>240さん
ありがとうございます
それ以外の方法ってないでしょうか、、できれば他にも流用できる関数としたくて、引数で使いたいなと思ってます
2021/02/01(月) 13:37:16.32ID:5yr9aQzL
lambda:test(txt.get())
txt.get()がいつ評価されるか、239となにが違うのか考えてみ
2021/02/01(月) 13:50:44.44ID:upKfiVZv
只でさえ型が緩いpythonに素人が押し寄せた結果、Qiitaには大量の糞記事だけが投稿される惨状に感じることは少なくはない。のはおれだけじゃないはず
2021/02/01(月) 14:12:37.28ID:zJNLywrQ
日本語でok
255デフォルトの名無しさん
垢版 |
2021/02/01(月) 14:20:58.61ID:fos4FOVO
>>245
javascriptもPHPもC++も低レベルユーザー多いぞ
2021/02/01(月) 15:00:37.83ID:3cmRi5lu
だから何?って言う。。
スルー出来ないおまえが低能なだけ
どんな言語・ジャンルにも低レベルなのは居る
2021/02/01(月) 16:21:33.73ID:o+igF3HP
糞記事というか似通った生地が多いのはあるな
適当なライブラリでググって上のほうにあるサイトの書き方とどれも同じとか
別に変数とか順番とか決まってるわけでもないのに、みんな上のほうにあるサイトを教科書代わりにして書くから、結果それが決まった定型のような扱いになるパターン
ソース見たら意外と便利な関数とかあって、それでググったら日本語サイト一切ひっかからなかったり
258デフォルトの名無しさん
垢版 |
2021/02/01(月) 16:59:40.21ID:fos4FOVO
-sejuku は毎回NG指定してる
2021/02/01(月) 18:47:53.12ID:FgV6dnQe
関数内で呼び出すexecをグローバルコンテキストで
実行させるには第2引数に何を与えれば良いですか?
def func():
 exec(“a=1”, ???)
2021/02/01(月) 19:08:24.93
google colabのタブのミラーセルってなんですか?
2021/02/01(月) 20:00:17.26ID:zru6Wjni
>>259マルチポスト
https://mevius.5ch.net/test/read.cgi/tech/1600035173/488
2021/02/01(月) 20:01:56.60ID:zru6Wjni
>>260
うんこつきヴァー('A`)
263デフォルトの名無しさん
垢版 |
2021/02/01(月) 20:09:05.13ID:M+MnQ84M
>>253
上級者()ならqiitaに求める情報はないやろ
stackoverflowでも読みな
264デフォルトの名無しさん
垢版 |
2021/02/01(月) 20:21:18.01ID:6c5mrI3q
超クソ初心者

for a in range(2,21):
sosuu=1
for j in range(2,a):
if a % j ==0:
sosuu=0
if sosuu ==1:
print(a,'(素数)')
if sosuu ==1:
print(a,'(素数)')
else:
print(a)

これって一行一行どういうことが起こってるのが教えてほしい
『最初の一行「for a in range(2,21):」でaは2-21までの範囲を指してる』
的な感じの説明で。
2行目のsosuu=1とか3行目で何故(2.21)はダメで(2.a)だとしっかりできるのかが謎で
一つ一つ根本が知りたい
2021/02/01(月) 20:22:49.15ID:zru6Wjni
>>264マルチポストクソやろうチネ!!!(・∀・)
https://mevius.5ch.net/test/read.cgi/tech/1600035173/473
2021/02/01(月) 20:58:11.39ID:qbaS6uPl
OS付属のPythonが3.8から3.9になった。
すると、pipが/usr/lib64/python3.8/site-packages/ に入れたライブラリが使用できなくなった。
仕方ないので pip で再インストールした。
そこで質問です。pip upgrade 3.8 to 3.9 などとすると、その辺りを勝手にやってくれないの?
pip(1)には特に記載ないのだけれど、わりとぶち当たる問題ですよね。
2021/02/01(月) 21:01:59.77ID:DEyQGLil
>>259
第二引数にglobals()
2021/02/01(月) 21:11:19.61ID:f5CB6Ii8
>>267
ありがとうございます。
2021/02/01(月) 21:59:34.59ID:DEyQGLil
>>266
3.8$ pip freeze > requirement.txt
requirement.txtの中身を編集して
3.9$ pip install -r requirement.txt

使ってるバージョンマネージャによっては
新しいバージョン入れたら必ず入れるパッケージを指定できるようなのもある
270デフォルトの名無しさん
垢版 |
2021/02/01(月) 22:00:33.26ID:HqX9nviR
>>266
>わりとぶち当たる問題ですよね。
そんなことはないです

一つだけ確認なんですけど
>仕方ないので pip で再インストールした。
とりあえずはこれで解決できたということですか?
2021/02/01(月) 22:06:44.00ID:hLj49IWK
>>252さん
ありがとうございました。
できました、ボタンを押した際にgetが実行されるのですね、バッチリです
2021/02/01(月) 22:07:12.42ID:WmhSgTw5
>>266
OS付属のPythonをpipで弄るのはOSがおかしくなるかもしれないからやめた方がいいよ
OSはOSの都合でPythonや付属ライブラリのバージョンを決めてるから、ユーザーが開発に使うのはpyenvでインストールしたバージョンが固定されたPythonの方がいいし、
そもそもプロジェクトごとに使いたいパッケージのバージョンが違ったりするからPoetry, pipenvなどの仮想環境を使った方がいい
2021/02/01(月) 22:48:17.19ID:KcF6/QTu
OS にプリインストールされているものを変えたの?
すべてのアプリが想定しているものと異なるから、動かなくなる

漏れは、日本人が作った、バージョンマネージャーのanyenv で、
rbenv, nodenv を使って、ruby 2.6.6, node 12.16.2 を入れた

こういうので、pyenv で、プロジェクト毎にバージョンを切り替える
2021/02/02(火) 00:52:49.29ID:D6RFLw+E
そう、で、す、か、
2021/02/02(火) 09:18:07.44ID:JzH47QT8
Docker は微妙だから VirtualBox でいいや。
2021/02/02(火) 13:40:26.61
pythonをGUIで操作したいならdockerは微妙だけど、それ以外ならdockerの方がいい
webアプリ化すればほとんどはシェル併用でどうにもなるし
どうしてもpython以外(かつGUIで)のソフトを使いたいって場合くらいじゃないのVirtualBoxの仕用途
2021/02/02(火) 18:18:25.76ID:Bbt0Bton
PythonをGUIで操作とかもう訳わかんねーな
2021/02/02(火) 18:20:09.25ID:ozkAVgNF
Jupyter Notebook...
2021/02/02(火) 18:31:30.06ID:Bbt0Bton
それアプリケーションじゃん
2021/02/02(火) 18:44:22.05ID:PI7tMABu
PyQtとEricでVSのwinformみたいに組めるよ。
ラズパイでGUIやれるようになって幸せ。
2021/02/02(火) 18:47:28.41ID:ERs0GZwW
まぁ初心者スレだし
2021/02/02(火) 18:53:45.22ID:SgZfZ3QH
Pythonってなに作るのに向いてるの?
2021/02/02(火) 19:00:48.91ID:u/HK1Pt5
>>279
Python を GUI で操作じゃないのか?
GUI を作りたいんかね。
2021/02/02(火) 19:07:55.98ID:SgZfZ3QH
C#でGUI作って
特定の処理だけPythonの方が普通なのか?
2021/02/02(火) 19:17:49.05ID:OU1WloPY
別に無理してPython使わなくても
2021/02/02(火) 19:17:56.73ID:DklR/gYA
GUIで操作ってOpenCVのimshowみたいなのをインタラクティブに操作したいってことでは?
2021/02/02(火) 19:30:44.46ID:cdl6o0Fq
Lua
2021/02/02(火) 19:48:05.52ID:Bbt0Bton
>>283
Python製のアプリケーションをGUIで操作ってことなら意味わかる
2021/02/02(火) 20:39:12.65ID:kp7FgpQM
今ではGUIが必要になったら、FlaskとVueを組み合わせて作ることが多くなった
2021/02/02(火) 20:55:55.73ID:NtuoF5yn
>>284
GUIを必要としないものは実は沢山ある
君がそういうものを思いつかないなら、おそらく君にPythonは適していない
2021/02/02(火) 21:13:01.59ID:PI7tMABu
>>282
ラズパイではこれが便利なんだよ。
2021/02/02(火) 21:14:50.83ID:PI7tMABu
ラズパイで色んな装置と通信するコンソールをGUIでやってみて、楽勝だった。
2021/02/03(水) 01:09:27.08ID:uyKGjePK
with文について質問です
withブロック内で新しく宣言した変数をブロックの外で使っても
エラーが発生しないのはなぜでしょうか?

with open('./example.txt', 'r', encoding='UTF-8') as file:
____data = file.read()
print(data) # ←この文です
2021/02/03(水) 01:24:18.13ID:NRhVzOUI
>>293
Pythonのローカルスコープは、関数内およびクラスのメソッド内でのみ作られる…はず
withは関数ではないから、dataはグローバル変数
2021/02/03(水) 02:16:42.71ID:FJQE1f2p
ブロック=スコープではなく制御文同様スコープ作りません
あとはPython3で内包表記が密かに作るようになったかな?
296293
垢版 |
2021/02/03(水) 02:22:26.48ID:uyKGjePK
>>294
>>295
ありがとうございました

Pythonややこしい…
2021/02/03(水) 19:53:20.90ID:dO5q2ySB
すみません、openpyxlの質問はここでよろしかったでしょうか。
取り込んだエクセルから、指定のセルの文字サイズを得たいのですが、どなたかアドバイス下さい。
2021/02/03(水) 20:02:34.55ID:0a0VMm7q
>>297
>文字サイズ
文字数じゃなくてフォントのポイント数のことけ?それともまさかそれ以外(セルの高さとか)?
2021/02/03(水) 20:18:59.44ID:dO5q2ySB
ポイント数です。
print(cell.font)で、一覧としては出てきたのですが、
他のセルに貼り付けるために取得たいのですが、上手くいきません。
2021/02/03(水) 20:22:30.18ID:0a0VMm7q
>>299
「openpyxl フォント 設定」でまずぐぐり
気に入らない/理解できないならば
次に「openpyxl フォント サイズ」でぐぐる
2021/02/03(水) 20:30:33.12ID:dO5q2ySB
>>300
設定方法は、ネット上で見つけて何とかなったのですが、取得方法がうまくいきません。
だいぶ検索もしたのですが、、
2021/02/04(木) 06:10:52.03ID:Rmua4RGj
>>301のprint(cell.font)ってしてる
cellにナニぶっこんでるのかresして
結果の一覧とやらを>>1にのってるろだとかにのせたら
もちょい進める、かも
2021/02/04(木) 06:42:15.09ID:8ASdjdRY
とりあえず
簡単な画像比較作るか
2021/02/04(木) 07:17:40.73ID:V53VIWYq
(function (x, y) {
  ここに処理を書く
})(a, b);

JavaScript では上記のように擬似的なスコープを作って
上位スコープから変数を渡すことができますが
これと似たようなことをPythonで実現可能ですか?

グローバルの変数汚染を避けるのが目的です
以下のような無名関数として呼び出せればと思うのですが。。。

(def (x, y):
  ここに処理を書く
)(a, b)
305デフォルトの名無しさん
垢版 |
2021/02/04(木) 09:26:22.09ID:c560f9Nc
>>304
lambdaでどーぞ
2021/02/04(木) 09:29:06.70ID:yNPj7IC/
>>304
普通は気にしない
Pythonのグローバル変数はモジュール(ファイル)の名前空間に属するから、グローバル名前空間を汚染しない
本当に局所的な変数が欲しいなら普通に関数を定義してローカル変数にして普通に呼ぶ
トリッキーなことはしないで素直に普通に書くのがPython流
2021/02/04(木) 10:47:48.68ID:ETtm6pXr
Pythonて関数の引数が参照渡しなんだな
値渡しだと思って今まで使ってたから調べてびっくりしたわ
リストなんかを変数で渡した場合は関数内で書き換えできてしまうから注意が必要だね
308デフォルトの名無しさん
垢版 |
2021/02/04(木) 11:12:44.25ID:ZzRKCYY/
>>294
with の中を通らなかったときの data の値は必ず None で OK?
2021/02/04(木) 11:15:39.42ID:0AhC+pkm
>>307
引数が(変数の)参照渡しな訳ではないよ、元々が実体へのオブジェクト参照(PyObject*ポインタ)
値渡しはC的に言えばスタックに載せるという事であり、それは大抵のシステムで既定上限が数MB以下
2021/02/04(木) 12:21:19.44ID:fv2NAPkU
ナムパイとナンパイ、どっちですか?
2021/02/04(木) 13:42:24.63ID:eiMq+3qj
>>306
コーティングの是非を聞きたいのではなく
仕様として可能なのかを聞いています
単にそこに興味があるだけです
2021/02/04(木) 13:44:27.86ID:eiMq+3qj
>>305
もちろん考えましたが
何行にも渡るコードをlambdaでローカルスコープにするのは
実用的でないと思ってます
偉そうな書き方になってたら申し訳ない
2021/02/04(木) 13:45:16.38ID:4oTwDo+v
(lambda x,y:x+y)(1,2) -> 3
みたいな書き方はできる
2021/02/04(木) 14:21:08.73ID:8DiqYeP0
PILで読み込んだ画像とOPENCVで読み込んだ画像は、それぞれで扱うことはできないのでしょうか?
また、画像がどっちの形式で変数に入っているかを判断することはできないでしょか?
2021/02/04(木) 14:58:09.72ID:qhstqCrC
>>311
括弧を使ってスコープを切れるか? => 切れない
JSのIIFEを模倣できるか? => lambdaなら可
グローバル汚染を避けられるか? => そもそもグローバル汚染しない
2021/02/04(木) 15:06:35.15ID:qhstqCrC
>>311
lambda以外に無名関数を定義する方法があるか? => ない
2021/02/04(木) 16:13:42.50ID:Rmua4RGj
>>310
前者
318デフォルトの名無しさん
垢版 |
2021/02/04(木) 16:54:20.60ID:4/57iig+
>>314
https://note.nkmk.me/python-image-processing-pillow-numpy-opencv/
https://qiita.com/derodero24/items/f22c22b22451609908ee
https://wonderfuru.com/opencv%E3%81%A8pil%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/
http://tatabox.はてなぶろ.com/entry/2013/07/21/231751
2021/02/04(木) 17:00:58.28ID:dB2jWvbu
netの情報はいい加減なのが多い
320デフォルトの名無しさん
垢版 |
2021/02/04(木) 19:10:10.39ID:KK0mSk54
>>314
numpy.array(pil_image)でおーぷんしーぶいで扱える
321デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:04:09.36ID:c560f9Nc
python界隈は、ピップだのピップエンブだのパイパイだのパイエンブだの、固有名詞がダサすぎないかい。
2021/02/04(木) 21:06:02.85ID:Rmua4RGj
そもがモンティパイソンだからしゃーない
323デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:16:08.40ID:WFDJ+byI
並列で実行しておきたい関数があって
ある条件に一致したら終了する関数なのですが
終了して、まだキューになく並列実行してなかったら再度並列実行したいと思ってます

下記で同時実行しているタスク数や実行しているか確認することはできるのでしょうか
実行中はTrueが入っていると思ったらちがいました

executor = concurrent.futures.ThreadPoolExecutor(max_workers=1)
f = executor.submit(test_sub,1)

if f=True:
f = executor.submit(test_sub,1)
324デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:30:50.18ID:xGlwnT6u
競プロかなんかで時間ギリギリまで問題解きたいのか?
325デフォルトの名無しさん
垢版 |
2021/02/04(木) 23:46:00.85ID:WzBF5t1f
>>321
ぱいぱい!!
326デフォルトの名無しさん
垢版 |
2021/02/05(金) 07:49:10.98ID:PjtyCIQW
>>323
fはFutureオブジェクト
2021/02/05(金) 09:11:59.04ID:aDktR5P1
pythonのエラーの対応について教えて下さい
環境は3.6でエディタはAtomを使っています。

VBAとかだとどこでエラーが起きてもエラメッセージが帰ってくる思うのですが、
pythonだと関数から呼び出した関数で起きたエラーは、コンソールウィンドウに表示されず
メッセージ無しで止まってしまいます。
エラー対応で検索すると、Tryを使うとのことなのですが、
関数の始まりからtryで囲うやり方がベストなのでしょか?
全関数を以下の通り対応するのはスマートではないなと・・

def test():
try:
関数の中の全部の処理

except ****:
2021/02/05(金) 09:44:19.31ID:j/7809a/
普通に出力されるが
2021/02/05(金) 12:49:18.87ID:T/OPgv07
>>327
関数使うときにtryしたほうが良くね?
2021/02/05(金) 13:03:15.92ID:mRakDWTP
>>327
try使うときは
エラーがおきるかもしれない最小範囲のみをくくるべし
2021/02/05(金) 15:18:46.74ID:f8nqzbTK
最初にやった方法からさらにいい方法思いついてデータ量や実行時間が大幅に減らせたときの快感がたまらん
2021/02/05(金) 16:02:31.28ID:zkrcBcSu
それで、コードの可読性を損ねて、
後でどこを直せばいいかわからなくなることもしばしば
2021/02/05(金) 16:08:30.83
try:
 エラーでそうな処理
except:
2021/02/05(金) 16:11:08.41
途中で送信してしまいました
def
try:
 エラーでそうな処理
 return 11
except:
 エラー出たときの処理
 return 22

このエラー出たときに、エラー以外の処理を返すようなやり方はやめた方がいいですか?
エラーのときはExceptionなりでエラーをそのまま返す
みたいな
335デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:19:11.95ID:oYpVlEXM
>>334
「エラー出たときの処理」でエラーから復旧したと言えるならそれでいいんじゃないか
呼び出し側で対応が必要ならExceptionを返すべき
336デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:21:11.97ID:oYpVlEXM
× Exceptionを返す
○ Exceptionをraiseする
337デフォルトの名無しさん
垢版 |
2021/02/05(金) 21:02:16.92ID:N5jEb7lV
Jsonファイルのリストの中から、
価格の情報だけを比べて、
一番大きい価格を取り出す方法が分かりません。

{
"status": 0,
"data": {
"list": [
{
"price": "4172840",
"symbol": "BTC",
},
{
"price": "4104400",
"symbol": "BTC",
}
}
こんなようなJSONがあって、
リストの中の、priceだけを比較して、
一番大きい、priceを取り出す方法が分かりません、
上の例だと、max( "price": "4172840" "price": "4104400")
となると思うのですが、
どうやってリストの中の価格だけを取り出して、
一番大きい値を取り出せばいいか分からないです。
338デフォルトの名無しさん
垢版 |
2021/02/05(金) 22:23:34.72ID:6/zDXCCK
item = max(json_obj["list"], lambda i: i["price"])
2021/02/05(金) 22:36:41.20ID:ltTaykUg
ジェイソン!
2021/02/05(金) 22:57:54.64ID:T/OPgv07
410万ビットコインって幾らになるんだろう?17億円くらいかな?
341デフォルトの名無しさん
垢版 |
2021/02/05(金) 23:29:03.53ID:N5jEb7lV
>>338
ありがとうございます!
string indices must be integers
とエラーがでてまだ取れてないけど、、
もう少し調べて頑張ってみます。
342デフォルトの名無しさん
垢版 |
2021/02/06(土) 08:39:05.31ID:UyfeHPoO
今までpcで動かしてた機能をandroidで動かしたい
apkを作るにはkivy とbuildozerを使うらしい
こっちの環境作るのにも詰まってるけどそもそも今動いてる.py をそのまま使えるのかも分からない
何か書き換えとか必要?
そして環境構築方法詳しく載ってるサイトがあったら教えてください。
343デフォルトの名無しさん
垢版 |
2021/02/06(土) 10:54:46.58ID:PohEB++t
sl4a
344デフォルトの名無しさん
垢版 |
2021/02/06(土) 11:42:13.31ID:IR3wWC2w
sl4aは見つけたけどapkにしたいんだ....
2021/02/06(土) 13:29:12.16ID:ROiZJzWf
python のメソッドって
def hoge(x,y):
以下中身
まではわかるんだけど
終わりの区切りはどうなってるの?
空行できたらそこで終わり?
returnとかあればいいの?
2021/02/06(土) 13:40:24.90ID:FU+/gIxh
>>345
カラ行は無視で
なんか書いてある行のインデントの深さが変わったらそのブロックはおしまい
2021/02/06(土) 13:54:35.07ID:ROiZJzWf
>>346
インデントか
なるほど
ありがとうございます

勉強になりました
2021/02/06(土) 14:24:19.00ID:FU+/gIxh
>>347
体系化ずみのサイトなりテキストなりを一冊読んだ方が
遠回りにみえるかもしらんが
一番早道だぉ
ノシ
2021/02/06(土) 15:12:36.40ID:6eQmSTNr
>>337
Ruby では、文字列の値を、数値へ変換すればよい。
と言うか、変換するのが面倒なので、最初から数値で、やり取りすれば良いだけ

require 'json'

# 値が数値
json_1 = <<'JSON'
{ "a":1, "b":2 }
JSON

p JSON.load( json_1 ) #=> {"a"=>1, "b"=>2}

# 値が文字列
json_2 = <<'JSON'
{ "a":"1", "b":"2" }
JSON

p hash = JSON.load( json_2 ) #=> {"a"=>"1", "b"=>"2"}

# 文字列の値を、数値へ変換する
hash.each { |key, val| hash[ key ] = val.to_i }
p hash #=> {"a"=>1, "b"=>2}
2021/02/06(土) 15:26:54.07ID:sxvkqNg5
NG推奨ワード: Ruby
2021/02/06(土) 22:21:18.88ID:WYrAP15n
for num in range(5):
print(num)
if num==3:
num=num-1

ていうのを動かすと
0,1,2,3,4
ていう結果になる。

0,1,2,3,3,3,......
ていう結果にしたいんだけどどうすればい?
下のような動きにしたい。
for i=0 to 5
print i
if i=3 then i=i-1
next
2021/02/06(土) 23:05:26.75ID:l1Q4fjMo
https://ideone.com/IjrjUd
353デフォルトの名無しさん
垢版 |
2021/02/06(土) 23:08:53.63ID:s8ZQn1/T
その例のコードで 0,1,2,3,3,3,...... って出力されるの?
やべーねその言語
2021/02/06(土) 23:10:49.88ID:B5gVBJsh
forじゃなくてwhileを使うのでは…
2021/02/06(土) 23:11:47.83ID:Ye4r/rjw
for i in range(5):
print (min(i, 3))
2021/02/06(土) 23:12:43.26ID:9BgHZVUo
for i in range(5):
____if i > 3 : i=3
____print(i)
2021/02/06(土) 23:15:55.88ID:1hxtRDLK
やりたいことはジェネレーターで無限ストリームっぽい気がする
2021/02/07(日) 00:16:21.39ID:jpmL2+yv
こういうこと?

i = 0
while True:
x = i
if i > 2:
x = 3
i = i + 1
print(x)
2021/02/07(日) 02:02:20.67ID:QRtsbk1z
[i if i < 3 else 3 for i in range(5)]
2021/02/07(日) 04:46:16.11ID:9cKdY56s
printせえよ
2021/02/07(日) 08:50:24.56ID:JR5bkMUq
>>351
まじほんと>>353だは…
351は偽Pythonをつかまされているのでは
2021/02/07(日) 09:10:55.34ID:FFuFCGQD
sorted関数はwindowsの名前順と同じようにソートするんですか?
natsort?
2021/02/07(日) 10:44:13.68ID:KNf11SZT
dictの型ヒント書こうとしているんだけど、TypeScriptみたいにキー毎に
値の型を指定するような芸当は無理だよね?
2021/02/07(日) 10:57:54.98ID:7XkuYEp+
>>363
typeddictとかいうの無かったっけ
tsと同じようなことできた気がする
2021/02/07(日) 11:24:42.44ID:KNf11SZT
すげぇ。ありがとう。
2021/02/07(日) 11:44:28.72ID:kn8KLgWd
>>362
Windowsのソート順は分からないけど
2021/02/07(日) 13:56:45.22ID:+o5/+U2b
>>366
windows上で、フォルダの中に名前順に並んだ複数ファイルがあって
これをそのままの順番で取得したいんですが、glob+sortedでいいのでしょうか?
windows上での並び順と異なる場合があるとかだと困るのです
2021/02/07(日) 14:00:38.24ID:NCHwUWPY
>>367
なんで困るの?
2021/02/07(日) 14:10:44.92ID:7XkuYEp+
sortedはnatsortじゃないです
2021/02/07(日) 14:11:22.42ID:3B496xZd
_1 と _01 の話でしょう。
エクスプローラは長さ判定の方が
優先順位が高いアルよ
2021/02/07(日) 14:33:32.29ID:mFk3/GAA
エクスプローラーのソート順は全角半角同一視とかロケール依存もあるでよ
372デフォルトの名無しさん
垢版 |
2021/02/07(日) 15:22:35.38ID:FFuFCGQD
スクリプト使用者は日本語環境のwindows
フォルダ内に任意の命名規則の連番ファイルが数種類混在する
つかわれる文字種は全半角日本語英語、数字と記号(文字化けした中国語っぽいやつはありえる)
例えば
.01.02
.あ001.い001
._01a._01b
という3ルールがひとつのフォルダ内にあって、命名規則は制限できない
エクスプローラー上で表示される名前順の並びに意味があるので、順番を保持したデータ構造を取得したい

です!
373デフォルトの名無しさん
垢版 |
2021/02/07(日) 15:31:29.22ID:0RC+Q+w9
あ、個々の連番ファイル作成者も日本語windowsのエクスプローラーで順番を確認してます
374デフォルトの名無しさん
垢版 |
2021/02/07(日) 15:39:10.65ID:LHj1ntdf
sortedは単なる辞書順
375デフォルトの名無しさん
垢版 |
2021/02/07(日) 15:54:16.47ID:UfsgAoOW
natも違う
windowsは.01→01と並べるけどnatは逆になる
2021/02/07(日) 16:09:32.73ID:QRtsbk1z
それを使って何がしたいのか分からないと見当違いになるかも知れないけど
ファイルへの処理を疎結合にはできないの?

あとはこれもnatsortと同じなのかな
sorted(paths, key = lambda x: int(x.name))
2021/02/07(日) 16:13:58.14ID:kn8KLgWd
そもそもWindowsと同じ並びにしなければならない理由が理解できないんだけど
どういう理由なの?
もし並び順に依存した処理が必要なんだっていうならばその実装がおかしいと思うけどな
2021/02/07(日) 16:22:59.73ID:NCHwUWPY
エクスプローラー上で表示される名前順に依存しなきゃいけないシステムってのがよくわからないけど
とりあえずnatsortのos_sorted()を試してみたら?
Windowsの場合はエクスプローラが使ってるAPIを使ってる

エクスプローラのソート仕様を100%把握するのは無理な気がするので
どういうテストケースを通ればOKとするかは事前に決めておかないと後で困りそう
2021/02/07(日) 16:25:23.50ID:KNf11SZT
windowsと同じにって言っても、ファイルシステムがFAT系とNTFSでも違った気がする。
380デフォルトの名無しさん
垢版 |
2021/02/07(日) 17:00:56.73ID:FFuFCGQD
>>378
あーこれですね。たぶん
ちょっと様子見つつ、動かしてみます。ホント助かりました

>>376
a, bさんがそれぞれ独自の連番データを持ってて、Aというひとつのフォルダに入力します
bさんは“エクスプローラーの名前順で”aさんのデータのあとに自分のデータを置くこと
aさんとbさんは異なる命名ルールを使って、第三者が“命名ルールを見て”群を区別できるようにすること
がルールです

そうして出来たAフォルダの中身を、自分が上から順に読み込んで処理する

みたいな…
2021/02/07(日) 17:11:24.53ID:QRtsbk1z
正規表現で群を分割してそれぞれの群に対して逐次処理していく
とかだと駄目なのかな?

単純にソートして順に処理していくとファイル漏れがあった時とかにバグりそう
2021/02/07(日) 17:25:25.92ID:kn8KLgWd
早々に破綻しそう
ユーザー名や更新日時を基準に考え直した方が早いよ
2021/02/07(日) 17:31:05.90ID:JR5bkMUq
ういんどーずあぷでーとである日地獄になりそう
2021/02/07(日) 17:42:05.53ID:kn8KLgWd
まずaさんとbさんのデータをわけなよ
その上でファイル名を正規化してソート出来る形にする
ソートの基準が違うものをソートしようとしてるから物事が複雑になる
なのでまずはソートの基準を揃えることから始めたら良いんじゃねーかな
385デフォルトの名無しさん
垢版 |
2021/02/07(日) 17:59:41.51ID:Ezbk+4+j
要するに
[".1", "10", "2", "1", ".2", "1"]
をwindowsエクスプローラー上の名前順
[".1", ".2", "01", "1", "2", "10"]
にソートするにはどうすればいいか的な話でしょ?

つか状況がクソだぞって指摘はしてあげるべきだろうが
そこを変えろって回答は論外じゃ…
2021/02/07(日) 18:10:18.26ID:/kKFnkGm
システムはエクスプローラーとか、特定のアプリのアルゴリズムに依存すべきじゃない。
ある日突然、変わるかも知れない。
API・規格が無保証だろ

自分のアプリは、自分で規格を定義すべき。
そうしないと、可搬性がなくなる

OS・ファイルシステムが異なると、結果が違ってくるから
387デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:12:05.44ID:RFMN3ZYm
こういうメンドクセーもんは大抵はどっかの誰かが既に作ってあるハズだからpypiで探すか
標準で提供されてると見当つけて公式サイトを探す

自分が欲しいと思ったモンは99.99%の確率で他の誰かが既に実装してる
2021/02/07(日) 18:12:49.36ID:NCHwUWPY
>>385
命名ルールがわからないからそれで十分かどうかはわからない
ある時点のあるPCで見たエクスプローラの名前順をPythonで再現したいという話

命名ルールも再現したいエクスプローラのソート仕様の範囲も不明確なので事故るかどうかは運任せ
389デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:31:26.56ID:4v/nAOdw
>>367
windows って explorer で表示したときの並び順と
プロンプトで dir で表示したときの並び順が
違うって知ってた?
0000
0001
1
111
10
20
みたいなファイル名で試してみ
2021/02/07(日) 18:39:15.86ID:JR5bkMUq
>>389
エクスプローラのソートとひとくちにいっても、
ターゲットのフォルダをあけた状態と
そこから左カラム右クリック新しいウインドウから開く でもいっこあけた窓の中で
順番変わる
391デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:53:51.92ID:cgYbYP7a
この言い訳の山よw
2021/02/07(日) 18:54:51.98ID:JR5bkMUq
>>391
見本コードはようp
2021/02/07(日) 19:04:34.30ID:uQM/ElP7
並列処理をしているときに、何が実行されているか確認することって出来ますか?
キューに入って順番待ちになっているタスクも確認したいです。
WEBページを2〜3ページ並列で取得するようにしてるのですが、並列にしたときにデバッグで確認することも難しく教えていただければと思います。
2021/02/07(日) 19:05:55.85ID:kn8KLgWd
Pythonだとcelery
2021/02/07(日) 19:25:21.61ID:3B496xZd
9x年代の「accessの美しいsort順」の
再来かよw

アレの実装も凄いな
2021/02/07(日) 20:09:13.36ID:kn8KLgWd
>>385
そもそもユーザーがソート順変えたら破綻する仕組みに依存した設計とかどうしようもないだろ
2021/02/07(日) 20:11:08.97ID:JR5bkMUq
ユーザーが2個目のウインドウ開けてそっち見たらおしまいな件
2021/02/07(日) 21:30:52.36ID:HPp7Agld
https://docs.microsoft.com/ja-jp/windows/win32/api/shlwapi/nf-shlwapi-strcmplogicalw
windowsのpythonのos_sortedはこれで判定してる
2021/02/07(日) 21:33:41.58ID:xkZ6C6tJ
Behavior of this function, and therefore the results it returns, can change from release to release. It should not be used for canonical sorting applications.

だとさ
400デフォルトの名無しさん
垢版 |
2021/02/08(月) 00:38:44.29ID:5J2edDoW
>>397
横から
これで順番変わってる状態って見たことないけど、どういうファイル名の並びだとそうなるん?
2021/02/08(月) 02:14:42.69ID:wlkdd0te
ラズパイを載せたGoPiGoロボカーで、線虫脳シミュレート
https://www.youtube.com/watch?v=9kxty2qec4g

エラーを解決したので、試しに動かした
2021/02/08(月) 03:02:58.50ID:wlkdd0te
コードはGithubで公開されてるものを突っ込んだ
2021/02/08(月) 09:25:13.35ID:wJ3JIqDy
>>395
くわしく
2021/02/08(月) 09:29:15.28ID:dM4oOJoS
スイッチのONOFFに連動してアクション起こすものを作ってみたくてほぼ期待通りの挙動させられるようになったのですが、たぶんimportで他.py呼び出す時にエラー?になります。
スイッチONになればその都度実行してほしいのですが、一度きりしか実行されません。
importで呼び出す場合は回数制限のようなものがあるのでしょうか?
405デフォルトの名無しさん
垢版 |
2021/02/08(月) 10:17:14.59ID:WsHYblSd
どんなエラーがでてるか、そのまま貼った方がいいと思うな
2021/02/08(月) 10:58:40.46ID:hgsCKB/O
importの実行は一度だけ
なので関数にして都度実行
407デフォルトの名無しさん
垢版 |
2021/02/08(月) 12:17:07.33ID:5JxS4RLe
「importで他.py呼び出す時」
「importで呼び出す」
perlじゃないから考え方を変えろ
2021/02/08(月) 12:27:47.27ID:yv+/ZfUq
Pythonのimportは、COBOLのCOPYと同じと考えて良いですかね
ソースのその箇所に埋め込む感じの
2021/02/08(月) 12:44:47.59ID:5KN+Fjzm
>>408
全然違う
importは対象のモジュールがまだ現在のプロセスで読み込まれていない場合は読み込み、現在のスクリプトファイル内で使用できるようにする
COBOLの知識とか害悪でしかないから今すぐ全部忘れろ
2021/02/08(月) 13:10:02.10ID:dM4oOJoS
>>405
夜になりますが、そうしてみます。
while true:
if switch == true:
import action01
print("action01")
flag = true
else:
import action02
print("action02")
flag = false
みたいなコードで、printによる表示は正常にされていても、importでは呼び出せてないような挙動でした。エラーを吐いてるわけではありません。

>>406
ありがとうございます。
関数とimportの違いもわからないので、調べてきます。

>>407
プログラミングは昔Cのポインタで挫折したタイプなんでよくわかってません。
2021/02/08(月) 14:02:52.07ID:hgsCKB/O
>>408
>>410
Pythonのimportは名前空間にパッケージ名を登録してるだけ

import package # プロセスの名前空間にパッケージ名を登録
package.function() # packageに書いた関数を使う

import時、プロセス内に同じ名前のパッケージ名があれば読み込み不要だからキャンセルされる
なので >>404 のように一度しか実行されないってことになります
2021/02/08(月) 18:22:57.82
pandasのdropってディープコピーってことは
dropするたびに変数に入れないといけないってことですよね?
データフレームが大きいときその辺り気にしなければいけないのでしょうか
2021/02/08(月) 18:54:54.09ID:0fSH6U0R
Ruby でも、require・load は異なる

require は同じファイルは一度だけしかロードしませんが、 load は無条件にロードします。
require はライブラリのロード、load は設定ファイルの読み込みなどに使う

つまり、ライブラリ・モジュールの読み込みは、1回で良いけど、
設定ファイルは再読み込みする事がある
2021/02/08(月) 20:10:14.07ID:Ar0nSnLQ
>>412
IOに比べたらカスみたいなもんだからどうでもいい
実際遅かったら直せばよい
2021/02/08(月) 20:50:16.85ID:wJ3JIqDy
推奨NGワード: Ruby
2021/02/08(月) 21:18:46.00
>>414
なるほどありがとうございます
とりあえずはまとめられる処理はできる限り一つにまとめてみます
417404
垢版 |
2021/02/08(月) 21:40:53.51ID:TgcbDI6H
正解なのかはわかりませんが、なんとか期待通りの動きをするようになりました。
元々のコード:ttp://codepad.org/RgfCqXLD
変更後:ttp://codepad.org/C9YTzwaU

スイッチがONになったら反応、OFFでもう1つのアクション。
ついでにキャンセルもできるようにしようとするとフラグを2つ立てないとうまくいかなかったので、無駄に長くなってしまった気がします。
もしお暇でしたらアドバイス貰えれば幸いです。
2021/02/08(月) 21:44:11.22ID:XWqxRkjb
>>403
悪いがオリジナルは既に消えている。
が、どういうソート順なのか調べた人がいた。

それの紹介記事は残っていた
https://atsushieno.hatenadiary.org/entry/20050704/p2

webアーカイブに残っているかなぁ?
2021/02/08(月) 22:22:53.64ID:XWqxRkjb
>>418
アーカイブされていた
https://web.archive.org/web/19990224184613/http://www.asahi-net.or.jp/~ez3k-msym/comp/acccoll.htm
420デフォルトの名無しさん
垢版 |
2021/02/08(月) 23:57:12.05ID:qlvhc88X
親切な方誰か教えてください。
Python始めたいんだけど、どのバージョンをダウンロードしたらいいんでしょうか?
勉強用に買った本には3.6.Xをダウンロードしろと書いてあるんだけど、どうせ始めるなら最新の3.9から始めるのがいいんでしょうか?
2021/02/09(火) 00:03:22.35ID:Vys7ayWD
3.6で始めて欲しい機能が最新版にしかなかったら
その時移行する
2021/02/09(火) 00:05:25.90ID:9lYAN9ot
仮想環境があるから正直どうでもよい
423デフォルトの名無しさん
垢版 |
2021/02/09(火) 00:08:54.47ID:gY4wTt7u
>>421 422
ありがとう。とりあえず3.6で初めてみます
424デフォルトの名無しさん
垢版 |
2021/02/09(火) 00:33:28.54ID:D2eLzUKh
3.9でいいよ
・・・と言いたいが外部のライブラリが対応できていないものもまだ多いから3.8を勧める
3.6にあってそれ以降無くなった機能あったっけな?
2021/02/09(火) 01:08:10.84ID:WN7fm/D8
3.8だと思うように動作しないライブラリあったから3.6に戻した
それ以来,ずっと3.6
2021/02/09(火) 01:23:34.91ID:iwKT59GY
3を指定すると3.7.8か3.7.9あたりになるのが多い気がするからその辺が互換的にもよさそう
2021/02/09(火) 08:41:41.04ID:ArPH6UCx
>>418-419
読んでたら頭痛くなってきた…
これMSがちゃんと仕様公開しなきゃ駄目だよなぁ…
2021/02/09(火) 09:16:09.94ID:oB9H/ghx
教えていただきたいのですが、
tkinterでプログラムのスタートとストップボタンを作ったのですが、処理中は画面がフリーズしてしまいます。
tkinterは非同期モジュールらしく、
これを他のGUIモジュールに変えるとフリーズしなくなりますでしょか?
2021/02/09(火) 09:21:39.36ID:LMsNGPvT
非同期なのにフリーズするっておかしくね?
2021/02/09(火) 10:20:06.37ID:fLSeggtA
>>428
コード見てみないとなんともだけど
非同期のコードかかずにwhileで回してるだけになってるとか
2021/02/09(火) 11:42:31.22ID:oB9H/ghx
すみません、非同期とかよくわかっていなかったです。
ボタンが全く押せず、ブレークでwhile文から抜けるしかない状況です

import tkinter as tk
import tkinter.messagebox
import time

def start():
global stop_flag
  timer_time = time.time()
while stop_flag == False:
txt.insert(tkinter.END,str(time.time()-timer_time))
if time.time()-timer_time >5:
txt.insert(tkinter.END,str(time.time()-timer_time))
break

def stop():
global stop_flag
stop_flag=True

stop_flag = False
root = tk.Tk()
root.geometry("200x150+30+600")
end_button = tk.Button(root, text = "START", command =start)
end_button.place(x = 5, y = 10)
end_button = tk.Button(root, text = "STOP", command =stop)
end_button.place(x = 5, y = 40)
txt = tk.Entry(width=20)
txt.insert(tk.END,"0")
txt.place(x = 5, y = 70)

root.mainloop()
432デフォルトの名無しさん
垢版 |
2021/02/09(火) 11:59:05.97ID:ngdRC2S+
>>417
まずはこんな感じのswitch文を使うような状態遷移にした方がいいんじゃね
pythonにはswitchは無いからif-elseでやるしかないけど

不変でコンパクトならswitch〜caseで状態遷移したっていい|Marupeke-IKD|note
https://note.com/marupeke296/n/n62c1c4643931

11.リアルタイム制御とステートマシン
https://www2.denshi.numazu-ct.ac.jp/lego/NXT/nxtOSEK/2_kiso/realtime.html
2021/02/09(火) 13:05:59.09ID:YRe7Jw73
pandasで列aと列bの各値同士の計算結果を同じデータフレームに代入しようと思い

df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=['a','b','c'])
df['c-a'] = df[['a','c']].diff(axis=1)['c']

と、してみましたが['c']が納得いきません
列ラベル名があるときも[:1]みたいに取り出したいのですがエラーでした
2021/02/09(火) 13:12:01.53ID:YRe7Jw73
訂正 >df['c-a'] = df[['a','c']].diff(axis=1)['c']
df['c-a'] = df[['c','a']].diff(axis=1)['a']
でした
この['c','a']の順は保証されるのかも気になります
2021/02/09(火) 13:19:02.92ID:Vys7ayWD
>>431
sleep(0.1)
txt.update()
2021/02/09(火) 13:20:02.81ID:YRe7Jw73
df['c-a'] = df[['c','a']].diff(axis=1).iloc[:,-1]

適当にやっていたらこれでいけました・・ >>433,434
2021/02/09(火) 13:43:29.24ID:3rwMtM14
>>431
start関数が5秒経つまでループしてて戻らないから
Pythonに限らずGUIの場合UIを動作させるにはメインスレッドを独り占めしちゃだめなのよ
>>435みたいなやり方もあるけど
sleepすらしない単純なループでの待ちは無駄にCPU使用率が上がるだけなので避ける
時間経過はタイマーイベントを使う
時間がかかる処理は別スレッドにする
という方向で考えた方がいいよ
2021/02/09(火) 15:54:12.06ID:oB9H/ghx
>>435さん、>>437さん
ありがとうございます。
タイマーイベント?を調べてみます
439デフォルトの名無しさん
垢版 |
2021/02/09(火) 19:52:16.41ID:F09oemYA
tesseractの他にocrのライブラリってありますか?
教えて下さい。よろしくお願いします。
2021/02/09(火) 20:42:00.18ID:A4TUXs3r
>>432
ありがとうございます。もうちょっとちゃんと勉強してみます。
2021/02/09(火) 22:37:06.14ID:48/GVgda
Pathlibで特定のフォルダ以下のファイルを全てglobして
全てのファイルに対して特定の処理をし
その後別のフォルダにディレクトリ構造を維持しつつ保存していきたいです

フォルダ構造を維持しつつ保存するために
hoge_dir - base_dir みたいなものをしてPathの差分だけを取得したいのですが、そういった関数は無いのでしょうか?
2021/02/09(火) 22:48:35.91ID:48/GVgda
Path(os.path.relpath)で出来ました
443デフォルトの名無しさん
垢版 |
2021/02/10(水) 00:20:56.79ID:3asw//Zv
relative_to()
ドキュメント、読もう!
2021/02/10(水) 07:56:31.78ID:lV7BodTW
イテレータを使わなければならない状況がきてようやく仕組みがちょっと理解できた
今までfor inで回せばほとんどのことに対処できてたので、どこで使うんそれって感じやったけど
やっぱり必要になって使うべき場面がこないと覚わらんね
2021/02/10(水) 08:02:53.10ID:0JH6aNHf
使わなくても実装は出来るけどな。
2021/02/10(水) 11:18:29.15ID:4pogzqlY
PySide2のQDialogをESCで閉じさせない方法ってありますかね

調べても出てこない
2021/02/10(水) 12:24:44.38ID:QctJSG9o
>>444
イテレータイマイチ使うシーンが想像できんわ
448デフォルトの名無しさん
垢版 |
2021/02/10(水) 13:05:03.29ID:3asw//Zv
頭から順に処理するならイテレーター
値は取り出すまで評価されない
リストは生成時に全要素が評価、展開されるから、長いとメモリを圧迫する
2021/02/10(水) 13:27:54.75ID:2MYUAlGB
ジェネレータイテレーターな
2021/02/10(水) 13:44:33.50ID:k3XYYQgl
>>447
for文使ってればイテレータ使ってる
rangeでもlisyでもstrでも同じようにfor文で回せるのはイテレータのおかげ
2021/02/10(水) 18:42:03.34ID:li7FLtWZ
扱う分野で必要なもの全然違うしね
必要になったら学べば良い
2021/02/10(水) 19:51:19.06ID:deHLhqxB
画像比較作りたいけど
おすすめのサンプルプログラムある?
二つ比較して
似ている割合みたいのとれればいいんだけど
2021/02/10(水) 19:55:11.67ID:FCUwCs4l
また宗教的な話をw
OPENCV,numpy.openvino のどれかを使いたまえ
454デフォルトの名無しさん
垢版 |
2021/02/11(木) 11:34:19.30ID:n0GRjtoR
>>446
ありますよ
もうちょっと頑張って調べなさい
455デフォルトの名無しさん
垢版 |
2021/02/11(木) 11:43:19.74ID:n0GRjtoR
>>452
https://www.imagazine.co.jp/%E9%A1%9E%E4%BC%BC%E7%94%BB%E5%83%8F%E6%A4%9C%E7%B4%A2%E3%81%AE3%E3%81%A4%E3%81%AE%E6%89%8B%E6%B3%95%E3%81%A8%E7%B2%BE%E5%BA%A6%E5%90%91%E4%B8%8A%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF/
https://qiita.com/best_not_best/items/669aaa9e1b8de647d29d
https://pystyle.info/opencv-match-shape/
2021/02/12(金) 11:01:49.66ID:fibZz6ZJ
GUIのテキストラベルを関数内で変更するには、そのテキストのインスタンス生成をグローバルで実施する必要があるのでしょうか?
main関数内でGUIを作成して、別の関数から呼び出そう、書き換えようとするとエラーが出てしまいます
2021/02/12(金) 11:42:10.00ID:fibZz6ZJ
追記です
もともとメインだけのプログラムだったのですが、処理部などを分けていくにあたって、上記問題となりました。
ボタンやテキストラベルが多いため、GUIだけでも分離できたらなと思ってます。
2021/02/12(金) 12:56:12.11ID:9pKWi6uS
エラーメッセージは飾りじゃないんだゾ
ちゃんと読むんだ
459デフォルトの名無しさん
垢版 |
2021/02/12(金) 13:28:10.74ID:x9NfpsA7
GUIってどれ使ってんの
2021/02/12(金) 13:35:33.64ID:3wJJOYZl
恥ずかしがらずに再現できるコードを出しましょう
2021/02/12(金) 15:15:13.03ID:Xi6F12r7
OCR使ってみたんですが画像にちょっとシミ付いただけでめっちゃ精度落ちるんですけど
2021/02/12(金) 15:25:54.79ID:YkYoXOlY
そんなもんだろ
実運用ならGoogle Vision APIとか使え
2021/02/12(金) 15:36:15.52ID:Xi6F12r7
d つこうてみる
2021/02/13(土) 01:13:14.19ID:kyaOMlKJ
ファイルfを新規open
なにか書く
*ファイルfをclose
*ファイルfを追記open
なにか書く
*ファイルfをclose
*ファイルfを追記open

(これを何回か繰り返す)

ファイルfをclose
ていうことをやってるんだけど、*印のファイルfをclose・ファイルfを追記openをdefにしたら
local variable 'f' referenced before assignment
ていうエラーが出てしまいました。
defの中でf=openて書けないんでしょうけど、こういう場合て繰り返しのところをコードのマクロとか部品みたいにできないのでしょうか?
ファイルfをclose・ファイルfを追記openてところが10行ぐらいの全く同じコードになってるので繰り返して書くのがキレイでない。
2021/02/13(土) 01:43:32.68ID:XqdE9YRe
なんていうかwith使え
466デフォルトの名無しさん
垢版 |
2021/02/13(土) 07:57:55.39ID:dvbWR5uB
with使えっていうのは当然として、設計寄りの話としてDAOあるいはRepositoryと言われるパターンを勉強すると良い。
2021/02/13(土) 09:06:30.97ID:+Dfn0XQq
>>464
単にコーディングミス。
エラーの意味は分かるな?
2021/02/13(土) 10:52:08.28ID:PYtZn7CJ
>>464
Pythonの不便な点だな

def まくろ(何かを書く)
 ファイルfを開く
 何かを書く(f)
 ファイルfを閉じる

まくろ(何かを書く1)
まくろ(何かを書く2)

ってやるのが定番
でもC#とかなら「何かを書く1」に直接処理を書けるけどPythonは関数を定義しないと駄目だからいまいちメリットが薄い
2021/02/13(土) 17:08:03.41
今どきのプログラミング
https://video.twimg.com/ext_tw_video/1354709180309901313/pu/vid/720x1280/nOusy_VBfI6wXHi4.mp4
470デフォルトの名無しさん
垢版 |
2021/02/13(土) 17:42:30.74ID:aD8q5Xup
>>464
クロージャは?

def create_writer(f):
__fを新規作成
__def write(s):
____fを追記open
____sを追記
____f.close()
__return write

writer=create_writer(f)
writer(あああ)
writer(いいい)
2021/02/13(土) 18:56:29.59ID:QOknjIyX
+aでopenすべし
2021/02/13(土) 19:01:49.24ID:QOknjIyX
def write_to(file_path):
__def write(string):
____with open(file_path, '+a') as f:
______f.write(string + '¥n')
__return write

write = write_to("foo.txt")
write("foo")
write("bar")
473デフォルトの名無しさん
垢版 |
2021/02/13(土) 19:56:09.70ID:hraNkxQy
wrapする意味がほとんどない気がする。
都度ファイル名が変わるなら、一緒に渡す方が間違いないだろうし、
逆に固定でいいなら、定数にするか、上で出ているようにDAOに閉じ込める方がいい。
2021/02/13(土) 20:57:02.03ID:PYtZn7CJ
ケースバイケース
2021/02/13(土) 21:05:50.85ID:QOknjIyX
>>473
2つ意味がある

ファイル名を意識すべきレイヤーやタイミングと
何かを書き出したいレイヤーやタイミングが常に同じとは限らないので
その2つの関心事を分離できるという意味が一つ

もう一つはDAOでもファイルでもいいけど
それらが10個あった場合に同じコード(open/close)を10回書かなくてもいい
2021/02/13(土) 21:15:03.69ID:OVGnVG6N
質問者のレベルを考えれば毎回ファイル名を渡すほうが親切かもな

間違ってもDAOやリポジトリを持ち出すような話じゃない
2021/02/13(土) 22:19:47.12ID:PYtZn7CJ
>>476
質問者はファイル名の話なんてしてない
そもそも質問者は「なにか書く」をなんとかしたいと言ってるのに勝手に文字列を書くことで満足してるようなオナニー見せられて困ってるだろうな… ⇒ >>470, >>472
その上質問者のレベルとか何様なんだよ
2021/02/13(土) 22:52:40.18ID:De6EzIPK
ある時間が現在時刻より何時間経ってるかていうのを知りたいんだが

from datetime import datetime
d="2020/06/02 23:42"
x=datetime.strptime(d, '%Y/%m/%d %H:%M')
y=datetime.datetime.now()
print(x,' ',y)
last_time=(y-x)/3600

てやってみたんだが
type object 'datetime.datetime' has no attribute 'datetime'
というエラー

y=datetime.now()にすると
last_timeが1:42:23.156836という値
何百時間ていう数値を出せないんですか?
2021/02/13(土) 23:06:29.50ID:Ylmwjazf
>>477
この逆ギレは恥ずかしいww
2021/02/13(土) 23:09:24.90ID:Jp6Ct9sY
>>478
時間差はtimedeltaになる、それを数値で割るとこの場合255日を3600分割してしまうので
(y - x).total_seconds() / 3600か、(y - x) / timedelta(hours=1)とかかな
https://docs.python.org/ja/3/library/datetime.html#datetime.timedelta.total_seconds
2021/02/13(土) 23:14:28.96ID:De6EzIPK
>>480
できました。
結構狂った言語だな。
算術計算の結果は数値で出すべきなのに。
なんかpythonて直感的じゃなくて使いにくいな。
2021/02/13(土) 23:27:47.37ID:PYtZn7CJ
>>479
逆ギレとか意味わからん
まあ反論できない時に低能がよく言う言葉ではあるがw
2021/02/13(土) 23:39:31.79ID:QOknjIyX
>>477
ファイルに書くんだからファイル名は必要
指摘の意味がわからない

テキストじゃなくバイナリで書きたいなら’+a’を’+ab’とすればいい
ファイルに追記する場合はその2つのどちらかしかない
2021/02/14(日) 00:10:37.48ID:D24G58JB
>>483
> ファイルに書くんだからファイル名は必要
そんなことは質問者もわかってるだろ
一応実装はできててより簡単に書きたいって話みたいだし

とりあえず>>464はまだ見てたら
> ファイルfをclose・ファイルfを追記openてところが10行ぐらいの全く同じコードになってるので繰り返して書くのがキレイでない。
の部分のコードを晒した方がまともな回答が得られると思う
2021/02/14(日) 00:13:47.53ID:aLCsI6lK
見た感じcloseとopenでなにしてるかわかってないように思う
486デフォルトの名無しさん
垢版 |
2021/02/14(日) 02:04:56.58ID:2SnvaGjH
>>477
身近にこういう奴が居なくて本当に良かった
2021/02/14(日) 03:15:01.82ID:DLKN34Ks
おっ
2021/02/14(日) 04:01:51.29ID:m6EUmtlX
>>484
464みたいな構造に書き直して見ました。
最初書こうとしてたコードはこういうことがしたかった。

def まくろ(何かを書く,関数名)
 ファイルfを開く
 引数で与えられた関数名の関数を呼び出す
 何かを書く(f)
 ファイルfを閉じる
ていうのがやりたかったんだけど、関数の中に動的に別々の関数を呼び出すことなんてできないよね。
#define マクロ名(引数リスト)みたいなことができれば実現できるのに。
2021/02/14(日) 04:10:04.36ID:TDUjnB7+
そのやり方で普通にできるよ
2021/02/14(日) 07:55:56.90ID:D24G58JB
>>485-486
技術的な話ができないならどっかよそ行けよ…

>>488
>>489が言うように複数の関数を受け取って両方呼び出すのも普通にできる

def foo():
 print('foo()が呼ばれた')


def bar():
 print('bar()が呼ばれた')

def test(f1, f2):
 f1()
 f2()

test()

辺りから色々やってみればいい
あと Python 関数 渡す とかでググればいいかと
2021/02/14(日) 10:46:04.70ID:vizEsFtD
最近はpythonでググると高確率で、nkmkというサイトに引っかかる
そこは目次が無いため、文字ばかりの細々とした説明の中から必要なコードを探さないといけないから、とてもストレス
2021/02/14(日) 10:47:27.53ID:HIb/uJW+
>>490
関数を呼び出すんじゃなくてソースコードをマクロ展開したいんだけど。
関数にしてしまうと変数のグローバル・ローカルという話が出てきてしまう。
単純に10行くらいのコードの一部を変えてコピーしたい。
defの関数てコードのコピーじゃないですよね?
2021/02/14(日) 11:19:31.18ID:D24G58JB
>>492
なんでそんなことしたいのかよくわからんけど、m4とかのマクロプロセッサでも使えばいいんじゃね
2021/02/14(日) 11:40:02.31ID:8wuPGef8
何が言いたいのかようやくわかった。
どんだけ質問下手やねん
2021/02/14(日) 11:40:35.87ID:AzULVuFC
>>491
イラストがいっぱいあって、
「今日はイテレーターの使い方だよ」
「何だか難しそう」
とかなってるサイトのほうがウザい。
496デフォルトの名無しさん
垢版 |
2021/02/14(日) 11:53:57.69ID:PGTjJwEI
>>481
馬鹿には無理
2021/02/14(日) 11:56:45.92ID:1NfnFEsp
>>492
デコれ
2021/02/14(日) 12:00:51.30ID:IYZau0Ph
>>492
Pythonにはその機能はないんで諦めてください
2021/02/14(日) 12:05:20.73ID:BvP4KASJ
>>495
「お願いします!」
2021/02/14(日) 12:09:30.76ID:IYZau0Ph
>>497
デコレータって、元の関数の動作はそのまんま残し、さらに別の動作を
付け加えた関数を作り出す機能っしょ
この人はコードの一部を変更したいって言ってるから無理ではないかと
2021/02/14(日) 12:12:44.45ID:TDUjnB7+
>>490
>test()
関数渡してないやないかーい!

>>492
変数のスコープを理解せずにプログラムは書けないので
最初のlocal variable 'f' referenced before assignmentのエラーの原因を調べたほうがいいよ
誰もが一度は通るエラーなのでググればすぐ分かる
公式のFAQにものってる
2021/02/14(日) 12:13:45.18ID:LN4pPlYg
>>499
あった、これだ。
https://techacademy.jp/magazine/46444
2021/02/14(日) 12:14:42.54ID:vizEsFtD
>>499
あれ、イラッとするよなw
2021/02/14(日) 12:21:38.55ID:TDUjnB7+
>#define マクロ名(引数リスト)
文字列を展開してそれをコードとして評価することはできるけど
今回のケースは関数を使えば解決可能なのでまずやらない
マクロと同等のことが普通のコードで実現可能
2021/02/14(日) 13:18:53.12ID:m02xXjOP
nkmkは最高に分かりやすいだろ
プログラミングスクール系のゴミ記事の1億倍見やすいわ
2021/02/14(日) 13:28:12.12ID:D24G58JB
>>501
> 関数渡してないやないかーい!
指摘サンクス、スマホでポチポチだから忘れてたわ
507デフォルトの名無しさん
垢版 |
2021/02/14(日) 13:36:25.18ID:2SnvaGjH
>>505
あとは目次にリンク張ってくれれば言うことない
2021/02/14(日) 14:56:48.08ID:TDUjnB7+
なぜ目次がページ内リンクになっていないのか
https://note.nkmk.me/faq/#_1

だってさ
2021/02/14(日) 18:37:52.94ID:muFQjW+d
無駄にマクロ使おうとしてるとか絶対地雷人材やろ。。
2021/02/14(日) 19:11:28.97ID:MlHmhfGR
対人地雷に見えた
ある意味では間違いではないか
2021/02/14(日) 19:18:07.67ID:I1aFEzxm
>>505
むしろググってnkmkが上のほうにないときに絶望する
残ったゴミとカスからしゃーなしマシな記事をあさるしかない
2021/02/14(日) 19:55:19.81ID:5ILzfDiM
>>510
にんげんさまはアルクセキュリティホールやでぇ
2021/02/14(日) 20:52:11.02ID:k6Jk8aeh
#define sqr(a) (a*a)

sqr=lambda a:a*a
2021/02/14(日) 21:53:27.56ID:wJqWCA2o
>>512
アルクに謝れ!
2021/02/14(日) 23:49:31.85
一週間ほど前にPython にバッファオーバーフローの脆弱性(CVE-2021-3177)が発表されましたが、パッチ同時リリースではありませんでした
その後、パッチは出たのでしょうか? この問題は解決済みですか?
2021/02/15(月) 00:24:39.78ID:bVZY0HXF
testDict = {"test1Key":"test1","test2Key":"test2","test1Key":"test1.5"}
こんな感じで、重複のkeyがある辞書から、重複要素をprintするにはどうしたら良いですか?
2021/02/15(月) 00:36:14.72ID:Jl6Y5s68
辞書はキーが重複することはありません
2021/02/15(月) 01:38:43.41ID:doIMb1ii
bound methodの中身を出力したいときってどうすればいいですか?
2021/02/15(月) 07:39:49.62ID:x4VL8oQa
>>514
わ、わるいのはM$IMEでっす!!!
2021/02/15(月) 11:32:59.59ID:HtPzSKw3
seleniumでchromedriverを使ってスクレイピングするとき、
長時間続けているとキャッシュが肥大化してきます
これをコードの中でクリアする方法はありますでしょうか?
2021/02/15(月) 11:55:43.22ID:LUOktb/o
別のスクリプトからsubprocessで間接的に起動しておいて、定期的に起動し直すとかかなあ
2021/02/15(月) 11:59:16.82
どうしてもseleniumでというならドライバ再実行でどうにかなったと思うけど
windowも閉じてしまうからそれが嫌だっていうなら
素直にscrapy使ってスクレイピングするのがいいかも >>520
2021/02/15(月) 14:35:17.03ID:Jl6Y5s68
chrome://settings/clearBrowserDataを開いて操作する方法もあるみたいだけど今のchromeだとShadow DOM使っててめんどくさいから
options = webdriver.ChromeOptions
options.add_argument("--disk-cache-size=バイト数")
driver = webdriver.Chrome(chrome_options=options)
みたいにしてキャッシュサイズ制限かけるとか
524520
垢版 |
2021/02/15(月) 17:14:22.91ID:HtPzSKw3
やっぱり起動しなおすしかない感じですね
optionsでキャッシュサイズの指定は試してみたんですけど、効果ナシでした
例えば数十分おきとかでドライバ再実行する仕組みで試してみようかな

scrapy、初耳だったので調べてみましたがちょっと難しそうでした
少し勉強してみます
2021/02/15(月) 18:33:57.06ID:rGrJfJAw
こういうの
https://intoli.com/blog/clear-the-chrome-browser-cache/
2021/02/16(火) 14:05:18.83ID:ipEDtskL
Atomでコンソールから実行していて、無限ループになったりしてタスクマネージャで強制終了頻繁にしてるのですが、
見えないプロセスが残ったり、メモリーが変に残ったりすることはあるのでしょうか?
2021/02/16(火) 17:21:05.75ID:tjl7Fm3+
マルチスレッドとか使ってて全てのプロセスが殺せてないとか
2021/02/16(火) 17:49:43.59
Atom はプラグインのインストールに失敗する度に、そのNodeプロセスがゾンビ化する不具合があるゴミなのでVSCodeを使いましょう
529デフォルトの名無しさん
垢版 |
2021/02/17(水) 03:51:59.84ID:zEY0Zwgw
10万馬力も電気使っちゃうの?
2021/02/17(水) 22:17:14.64ID:d05tkeIJ
matplotでグラフタイトルを下部に表示したいです。

plt.title('x-latency graph', fontname='Times New Roman', y=-0.15)

とy設定をすることで一応下部に表示はされるのですが、
ウインドの大きさによってxラベルと重なってしまい、
上部に表示したときのようにきれいにはいきません。

なにかうまい方法ないでしょうか?
2021/02/17(水) 22:37:46.06ID:ywbkeJkd
pad=20みたいなのを追加してみるとか
2021/02/17(水) 22:42:46.98ID:ywbkeJkd
下ならpad=-10みたいにマイナスか
2021/02/17(水) 22:57:13.47ID:d05tkeIJ
pad試してみたのですが、ウインドウ小さくするとそうそうにXラベルと重なってしまいますね。
デフォルトの上部にしているとウインドウ小さくしても重ならないのですが、
こんなものなのでしょうか・・・。

でも、論文って下にタイトルって指定されるのに、なんでデフォルトが上になっているんだろう・・。
2021/02/17(水) 22:59:25.13ID:ywbkeJkd
plt.tight_layout()なら?
2021/02/17(水) 23:01:50.01ID:ywbkeJkd
論文の図のキャプションは図をレイアウトした先で図の外側に作るものでグラフの中には作らないから、余り気にしたことないな
2021/02/17(水) 23:09:20.61ID:d05tkeIJ
>>534
ありがとうございます。
さっきまでよりはだいぶ見やすくなりました。
でも、やっぱりウインドウ小さくすると破綻するのは上部より下部の方が早いですね。

上部にしといて、タイトルは割り切って別で入れるようにしたほうがいいのかな。
2021/02/17(水) 23:10:30.71ID:d05tkeIJ
実用上それで問題ないんですけど、
論文で下って教育されてると、上部タイトルがきてるといけないことをしているかのような強迫観念が・・・
2021/02/18(木) 00:09:43.11ID:IAd8iDhz
そこまでこだわりがあるならsubplotで2段にして下のプロット軸とか背景を不可視にしてタイトルを下のプロットのタイトルとして描く関数を作っとくとか
539デフォルトの名無しさん
垢版 |
2021/02/18(木) 10:25:28.59ID:64/LOwh9
>>530
https://qiita.com/renesisu727/items/24fc4cd8fa2635b00a0d
https://qiita.com/0NE_shoT_/items/31a77b6228159d6feb2e
https://qiita.com/nkay/items/d1eb91e33b9d6469ef51
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
https://qiita.com/KntKnk0328/items/5ef40d9e77308dd0d0a4
2021/02/18(木) 18:54:08.48ID:wTfx2HE+
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
2021/02/18(木) 21:54:32.87ID:cqSbk4Yx
等差数列的な1次元行列で転置を行いたい

(1)
a = np.array([[i for i in range(2, 5, 1)]])
a.T

(2)a.T表記ではない(and ディープコピーではない)
a = np.arange(2,5,1)
a.shape = (1,3)

(3)ワンクッション多い
a = np.arange(2,5,1)
a.shape = (3,1)
a.T

(4)
a = np.array([np.arange(2,5,1)])
a.T


(本音)
a = np.arange(2,5,1).T
2021/02/18(木) 22:14:50.29ID:f56ThaA4
np使わないとまともに配列扱えない欠陥言語だから仕方ない。
2021/02/18(木) 22:38:10.75ID:vU7qRJsP
はやくjuliaが主流になるといいよね
2021/02/18(木) 22:48:59.15ID:bEmrZ2Tw
542認定言語
julia
r

以下欠陥言語。使ってる奴も三流
python
c++
java
c#
rust
swift
js
2021/02/18(木) 23:16:09.86ID:vQ0bM4Ab
>>541
reshape
2021/02/18(木) 23:58:49.68ID:cqSbk4Yx
>>545
reshapeという文字自体が長いというのはあるけど、まさにこれって感じのやつだったd
2021/02/19(金) 01:03:54.01ID:byh433rL
juliaはたしかに良言語だと思う
使ったこと無いけど
2021/02/19(金) 02:56:37.19ID:h/t0+GoU
言語には二種類ある(ry
2021/02/19(金) 05:34:23.41ID:473cJTkx
lispみたいなガイジが好むけど実用されない言語と
pythonみたいな実用されるけどガイジから非難される言語だ
2021/02/19(金) 07:19:35.87ID:dkFXvWzJ
>>544
配列っていうか、行列だな。
Mコード(MATLAB)やFORTRANも行列扱えるよ。
確かにnp面倒くさい。
2021/02/19(金) 07:19:58.87ID:ho6TCH2V
行列使うならMATLAB系
numpyじゃあ全く代わりにならんしうんざりする

計算だけで済む話にpython使うのはアホらしい
2021/02/19(金) 19:22:35.73ID:UVFRc2z2
if 条件A:
真ならなんか処理して(if文グループの終わり)に行く
if 条件B:
真ならなんか処理して(if文グループの終わり)に行く
if 条件C:
真ならなんか処理して(if文グループの終わり)に行く

(if文グループの終わり)

ていうようなことをしたい。
elseで次のifを書いていくとインデントがどんどん右に行くんだがなんかいい方法ない?
考えたのはfor文の中にいれて真ならbreakてやったんだが、普通はどうかくの?
2021/02/19(金) 19:26:56.94ID:8rw3YsL8
>>552
elif
2021/02/19(金) 21:00:13.10ID:UVFRc2z2
>>553
レスサンクス。
if文の前に前処理があるやつだとどうする?

(if文グループの始まり

条件Aの前処理
if 条件A:
真ならなんか処理して(if文グループの終わり)に行く
条件Bの前処理
if 条件B:
真ならなんか処理して(if文グループの終わり)に行く
条件Cの前処理
if 条件C:
真ならなんか処理して(if文グループの終わり)に行く

(if文グループの終わり)

goto文でできるが、gotoてどの言語でも推奨じゃないよね?
なんかif文グループの入れ子を作って、入れ子を抜けるようなことてforでやるしかない?
2021/02/19(金) 21:19:47.88ID:yv2d5Olu
インデントがわからないからはっきり分からないが
並列なifなら関数化してearly return
2021/02/19(金) 21:24:45.22ID:dkFXvWzJ
>>554
何もないコードブロックって作れないよね?

無理やりifでコードブロックにして
if True:
  前処理A
  if 条件A:
    処理A
    break
  前処理B
  if 条件B
とかやれば出来なくもない。
2021/02/19(金) 21:27:13.31ID:yv2d5Olu
breakできるのはloop内だけじゃないかな
2021/02/19(金) 21:28:47.87ID:8rw3YsL8
>>554
while True:で始めてbreakで抜けるのが良いだろうけど、
本質的には処理はネストしてる(前処理Cは前処理A,Bを前提としている)ことを考えると、
if文をネストさせるかもしれないな。
それか前処理がエラーチェックだったらdefで切り出してreturnするか。
Cでリソース解放を必ずしたい場合とかはgoto使うこともあるけど、定石はないというか、ケースバイケースでif文使ったりgoto使ったりしてるな。
try/catchとかも制限付きgotoみたいなものだから、濫用しなければgoto使ってもいいと思うけどね。
2021/02/19(金) 21:29:07.83ID:dkFXvWzJ
>>557
for i in range(1):
とかしないとだめ?
2021/02/19(金) 21:44:37.71ID:fFbWPHDZ
if func1:
if func2:
if func3:
if func4:
2021/02/19(金) 22:06:38.25ID:yv2d5Olu
↓これでよくない?

def if_group():
__条件Aの前処理
__if 条件A:
____do_somethingA()
____return

__条件Bの前処理
__if 条件B:
____do_somethingB()
____return

__条件Cの前処理
__if 条件C:
____do_somethingC()
____return
2021/02/20(土) 00:02:39.45ID:/remXlTv
if_group() 呼ばないと。
2021/02/20(土) 00:22:00.93ID:N/y0hS3O
即席で関数定義する方がセンスよさげだが自分なら完了済みフラグ設けて済ませたな
2021/02/20(土) 00:49:34.69ID:1Y17sdX3
こういうんじゃあかんのけ?
a = 4
if (lambda: [print("hello"), print("world")])() and a == 3:
__print("foobar")
elif (lambda: [print("kon"), print("nichiwa")])() and a == 4:
__print("hogefuga")
2021/02/20(土) 02:07:34.86ID:nciJ6+jd
>>559
552だけどオレが思いついたのはその方法。
この手の処理て模範解答的にはどうやってやるんだろう?
フラグ立ててフラグが真じゃなければ次のifブロックに行かないとかやってたけど。
関数にするとコードが見にくくなるし、一回しか通らない処理を関数にするのも無駄なような。
オレが新入社員のときにやったCOBOLもどきのIDL2にはblock文てのはあって一回だけ実行するfor文みたいなものがあった。
2021/02/20(土) 02:40:31.51ID:56yjs2OO
>>564
コードから意図が全く読めんからあかん
567デフォルトの名無しさん
垢版 |
2021/02/20(土) 08:48:49.94ID:Y+RPXUXT
自分なら>>561にするな
アーリーリターン
2021/02/20(土) 08:49:50.45ID:/remXlTv
>>565
前処理とifがあるなら関数にまとめてもいいかも。
def processA():
  前処理A
  if 条件A:
    処理A
:
processA()
processB()
processC()

せっかくgoto追加してくれたんだから使えばいいか。
569デフォルトの名無しさん
垢版 |
2021/02/20(土) 09:25:41.17ID:Y+RPXUXT
>>554のいう前処理がわからんけど
それぞれでif文書いて、条件に早めにFalse返す関数使えば、別にネストもする必要ないじゃん

前処理って何やってんだよ
どうしても各分岐の前にがっつり処理しないとだめなんか?
2021/02/20(土) 12:42:23.67ID:lyTdLi7+
>>569
コードを晒すとこういうことをやってる。
これだとif elif elseじゃ書けないよな。
関数にするにしてもそれぞれやってることが違う。
559みたいにforを使ってみた例。

#ifグループの始まり

for i in range(1):
--o_btn=driver.find_elements_by_xpath('//input[@class="button"]')
--if len(o_btn)>0:
----f_x=f_x+1
----break


--o_btn=driver.find_elements_by_css_selector('div.btn_set>input')
--if len(o_btn)>0:
----f_y=f_y+1
----break


--o_btn=driver.find_elements_by_css_selector('div.btn_back>input')
--if len(o_btn)>0:
----f_z=f_z+1
----break


#ifが真だったらここに飛びたい。
2021/02/20(土) 12:57:26.42ID:AfgxbbrB
最初から変数3つ並べてif-elseでいいじゃん
2021/02/20(土) 12:58:54.20ID:QmInm3o3
同時成立でも問題なさそうだけど。
2021/02/20(土) 13:14:35.97ID:QO6ABfSl
インデントが2つだったり、3つだったりばらばらで作ってしまったんですけど、コレを自動で整形する方法ってありますか??
2021/02/20(土) 13:28:03.26ID:EQ4Fmj1U
>>573
ある程度の行数をまとめて選択して置いて「インデントをひとつ浅くする」なら
けっこう色んなエディタでできるとおもうんだが
虎刈りになってるならあきらめろん
2021/02/20(土) 14:29:20.46ID:56yjs2OO
>>573
autopep8かblackで自動整形できるよ
2021/02/20(土) 14:32:57.68ID:TBTHb+Gp
black使ってるけど1行あたりの文字数だけは弄って150にしてるわ
デフォだとキツすぎディスプレイ縦置き専用かよと
2021/02/20(土) 18:32:17.48ID:56yjs2OO
>>570
“ifグループ”と呼んでるものに名前をつけて関数化するほうがベターだと思うけどif-elseでも書けるよ
578デフォルトの名無しさん
垢版 |
2021/02/21(日) 00:57:40.63ID:aCzr4+Gv
君たち>>570みたとたん明らかにやる気なくしてるよね
2021/02/21(日) 01:09:16.38ID:f0EcfH0m
if len(o_btn := driver.find...) > 0:
elif ...
3.8以上限定
2021/02/21(日) 02:40:07.07ID:G4m9GHw4
blackはやりすぎだなと思うことあるわ。
コードを見やすくするためのコードフォーマットなのに逆に見辛くなるとか本末転倒すぎる。
2021/02/21(日) 03:56:32.45ID:XsukC5HX
そうだよなblack lives matterはやりすぎニガーは調子に乗るな!
2021/02/21(日) 08:27:14.13ID:YmTCK60y
構造体データて扱えるの?
こういうやつ。
01 従業員.
----05 従業員番号 PIC 9(7).
----05 従業員名 PIC X(30).
----05 入社年月日.
--------10 入社年 PIC 9999.
--------10 入社月 PIC 99.
--------10 入社日 PIC 99.
2021/02/21(日) 09:35:10.61ID:VYudgr0a
>>582
無論おk
2021/02/21(日) 14:28:26.05ID:/Mh4iWCM
>>582
年月日に20210221突っ込んで
年で2021だけ取り出すには工夫がいるかな
2021/02/21(日) 14:31:13.67ID:UiySRn99
わざわざ分けなくても datatime で持てば良くない?
2021/02/21(日) 14:36:40.26ID:9qukVfwV
>>582
COBOLの知識は完全に全て忘れろ。今すぐに。
Pythonでは固定長レコードは一切使わない。CSVやJSONのような可変長データを使う。
2021/02/21(日) 16:54:13.00ID:3wKXGD51
>>582
プログラム内の表現として扱うという意味なら自分でクラスを定義するだけ

文字列、数値、日付みたいな型は標準であるけど「30文字以内の文字列」みたいな型はないので
従業員クラスに自分でバリデーションを追加するか独自の型を定義するか

COBOLで書き出した構造化ファイルのデータをPythonから扱えるかという意味なら
ファイルフォーマット次第だけど簡単には扱えない
CSVとかのテキストフォーマットに書き出したものをPythonで読み込むほうが桁違いに簡単
2021/02/22(月) 08:11:56.12ID:uJ/bSXez
pythonのデバックでプログラムが何行目を通過したかて知る方法てあるの?
visual studio 2019を使っててF11でスッテプ実行てのが出来るんだけど、
1万行あったら1万行回F11叩くのか?てことになる。
2021/02/22(月) 08:34:50.69ID:ckzMPuES
>>588
F11連打しかしないとそうなるな
取説嫁
590デフォルトの名無しさん
垢版 |
2021/02/22(月) 10:21:35.37ID:5/ri8a+l
>>588
ifの質問してるのと同じ人?
2021/02/22(月) 10:43:27.55ID:PW7vHVeo
フレイクホイントを使ってテハックするのじゃ
2021/02/22(月) 10:55:31.74ID:pI5eidjw
何行目を通過したか知りたいって考え方をするのはプログラムの構造に問題があるから
2021/02/22(月) 11:05:19.36ID:RHKTrh3L
pythonじゃなくても普通bp貼るだろ。
594デフォルトの名無しさん
垢版 |
2021/02/22(月) 13:28:34.74ID:zcTtu3Zr
フレイクホイントが
フロントホックに見えてしまった(´・ω・`)
2021/02/22(月) 14:07:23.81ID:aMOGcJaK
>>588
ストップポイント指定するんだよ

んで次のステップポイントに飛ぶってのがある
2021/02/22(月) 14:07:41.17ID:aMOGcJaK
ブレイクポイントかw
2021/02/22(月) 14:37:49.37ID:tvUSsQ8P
3行のコードでも1万回ループしてたら
ステップオーバーを3万回叩かないと抜けられない

F11はステップインなのでどんどん潜る
2021/02/22(月) 14:45:11.64ID:Ag9nXfNi
VBAしかやったことないニワカだから、同じ疑問をずっと持ってた
自分の書いたコードの動作を一つずつ確認するために1行ずつ実行することがよくあったんだけど
pythonだと、極端なこと言えば1行ごとにブレイクポイントを挟まないといけないってこと?
599デフォルトの名無しさん
垢版 |
2021/02/22(月) 14:59:58.20ID:DIDXVj1p
標準添付のデバッガ(PDB)やIDE(VSCodeなど)でも普通にできる。
2021/02/22(月) 15:25:22.70ID:nmugGdcj
>>598
んなわけない
2021/02/22(月) 15:31:46.21ID:PGV0X2RH
デバッガの使い方なんてどの言語でも一緒

ブレイクポイントの設定
ステップオーバー
ステップイン
ステップアウト
コンティニュー

この5つを理解すればいいだけ
プログラミング学習の初日に習う内容
2021/02/22(月) 15:42:31.40ID:uJ/bSXez
新入社員でcobolやったときは最初から最後までトレースとったぞ。
人は意図的にバグを作り込むわけじゃないから、ストップポイント指定なんてナンセンス。
事前に指定しても、それ以外のところでエラーするのが当たり前。
事前にストップポイントやらブレイクポイントを指定なんて無駄だよ。
603デフォルトの名無しさん
垢版 |
2021/02/22(月) 15:47:47.63ID:DIDXVj1p
なんだろう。
COBOLだってプログラミング言語のはずなんだが、こうも考え方のピントがズレるもんかね。
604デフォルトの名無しさん
垢版 |
2021/02/22(月) 15:49:02.61ID:65ZJFDMb
Python関係ないよね
デバッグのやり方教えて終わりでいいでしょ
2021/02/22(月) 15:54:55.08ID:AYpKHnjf
>>602
よく分からんけど普通デバッグって
・エラー出た個所とエラーメッセージを確認する
・エラー出た個所にブレイクポイント設定しつつ、関連して怪しそうな所にもブレイクポイントを再度動作させる
・後はデバッガで変数値とか確認しながら原因付き留める

動かす度に止まる場所が変わる、とかでもない限りこれで十分じゃね?
あと何行目を通過したか?っていう質問の時点で
トレースされたエラーメッセージ見てないのか?っていう気はしてるけど……
2021/02/22(月) 15:55:51.44ID:Xis0SD1d
>>603
COBOLはデータ処理のフローを小さなステップに分割して、そのステップ毎にプログラムを分割するのが普通で、
一つ一つのステップは構造化もクソもなくただ命令を平べったく羅列するだけ、というのが一般的
Pythonでいう数行から百行程度の関数一つ一つがCOBOLでは1000行くらいに膨れ上がって、それぞれが別個のプログラムになってるのを想像すれば、彼の気持ちを理解できるだろう
2021/02/22(月) 16:42:38.45ID:hC2BZM1+
COBOLだってデバッガの基本的な使い方はPythonと全く同じ

プログラム全体をステップ実行したいならエントリポイントにブレークポイント置いてステップ実行して行くだけ
学習目的以外では普通やらないけど

Pythonでもトレースはとれる
それも時間の無駄なのでまずやらない
2021/02/22(月) 17:14:24.97ID:ckzMPuES
>>594
もるだーつかれてるネー
2021/02/22(月) 17:15:37.44ID:ckzMPuES
>>601
それプログラミング基礎ちゃう
デバッグ基礎や

>>603
コボルドって基本犬頭だからね
2021/02/22(月) 18:24:34.17ID:KlgM0RdP
COBOL奴か
2021/02/22(月) 18:30:34.39ID:5xkEJHnL
コボおじw
2021/02/22(月) 21:53:28.96ID:G30bzgiW
デバッグとかprint文挿入でいいんじゃ
2021/02/22(月) 22:09:55.16ID:sB1O4QV3
手軽なテキストエディタでprint()利用のデバッグはあなどれない
2021/02/22(月) 22:55:29.56ID:sQpMvYPW
ある程度はprintデバッグで問題の発生する範囲を絞り込むよね。
データが20種10ループの処理を受けるときに200回とかステップ実行やってられないもの
2021/02/22(月) 23:07:05.13ID:uJ/bSXez
>>605
これはVS2019の問題かもしれんが、関数の中で止まると何行目で止まったか表示してくれない。
だからエラーが出た個所にブレイクポイントを設定することがまず大変。
F11で追わないとどこで止まったかわからない。
2021/02/22(月) 23:08:26.38ID:UEjjQNjA
エラーに行番号出てるでしょ
2021/02/22(月) 23:20:25.34ID:uJ/bSXez
>>616
関数を呼び出したところしか出てこない
2021/02/23(火) 00:00:43.61ID:cTQNOv+R
>>614
そういうのは条件付きのブレイクポイントを使う
2021/02/23(火) 00:03:58.11ID:cTQNOv+R
>>617
VS使わずコマンドラインから実行してエラーメッセージを確認

VS2019の問題だと思うならまず切り分けすべき
2021/02/23(火) 02:07:51.55ID:fia5nfNQ
関数の切り分けがそもそも糞なんだろ。
pythonでデバッガが必要なことなんてあんまりないぞ。cみたいなメモリがぶっ壊れるものならともかく。
2021/02/23(火) 06:54:54.23ID:VpyuW4/O
git bisectの使い方は覚えとくと便利やぞ
622デフォルトの名無しさん
垢版 |
2021/02/23(火) 08:54:05.78ID:NUvCbrOs
ハナから全部に、「今何行目」って表示出しとけw
2021/02/23(火) 08:56:11.05ID:P6BTUA4m
スレタイ嫁
624デフォルトの名無しさん
垢版 |
2021/02/23(火) 11:49:45.49ID:XvdT4dfh
python最大の特徴はC言語やってても余り使わない__main__など特殊変数を大量に見かけることだ
この奥深さはperlを超えてるが見た目の分かり易さは当然pythonに軍配が上がる
2021/02/23(火) 11:56:56.18ID:wfTpwfxG
清水の舞台から飛び降りるつもりでVS2019からpycharmに変えてみた。
pycharmてどこでエラーしたかわかるんだな。
VS2019はどこでエラーしたか不明な場合がたたある。
今までの苦労は何だったのだ?
2021/02/23(火) 12:25:37.67ID:IRMSQgrY
修行
2021/02/23(火) 12:33:34.02ID:eeQBUcpI
>>624
perlを超えてはいないだろ。
2021/02/23(火) 15:14:47.37
19日に公開された Python 3.9.2 および 3.8.8 で >>515 の脆弱性が塞がれたんですね
修正かくにん!

   よかった
2021/02/23(火) 15:51:15.44ID:UCRFxBi6
ThreadPoolExecuterを使って画面の表示を更新しているのですが、
5つくらいスレッドを並行していると処理が重くなってきます。
ThreadPoolExecuterで実行しているスレッド数で、更新の頻度を変えるにはどういう実装をしたら良いでしょうか。
ThreadPoolExecuterは実行中のスレッド数は見ることが出来なかったです。
2021/02/23(火) 17:20:54.21ID:dRf/T0UJ
max_workersオプションを5以下にすれば良いのでは
2021/02/23(火) 17:35:39.23ID:UCRFxBi6
ありがとうございます、
ただ、画面更新とか裏での計算に使っているので、、それぞれが必要なスレッドなのです。。
2021/02/23(火) 19:21:56.48ID:heAX5esq
そうは言ってもCPUが足りてないのだろうから
重くなるのはどうしようもない
画面処理とかOSがCPUを使えるようにスレッド数を制限すれば
軽く感じる可能性はあるんじゃ
2021/02/23(火) 21:00:20.33ID:dRf/T0UJ
スレッドじゃなくてプロセスにしちゃうとか
2021/02/24(水) 02:16:24.82ID:CQQJwOCp
パイチャームの方がいいの?
2021/02/24(水) 07:05:02.19ID:LMkBx6gV
pythonのエラー処理てどのページもtry-exceptを使えて書いてあるけど、
try節以外で発生したエラーはどうするの?
エラーは作り手がtryの中に入れなかったところ以外でも発生するものだよね?
pythonてtryの中以外では絶対にエラーが発生しないものなの?
エラーが発生したらここに飛べてできないの?
2021/02/24(水) 07:16:58.73ID:DnTJTT30
最初から最後までtry-exceptの中に入れろ
2021/02/24(水) 08:50:21.17ID:Aqfq6kO9
チャレンジ
638デフォルトの名無しさん
垢版 |
2021/02/24(水) 10:01:18.51ID:9y8r/1OE
>>635
エラーがおきたらそれより先は進まずに、どこでどんなエラーが起きたか教えてくれるように出来てるので安心してください
2021/02/24(水) 10:14:31.53ID:a2nKO+B9
言語に関係ないプログラミングの基礎を理解してないにもかかわらず
「pythonでは〜できないの?」と毎日聞くやつは学習方法が間違ってると思うぞ
640デフォルトの名無しさん
垢版 |
2021/02/24(水) 11:26:58.48ID:cfx9fHIS
>>639
毎日同じこと聞くのは
○国人の習性だからwww.
2021/02/24(水) 11:31:22.80ID:SnbZdOj2
プログラミングの入門として使われることも多いpythonの、
それも超初心者用のスレで、それを言うのは野暮ではないかね
2021/02/24(水) 11:43:39.32ID:EH/DbHjP
python以外の言語を習得しているかのような質問の仕方がダメなんだろ
基礎を理解してないということを理解してないのが問題
643デフォルトの名無しさん
垢版 |
2021/02/24(水) 11:55:02.38ID:aiTBro5g
>>635
try節以外でエラーが発生したらプログラムが停止する
エラー発生の可能性があって、特に対処したい部分にtry節を使う
python特有の話じゃないが
2021/02/24(水) 11:55:06.93ID:jCbAP6tB
初心者スレでそれ言ってもしょうがない
2021/02/24(水) 12:24:45.37ID:clp8d1Sx
コボおじは戻り値だけで判定してきたから例外が何かを知らないってことだよ
気持ちを汲んでやれ
2021/02/24(水) 12:30:33.09ID:CLu4HI+L
Goおじ「・・・」
2021/02/24(水) 13:07:22.50ID:LMkBx6gV
>>643
いまseleniumでchromeを動かしてスクレイピングをするプログラムを作ってるんだが、
スクレイピングだからネットの状態によってはすべての箇所でエラーが発生する。
てことはすべての行をtry節に入れるてことになるの?
エラーが起きたらchromeを閉じて次のプログラムを走らせたいんだが、
エラーが起きて止まったら困る。
on errorみたいなやつがあれば助かるんだが。
2021/02/24(水) 13:17:56.15ID:Xj3zAfy1
>>647
そもそも初心者はスクレイピングするもんじゃない
やめとけ
649デフォルトの名無しさん
垢版 |
2021/02/24(水) 13:35:57.65ID:jCbAP6tB
>>647

import スーパーすごいぼくのseleniumモジュール

try:
____スーパーすごいぼくのseleniumモジュールを実行
except 例外1:
____例外1の処理
except 例外2:
____例外1の処理
except:
____ほかの例外全部の処理

こんだけだよ
ちょっと頭かたすぎなんじゃねーかと
2021/02/24(水) 14:04:57.70ID:2cGpZtVv
みえる
みえるぞ…
>>647がタイーホされるみらいが…!
2021/02/24(水) 14:49:12.40ID:0d7ZIMo6
pythonの例外処理は
elseとfinallyが地味に便利だったりする
2021/02/24(水) 14:57:15.43ID:7Ynmy8c9
finallyは他の言語でも見るけどelseは見たことないな
他の言語でも取り入れて欲しいわ
2021/02/24(水) 15:22:24.12ID:2cGpZtVv
>>652
VBスクリプト・・・
654デフォルトの名無しさん
垢版 |
2021/02/24(水) 17:09:14.43ID:1iaQM7ct
tryのelseは、流れが分かり易くなるよね。正常系なのにelseという名前に若干引っ掛かるが。
whileのelseは、使わないけどあってもいいか。もともとBooleanで判定しているからね。
forのelseは、初見では絶対にわからないだろこれ、思考の妨げになるだけで邪魔。
655デフォルトの名無しさん
垢版 |
2021/02/24(水) 17:09:51.85ID:aiTBro5g
for〜elseが何気に使えるから他言語にも取り入れられて欲しい
2021/02/24(水) 17:17:33.14ID:1BXBrSOO
for else嫌いだな
フラグ立てた方が明確
657デフォルトの名無しさん
垢版 |
2021/02/24(水) 18:12:35.29ID:FNeBH8xI
在日が知らないだけだろ
2021/02/24(水) 18:21:58.41ID:9gaCPeun
tryのelseもwhile/forのelseも意義を見いだせないな

Effectiee Pythonではwhileとforのelseは使うな
tryのelseは活用しろとあったがtry/elseの例はすげー微妙なコードだった
2021/02/24(水) 18:40:11.47ID:7Ynmy8c9
for〜else使えるのにフラグとかないし思考の妨げとか単に慣れてねーだけだろ
2021/02/24(水) 19:38:52.19ID:OePWDmP0
コロナ対策と同じで自分以外の人の
ために使わないでほしい
661デフォルトの名無しさん
垢版 |
2021/02/24(水) 20:08:35.09ID:FNeBH8xI
在日クソチョン乙
2021/02/24(水) 20:16:04.49ID:CLu4HI+L
俺が理解できないから他の奴も使うな!
俺が馬鹿みたいに見えるだろ!!
2021/02/24(水) 20:29:16.98ID:RQHABlQe
elseもfinallyも使いどころがわからん
elseはtry内に書けばいいしfinallyはただ最後に付け足せば両方通る
2021/02/24(水) 20:34:52.22ID:RutGemqn
>>663
俺もそう思う。
2021/02/24(水) 20:39:23.92ID:lUgQ+/6Y
>>663
こーゆーの初学者にはありがたい
2021/02/24(水) 20:45:52.10ID:lUgQ+/6Y
日本語化されてなくても良いのですが、muエディタのように一行ずつ添削してくれるやつでオススメってあります?
2021/02/24(水) 20:49:56.05ID:1BXBrSOO
>>659
慣れてないっていうか他の言語も当然使うからPythonに戻って来た時混乱するのよ
混乱するならそもそも使わない方が良い
Pythonしか使わないならそれで良いんだろうけどね
2021/02/24(水) 21:00:34.63ID:CQQJwOCp
>>663
エラーでメッセージ出ても止まらないようにするんじゃなかったけ?
サーバーからデータ取れなくても空白文字入れたり
無理やり戻ったり
2021/02/24(水) 21:24:17.14ID:9gaCPeun
>>663
finallyは最後に付け足しても両方通らないよ
2021/02/24(水) 21:51:54.78ID:jNf+xxX4
try内でreturnやbreakした時もelse/finallyは実行される
2021/02/24(水) 21:57:40.34ID:2cGpZtVv
>>667
> 戻って来た時混乱するのよ
> 混乱するならそもそも使わない方が良い
「英語話すと日本語に戻ってきたとき混乱するから
英語使いません!」とおなじこといってるぞ
あふぉ自慢はあったまさらにわるくみえるぞ
2021/02/24(水) 22:10:30.68ID:CLu4HI+L
喩えうまいなw
2021/02/24(水) 22:22:28.79ID:HJ50OjUD
>>669
「両方通らないよ」は
「片方しか通らない」なのか
「全く通らない」なのか分からないよ。
2021/02/24(水) 22:24:22.09ID:7Ynmy8c9
>>663
そりゃそんな理解力だとfinallyもelseも使いどころかわからんわな
てか、例外使っちゃダメレベル
2021/02/24(水) 22:25:50.95ID:9gaCPeun
これはelse使ったほうがいいだろっていうtry/elseのコードない?

Effective Pythonの「Item 65: Take Advantage of Each Block in try/except /else/finally」に書いてあったサンプルコードはこれ
https://www.techiedelight.com/compiler/?VLdi
これ見てもelseを使いたくはならない
2021/02/24(水) 22:28:26.74ID:7Ynmy8c9
>>667
まあ一瞬混乱したりなんでこの機能ねーんだよとかはあるけどそんなの言い出したらキリなくね?
言語や環境によってライブラリなんかも違うし
2021/02/24(水) 22:31:11.53ID:avHANqSb
混乱しないように全部の行にセミコロンをつけなきゃ!
2021/02/24(水) 22:42:05.45ID:9gaCPeun
Pythonだけでも
if-else、while/for-else、try-elseのそれぞれのelseで
んん?ってなる

loopのelseはbreak-or-elseのelse
tryのelseはexcept-or-elseのelse
と理解すれば意味はわかるがif-elseと違い過ぎるから
よほどのメリットがある場合じゃなければ使おうとは思わない
2021/02/24(水) 22:49:17.28ID:GQvsnMXY
>>632さん、>>633さん
ありがとうございます、もう少し調べてみます。
プロセスとスレッドの違いがいまいちわかってないですが、コレも日々勉強ですね
2021/02/24(水) 23:53:39.31ID:2cGpZtVv
>>672
ありがとーん

>>677
おもたおもた、最初おもた!www
681デフォルトの名無しさん
垢版 |
2021/02/25(木) 02:12:11.24ID:291z1RhV
質問です。

jupiter (旧jupiter notebook)上でpythonを動かす際、処理が飛ばされることがあるのですが、これと同じ状況になられた方はいらっしゃいますでしょうか? また、このようなことはありえるのでしょうか?

ご回答お願い致します
2021/02/25(木) 03:15:47.41ID:PF1Nn8ga
「ノートブックには数え切れないほどの隠された状態があり、簡単にめちゃくちゃになってしまい、論理的に考えるの難しい。」by Joel Grus

I Don't Like Notebooks
https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/mobilepresent?slide=id.g362da58057_0_1
2021/02/25(木) 09:39:32.72ID:HDmJbLoC
ウィンドウのキャプチャーを撮って、動画にするアプリを作っているのですが、
下記部分で特定の回数実行すると9969回目で下記エラーとなります。
エラーメッセージで検索すると、DeleteDCの前に古いビットマップを戻すようなアドバイスがあったのですが、
意味がよくわからず、どなたかお助けお願いできませんでしょうか。
こちらの環境は3.8で、9969回目にエラーが出ました。

エラーメッセージ
   CreateCompatibleDC failed

ソースコード
for Z in range(10000):

print(Z)
# ウィンドウのデバイスコンテキスト取得
windc = win32gui.GetWindowDC(hnd)
srcdc = win32ui.CreateDCFromHandle(windc)
memdc = srcdc.CreateCompatibleDC()
# デバイスコンテキストからピクセル情報コピー, bmp化
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, 100, 200)

memdc.SelectObject(bmp)
memdc.BitBlt((0,0), (100, 200), srcdc, (0, 0), win32con.SRCCOPY)
# 後片付け
# srcdc.DeleteDC()
memdc.DeleteDC()
# win32gui.ReleaseDC(hnd, windc)
win32gui.DeleteObject(bmp.GetHandle())
2021/02/25(木) 11:19:59.37ID:wUmGW86/
9969ってのは、GDIオブジェクトの最大数にひっかかってるような気がする
リリースしてないハンドルとかがないかチェックしてみては?
2021/02/25(木) 16:30:42.42ID:OWCUu+hy
vscodeでblack使って自動フォーマットしてるんだけどこの前から急にフォーマットされないファイルが出てきた
同じフォルダ内の他のファイルは普通にフォーマット出来てるし訳がわからない
Blackのエラー出力とか見れないのかな?
2021/02/25(木) 17:27:50.59ID:OWCUu+hy
↑は自決しました

NamedTupleをデータ保管庫として使おうとしてるんだけど、
インスタンスを初期化するときにちょろっと引数に対して処理をしてから内部変数に代入することって出来ないのかな?
簡単に言えばinitがしたいんだけどエラーが出てできない
AttributeError: Cannot overwrite NamedTuple attribute __init__
2021/02/25(木) 17:38:22.46ID:VhwBlxTz
そういのはNamedTupleじゃなくてdataclass
データ型がほしい -> NamedTuple
データ型にメソッドとかもほしい -> dataclass
2021/02/25(木) 17:54:03.83ID:cAbWQIRq
>>686
immutableだから__new__をoverwriteすればいいんでない
2021/02/25(木) 18:12:49.19ID:V/hSl7BP
まあでもそんなことするくらいだったらdataclass使うよね
2021/02/25(木) 18:21:47.84ID:OWCUu+hy
ありがとうdataclassの方だったのか
あと凄くニッチな需要だとは思うんだけど
initの際の引数で1つの変数に対して複数の型を許容するようにして
型ごとに異なるinit処理をすることって出来るのかな?
2021/02/25(木) 18:43:42.30ID:cAbWQIRq
dataclassは__post_init__()を使って初期化処理をする
frozen=Trueの場合はobject.__setattr__()を使わないと変更できないので注意
692デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:47:26.95ID:rcOltu0H
>>681
毎回 Reset して最初から実行させれば飛ばされない
693デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:48:48.06ID:rcOltu0H
>>683
Win32API スレで聴いた方が良い
2021/02/25(木) 20:06:22.11ID:9bodhAOn
>>684
>>693
返信ありがとうです
ソースコードはこれとhndを取得しているところだけで、見当がつかず。。。
WIN32APIスレが有るのですね、こちらでの質問取り下げてそっちで聞いてみます。
お手数おかけしました
2021/02/25(木) 20:12:44.60ID:22HRW9MD
超初心者用板なので質問!
例えばiと打つと変換候補にifが出てきたり、fを打つとforがでるとか、その文字の意味によって色が変わったりするのは、所謂エディタを使ってるってことですか?
2021/02/25(木) 20:16:22.53ID:Odue14P3
>>695
うん
せやで
物による
2021/02/25(木) 20:20:41.50ID:22HRW9MD
>>696
ありがとナス!
自分に合うやつ探してみる!
2021/02/25(木) 20:42:17.22ID:xMUZ/pXS
>>695
板とスレの区別つくようになってな
5ちゃんの初心者からは脱出してーな
2021/02/25(木) 21:20:13.32ID:22HRW9MD
>>698
みんなそのうち見分けつくようになるから!
初心者脱出がんばれよ!
2021/02/26(金) 00:27:39.21ID:LIvaJcIb
正しいPythonのイントネーションは?
自分はyにアクセントを置くけど、oに置く人のほうが多い印象
2021/02/26(金) 00:34:50.50ID:/5hr8X55
パイソンでしょ?
ダイソンと同じじゃないの?
2021/02/26(金) 00:37:43.61ID:3s3KCcUn
アメリカ人も普通にパ↑イソ↓ンって言ってたよ
2021/02/26(金) 01:01:00.66ID:6PWfZ28Y
ぱぃすん
2021/02/26(金) 01:03:52.47ID:tFK0PlkJ
「廃村」と同じでフラットなアクセントの人もいるらしい
リアルでは聞いたことがないけどPaizaの音声がそれだった
2021/02/26(金) 01:09:00.11ID:TEyAu0Bq
おっ、ぱいそん
2021/02/26(金) 06:15:21.39ID:kpiIv0Zu
>>696
便乗ですが、ericで入力補助の設定ありませんか?
2021/02/26(金) 08:48:38.56ID:i06a2uQv
キャラメルと同じか
都会人ほどかっこつけて↓キャ↑ラメル
2021/02/26(金) 12:19:00.24ID:BR0FHe5J
oにアクセントを置くってのは
Oh my God!のmy godと同じイントネーションでパイソンって言うことになるんだけど
そんなやついる?
2021/02/26(金) 12:39:55.01ID:0cHE169k
ちゃらい男が言ってそう
2021/02/26(金) 14:36:13.94ID:w2bvpH1M
>>683
リソース使い過ぎ
こっちだと 9994 で死ぬ
回避版
windc = win32gui.GetWindowDC(hnd)
srcdc = win32ui.CreateDCFromHandle(windc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, 100, 200)
o = memdc.SelectObject(bmp)
memdc.BitBlt((0,0), (100, 200), srcdc, (0, 0), win32con.SRCCOPY)
memdc.SelectObject(o)
win32gui.DeleteObject(bmp.GetHandle())
memdc.DeleteDC()
srcdc.DeleteDC()
win32gui.ReleaseDC(hnd, windc)
2021/02/26(金) 15:07:56.58ID:LIvaJcIb
>>708
フラットというべきだった
2021/02/26(金) 15:20:17.73ID:5CAI4NX0
>>708-709
おれのいもうとは熱心なアンチオブジェクト指向だから
ちょうどそんなかんじで
「ぱいそーん」て発音してばかにしてくる
2021/02/26(金) 15:33:51.73ID:VLFgiwVz
>>710
25回も増えてる!
2021/02/26(金) 19:01:57.36ID:aJT073mH
プログラミング知識ゼロで昨日から始めました
公式ホームページの「ゼロからのPython入門講座」が終わったところで現在2週目復習中です
今後簡単なアプリかゲームをゆっくり作ってみたいのですが、
復習が終わった後に何に手を出したらよいかわかりません
参考になる本やサイトを教えていただけると嬉しいです
2021/02/26(金) 19:20:14.71ID:5CAI4NX0
>>714
改訂3版-これからはじめるプログラミング-基礎の基礎
ISBN-10 : 4297101181
ISBN-13 : 978-4297101183
716デフォルトの名無しさん
垢版 |
2021/02/26(金) 19:27:20.65ID:aJT073mH
>>715
レスありがとうございます
amazonで購入してみますね
挫折しないように頑張ります
2021/02/26(金) 22:09:28.00ID:bhKccw0u
sum(iterable,/,start=0)
説明にこう書いてある場合/はどういう意味ですか
2021/02/26(金) 22:32:11.07ID:JQWH2W1r
>>717
/より前の引数に対して
sum(iterable=[1,2])っていう引数指定を禁止して
sum([1,2])っていう形式を強制する
https://docs.python.org/ja/3/faq/programming.html#what-does-the-slash-in-the-parameter-list-of-a-function-mean
2021/02/26(金) 22:58:42.43ID:tFK0PlkJ
スラッシュより前が位置引数、後がキーワード引数
2021/02/26(金) 23:17:26.73ID:bhKccw0u
なるほど
検索でひかからなくて
困ってました
ありがとうございます
2021/02/26(金) 23:18:44.76ID:U0l21RSc
自前のデコレータって使ってます?
2021/02/27(土) 04:47:25.88ID:W4QL4Nh3
ひっでぇ文法w
ここで / かよw恣意的すぎる
せめてキーワードだったら
2021/02/27(土) 05:04:33.36ID:skJFTcxi
だってほんとに恣意的なんだから仕方ないじゃん
2021/02/27(土) 07:44:17.20ID:nYZXhYHq
スライダーで一つの値は設定できたのですが、
一つのスライダーで範囲指定をしたくて
一つのスライドで2つのポッチがあるスライダーってありませんでしょうか
2021/02/27(土) 07:47:54.96ID:IvOqzPST
誤爆?
2021/02/27(土) 10:16:53.64ID:3qgM7V/3
以下の例のように、「こんにちわ」が出てきたときに反応させるプログラムを作りたいのですがどうしたら出来ますか?

testWord = "こんにちわ"

testList = [
"こんにち",
"こんにちわ、赤ち", #→ここで初めて「こんにちわ」が出てきたので判定させたい
"こんにちわ、赤ちゃん、私がママよ。",
"こんにちわ、赤ちゃん、私がママよ。こんにち",
"こんにちわ、赤ちゃん、私がママよ。こんにちわ、5ちゃん、私がねらーよ"] #→ここで2回目の「こんにちわ」が出てきたので判定させたい

1度判定した「こんにちわ」には反応させずに
次にまた「こんにちわ」が登場したタイミングで判定を行うようなことをしたいです
2021/02/27(土) 10:23:46.83ID:1dh3P6Cc
>>726
一つ前の文字列分を削除して、「こんにちわ」を検索すれば?
728デフォルトの名無しさん
垢版 |
2021/02/27(土) 11:15:48.03ID:nZVzeDc8
>>724
python - Dash range slider with input on each side - Stack Overflow
https://stackoverflow.com/questions/61896144/dash-range-slider-with-input-on-each-side

こんなのが欲しいんだろう
2021/02/27(土) 11:28:12.17ID:i9vxP9X9
"こんにちは...こんにちは".count("こんにちは") > 1
2021/02/27(土) 12:13:58.61
こんにちわ の回数で反応なのか
こんにちわ の場所と回数で反応なのか

"こんにちわ、赤ち", #反応
"てすと、こんにちわ、赤ち",#には反応していいのかどうか
2021/02/27(土) 12:22:23.28
MeCab案件なら簡単に終わりそうだが
そこまでするようなことでもなさそうか
732デフォルトの名無しさん
垢版 |
2021/02/27(土) 12:54:27.21ID:ZzS9Utpn
>>726
正規表現オブジェクト.search() の第二引数で検索開始位置を指定する
https://docs.python.org/ja/3/library/re.html#re.Pattern.search

pattern = re.compile(re.escape(testWord))
startpos = 0
for s in testList:
    m = pattern.search(s, startpos)
    if m:
        startpos = m.end(0)
        print(m, s)
2021/02/27(土) 13:23:09.85ID:6pVfj7hb
Graphpl、つかってますか?
2021/02/27(土) 14:37:55.21ID:nYZXhYHq
>>728
まさにこれです。
range sliderっていうのですね、Dashというのをいんぽーとしてみす!ありがたや〜
2021/02/27(土) 17:32:55.95ID:Mamfw3xC
>>733
使ってるよ
736デフォルトの名無しさん
垢版 |
2021/02/27(土) 17:46:21.97ID:tx9E3aXM
>>713
回避版は死なないよ
737デフォルトの名無しさん
垢版 |
2021/02/27(土) 17:51:22.93ID:tx9E3aXM
489977463X
4800712394
4800712564
4798153192
4899775067
4899774451
4899774117
4899771657
4899772408
2021/02/27(土) 18:55:44.81ID:W4QL4Nh3
>>726
俺ならステートマシンで作りたい
739デフォルトの名無しさん
垢版 |
2021/02/27(土) 20:00:58.09ID:2vAsLoLE
プログラミングまったく知らない状態からpythonの勉強始めたけど
最初なんか算数やらされています
楽しいからいいんだけど
2021/02/27(土) 20:14:25.94ID:prqmMYi4
算数?
2021/02/27(土) 20:39:35.77ID:sr9HwlGw
1+1 Enter で 2と表示される、とかいうのだろ
2021/02/27(土) 20:54:02.03ID:qhUfxMpi
>>739
楽しいなら何より
2021/02/28(日) 00:35:24.00ID:wvyOLWT2
>>739
基本情報の問題かw
2進数とかだろ
744デフォルトの名無しさん
垢版 |
2021/02/28(日) 02:03:12.43ID:daaxgw+w
>>103
JDLA「G検定」対策へ「人工知能基礎」「G検定実践トレーニング」の価格改定(各3,000円)のお知らせ
>人工知能(AI)を学ぶ/学びたい全ての方々のために、基礎教材である「人工知能基礎」(監修:東京大学大学院松尾豊教授)の定価を
これまでの25,000円から3,000円(税抜、学習期間60日間)に、大幅な改訂を実施させていただきました、
また、国と地方のDX推進役ともいえる行政職員の方々向けに、無償プログラムの提供も合わせて開始させていただいております。
同時に、「人工知能基礎」を通して学習いただいた内容をもとに、日本ディープラーニング協会「G検定(Deep Learning for GENERAL)」の受験を目指される方のために、約800題の練習問題を収録したオンライン問題集「G検定実践トレーニング」についても、同じく価格改定を行っております。
これまでの15,000円から、「人工知能基礎」同様の3,000円(税抜、学習期間60日間)に本日より改定させていただきました。
745デフォルトの名無しさん
垢版 |
2021/02/28(日) 13:52:32.65ID:ZyTvjWG3
vscodeでa=bを書くと
a半角スペース=半角スペースb
みたいに行ごとに直してくれる拡張機能があった気がするのですがわかる方お願いします。
2021/02/28(日) 13:59:29.01ID:M6Bss1UT
black
747デフォルトの名無しさん
垢版 |
2021/02/28(日) 14:10:11.01ID:ZyTvjWG3
>>746
助かりました。ありがとうございます。
2021/02/28(日) 17:49:21.52ID:mnh+qcDH
color_list = ['darkblue', 'grey', 'darkred', 'darkred', 'darkred']
hatch_list = ['/', '//', '/', '//', '/']
plt.bar(left, height, color=color_list, hatch=hatch_list, width=width,
tick_label=labels, align='center')

上のコードでハッチが表示されません
最後の一行で直接hatch='/'と指定すればOKなのですが、
リストを使ってハッチの指定はできないのでしょうか?
2021/02/28(日) 17:59:25.69ID:j6OO5fYb
>>748
たぶんmatplotlibの質問であろうとエスパー
2021/02/28(日) 18:05:37.71ID:mnh+qcDH
すいません。そのとおりです。
2021/02/28(日) 18:06:03.70ID:mnh+qcDH
matplotライブラリの質問は別スレでしたか・・・。
2021/03/01(月) 17:11:55.07ID:S1XXbIBo
データフレームに関する質問です。

特定の列がNanのみであるかどうか判定するにはどうすればよろしいでしょうか?
(列を削除、置換するわけではなくあくまで判定したいだけです。)
2021/03/01(月) 17:18:55.51ID:48a0rHlg
>>752
df[‘foo’].isna().all()
2021/03/01(月) 17:30:00.73ID:S1XXbIBo
>>753
ありがとうございます!確認できました!
755デフォルトの名無しさん
垢版 |
2021/03/01(月) 23:51:18.26ID:qIwpFI/L
質問・アドバイスよろしいでしょうか?

Pythonで統計分析したくて独学を初めて間もないのですが,PCが壊れてしまいました。
そこで買い替えに当たってwindows,macどちらのos が良いのでしょうか?
Progateでとりあえず触れていただけなので,環境構築とかも全然していなくて,osによる違いもさっぱりです。
今後利用するにあたって使い勝手がいいものとかあるのでしょうか?

ご教授いただけると嬉しいです。
2021/03/02(火) 00:07:19.65ID:78wMHESr
Ubuntuが一番楽で次いでMac≧Windows
でもどうせPipenv系入れるんだし難易度はそこまで大差ない
今後機械学習とかに手を出すつもりならGPU積んだUbuntu Server建てるのが吉
2021/03/02(火) 00:10:57.83ID:rkiJtx71
beautifulsoupのテーブル操作
table.find_all('th')はうまくいくのに
tr = table.find_all('tr')はなぜか
tr[0]にtr要素が全部入ってtr[1]に0番目のtr以外のtr要素が入って、、
みたいな挙動に・・
2021/03/02(火) 00:17:48.89ID:c+vl6u1N
美しいスープ
2021/03/02(火) 00:26:09.32ID:rkiJtx71
自己解決?
再帰してtr.find('td')で上のひとつだけ取得して配列にいれて返したら
欲しい情報になった・・
そういう仕様なんですね
760デフォルトの名無しさん
垢版 |
2021/03/03(水) 23:25:41.92ID:KD2bTQwL
1日調べて分からなかったから教えてください、、、
python3.7.6、Windows10環境で関数にタイムアウト機能をつけようとしています

そこで、wrapt_timeout_decoratorかtimeout_decorator(こっちではそのままだとwindowsでは使えないみたいなのでuse_signals = Falseをつけて)
のどっちかのライブラリを使って実装できれなと思っているが、
どっちをやってもPicklingErrorが出てしまう・・・
このエラーの原因の解決方法か別の方法でタイムアウト実装する方法教えてください・・・
2021/03/03(水) 23:56:05.09ID:Lej/VXGz
>>760
エラーの原因を質問する時は
エラーを再現できる最小限のコードを公開してね

ループで都度タイムアウトしてないかどうかをチェック可能な処理じゃなければ
非同期、マルチスレッド、マルチプロセスのいずれかを利用する必要があって
どれでやるにしてもそれらの基本を理解してないと難しいかな

非同期の例は公式にもある
https://docs.python.org/3/library/asyncio-task.html#timeouts
762デフォルトの名無しさん
垢版 |
2021/03/04(木) 00:47:08.18ID:ky+CpMbM
>>761
失礼しました・・・
例としては
main.py

import test

def main():
try:
test.check()
except TimeoutError as e:
print(e)

if __name__ == "__main__":
main()
--------------------
test.py

import time
from wrapt_timeout_decorator import timeout

@timeout(20)
def check():
#タイムアウトしたい長い処理

大体こんな感じで、エラーが
PicklingError: can not pickle , bad items: [], bad objects: [], bad types []
ちなみにtimeout_decoratorを使った場合だと
@timeout_decorator.timeout(20, use_signals = False)
にして、出てくるエラーが
PicklingError: Can't pickle <function check at 0x0000023FC9132AF8>: it's not the same object as test.check
って感じ
2021/03/04(木) 01:17:08.85ID:SnNpAHGf
pickleを使ってる部分を見ないとなんとも言えないね
764デフォルトの名無しさん
垢版 |
2021/03/04(木) 09:46:10.05ID:ky+CpMbM
>>763
正直タイムアウトのライブラリ使ってるだけだからわからないんだ・・・
765デフォルトの名無しさん
垢版 |
2021/03/04(木) 10:16:00.19ID:J6mhpq5t
https://srbrnote.work/archives/5683
766デフォルトの名無しさん
垢版 |
2021/03/04(木) 11:21:40.52ID:ky+CpMbM
>>765
そこのブログを参照して>>762を作ったんだけどエラーが・・・うむむ
2021/03/04(木) 11:50:34.61ID:/01lxT1R
まず公式のサンプル動かして確認してみれば
2021/03/04(木) 13:42:12.03ID:Ep7EXP13
pickle化できないオブジェクトってのもあったと思うが。
2021/03/04(木) 14:48:50.66ID:isF+FKc+
恥を承知で...
初めて環境構築ってのをやったんだけどVSCodeで↓のエラー出てるんだけど何をどうしたら解決する?
anacondaの何かを参照する所が間違ってるのかなって思うんだけど

https://i.imgur.com/LXXt2m5.jpg
2021/03/04(木) 14:55:15.07ID:nvnU0rcf
condaのある場所にパスが通ってないような
anaconda path windowsでググってみれば
2021/03/04(木) 15:52:31.59ID:n4U3fEXb
>>769
携帯と手がもろに写り込んでるな
2021/03/04(木) 16:17:51.36ID:SnNpAHGf
プログラミングを勉強する前にPrintScreenの使い方を勉強したほうが
余計な恥を晒さずに済むぞ
2021/03/04(木) 16:18:52.63ID:8K5NzuEj
せめて女子じゃないとこういう誘いは意味がないぞ
そう、俺以外はな(じゅるり
2021/03/04(木) 16:20:01.98ID:isF+FKc+
んーなんかいろいろやってるけどダメっぽいなぁ
>>772
それぐらい知ってるわいメンドイダケ(´・ω・`)
2021/03/04(木) 16:31:52.64ID:Vg03hohD
そのまま
https://net-newbie.com/2020/01/23/vscode-conda-not-found/
2021/03/04(木) 16:54:49.58ID:Kw8G1bym
eric6を使い始めましたが、Visual studioのエディタの様にドットを入力したメンバー関数とか変数の候補を出す機能はありますか?
2021/03/04(木) 17:24:41.16ID:H73itTFq
「PSN障害」(隠語)を思い出すな
2021/03/04(木) 18:34:53.66ID:JWz6ZGLm
>>777
直前に見てた別スレとなめらかにつながってて俺震撼

でもって
777はなんでツーピースくんなんだってばよ…
たぶん769あてなんだとはおもうが
間あいててアンカー省略すると
周囲にエスパーを強要してイクナイ(・A・)
2021/03/04(木) 20:01:17.96ID:fev92YaS
>>769
そもそも anaconda で入れた?
純正は pip 系かと

win + shift + S で画面ハードコピー(範囲選択付き)や
2021/03/04(木) 23:27:05.50ID:r630MI+k
エディタは何にしたらいいですか?

プロ用じゃなくて、このスレらしく初心者用でお願い
2021/03/04(木) 23:30:29.13ID:z3c4cn+G
a1bc23def456gh32z
という標準入力があった場合、

[a, 1, bc, 23, def, 456, gh, 32, z]
と文字と数字で切り分けてリストに入れる方法を探しています。

s = list(input())
として一文字ずつ取り出して判別していく方法は思いつくのですが、
数字と文字で簡便に切り分ける方法があればお教え頂けると幸いです。
よろしくおねがいします。
2021/03/04(木) 23:31:24.69ID:fev92YaS
PyScripterを入れています
2021/03/04(木) 23:55:12.53ID:FIbtDWBm
>>781
import re
re.findall(r'[A-Za-z]+|[0-9]+', foo)
で分けられるけど分けた後どうしたいかも含めて考えたほうがいいと思う
1文字ずつ判定していくのはそれほど悪い方法ではない
2021/03/05(金) 00:23:21.34ID:9TyiwElh
vscodeの補完の主張がうざすぎて、かえって誤入力が増える
2021/03/05(金) 01:11:16.70ID:rBYTdSJW
>>782
うちもw
少数派だよね
2021/03/05(金) 01:31:27.73ID:IvUsxzJq
>>783
分かりました。ありがとうございます。
2021/03/05(金) 04:34:45.97ID:+KzI4LDm
PyScripter、mac版出ないかな〜
788デフォルトの名無しさん
垢版 |
2021/03/05(金) 12:39:59.89ID:Dk6id0UV
Pythonの勉強始めたばかりですが、よい基本書あったら教えてください

当方プログラミング初心者です。
2021/03/05(金) 12:54:55.09ID:1bQNenos
>>788
スッキリわかるPython入門 おすすめ
790デフォルトの名無しさん
垢版 |
2021/03/05(金) 13:45:45.22ID:Dk6id0UV
>>789 ありがとうございます
791デフォルトの名無しさん
垢版 |
2021/03/05(金) 13:47:56.77ID:Dk6id0UV
入門python3はいかがですか?オライリージャパンから、今度新板がでるようですが
792デフォルトの名無しさん
垢版 |
2021/03/05(金) 14:58:43.95ID:TbcZsHOv
>>781
re.split(r'(?<=[^0-9])(?=[0-9])|(?<=[0-9])(?=[^0-9])' , input())
で出来た

>>> re.split(r'(?<=[^0-9])(?=[0-9])|(?<=[0-9])(?=[^0-9])' , input())
a1bc23def456gh32z
['a', '1', 'bc', '23', 'def', '456', 'gh', '32', 'z']

全部文字列になっちゃうけど

(?<=[^0-9])(?=[0-9]) という正規表現で切り替わりの境界を見つける
2021/03/05(金) 16:48:58.99ID:/lmwOJl7
>>781
Ruby では、

1文字ずつ処理して、チャンクに分けて、
配列化された各文字をつなげてから、それを蓄積変数(配列)へ追加していく

str = "0a1bc23def9"

p results = str.each_char.chunk { |char| "0" <= char && char <= "9" }
.each_with_object( [ ] ){ |( key, ary ), accm| accm.push ary.join }

出力
["0", "a", "1", "bc", "23", "def", "9"]
2021/03/05(金) 16:53:58.92ID:ap8GROD4
推奨NGワード: Ruby
2021/03/05(金) 18:22:59.43ID:Kw208hnZ
推奨NGワード: 推奨NGワード
2021/03/05(金) 18:26:03.90ID:CsA2GBeo
>>795
Rubyスレでやれ屑
2021/03/05(金) 18:45:20.62ID:5JqVOEDY
>>795
調子に乗んなよカスキチガイ
2021/03/05(金) 20:48:58.87ID:dJjw+9nd
いつも2回書き込むから分かりやすい
屑同士仲良くしとけ
2021/03/05(金) 21:14:10.68ID:tZP3HZeC
>>788
Dr.ボウヨウ
800デフォルトの名無しさん
垢版 |
2021/03/05(金) 22:24:37.67ID:D5FTzdov
>>799さん、ありがとうございます。
オライリー本か望洋先生の本か迷っています。オライリージャパンからv3.9の新版がでるのでそちらにしようと考えています。
2021/03/05(金) 22:57:50.78ID:/7pkvWLl
>>615
あるある
2021/03/06(土) 00:00:47.07ID:3q/qkAqm
for s in csvlist:
dic[(s[1],s[2])]+=1

みたいなのをリスト内包括表記で書く方法はありますか?
2021/03/06(土) 00:36:09.53ID:iEqPiFd0
>>802
ない
804デフォルトの名無しさん
垢版 |
2021/03/06(土) 01:14:26.50ID:Pfr/M2Zt
>>802
無理矢理
dic={(s[1],s[2]):dic[(s[1],s[2])]+1 for s in csvlist}
2021/03/06(土) 01:35:59.77ID:3q/qkAqm
>>804
あざす
2021/03/06(土) 01:56:50.13ID:iEqPiFd0
>>804
同じkeyがあれば上書きされるだけ

In : csvlist = [[1, 2], [1, 2], [2, 3], [4, 5], [1, 2], [2, 3]]
In : dic = {(1, 2): 0, (2, 3): 0, (4, 5): 0}

In : dic={(s[0],s[1]):dic[(s[0],s[1])]+1 for s in csvlist}
In : dic
Out: {(1, 2): 1, (2, 3): 1, (4, 5): 1}

In : dic={(s[0],s[1]):dic[(s[0],s[1])]+1 for s in csvlist}
In : dic
Out: {(1, 2): 2, (2, 3): 2, (4, 5): 2}
2021/03/06(土) 02:11:18.44ID:3q/qkAqm
>>806
すんません
2021/03/06(土) 07:57:07.36ID:Tfz5lFd6
同じkeyが考えられるならリスト内包使うなや。。
2021/03/06(土) 08:55:50.84ID:VUSDHq2/
>>808
for文の高速化ができれば何でもいいんですが...
2021/03/06(土) 08:58:32.28ID:LBruwFX5
nkmkっていう読みづらいクソサイトがいっつも検索の上位にくんの何とかなんない?
811デフォルトの名無しさん
垢版 |
2021/03/06(土) 09:17:08.69ID:Pfr/M2Zt
>>809
forが遅くなるのはループ内の処理の問題であって、とにかくリスト内包に直せば高速化する訳ではない
2021/03/06(土) 09:20:56.24ID:tofCOwRM
>>810
https://docs.python.org/3/reference/index.html
813デフォルトの名無しさん
垢版 |
2021/03/06(土) 09:37:40.69ID:qinwWtrN
Python(基本ライブラリ)の場合は、内包表記の代わりの書き方となると、
sum(map(fliter(...)))っていう書き方になるからな。
段数増えてくると読み辛い。
2021/03/06(土) 10:01:20.42ID:LBruwFX5
Pythonがメソッドチェーンを嫌う理由がさっぱり分からん
2021/03/06(土) 10:04:07.89ID:lBapLpDG
メソッドチェーンはクソだろ
今導入するならパイプ演算子にしてくれ
2021/03/06(土) 10:09:39.31ID:LBruwFX5
それ、どっちも同じようなもんだろ
2021/03/06(土) 10:16:22.99ID:lBapLpDG
ただ単機能を使うだけなら使い手からしたら同じだろうが内実は全然違う。
self(this)の呪縛から解き放たれているため、レシーバーがなんたるかに依存せずに機能を作れ、使用時に自由に組み合わせ(composition)ることができる。
機能だけに集中して作成することができる最小単位のビルディングブロックであり、思考の枷を解き放つ…!
2021/03/06(土) 10:21:08.23ID:BWZLcpxD
>>816
パイプでメソッドチェーンのようなことはできるが逆は無理。
少なくとも>>813に必要なのはメソッドチェーンじゃない。
2021/03/06(土) 10:35:13.45ID:LBruwFX5
どうしてもパイプを使いたいなら、サードパーティになるが、fn.pyでも使うんだな
それなら、>>で処理をつなぐことができる
2021/03/06(土) 11:25:14.63ID:iEqPiFd0
>>814
嫌ってるわけじゃなく基本の設計思想がオブジェクト指向と親和性が低いだけ
ビルトイン関数のsum()やlen()を考えれば分かる
Python使うなら諦めるしかない

>>817
残念ながらPythonは標準ライブラリの作りの問題でパイプ演算子とは相性が悪い
一時期ライブラリ使ってやってたけどPythonで関数型風を頑張るのは徒労だった
Pythonの場合は結局は言語が半ば強制してる旧来のプログラミングスタイルでやったほうが可読性も生産性も良い

>>813のは他の言語ならreduceやfoldを使う
Pythonでもreduceでできるけどチェーンできないのであんまりメリットがない
2021/03/06(土) 11:47:45.99ID:GYmibT3F
PythonはCOBOLの後継言語という位置づけだから
あまり凝ったことをしない方がいいよ
オブジェクト指向もできるだけ使わない方がいい
2021/03/06(土) 12:02:32.90ID:+wsnPdhj
ただ直線的にデータを加工するだけの一本糞バッチが多いという点においては、確かにCOBOLの後継という面もあるかもね
2021/03/06(土) 13:39:57.54ID:jh/4lioi
>>810
俺はTECH PLAYというページが嫌い
前置きが長くて余計な写真を貼ってるから
2021/03/06(土) 18:25:00.30ID:a4TnS/vO
スキャルピングの名著的なのある?(^_^;)
本屋行っても初心者用しかないわ、美汁やなくてpandasに詳しいやつ、ホームページでもいいわ
2021/03/06(土) 18:34:14.52ID:1+6WWeIj
ほれ
https://www.%61mazon.co.jp/dp/4299008669/
2021/03/06(土) 20:07:49.64ID:dCcMdWeG
>>810
むしろそこ以外がウザいからブロックしとる。nBlacklistとか入れろよ
2021/03/06(土) 20:09:29.36ID:8xHJ0vOd
>>826
検索結果から消せるの?
2021/03/06(土) 20:33:20.09ID:dCcMdWeG
>>827 googleの検索結果からはね
2021/03/06(土) 22:09:54.47ID:D8Cm3Sr4
○○を現役エンジニアが解説
2021/03/06(土) 22:15:44.94ID:Tfz5lFd6
ワンライナーやめて関数作ったり中間変数使えばいい話だろ。馬鹿なのかな?
2021/03/06(土) 22:46:12.39ID:9Z1HHUlG
ビョーキなんだろ
2021/03/06(土) 22:51:53.13ID:t7mBDaVi
中間変数って…w
コードの冗長さに無頓着な奴には分からん話なのかな
2021/03/06(土) 23:28:17.98ID:OHlKKiRx
わかりづらい1行より、わかりやすい100行の方が遥かに有用
2021/03/06(土) 23:34:58.05ID:iEqPiFd0
メソッドチェーンの話からワンライナーの話してるの?
2021/03/06(土) 23:56:48.44ID:9Z1HHUlG
>>833
マ界隈には、
1行こそ至高のわかりやすさ! と信じて疑わないパラノイアけこういるいる
2021/03/07(日) 01:57:44.08ID:Yk0Ylm3y
メソッドチェーンは行数減らすためw
相当ヤバいな
2021/03/07(日) 02:12:53.75ID:4STW97JG
パラノイアにはlispが人気だよ
2021/03/07(日) 06:55:54.30ID:GawQ6mmH
pythonみたいなレガシー言語しか知らないと脳みそまでレガシー化するいい例だな
2021/03/07(日) 07:39:27.92ID:idMgiyQ5
可読性w低レベルな底辺コーダーが自分が読めないからって言い訳によく使う言葉よね
2021/03/07(日) 08:32:05.11ID:xtEqsmh7
PytorchをNCS2対応に改修するぐらいの
スキルを見せて欲しいものです
2021/03/07(日) 10:23:58.21ID:X1xT159A
torchscript使えば動くんでねーの
2021/03/07(日) 13:02:47.89ID:TkByhUzl
>>839
そのうちdeprecatedで消されるコードをよく使う馬鹿がこういうこと言ってるよなw
2021/03/07(日) 13:03:58.50ID:TkByhUzl
関数型マンセー馬鹿もオブジェクト指向馬鹿と同じく淘汰されるのに20年くらいかかりそうだな。
2021/03/07(日) 15:25:54.04ID:kzR2UGtF
スレ違いの5ch超初心者は>>1を読んでROMってなさい
2021/03/07(日) 17:20:23.47ID:FF/L0q41
https://i.imgur.com/ARbesQc.jpg
https://i.imgur.com/PNqG1Kz.jpg
2021/03/07(日) 17:24:20.81ID:ztwQkt37
誰だよこのブスは
2021/03/07(日) 17:24:39.60ID:0wLP1PJV
>>833
わかりやすい100行って例えばどういう例?
100行という長さだけで分かりにくくなりそうなもんだが
2021/03/07(日) 17:47:23.42ID:un0/iepj
>>846
お前すごいな、自分の顔と髪と服装が異常なことを自覚してからそういう書き込みしような?
2021/03/07(日) 18:53:56.39ID:Wf0ygRS6
>>846
コロンブス
2021/03/07(日) 18:57:11.93ID:xtEqsmh7
>>846
太郎冠者と次郎冠者のどちらか by 附子
2021/03/07(日) 19:40:59.32ID:0j4UC+r/
うちも最初は1行で書いたほうが速度が速くなると思ってた
2021/03/07(日) 21:19:44.74ID:qqMvcMU2
pytorchでLSTM組もうとしてるけど解説がえらい難しい
引数がどこに渡って、なんでその数字になってるかさっぱりわからん
2021/03/07(日) 23:59:52.34ID:xtEqsmh7
リカレントニューラルネットワークって
オワコンって聞いたけど
まだ需要あったのか😅
2021/03/08(月) 00:45:10.83ID:NXP85mLB
ブスじゃないよ
2021/03/08(月) 01:26:17.70ID:ro4D92TZ
1列目にx成分、2列目にy成分、3列目にz=f(x, y)成分が書かれた表ファイルがあるとします。

これを3次元プロットするために各成分を
x =
[[0, 1,..., 99],
[0, 1,..., 99],
...,
[0, 1,..., 99]],
y =
[[0, 0,..., 0],
[1, 1,..., 1],
...,
[99, 99,..., 99]],
z =
[[f(0, 0), f(1, 0),..., f(99, 0)],
[f(1, 0), f(1, 1),..., f(99, 1)],
...,
[f(99, 0), f(99, 1),..., f(99, 99)]]
みたいな感じで二次元配列として表示したいです。

x成分とy成分に関しては
x, y = np.mgrid(0:99:100j, 0:99:100j)
みたいにすれば良いのだと思いますがz成分はどう読み込むのが簡単でしょうか?
856デフォルトの名無しさん
垢版 |
2021/03/08(月) 09:58:08.34ID:2nW5LwXW
youtube apiって何に使うんですか?
動画のリンクを作るとして、どういう切り口なら面白いでしょうか?
例えばゲーム実況動画を集めるにしても、どういうフィルターをかけますかね(´・ω・`)
2021/03/08(月) 10:23:10.34ID:yzJktHgY
スレチ
2021/03/08(月) 11:23:08.69ID:rGThYfFy
Youtube APIを活用して人気ゲーム実況者になりたいです
どうすればなれますか?
2021/03/08(月) 12:49:05.28ID:51l8TXvP
YouTube APIを活用してゲームを実況する所から始めなさい
2021/03/08(月) 13:23:55.77ID:+QBu4Sia
そしてゲームの権利を持っている会社に訴えられれば良いんだ
富士額の鼠とか
861デフォルトの名無しさん
垢版 |
2021/03/08(月) 19:40:31.97ID:WPDBHf+v
>>856
こういう障害者増えたよな
現実世界的にも
2021/03/08(月) 20:09:34.89ID:79M79IOe
>>856
周りのことは気にせず好きにやればいいよ。応援してます。
2021/03/08(月) 20:12:23.12ID:o5KRB7Vc
訳:バカチューブして炎上するのたのしみだなぁ(・∀・)
2021/03/08(月) 21:05:23.74ID:f20FHOXZ
>>861
あなたは医者なのでしょうか?
医師免許を持ってないのに診断を行うことは良くないと思います
2021/03/08(月) 21:15:29.90ID:Ry4cH9N/
電車とか好きそう
2021/03/08(月) 21:26:56.04ID:QRrNXVZ8
プログラム技術板に居る気持ち悪いPCオタク「電車とか好きそう」





w
2021/03/08(月) 21:53:45.60ID:hoZ9OGmF
パソコンとか好きそう
2021/03/08(月) 22:39:14.06ID:0xESjDVh
exData
みたいなフォルダ名に入ったファイルをpython側で開ことするとエラーが出るのですが、
命名規則に違反しているのでしょうか?
exdata
だとエラーはでません。
2021/03/08(月) 22:46:55.25ID:A+E7x4iR
>>868
普通に開くことできるよ
まずはエラーメッセージを確認して
870デフォルトの名無しさん
垢版 |
2021/03/08(月) 23:54:30.74ID:HSZ1rybx
>>867
パソコン嫌いなのにこの板見てる奴想像したらなんか草生えた
2021/03/09(火) 01:05:57.42ID:AUPcmD7L
ローカルな変数をグローバル宣言すればガベージコレクションを避けられますか?
2021/03/09(火) 01:56:03.38ID:UImc4jwo
すごいの来たな
2021/03/09(火) 03:40:18.58ID:O1t/zxF9
地球を爆破すればゴキブリ絶滅させられますか?みたいなw
ようするに、結果的に避けられるよw
2021/03/09(火) 09:42:34.95ID:3LPKVc8L
>>871
なんでガベージコレクションを避けたいの?
2021/03/09(火) 10:05:56.07ID:nIjEMu5f
ローカルとグローバルスコープの違いをわざわざガベコレ言うとか欧米かよw
2021/03/09(火) 10:46:40.73ID:FfDlkxFo
__関数名_変数名 とかすればローカル変数いらなくね?
2021/03/09(火) 11:01:30.68ID:eB6+BfXg
>>876
関数の中でまた同じ関数が呼ばれたとき、どうするの?
2021/03/09(火) 11:11:24.25ID:l+EYXwiC
>>877
関数は関数名で参照できるんだから関係ないっしょ
2021/03/09(火) 11:15:26.42ID:FfDlkxFo
再帰で呼ばれたらダメでした。orz
2021/03/09(火) 11:19:48.80ID:DAvw1VB6
これがホントのサイキ不能
なんつって
2021/03/09(火) 11:45:28.23ID:8R5APQni
自分でスタックに積んで参照して取り出せば問題ない
2021/03/09(火) 12:16:04.90ID:WPE7QJH3
>>879
昔BASICで再帰的なことやって上手くいかなくて泣きそうになった覚えある
小学生だったけど
そのときは、>>881の言うように変数を配列にしてスタック的なことを実装したけど
でも、自力スタックがめんどくさいからローカル変数ってものができたんじゃないの。
2021/03/09(火) 13:57:11.19ID:ZA2vzpkG
再起処理って
検索以外で使うようとある?
884デフォルトの名無しさん
垢版 |
2021/03/09(火) 14:11:50.18ID:iP4nVCks
末尾再帰とループは互換
885デフォルトの名無しさん
垢版 |
2021/03/09(火) 14:33:43.96ID:SOel1NaK
より簡単にデスクトップアプリが作れるPySimpleGUIを使ってみよう
2021/03/03 11:20
著者:クジラ飛行机
2021/03/09(火) 15:51:38.76ID:4JaghKzr
>>884
関数型かよ。
2021/03/09(火) 17:42:55.00ID:1va3W7Si
>>883
検索って言うか再帰的なデータを処理する時は普通使うでしょ
言語パーサーとかフォルダー内のファイルサイズの総計求めたりとか
888デフォルトの名無しさん
垢版 |
2021/03/09(火) 19:12:23.86ID:qz7mFwyh
あわしろ氏によると、再帰は力なりってことらしい。
2021/03/09(火) 20:36:20.90ID:52qfge3w
COBOLERに言わせると邪悪の根元らしい
2021/03/09(火) 21:58:24.56ID:zYh1VL3E
cobolって書いたことないや
2021/03/10(水) 00:45:37.79ID:nKvfq/49
>>871-873 >>879-880
わろらされたくやしいw
2021/03/10(水) 14:49:17.29ID:lipKJK7u
木構造なら再帰必須だろ
2021/03/10(水) 15:02:39.88ID:3Wx+wvWE
配列から最低n個、最高len(配列)個を取り出すってどうやるんだっけ?

ary = ['a','b','c','d','e']
ary.reverse()
ary = ary[-4:]
ary.reverse()
ary

こういう感じで(できれば最初の配列順のままやりたい)
-4のとこが例えばlen(ary)超える-10とかだったら
'a','b','c','d','e'全部取り出す、みたいな
2021/03/10(水) 15:05:35.69ID:3Wx+wvWE
質問した瞬間
ary[:4]
でいいことに気づいた お騒がせしました
2021/03/10(水) 15:22:44.63ID:eQWG2ihY
>>892
必須じゃないよ
再帰で書くほうが楽だけど
2021/03/10(水) 15:37:37.87ID:nKvfq/49
>>893-894
忘れてて、思い出すと実はかなりイイ!!(・∀・)やつだよね、スライスくんは。
2021/03/10(水) 16:04:15.72ID:c62Azmpw
{'key1': 'val1', 'key2': 'val2', 'key3': 'val3'} ←辞書A
{'key3': 'val3', 'key1': 'val1', 'key2': 'val2'} ←辞書B
辞書Aを辞書Bのように変更する方法を教えて下さい
898デフォルトの名無しさん
垢版 |
2021/03/10(水) 16:08:24.87ID:GqqrwlDC
v, w, x, y, z がそれぞれ異なる正の整数のとき
w**5+x**5+y**5+z**5 == v**5
となる組み合わせを少なくとも一つ求めよ
2021/03/10(水) 16:22:37.31ID:0u7vUNCE
なんだ、宿題か?
2021/03/10(水) 16:23:30.00ID:lzgXzAQZ
>>897
foo = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
bar = OrderedDict(foo)
bar.move_to_end('key3', False)
dict(bar)

面倒くさいな
順序が重要ならdict以外のデータ型を使ったほうがいい気がする
2021/03/10(水) 16:49:13.04ID:c62Azmpw
>>900
見た目を整えるのが目的でした
即レス感謝
902デフォルトの名無しさん
垢版 |
2021/03/10(水) 18:12:14.02ID:AEQd0qwX
>>898
これでも回して一生PCの前で待っていなさい

import itertools
for w,x,y,z,v in itertools.product(range(1,10**100),repeat=5):
__if w**5+x**5+y**5+z**5==v**5:
____print(w,x,y,z,v)
____exit()
903デフォルトの名無しさん
垢版 |
2021/03/10(水) 23:15:16.74ID:PBvGnBXn
>>892
904デフォルトの名無しさん
垢版 |
2021/03/10(水) 23:41:14.94ID:PBvGnBXn
>>897
>>> a = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
>>> b = {'key3': 'val3', 'key1': 'val1', 'key2': 'val2'}
>>> b == {k: v for k, v in (a.popitem(), *a.items())}
True
905904
垢版 |
2021/03/11(木) 04:51:26.59ID:yhTUIDNA
これたぶん、順番かんけいなくa==bはTrueになるわ
気になって目が覚めたけど布団からでられんくて試せん
906デフォルトの名無しさん
垢版 |
2021/03/11(木) 08:15:22.35ID:DSKl5Aml
3.7以降は挿入順が保証されてるんだけど、equal判定には影響しないと。
まあ当たり前だわな。
907デフォルトの名無しさん
垢版 |
2021/03/11(木) 12:00:04.88ID:PA9WWZGA
>>902
できた
27 84 110 133 144
27 84 133 110 144
27 110 84 133 144
27 110 133 84 144
27 133 84 110 144
27 133 110 84 144
thx
exit()してるのにw固定の分だけ6個出力されるのはなぜ?
2021/03/11(木) 19:42:04.74ID:uFIDt3HD
>>904
恥を忍んで聞きたいのだけど、
b == {k: v for k, v in (a.popitem(), *a.items())}
この一行を内包表記を使わないで書いてください
2021/03/11(木) 20:29:28.00ID:dIdzHpoo
>>908
右辺は空のディクショナリにfor文で要素を追加していくだけやで
でも式で表現できないから左辺との比較演算したいなら関数化する
910デフォルトの名無しさん
垢版 |
2021/03/11(木) 20:38:25.36ID:yhTUIDNA
>>908
比較演算は無視してください

c = dict()
for k, v in (a.popitem(), *a.items()):
____c[k] = v
2021/03/11(木) 20:51:30.67ID:/anLXWSZ
pysideのデザイナでフォームを作っていますが、実行すると全然デザイン通りの表示になりません
コントロールが全部サイズが小さくてつぶれてしまいます
なにが原因なのでしょうか?
2021/03/11(木) 20:56:38.32ID:uFIDt3HD
>>909
>>910
おお、ありがとうございます!
913デフォルトの名無しさん
垢版 |
2021/03/11(木) 21:01:03.02ID:yhTUIDNA
順序比較
result = map(lambda x, y: x == y, c, b)
print(all(result))
# True
914デフォルトの名無しさん
垢版 |
2021/03/12(金) 16:52:36.03ID:vwXIO5A5
すみません。
全く単純なことだと思いますが、教えて下さい。

dataflameの任意の列のデータからvalue_countsを取得しました。

kosuu = df.iloc[:,i].value_counts()
print(kosuu)

とすると
30000 4
34000 1
とkosuuに取得されています。

この後に4とか1を条件にしたいのですが、個別の取得方法が
わかりません。的外れかも知れませんが、30000と34000は

print(kosuu.index[0])
print(kosuu.index[1])

で取得できました。
print(kosuu.index[0,0])
print(kosuu[0,0])
ではダメでした。どうすれば4を取得できますか。

初歩の初歩だと思いますが、これで4時間悩んでいます。。。
2021/03/12(金) 17:29:35.68ID:U+iRPjP4
>>914
kosuu[30000]
2021/03/12(金) 17:33:39.40ID:mFuSaP0f
>>914
ttps://note.nkmk.me/python-pandas-value-counts/
>ユニークな要素の頻度(出現回数)
あたり?
2021/03/12(金) 17:39:53.55ID:ARhDJoUM
出た、頑なに目次を拒む、nkmk
918デフォルトの名無しさん
垢版 |
2021/03/12(金) 17:54:04.00ID:vwXIO5A5
>>915 様 916 様 ありがとうございます。

なるほど、要素をネストすれば行けるんですね。

kosuu.index[0] が30000なので

print(kosuu[kosuu.index[0]])
とすると、4が無事取得できました!

うれしいですが、こんな感じでやるしかないんでしょうか。
ちょっと不格好というか、わかりにくいというか。。。

でも、取得できればOKなので、ありがとうございました!
5時間ぶりに前に進めます。(汗)
2021/03/12(金) 21:39:39.45ID:U+iRPjP4
>>918
えーと、何番目の要素なのかを指定したいならkosuu.iloc[0]とかkosuu.iat[0]で

>この後に4とか1を条件にしたいのですが
4とか1とかを条件にして何をしたいの?
個別に値を取得しなくてもSeriesやDataFrame全体に関数を適用すればいいケースだったりしない?
2021/03/13(土) 02:36:31.64ID:dVxhbFOW
>>914
さくっとサンプル作ったけど、そんなややこしい事しなくてもでも良いぞ
https://ideone.com/HPzh9Q

とりあえずデータフレームでの条件抽出の方法と
at、iat、loc、ilocの使い方を調べた方が良い
2021/03/13(土) 12:14:55.82ID:zsUlOpNh
>>920
がんがってるところあれなんだが
>>919への応答いかんによっては
役に立たない可能性がががが
2021/03/13(土) 16:49:49.59ID:VVi6+nr1
day name
23 orange
25 apple

のようなdfがあったときname列の0行目を取り出すにはどうすればいいのでしょう?
(列は名称、行は番号で取り出ししたいのです)

fruit = df.loc[0,'name']
だとエラーが出ます
2021/03/13(土) 16:55:46.85ID:JM8M9JoF
df[‘name’][0]
2021/03/13(土) 18:06:52.77ID:VVi6+nr1
>>923
ありがとうございます
でもなぜかエラーが出ます
2021/03/13(土) 18:10:21.60ID:VVi6+nr1
df.loc[0,'fruit']



df=df['fruit']
df.iloc[0]

って等価ですよね?
上だとエラーが出たり出なかったりして
下だとエラー出ません

なんでなんだろう・・・?
2021/03/13(土) 18:50:34.59ID:zsUlOpNh
>>925
上と下は違う
違うものだから
結果も違う
2021/03/13(土) 21:02:13.75ID:vHT18lcc
「でもなぜかエラーが出ます」

エラーが出てるのに、なぜかエラーの原因を調べようとしないんです

なんでなんだろう・・・?
2021/03/13(土) 21:20:14.43ID:4CH/cwMq
そりゃ自分の貴重な時間よりヒマそうな人物の無駄だろう時間を活用する方が大事だろ?
これは代弁だよ代弁
2021/03/13(土) 21:29:00.56ID:4CH/cwMq
エラーの原因を自力で調べられない、もしくは調べても分からないなら
エラーを再現できる最小限のコードを提出した上で原因を質問しろ
2021/03/13(土) 21:30:02.70ID:4CH/cwMq
ID被ったな
久しぶり
2021/03/13(土) 21:40:33.72ID:4CH/cwMq
本当かよ
もう一人の俺とかじゃないのか?
2021/03/13(土) 21:46:03.14ID:Gs819GmX
♪なんてったってID
私のID (Your ID)
IDがかぶったね〜
(さぁ みなさんご一緒にー)
yeah! yeah! yeah!
2021/03/13(土) 21:58:35.47ID:w/+LKebv
「ID被るなんてあり得ない!自作自演だ!」って言い張る奴いるよね。
IPv4足りなくて使い回してるのに。
2021/03/13(土) 22:07:13.12ID:UzHIdvoy
そんな必死にならんでもいいんじゃ>>928-933
2021/03/13(土) 22:48:19.33ID:SFW0yXgo
クソやろうの代わりにデバッグするとか世の中で一番腹立つ作業じゃん
2021/03/13(土) 22:48:23.65ID:qg8nW91/
IDが被ることなんてよくあるけど>>928の次のレスでいきなり被るなんてまず無いだろ

機内モードを押し忘れた対立煽りの馬鹿って線が濃厚だねぇ〜w
2021/03/13(土) 22:49:52.53ID:qg8nW91/
>>933は機内モード押した後に悔しくて書いちゃったかな?w

ID:4CH/cwMqが出てこなけりゃ俺の推理が当たってることになっちゃうねぇ〜w
2021/03/14(日) 00:36:31.97ID:BO4xF2Qh
>>931
枝状分岐宇端末点の自分だよ。
僕と契約して、ジアースのパイロットになってよ
2021/03/14(日) 17:45:37.15ID:GC71EGyC
0と1で構成された、2xNの配列で0と1の境目の位置を求めたいのですが、
for文でN列までループさせ、N-1とNを比較、0と1の境目になっていたら、
2行目も境目になっているかを同様に確認して境目を確定させるしかないでしょうか

0010111111
0000111111
     ↑3列目ではなく、5列目の位置を知りたい
2021/03/14(日) 17:52:30.82ID:eeLePgm1
うーん、何がしたいのかよく分からん。
物凄く簡単なことを複雑に表現している気もしないでもない。
2021/03/14(日) 18:07:15.51ID:UOoBKmpX
>>939
文字列なのか、正数の2進数表記のことなのか、何を言いたいのかわからん。
ビットのアンドを取ればいいとかいう話ではない?
2021/03/14(日) 18:07:42.69ID:NVyYwYtr
>>939
0010111111
0000011111
↑これだと該当なし?

0110110111
0000011111
↑これも該当なし?

0110111111
1100011111
↑これも該当なし?

0010111111
0100011111
↑これだと3列目?
2021/03/14(日) 18:36:11.15ID:eeLePgm1
>>939

文章をそのままコードに落とすとこんな感じになると思うけど…

N = 10
arr = [[0,0,1,0,1,1,1,1,1,1],[0,0,0,0,1,1,1,1,1,1]]

x = -1 # 見つからなかった場合
for i in range(N-1):
  if arr[0][i] != arr[0][i+1]:
    if arr[1][i] != arr[1][i+1]:
      x = i+2
      break

print(x)
2021/03/14(日) 19:05:19.92ID:8bm6cw7M
>>941
ゼロとイチの境界なら1bitシフトしてXORすればいいけど
2行分をどう扱いたいのか分からない。
2021/03/14(日) 19:24:51.81ID:0UiyZ0sn
hoge = [[a,100],[b,50],[a,200],[a,50],[b,3]]
みたいな感じの二次元のリストの各要素の一番目の要素で昇順にソートして
さらに一番目の要素が同じどうしは二番目の要素を見て降順に並べたいのですが
うまくできる方法をお教え願います

hoge = sorted(hoge, key=lambda x: (x[0],x[1]),reverse=True)

のように書いたり試してみましたが両方とも降順になってしまいます。
2021/03/14(日) 19:31:02.77ID:eeLePgm1
hoge = sorted(hoge, key=lambda x: (x[0], -x[1]))
じゃ、ダメ?
2021/03/14(日) 20:08:58.23ID:GC71EGyC
>>940,941,942さん
すみませんわかりづらく・・・

943さんのコードがまだ読み溶けていないのですが、
おそらくそれになっているかとおもっていて、01の並びは配列の意味で書いていました。
1行目と2行目の値が同じ列で初めて1になる列位置が知りたい意味でした。
[[0,0,1,0,1,1,1,1,1,1]、
[0,0,0,0,1,1,1,1,1,1]]
2021/03/14(日) 20:17:47.87ID:7GI/Bfny
p=[0,0,1,0,1,1,1,1,1,1]
q=[0,0,0,0,1,1,1,1,1,1]
for i, (x,y) in enumerate(zip(p,q)):
__if x==y==1:
____print(i)
____break

内包表記でpとqの和を取ってindexで検索したほうが速い気がする
2021/03/14(日) 20:27:29.09ID:0UiyZ0sn
>>946
できました。ありがとうございました!
950デフォルトの名無しさん
垢版 |
2021/03/14(日) 20:27:54.91ID:Y6CmRV5p
こんなモンが欲しいのかと思った
https://ideone.com/q2rCBm
2021/03/14(日) 21:00:32.45ID:NVyYwYtr
>>947
0から1に切り替わってる箇所は対象だけど
1から0に切り替わってる箇所は対象外ってことなのか

def foo(arr):
__for i, pair in enumerate(zip(arr[0], arr[0][1:])):
____if pair == (0, 1) and (arr[1][i], arr[1][i+1]) == (0, 1):
______return i+2

4つの値を確認しないといけくてビット演算で簡略化できそうにないので
O(n)でやる以外にはないんじゃないかな
2021/03/15(月) 03:21:26.79ID:p7hcxdJK
プログラム組んでいるんだけどさあ
一週間で出来ないとモチベが下がってそのまま放置になること多いんだよな、、

自分が楽をするためが動機だから、もういいわ!ってなる
2021/03/15(月) 08:40:22.27ID:fwcCfhlr
そういうなやみは板違いだな
2021/03/15(月) 10:49:08.64ID:A7Nxi+Hm
設計が終わったら脳内では不具合無く動いてるから満足してしまうよな
2021/03/15(月) 10:54:19.57ID:EoZWZldm
実際にちゃんと動いているのを見たら満足するよ
2021/03/15(月) 11:05:59.67ID:Cx70J+M+
自分の過去作のゴミ設計の無駄を探して再設計するの好き
2021/03/15(月) 11:11:24.43ID:FrmPLjBr
雑に書いた手続き型のプログラムをオブジェクト指向で書き直して自己満足することはよくあるけど
ぶっちゃけ個人開発なら手続き型で十分だよな
2021/03/15(月) 11:59:51.90ID:G5zjQeOc
スケベみたいな継続的なモチベがいるんだよな
2021/03/15(月) 12:06:27.25ID:JMxBUfb9
手続き型(Imperative)の反対は宣言型(declarative)だぞ。
手続き型かどうかはオブジェクト指向かどうかとまるで関係がない(直交する)
CもC++もC#もJavaもJavaScriptもPythonもPHPもGoもRustもみんな手続き型。
Prolog属などが宣言型。
Prologはパフォーマンス上カットなどの仕組みがあって純粋な宣言型ではないが。
数理証明系のドマイナー言語には純粋な宣言型のものもあるとか。
メジャー言語はほぼ100%手続き型。
HTMLやCSSはプログラミング言語ではないので除く。
たまにメジャー言語で宣言的に書けるのがどうのこうのという話が出てくるが宣言「的に」って言ってる時点で気づこうな。
2021/03/15(月) 12:27:55.07ID:OEM1rmYt
手続き型プログラムってProcedural programming(procedure:手続き)だと思ってたけど。
厳密には手続き型とオブジェクト指向は対義ではないけど、
「関数を呼び出す」っていう手続き型の根本的な構造の限界に対して
オブジェクト指向がもてはやされてきた歴史があるから、あながち間違いではないと思う
2021/03/15(月) 12:35:01.36ID:EubElJsa
一生COBOLでも使っていろ
2021/03/15(月) 13:31:40.79ID:fwcCfhlr
>>956
わかるw
2021/03/15(月) 14:14:35.81ID:DXCJp1HT
正確にはimperativeは命令型。
その反対が宣言型(declarative)。
手続き型(procedural)は命令型(Imperative)の派生概念。
手続き型であれば必ず命令型である、という関係。
よく同義語として用いられがちだが、ブロックもスコープも備えていない言語は命令型言語であると言えても手続き型言語であるとはふつう言わない。
ところがオブジェクト指向は手続き型言語の標準装備となってきている一方で宣言型言語にも取り入れることは可能なので、やはり直交概念ではないかと思う。
2021/03/15(月) 14:38:22.84ID:W4mhVG7e
1つのプログラミング言語が両方の要素を持ってることはよくあることだけど
手続き型プログラミングとオブジェクト指向プログラミングは直交した概念ではないよ
2021/03/15(月) 15:42:44.98ID:DJgBM63I
オブシコ
2021/03/15(月) 15:52:07.88ID:JMxBUfb9
クラス定義時はメソッドの中身は手続き書いてるし、
メソッドコール時はイチ手続きとして記述してるじゃん。
つまり手続き型にオブジェクト指向加えることも可能だし、加えないことも可能というだけで、オブジェクト指向だから手続き型じゃないというのは完全に間違っている。
これはCもC++もC#もJavaもJavaScriptもPythonもPHPもGoもRustもCommon LISPもObject PascalもSwiftもKotlinも同じ。
詭弁を弄してる暇があったら勉強するべき。
2021/03/15(月) 16:02:22.13ID:JMxBUfb9
オブジェクト指向だから手続き型じゃないというのは、
Qちゃんはピッチ走法だから走ってない
真央ちゃんはフィギュアしてるからスケーティングしてない
こう言ってるのと同じです。
修辞的にはありかとも思いますがね。
2021/03/15(月) 16:05:00.75ID:EubElJsa
XVIEW なんてC言語だがオブジェクト指向を
名乗っているぞ
2021/03/15(月) 16:08:14.29ID:W4mhVG7e
>>966
プログラムの中になんらかの手続きが書いてあれば
それらはすべて「手続き型プログラミング」と呼べるという定義ならそうかもね

一般的な定義とは違うけどそういう考え方があっても別にいいと思うよ
2021/03/15(月) 19:29:01.34ID:hStQFS2o
定義じゃなくてパラダイムだから
分類に使うと失敗する
2021/03/15(月) 19:42:13.68ID:EoZWZldm
>>969
一般的でない定義を考えるのは自由だが、他人との議論で使うなら事前にそう定義すると断って話を進めないと他の人は混乱するだけだろう
2021/03/15(月) 20:48:13.18ID:qjY4XCPb
>>971
本人が一般的な定義だと思ってるんだからどうしようもないだろ
やんわり指摘したレス見て自省すればよかったのにな
2021/03/15(月) 23:44:25.76ID:Po+lVn5y
関数型∩オブジェクト指向 とか、
宣言型∩オブジェクト指向 とか、
具体的な言語実装の例はあるのかな?
オブジェクト指向でよく言われるオブジェクト指向たりうる要素が直感的には
割と手続き型に依存してるような気がするが、あまり深く考えたことないのでよくわからん
2021/03/15(月) 23:49:07.06ID:Po+lVn5y
>>968
C言語でオブジェクト指向というのは普通にあるでしょ。gtkとか最たるものじゃん。
糖衣構文はマクロぐらいしかないかもしれないけど。
2021/03/15(月) 23:57:52.44ID:M0xOqYlK
>>973
関数型は参照透過性がメリットなのに
クロージャーとかやるとオブジェクト指向と同じじゃん。
2021/03/16(火) 00:11:33.94ID:g8baptpk
参照透過性のメリットを実感できない
2021/03/16(火) 00:12:31.36ID:NvntMOXY
>>973
手続きが含まれたら手続き型らしいから
関数が含まれてたら関数型
オブジェクトが含まれてたらオブジェクト指向なんじゃねーの
知らんけど
2021/03/16(火) 00:16:11.47ID:Y5UwQrqj
CでADT使ってればすぐオブジェクト指向って言うやつも大差ない
2021/03/16(火) 00:56:17.98ID:6YThIMgd
じゃあオブジェクト指向と関数ベタ書き比較する時はなんて言えばいいんだ?
2021/03/16(火) 01:36:57.64ID:giEPecL9
>>979
ADTのことを言ってるなら名前の通り"抽象型を使って書く"とでも言えば?

抽象型を使ってればオブジェクト指向?
2021/03/16(火) 02:01:29.83ID:WgCwoiox
定義で揉めやすいのは名前が悪いから
それぞれ手続き中心指向、オブジェクト中心指向、関数中心指向に脳内変換しとけばどうでもよくなる

それぞれ直交した概念でもなければ排他的な分類でもない
2021/03/16(火) 03:45:18.19ID:6arf77iJ
言語の方が複合的なパラダイムに対応していても覚える頭が1ビットしかないから其れだと困るねん
2021/03/16(火) 04:14:50.86ID:K4E4Nbs9
宣言型∩オブジェクト指向は実験的prolog拡張実装がいくつかあった気がする。
関数型はオブジェクト指向と相性悪いつか関数型勢からは唾棄すべき害悪として忌み嫌われてる印象。
世の中でオブジェクト指向といったら実質99%は手続き型∩オブジェクト指向だと思う。
C++以前から、smalltalkからこのタイプだもん。
2021/03/16(火) 04:15:37.06ID:K4E4Nbs9
>>983>>973 宛て
2021/03/16(火) 07:21:55.10ID:PfTIXkDh
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
2021/03/16(火) 07:22:43.55ID:lT7Xpsz1
>>974
時代が違うでしょw
2021/03/16(火) 10:37:00.38ID:xULngIlE
>>981
確かに「〜型」という言葉で1ビット二元思考になるやつが多いのかも
「〜的」とでも訳しておけばよかったのに
2021/03/16(火) 11:20:57.40ID:XtVeGAkv
a = hoge()
a.hogeset(1)

こんな感じてコンストラクタと別メソッドで初期設定しなきゃいけないクソめんどい部品があるんたけど1行でやる方法ない?

a = hoge().hogeset(1)

イメージはこんな感じで書いてメソッド呼び出しつつ変数aにはオブジェクトhoge本体を収めたい(hogesetは何も返さない)
2021/03/16(火) 11:42:56.27ID:kT+EpOUV
>>988
そういうクラスを作ればいいだけじゃね?
990デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:25:58.91ID:ja5zi908
オブジェクトhoge本体
991デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:46:56.08ID:Zc215ysF
GUI部品でsetVisible(True)とかなら略しない方がいい
2021/03/16(火) 15:01:49.92ID:qZ3Xge1G
>>988
特に何もせず1行で書くのは無理じゃないかな

selfをreturnするようなデコレータを作って
各種set系のメソッドを上書きするか別名で定義してやれば1行で書けるようにはなる
やる価値があるかどうかは状況次第
https://techiedelight.com/compiler/?G6Nb
2021/03/16(火) 15:17:05.62ID:z+A8n8B9
3.8以降なら代入式でいいんじゃね
2021/03/16(火) 15:32:45.88ID:XtVeGAkv
>>991
わォエスパーかよちょっと違うけど
tkinterのボタン配置別メソでするのダルいんじゃあ〜

>>992
やっぱムリかぁ
でも2行で書くの負けな気がするから関数カマスことにしました (結局5行になってるのは知らない、たくさん置くし・・・。)
def my_hoge_create(param):
a = hoge()
a.hogeset(param)
return a

a = my_hoge_create(1)

>>993
めっちゃ興味あるけど3.5だからまた今度にするわ (進歩しないゴミ)
2021/03/16(火) 15:40:26.02ID:ZzxG4K64
>>993
えーこういうこと?
(a := hoge()).hogeset(1)

条件式とかの中ならありだと思うが2行でも書けるところに使うのは気持ち悪いな
2021/03/16(火) 15:57:44.34ID:RaDf8rd1
>>988
クラスメソッドでググれ
997デフォルトの名無しさん
垢版 |
2021/03/16(火) 17:09:12.14ID:CHhu1vGO
gzipか普通のテキストファイルかを名前で判別して読み込みたいんで下記のように書いてるんですが、read_fileがif/elseで2回出てくるのが冗長っぽいのでif/elseの後にread_file()をしようと思うとI/O operation closedとエラーが出ます。
with open後にインデント変えたので閉じられたたのかなと思うのですが、
gzipかそうじゃないかのファイルオブジェクトとやらをif文で決めた後に、1回の関数で処理するようなスマートな書き方出来ないものでしょうか?

現状
def read_file(f):
data = f.read()


name = 'hoge.txt.gz'
if '.gz' in name:
with open(name, mode='rt') as f:
read_file(f)
else:
with open(name) as f:
read_file(f)
2021/03/16(火) 17:24:18.02ID:Z3x27iQ0
mode="rt" if ".gz" in name else "r"
2021/03/16(火) 18:56:39.01ID:YZCX5YV2
func = gzip.open if name.endswith(".gz") else open
with func(name, mode="rt") as f:
read_file(f)
2021/03/16(火) 19:18:47.34ID:PfTIXkDh
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 66日 13時間 56分 22秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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