Pythonのお勉強 Part55

■ このスレッドは過去ログ倉庫に格納されています
2017/12/22(金) 14:15:47.03ID:8mUBEZUB
Pythonオフィシャルサイト
http://www.python.org/

テンプレ等は2以降で

■前スレ
Pythonのお勉強 Part54
http://mevius.5ch.net/test/read.cgi/tech/1504251887/
2018/01/23(火) 14:50:04.96ID:Ig4w35hf
>>480
自分はpython2にはあまり詳しくないから記述法が違うかもしれないっていっちゃったけど
python2でも>>479の書き方で普通にいけそうだった

http://www.geocities.jp/m_hiroi/light/pytk01.html

一応書いておくと「Tkinter」という風にTが大文字になっているとpython2で
「tkinter」という風にtが小文字になっているとpython3って感じで見分けられるよ
482デフォルトの名無しさん
垢版 |
2018/01/23(火) 14:56:04.19ID:a1bd/qZN
https://docs.python.org/
2018/01/23(火) 15:14:11.04ID:rm9QTq/C
あざっす

どうもpackのsideオプションだと
[ラベル][エントリー]の2つのセンター配置とかできなさそうですね。

他方法を探してみます。本当にありがとうございます^ ^
484デフォルトの名無しさん
垢版 |
2018/01/25(木) 14:00:54.56ID:B5i8GoB8
pythonは遅い。ライブラリーが追いついてきたらJuliaに取ってかわられる。
485デフォルトの名無しさん
垢版 |
2018/01/25(木) 14:03:38.57ID:oIA0WROS
重い部分はどうせCなんだし
2018/01/25(木) 16:01:04.49ID:h1ub+uBt
>>484
5年前からそう言われてるのでそろそろ敗北知りたすぎて転げ回る頃
まだ?
2018/01/25(木) 16:22:17.00ID:HkXDmH47
つPsyco
488デフォルトの名無しさん
垢版 |
2018/01/25(木) 19:10:23.19ID:SJD5HN+c
>>484
Juliaに取ってかわられたなら、Julia移るだけだろ
pythonがそれなりに"出来る奴"ならJuliaも使えるようになるだろし
言語より使う奴の能力の方が重要だからな

Pythonでも速度要るならその部分は速度の出るC/C++でやって
それをPythonから使うとかしているだろう(C/C++が出来ると)
2018/01/25(木) 19:19:55.84ID:OrwWvAoS
つNim
2018/01/25(木) 23:52:39.31ID:ZKBm9Cy7
音声ファイルを読み込んで、0.01マイクロ秒隔離で周波数を求めテキストファイルに書き込む方法

どなたかご存知有りませんか?
2018/01/26(金) 01:02:53.35ID:gdcLfEff
>>490
なんかプログラム作成依頼って感じだな
492490
垢版 |
2018/01/26(金) 01:46:55.49ID:4EzIV5NK
グラフまでは、できたのですが、数値の取り出し方が分かりません。


from pydub import AudioSegment
import matplotlib.pyplot as plt
mp3_version = AudioSegment.from_mp3("sound.mp3")


sound = AudioSegment.from_file("sound.mp3", "mp3")
samples = sound.get_array_of_samples()

plt.plot(samples)
plt.show()
2018/01/26(金) 02:07:44.51ID:gdcLfEff
>>492
それ0.01マイクロ秒隔離で周波数を求めてグラフ出力しているのか?
なんか、そんな感じには見えないが(mp3を読み込んでそれをデコードしたデータ(samples)をプロットしているだけな気がするが)
2018/01/26(金) 02:22:19.65ID:dAM5OA//
>>492
samples の中身が数値の入ったタダの配列で、len(samples) で長さもわかる
2018/01/26(金) 08:23:38.12ID:ZfLE6UH1
そもそも0.001μsって100Ms/secなんだがそんな分解能が必要な「音声ファイル」なんてあるのか?
2018/01/26(金) 09:24:00.62ID:qr6IxKlA
スペクトログラムの奴だろ
ただのキチガイだから無視しろ
2018/01/26(金) 09:56:33.88ID:Wj7NRBNY
病気って大変だな
498愛知人
垢版 |
2018/01/26(金) 11:30:52.33
すぐ基地外呼ばわりする奴嫌いだわぁ
2018/01/26(金) 12:20:45.25ID:R2Z0kukp
キチガイってあのプレゼントバカのことか
あれは笑えたから許してやれよ
2018/01/26(金) 12:59:51.62ID:ZfLE6UH1
そんなに悔しかったのかよ ww
501デフォルトの名無しさん
垢版 |
2018/01/26(金) 13:36:40.37ID:qmyxD0D3
小中学生なら無罪
2018/01/26(金) 16:01:38.16ID:44IsXBQo
犬畜生でも無罪だよ
2018/01/26(金) 16:14:27.27ID:4EzIV5NK
これは失礼
質問の仕方が悪かったですね。

