X



Pythonのお勉強 Part55
■ このスレッドは過去ログ倉庫に格納されています
0516デフォルトの名無しさん
垢版 |
2018/01/27(土) 07:52:24.37ID:9O/FJY9J
>>515
そのコードでは冪乗のコストが大きすぎて誤差レベル
append引っ張ってコール相当を内部的にやる分は速い
ループ外でappend = list02.appendすると差は縮まる
0517デフォルトの名無しさん
垢版 |
2018/01/27(土) 08:02:53.52ID:/tAEOIoZ
>>516
ありがとうっす。
冪乗を消して単純にxをlistに追加するだけにして
ループ回数を増やして見たら差が明確になりました。
そういうもんなんですね。
0518デフォルトの名無しさん
垢版 |
2018/01/27(土) 08:08:36.08ID:ZgMGVzLO
そもそもうちのしょぼ環境ですら>>515だと差がつかない
range(1000000)にしたら差が出るけど内包のほうが微妙に速いよ

celeron 1005M (1.9GHz)
0519デフォルトの名無しさん
垢版 |
2018/01/27(土) 08:14:19.31ID:/tAEOIoZ
>>518
環境の影響もうけるもんなんすね!
よほどループ回数が増えない限りそこまで内包表記に拘る必要もなさそうっすね。。。
ありがとうです。勉強になります。
0520デフォルトの名無しさん
垢版 |
2018/01/27(土) 10:07:54.82ID:cilYLav/
変数の変化によってwxPythonのボタンを無効化したいのだが
if xx = true
 button.Disable()
では変化しないので、他に手段が無いか分かるひといない?
0521デフォルトの名無しさん
垢版 |
2018/01/27(土) 10:17:39.24ID:j62vF2zX
>>488
Juliaのスレ閑散としている。
0523デフォルトの名無しさん
垢版 |
2018/01/27(土) 11:31:55.93ID:pZkpIdzj
円周率の小数点以下任意のN桁目の数字を出力するpythonコードを知りたいです
0525デフォルトの名無しさん
垢版 |
2018/01/27(土) 11:49:42.63ID:rGBD/78P
>>523
円周率をダウンロードしてそのファイルから読み取る
0528デフォルトの名無しさん
垢版 |
2018/01/27(土) 14:14:00.46ID:f2dP1dyh
>>523
円周率の小数点以下任意のN桁目の数字の求め方(超高速に求めるアルゴリズム)はわかるが
でも、pythonの知識不足でコードに出来ないってことだろうな。
数学好きでpython上級者の遊園地がどやでコード教えてくれるだろ

>>525
超高速に求めるアルゴリズムが分からない奴には良いやり方だな
0529デフォルトの名無しさん
垢版 |
2018/01/27(土) 14:17:46.78ID:Iwu0aMAU
>>523
用途がよくわからないのだけど
優れた疑似乱数がほしければメルセンヌツイスターとか使ったほうがよいよ。
0532デフォルトの名無しさん
垢版 |
2018/01/27(土) 15:46:33.18ID:K9A6cS9j
l = [("A", A), ("B", B), ("C", C), ("D", D)]

print ("一番小さいのは", min(l), "です。")

これで最初は一番小さいのがDだとしたらDがプリントされるんですが、ループ中にABCD関数それぞれの数値が書き換わった場合でもずっとDがプリントされます。
print(A)
print(B)
print(C)
print(D)
としていても変動はしています。
min内が変わらないので、原因をおしえてください。
小数点があるからでしょうか?
0533デフォルトの名無しさん
垢版 |
2018/01/27(土) 16:11:46.47ID:S+YQeyK2
>>528
>円周率の小数点以下任意のN桁目の数字の求め方(超高速に求めるアルゴリズム)
そんなものはない
0535デフォルトの名無しさん
垢版 |
2018/01/27(土) 18:08:02.17ID:WgYcU0Ps
>515
この順でやってみ
import time

