X



くだすれPython(超初心者用) その46【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2020/01/02(木) 15:56:54.08ID:ZUrZA+uS
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

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

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

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

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

〇前スレ〇
くだすれPython(超初心者用) その45【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1571188632/
0384デフォルトの名無しさん
垢版 |
2020/01/25(土) 20:38:46.42ID:zXhFVDQK
カンマで区切ったらsetになるから「setをの中身をdictのように参照はできんぞ」となるわな
0385デフォルトの名無しさん
垢版 |
2020/01/25(土) 22:26:57.93ID:PcW4kwXa
setのリテラルあったの知らんかった
0386デフォルトの名無しさん
垢版 |
2020/01/26(日) 00:05:48.41ID:oOcVQS8z
もう1つよいでしょうか
辞書型の使い方がよくわからないのですが

testDict = {"a":1,"b":{"b-1":2.1,"b-2":2.2},"c":3}

という辞書があった場合

testDict = {"a":1,"b":{"b-1":2.1,"b-2":2.2,"b-3":2.3},"c":3}

というように、辞書の中の辞書に要素を追加するにはどうしたらよいですか?
0388デフォルトの名無しさん
垢版 |
2020/01/26(日) 00:17:05.87ID:oOcVQS8z
>>387
ありがとうございます!
0389デフォルトの名無しさん
垢版 |
2020/01/26(日) 11:16:01.43ID:Y8WnpXRT
完成したプログラムをExeファイル化して配布しようと思うのですが、
pyinstallerで

pyinstaller set_data_ver25.py --onefile

としたところ

maximum recursion depth exceeded while calling a Python object

となります。
0393デフォルトの名無しさん
垢版 |
2020/01/26(日) 11:58:14.00ID:2upMPRsR
floatのunixtimeをdatetime.timeの時分秒の文字列(日にちなし)に変換するメソッドはありますでしょうか?
今はdivmod()で順次割ってformat()で文字列変換し':'で結合しております。
0395デフォルトの名無しさん
垢版 |
2020/01/26(日) 12:19:30.18ID:R5dI7Hbk
ああ、クラスの方か
クラスも文字列ではないから辻褄が合わないけど
print(datetime.fromtimestamp(unixtime).time())
でいい話のような気もするな
まあ、知らね
0397デフォルトの名無しさん
垢版 |
2020/01/26(日) 13:16:45.26ID:Y8WnpXRT
おそらく

https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt

でpyinstallerの設定変えろってことなんだとおもうんですが、anaconda使用してターミナルからpipでインストールしたpyinstallerがどこのフォルダにあるのかわからない・・・
アナコンダでインストールしたPyhotnのフォルダってそもそもどこにあるんでしたっけ?
0402デフォルトの名無しさん
垢版 |
2020/01/26(日) 17:35:08.11ID:Y8WnpXRT
>>401
os windows10
anaconda
python3.7

です。
https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt
の方法で

out = out.decode(encoding, errors='ignore')

としたら実行ファイルできたけど、
Runすると

読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力

となるはずが、読み込みファイルを聞いてこず、なにか謎処理をしてグラフは出さずに計算結果だけ出力します。
なんだこりゃ。
0403デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:02:56.11ID:R5dI7Hbk
Anaconda信者はちゃんとサポートしてやれ
俺はあんなゴミ使わないから知らねー
0404デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:05:10.13ID:htXcC3/b
配列で
0番目の値を1番目の値に足す
1番目の値を2番目の値に足す
というのを繰り返して
最後は
n番目の値を0番目に足す
こういうループを作るのってどうすればいいですか?
a=[]
for i ,h in enumerate(haireru):
___a.append(hairetu[i]+hairetu[1+1])

にすると最後ゼロ番目と計算できないです
0405デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:34:25.67ID:htXcC3/b
すみません

aは配列じゃなくてループ内ですぐに使いたいので
iはゼロはじまりでお願いします

for i ,h in enumerate(hairetu):
___a=(hairetu[i]+hairetu[i+1])
__b=c*a
0406デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:39:12.37ID:ux8Vy6ZU
>>404
foo = [1,2,3,4,5]
[ x + y for x, y in zip(foo, foo[1:] + [0])]
#=> [3, 5, 7, 9, 5]

このパターンこのスレだけでもう3回目くらいだと思うんだけどなんで頻出なのか謎
0407デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:39:24.22ID:0XMsrEiZ
>>402
だから文字コード(encodingの中身)をちゃんと指定汁とさっきから言ってるだろうがよ