無能な皆さんのおかげで無事に解決しました。

http://fast-uploader.com/file/7072506321918/

本当にありがとうございました。
504愛知人!id:ignore
垢版 |
2018/01/26(金) 16:22:13.15ID:56XeCPud
遊園地かよ
505愛知人
垢版 |
2018/01/26(金) 16:55:16.22
https://i.imgur.com/OImZBLe.png



本当にありがとうございました。
2018/01/26(金) 18:37:33.39ID:4NuvjmwO
恋人、愛人、愛知人、友人、知人の順かな
2018/01/26(金) 21:39:13.57ID:L6UrzJ6b
>>497
5chのpythonスレに来る俺らは大なり小なり精神障害,知的障害ある奴(病気持ち)が大多数だろ。
軽度なら俺みたいに会社に行って低脳と言われながらでも仕事しているだろうが、
でも、会社・学校が受け入れられないレベルの障碍者は平日の昼からスレで時間つぶししている感じだろ。
2018/01/26(金) 23:59:49.98ID:4EzIV5NK
つまんない質問飛ばして、「詰まんね」とか言われて「はぁ?」と
返す。2ch時代からの伝統が好きです。

完全な素因数分解の公式が分からないんだけど?
ggっても出て来ないし、誰か知らない?

[1, []]
[2, [2]]
[3, [3]]
[4, [2, 2]]
[5, [5]]
[6, [2, 3]]
[7, [7]]
[8, [2, 2, 2]]
[9, [3, 3]]
[10, [2, 5]]
[11, [11]]
[12, [2, 2, 3]]
[13, [13]]
[14, [2, 7]]
[15, [3, 5]]
'''
'''
etc
509愛知人
垢版 |
2018/01/27(土) 00:04:35.41
完全な素因数分解の公式とは?
2018/01/27(土) 00:13:05.81ID:ZgMGVzLO
>>508
単に素数で割り切れるかどうかを試していけばいいだけじゃね?
2018/01/27(土) 00:22:18.27ID:WWqOfIOz
エラトステネスの篩?
2018/01/27(土) 00:47:31.27ID:uYu52csi
公式が分ないてのはPythonではなく数学の話だろ
数学スレきいたほうが良いよな
2018/01/27(土) 00:57:06.78ID:/oLMHTjd
prime factorization algorithm とか
integer decomposition algorithm
で検索すれば、いくらでも出てくるよ。
pythonのコードが欲しいなら、rossetta code で探したらいい。

https://rosettacode.org/wiki/Prime_decomposition#Python
2018/01/27(土) 05:07:26.89ID:FToZzztm
確かに公式は数学スレだった。すまん。
コードが欲しい訳じゃあ無いよ。
2018/01/27(土) 07:26:56.86ID:/tAEOIoZ
import time

a = time.time()
list01=[x ** 2 for x in range(1000)]
b = time.time()
c = b-a
print(c)

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

□はインデントっす。
最近、内包表記というものを学んだド素人っす。
内包表記は高速ですごいと聞きましたが、逆にtimeで速度を測ると逆に遅くなりました。。。
誰か助けてください。。。
2018/01/27(土) 07:52:24.37ID:9O/FJY9J
>>515
そのコードでは冪乗のコストが大きすぎて誤差レベル
append引っ張ってコール相当を内部的にやる分は速い
ループ外でappend = list02.appendすると差は縮まる
2018/01/27(土) 08:02:53.52ID:/tAEOIoZ
>>516
ありがとうっす。
冪乗を消して単純にxをlistに追加するだけにして
ループ回数を増やして見たら差が明確になりました。
そういうもんなんですね。
2018/01/27(土) 08:08:36.08ID:ZgMGVzLO
そもそもうちのしょぼ環境ですら>>515だと差がつかない
range(1000000)にしたら差が出るけど内包のほうが微妙に速いよ

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

