くだすれPython(超初心者用) その52【まず1嫁】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
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 ###
00073
垢版 |
2021/01/10(日) 16:07:06.76ID:dzQMColf
>>4
>>5
参考になりました
ありがとうございました
00083
垢版 |
2021/01/10(日) 16:08:47.20ID:dzQMColf
>>6
すいません、書き込んでる途中でした
ありがとうございました
0009デフォルトの名無しさん
垢版 |
2021/01/10(日) 16:15:43.93ID:8MUFuLES
msg[1:].splitlines()
0011デフォルトの名無しさん
垢版 |
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が実行される
0013デフォルトの名無しさん
垢版 |
2021/01/11(月) 18:12:10.62ID:emOMJ/kr
root.titleで指定してもウィンドウは開くけど開いた窓にタイトルがつかないのは何故ですか?
0014デフォルトの名無しさん
垢版 |
2021/01/11(月) 23:45:10.27ID:1PVtmv2H
>>12さん
ありがとございます。代入式というのがあるのですね
教えてもらった内容でうごきました
0015デフォルトの名無しさん
垢版 |
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') しようとしても関数が無いと言われるだろうな
0016デフォルトの名無しさん
垢版 |
2021/01/12(火) 20:07:58.41ID:Fas3JEHJ
先日初めてプログラミング言語を勉強し始めた初心者の者なのですがpipがダウンロード出来ずに困ってます
ネット色々と調べget-pip.pyというものをダウンロードしてコマンドプロントからダウンロードしてみたり環境変数から色々と触ってみたりはしていますがどれも全く上手くいきません
どなたか分かる方はいらっしゃいますでしょうか?
0018デフォルトの名無しさん
垢版 |
2021/01/12(火) 20:39:50.67ID:Fas3JEHJ
無駄でした
そもそも上でも書いてある通りpipがダウンロードされていないみたいなのでそれが出来ずに困ってます
0020デフォルトの名無しさん
垢版 |
2021/01/12(火) 23:16:53.74ID:RB03ab36
>>15
ありがとうございます。
いろいろ試してみたらChromebookの仮想環境だとなぜかタイトルがでなくてWindowsマシンだとちゃんとでるようです。
vscode使用tkinterは8.6のようです
0021デフォルトの名無しさん
垢版 |
2021/01/12(火) 23:19:13.27ID:RB03ab36
すみませんお騒がせしました。
ほかの標準ではいってるようなアプリもウィンドウタイトルでてないので多分Chromebook側の仕様ということで自己解決しました
0022デフォルトの名無しさん
垢版 |
2021/01/13(水) 16:36:12.00ID:zcsn6Lf0
リネーム処理はpowershellとpythonどちらがいいのでしょうか?
フォルダの先頭ファイルをフォルダ名としたいですが、powershellはマイナー言語なんでしょうか?あん
0023デフォルトの名無しさん
垢版 |
2021/01/13(水) 16:47:23.26ID:C+q6Ee0+
書きやすい方でいいのでは?あん
Pyhonにもpathlibを使えばパスの扱いは困らない
0025デフォルトの名無しさん
垢版 |
2021/01/13(水) 19:40:47.40ID:zwUHpXfQ
すいません。JavaとPythonはどっちが飯食えますか?
一番ラクに稼げる言語ってなに?

教えてエロい人
0027デフォルトの名無しさん
垢版 |
2021/01/13(水) 20:05:18.52ID:zcsn6Lf0
リネーム処理に一般的に使われるのはどっちなんでしょうか?
0029デフォルトの名無しさん
垢版 |
2021/01/13(水) 21:10:37.57ID:C+q6Ee0+
>>27
そこに拘る理由が分からん
「組み込みシステムに一般的に使われるのはどっちなんでしょうか?」とかなら向き不向きが分かれるが、リネームなんてピンポイントかつ些末な処理はどの言語でも普通にできるから
0030デフォルトの名無しさん
垢版 |
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 など、理系の大学院生だけ
0031デフォルトの名無しさん
垢版 |
2021/01/14(木) 00:07:19.97ID:hXZPMCaj
NG推奨ワード:
自社開発系
ベンチャー
Ruby
土方
YouTube
雑食系
KENTA
モロー
Rails
大儲け
マコなり
フリーランス
デイトラ
奴隷
サロン
香具師
大金
学校
理系の大学院
0033デフォルトの名無しさん
垢版 |
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
0034デフォルトの名無しさん
垢版 |
2021/01/14(木) 01:14:19.82ID:6VtHfWk2
>>30
キーワードに反応して定型文を返すだけのbot?
003530
垢版 |
2021/01/14(木) 02:04:47.93ID:9aZMy7Uh
2021/1/1

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

年収100万上げて自社開発企業に転職したらSESの営業がキレて大ゲンカした話
【オキテ破りのギリギリ転職術】
https://www.youtube.com/watch?v=CFs41De_KGw
0036デフォルトの名無しさん
垢版 |
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型にしてみたりもしたけと変わりませんでした
バグですかね?何かいい方法無いですか?
0037デフォルトの名無しさん
垢版 |
2021/01/14(木) 05:10:37.97ID:MIjftGny
>>29
powershellってマイナーなのかなと
0039デフォルトの名無しさん
垢版 |
2021/01/14(木) 08:33:20.05ID:5P4t3Lo7
『独習Python』という本に,

data1 = 'abc'
data2 = 'abc'

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

一方で,

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

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

普通は、同じ文字列かどうかの意味。
異なるインスタンスでも、同じ文字列なら等しいと考えるべき
0045デフォルトの名無しさん
垢版 |
2021/01/14(木) 15:07:09.78ID:kvGQqxiC
>>38
ありがとうございます
@使ったら普通に動きました

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

やりたい事としては2つのdfの単純な差集合を取りたいだけです
0047デフォルトの名無しさん
垢版 |
2021/01/14(木) 16:39:43.93ID:jX/4+uzK
50,000、5,000、500
こういうのをre.searchで正規表現を使って数字のみ抽出しようしてるんだけどうまく抽出できないのでどうすればいいか教えてください
0048デフォルトの名無しさん
垢版 |
2021/01/14(木) 16:43:03.97ID:poiifTN2
まずはカンマを除去する
次に、でsplitする
すると、文字列での数字が得られる
0051デフォルトの名無しさん
垢版 |
2021/01/14(木) 16:48:27.46ID:7visTOmZ
プログラミング覚える前にググり方覚えたら?
そのものズバリがすぐ見付かるだろ
0052デフォルトの名無しさん
垢版 |
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:みたいなエラーでるなんで・・
0054デフォルトの名無しさん
垢版 |
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/')
ってやったら取得できた
お騒がせしました
0055デフォルトの名無しさん
垢版 |
2021/01/14(木) 22:58:31.74ID:F1kErgCn
形がほぼ同じで、色合いだけ違うものを区別して認識させる方法ってありますか?
OPENCVでグレースケールとカラー両方試してみたのですが、色違いポケモンご認識してしまいます。
0056デフォルトの名無しさん
垢版 |
2021/01/14(木) 23:11:47.32ID:9/q933wG
>>55
形が同じだとわかってるなら、
どこの色をチェックすれば違いがあるかもわかっているだろう
たとえば全体をHSVにcvtColorしてH成分のヒストグラム作ってみるだけでもわかりそうなもんだけど
0057デフォルトの名無しさん
垢版 |
2021/01/15(金) 04:06:34.83ID:MomngUWn
ファイアウォールなどで、localhost を定義していない場合には、アクセスできない

その場合は、Local Loopback Address(127.0.0.1)でアクセスする
0059デフォルトの名無しさん
垢版 |
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
0060デフォルトの名無しさん
垢版 |
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
0061デフォルトの名無しさん
垢版 |
2021/01/15(金) 15:33:15.80ID:Dsfs083N
Pytorchのfor文内で定義した変数ってローカルスコープになるんだっけ?
VSCodeのpylanceでfor文の外で変数呼ぼうとすると未定義だって言われる
言語によってぐちゃぐちゃだからよくわからん
006357
垢版 |
2021/01/15(金) 22:17:32.59ID:MomngUWn
>>58
MySQL とか、色々なアプリで、localhost で接続できない場合がある。
その際、127.0.0.1 でアクセスできる場合がある

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

でもって
コンフィグでどうこうじゃなく、
自分がメモリ消費量が常になるべく小さくて済むコードを書く方がよっぽど大事なのでは
006959
垢版 |
2021/01/16(土) 21:48:07.22ID:ZDQmT4z0
>>60 >>62 ありがとうございます。
>>62のリンク先のでを動かせました。
0071デフォルトの名無しさん
垢版 |
2021/01/18(月) 16:36:30.63ID:twrlO24z
tecoganで動画をモザイク除去したいのですが、anaconda環境がいいのでしょうか?
0073デフォルトの名無しさん
垢版 |
2021/01/18(月) 17:07:18.04ID:twrlO24z
動画モザイク除去ってなんのライブラリがいいんでしょうか?tecoganだと情報がない
0075デフォルトの名無しさん
垢版 |
2021/01/19(火) 00:39:17.87ID:c8bXX+G9
if a in c or b in c:
この場合ってまずaとcの処理が行われてマッチした時点で後ろの処理はせずに終了という認識でおk?
0076デフォルトの名無しさん
垢版 |
2021/01/19(火) 01:38:53.83ID:JZy8vN9I
>>75
orがショートサーキットで評価されるかということならYes

a in c でaが見つからなければcが2回評価されるので
cの内容次第では違うやり方にしたほうがいい場合がある
0078デフォルトの名無しさん
垢版 |
2021/01/19(火) 19:26:26.07ID:2duJ8/9a
if set(a, b) & set(c):
0080デフォルトの名無しさん
垢版 |
2021/01/19(火) 20:35:10.89ID:61lQZe/N
>>79
if文のinは面白いねえ
0082デフォルトの名無しさん
垢版 |
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’
0083デフォルトの名無しさん
垢版 |
2021/01/20(水) 02:56:28.38ID:gpV/4NvU
う動くif文のがこわいよね
そのまま動いてて何ヶ月か後に実は意図した条件をすり抜けていたとか気づいたりすることも…
0085デフォルトの名無しさん
垢版 |
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
0086デフォルトの名無しさん
垢版 |
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やソフトは同一です。
何か落ち度や見落とし、情報不足などありましたらご指摘いただけますと幸いです。
0087デフォルトの名無しさん
垢版 |
2021/01/20(水) 13:33:20.05ID:2iI7lLvp
cd /usr/local/lib/python3.6
ln -s /home/user/.local/lib/python3.6/site-packages
動的にパス設定してるなら
これで動きそう
0088デフォルトの名無しさん
垢版 |
2021/01/20(水) 13:57:28.87ID:2siInrr2
>>87
ご教示ありがとうございます。
が、ダメでした。
lnで作った/usr/local/lib/python3.6/site-packages
をdist-packagesにリネームしたりもしましたが、やはりModuleNotFoundErrorです。すみません。
0089デフォルトの名無しさん
垢版 |
2021/01/20(水) 16:36:15.29ID:sOzWFlEJ
/home/ユーザー名/.local/lib/python3.6/site-packages

のディレクトリ/ファイルのアクセス権の制限とかは?
0090sage
垢版 |
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
で、所有者&グループはこのユーザーディレクトリのユーザー(動いている環境も同様)でした。
0091デフォルトの名無しさん
垢版 |
2021/01/20(水) 17:41:53.77ID:rAY+15bx
>>86
PyTorchじゃないけど、pywin32とかで必要なダイナミックリンクライブラリが揃ってないときに、
DLLロードエラーが最終的にModuleNotFoundErrorになったのをこないだ見た。
コンソールにはライブラリ読み込み失敗とか出てるような気がするので、コンソールをもっと詳しく見てみては?
パッケージのダメな箇所をどんどん特定していってなんのライブラリ読み込み失敗してるか掘ってみていかないとダメかもしれないけど。
0093デフォルトの名無しさん
垢版 |
2021/01/21(木) 00:23:44.08ID:FkznapS6
python 3.8をインストールしコマンドプロンプトから起動
pipでライブラリをインストールしようとしましたが、

NameError: name 'pip' is not defined

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

ではなくて

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

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

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

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

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

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

ここは成功、ここは失敗と、
何か、切り分けないといけない
0100デフォルトの名無しさん
垢版 |
2021/01/21(木) 13:26:03.84ID:k/PIK3fQ
>>96
>>97
チュートがあんまりないんですおよね、、、
ganの基礎からやるといいんんですか?
0102デフォルトの名無しさん
垢版 |
2021/01/21(木) 15:11:27.73ID:k/PIK3fQ
そこはスクレイピングで集める
しかしどうせgpuパワーが足りないんだろうと思うから手を出せない
opencvはaiなの?
0104デフォルトの名無しさん
垢版 |
2021/01/21(木) 23:04:38.02ID:6we7z88m
>>86
phpを動かしてるユーザーはapacheだから
他のユーザーのsiteは指定しようが見れないってことじゃ
自分用のpythonと別に考えたほうが面倒がなくていい
自分のホームディレクトリにインストールされてるから
それはlinuxのディストリビューションの管理から離れてるんだろ
0105デフォルトの名無しさん
垢版 |
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の検索ボックスが開いてしまいお手上げでした
0106デフォルトの名無しさん
垢版 |
2021/01/22(金) 06:14:45.85ID:/SiZ9IrX
>>103
ganのいいチュートありますか
0107デフォルトの名無しさん
垢版 |
2021/01/22(金) 07:28:49.93ID:Qv7cR1ei
当該ページの要素を取得して特定ワードをテキストとして含んでるならそこにスクロールさせればいいだろ
検索ボックス使う必要がない
0108デフォルトの名無しさん
垢版 |
2021/01/22(金) 13:47:44.95
Google Colaboratory便利すぎる・・
docker然りこんなのもう自分のPCにpythonインストールする意味ないじゃん。。
0111デフォルトの名無しさん
垢版 |
2021/01/22(金) 18:07:48.05ID:ZQEfkoyS
シンボリックリンクやファイルコピーは環境構築方法としてはかなり微妙じゃない?