Anacondaの詳しいことはおれもよーしらんわ >>403
0409デフォルトの名無しさん
垢版 |
2020/01/26(日) 18:43:49.29ID:+Q3fYZeR
>>403
Anaconda信者とかより、コミュとれない奴の相手はエスパー・高脳でないと相手できないからな。
>読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力
以下略
は、エスパー・高脳でないとポカーンになる感じだからな
0411デフォルトの名無しさん
垢版 |
2020/01/26(日) 21:10:21.36ID:htXcC3/b
>>406
>>410
ありがとうございます
配列って[:]どうしだと合体できるんですね
助かりました
0412デフォルトの名無しさん
垢版 |
2020/01/26(日) 21:40:26.45ID:Y8WnpXRT
401ですけど、

すいません。
コード上げてきちんと質問するべきですよね。
期限迫ってたのであせってたのですが、寝落ちして少し頭冷めました。
あきらめて現在のところまででまとめることにしました。

今の仕事終えてから、ご指摘頂いたこともう一度確認してみます。
0413デフォルトの名無しさん
垢版 |
2020/01/26(日) 22:23:07.80ID:mYb8Rqtn
>>404,405
n=len(hairetu)
for i ,h in enumerate(hairetu):
___a=(hairetu[i]+hairetu[(i+1)%n])
__b=c*a
0414デフォルトの名無しさん
垢版 |
2020/01/29(水) 16:41:03.56ID:rr34JdCX
どこまでdefでまとめるのが良いのかアドバイスお願いします
一定の距離ごとに物体の置いてその場所や向きや大きさを決めています
距離ごとに計算すべきなのか
最初から物体の位置、向き、大きさをすべて計算して
置けばよいのでしょうか?

↓距離ごとの計算
for km in 距離:
__物体の位置()に物体を置く処理
__向きの計算()に物体の向きを変える処理
__大きさ()に物体の大きさを変える処理


def 物体の位置:
___計算式

def 物体の向き:
__計算式

def 大きさ():
__計算式
0415デフォルトの名無しさん
垢版 |
2020/01/29(水) 16:43:09.94ID:rr34JdCX
続きです

↓まとめて計算した場合
for x in 物体の位置():
__物体を指定の位置に置く処理

for y in 物体の向き():
__物体を指定の向きに置く処理

for z in 物体の大きさ():
__物体を指定の大きさにする処理

def 物体の位置():
位置 = []
__for km in 距離:
___位置.append()
__return 位置

def 向きの計算():
向き=[]
__for km in 距離:
___向き.append()
__return 向き
0416デフォルトの名無しさん
垢版 |
2020/01/29(水) 17:34:31.08ID:V4INQ4I7
>>414
その2つなら後者を選ぶケースは考えにくいかな

俺の読解力の問題かもしれんが、「for km in 距離:」がよく理解できん
距離はどういうイテレータ?
例えば、距離 = [1, 2, 3, 4, 5] みたいなものと考えればいいの?
で各距離の値によって各物体の位置、向き、大きさが決まる?
0417414
垢版 |
2020/01/29(水) 20:49:58.87ID:rr34JdCX
>>416
ありがとうございます
一個目みたいにまとめることにします

for km in 距離:は
各距離から置く場所や向きや大きさを決めてます
0418デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:13:17.15ID:V4INQ4I7
>>417
各物体の位置・向き・大きさを計算する部分と
それを使ってI/O的な処理をする部分は分けておいたほうがいいと思う
それぞれ違う理由で変更したくなるから混ざってると後で面倒

きれいに分かれてれば計算しつつ出来た順にI/Oするよう変更するのも簡単

