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/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環境入ってない。
2018/01/31(水) 02:10:31.29ID:IFJhRfmg
激しく調べる
2018/01/31(水) 02:19:19.31ID:Wr8CNei9
>>581
遅くにありがとう
mac用に.appでも出力できるんですよね?
2018/01/31(水) 02:33:41.81ID:qI4t5Ws+
さすがにマックは無理なんじゃないかな
2018/01/31(水) 03:10:22.93ID:2mGtOc3I
macで作る分には当然できるけど、例えばlinuxでmac用のバイナリ作ったりとかはできないみたいよ。
https://github.com/pyinstaller/pyinstaller/wiki/FAQ
それやるとしたらvirtualBoxとか使えって感じみたい。
https://pythonhosted.org/PyInstaller/usage.html
2018/01/31(水) 09:34:36.54ID:Wr8CNei9
みなさんありがとうございます
https://qiita.com/gollowars/items/387d5fecd29c26cace99
この記事を見て,qtとpyinstallerでmac用アプリにも出力できるのかあと思ったのですが大丈夫ですよね?
周りにlinuxユーザーがいないので,macとwindowsで動けば充分です
587デフォルトの名無しさん
垢版 |
2018/01/31(水) 12:38:21.98ID:UGwUWfP6
とりあえずwin10 64bitで、py 3.6.1とpyinstaller3.3ならなんの問題もなくexe化可能。

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

例えば dl = [{'1':1}, {'2':2}] みたいな変数を
サクっとファイルに読み書きできるような機能ってありますか?
2018/01/31(水) 15:43:55.50ID:gelGqHfV
pickel
2018/01/31(水) 15:44:48.64ID:gelGqHfV
ごめんtypo
pickle
591588
垢版 |
2018/01/31(水) 15:50:08.66ID:ZZNKUbS4
>>590
今まさに,これを調べてた!
これでいいんですね!ありがとう!
2018/01/31(水) 16:08:18.48ID:gelGqHfV
用途によってはJSON
simplejsonとか
2018/01/31(水) 18:59:15.58ID:t+i4Nq8A
>>587
ID変わります
僕はmacユーザーなのでその点は大丈夫そうです
必要なパッケージも分かったのでだらだら実践に移ろうと思います
ありがとうございました
2018/02/01(木) 10:28:15.46ID:ywo4UEj7
PyQtでラベルをうごかしたりアニメーションさせたりってできますの?
595デフォルトの名無しさん
垢版 |
2018/02/01(木) 10:52:44.15ID:DzJPkPrp
できますわな
2018/02/01(木) 10:54:02.41ID:ywo4UEj7
具体的に教えてクレメンス
2018/02/01(木) 13:28:12.03ID:WSecxvXB
pandasでExcelのVLOOKUPみたいな事をしたいのですが
どうやったらできますか。
2018/02/01(木) 13:36:03.81ID:NCVvUhLZ
https://stackoverflow.com/questions/36809129/relation-between-two-columns-python
2018/02/01(木) 13:43:06.00ID:NCVvUhLZ
https://stackoverflow.com/questions/25493625/vlookup-in-pandas-using-join
https://michaeljsanders.com/2017/04/17/python-vlookup.html
http://sinhrks.hatenablog.com/entry/2015/01/28/073327
2018/02/01(木) 14:01:36.25ID:WSecxvXB
>>599
Linkありがとうございます。
601デフォルトの名無しさん
垢版 |
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)
602デフォルトの名無しさん
垢版 |
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)
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]
604デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:23:51.94ID:EzUfnp8s
appendをaddに変えると良いよ
605デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:26:15.84ID:sggyuymU
フォントωわかりにくすぎ
606デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:29:37.72ID:29y3RqyU
コ−ド打ち間違いでした。
リスト[2, 6, 9]だと、出来ますか?
今、通勤中で、パソコンがないので。。。
2018/02/02(金) 08:18:00.09ID:5p9ZJRtr
aaa = [2,6,9]

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

fff(aaa)

これでできた
608デフォルトの名無しさん
垢版 |
2018/02/02(金) 12:09:46.98ID:EhnDmFZw
これは、出来る?
グローバルなリストを、
関数内で、添え字で代入だけど。
今、パソコンがない環境なのです。。。

aaa = [2,6,9]

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

fff(aaa)
2018/02/02(金) 12:16:28.21ID:dTcbVnf+
何時間通勤しとんねん
2018/02/02(金) 12:29:21.28ID:JkEnXGqU
Pythonしたいなら仕事やめろカス
611愛知人
垢版 |
2018/02/02(金) 12:35:00.00
>>608
パソコンなくても実行できるが
https://ideone.com/
612デフォルトの名無しさん
垢版 |
2018/02/02(金) 12:54:54.71ID:YzG776tY
>>608
下請けじゃないから試してないけど、多分できない。
関数内でglobalしとけば可能なはず。
613デフォルトの名無しさん
垢版 |
2018/02/02(金) 13:08:20.53ID:oiJ7/Utq
Pythonで物理乱数を発生させたいと考えてます。
できるだけお金を掛けずに簡単にやる方法ってありませんか。
当方、プログラミングは最近始めたばかりの初心者です。
よろしくお願いします。

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

アホは普通の人より多く金を払わなければ存在を認められないんだよ
それが嫌ならアホを脱出しろ
616愛知人
垢版 |
2018/02/02(金) 13:55:08.72
それ読んでも擬似乱数の知識しか身に付かなくね
2018/02/02(金) 13:58:58.06ID:oiJ7/Utq
>>616
ですよね。。。
スキルのない奴が人をアホ呼ばわりとか。。。
2018/02/02(金) 14:04:21.70ID:oiJ7/Utq
どなたかDAISOで揃うもので物理乱数を発生させる方法をお願いします。m(_ _)m
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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