権限の問題だと思うからまずはそれを確定させて
PHP実行ユーザー向けの環境構築をpip使ってできるようにしたほうがいい気がする
権限の問題かどうかはPHP exec経由でファイルの中身が読めるかどうかでわかる
0112デフォルトの名無しさん
垢版 |
2021/01/22(金) 19:58:48.45ID:ucotd9u3
>>107
回答ありがとうございます
なるほど
ただ、ちょっと具体的なイメージが浮かばないのでもう少し詳しい方法を教えていただけないでしょうか
011485
垢版 |
2021/01/22(金) 22:36:26.16ID:1dyqdMu0
85です。もろもろレスありがとうございました。
まず結論ですが、PyTorchをimportできるようになり推論結果も出力されました。
皆さまのレスを総合すると、パスを通そうがApacheからユーザーディレクトリは見えない・アクセスできない。
に集約されると考え、pipの-tオプションで/usr/local/lib/python3.6/dist-packagesを指定してPyTorch
をインストールしたら成功しました。
セキュリティ関係含めここにブチ込んでいいものか所有者やパーミッションはこのままでいいのかなどこれから詰めますが、取り急ぎご報告まで。
皆さまのレスがなければ詰んでました。本当にありがとうございました。
0117デフォルトの名無しさん
垢版 |
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:

下に続きます
0118デフォルトの名無しさん
垢版 |
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:

次が最後です
0119デフォルトの名無しさん
垢版 |
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'))

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

headers = {'Accept-Encoding': 'gzip'}
0122デフォルトの名無しさん
垢版 |
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()
0123デフォルトの名無しさん
垢版 |
2021/01/23(土) 00:45:47.09ID:84i3Suj7
>>120,121
ありがとうございます
gzipは初耳だったので調べている途中でしたが、'identity'の方で解決できました!

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

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

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

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

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

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

x=(3,4) # ok

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

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

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

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

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

どのレベルを求めているかわからないと
回答のしようがないな
0144デフォルトの名無しさん
垢版 |
2021/01/24(日) 10:08:13.49ID:r5Iz9DtC
アイドルの画像なんですが、まず画像のまえにリストを作成したいです
そのリストを参考に集めていく感じ
雑誌名と発売日などのリストを作る方法ありますです?
手作業が一番かな
0145デフォルトの名無しさん
垢版 |
2021/01/24(日) 11:08:43.25ID:wSlEv8S7
>>137
アホか
いつの時代の話だよ
0146デフォルトの名無しさん
垢版 |
2021/01/24(日) 18:37:17.09ID:7biDvLeQ
テキストファイルに文字列が存在するかの判定について一番単純(≒記述が単純or無駄が少ないor最速or低コスト)な方法はなにがありますか?
行番号や該当行を取得するなどは必要でなくて、ただ含まれているかどうかだけ真偽値や検索結果が0とかで判断できればいいです
0147デフォルトの名無しさん
垢版 |
2021/01/24(日) 18:48:29.98ID:3sIGrLL8
>>146
少なくとも↓くらいは書かないとどうしようもない
・通信資源CPUメモリHDD コスト高い順に並べろ
・どのくらいのサイズのテキストと、どのくらいのサイズの文字列なんだ
・2バイト文字の有無
・エンコードは何か
0149デフォルトの名無しさん
垢版 |
2021/01/24(日) 19:29:02.36ID:1RNIc9lC
記号もスペースも文字ではないという判別をしながら
1文字ずつ見ていって文字が2回続けば文字列発見
0151デフォルトの名無しさん
垢版 |
2021/01/24(日) 20:00:38.02ID:++e8Ymxx
競プロ形式で質問してくれればわかりやすいんだけどな。プログラミングに限らず日常生活でも。
何を材料に何を出力すればいいかを明確にしてほしい(機械脳)
0156デフォルトの名無しさん
垢版 |
2021/01/24(日) 21:06:52.04ID:3sIGrLL8
>>155
で、そのテキストファイル、
無限に肥大させてくつもりなの?
ばかなの?
ちぬの???

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


>>151
せやせや
0158デフォルトの名無しさん
垢版 |
2021/01/24(日) 22:03:08.11ID:7biDvLeQ
>>156
ひとまず一通り組み上げてみたかったので>>155の方法を考えました
現時点ではそうなりますが、普通の人はどのような実装をすることが多いのですか?

>MD5
こちらではMD5でググると一致する情報が見つからなかったため本文をどうにかするのを諦めましたが、
そちらではなにか見つかりますか?
0159デフォルトの名無しさん
垢版 |
2021/01/24(日) 23:58:55.03ID:A3BXsN94
>>146
典型的なオートマトンの問題だな
一番最初の文字がヒットするまでファイルを1文字ずつ見ていく、ヒットしたら2文字目以降もヒットするか確認
計算量は最悪のケースでO(mn)
0160デフォルトの名無しさん
垢版 |
2021/01/25(月) 01:05:15.62ID:rfwZrgZs
簡単に処理済のURLのリストがほしいなら処理したやつをsetにポンポコ突っ込んでいくのが簡単かな
メモリに乗らなくなったらソートとか分割とかして保存すればいいんじゃないかな
0162デフォルトの名無しさん
垢版 |
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万回判定できないと困るようなら別だけど
0164デフォルトの名無しさん
垢版 |
2021/01/25(月) 10:58:10.58ID:+q31tGtg
>>155
そのスレッドに、上半分を投稿して、NGなら、また半分に分割して投稿する。
もし上半分がOKなら、下半分がNGだから、下半分をさらに半分に分割して投稿する

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

宣伝に書きそうな単語は、cost かな?
0166デフォルトの名無しさん
垢版 |
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) #そもそもこんな感じで書けるのか?
0168デフォルトの名無しさん
垢版 |
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)
0169167
垢版 |
2021/01/27(水) 11:51:12.24ID:McyrI0oe
返信ありがとうございます.
>168
どこ見たらよいですか?
>169
速度は気にしません.
Zのインデックには整数入れろって言われました.
あと,XとYの2つでループ回すんですか?
0170デフォルトの名無しさん
垢版 |
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)
0171デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:45:47.56ID:cJSBZXf9
ああ
len(X) は range(len(X))
len(X[0]) は range(len(X[0]))
0172デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:49:53.43ID:FiwaqU44
opencvではモザイク消せる?
水着を塗りつぶすところまではいけるだろうけど、その先よ
0173デフォルトの名無しさん
垢版 |
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
0175デフォルトの名無しさん
垢版 |
2021/01/27(水) 13:53:13.78ID:cJSBZXf9
>>172
禿しく概出
0176デフォルトの名無しさん
垢版 |
2021/01/27(水) 16:17:43.97ID:sCjAqXlj
ブラック企業で統合失調症になり、5年以上働けていません
一日11時間くらいベッドにいます
この言語を必死でマスターしたら、在宅ワークの仕事をいただくことは出来るでしょうか?
一日1000円でいいので稼ぎたいです
お金よりも、作業に慣れて仕事復帰への足がかりにしたのです
0179デフォルトの名無しさん
垢版 |
2021/01/27(水) 18:22:32.77ID:sCjAqXlj
>>177
37歳の時にブラック企業で発狂して、5年経って42歳です

>>178
ありがとうございます
時間のある時に見てみます
0182デフォルトの名無しさん
垢版 |
2021/01/27(水) 18:58:06.58ID:sCjAqXlj
失敗しました
ここはプログラム板でしたね
プログラマー板というのがあるというのは今知りました
0185デフォルトの名無しさん
垢版 |
2021/01/27(水) 22:48:55.98ID:nyJ4kTty
windowsでpythonをインストールしたのですが、pyコマンドを使うと

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

と表示されます
どうすればpyコマンドを使えるのでしょう?
0189デフォルトの名無しさん
垢版 |
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コマンドで成功しているのですが、なぜでしょうか?
0190デフォルトの名無しさん
垢版 |
2021/01/28(木) 00:01:38.67ID:xWgdnw0/
以前環境設定したときは何の問題もなくSklearn使えたのですが、
今回はなぜかインストールしてもimportできない・・・
0191デフォルトの名無しさん
垢版 |
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)
0192デフォルトの名無しさん
垢版 |
2021/01/28(木) 00:20:16.87ID:V1xLv34X
where pip
where python
を比較するといいかも
違う場合は、pipコマンドは違うところにインストールしちゃってる
python -m pip install sklearn
でpythonコマンドのあるところにpipモジュールが入れてくれるので、この方法が一番おすすめ
0193デフォルトの名無しさん
垢版 |
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できないんだろ???
0195デフォルトの名無しさん
垢版 |
2021/01/28(木) 00:46:08.58ID:jix62l8F
>ImportError: cannot import name '__check_build' from 'sklearn'

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

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

本当にありがとうございましたm(_ _)m
0197デフォルトの名無しさん
垢版 |
2021/01/28(木) 10:51:34.67ID:dNWrUHbO
カレントディレクトリとかに変なもの置いてるパターン
0206デフォルトの名無しさん
垢版 |
2021/01/29(金) 16:38:16.71ID:5pIDnM+S
ORMが使いやすいとは思えない
0208デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:13:11.27ID:EWZvTk3z
曖昧な質問をすれば曖昧な回答が返ってくる仕様
ただそれだけのこと
0209デフォルトの名無しさん
垢版 |
2021/01/30(土) 12:37:54.78ID:SLqQC90z
禿丸エディタ。
0210デフォルトの名無しさん
垢版 |
2021/01/30(土) 16:01:53.04ID:9ArkaPud
https://i.imgur.com/RefLq9E.png

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

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

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

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

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

