くだすれPython(超初心者用) その46【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★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/ カンマで区切ったらsetになるから「setをの中身をdictのように参照はできんぞ」となるわな もう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}
というように、辞書の中の辞書に要素を追加するにはどうしたらよいですか? >>386
testDict["b"]["b-3"] = 2.3
でいける 完成したプログラムをExeファイル化して配布しようと思うのですが、
pyinstallerで
pyinstaller set_data_ver25.py --onefile
としたところ
maximum recursion depth exceeded while calling a Python object
となります。 再帰関数で処理が膨れ上がるようなことはしてないと思うのですが・・・。 >>389-390
set_data_ver25.pyとやらの中身をみないことにはなんともはや
>>1嫁 maximum recursion depth exceeded while calling a Python object
でググれ floatのunixtimeをdatetime.timeの時分秒の文字列(日にちなし)に変換するメソッドはありますでしょうか?
今はdivmod()で順次割ってformat()で文字列変換し':'で結合しております。 ああ、クラスの方か
クラスも文字列ではないから辻褄が合わないけど
print(datetime.fromtimestamp(unixtime).time())
でいい話のような気もするな
まあ、知らね >>389
https://qiita.com/tobesan/items/12189abc5adbda4a49bd
ここで解決したのですが、今度は
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 139: invalid start byte
が・・・。 おそらく
https://stackoverflow.com/questions/47692960/error-when-using-pyinstaller-unicodedecodeerror-utf-8-codec-cant-decode-byt
でpyinstallerの設定変えろってことなんだとおもうんですが、anaconda使用してターミナルからpipでインストールしたpyinstallerがどこのフォルダにあるのかわからない・・・
アナコンダでインストールしたPyhotnのフォルダってそもそもどこにあるんでしたっけ? >>398
ソースコードをBOMなしで保存してみましたが、同じエラーで・・・。 >>399
じゃあ文字コードあってるかどうかというか、
そもそも、ちゃんと、指定してるんか? >>397
だから>>1嫁ってば
OSくらい書かないとわからん >>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すると
読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力
となるはずが、読み込みファイルを聞いてこず、なにか謎処理をしてグラフは出さずに計算結果だけ出力します。
なんだこりゃ。 Anaconda信者はちゃんとサポートしてやれ
俺はあんなゴミ使わないから知らねー 配列で
0番目の値を1番目の値に足す
1番目の値を2番目の値に足す
というのを繰り返して
最後は
n番目の値を0番目に足す
こういうループを作るのってどうすればいいですか?
a=[]
for i ,h in enumerate(haireru):
___a.append(hairetu[i]+hairetu[1+1])
にすると最後ゼロ番目と計算できないです すみません
aは配列じゃなくてループ内ですぐに使いたいので
iはゼロはじまりでお願いします
for i ,h in enumerate(hairetu):
___a=(hairetu[i]+hairetu[i+1])
__b=c*a >>404
foo = [1,2,3,4,5]
[ x + y for x, y in zip(foo, foo[1:] + [0])]
#=> [3, 5, 7, 9, 5]
このパターンこのスレだけでもう3回目くらいだと思うんだけどなんで頻出なのか謎 >>402
だから文字コード(encodingの中身)をちゃんと指定汁とさっきから言ってるだろうがよ
Anacondaの詳しいことはおれもよーしらんわ >>403 >>406
どこかの私大の追試レポートで出てると予想 >>403
Anaconda信者とかより、コミュとれない奴の相手はエスパー・高脳でないと相手できないからな。
>読み込みファイルを聞いてくる→計算処理→グラフ出力→計算処理結果ファイルに出力
以下略
は、エスパー・高脳でないとポカーンになる感じだからな [ x + y for x, y in zip(foo, foo[1:] + foo[0:1])]
#=>[3, 5, 7, 9, 6] >>406
>>410
ありがとうございます
配列って[:]どうしだと合体できるんですね
助かりました 401ですけど、
すいません。
コード上げてきちんと質問するべきですよね。
期限迫ってたのであせってたのですが、寝落ちして少し頭冷めました。
あきらめて現在のところまででまとめることにしました。
今の仕事終えてから、ご指摘頂いたこともう一度確認してみます。 >>404,405
n=len(hairetu)
for i ,h in enumerate(hairetu):
___a=(hairetu[i]+hairetu[(i+1)%n])
__b=c*a どこまでdefでまとめるのが良いのかアドバイスお願いします
一定の距離ごとに物体の置いてその場所や向きや大きさを決めています
距離ごとに計算すべきなのか
最初から物体の位置、向き、大きさをすべて計算して
置けばよいのでしょうか?
↓距離ごとの計算
for km in 距離:
__物体の位置()に物体を置く処理
__向きの計算()に物体の向きを変える処理
__大きさ()に物体の大きさを変える処理
def 物体の位置:
___計算式
def 物体の向き:
__計算式
def 大きさ():
__計算式 続きです
↓まとめて計算した場合
for x in 物体の位置():
__物体を指定の位置に置く処理
for y in 物体の向き():
__物体を指定の向きに置く処理
for z in 物体の大きさ():
__物体を指定の大きさにする処理
def 物体の位置():
位置 = []
__for km in 距離:
___位置.append()
__return 位置
def 向きの計算():
向き=[]
__for km in 距離:
___向き.append()
__return 向き >>414
その2つなら後者を選ぶケースは考えにくいかな
俺の読解力の問題かもしれんが、「for km in 距離:」がよく理解できん
距離はどういうイテレータ?
例えば、距離 = [1, 2, 3, 4, 5] みたいなものと考えればいいの?
で各距離の値によって各物体の位置、向き、大きさが決まる? >>416
ありがとうございます
一個目みたいにまとめることにします
for km in 距離:は
各距離から置く場所や向きや大きさを決めてます >>417
各物体の位置・向き・大きさを計算する部分と
それを使ってI/O的な処理をする部分は分けておいたほうがいいと思う
それぞれ違う理由で変更したくなるから混ざってると後で面倒
きれいに分かれてれば計算しつつ出来た順にI/Oするよう変更するのも簡単
↓関数/データに分けた場合とオブジェクトにまとめた場合のイメージ
https://techiedelight.com/compiler/?n7t7
https://techiedelight.com/compiler/?qDa4 >>418
解説をつけてもらってありがとうございます
入力・出力もどうしようか悩んでいたので
助かります!! raspbian上でwebviewを使用しています。
公式ページのサンプルをコピペしたのですが、そんなattributeは無いとエラーになります。
オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。 >>420
>>1読んでから端末投げ捨てるか、レンチンしろ >>422
煽りが返ってくるってことはだいたい質問が悪い
公式ページのサンプルってどこの公式だよURLくらい貼れ
何を実行してるかわからないのに答えられるわけないだろ オブジェクトが持っているattributeの一覧を表示させることは出来ないのでしょうか。
これに答えろってことだろ
なにをぶつぶつ言ってるんだよw >>420
import inspect
inspect.gemembers(your_object)
かな? >>427
>inspect.gemembers(your_object)
getmembers()の間違い
dir() や help() でも可 >>428
教えていただいた方法で表示できました。ありがとうございます。 (´n`).o(429の端末が初期不良期限翌日に壊れますように) hoge = "わたしの名前は{0}です"
こういう変数hogeは、f-stringで値埋め込むのは無理だよね?
hoge.format()するしかないよね >>432
ムリジャナーイ Python!
hoge = "わたしの名前は{{0}}です"
hoge
↑この2行をこのままコピペ実行してみよう!
(3.6.5以降なら確実におk) >>432
template = lambda: f"わたしの名前は{name}です"
name = "foo"
f"{template()}"
#=> ’わたしの名前はfooです'
f-stringのlazy evaluation版はi-stringってので提案されてるらしい
https://www.python.org/dev/peps/pep-0501/ >>435
なるほどぉ…
出来ることは理解したけど、微妙に読みづらい感があるな
ありがとうございました デバックについての質問なのですが
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分つけて無理やりインデント合わせてコピペして
デバッグしてますが
そういうループの途中だけ動きを見る方法でもっといい方法ありませんか? MATLABでいうsimulinkの代用になりそうな物ってありませんか?環境移行したいんですがこれだけどうしても見つからなくて。 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 >>439
for の中にifコンテニューですか
ありがとうございます
>>440
そんなものあったなんて知らなかったです
ありがとうございます >>437
デバッガでconditional breakpointを設定して
変数が特定の値になった時だけbreakさせる $ 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 forやdefで使う変数が多くなったときはどうしてますか?
7個ぐらいになってくると
行が長くなって何とかしたほうが良いのか
悩みます
色々ありがとうございます
>>442
blenderというソフト内のpython使ってて
本格的なデバッグ機能があまりないのです
その辺りは専用スレで聞いてみます >>445
型にまとめられるものはまとめる
単に行が長いのが困るだけなら改行すればいいだけ
あとは*args, **kwargs >>446
ありがとうございます
なんでも改行可能なんですね
中身を変数にまとめれるんですね
助かります!! >>447
なんでもは改行できないよ。
改行できるとこだけ。 >>445
おすすめはせんけど行減らすだけなら
a=1
b=2
c=3
のかわりに
a,b,c=1,2,3
意味のあるまとまったデータなら別クラスにして
hoge=Hoge(1,2,3) ああそういう意味じゃないのか
制御変数の話なら適当に改行汁
あと blender は漏れも使ってるけど
癖があるので普通の python だと思わない方が良い
(普通の python で慣れてる人が使う分には問題無いが)
考え無しにあれを使い続けると糞プログラマになるだけだと思う plt.subplot使ってグラフを2つ表示しています
plt.subplot(1, 2, 1)
plt.title('attention')
plt.subplot(1, 2, 2)
plt.title('Non attention')
2つのグラフの下中央に大きなタイトルを表示したいのですが、
なにか良い方法ありますでしょうか? def test():
def test_test():
print("test")
があったときに、test_test()を呼び出すにはどうしたらいいですか? ARM64でビルドしたPythonってどっか落ちてませんか >>454
すみません、インデントが反映されていなくて分かりづらい感じになってしまいました。
↓のように、クラス内にメソッドがあって、メソッドの中に関数がある場合
どうやって関数を外部から呼び出せばいいのでしょうか?
def test():
def test_test():
print("test")
外部ではなく、内部から呼び出すには
def test():
def test_test():
print("test")
test_test()
とすれば呼び出せますが、test()の外から呼び出す方法を知りたいです。 ローカル変数みたいなものだから外部からアクセスはできない def test(str):
・def closure():
・・print(str)
・return closure
c = test("closure test");
c() class testclass:
def test(self):
def test_test(str):
print(str)
return test_test
f = testclass().test()
f("aaaaaaa")
へぇこんな事できるんだ、何に使えるもの? >>458
>>459
ありがとうございます。
今までメソッドは全部selfで書いてたんですが
毎秒何百回も処理するような処理を書くとやたら遅くて
試しにメソッド内部に関数を書いたら処理速度が速くなりました。
selfでメソッドを呼び出すと遅くなるので、処理速度を早くしたいときはローカル関数として定義した方が良いみたいです。 csvの例えば5列目が2,3,5,7,3,5,7,,,,,といろんな数字で並んでるとき、
その列の特定の数字を一括して別の数字に変換して、csv保存したいのですが、サンプルコードを頂けないでしょうか >>452
figureの任意の位置にテキスト表示出来る 毎秒何百回程度でやたら遅くなる
とか言うのは嘘と言い切ってもいいと思う >>468
いやこれもホントに
処理内容次第なので、処理負荷の低いものなら気づかないですけど
timeitとか使わなくても目で見て明らかに遅いレベルまで遅くなったんです
信じてもらえなくても別にいいですけど、僕に得も何もないんで cとPHPとシェルとストアドプロシージャ位しか書けないんだけど
パイソンでDLバリバリになるには何の書籍から始めるのが良い?
やっぱ統計学はやんなきゃ話にならない? >>471
統計がわからない機械学習エンジニアはただの占い師
ビジネスがわからない機械学習エンジニアはただのベンチマーク厨 >>472
俺、機械学習さっぱりわからんが、なんか核心をついているような言葉だが
基礎となる統計がわからない自称機械学習エンジニアはただの占い師
ターゲットのビジネスがわからない自称機械学習エンジニアはただのベンチマーク厨
が正しいんじゃないのか
>>471
>cとPHPとシェルとストアドプロシージャ位しか書けないんだけど
こんな自己紹介からして、お前はソフトエンジニアではなくプログラムかける土方
ってかんじだろ。
そんな奴が目指しているのは機械学習"エンジニア"ではなく
機械学習を用いる占い師 や機械学習のベンチマークができる厨 じゃないのか?
なら、統計学なんてやる必要ないんじゃないか。
エンジニアになりたいなら基礎理論の統計学はしっかりやらんとだめだろうが。
どの分野でもめざせエンジニアなら基礎はしっかりやらないと駄目だろ。
例えばソフトエンジニアなら大学・大学院の情報工学科でやるようなことは
学んでないとな。
と偉そうなこと言っている俺は趣味でプログラミングなんだがな。 >>469
そこまで言うなら比較用のコードでも出してくれ 長さの割に中身ゼロの長文には参るな
>>477は今ではチョロっとライブラリインストールするだけで
どんな素人でも始めることのできる機械学習についてまったく分からず
おまけにプロでもないアマチュアなのでエンジニアの求人にも必要資格にも全く詳しくないけど
「エンジニアの資格」にだけは一家言ある変な人ってわけだ >>475
ほかにもあるから教科書買ってきて嫁
>>476
きゃつは万能ではないし、
昔はデータ数制限がきつくって、今も(高額な専用ソフトはもちろんだが)Rに劣っている 簡単なことなんだけどな
データがあって、目的が決まっている
この二点をクリアできないと機械学習をする意味がない
二点がクリアされたとしても性能がでるという保証はないが ■ このスレッドは過去ログ倉庫に格納されています