↓関数/データに分けた場合とオブジェクトにまとめた場合のイメージ
https://techiedelight.com/compiler/?n7t7
https://techiedelight.com/compiler/?qDa4
0419414
垢版 |
2020/01/30(木) 01:07:15.66ID:TCVWvduC
>>418
解説をつけてもらってありがとうございます
入力・出力もどうしようか悩んでいたので
助かります!!
0420デフォルトの名無しさん
垢版 |
2020/01/30(木) 17:49:07.16ID:9oqZpWVT
raspbian上でwebviewを使用しています。
公式ページのサンプルをコピペしたのですが、そんなattributeは無いとエラーになります。
オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。
0423デフォルトの名無しさん
垢版 |
2020/01/30(木) 23:03:41.98ID:zqJjLosR
あっそ
じゃあしねよ
0424デフォルトの名無しさん
垢版 |
2020/01/30(木) 23:10:41.47ID:SpgFxTsY
>>422
煽りが返ってくるってことはだいたい質問が悪い
公式ページのサンプルってどこの公式だよURLくらい貼れ
何を実行してるかわからないのに答えられるわけないだろ
0425デフォルトの名無しさん
垢版 |
2020/01/30(木) 23:12:46.73ID:TcPsF5Vj
>>423
キモすぎワロタ
0426デフォルトの名無しさん
垢版 |
2020/01/30(木) 23:16:17.43ID:TcPsF5Vj
オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。

これに答えろってことだろ
なにをぶつぶつ言ってるんだよw
0429420
垢版 |
2020/01/31(金) 11:20:07.05ID:NXB8BBj3
>>428
教えていただいた方法で表示できました。ありがとうございます。
0431デフォルトの名無しさん
垢版 |
2020/01/31(金) 17:48:23.76ID:ltLMy86h
惨めだなぁ…
0432デフォルトの名無しさん
垢版 |
2020/01/31(金) 22:07:10.58ID:WYJCj5Ov
hoge = "わたしの名前は{0}です"

こういう変数hogeは、f-stringで値埋め込むのは無理だよね?
hoge.format()するしかないよね
0433デフォルトの名無しさん
垢版 |
2020/01/31(金) 22:14:17.30ID:KoDF/0eX
>>432
ムリジャナーイ Python!

hoge = "わたしの名前は{{0}}です"
hoge
↑この2行をこのままコピペ実行してみよう!
(3.6.5以降なら確実におk)
0434デフォルトの名無しさん
垢版 |
2020/01/31(金) 23:36:34.66ID:BFxfTyah
惨めな上に頭も悪いときたあ
0436デフォルトの名無しさん
垢版 |
2020/02/01(土) 07:59:04.74ID:caubOhav
>>435
なるほどぉ…
出来ることは理解したけど、微妙に読みづらい感があるな
ありがとうございました
0437デフォルトの名無しさん
垢版 |
2020/02/01(土) 15:23:41.81ID:p+nIpDYx
デバックについての質問なのですが
evo=[1,5,3,8]
ana=[7,6,5,4]
for e,a in zip(evo,ana):
____print("aaaa")
____c=a*b
____d=e+c

をコピペしてデバッグしてるのですが
de=3
a=ana[de]
e=evo[de]
if 1=1:
#for e,a in zip(evo,ana):
___print.....
___.........

みたいな感じでif分つけて無理やりインデント合わせてコピペして
デバッグしてますが
そういうループの途中だけ動きを見る方法でもっといい方法ありませんか?
0438sage
垢版 |
2020/02/01(土) 15:32:30.14ID:aHBNrXGA
MATLABでいうsimulinkの代用になりそうな物ってありませんか?環境移行したいんですがこれだけどうしても見つからなくて。
0439デフォルトの名無しさん
垢版 |
2020/02/01(土) 15:38:32.96ID:fiLTG5Nb
evo=[1,5,3,8]
ana=[7,6,5,4]
for e,a in zip(evo,ana):
____if (e, a) != (8, 4): continue
____print("aaaa")
____c=a*b
____d=e+c
0441デフォルトの名無しさん
垢版 |
2020/02/01(土) 16:00:39.94ID:p+nIpDYx
>>439
for の中にifコンテニューですか
ありがとうございます

>>440
そんなものあったなんて知らなかったです
ありがとうございます
0444デフォルトの名無しさん
垢版 |
2020/02/01(土) 16:20:42.33ID:EnxAFhi/
$ python3 ipdb_conditional_breakpoint.py
1 import ipdb; ipdb.set_trace(context=10);
2
3 b = 2
4 evo=[1,5,3,8]
5 ana=[7,6,5,4]
6 for e,a in zip(evo,ana):
7 ____print("aaaa")
8 ____c=a*b
9 ____d=e+c

ipdb> break 7, e == 8
Breakpoint 1 ./ipdb_conditional_breakpoint.py:7
ipdb> c
# e ==8 の場合のみ7行目で停止
ipdb> print(e, a)
8 4
0445デフォルトの名無しさん
垢版 |
2020/02/02(日) 22:34:59.17ID:nTdekf5z
forやdefで使う変数が多くなったときはどうしてますか?
7個ぐらいになってくると
行が長くなって何とかしたほうが良いのか
悩みます