皆さんはコードを紙に書いてますか?
youtubeやぐぐっても頭に貼らなくて・・・
0235デフォルトの名無しさん
垢版 |
2021/01/31(日) 18:53:38.01ID:ztsWDMWg
.

            ,.:::.⌒⌒:::::ヽ
            (::::::::::::::::::::::::::::)
           (;:::::::::::::人:::::::::::ノ
           (::: (´・ω・`):ノ またヅラの話してる...
             (|   |)::::
              (γ /:::::::
               し \:::
                  \
0236デフォルトの名無しさん
垢版 |
2021/01/31(日) 18:57:28.47ID:WemMLUTq
>>234
実際にパソコンで入力して動かしてみないと身に付かないよ。
ついでに言えばyoutubeとかググって見つける断片的な情報で理解するのはよほど理解力があるかすでに基礎がちゃんと身に付いてる人くらいだから、面倒がらずにちゃんと入門書か入門者向けサイトとかで体系的に学んだ方がいいぞ。
0238デフォルトの名無しさん
垢版 |
2021/01/31(日) 20:59:40.49ID:qx1o6j8f
どのサイトのデータスクレイピングしてるのか知らんけど規約的にOKなサイトなんだろうか
違法の物を売ってるってことは流石にないか…
0239デフォルトの名無しさん
垢版 |
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()
0243デフォルトの名無しさん
垢版 |
2021/02/01(月) 00:14:19.87ID:z41PbL1f
>>223
何故それを危惧するのか分からん
「にわかが機械学習目的でpythonに大量流入していてけしからん」としか読めないが
0245デフォルトの名無しさん
垢版 |
2021/02/01(月) 02:13:42.29ID:raodPEZB
>>243
ユーザーの質が落ちていくからだよ
Pythonは低レベルユーザーが使う言語という認識が広まるのは
決して良いことではない
0246デフォルトの名無しさん
垢版 |
2021/02/01(月) 02:32:01.34ID:CsFMKFd2
Pythonに求められてる事なんて簡単に書ける事と
それこそライブラリプレイヤーとしての機能くらいなんだし別にいいだろ
所詮スクリプト言語だぞ
0248デフォルトの名無しさん
垢版 |
2021/02/01(月) 05:56:37.03ID:nEaLvYMA
言語を使う人の質を気にするなら関数型みたいなオタク言語使ってればいいじゃん
ユーザの質()は上がるんじゃないのw
0249デフォルトの名無しさん
垢版 |
2021/02/01(月) 06:27:02.10ID:iI5pUuOE
訳:「pythonはわたくしのような意識の高い選民が使うものなんだから現生の利益だけを求める愚民は寄ってくるな」
0251デフォルトの名無しさん
垢版 |
2021/02/01(月) 08:40:37.01ID:hLj49IWK
>>240さん
ありがとうございます
それ以外の方法ってないでしょうか、、できれば他にも流用できる関数としたくて、引数で使いたいなと思ってます
0253デフォルトの名無しさん
垢版 |
2021/02/01(月) 13:50:44.44ID:upKfiVZv
只でさえ型が緩いpythonに素人が押し寄せた結果、Qiitaには大量の糞記事だけが投稿される惨状に感じることは少なくはない。のはおれだけじゃないはず
0255デフォルトの名無しさん
垢版 |
2021/02/01(月) 14:20:58.61ID:fos4FOVO
>>245
javascriptもPHPもC++も低レベルユーザー多いぞ
0256デフォルトの名無しさん
垢版 |
2021/02/01(月) 15:00:37.83ID:3cmRi5lu
だから何?って言う。。
スルー出来ないおまえが低能なだけ
どんな言語・ジャンルにも低レベルなのは居る
0257デフォルトの名無しさん
垢版 |
2021/02/01(月) 16:21:33.73ID:o+igF3HP
糞記事というか似通った生地が多いのはあるな
適当なライブラリでググって上のほうにあるサイトの書き方とどれも同じとか
別に変数とか順番とか決まってるわけでもないのに、みんな上のほうにあるサイトを教科書代わりにして書くから、結果それが決まった定型のような扱いになるパターン
ソース見たら意外と便利な関数とかあって、それでググったら日本語サイト一切ひっかからなかったり
0258デフォルトの名無しさん
垢版 |
2021/02/01(月) 16:59:40.21ID:fos4FOVO
-sejuku は毎回NG指定してる
0259デフォルトの名無しさん
垢版 |
2021/02/01(月) 18:47:53.12ID:FgV6dnQe
関数内で呼び出すexecをグローバルコンテキストで
実行させるには第2引数に何を与えれば良いですか?
def func():
 exec(“a=1”, ???)
0263デフォルトの名無しさん
垢版 |
2021/02/01(月) 20:09:05.13ID:M+MnQ84M
>>253
上級者()ならqiitaに求める情報はないやろ
stackoverflowでも読みな
0264デフォルトの名無しさん
垢版 |
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)だとしっかりできるのかが謎で
一つ一つ根本が知りたい
0266デフォルトの名無しさん
垢版 |
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)には特に記載ないのだけれど、わりとぶち当たる問題ですよね。
0269デフォルトの名無しさん
垢版 |
2021/02/01(月) 21:59:34.59ID:DEyQGLil
>>266
3.8$ pip freeze > requirement.txt
requirement.txtの中身を編集して
3.9$ pip install -r requirement.txt

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

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

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

こういうので、pyenv で、プロジェクト毎にバージョンを切り替える
0276デフォルトの名無しさん
垢版 |
2021/02/02(火) 13:40:26.61
pythonをGUIで操作したいならdockerは微妙だけど、それ以外ならdockerの方がいい
webアプリ化すればほとんどはシェル併用でどうにもなるし
どうしてもpython以外(かつGUIで)のソフトを使いたいって場合くらいじゃないのVirtualBoxの仕用途
0280デフォルトの名無しさん
垢版 |
2021/02/02(火) 18:44:22.05ID:PI7tMABu
PyQtとEricでVSのwinformみたいに組めるよ。
ラズパイでGUIやれるようになって幸せ。
0286デフォルトの名無しさん
垢版 |
2021/02/02(火) 19:17:56.73ID:DklR/gYA
GUIで操作ってOpenCVのimshowみたいなのをインタラクティブに操作したいってことでは?
0290デフォルトの名無しさん
垢版 |
2021/02/02(火) 20:55:55.73ID:NtuoF5yn
>>284
GUIを必要としないものは実は沢山ある
君がそういうものを思いつかないなら、おそらく君にPythonは適していない
0292デフォルトの名無しさん
垢版 |
2021/02/02(火) 21:14:50.83ID:PI7tMABu
ラズパイで色んな装置と通信するコンソールをGUIでやってみて、楽勝だった。
0293デフォルトの名無しさん
垢版 |
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) # ←この文です
0294デフォルトの名無しさん
垢版 |
2021/02/03(水) 01:24:18.13ID:NRhVzOUI
>>293
Pythonのローカルスコープは、関数内およびクラスのメソッド内でのみ作られる…はず
withは関数ではないから、dataはグローバル変数
0295デフォルトの名無しさん
垢版 |
2021/02/03(水) 02:16:42.71ID:FJQE1f2p
ブロック=スコープではなく制御文同様スコープ作りません
あとはPython3で内包表記が密かに作るようになったかな?
0296293
垢版 |
2021/02/03(水) 02:22:26.48ID:uyKGjePK
>>294
>>295
ありがとうございました

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

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

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

(def (x, y):
  ここに処理を書く
)(a, b)
0305デフォルトの名無しさん
垢版 |
2021/02/04(木) 09:26:22.09ID:c560f9Nc
>>304
lambdaでどーぞ
0306デフォルトの名無しさん
垢版 |
2021/02/04(木) 09:29:06.70ID:yNPj7IC/
>>304
普通は気にしない
Pythonのグローバル変数はモジュール(ファイル)の名前空間に属するから、グローバル名前空間を汚染しない
本当に局所的な変数が欲しいなら普通に関数を定義してローカル変数にして普通に呼ぶ
トリッキーなことはしないで素直に普通に書くのがPython流
0307デフォルトの名無しさん
垢版 |
2021/02/04(木) 10:47:48.68ID:ETtm6pXr
Pythonて関数の引数が参照渡しなんだな
値渡しだと思って今まで使ってたから調べてびっくりしたわ
リストなんかを変数で渡した場合は関数内で書き換えできてしまうから注意が必要だね
0308デフォルトの名無しさん
垢版 |
2021/02/04(木) 11:12:44.25ID:ZzRKCYY/
>>294
with の中を通らなかったときの data の値は必ず None で OK?
0309デフォルトの名無しさん
垢版 |
2021/02/04(木) 11:15:39.42ID:0AhC+pkm
>>307
引数が(変数の)参照渡しな訳ではないよ、元々が実体へのオブジェクト参照(PyObject*ポインタ)
値渡しはC的に言えばスタックに載せるという事であり、それは大抵のシステムで既定上限が数MB以下
0311デフォルトの名無しさん
垢版 |
2021/02/04(木) 13:42:24.63ID:eiMq+3qj
>>306
コーティングの是非を聞きたいのではなく
仕様として可能なのかを聞いています
単にそこに興味があるだけです
0312デフォルトの名無しさん
垢版 |
2021/02/04(木) 13:44:27.86ID:eiMq+3qj
>>305
もちろん考えましたが
何行にも渡るコードをlambdaでローカルスコープにするのは
実用的でないと思ってます
偉そうな書き方になってたら申し訳ない
0314デフォルトの名無しさん
垢版 |
2021/02/04(木) 14:21:08.73ID:8DiqYeP0
PILで読み込んだ画像とOPENCVで読み込んだ画像は、それぞれで扱うことはできないのでしょうか?
また、画像がどっちの形式で変数に入っているかを判断することはできないでしょか?
0315デフォルトの名無しさん
垢版 |
2021/02/04(木) 14:58:09.72ID:qhstqCrC
>>311
括弧を使ってスコープを切れるか? => 切れない
JSのIIFEを模倣できるか? => lambdaなら可
グローバル汚染を避けられるか? => そもそもグローバル汚染しない
0320デフォルトの名無しさん
垢版 |
2021/02/04(木) 19:10:10.39ID:KK0mSk54
>>314
numpy.array(pil_image)でおーぷんしーぶいで扱える
0321デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:04:09.36ID:c560f9Nc
python界隈は、ピップだのピップエンブだのパイパイだのパイエンブだの、固有名詞がダサすぎないかい。
0323デフォルトの名無しさん
垢版 |
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)
0324デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:30:50.18ID:xGlwnT6u
競プロかなんかで時間ギリギリまで問題解きたいのか?
0325デフォルトの名無しさん
垢版 |
2021/02/04(木) 23:46:00.85ID:WzBF5t1f
>>321
ぱいぱい!!
0326デフォルトの名無しさん
垢版 |
2021/02/05(金) 07:49:10.98ID:PjtyCIQW
>>323
fはFutureオブジェクト
0327デフォルトの名無しさん
垢版 |
2021/02/05(金) 09:11:59.04ID:aDktR5P1
pythonのエラーの対応について教えて下さい
環境は3.6でエディタはAtomを使っています。

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

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

except ****:
0331デフォルトの名無しさん
垢版 |
2021/02/05(金) 15:18:46.74ID:f8nqzbTK
最初にやった方法からさらにいい方法思いついてデータ量や実行時間が大幅に減らせたときの快感がたまらん
0332デフォルトの名無しさん
垢版 |
2021/02/05(金) 16:02:31.28ID:zkrcBcSu
それで、コードの可読性を損ねて、
後でどこを直せばいいかわからなくなることもしばしば
0334デフォルトの名無しさん
垢版 |
2021/02/05(金) 16:11:08.41
途中で送信してしまいました
def
try:
 エラーでそうな処理
 return 11
except:
 エラー出たときの処理
 return 22

このエラー出たときに、エラー以外の処理を返すようなやり方はやめた方がいいですか?
エラーのときはExceptionなりでエラーをそのまま返す
みたいな
0335デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:19:11.95ID:oYpVlEXM
>>334
「エラー出たときの処理」でエラーから復旧したと言えるならそれでいいんじゃないか
呼び出し側で対応が必要ならExceptionを返すべき
0336デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:21:11.97ID:oYpVlEXM
× Exceptionを返す
○ Exceptionをraiseする
0337デフォルトの名無しさん
垢版 |
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")
となると思うのですが、
どうやってリストの中の価格だけを取り出して、
一番大きい値を取り出せばいいか分からないです。
0338デフォルトの名無しさん
垢版 |
2021/02/05(金) 22:23:34.72ID:6/zDXCCK
item = max(json_obj["list"], lambda i: i["price"])
0341デフォルトの名無しさん
垢版 |
2021/02/05(金) 23:29:03.53ID:N5jEb7lV
>>338
ありがとうございます!
string indices must be integers
とエラーがでてまだ取れてないけど、、
もう少し調べて頑張ってみます。
0342デフォルトの名無しさん
垢版 |
2021/02/06(土) 08:39:05.31ID:UyfeHPoO
今までpcで動かしてた機能をandroidで動かしたい
apkを作るにはkivy とbuildozerを使うらしい
こっちの環境作るのにも詰まってるけどそもそも今動いてる.py をそのまま使えるのかも分からない
何か書き換えとか必要?
そして環境構築方法詳しく載ってるサイトがあったら教えてください。
0343デフォルトの名無しさん
垢版 |
2021/02/06(土) 10:54:46.58ID:PohEB++t
sl4a
0344デフォルトの名無しさん
垢版 |
2021/02/06(土) 11:42:13.31ID:IR3wWC2w
sl4aは見つけたけどapkにしたいんだ....
0345デフォルトの名無しさん
垢版 |
2021/02/06(土) 13:29:12.16ID:ROiZJzWf
python のメソッドって
def hoge(x,y):
以下中身
まではわかるんだけど
終わりの区切りはどうなってるの?
空行できたらそこで終わり?
returnとかあればいいの?
0346デフォルトの名無しさん
垢版 |
2021/02/06(土) 13:40:24.90ID:FU+/gIxh
>>345
カラ行は無視で
なんか書いてある行のインデントの深さが変わったらそのブロックはおしまい
0348デフォルトの名無しさん
垢版 |
2021/02/06(土) 14:24:19.00ID:FU+/gIxh
>>347
体系化ずみのサイトなりテキストなりを一冊読んだ方が
遠回りにみえるかもしらんが
一番早道だぉ
ノシ
0349デフォルトの名無しさん
垢版 |
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}
0351デフォルトの名無しさん
垢版 |
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
0353デフォルトの名無しさん
垢版 |
2021/02/06(土) 23:08:53.63ID:s8ZQn1/T
その例のコードで 0,1,2,3,3,3,...... って出力されるの?
やべーねその言語
0363デフォルトの名無しさん
垢版 |
2021/02/07(日) 10:44:13.68ID:KNf11SZT
dictの型ヒント書こうとしているんだけど、TypeScriptみたいにキー毎に
値の型を指定するような芸当は無理だよね?
0367デフォルトの名無しさん
垢版 |
2021/02/07(日) 13:56:45.22ID:+o5/+U2b
>>366
windows上で、フォルダの中に名前順に並んだ複数ファイルがあって
これをそのままの順番で取得したいんですが、glob+sortedでいいのでしょうか?
windows上での並び順と異なる場合があるとかだと困るのです
0370デフォルトの名無しさん
垢版 |
2021/02/07(日) 14:11:22.42ID:3B496xZd
_1 と _01 の話でしょう。
エクスプローラは長さ判定の方が
優先順位が高いアルよ
0372デフォルトの名無しさん
垢版 |
2021/02/07(日) 15:22:35.38ID:FFuFCGQD
スクリプト使用者は日本語環境のwindows
フォルダ内に任意の命名規則の連番ファイルが数種類混在する
つかわれる文字種は全半角日本語英語、数字と記号(文字化けした中国語っぽいやつはありえる)
例えば
.01.02
.あ001.い001
._01a._01b
という3ルールがひとつのフォルダ内にあって、命名規則は制限できない
エクスプローラー上で表示される名前順の並びに意味があるので、順番を保持したデータ構造を取得したい

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

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

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

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

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

みたいな…
0381デフォルトの名無しさん
垢版 |
2021/02/07(日) 17:11:24.53ID:QRtsbk1z
正規表現で群を分割してそれぞれの群に対して逐次処理していく
とかだと駄目なのかな?

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

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

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

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

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

命名ルールも再現したいエクスプローラのソート仕様の範囲も不明確なので事故るかどうかは運任せ
0389デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:31:26.56ID:4v/nAOdw
>>367
windows って explorer で表示したときの並び順と
プロンプトで dir で表示したときの並び順が
違うって知ってた?
0000
0001
1
111
10
20
みたいなファイル名で試してみ
0390デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:39:15.86ID:JR5bkMUq
>>389
エクスプローラのソートとひとくちにいっても、
ターゲットのフォルダをあけた状態と
そこから左カラム右クリック新しいウインドウから開く でもいっこあけた窓の中で
順番変わる
0391デフォルトの名無しさん
垢版 |
2021/02/07(日) 18:53:51.92ID:cgYbYP7a
この言い訳の山よw
0393デフォルトの名無しさん
垢版 |
2021/02/07(日) 19:04:34.30ID:uQM/ElP7
並列処理をしているときに、何が実行されているか確認することって出来ますか?
キューに入って順番待ちになっているタスクも確認したいです。
WEBページを2〜3ページ並列で取得するようにしてるのですが、並列にしたときにデバッグで確認することも難しく教えていただければと思います。
0396デフォルトの名無しさん
垢版 |
2021/02/07(日) 20:09:13.36ID:kn8KLgWd
>>385
そもそもユーザーがソート順変えたら破綻する仕組みに依存した設計とかどうしようもないだろ
0399デフォルトの名無しさん
垢版 |
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.

だとさ
0400デフォルトの名無しさん
垢版 |
2021/02/08(月) 00:38:44.29ID:5J2edDoW
>>397
横から
これで順番変わってる状態って見たことないけど、どういうファイル名の並びだとそうなるん?
0404デフォルトの名無しさん
垢版 |
2021/02/08(月) 09:29:15.28ID:dM4oOJoS
スイッチのONOFFに連動してアクション起こすものを作ってみたくてほぼ期待通りの挙動させられるようになったのですが、たぶんimportで他.py呼び出す時にエラー?になります。
スイッチONになればその都度実行してほしいのですが、一度きりしか実行されません。
importで呼び出す場合は回数制限のようなものがあるのでしょうか?
0405デフォルトの名無しさん
垢版 |
2021/02/08(月) 10:17:14.59ID:WsHYblSd
どんなエラーがでてるか、そのまま貼った方がいいと思うな
0407デフォルトの名無しさん
垢版 |
2021/02/08(月) 12:17:07.33ID:5JxS4RLe
「importで他.py呼び出す時」
「importで呼び出す」
perlじゃないから考え方を変えろ
0408デフォルトの名無しさん
垢版 |
2021/02/08(月) 12:27:47.27ID:yv+/ZfUq
Pythonのimportは、COBOLのCOPYと同じと考えて良いですかね
ソースのその箇所に埋め込む感じの
0409デフォルトの名無しさん
垢版 |
2021/02/08(月) 12:44:47.59ID:5KN+Fjzm
>>408
全然違う
importは対象のモジュールがまだ現在のプロセスで読み込まれていない場合は読み込み、現在のスクリプトファイル内で使用できるようにする
COBOLの知識とか害悪でしかないから今すぐ全部忘れろ
0410デフォルトの名無しさん
垢版 |
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のポインタで挫折したタイプなんでよくわかってません。
0411デフォルトの名無しさん
垢版 |
2021/02/08(月) 14:02:52.07ID:hgsCKB/O
>>408
>>410
Pythonのimportは名前空間にパッケージ名を登録してるだけ

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

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

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

つまり、ライブラリ・モジュールの読み込みは、1回で良いけど、
設定ファイルは再読み込みする事がある
0416デフォルトの名無しさん
垢版 |
2021/02/08(月) 21:18:46.00
>>414
なるほどありがとうございます
とりあえずはまとめられる処理はできる限り一つにまとめてみます
0417404
垢版 |
2021/02/08(月) 21:40:53.51ID:TgcbDI6H
正解なのかはわかりませんが、なんとか期待通りの動きをするようになりました。
元々のコード:ttp://codepad.org/RgfCqXLD
変更後:ttp://codepad.org/C9YTzwaU

スイッチがONになったら反応、OFFでもう1つのアクション。
ついでにキャンセルもできるようにしようとするとフラグを2つ立てないとうまくいかなかったので、無駄に長くなってしまった気がします。
もしお暇でしたらアドバイス貰えれば幸いです。
0420デフォルトの名無しさん
垢版 |
2021/02/08(月) 23:57:12.05ID:qlvhc88X
親切な方誰か教えてください。
Python始めたいんだけど、どのバージョンをダウンロードしたらいいんでしょうか?
勉強用に買った本には3.6.Xをダウンロードしろと書いてあるんだけど、どうせ始めるなら最新の3.9から始めるのがいいんでしょうか?
0423デフォルトの名無しさん
垢版 |
2021/02/09(火) 00:08:54.47ID:gY4wTt7u
>>421 422
ありがとう。とりあえず3.6で初めてみます
0424デフォルトの名無しさん
垢版 |
2021/02/09(火) 00:33:28.54ID:D2eLzUKh
3.9でいいよ
・・・と言いたいが外部のライブラリが対応できていないものもまだ多いから3.8を勧める
3.6にあってそれ以降無くなった機能あったっけな?
0425デフォルトの名無しさん
垢版 |
2021/02/09(火) 01:08:10.84ID:WN7fm/D8
3.8だと思うように動作しないライブラリあったから3.6に戻した
それ以来,ずっと3.6
0426デフォルトの名無しさん
垢版 |
2021/02/09(火) 01:23:34.91ID:iwKT59GY
3を指定すると3.7.8か3.7.9あたりになるのが多い気がするからその辺が互換的にもよさそう
0428デフォルトの名無しさん
垢版 |
2021/02/09(火) 09:16:09.94ID:oB9H/ghx
教えていただきたいのですが、
tkinterでプログラムのスタートとストップボタンを作ったのですが、処理中は画面がフリーズしてしまいます。
tkinterは非同期モジュールらしく、
これを他のGUIモジュールに変えるとフリーズしなくなりますでしょか?
0430デフォルトの名無しさん
垢版 |
2021/02/09(火) 10:20:06.37ID:fLSeggtA
>>428
コード見てみないとなんともだけど
非同期のコードかかずにwhileで回してるだけになってるとか
0431デフォルトの名無しさん
垢版 |
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()
0432デフォルトの名無しさん
垢版 |
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
0433デフォルトの名無しさん
垢版 |
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]みたいに取り出したいのですがエラーでした
0434デフォルトの名無しさん
垢版 |
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']の順は保証されるのかも気になります
0437デフォルトの名無しさん
垢版 |
2021/02/09(火) 13:43:29.24ID:3rwMtM14
>>431
start関数が5秒経つまでループしてて戻らないから
Pythonに限らずGUIの場合UIを動作させるにはメインスレッドを独り占めしちゃだめなのよ
>>435みたいなやり方もあるけど
sleepすらしない単純なループでの待ちは無駄にCPU使用率が上がるだけなので避ける
時間経過はタイマーイベントを使う
時間がかかる処理は別スレッドにする
という方向で考えた方がいいよ
0439デフォルトの名無しさん
垢版 |
2021/02/09(火) 19:52:16.41ID:F09oemYA
tesseractの他にocrのライブラリってありますか?
教えて下さい。よろしくお願いします。
0441デフォルトの名無しさん
垢版 |
2021/02/09(火) 22:37:06.14ID:48/GVgda
Pathlibで特定のフォルダ以下のファイルを全てglobして
全てのファイルに対して特定の処理をし
その後別のフォルダにディレクトリ構造を維持しつつ保存していきたいです

フォルダ構造を維持しつつ保存するために
hoge_dir - base_dir みたいなものをしてPathの差分だけを取得したいのですが、そういった関数は無いのでしょうか?
0443デフォルトの名無しさん
垢版 |
2021/02/10(水) 00:20:56.79ID:3asw//Zv
relative_to()
ドキュメント、読もう!
0444デフォルトの名無しさん
垢版 |
2021/02/10(水) 07:56:31.78ID:lV7BodTW
イテレータを使わなければならない状況がきてようやく仕組みがちょっと理解できた
今までfor inで回せばほとんどのことに対処できてたので、どこで使うんそれって感じやったけど
やっぱり必要になって使うべき場面がこないと覚わらんね
0448デフォルトの名無しさん
垢版 |
2021/02/10(水) 13:05:03.29ID:3asw//Zv
頭から順に処理するならイテレーター
値は取り出すまで評価されない
リストは生成時に全要素が評価、展開されるから、長いとメモリを圧迫する
0450デフォルトの名無しさん
垢版 |
2021/02/10(水) 13:44:33.50ID:k3XYYQgl
>>447
for文使ってればイテレータ使ってる
rangeでもlisyでもstrでも同じようにfor文で回せるのはイテレータのおかげ
0452デフォルトの名無しさん
垢版 |
2021/02/10(水) 19:51:19.06ID:deHLhqxB
画像比較作りたいけど
おすすめのサンプルプログラムある?
二つ比較して
似ている割合みたいのとれればいいんだけど
0454デフォルトの名無しさん
垢版 |
2021/02/11(木) 11:34:19.30ID:n0GRjtoR
>>446
ありますよ
もうちょっと頑張って調べなさい
0456デフォルトの名無しさん
垢版 |
2021/02/12(金) 11:01:49.66ID:fibZz6ZJ
GUIのテキストラベルを関数内で変更するには、そのテキストのインスタンス生成をグローバルで実施する必要があるのでしょうか?
main関数内でGUIを作成して、別の関数から呼び出そう、書き換えようとするとエラーが出てしまいます
0457デフォルトの名無しさん
垢版 |
2021/02/12(金) 11:42:10.00ID:fibZz6ZJ
追記です
もともとメインだけのプログラムだったのですが、処理部などを分けていくにあたって、上記問題となりました。
ボタンやテキストラベルが多いため、GUIだけでも分離できたらなと思ってます。
0459デフォルトの名無しさん
垢版 |
2021/02/12(金) 13:28:10.74ID:x9NfpsA7
GUIってどれ使ってんの
0461デフォルトの名無しさん
垢版 |
2021/02/12(金) 15:15:13.03ID:Xi6F12r7
OCR使ってみたんですが画像にちょっとシミ付いただけでめっちゃ精度落ちるんですけど
0464デフォルトの名無しさん
垢版 |
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行ぐらいの全く同じコードになってるので繰り返して書くのがキレイでない。
0466デフォルトの名無しさん
垢版 |
2021/02/13(土) 07:57:55.39ID:dvbWR5uB
with使えっていうのは当然として、設計寄りの話としてDAOあるいはRepositoryと言われるパターンを勉強すると良い。
0468デフォルトの名無しさん
垢版 |
2021/02/13(土) 10:52:08.28ID:PYtZn7CJ
>>464
Pythonの不便な点だな

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

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

ってやるのが定番
でもC#とかなら「何かを書く1」に直接処理を書けるけどPythonは関数を定義しないと駄目だからいまいちメリットが薄い
0470デフォルトの名無しさん
垢版 |
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(いいい)
0472デフォルトの名無しさん
垢版 |
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")
0473デフォルトの名無しさん
垢版 |
2021/02/13(土) 19:56:09.70ID:hraNkxQy
wrapする意味がほとんどない気がする。
都度ファイル名が変わるなら、一緒に渡す方が間違いないだろうし、
逆に固定でいいなら、定数にするか、上で出ているようにDAOに閉じ込める方がいい。
0475デフォルトの名無しさん
垢版 |
2021/02/13(土) 21:05:50.85ID:QOknjIyX
>>473
2つ意味がある

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

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

間違ってもDAOやリポジトリを持ち出すような話じゃない
0477デフォルトの名無しさん
垢版 |
2021/02/13(土) 22:19:47.12ID:PYtZn7CJ
>>476
質問者はファイル名の話なんてしてない
そもそも質問者は「なにか書く」をなんとかしたいと言ってるのに勝手に文字列を書くことで満足してるようなオナニー見せられて困ってるだろうな… ⇒ >>470, >>472
その上質問者のレベルとか何様なんだよ
0478デフォルトの名無しさん
垢版 |
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という値
何百時間ていう数値を出せないんですか?
0481デフォルトの名無しさん
垢版 |
2021/02/13(土) 23:14:28.96ID:De6EzIPK
>>480
できました。
結構狂った言語だな。
算術計算の結果は数値で出すべきなのに。
なんかpythonて直感的じゃなくて使いにくいな。
0483デフォルトの名無しさん
垢版 |
2021/02/13(土) 23:39:31.79ID:QOknjIyX
>>477
ファイルに書くんだからファイル名は必要
指摘の意味がわからない

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

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

def まくろ(何かを書く,関数名)
 ファイルfを開く
 引数で与えられた関数名の関数を呼び出す
 何かを書く(f)
 ファイルfを閉じる
ていうのがやりたかったんだけど、関数の中に動的に別々の関数を呼び出すことなんてできないよね。
#define マクロ名(引数リスト)みたいなことができれば実現できるのに。
0490デフォルトの名無しさん
垢版 |
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 関数 渡す とかでググればいいかと
0491デフォルトの名無しさん
垢版 |
2021/02/14(日) 10:46:04.70ID:vizEsFtD
最近はpythonでググると高確率で、nkmkというサイトに引っかかる
そこは目次が無いため、文字ばかりの細々とした説明の中から必要なコードを探さないといけないから、とてもストレス
0492デフォルトの名無しさん
垢版 |
2021/02/14(日) 10:47:27.53ID:HIb/uJW+
>>490
関数を呼び出すんじゃなくてソースコードをマクロ展開したいんだけど。
関数にしてしまうと変数のグローバル・ローカルという話が出てきてしまう。
単純に10行くらいのコードの一部を変えてコピーしたい。
defの関数てコードのコピーじゃないですよね?
0493デフォルトの名無しさん
垢版 |
2021/02/14(日) 11:19:31.18ID:D24G58JB
>>492
なんでそんなことしたいのかよくわからんけど、m4とかのマクロプロセッサでも使えばいいんじゃね
0495デフォルトの名無しさん
垢版 |
2021/02/14(日) 11:40:35.87ID:AzULVuFC
>>491
イラストがいっぱいあって、
「今日はイテレーターの使い方だよ」
「何だか難しそう」
とかなってるサイトのほうがウザい。
0496デフォルトの名無しさん
垢版 |
2021/02/14(日) 11:53:57.69ID:PGTjJwEI
>>481
馬鹿には無理
0500デフォルトの名無しさん
垢版 |
2021/02/14(日) 12:09:30.76ID:IYZau0Ph
>>497
デコレータって、元の関数の動作はそのまんま残し、さらに別の動作を
付け加えた関数を作り出す機能っしょ
この人はコードの一部を変更したいって言ってるから無理ではないかと
0501デフォルトの名無しさん
垢版 |
2021/02/14(日) 12:12:44.45ID:TDUjnB7+
>>490
>test()
関数渡してないやないかーい!

>>492
変数のスコープを理解せずにプログラムは書けないので
最初のlocal variable 'f' referenced before assignmentのエラーの原因を調べたほうがいいよ
誰もが一度は通るエラーなのでググればすぐ分かる
公式のFAQにものってる
0504デフォルトの名無しさん
垢版 |
2021/02/14(日) 12:21:38.55ID:TDUjnB7+
>#define マクロ名(引数リスト)
文字列を展開してそれをコードとして評価することはできるけど
今回のケースは関数を使えば解決可能なのでまずやらない
マクロと同等のことが普通のコードで実現可能
0505デフォルトの名無しさん
垢版 |
2021/02/14(日) 13:18:53.12ID:m02xXjOP
nkmkは最高に分かりやすいだろ
プログラミングスクール系のゴミ記事の1億倍見やすいわ
0507デフォルトの名無しさん
垢版 |
2021/02/14(日) 13:36:25.18ID:2SnvaGjH
>>505
あとは目次にリンク張ってくれれば言うことない
0511デフォルトの名無しさん
垢版 |
2021/02/14(日) 19:18:07.67ID:I1aFEzxm
>>505
むしろググってnkmkが上のほうにないときに絶望する
残ったゴミとカスからしゃーなしマシな記事をあさるしかない
0515デフォルトの名無しさん
垢版 |
2021/02/14(日) 23:49:31.85
一週間ほど前にPython にバッファオーバーフローの脆弱性(CVE-2021-3177)が発表されましたが、パッチ同時リリースではありませんでした
その後、パッチは出たのでしょうか? この問題は解決済みですか?
0516デフォルトの名無しさん
垢版 |
2021/02/15(月) 00:24:39.78ID:bVZY0HXF
testDict = {"test1Key":"test1","test2Key":"test2","test1Key":"test1.5"}
こんな感じで、重複のkeyがある辞書から、重複要素をprintするにはどうしたら良いですか?
0520デフォルトの名無しさん
垢版 |
2021/02/15(月) 11:32:59.59ID:HtPzSKw3
seleniumでchromedriverを使ってスクレイピングするとき、
長時間続けているとキャッシュが肥大化してきます
これをコードの中でクリアする方法はありますでしょうか?
0521デフォルトの名無しさん
垢版 |
2021/02/15(月) 11:55:43.22ID:LUOktb/o
別のスクリプトからsubprocessで間接的に起動しておいて、定期的に起動し直すとかかなあ
0522デフォルトの名無しさん
垢版 |
2021/02/15(月) 11:59:16.82
どうしてもseleniumでというならドライバ再実行でどうにかなったと思うけど
windowも閉じてしまうからそれが嫌だっていうなら
素直にscrapy使ってスクレイピングするのがいいかも >>520
0523デフォルトの名無しさん
垢版 |
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)
みたいにしてキャッシュサイズ制限かけるとか
0524520
垢版 |
2021/02/15(月) 17:14:22.91ID:HtPzSKw3
やっぱり起動しなおすしかない感じですね
optionsでキャッシュサイズの指定は試してみたんですけど、効果ナシでした
例えば数十分おきとかでドライバ再実行する仕組みで試してみようかな

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

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

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

なにかうまい方法ないでしょうか?
0533デフォルトの名無しさん
垢版 |
2021/02/17(水) 22:57:13.47ID:d05tkeIJ
pad試してみたのですが、ウインドウ小さくするとそうそうにXラベルと重なってしまいますね。
デフォルトの上部にしているとウインドウ小さくしても重ならないのですが、
こんなものなのでしょうか・・・。

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

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

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

クソチョンw

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

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
0541デフォルトの名無しさん
垢版 |
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
0549デフォルトの名無しさん
垢版 |
2021/02/19(金) 05:34:23.41ID:473cJTkx
lispみたいなガイジが好むけど実用されない言語と
pythonみたいな実用されるけどガイジから非難される言語だ
0550デフォルトの名無しさん
垢版 |
2021/02/19(金) 07:19:35.87ID:dkFXvWzJ
>>544
配列っていうか、行列だな。
Mコード(MATLAB)やFORTRANも行列扱えるよ。
確かにnp面倒くさい。
0551デフォルトの名無しさん
垢版 |
2021/02/19(金) 07:19:58.87ID:ho6TCH2V
行列使うならMATLAB系
numpyじゃあ全く代わりにならんしうんざりする

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

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

ていうようなことをしたい。
elseで次のifを書いていくとインデントがどんどん右に行くんだがなんかいい方法ない?
考えたのはfor文の中にいれて真ならbreakてやったんだが、普通はどうかくの?
0554デフォルトの名無しさん
垢版 |
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でやるしかない?
0555デフォルトの名無しさん
垢版 |
2021/02/19(金) 21:19:47.88ID:yv2d5Olu
インデントがわからないからはっきり分からないが
並列なifなら関数化してearly return
0556デフォルトの名無しさん
垢版 |
2021/02/19(金) 21:24:45.22ID:dkFXvWzJ
>>554
何もないコードブロックって作れないよね?

無理やりifでコードブロックにして
if True:
  前処理A
  if 条件A:
    処理A
    break
  前処理B
  if 条件B
とかやれば出来なくもない。
0558デフォルトの名無しさん
垢版 |
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使ってもいいと思うけどね。
0561デフォルトの名無しさん
垢版 |
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
0563デフォルトの名無しさん
垢版 |
2021/02/20(土) 00:22:00.93ID:N/y0hS3O
即席で関数定義する方がセンスよさげだが自分なら完了済みフラグ設けて済ませたな
0564デフォルトの名無しさん
垢版 |
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")
0565デフォルトの名無しさん
垢版 |
2021/02/20(土) 02:07:34.86ID:nciJ6+jd
>>559
552だけどオレが思いついたのはその方法。
この手の処理て模範解答的にはどうやってやるんだろう?
フラグ立ててフラグが真じゃなければ次のifブロックに行かないとかやってたけど。
関数にするとコードが見にくくなるし、一回しか通らない処理を関数にするのも無駄なような。
オレが新入社員のときにやったCOBOLもどきのIDL2にはblock文てのはあって一回だけ実行するfor文みたいなものがあった。
0567デフォルトの名無しさん
垢版 |
2021/02/20(土) 08:48:49.94ID:Y+RPXUXT
自分なら>>561にするな
アーリーリターン
0568デフォルトの名無しさん
垢版 |
2021/02/20(土) 08:49:50.45ID:/remXlTv
>>565
前処理とifがあるなら関数にまとめてもいいかも。
def processA():
  前処理A
  if 条件A:
    処理A
:
processA()
processB()
processC()

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

前処理って何やってんだよ
どうしても各分岐の前にがっつり処理しないとだめなんか?
0570デフォルトの名無しさん
垢版 |
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が真だったらここに飛びたい。
0573デフォルトの名無しさん
垢版 |
2021/02/20(土) 13:14:35.97ID:QO6ABfSl
インデントが2つだったり、3つだったりばらばらで作ってしまったんですけど、コレを自動で整形する方法ってありますか??
0574デフォルトの名無しさん
垢版 |
2021/02/20(土) 13:28:03.26ID:EQ4Fmj1U
>>573
ある程度の行数をまとめて選択して置いて「インデントをひとつ浅くする」なら
けっこう色んなエディタでできるとおもうんだが
虎刈りになってるならあきらめろん
0576デフォルトの名無しさん
垢版 |
2021/02/20(土) 14:32:57.68ID:TBTHb+Gp
black使ってるけど1行あたりの文字数だけは弄って150にしてるわ
デフォだとキツすぎディスプレイ縦置き専用かよと
0577デフォルトの名無しさん
垢版 |
2021/02/20(土) 18:32:17.48ID:56yjs2OO
>>570
“ifグループ”と呼んでるものに名前をつけて関数化するほうがベターだと思うけどif-elseでも書けるよ
0578デフォルトの名無しさん
垢版 |
2021/02/21(日) 00:57:40.63ID:aCzr4+Gv
君たち>>570みたとたん明らかにやる気なくしてるよね
0580デフォルトの名無しさん
垢版 |
2021/02/21(日) 02:40:07.07ID:G4m9GHw4
blackはやりすぎだなと思うことあるわ。
コードを見やすくするためのコードフォーマットなのに逆に見辛くなるとか本末転倒すぎる。
0582デフォルトの名無しさん
垢版 |
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.
0586デフォルトの名無しさん
垢版 |
2021/02/21(日) 14:36:40.26ID:9qukVfwV
>>582
COBOLの知識は完全に全て忘れろ。今すぐに。
Pythonでは固定長レコードは一切使わない。CSVやJSONのような可変長データを使う。
0587デフォルトの名無しさん
垢版 |
2021/02/21(日) 16:54:13.00ID:3wKXGD51
>>582
プログラム内の表現として扱うという意味なら自分でクラスを定義するだけ

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

COBOLで書き出した構造化ファイルのデータをPythonから扱えるかという意味なら
ファイルフォーマット次第だけど簡単には扱えない
CSVとかのテキストフォーマットに書き出したものをPythonで読み込むほうが桁違いに簡単
0588デフォルトの名無しさん
垢版 |
2021/02/22(月) 08:11:56.12ID:uJ/bSXez
pythonのデバックでプログラムが何行目を通過したかて知る方法てあるの?
visual studio 2019を使っててF11でスッテプ実行てのが出来るんだけど、
1万行あったら1万行回F11叩くのか?てことになる。
0590デフォルトの名無しさん
垢版 |
2021/02/22(月) 10:21:35.37ID:5/ri8a+l
>>588
ifの質問してるのと同じ人?
0592デフォルトの名無しさん
垢版 |
2021/02/22(月) 10:55:31.74ID:pI5eidjw
何行目を通過したか知りたいって考え方をするのはプログラムの構造に問題があるから
0594デフォルトの名無しさん
垢版 |
2021/02/22(月) 13:28:34.74ID:zcTtu3Zr
フレイクホイントが
フロントホックに見えてしまった(´・ω・`)
0597デフォルトの名無しさん
垢版 |
2021/02/22(月) 14:37:49.37ID:tvUSsQ8P
3行のコードでも1万回ループしてたら
ステップオーバーを3万回叩かないと抜けられない

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

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

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

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

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

Pythonでもトレースはとれる
それも時間の無駄なのでまずやらない
0614デフォルトの名無しさん
垢版 |
2021/02/22(月) 22:55:29.56ID:sQpMvYPW
ある程度はprintデバッグで問題の発生する範囲を絞り込むよね。
データが20種10ループの処理を受けるときに200回とかステップ実行やってられないもの
0615デフォルトの名無しさん
垢版 |
2021/02/22(月) 23:07:05.13ID:uJ/bSXez
>>605
これはVS2019の問題かもしれんが、関数の中で止まると何行目で止まったか表示してくれない。
だからエラーが出た個所にブレイクポイントを設定することがまず大変。
F11で追わないとどこで止まったかわからない。
0619デフォルトの名無しさん
垢版 |
2021/02/23(火) 00:03:58.11ID:cTQNOv+R
>>617
VS使わずコマンドラインから実行してエラーメッセージを確認

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

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

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

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

こんだけだよ
ちょっと頭かたすぎなんじゃねーかと
0652デフォルトの名無しさん
垢版 |
2021/02/24(水) 14:57:15.43ID:7Ynmy8c9
finallyは他の言語でも見るけどelseは見たことないな
他の言語でも取り入れて欲しいわ
0654デフォルトの名無しさん
垢版 |
2021/02/24(水) 17:09:14.43ID:1iaQM7ct
tryのelseは、流れが分かり易くなるよね。正常系なのにelseという名前に若干引っ掛かるが。
whileのelseは、使わないけどあってもいいか。もともとBooleanで判定しているからね。
forのelseは、初見では絶対にわからないだろこれ、思考の妨げになるだけで邪魔。
0655デフォルトの名無しさん
垢版 |
2021/02/24(水) 17:09:51.85ID:aiTBro5g
for〜elseが何気に使えるから他言語にも取り入れられて欲しい
0657デフォルトの名無しさん
垢版 |
2021/02/24(水) 18:12:35.29ID:FNeBH8xI
在日が知らないだけだろ
0658デフォルトの名無しさん
垢版 |
2021/02/24(水) 18:21:58.41ID:9gaCPeun
tryのelseもwhile/forのelseも意義を見いだせないな

Effectiee Pythonではwhileとforのelseは使うな
tryのelseは活用しろとあったがtry/elseの例はすげー微妙なコードだった
0659デフォルトの名無しさん
垢版 |
2021/02/24(水) 18:40:11.47ID:7Ynmy8c9
for〜else使えるのにフラグとかないし思考の妨げとか単に慣れてねーだけだろ
0661デフォルトの名無しさん
垢版 |
2021/02/24(水) 20:08:35.09ID:FNeBH8xI
在日クソチョン乙
0663デフォルトの名無しさん
垢版 |
2021/02/24(水) 20:29:16.98ID:RQHABlQe
elseもfinallyも使いどころがわからん
elseはtry内に書けばいいしfinallyはただ最後に付け足せば両方通る
0666デフォルトの名無しさん
垢版 |
2021/02/24(水) 20:45:52.10ID:lUgQ+/6Y
日本語化されてなくても良いのですが、muエディタのように一行ずつ添削してくれるやつでオススメってあります?
0667デフォルトの名無しさん
垢版 |
2021/02/24(水) 20:49:56.05ID:1BXBrSOO
>>659
慣れてないっていうか他の言語も当然使うからPythonに戻って来た時混乱するのよ
混乱するならそもそも使わない方が良い
Pythonしか使わないならそれで良いんだろうけどね
0668デフォルトの名無しさん
垢版 |
2021/02/24(水) 21:00:34.63ID:CQQJwOCp
>>663
エラーでメッセージ出ても止まらないようにするんじゃなかったけ?
サーバーからデータ取れなくても空白文字入れたり
無理やり戻ったり
0671デフォルトの名無しさん
垢版 |
2021/02/24(水) 21:57:40.34ID:2cGpZtVv
>>667
> 戻って来た時混乱するのよ
> 混乱するならそもそも使わない方が良い
「英語話すと日本語に戻ってきたとき混乱するから
英語使いません!」とおなじこといってるぞ
あふぉ自慢はあったまさらにわるくみえるぞ
0673デフォルトの名無しさん
垢版 |
2021/02/24(水) 22:22:28.79ID:HJ50OjUD
>>669
「両方通らないよ」は
「片方しか通らない」なのか
「全く通らない」なのか分からないよ。
0674デフォルトの名無しさん
垢版 |
2021/02/24(水) 22:24:22.09ID:7Ynmy8c9
>>663
そりゃそんな理解力だとfinallyもelseも使いどころかわからんわな
てか、例外使っちゃダメレベル
0676デフォルトの名無しさん
垢版 |
2021/02/24(水) 22:28:26.74ID:7Ynmy8c9
>>667
まあ一瞬混乱したりなんでこの機能ねーんだよとかはあるけどそんなの言い出したらキリなくね?
言語や環境によってライブラリなんかも違うし
0678デフォルトの名無しさん
垢版 |
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と違い過ぎるから
よほどのメリットがある場合じゃなければ使おうとは思わない
0679デフォルトの名無しさん
垢版 |
2021/02/24(水) 22:49:17.28ID:GQvsnMXY
>>632さん、>>633さん
ありがとうございます、もう少し調べてみます。
プロセスとスレッドの違いがいまいちわかってないですが、コレも日々勉強ですね
0681デフォルトの名無しさん
垢版 |
2021/02/25(木) 02:12:11.24ID:291z1RhV
質問です。

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

ご回答お願い致します
0683デフォルトの名無しさん
垢版 |
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())
0684デフォルトの名無しさん
垢版 |
2021/02/25(木) 11:19:59.37ID:wUmGW86/
9969ってのは、GDIオブジェクトの最大数にひっかかってるような気がする
リリースしてないハンドルとかがないかチェックしてみては?
0685デフォルトの名無しさん
垢版 |
2021/02/25(木) 16:30:42.42ID:OWCUu+hy
vscodeでblack使って自動フォーマットしてるんだけどこの前から急にフォーマットされないファイルが出てきた
同じフォルダ内の他のファイルは普通にフォーマット出来てるし訳がわからない
Blackのエラー出力とか見れないのかな?
0686デフォルトの名無しさん
垢版 |
2021/02/25(木) 17:27:50.59ID:OWCUu+hy
↑は自決しました

NamedTupleをデータ保管庫として使おうとしてるんだけど、
インスタンスを初期化するときにちょろっと引数に対して処理をしてから内部変数に代入することって出来ないのかな?
簡単に言えばinitがしたいんだけどエラーが出てできない
AttributeError: Cannot overwrite NamedTuple attribute __init__
0687デフォルトの名無しさん
垢版 |
2021/02/25(木) 17:38:22.46ID:VhwBlxTz
そういのはNamedTupleじゃなくてdataclass
データ型がほしい -> NamedTuple
データ型にメソッドとかもほしい -> dataclass
0690デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:21:47.84ID:OWCUu+hy
ありがとうdataclassの方だったのか
あと凄くニッチな需要だとは思うんだけど
initの際の引数で1つの変数に対して複数の型を許容するようにして
型ごとに異なるinit処理をすることって出来るのかな?
0691デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:43:42.30ID:cAbWQIRq
dataclassは__post_init__()を使って初期化処理をする
frozen=Trueの場合はobject.__setattr__()を使わないと変更できないので注意
0692デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:47:26.95ID:rcOltu0H
>>681
毎回 Reset して最初から実行させれば飛ばされない
0693デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:48:48.06ID:rcOltu0H
>>683
Win32API スレで聴いた方が良い
0694デフォルトの名無しさん
垢版 |
2021/02/25(木) 20:06:22.11ID:9bodhAOn
>>684
>>693
返信ありがとうです
ソースコードはこれとhndを取得しているところだけで、見当がつかず。。。
WIN32APIスレが有るのですね、こちらでの質問取り下げてそっちで聞いてみます。
お手数おかけしました
0695デフォルトの名無しさん
垢版 |
2021/02/25(木) 20:12:44.60ID:22HRW9MD
超初心者用板なので質問!
例えばiと打つと変換候補にifが出てきたり、fを打つとforがでるとか、その文字の意味によって色が変わったりするのは、所謂エディタを使ってるってことですか?
0700デフォルトの名無しさん
垢版 |
2021/02/26(金) 00:27:39.21ID:LIvaJcIb
正しいPythonのイントネーションは?
自分はyにアクセントを置くけど、oに置く人のほうが多い印象
0704デフォルトの名無しさん
垢版 |
2021/02/26(金) 01:03:52.47ID:tFK0PlkJ
「廃村」と同じでフラットなアクセントの人もいるらしい
リアルでは聞いたことがないけどPaizaの音声がそれだった
0708デフォルトの名無しさん
垢版 |
2021/02/26(金) 12:19:00.24ID:BR0FHe5J
oにアクセントを置くってのは
Oh my God!のmy godと同じイントネーションでパイソンって言うことになるんだけど
そんなやついる?
0710デフォルトの名無しさん
垢版 |
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)
0712デフォルトの名無しさん
垢版 |
2021/02/26(金) 15:20:17.73ID:5CAI4NX0
>>708-709
おれのいもうとは熱心なアンチオブジェクト指向だから
ちょうどそんなかんじで
「ぱいそーん」て発音してばかにしてくる
0714デフォルトの名無しさん
垢版 |
2021/02/26(金) 19:01:57.36ID:aJT073mH
プログラミング知識ゼロで昨日から始めました
公式ホームページの「ゼロからのPython入門講座」が終わったところで現在2週目復習中です
今後簡単なアプリかゲームをゆっくり作ってみたいのですが、
復習が終わった後に何に手を出したらよいかわかりません
参考になる本やサイトを教えていただけると嬉しいです
0716デフォルトの名無しさん
垢版 |
2021/02/26(金) 19:27:20.65ID:aJT073mH
>>715
レスありがとうございます
amazonで購入してみますね
挫折しないように頑張ります
0724デフォルトの名無しさん
垢版 |
2021/02/27(土) 07:44:17.20ID:nYZXhYHq
スライダーで一つの値は設定できたのですが、
一つのスライダーで範囲指定をしたくて
一つのスライドで2つのポッチがあるスライダーってありませんでしょうか
0726デフォルトの名無しさん
垢版 |
2021/02/27(土) 10:16:53.64ID:3qgM7V/3
以下の例のように、「こんにちわ」が出てきたときに反応させるプログラムを作りたいのですがどうしたら出来ますか?