a = time.time()
list02=[]
for x in range(1000):
□list02.append(x ** 2)
b = time.time()
c = b-a
print(c)

a = time.time()
list01=[x ** 2 for x in range(1000)]
b = time.time()
c = b-a
print(c)
0538デフォルトの名無しさん
垢版 |
2018/01/28(日) 00:44:04.11ID:TcsihYjg
あざっす!読んでみます。
0539デフォルトの名無しさん
垢版 |
2018/01/28(日) 06:50:51.67ID:jyB979TR
abc=[[0,0,0],[1,0,1],[0,1,0]]

こんな感じの配列がある場合、
0を□に、1を●に置き換えたい場合はどうすれば良いのでしょうか?
どなたか良い方法を教えて下さい。
0543デフォルトの名無しさん
垢版 |
2018/01/28(日) 08:04:19.67ID:jyB979TR
>>541
このコードはどういった仕組みで動いてるんですか?
自分はifを使った方法しか思いつかなかったです。
こんな短いコードでハイテクな仕事をするなんて凄い。。。
0544デフォルトの名無しさん
垢版 |
2018/01/28(日) 08:35:03.73ID:nqXDXQqX
文字列の0文字目か1文字目かを取り出している。
あと、リスト内包表記を二重に使っている
0545デフォルトの名無しさん
垢版 |
2018/01/28(日) 08:39:30.39ID:jyB979TR
>>544
ありがとうございます。
すごいですね。
内包表記を使えばこんなコードが書けるんですね。
0546デフォルトの名無しさん
垢版 |
2018/01/28(日) 11:18:57.38ID:FyHZopv6
>>539
>>> import numpy as np
>>> a = np.array([[0,0,0],[1,0,1],[0,1,0]])
>>> np.array([list(map(chr, (np.dot(a, np.eye(3, 3, dtype=int) * 46) + 9633).reshape(1, 9)[0]))]).reshape(3, 3)
array([['□', '□', '□'],
['●', '□', '●'],
['□', '●', '□']],
dtype='<U1')
0548デフォルトの名無しさん
垢版 |
2018/01/28(日) 17:25:19.64ID:Zu0i2wvf
内包より速いといいね
0549デフォルトの名無しさん
垢版 |
2018/01/28(日) 17:38:35.48ID:wPjcs82v
すみません。 .pyファイルを自動再起動するバッチをつくりたいのですが、dos で実行させると書くと cmd自体を終了させることになり
間抜けなことになりました。
dosから anaconda prompt などを起動してそこに.pyを自動実行させるほうほうはありませんか?
0555デフォルトの名無しさん
垢版 |
2018/01/28(日) 19:07:22.01ID:wPjcs82v
すみません。VB理解できず EXE化したpyをdos上で再起動ループさせて何とかなりました。
0556遊園地 ◆ExGQrDul2E
垢版 |
2018/01/28(日) 19:18:30.84ID:FBU0Mxiw
テストはしてない。