色々ありがとうございます
>>442
blenderというソフト内のpython使ってて
本格的なデバッグ機能があまりないのです
その辺りは専用スレで聞いてみます
0446デフォルトの名無しさん
垢版 |
2020/02/03(月) 00:07:04.35ID:XimuQ1Xy
>>445
型にまとめられるものはまとめる
単に行が長いのが困るだけなら改行すればいいだけ
あとは*args, **kwargs
0447デフォルトの名無しさん
垢版 |
2020/02/03(月) 00:42:52.51ID:M5UXjnSG
>>446
ありがとうございます
なんでも改行可能なんですね
中身を変数にまとめれるんですね
助かります!!
0450デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:17:00.67ID:62FLJlST
>>445
おすすめはせんけど行減らすだけなら
a=1
b=2
c=3
のかわりに
a,b,c=1,2,3
意味のあるまとまったデータなら別クラスにして
hoge=Hoge(1,2,3)
0451デフォルトの名無しさん
垢版 |
2020/02/03(月) 12:20:59.82ID:62FLJlST
ああそういう意味じゃないのか
制御変数の話なら適当に改行汁

あと blender は漏れも使ってるけど
癖があるので普通の python だと思わない方が良い
(普通の python で慣れてる人が使う分には問題無いが)
考え無しにあれを使い続けると糞プログラマになるだけだと思う
0452デフォルトの名無しさん
垢版 |
2020/02/04(火) 23:09:14.52ID:0mUTKS9X
plt.subplot使ってグラフを2つ表示しています

plt.subplot(1, 2, 1)
plt.title('attention')

plt.subplot(1, 2, 2)
plt.title('Non attention')

2つのグラフの下中央に大きなタイトルを表示したいのですが、
なにか良い方法ありますでしょうか?
0453デフォルトの名無しさん
垢版 |
2020/02/05(水) 10:06:39.19ID:FfddlBUI
def test():
def test_test():
print("test")
があったときに、test_test()を呼び出すにはどうしたらいいですか?
0456デフォルトの名無しさん
垢版 |
2020/02/05(水) 11:33:01.43ID:FfddlBUI
>>454
すみません、インデントが反映されていなくて分かりづらい感じになってしまいました。
↓のように、クラス内にメソッドがあって、メソッドの中に関数がある場合
どうやって関数を外部から呼び出せばいいのでしょうか?

def test():
 def test_test():
  print("test")

外部ではなく、内部から呼び出すには

def test():
 def test_test():
  print("test")
 test_test()

とすれば呼び出せますが、test()の外から呼び出す方法を知りたいです。
0457デフォルトの名無しさん
垢版 |
2020/02/05(水) 12:38:02.65ID:fbcJymO4
ローカル変数みたいなものだから外部からアクセスはできない
0459デフォルトの名無しさん
垢版 |
2020/02/05(水) 13:14:47.01ID:d60p+KZz
class testclass:
  def test(self):
     def test_test(str):
       print(str)
     return test_test

f = testclass().test()
f("aaaaaaa")

へぇこんな事できるんだ、何に使えるもの?
0460デフォルトの名無しさん
垢版 |
2020/02/05(水) 13:23:28.11ID:FfddlBUI
>>458
>>459
ありがとうございます。

今までメソッドは全部selfで書いてたんですが
毎秒何百回も処理するような処理を書くとやたら遅くて
試しにメソッド内部に関数を書いたら処理速度が速くなりました。

selfでメソッドを呼び出すと遅くなるので、処理速度を早くしたいときはローカル関数として定義した方が良いみたいです。
0461デフォルトの名無しさん
垢版 |
2020/02/05(水) 14:20:51.30ID:2gxpMPkb
>>459
デコレータとか
0462デフォルトの名無しさん
垢版 |
2020/02/05(水) 15:18:52.75ID:6NLusyAl
csvの例えば5列目が2,3,5,7,3,5,7,,,,,といろんな数字で並んでるとき、
その列の特定の数字を一括して別の数字に変換して、csv保存したいのですが、サンプルコードを頂けないでしょうか
0463デフォルトの名無しさん
垢版 |
2020/02/05(水) 15:32:28.07ID:HabtckGA
>>462
pandas 置換 🔍
0464デフォルトの名無しさん
垢版 |
2020/02/05(水) 16:46:26.26ID:2rKdW1Ec
>>452
figureの任意の位置にテキスト表示出来る
0465デフォルトの名無しさん
垢版 |
2020/02/05(水) 16:49:43.06ID:2rKdW1Ec
>>460
適当なことを言うな
0467デフォルトの名無しさん
垢版 |
2020/02/05(水) 19:05:15.67ID:2rKdW1Ec
うそだとは言っていない
0468デフォルトの名無しさん
垢版 |
2020/02/05(水) 19:29:47.90ID:PnTZcdWz
毎秒何百回程度でやたら遅くなる