testWord = "こんにちわ"

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

1度判定した「こんにちわ」には反応させずに
次にまた「こんにちわ」が登場したタイミングで判定を行うようなことをしたいです
0730デフォルトの名無しさん
垢版 |
2021/02/27(土) 12:13:58.61
こんにちわ の回数で反応なのか
こんにちわ の場所と回数で反応なのか

"こんにちわ、赤ち", #反応
"てすと、こんにちわ、赤ち",#には反応していいのかどうか
0732デフォルトの名無しさん
垢版 |
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)
0734デフォルトの名無しさん
垢版 |
2021/02/27(土) 14:37:55.21ID:nYZXhYHq
>>728
まさにこれです。
range sliderっていうのですね、Dashというのをいんぽーとしてみす!ありがたや〜
0736デフォルトの名無しさん
垢版 |
2021/02/27(土) 17:46:21.97ID:tx9E3aXM
>>713
回避版は死なないよ
0737デフォルトの名無しさん
垢版 |
2021/02/27(土) 17:51:22.93ID:tx9E3aXM
489977463X
4800712394
4800712564
4798153192
4899775067
4899774451
4899774117
4899771657
4899772408
0739デフォルトの名無しさん
垢版 |
2021/02/27(土) 20:00:58.09ID:2vAsLoLE
プログラミングまったく知らない状態からpythonの勉強始めたけど
最初なんか算数やらされています
楽しいからいいんだけど
0744デフォルトの名無しさん
垢版 |
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日間)に本日より改定させていただきました。
0745デフォルトの名無しさん
垢版 |
2021/02/28(日) 13:52:32.65ID:ZyTvjWG3
vscodeでa=bを書くと
a半角スペース=半角スペースb
みたいに行ごとに直してくれる拡張機能があった気がするのですがわかる方お願いします。
0747デフォルトの名無しさん
垢版 |
2021/02/28(日) 14:10:11.01ID:ZyTvjWG3
>>746
助かりました。ありがとうございます。
0748デフォルトの名無しさん
垢版 |
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なのですが、
リストを使ってハッチの指定はできないのでしょうか?
0752デフォルトの名無しさん
垢版 |
2021/03/01(月) 17:11:55.07ID:S1XXbIBo
データフレームに関する質問です。

