Pythonのお勉強 Part54 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
sleep とかの 一時停止後の再実行ではなくて
計算したのをすべてなしにして
初めから再実行をかけたいんですよね
こまってます 普通に、1度目の処理は最後にsleep(60)が実行されて、2度目で終了するループ処理では駄目なの? >>851
sleepからあけた後に勝手に一からやり直しゃいいと思うよ。
別に一分間隔でプロセス起動しても良いけど。 def unchi():
print ("unchi")
t=threading.Timer(60, unchi)
t.start() クラスの中でそのクラスのメソッドを呼びたいんだけど
class Test(Parent):
Test().func()
def func(self):
....
....
じゃだめなの?
not defined のエラーが出る @staticmethod
def func(self): ああすまそ @staticmethod なら self いらんかった >>858
>>860
やってみたけどだめだったorz 自己レス、取りあえずインスタンス生成したとき1回呼ぶだけなんで以下でいいみたいだ。
class Test(Parent):
def __init__(self,**kwargs):
super(Test,self).__init__(**kwargs)
self.func()
def func(self):
.....
..... ふつうはそうするが
別の理由があって聞いてるんだと思った >>699
csv_normal.pyがバージョン2.4.0にバージョンアップしたよ(https://ideone.com/u5Ji8H)
Version: 2.4.0
・csvデータを罫線で囲む機能を追加したよ(csvデータの可読性アップ)
・関数名などをスネークケースに統一したよ(コードの可読性アップ)
・関数、メソッドを沢山追加したよ(csvデータの処理機能アップ)
・数値リテラル内のアンダースコア表示に対応したよ(数値の可読性アップ )
思いついた機能は全部入れたよ、頑張りすぎてコードが千行超えちゃったよw
目玉は罫線で囲む機能で、罫線パターンは簡単に自作できるようになっているよ
少し早いけどクリスマスプレゼントだよ >>> import csv_normal as csv
>>> s='''
今日は何かめっちゃ褒められてますがな
ところでまた機能を1つ思いついてしまった・・
この縦書き機能を・・天才かもしれん'''
>>> c = csv.csv([list(string) for string in s.split('\n') if string])
>>> c.fill(); c.refresh_field(); c.replace_field('', ' ')
>>> c.csv = c.csv[::-1]; c.csv = csv.row2column(c.csv)
>>> c._display_delimiter=''
>>> c.print()
こと今
のこ日
縦ろは
書で何
きまか
機ため
能機っ
を能ち
・をゃ
・ 1褒
天つめ
才思ら
かいれ
もつて
しいま
れてす
んしが
まな
っ
た
・
・ ボタンを押したときに01〜03の関数を動かしたいんだけど、
btn.OnClick.Add(01,02,03)
とかやってもうまくいかなくて、
btn.OnClick.Add(01)
btn.OnClick.Add(02)
btn.OnClick.Add(03)
みたいにやらないといけない
でもこれだと02や03が不安定で、動くときと動かない時がある
どうすればいいでしょうか >>866
csv_normal.pyがバージョン2.5.0にバージョンアップしたよ(https://ux.getuploader.com/codes/download/6)
Version: 2.5.0
・print_idx2メソッドを追加したよ(インデックス表示+罫線で囲むからcsvデータが更に見やすくなるよ)
ideoneサイトだとコード容量オーバーで貼り付けられなかったからコードアップローダーにアップしたよ
※Python3.6から追加された機能を使用しているから古いPythonだと動かないので注意だよ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) >>870
01-03の関数を大きな関数の中で呼び出して、btn.OnClick.Add() にはその大きな関数を渡せばいいんじゃないの お構いなしに型変換して同じ変数にぶち込むスタイルのコーディングがいつまで経っても慣れんわ 型はオブジェクト自身が持っている、変数は指しているだけ 自分も変数なるべく使いまわしてるんだけどこれ速度と可読性の観点でどうなの? Python使ってて小手先の最適化を気にしてる時点で馬鹿に分類されるよ for文をなるだけ使わないってのは速度の点で重要だけど
素直にc++なりで書いた方が慣れないうちは楽だなと思ったり 12時間頑張ってそれは草
まあ、ママは誉めてくれるんじゃね…
よかったね >>871
少し使ってみたけどデータはpandasよりも格段に見やすい
データ抽出はpandasのqueryの方が簡潔で分かりやすい、csv_normalは冗長的だがPythonに慣れてる人はこっちでもいいかも
データを枠で囲む機能はまあまあ気に入った
感想はこんな感じかな、なかなか良い出来だと思うよグラフ化することが無いならこっち使ってもいいかもな いやいや変数の使い回しなんて小手先すぎるだろ…
勿論、コマ落ち防止でgc発生を絶対抑止しないといけないとか、変数使い回しが必要な場面もあるけどさ。
あえて書くまでもないことだけど、pythonに限らず、変数を使いまわして可読性メンテナンス性を下げるより、アルゴリズムを変えることを検討した方がいい 変数を使い回すということは、前のデータはいらないってこと、そして前のデータと意味は同じってこと
baka = >>875
baka.ng()
baka = >>886
baka.ng() 変数使いまわさないと
事実上変数のスコープがずっと続いて読みづらいことある >>889
例えば"aの色"という変数があって、aの色が変わったのなら、当然もとの"aの色"変数に格納する。
これをそもそも使いまわしと言わない。
意味が違うのにデータがいらないという理由で使いまわしてるのなら話にならない。
>>887
何だって例外はあると思うよ。 どっちでも、バグ無く動けばいいという考え方じゃ駄目なん? 規約という鎖で自分を縛って喜んでるのがたくさんいるんだ >>891
設計思想によっては例外という割合ではない >>892
ある程度の一貫性は欲しいかな
同じソースの部分部分で違うと読み間違えたり >>891
せっかくbakaを例に出してんのに例を例で被せてくんなよバカ
オマエの例でいえばbakaは"色"という変数だマヌケ
"色"にaの色を格納して、いらなくなったから"色"にbの色を入れてんの
そして色という意味は同じわけ、bakaの例みれば分かるだろ ちっ、せっかくカウンター用意してたのに噛みついてこいやぁ!!
つまり変数の使い回しというのはfor文の変数だ
for baka in (>>876, >>886, >>891):
baka.ng()
はい、論破ァーww 最近勉強始めたばっかの初心者なんだけど質問すまん
これの下の方の二つの input って誤植だよね? 正しくは print であってる?
http://imgur.com/fy1mnRS.jpg >>899
このコードをそのまま実行した場合と
該当箇所の input を print に書き換えて実行した場合を比較すればわかるけど
「そういう動作」を狙って著者さんがこう書いただけだと思う
初心者向けのサンプルプログラム以外で、こういう input() の使い方ってしないと思うけどね
出版社に問い合わせても図書カードとかはもらえなさそう >>896
「みんなのPython 第4版、2017」が定本 同じidなら結合して出力したい。
l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
求める結果
id0 python
id1 aiueo ttp://www.oreilly.co.jp/books/images/picture_large978-4-87311-778-2.jpeg coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
A01='Coordinates: {latitude}, {longitude}'.format(**coord)
print(A01) グラフ描画はやっぱりseabornですかね?
他にお勧めのふつくしいパッケージあったら教えてください ary = [['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
hash = {}
ary.each_with_object(hash) do |(key, value), hash|
if hash[key]
hash[key] += value
else
hash[key] = value
end
end
p hash #=> {"id0"=>"python", "id1"=>"aiueo"}
Ruby で書いた
https://paiza.io/projects/bbOPs6qzVV-5PLOrQ545IA >904
defaultdict 使うと楽だよ。
import collections
l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
dic = collections.defaultdict(str)
for k, v in l: dic[k] += v
for k, v in dic.items(): print(k, v) import seaborn as sns
これ何でsnsにするの? sbが適当じゃない?? seaborn調べると皆snsにしている Samuel Norman Seaborn っていう架空の人物が登場するテレビドラマがあって、それに掛けたジョークらしいよ >>913
サンクス シャレてるからワイもsnsにするでぇー あれ?やっぱりみんなseabornなの?
他にあれば知りたい プログラム初心者なんだけど質問第2すまん
pip installについてなんだけど
教本通りにQRコードを生成するパッケージをインストールしたいんで
pip install pillow qrcodeって入力したら
Collecting pillow って出てきてずっと固まってる
時間経てばインストールし終わる? Windowsならコマンドプロンプトを起動するときに右クリック→"管理者として実行"
で起動しないとpip install失敗するよん requirements.txt と Pipfile のどちらを使うべき? Microsoft Windows[Version 6.0.6002]って書いてある
管理者として実行も試してみたんだけどCollecting pillowから進まない
うーん何か足りないんかな どっちにしろおま環だから何とも言えんが
pillowがだめでもPIL入れてればいけるんじゃね pip install pillow qrcode
でインストールできたでぇー、QRコードも生成できた
pythonのバージョンは3.6.1
pipのバージョンは9.0.1
Pillow(4.0.0)インストール済み 解決した!
恥ずかしくて言えないくらい初歩的なミスだった……
すまん、ありがとうございました csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7)
もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ
Version: 2.7.7
・使用例の説明を改善
・冗長性の改善(>>885のご指摘を受けて)
・冗長な関数名、メソッド名、引数名などを簡潔に改名
・ヘッダー情報を更に便利に簡単にアクセスできるように改善
・メソッド追加
・shapeメソッド - 行列のサイズを表示(pandasからパクった)
・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから)
・inquire_field_valueメソッド(>>904もこれで解決)
などなど
あとがき:
csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき
簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました
特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します
これはpandas越えたわ・・ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) >>871
csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7)
もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ
Version: 2.7.7
・使用例の説明を改善
・冗長性の改善(>>885のご指摘を受けて)
・冗長な関数名、メソッド名、引数名などを簡潔に改名
・ヘッダー情報を更に便利に簡単にアクセスできるように改善
・メソッド追加
・shapeメソッド - 行列のサイズを表示(pandasからパクった)
・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから)
・inquire_field_valueメソッド(>>904もこれで解決)
などなど
あとがき:
csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき
簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました
特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します
これはpandas越えたわ・・ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) test
なんか専ブラの動きが変だな
また仕様かわったか ライブラリをインストールしてチュートリアルのプログラムを一通り動かすまでに結構時間を消費しちゃう
バージョンによってチュートリアルを結構改変しないと動かないのが多いし
魅力的なライブラリが多いけどそこまで直ぐに使えるようにはならないと思いましたまる バージョン変わる毎にメソッド名とかコロコロ変えすぎだよなRubyかよ 改変したチュートリアルをアップでアフリエイトがはかどるな >>909
どうせ書くなら、組み込みメソッドの Enumerable#inject と Hash#merge を
使った関数型プログラミングのスタイルが Ruby らしいのではないかと思われ
https://ideone.com/v02Ldy
for文のループをゴリゴリ回す手続き型プログラミングのスタイル(>>911)とは対照的だね l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']]
from itertools import groupby
for r in [(k, ''.join([item[1] for item in i])) for k,i in groupby(l, key=lambda x:x[0])]: print(*r)
はい、オレが優勝 ┐(´- ` )┌ ハッ、イテレータが欲しいのだよ、これだからググっただけの奴はw あ、これ何も考えてない奴の常套句だわ 回答書けないならレス汚さないでくれる? え?真面目に言ってるの?どのみちイテレータ返るでしょ、ジェネレータを言ってるにしてもジェネレータ式はないし
リストが欲しいというならギリギリ分からなくもないが、それでもコールバックを与えるgroupbyには関係ないよね ブヒョヒョヒョヒョッw operator.itemgetter使った例書いてみろよバーカ
オレのより良くなるわけねーんだよバーカ 知ったかバカがww 流れぶった切って初心者の質問3つめすまん
pipで暗号化だかなんだかのパッケージをインストールするのに
pip install pycrypto って入力したんだがエラーになった
赤文字が言うにはimport setuptools,tokenize;_
file_ってことらしい(たぶん)んだけどどうすればいい?パソコン自体にも明るくないんで初歩的な質問だったらすまん Anacondaってのはインストールした
たぶん出来てると思う >>911
>>933
そのまま、ソートできたりしますか? マジで君の葛藤
そんなに言うなら書いてやらぁ、import operator ・・はっ!?
あいつのより一行増えちまうぅぅ・・operatorをimportするだけで負けちまうぅぅ
どーすればいいんだあぁ マジで負けちまう、マジでマジでぇぇええ Scipy lecture notes は難しいなあ >942
911 は、
lst = sorted(dic.items())
でキーの昇順のリストlstを作ることができるよ。 >>910英語読める人って憧れるわぁ
気が向けば、気力が続けば読破してみる♪ Excelに「Python」搭載検討 Microsoftがアンケート実施中
(ITmedia NEWS)
[続きを読む] >>947
matplotlibが使えるってことですかね。 Microsoftの事だから、独自の実装てんこ盛りとかしそう レス数が950を超えています。1000を超えると書き込みができなくなります。