とか言うのは嘘と言い切ってもいいと思う
0469デフォルトの名無しさん
垢版 |
2020/02/05(水) 19:56:00.86ID:FfddlBUI
>>468
いやこれもホントに
処理内容次第なので、処理負荷の低いものなら気づかないですけど
timeitとか使わなくても目で見て明らかに遅いレベルまで遅くなったんです
信じてもらえなくても別にいいですけど、僕に得も何もないんで
0470デフォルトの名無しさん
垢版 |
2020/02/05(水) 19:59:06.82ID:2rKdW1Ec
@staticmethod
0471デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:21:18.03ID:3A2Vd31x
cとPHPとシェルとストアドプロシージャ位しか書けないんだけど
パイソンでDLバリバリになるには何の書籍から始めるのが良い?
やっぱ統計学はやんなきゃ話にならない?
0472デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:27:09.11ID:xJPwpbdq
>>471
統計がわからない機械学習エンジニアはただの占い師
ビジネスがわからない機械学習エンジニアはただのベンチマーク厨
0473デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:32:56.42ID:V2ceD5vC
敢えて喩えるほど実際から離れていく
0475デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:45:33.80ID:gx9j2avt
統計ってベイズ推定とか?
0477デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:56:17.65ID:l5EZ/l0z
>>472
俺、機械学習さっぱりわからんが、なんか核心をついているような言葉だが
基礎となる統計がわからない自称機械学習エンジニアはただの占い師
ターゲットのビジネスがわからない自称機械学習エンジニアはただのベンチマーク厨
が正しいんじゃないのか

>>471
>cとPHPとシェルとストアドプロシージャ位しか書けないんだけど
こんな自己紹介からして、お前はソフトエンジニアではなくプログラムかける土方
ってかんじだろ。
そんな奴が目指しているのは機械学習"エンジニア"ではなく
機械学習を用いる占い師 や機械学習のベンチマークができる厨 じゃないのか?
なら、統計学なんてやる必要ないんじゃないか。
エンジニアになりたいなら基礎理論の統計学はしっかりやらんとだめだろうが。
どの分野でもめざせエンジニアなら基礎はしっかりやらないと駄目だろ。
例えばソフトエンジニアなら大学・大学院の情報工学科でやるようなことは
学んでないとな。
と偉そうなこと言っている俺は趣味でプログラミングなんだがな。
0478デフォルトの名無しさん
垢版 |
2020/02/05(水) 20:58:14.94ID:V2ceD5vC
なげえよカス?
0480デフォルトの名無しさん
垢版 |
2020/02/05(水) 21:10:55.94ID:aNozFXKi
長さの割に中身ゼロの長文には参るな

>>477は今ではチョロっとライブラリインストールするだけで
どんな素人でも始めることのできる機械学習についてまったく分からず
おまけにプロでもないアマチュアなのでエンジニアの求人にも必要資格にも全く詳しくないけど
「エンジニアの資格」にだけは一家言ある変な人ってわけだ
0481デフォルトの名無しさん
垢版 |
2020/02/05(水) 21:20:46.43ID:oCA39UVc
>>475
ほかにもあるから教科書買ってきて嫁

>>476
きゃつは万能ではないし、
昔はデータ数制限がきつくって、今も(高額な専用ソフトはもちろんだが)Rに劣っている
0482デフォルトの名無しさん
垢版 |
2020/02/05(水) 21:27:18.91ID:ZizT6Tal
簡単なことなんだけどな
データがあって、目的が決まっている
この二点をクリアできないと機械学習をする意味がない
二点がクリアされたとしても性能がでるという保証はないが
■ このスレッドは過去ログ倉庫に格納されています

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