特定の列がNanのみであるかどうか判定するにはどうすればよろしいでしょうか?
(列を削除、置換するわけではなくあくまで判定したいだけです。)
0755デフォルトの名無しさん
垢版 |
2021/03/01(月) 23:51:18.26ID:qIwpFI/L
質問・アドバイスよろしいでしょうか?

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

ご教授いただけると嬉しいです。
0756デフォルトの名無しさん
垢版 |
2021/03/02(火) 00:07:19.65ID:78wMHESr
Ubuntuが一番楽で次いでMac≧Windows
でもどうせPipenv系入れるんだし難易度はそこまで大差ない
今後機械学習とかに手を出すつもりならGPU積んだUbuntu Server建てるのが吉
0757デフォルトの名無しさん
垢版 |
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要素が入って、、
みたいな挙動に・・
0759デフォルトの名無しさん
垢版 |
2021/03/02(火) 00:26:09.32ID:rkiJtx71
自己解決?
再帰してtr.find('td')で上のひとつだけ取得して配列にいれて返したら
欲しい情報になった・・
そういう仕様なんですね
0760デフォルトの名無しさん
垢版 |
2021/03/03(水) 23:25:41.92ID:KD2bTQwL
1日調べて分からなかったから教えてください、、、
python3.7.6、Windows10環境で関数にタイムアウト機能をつけようとしています

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

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