import subprocess
subprocess.run(('/sbin/shutdown', '-h', '1'))
0559デフォルトの名無しさん
垢版 |
2018/01/29(月) 04:59:30.27ID:7znYjzbE
今現れてる症状だと糖質だな
0560デフォルトの名無しさん
垢版 |
2018/01/29(月) 11:07:04.72ID:ijZgwjdS
python3使って三つの数の最大公約数ってどうやればいいんだ?
二つの数の最大公約数求めてからあと一つのとの最大公約数求めようと思ったんだがイマイチわからん
0562デフォルトの名無しさん
垢版 |
2018/01/29(月) 12:10:45.21ID:ZoR+QJGB
車輪の再発明前提で
速度気にしないならすべて素因数分解して共通因子の積
速度気にするなら互除法だが三つ巴の時のやり方をググれ
0563デフォルトの名無しさん
垢版 |
2018/01/29(月) 12:11:28.01ID:iH+qkuMv
公約数をcollections.Counterに全てぶち込んで3個の奴を降順ソートした0番目の要素が最大公約数
0565デフォルトの名無しさん
垢版 |
2018/01/29(月) 12:33:23.86ID:ZoR+QJGB
仕様変更しすぎで面倒
0567デフォルトの名無しさん
垢版 |
2018/01/29(月) 14:31:10.35ID:JiT9Fs3s
最大公約数を聴かれてるのに最小公倍数を教える阿呆
0568デフォルトの名無しさん
垢版 |
2018/01/29(月) 16:41:46.71ID:i2PFxJfw
VSCodeでPythonをやってる人がいたら操作を教えてほしんだけどさあ
「import numpy as np」みたいに入力してエンターキーを押した際、numpy等の余計な名前が補完されて「import numpy as numpy」みたいになっちゃうのってどう防いでるの?
そもそもnpから始まっているわけでもない名前を補完してくるって大した機能だけど、これ不便でないかい・・・・
0571愛知人
垢版 |
2018/01/30(火) 02:42:32.91ID:nQQmpnBb
なんでrangeの第2引数は1大きいクソ仕様なの?教えてエロい人
0572デフォルトの名無しさん
垢版 |
2018/01/30(火) 06:43:15.97ID:cxOTXvrl
def test(*a):
....print(sum(a))

b=[7,6,8,5]
test(b)

すいません。
可変長引数?なるものを試してみたのですが
何度やってもエラーがでます。
どなたか解決策を教えてください。
0574デフォルトの名無しさん
垢版 |
2018/01/30(火) 07:07:42.58ID:cxOTXvrl
素早いありがとうございます。
変数の前にも*が必要だったのですね!!
助かりました。
0575デフォルトの名無しさん
垢版 |
2018/01/30(火) 07:08:53.00ID:cxOTXvrl
素早いありがとう。。。
素早い回答でした。
すいません。

ありがとうございました。
0576デフォルトの名無しさん
垢版 |
2018/01/30(火) 13:52:46.96ID:+jOKiVIf
tkinter でボタンつくってそれをおしたら、クリップボード内にgetで取得した文字列をわたしたいのですが、簡単なコードで書ける方法があるならおしえてほしいです
0577デフォルトの名無しさん
垢版 |
2018/01/30(火) 17:19:54.91ID:61BNvo+J
pandas.DataFrame([get()]).to_clipboard()
0578デフォルトの名無しさん
垢版 |
2018/01/31(水) 00:20:06.36ID:Wr8CNei9
pythonでちょっとしたアプリを作って,それを非python環境でも動かすことは可能ですか?
pyinstallerというのがそれっぽく見えるのですが...
結局,動かすパソコンにpythonと必要なパッケージを入れておかないと動かないのでしょうか?
0579デフォルトの名無しさん
垢版 |
2018/01/31(水) 01:19:15.80ID:C+jfnCzl
ここでレス待つより
pyinstallerを激しく調べたり・試してみれば良いんじゃないのか
その方が早く結論でると思う
0580デフォルトの名無しさん
垢版 |
2018/01/31(水) 01:25:11.54ID:Wr8CNei9
>>579
ざーっと調べてみて,pyinstallerでイケるような気がしてきました
問題は望みのguiを作れるかですね...
0581デフォルトの名無しさん
垢版 |
2018/01/31(水) 02:07:15.01ID:PK6QBrDQ
>>580
いけるよ。
wxPythonで作ったツールをpyInstallerでexe化して使ってもらってる。
もちろん、使う側にはPython環境入ってない。
0587デフォルトの名無しさん
垢版 |
2018/01/31(水) 12:38:21.98ID:UGwUWfP6
とりあえずwin10 64bitで、py 3.6.1とpyinstaller3.3ならなんの問題もなくexe化可能。

win上でmac向けを直接作るのは無理。
環境一式を固めるだけなので、mac用を作りたければ、mac上のpy環境が必要。
…だと思う。
0588デフォルトの名無しさん
垢版 |
2018/01/31(水) 15:43:34.15ID:ZZNKUbS4
yamlが非常に便利でよく使いっているのだけど,
標準ライブラリじゃないんだよね.
同じような事を標準ライブラリでやりたい場合
なんかいい方法ありますか?