>>525
超高速に求めるアルゴリズムが分からない奴には良いやり方だな
2018/01/27(土) 14:17:46.78ID:Iwu0aMAU
>>523
用途がよくわからないのだけど
優れた疑似乱数がほしければメルセンヌツイスターとか使ったほうがよいよ。
2018/01/27(土) 14:29:57.74ID:z/TvKKva
素数もファイルから読めばいいよね
RSAとかwebAPI持ってる?
2018/01/27(土) 15:29:23.13ID:9RhlrCa+
>>523
import math
digits = input("少数第何位まで要る?")
print(str("円周率: {0:." + digits + "f}").format(math.pi)
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内が変わらないので、原因をおしえてください。
小数点があるからでしょうか?
2018/01/27(土) 16:11:46.47ID:S+YQeyK2
>>528
>円周率の小数点以下任意のN桁目の数字の求め方(超高速に求めるアルゴリズム)
そんなものはない
2018/01/27(土) 16:35:33.56ID:K9A6cS9j
すみません。見当違いの書き方でした修正してためしてみます。
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)
2018/01/27(土) 23:18:01.97ID:/tAEOIoZ
>>535
おぉ、コード実行の順番も影響するんっすね!
ありがとう
2018/01/27(土) 23:57:50.42ID:1kFnVT+l
>>536
まずはアルゴリズムとデータ構造みたいなタイトルを一通り読め
538デフォルトの名無しさん
垢版 |
2018/01/28(日) 00:44:04.11ID:TcsihYjg
あざっす!読んでみます。
2018/01/28(日) 06:50:51.67ID:jyB979TR
abc=[[0,0,0],[1,0,1],[0,1,0]]

こんな感じの配列がある場合、
0を□に、1を●に置き換えたい場合はどうすれば良いのでしょうか?
どなたか良い方法を教えて下さい。
2018/01/28(日) 06:53:11.92ID:jyB979TR
オセロやマルバツゲームを作りたいと考えてます。。。
2018/01/28(日) 07:34:49.23ID:nqXDXQqX
board = [['□●'[cell] for cell in row] for row in abc]
2018/01/28(日) 07:37:29.53ID:jyB979TR
>>541
ありがとうございます!!
できました〜
2018/01/28(日) 08:04:19.67ID:jyB979TR
>>541
このコードはどういった仕組みで動いてるんですか?
自分はifを使った方法しか思いつかなかったです。
こんな短いコードでハイテクな仕事をするなんて凄い。。。
2018/01/28(日) 08:35:03.73ID:nqXDXQqX
文字列の0文字目か1文字目かを取り出している。
あと、リスト内包表記を二重に使っている
2018/01/28(日) 08:39:30.39ID:jyB979TR
>>544
ありがとうございます。
すごいですね。
内包表記を使えばこんなコードが書けるんですね。
546デフォルトの名無しさん
垢版 |
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')
2018/01/28(日) 14:41:12.05ID:jyB979TR
>>546
ありがとうございます。
numpyを使う方法もあるんですね!!
548デフォルトの名無しさん
垢版 |
2018/01/28(日) 17:25:19.64ID:Zu0i2wvf
内包より速いといいね
2018/01/28(日) 17:38:35.48ID:wPjcs82v
すみません。 .pyファイルを自動再起動するバッチをつくりたいのですが、dos で実行させると書くと cmd自体を終了させることになり
間抜けなことになりました。
dosから anaconda prompt などを起動してそこに.pyを自動実行させるほうほうはありませんか?
2018/01/28(日) 17:54:42.71ID:TPh4DIsY
ありますよ
2018/01/28(日) 17:56:16.61ID:wPjcs82v
>>550
教えてくださいお願いします。
2018/01/28(日) 18:01:05.90ID:aMuw2L5j
>>550
有無を尋ねているのであって、やり方を尋ねているんじゃないからな
2018/01/28(日) 18:01:27.91ID:TPh4DIsY
http://uguisu.skr.jp/Windows/bat_nowindow.html
https://amaotolog.com/pc-benri/33
http://d.hatena.ne.jp/sumihira1989/20140630/1404132732
http://q.hatena.ne.jp/1467338797
http://lifebox.co.jp/post/201704232100
http://q.hatena.ne.jp/1234935497
https://www.pct.co.jp/technical_note20160322-001
http://jj-blues.com/cms/wantto-vbscriptinbatfile/
2018/01/28(日) 18:30:07.31ID:wPjcs82v
ありがとう なんとかなりそうです。
2018/01/28(日) 19:07:22.01ID:wPjcs82v
すみません。VB理解できず EXE化したpyをdos上で再起動ループさせて何とかなりました。
2018/01/28(日) 19:18:30.84ID:FBU0Mxiw
テストはしてない。