非同期の例は公式にもある
https://docs.python.org/3/library/asyncio-task.html#timeouts
0762デフォルトの名無しさん
垢版 |
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
って感じ
0764デフォルトの名無しさん
垢版 |
2021/03/04(木) 09:46:10.05ID:ky+CpMbM
>>763
正直タイムアウトのライブラリ使ってるだけだからわからないんだ・・・
0766デフォルトの名無しさん
垢版 |
2021/03/04(木) 11:21:40.52ID:ky+CpMbM
>>765
そこのブログを参照して>>762を作ったんだけどエラーが・・・うむむ
0769デフォルトの名無しさん
垢版 |
2021/03/04(木) 14:48:50.66ID:isF+FKc+
恥を承知で...
初めて環境構築ってのをやったんだけどVSCodeで↓のエラー出てるんだけど何をどうしたら解決する?
anacondaの何かを参照する所が間違ってるのかなって思うんだけど

https://i.imgur.com/LXXt2m5.jpg
0772デフォルトの名無しさん
垢版 |
2021/03/04(木) 16:17:51.36ID:SnNpAHGf
プログラミングを勉強する前にPrintScreenの使い方を勉強したほうが
余計な恥を晒さずに済むぞ
0773デフォルトの名無しさん
垢版 |
2021/03/04(木) 16:18:52.63ID:8K5NzuEj
せめて女子じゃないとこういう誘いは意味がないぞ
そう、俺以外はな(じゅるり
0774デフォルトの名無しさん
垢版 |
2021/03/04(木) 16:20:01.98ID:isF+FKc+
んーなんかいろいろやってるけどダメっぽいなぁ
>>772
それぐらい知ってるわいメンドイダケ(´・ω・`)
0776デフォルトの名無しさん
垢版 |
2021/03/04(木) 16:54:49.58ID:Kw8G1bym
eric6を使い始めましたが、Visual studioのエディタの様にドットを入力したメンバー関数とか変数の候補を出す機能はありますか?
0778デフォルトの名無しさん
垢版 |
2021/03/04(木) 18:34:53.66ID:JWz6ZGLm
>>777
直前に見てた別スレとなめらかにつながってて俺震撼

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

win + shift + S で画面ハードコピー(範囲選択付き)や
0780デフォルトの名無しさん
垢版 |
2021/03/04(木) 23:27:05.50ID:r630MI+k
エディタは何にしたらいいですか?

プロ用じゃなくて、このスレらしく初心者用でお願い
0781デフォルトの名無しさん
垢版 |
2021/03/04(木) 23:30:29.13ID:z3c4cn+G
a1bc23def456gh32z
という標準入力があった場合、

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

s = list(input())
として一文字ずつ取り出して判別していく方法は思いつくのですが、
数字と文字で簡便に切り分ける方法があればお教え頂けると幸いです。
よろしくおねがいします。
0783デフォルトの名無しさん
垢版 |
2021/03/04(木) 23:55:12.53ID:FIbtDWBm
>>781
import re
re.findall(r'[A-Za-z]+|[0-9]+', foo)
で分けられるけど分けた後どうしたいかも含めて考えたほうがいいと思う
1文字ずつ判定していくのはそれほど悪い方法ではない
0788デフォルトの名無しさん
垢版 |
2021/03/05(金) 12:39:59.89ID:Dk6id0UV
Pythonの勉強始めたばかりですが、よい基本書あったら教えてください

当方プログラミング初心者です。
0790デフォルトの名無しさん
垢版 |
2021/03/05(金) 13:45:45.22ID:Dk6id0UV
>>789 ありがとうございます
0791デフォルトの名無しさん
垢版 |
2021/03/05(金) 13:47:56.77ID:Dk6id0UV
入門python3はいかがですか?オライリージャパンから、今度新板がでるようですが
0792デフォルトの名無しさん
垢版 |
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]) という正規表現で切り替わりの境界を見つける
0793デフォルトの名無しさん
垢版 |
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"]
0800デフォルトの名無しさん
垢版 |
2021/03/05(金) 22:24:37.67ID:D5FTzdov
>>799さん、ありがとうございます。
オライリー本か望洋先生の本か迷っています。オライリージャパンからv3.9の新版がでるのでそちらにしようと考えています。
0802デフォルトの名無しさん
垢版 |
2021/03/06(土) 00:00:47.07ID:3q/qkAqm
for s in csvlist:
dic[(s[1],s[2])]+=1

みたいなのをリスト内包括表記で書く方法はありますか?
0804デフォルトの名無しさん
垢版 |
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}
0806デフォルトの名無しさん
垢版 |
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}
0810デフォルトの名無しさん
垢版 |
2021/03/06(土) 08:58:32.28ID:LBruwFX5
nkmkっていう読みづらいクソサイトがいっつも検索の上位にくんの何とかなんない?
0811デフォルトの名無しさん
垢版 |
2021/03/06(土) 09:17:08.69ID:Pfr/M2Zt
>>809
forが遅くなるのはループ内の処理の問題であって、とにかくリスト内包に直せば高速化する訳ではない
0813デフォルトの名無しさん
垢版 |
2021/03/06(土) 09:37:40.69ID:qinwWtrN
Python(基本ライブラリ)の場合は、内包表記の代わりの書き方となると、
sum(map(fliter(...)))っていう書き方になるからな。
段数増えてくると読み辛い。
0817デフォルトの名無しさん
垢版 |
2021/03/06(土) 10:16:22.99ID:lBapLpDG
ただ単機能を使うだけなら使い手からしたら同じだろうが内実は全然違う。
self(this)の呪縛から解き放たれているため、レシーバーがなんたるかに依存せずに機能を作れ、使用時に自由に組み合わせ(composition)ることができる。
機能だけに集中して作成することができる最小単位のビルディングブロックであり、思考の枷を解き放つ…!
0818デフォルトの名無しさん
垢版 |
2021/03/06(土) 10:21:08.23ID:BWZLcpxD
>>816
パイプでメソッドチェーンのようなことはできるが逆は無理。
少なくとも>>813に必要なのはメソッドチェーンじゃない。
0819デフォルトの名無しさん
垢版 |
2021/03/06(土) 10:35:13.45ID:LBruwFX5
どうしてもパイプを使いたいなら、サードパーティになるが、fn.pyでも使うんだな
それなら、>>で処理をつなぐことができる
0820デフォルトの名無しさん
垢版 |
2021/03/06(土) 11:25:14.63ID:iEqPiFd0
>>814
嫌ってるわけじゃなく基本の設計思想がオブジェクト指向と親和性が低いだけ
ビルトイン関数のsum()やlen()を考えれば分かる
Python使うなら諦めるしかない

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

>>813のは他の言語ならreduceやfoldを使う
Pythonでもreduceでできるけどチェーンできないのであんまりメリットがない
0821デフォルトの名無しさん
垢版 |
2021/03/06(土) 11:47:45.99ID:GYmibT3F
PythonはCOBOLの後継言語という位置づけだから
あまり凝ったことをしない方がいいよ
オブジェクト指向もできるだけ使わない方がいい
0822デフォルトの名無しさん
垢版 |
2021/03/06(土) 12:02:32.90ID:+wsnPdhj
ただ直線的にデータを加工するだけの一本糞バッチが多いという点においては、確かにCOBOLの後継という面もあるかもね
0824デフォルトの名無しさん
垢版 |
2021/03/06(土) 18:25:00.30ID:a4TnS/vO
スキャルピングの名著的なのある?(^_^;)
本屋行っても初心者用しかないわ、美汁やなくてpandasに詳しいやつ、ホームページでもいいわ
0830デフォルトの名無しさん
垢版 |
2021/03/06(土) 22:15:44.94ID:Tfz5lFd6
ワンライナーやめて関数作ったり中間変数使えばいい話だろ。馬鹿なのかな?
0835デフォルトの名無しさん
垢版 |
2021/03/06(土) 23:56:48.44ID:9Z1HHUlG
>>833
マ界隈には、
1行こそ至高のわかりやすさ! と信じて疑わないパラノイアけこういるいる
0838デフォルトの名無しさん
垢版 |
2021/03/07(日) 06:55:54.30ID:GawQ6mmH
pythonみたいなレガシー言語しか知らないと脳みそまでレガシー化するいい例だな
0839デフォルトの名無しさん
垢版 |
2021/03/07(日) 07:39:27.92ID:idMgiyQ5
可読性w低レベルな底辺コーダーが自分が読めないからって言い訳によく使う言葉よね
0843デフォルトの名無しさん
垢版 |
2021/03/07(日) 13:03:58.50ID:TkByhUzl
関数型マンセー馬鹿もオブジェクト指向馬鹿と同じく淘汰されるのに20年くらいかかりそうだな。
0847デフォルトの名無しさん
垢版 |
2021/03/07(日) 17:24:39.60ID:0wLP1PJV
>>833
わかりやすい100行って例えばどういう例?
100行という長さだけで分かりにくくなりそうなもんだが
0848デフォルトの名無しさん
垢版 |
2021/03/07(日) 17:47:23.42ID:un0/iepj
>>846
お前すごいな、自分の顔と髪と服装が異常なことを自覚してからそういう書き込みしような?
0852デフォルトの名無しさん
垢版 |
2021/03/07(日) 21:19:44.74ID:qqMvcMU2
pytorchでLSTM組もうとしてるけど解説がえらい難しい
引数がどこに渡って、なんでその数字になってるかさっぱりわからん
0853デフォルトの名無しさん
垢版 |
2021/03/07(日) 23:59:52.34ID:xtEqsmh7
リカレントニューラルネットワークって
オワコンって聞いたけど
まだ需要あったのか😅
0855デフォルトの名無しさん
垢版 |
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成分はどう読み込むのが簡単でしょうか?
0856デフォルトの名無しさん
垢版 |
2021/03/08(月) 09:58:08.34ID:2nW5LwXW
youtube apiって何に使うんですか?
動画のリンクを作るとして、どういう切り口なら面白いでしょうか?
例えばゲーム実況動画を集めるにしても、どういうフィルターをかけますかね(´・ω・`)
0858デフォルトの名無しさん
垢版 |
2021/03/08(月) 11:23:08.69ID:rGThYfFy
Youtube APIを活用して人気ゲーム実況者になりたいです
どうすればなれますか?
0860デフォルトの名無しさん
垢版 |
2021/03/08(月) 13:23:55.77ID:+QBu4Sia
そしてゲームの権利を持っている会社に訴えられれば良いんだ
富士額の鼠とか
0861デフォルトの名無しさん
垢版 |
2021/03/08(月) 19:40:31.97ID:WPDBHf+v
>>856
こういう障害者増えたよな
現実世界的にも
0864デフォルトの名無しさん
垢版 |
2021/03/08(月) 21:05:23.74ID:f20FHOXZ
>>861
あなたは医者なのでしょうか?
医師免許を持ってないのに診断を行うことは良くないと思います
0868デフォルトの名無しさん
垢版 |
2021/03/08(月) 22:39:14.06ID:0xESjDVh
exData
みたいなフォルダ名に入ったファイルをpython側で開ことするとエラーが出るのですが、
命名規則に違反しているのでしょうか?
exdata
だとエラーはでません。
0870デフォルトの名無しさん
垢版 |
2021/03/08(月) 23:54:30.74ID:HSZ1rybx
>>867
パソコン嫌いなのにこの板見てる奴想像したらなんか草生えた
0871デフォルトの名無しさん
垢版 |
2021/03/09(火) 01:05:57.42ID:AUPcmD7L
ローカルな変数をグローバル宣言すればガベージコレクションを避けられますか?
0873デフォルトの名無しさん
垢版 |
2021/03/09(火) 03:40:18.58ID:O1t/zxF9
地球を爆破すればゴキブリ絶滅させられますか?みたいなw
ようするに、結果的に避けられるよw
0875デフォルトの名無しさん
垢版 |
2021/03/09(火) 10:05:56.07ID:nIjEMu5f
ローカルとグローバルスコープの違いをわざわざガベコレ言うとか欧米かよw
0882デフォルトの名無しさん
垢版 |
2021/03/09(火) 12:16:04.90ID:WPE7QJH3
>>879
昔BASICで再帰的なことやって上手くいかなくて泣きそうになった覚えある
小学生だったけど
そのときは、>>881の言うように変数を配列にしてスタック的なことを実装したけど
でも、自力スタックがめんどくさいからローカル変数ってものができたんじゃないの。
0884デフォルトの名無しさん
垢版 |
2021/03/09(火) 14:11:50.18ID:iP4nVCks
末尾再帰とループは互換
0885デフォルトの名無しさん
垢版 |
2021/03/09(火) 14:33:43.96ID:SOel1NaK
より簡単にデスクトップアプリが作れるPySimpleGUIを使ってみよう
2021/03/03 11:20
著者:クジラ飛行机
0887デフォルトの名無しさん
垢版 |
2021/03/09(火) 17:42:55.00ID:1va3W7Si
>>883
検索って言うか再帰的なデータを処理する時は普通使うでしょ
言語パーサーとかフォルダー内のファイルサイズの総計求めたりとか
0888デフォルトの名無しさん
垢版 |
2021/03/09(火) 19:12:23.86ID:qz7mFwyh
あわしろ氏によると、再帰は力なりってことらしい。
0893デフォルトの名無しさん
垢版 |
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'全部取り出す、みたいな
0897デフォルトの名無しさん
垢版 |
2021/03/10(水) 16:04:15.72ID:c62Azmpw
{'key1': 'val1', 'key2': 'val2', 'key3': 'val3'} ←辞書A
{'key3': 'val3', 'key1': 'val1', 'key2': 'val2'} ←辞書B
辞書Aを辞書Bのように変更する方法を教えて下さい
0898デフォルトの名無しさん
垢版 |
2021/03/10(水) 16:08:24.87ID:GqqrwlDC
v, w, x, y, z がそれぞれ異なる正の整数のとき
w**5+x**5+y**5+z**5 == v**5
となる組み合わせを少なくとも一つ求めよ
0900デフォルトの名無しさん
垢版 |
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以外のデータ型を使ったほうがいい気がする
0902デフォルトの名無しさん
垢版 |
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()
0903デフォルトの名無しさん
垢版 |
2021/03/10(水) 23:15:16.74ID:PBvGnBXn
>>892
0904デフォルトの名無しさん
垢版 |
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
0905904
垢版 |
2021/03/11(木) 04:51:26.59ID:yhTUIDNA
これたぶん、順番かんけいなくa==bはTrueになるわ
気になって目が覚めたけど布団からでられんくて試せん
0906デフォルトの名無しさん
垢版 |
2021/03/11(木) 08:15:22.35ID:DSKl5Aml
3.7以降は挿入順が保証されてるんだけど、equal判定には影響しないと。
まあ当たり前だわな。
0907デフォルトの名無しさん
垢版 |
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個出力されるのはなぜ?
0908デフォルトの名無しさん
垢版 |
2021/03/11(木) 19:42:04.74ID:uFIDt3HD
>>904
恥を忍んで聞きたいのだけど、
b == {k: v for k, v in (a.popitem(), *a.items())}
この一行を内包表記を使わないで書いてください
0909デフォルトの名無しさん
垢版 |
2021/03/11(木) 20:29:28.00ID:dIdzHpoo
>>908
右辺は空のディクショナリにfor文で要素を追加していくだけやで
でも式で表現できないから左辺との比較演算したいなら関数化する
0910デフォルトの名無しさん
垢版 |
2021/03/11(木) 20:38:25.36ID:yhTUIDNA
>>908
比較演算は無視してください

c = dict()
for k, v in (a.popitem(), *a.items()):
____c[k] = v
0911デフォルトの名無しさん
垢版 |
2021/03/11(木) 20:51:30.67ID:/anLXWSZ
pysideのデザイナでフォームを作っていますが、実行すると全然デザイン通りの表示になりません
コントロールが全部サイズが小さくてつぶれてしまいます
なにが原因なのでしょうか?
0913デフォルトの名無しさん
垢版 |
2021/03/11(木) 21:01:03.02ID:yhTUIDNA
順序比較
result = map(lambda x, y: x == y, c, b)
print(all(result))
# True
0914デフォルトの名無しさん
垢版 |
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時間悩んでいます。。。
0918デフォルトの名無しさん
垢版 |
2021/03/12(金) 17:54:04.00ID:vwXIO5A5
>>915 様 916 様 ありがとうございます。

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

kosuu.index[0] が30000なので

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

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

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

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

とりあえずデータフレームでの条件抽出の方法と
at、iat、loc、ilocの使い方を調べた方が良い
0922デフォルトの名無しさん
垢版 |
2021/03/13(土) 16:49:49.59ID:VVi6+nr1
day name
23 orange
25 apple

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

fruit = df.loc[0,'name']
だとエラーが出ます
0925デフォルトの名無しさん
垢版 |
2021/03/13(土) 18:10:21.60ID:VVi6+nr1
df.loc[0,'fruit']



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

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

なんでなんだろう・・・?
0927デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:02:13.75ID:vHT18lcc
「でもなぜかエラーが出ます」

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

なんでなんだろう・・・?
0928デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:20:14.43ID:4CH/cwMq
そりゃ自分の貴重な時間よりヒマそうな人物の無駄だろう時間を活用する方が大事だろ?
これは代弁だよ代弁
0929デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:29:00.56ID:4CH/cwMq
エラーの原因を自力で調べられない、もしくは調べても分からないなら
エラーを再現できる最小限のコードを提出した上で原因を質問しろ
0932デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:46:03.14ID:Gs819GmX
♪なんてったってID
私のID (Your ID)
IDがかぶったね〜
(さぁ みなさんご一緒にー)
yeah! yeah! yeah!
0933デフォルトの名無しさん
垢版 |
2021/03/13(土) 21:58:35.47ID:w/+LKebv
「ID被るなんてあり得ない!自作自演だ!」って言い張る奴いるよね。
IPv4足りなくて使い回してるのに。
0936デフォルトの名無しさん
垢版 |
2021/03/13(土) 22:48:23.65ID:qg8nW91/
IDが被ることなんてよくあるけど>>928の次のレスでいきなり被るなんてまず無いだろ

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

ID:4CH/cwMqが出てこなけりゃ俺の推理が当たってることになっちゃうねぇ〜w
0939デフォルトの名無しさん
垢版 |
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列目の位置を知りたい
0940デフォルトの名無しさん
垢版 |
2021/03/14(日) 17:52:30.82ID:eeLePgm1
うーん、何がしたいのかよく分からん。
物凄く簡単なことを複雑に表現している気もしないでもない。
0941デフォルトの名無しさん
垢版 |
2021/03/14(日) 18:07:15.51ID:UOoBKmpX
>>939
文字列なのか、正数の2進数表記のことなのか、何を言いたいのかわからん。
ビットのアンドを取ればいいとかいう話ではない?
0942デフォルトの名無しさん
垢版 |
2021/03/14(日) 18:07:42.69ID:NVyYwYtr
>>939
0010111111
0000011111
↑これだと該当なし?

0110110111
0000011111
↑これも該当なし?

0110111111
1100011111
↑これも該当なし?

0010111111
0100011111
↑これだと3列目?
0943デフォルトの名無しさん
垢版 |
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)
0944デフォルトの名無しさん
垢版 |
2021/03/14(日) 19:05:19.92ID:8bm6cw7M
>>941
ゼロとイチの境界なら1bitシフトしてXORすればいいけど
2行分をどう扱いたいのか分からない。
0945デフォルトの名無しさん
垢版 |
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)