例えば dl = [{'1':1}, {'2':2}] みたいな変数を
サクっとファイルに読み書きできるような機能ってありますか?
0591588
垢版 |
2018/01/31(水) 15:50:08.66ID:ZZNKUbS4
>>590
今まさに,これを調べてた!
これでいいんですね!ありがとう!
0593デフォルトの名無しさん
垢版 |
2018/01/31(水) 18:59:15.58ID:t+i4Nq8A
>>587
ID変わります
僕はmacユーザーなのでその点は大丈夫そうです
必要なパッケージも分かったのでだらだら実践に移ろうと思います
ありがとうございました
0595デフォルトの名無しさん
垢版 |
2018/02/01(木) 10:52:44.15ID:DzJPkPrp
できますわな
0601デフォルトの名無しさん
垢版 |
2018/02/02(金) 06:44:00.41ID:TdwKXjoL
aaa={2,6,9}というリストに、
fff()関数に渡して、77を加えたいのですが、
エラーが出ます。どうすればいい?
AttributeError: 'set' object has no attribute 'append'

aaa={2,6,9}

def fff(bbb):
bbb.append(77)
print(bbb)

fff(aaa)
0602デフォルトの名無しさん
垢版 |
2018/02/02(金) 06:49:05.11ID:TdwKXjoL
global aaa加えてもダメ。

aaa={2,6,9}

def fff(bbb):
global aaa
bbb.append(77)
print(bbb)

fff(aaa)
0603デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:19:00.22ID:lpRrOiv+
>aaa={2,6,9}というリストに
{ } は、set・集合だろ

>AttributeError: 'set' object has no attribute 'append'
だから、setには、append が無い

リストは、[2, 6, 9]
0604デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:23:51.94ID:EzUfnp8s
appendをaddに変えると良いよ
0605デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:26:15.84ID:sggyuymU
フォントωわかりにくすぎ
0606デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:29:37.72ID:29y3RqyU
コ−ド打ち間違いでした。
リスト[2, 6, 9]だと、出来ますか?
今、通勤中で、パソコンがないので。。。
0608デフォルトの名無しさん
垢版 |
2018/02/02(金) 12:09:46.98ID:EhnDmFZw
これは、出来る?
グローバルなリストを、
関数内で、添え字で代入だけど。
今、パソコンがない環境なのです。。。

aaa = [2,6,9]

def fff(bbb):
bbb [1] = 77
print(bbb)

fff(aaa)
0612デフォルトの名無しさん
垢版 |
2018/02/02(金) 12:54:54.71ID:YzG776tY
>>608
下請けじゃないから試してないけど、多分できない。
関数内でglobalしとけば可能なはず。
0613デフォルトの名無しさん
垢版 |
2018/02/02(金) 13:08:20.53ID:oiJ7/Utq
Pythonで物理乱数を発生させたいと考えてます。
できるだけお金を掛けずに簡単にやる方法ってありませんか。
当方、プログラミングは最近始めたばかりの初心者です。
よろしくお願いします。

私が考えてるのはマイクなどで音を拾って音の周波数から乱数を発生。。。
難しいですかね?どなたかやり方教えてください。
0614デフォルトの名無しさん
垢版 |
2018/02/02(金) 13:41:32.66ID:EhnDmFZw
611、612さん、thx!
出来ました!
パソコン持って来てないけど、
分かりました(^-^)
0615デフォルトの名無しさん
垢版 |
2018/02/02(金) 13:52:45.89ID:HmPuZc+/
>>613
/dev/randomのソースを読む

アホは普通の人より多く金を払わなければ存在を認められないんだよ
それが嫌ならアホを脱出しろ
■ このスレッドは過去ログ倉庫に格納されています

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