import subprocess
subprocess.run(('/sbin/shutdown', '-h', '1'))
2018/01/28(日) 19:20:29.18ID:FBU0Mxiw
質問の意図を間違えたww
2018/01/28(日) 19:34:14.03ID:aMuw2L5j
病気で幻覚・妄想がよく起こるからだろうな
559デフォルトの名無しさん
垢版 |
2018/01/29(月) 04:59:30.27ID:7znYjzbE
今現れてる症状だと糖質だな
560デフォルトの名無しさん
垢版 |
2018/01/29(月) 11:07:04.72ID:ijZgwjdS
python3使って三つの数の最大公約数ってどうやればいいんだ?
二つの数の最大公約数求めてからあと一つのとの最大公約数求めようと思ったんだがイマイチわからん
2018/01/29(月) 12:08:16.65ID:471TX7Ja
gcd(a, gcd(b, c))
で良いのでは?
2018/01/29(月) 12:10:45.21ID:ZoR+QJGB
車輪の再発明前提で
速度気にしないならすべて素因数分解して共通因子の積
速度気にするなら互除法だが三つ巴の時のやり方をググれ
2018/01/29(月) 12:11:28.01ID:iH+qkuMv
公約数をcollections.Counterに全てぶち込んで3個の奴を降順ソートした0番目の要素が最大公約数
2018/01/29(月) 12:15:52.31ID:tgfQIXS/
YoutubeAPIムズい…
565デフォルトの名無しさん
垢版 |
2018/01/29(月) 12:33:23.86ID:ZoR+QJGB
仕様変更しすぎで面倒
566遊園地
垢版 |
2018/01/29(月) 12:40:07.52ID:OAHpORg+
小学5年生に対して、それは投げやり過ぎる。

公倍数を求める(仕組み)
http://www.sho6.info/archives/362

ユークリッドの互除法(解説)
https://p--q.blogspot.jp/2014/05/python9.html

公式ドキュメント
https://docs.python.jp/3/library/functools.html



import functools
import math

print( functools.reduce(math.gcd,[220,240,360]) )
567デフォルトの名無しさん
垢版 |
2018/01/29(月) 14:31:10.35ID:JiT9Fs3s
最大公約数を聴かれてるのに最小公倍数を教える阿呆
568デフォルトの名無しさん
垢版 |
2018/01/29(月) 16:41:46.71ID:i2PFxJfw
VSCodeでPythonをやってる人がいたら操作を教えてほしんだけどさあ
「import numpy as np」みたいに入力してエンターキーを押した際、numpy等の余計な名前が補完されて「import numpy as numpy」みたいになっちゃうのってどう防いでるの?
そもそもnpから始まっているわけでもない名前を補完してくるって大した機能だけど、これ不便でないかい・・・・
2018/01/29(月) 16:58:30.99ID:yKE5k9NW
補完うざいよね
570デフォルトの名無しさん
垢版 |
2018/01/29(月) 17:18:50.26ID:yKE5k9NW
568
http://webdesign.vdlz.xyz/Editor/VSCode/Doc/Editor/Doc003_IntelliSense.html
571愛知人
垢版 |
2018/01/30(火) 02:42:32.91ID:nQQmpnBb
なんでrangeの第2引数は1大きいクソ仕様なの?教えてエロい人
2018/01/30(火) 06:43:15.97ID:cxOTXvrl
def test(*a):
....print(sum(a))

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

すいません。
可変長引数?なるものを試してみたのですが
何度やってもエラーがでます。
どなたか解決策を教えてください。
2018/01/30(火) 07:03:17.68ID:wUcTHajG
test(7, 6, 8, 5)
あるいは
test(*b)
と使うのでは
2018/01/30(火) 07:07:42.58ID:cxOTXvrl
素早いありがとうございます。
変数の前にも*が必要だったのですね!!
助かりました。
2018/01/30(火) 07:08:53.00ID:cxOTXvrl
素早いありがとう。。。
素早い回答でした。
すいません。

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

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