のように書いたり試してみましたが両方とも降順になってしまいます。
0947デフォルトの名無しさん
垢版 |
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]]
0948デフォルトの名無しさん
垢版 |
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で検索したほうが速い気がする
0950デフォルトの名無しさん
垢版 |
2021/03/14(日) 20:27:54.91ID:Y6CmRV5p
こんなモンが欲しいのかと思った
https://ideone.com/q2rCBm
0951デフォルトの名無しさん
垢版 |
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)でやる以外にはないんじゃないかな
0952デフォルトの名無しさん
垢版 |
2021/03/15(月) 03:21:26.79ID:p7hcxdJK
プログラム組んでいるんだけどさあ
一週間で出来ないとモチベが下がってそのまま放置になること多いんだよな、、

自分が楽をするためが動機だから、もういいわ!ってなる
0957デフォルトの名無しさん
垢版 |
2021/03/15(月) 11:11:24.43ID:FrmPLjBr
雑に書いた手続き型のプログラムをオブジェクト指向で書き直して自己満足することはよくあるけど
ぶっちゃけ個人開発なら手続き型で十分だよな
0959デフォルトの名無しさん
垢版 |
2021/03/15(月) 12:06:27.25ID:JMxBUfb9
手続き型(Imperative)の反対は宣言型(declarative)だぞ。
手続き型かどうかはオブジェクト指向かどうかとまるで関係がない(直交する)
CもC++もC#もJavaもJavaScriptもPythonもPHPもGoもRustもみんな手続き型。
Prolog属などが宣言型。
Prologはパフォーマンス上カットなどの仕組みがあって純粋な宣言型ではないが。
数理証明系のドマイナー言語には純粋な宣言型のものもあるとか。
メジャー言語はほぼ100%手続き型。
HTMLやCSSはプログラミング言語ではないので除く。
たまにメジャー言語で宣言的に書けるのがどうのこうのという話が出てくるが宣言「的に」って言ってる時点で気づこうな。
0960デフォルトの名無しさん
垢版 |
2021/03/15(月) 12:27:55.07ID:OEM1rmYt
手続き型プログラムってProcedural programming(procedure:手続き)だと思ってたけど。
厳密には手続き型とオブジェクト指向は対義ではないけど、
「関数を呼び出す」っていう手続き型の根本的な構造の限界に対して
オブジェクト指向がもてはやされてきた歴史があるから、あながち間違いではないと思う
0963デフォルトの名無しさん
垢版 |
2021/03/15(月) 14:14:35.81ID:DXCJp1HT
正確にはimperativeは命令型。
その反対が宣言型(declarative)。
手続き型(procedural)は命令型(Imperative)の派生概念。
手続き型であれば必ず命令型である、という関係。
よく同義語として用いられがちだが、ブロックもスコープも備えていない言語は命令型言語であると言えても手続き型言語であるとはふつう言わない。
ところがオブジェクト指向は手続き型言語の標準装備となってきている一方で宣言型言語にも取り入れることは可能なので、やはり直交概念ではないかと思う。
0964デフォルトの名無しさん
垢版 |
2021/03/15(月) 14:38:22.84ID:W4mhVG7e
1つのプログラミング言語が両方の要素を持ってることはよくあることだけど
手続き型プログラミングとオブジェクト指向プログラミングは直交した概念ではないよ
0966デフォルトの名無しさん
垢版 |
2021/03/15(月) 15:52:07.88ID:JMxBUfb9
クラス定義時はメソッドの中身は手続き書いてるし、
メソッドコール時はイチ手続きとして記述してるじゃん。
つまり手続き型にオブジェクト指向加えることも可能だし、加えないことも可能というだけで、オブジェクト指向だから手続き型じゃないというのは完全に間違っている。
これはCもC++もC#もJavaもJavaScriptもPythonもPHPもGoもRustもCommon LISPもObject PascalもSwiftもKotlinも同じ。
詭弁を弄してる暇があったら勉強するべき。
0967デフォルトの名無しさん
垢版 |
2021/03/15(月) 16:02:22.13ID:JMxBUfb9
オブジェクト指向だから手続き型じゃないというのは、
Qちゃんはピッチ走法だから走ってない
真央ちゃんはフィギュアしてるからスケーティングしてない
こう言ってるのと同じです。
修辞的にはありかとも思いますがね。
0969デフォルトの名無しさん
垢版 |
2021/03/15(月) 16:08:14.29ID:W4mhVG7e
>>966
プログラムの中になんらかの手続きが書いてあれば
それらはすべて「手続き型プログラミング」と呼べるという定義ならそうかもね

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

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

それぞれ直交した概念でもなければ排他的な分類でもない
0982デフォルトの名無しさん
垢版 |
2021/03/16(火) 03:45:18.19ID:6arf77iJ
言語の方が複合的なパラダイムに対応していても覚える頭が1ビットしかないから其れだと困るねん
0983デフォルトの名無しさん
垢版 |
2021/03/16(火) 04:14:50.86ID:K4E4Nbs9
宣言型∩オブジェクト指向は実験的prolog拡張実装がいくつかあった気がする。
関数型はオブジェクト指向と相性悪いつか関数型勢からは唾棄すべき害悪として忌み嫌われてる印象。
世の中でオブジェクト指向といったら実質99%は手続き型∩オブジェクト指向だと思う。
C++以前から、smalltalkからこのタイプだもん。
0987デフォルトの名無しさん
垢版 |
2021/03/16(火) 10:37:00.38ID:xULngIlE
>>981
確かに「〜型」という言葉で1ビット二元思考になるやつが多いのかも
「〜的」とでも訳しておけばよかったのに
0988デフォルトの名無しさん
垢版 |
2021/03/16(火) 11:20:57.40ID:XtVeGAkv
a = hoge()
a.hogeset(1)

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

a = hoge().hogeset(1)

イメージはこんな感じで書いてメソッド呼び出しつつ変数aにはオブジェクトhoge本体を収めたい(hogesetは何も返さない)
0990デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:25:58.91ID:ja5zi908
オブジェクトhoge本体
0991デフォルトの名無しさん
垢版 |
2021/03/16(火) 12:46:56.08ID:Zc215ysF
GUI部品でsetVisible(True)とかなら略しない方がいい
0994デフォルトの名無しさん
垢版 |
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だからまた今度にするわ (進歩しないゴミ)
0995デフォルトの名無しさん
垢版 |
2021/03/16(火) 15:40:26.02ID:ZzxG4K64
>>993
えーこういうこと?
(a := hoge()).hogeset(1)

条件式とかの中ならありだと思うが2行でも書けるところに使うのは気持ち悪いな
0997デフォルトの名無しさん
垢版 |
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)
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を超えています。これ以上書き込みはできません。

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