19/12/09 21:53:47.07 gL89svw9.net
クラスの勉強をするかdict型で書き出すかして
そのままpickleにかけろ
それより楽な方法は生データをテキストで保存することだが後々苦労するからやめとけ
621:デフォルトの名無しさん
19/12/09 22:18:14.86 m18yM9uO.net
ありがとうございます
dictと、クラスの定義ですね
はて?
pickleって、ひょっとして持っていけるのは要素だけで
変数名とかリスト名とかは持っていけない?
622:デフォルトの名無しさん
19/12/09 23:42:57.55 Pxm13ZGa.net
可読性を重視するならjsonもありかと
623:デフォルトの名無しさん
19/12/10 09:42:46 Gtb8KZ21.net
可読性ならjsonよりyamlやtomlのほうが…
624:デフォルトの名無しさん
19/12/10 13:06:22.84 6QYDHDQi.net
括弧が付いてると可読性が上がる
625:デフォルトの名無しさん
19/12/10 13:28:31.47 uPxE4CgL.net
カッコ悪い
626:デフォルトの名無しさん
19/12/10 13:35:45.35 F3h+m1zk.net
(E)!
627:デフォルトの名無しさん
19/12/10 15:08:32 FE1Fen7q.net
jsonファイアフォックスで見れば見やすいぞ
628:デフォルトの名無しさん
19/12/10 15:46:55.98 6QYDHDQi.net
よしなに整形してくれるからな
629:デフォルトの名無しさん
19/12/10 15:57:56 48kVELqA.net
>>589-591
msgpack
630:デフォルトの名無しさん
19/12/10 16:51:25 LOypIkS3.net
590の”可読性”はhuman-readableの意味で使ってんだろ
631:デフォルトの名無しさん
19/12/10 17:23:44.99 eJPx3dnZ.net
msgpackはJSON比で大して速くも小さくもない
人間による読み書きが可能であり大抵の言語で標準で扱えるというJSONのメリットを捨てるのに見合ったリターンはない
632:デフォルトの名無しさん
19/12/10 17:53:43.58 48kVELqA.net
充分小さいぞ
633:デフォルトの名無しさん
19/12/10 18:12:40.55 eJPx3dnZ.net
せいぜい50%程度を充分と思うかは貴方次第
私はそうは思いませんね
634:デフォルトの名無しさん
19/12/10 18:15:41.31 48kVELqA.net
キーを何度も使いまわすのは無駄だと思う
635:デフォルトの名無しさん
19/12/10 19:20:
636:38.59 ID:eJPx3dnZ.net
637:デフォルトの名無しさん
19/12/10 19:51:08.94 1ZU0zLKJ.net
まあ一連のレスは無駄そうだな
638:デフォルトの名無しさん
19/12/10 19:59:18.07 ORQYQVvI.net
yokokara
639:デフォルトの名無しさん
19/12/10 20:52:52.51 hzlCevra.net
可読性といえばxmlじゃないの
いやよく知りませんけど!
640:デフォルトの名無しさん
19/12/10 20:56:35.79 6QYDHDQi.net
訳あってWordのdocument.xmlを読んだが非常に厳しい
641:デフォルトの名無しさん
19/12/11 09:06:12.26 ZT47FwY4.net
>実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
Python2.7.1 Windows 2000pro 開発環境はPython付属のIDLEです
Win32のクリップボードから取得した要素を、順番に辞書に渡しているのですが
「一番目、二番目」の順で渡したものが、「二番目、一番目」とひっくり返ったり
三つ渡すと「三番目、三番目、二番目」なんて順で保管されたりして、訳がわかりません
「辞書型オブジェクトには順序がありません」という話ではなくて
keyを使って取り出してみると整合してないのです
助言を頂ければありがたいです。
642:デフォルトの名無しさん
19/12/11 09:07:29.80 ZT47FwY4.net
>>608
(続き)
(続き)
import win32com.client
import win32clipboard
def copy(text):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText( text, win32clipboard.CF_UNICODETEXT )
win32clipboard.CloseClipboard()
def paste():
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
win32clipboard.CloseClipboard()
return data
oAutoIt = win32com.client.Dispatch("AutoItX3.Control")
#Windowsアプリケーションでカーソルを操作するためのAPIです
oAutoIt.WinActivate("とある請求書ソフトウェア - [xxx-xx-x.uqm]")
#APIは、とある請求書ソフトウェアが起動して、xxx-xx-x.uqmウィンドウが開くまで待機して、その後実行します
643:デフォルトの名無しさん
19/12/11 09:08:21.34 ZT47FwY4.net
>>609
(続き)
dic = {}
oAutoIt.MouseClick("left",91,369,3)
oAutoIt.MouseClick("left",654,65,1)
#とある請求書ソフトウェアから"AAAAA"をコピーしてきます
dic ["key"] = paste()
oAutoIt.MouseClick("left",345,367,1)
oAutoIt.MouseClick("left",649,62,1)
#とある請求書ソフトウェアから"BBBBB"をコピーしてきます
dic ["key2"] = paste()
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)
#print結果
============RESTART============
>>>
BBBBB
AAAAA
>>>
644:デフォルトの名無しさん
19/12/11 09:33:54 cSF0k0t2.net
>>610
そのAPIは知らんけど、copy関数使われてなくない?
645:デフォルトの名無しさん
19/12/11 09:40:31 ZT47FwY4.net
>>610
Windowsのクリップボードを監視した感触では、
とある請求書ソフトウェアからは、正しい順番でコピーされている様子です
ペースト関数を、一回しか使わない場合は、正常動作します。
素人ながら、なんか、定義済の変数に新しい値が代入されるとき
前後でメモリの処理がまずくなっているのかなと思いました
グローバル変数とかローカル変数とか、そっちの問題なんだろうかと、それらの勉強も始めましたが
まだまださっぱりわかりません
助言だけでもいただければありがたいです
646:デフォルトの名無しさん
19/12/11 09:43:31 ZT47FwY4.net
>>611
そうですね。copy関数は使われてないですね
参考元では、copyとpasteがペアで表記されていたので
もしかして改善するときに必要になるかな?と思って、念のためにあげました
失礼しました
647:デフォルトの名無しさん
19/12/11 09:51:14 cSF0k0t2.net
>>613
copy関数使わないで、コピーはどうしてるの?
マウスクリックしかされてないみたいだけど。
想像だけど、copy関数使ってコピーしてそのままreturnしたら良いんじゃ無いの?
648:デフォルトの名無しさん
19/12/11 09:58:47 ZT47FwY4.net
>614
copy関数使わないで、コピーはどうしてるの?
「とある請求書ソフトウェア」は、画面上に「COPY」というボタンがありまして
それを一回クリックしてます
するとWindowsのクリップボードに、テキストが入ってきます
649:デフォルトの名無しさん
19/12/11 10:12:58 Z8/OjH57.net
sleepないときつくない?
650:デフォルトの名無しさん
19/12/11 10:47:34 pFOdIusR.net
>>608
3.6までの辞書は
「とにかく出てくる順番はテキトー 気分次第」になるぞ。
keyがうんたらなんたらとかいうレベルではなく。
いやorこまるなら3.7系にするか
標準で装備されてるcollectionsモジュールの「OrderedDict」(これは2.7系から使える)を使う
651:デフォルトの名無しさん
19/12/11 10:48:31 ZT47FwY4.net
>>616
後出しですみません
import time
time.sleep(0.3)
#0.3~3までいくつか検討
結果
time.sleep(3)
AAAAA
近くにある命令が辞書に入ってくる
不思議な現象が起きております
環境が悪いんですかね
652:デフォルトの名無しさん
19/12/11 10:50:17 b0NSAXs1.net
>>610
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)
これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
puts "A の値は : #{ A }"
print結果が、単にタイミングの問題で、
後にprintされたものが、先に表示されているだけかも知れない
653:デフォルトの名無しさん
19/12/11 10:56:31.99 PLslpcOL.net
ループが理解できない(´;ω;`)
654:デフォルトの名無しさん
19/12/11 10:57:06.73 ZT47FwY4.net
>>617
いやいやいや
出てくる順番は適当で良いですけど
キーと一緒に代入した(つもり)要素が、別物になってたら困りますよね
それはそれでOrderedDict 調べてみます
655:デフォルトの名無しさん
19/12/11 11:01:37.93 ZT47FwY4.net
>>619
>これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
すみません。今の私の技術では限界です
ソースにふりがなのついた参考書と、赤い表紙の本を手引きにしてるレベルです
>後にprintされたものが、先に表示されているだけかも知れない
探ってみます
656:デフォルトの名無しさん
19/12/11 11:17:42.24 pFOdIusR.net
>>620
ループといってもいろいろあるので
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
↑このへんから辿って勉強しる
657:デフォルトの名無しさん
19/12/11 11:18:43.26 pFOdIusR.net
>>618
環境か
メモリの壊れかけを疑う件
658:デフォルトの名無しさん
19/12/11 12:22:25.53 fWs5lM4b.net
>>618
sleepどこに書いたの?
MouseClickした後paste呼ぶ間に入れてみれ
マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期なんだよ
659:デフォルトの名無しさん
19/12/11 12:29:51.76 pFOdIusR.net
>>625
横レスだけど
> マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期
なるほどとってもなっとくっく
660:デフォルトの名無しさん
19/12/11 12:44:29.61 8OP/pbId.net
dataの参照を取り出してるだけで
dataの中身を取り出してないから
printするときに逆になるんじゃね
知らんけど
661:デフォルトの名無しさん
19/12/11 12:48:31.95 ZT47FwY4.net
>>625
>sleepどこに書いたの?
>MouseClickした後paste呼ぶ間に入れてみれ
pasteの後に入れてました
1回目と2回目のコピペの間で、休ませれば正常動作するかな?と思いまして
そして、はー。これが正解でした
sleepの位置も大事なんですね
ありがとうございました
みなさんもありがとうございました
662:デフォルトの名無しさん
19/12/11 12:53:40.70 Z8/OjH57.net
AutoItからの移行組だと思ったけどあれじゃAutoItの時も動かないはずだが
663:デフォルトの名無しさん
19/12/11 15:59:30 PLslpcOL.net
URLリンク(ideone.com)
このコードの1つ目だと、1列目の行にしかアクセスできてないです
しかし、2つ目のようにarray[x][y]とすると、2つめの行までアクセスできています
しかし、yループは1度しか回していません
664: xを先に書くとxがyループの取り出しに使われるのですか?
665:デフォルトの名無しさん
19/12/11 16:03:10 8OP/pbId.net
何を意図してるかにもよるが
縦(行)をyと考えてるなら
array[y][x] でアクセスするべき
君がやりたければ
array[x][y] でも構わないが
y は横(列)になるってだけ
666:デフォルトの名無しさん
19/12/11 16:08:47 H3x5MOt+.net
>>610
printデバッグとデバッガのステップ実行を使うといいよ
両方組み合わせればタイミングが原因かどうかはだいだい切り分けられる
今回の例ならpaste関数のreturnの前にprint(“paste data: ”, data)を入れて
dic[“key”] = paste()の直前か直後にブレイクポイントを設定してステップ実行する
667:デフォルトの名無しさん
19/12/11 16:10:35 cSF0k0t2.net
>>630
ループ以前に配列を理解していない。
2つ目のはy値はずっと0でx値は0,1と変化している。
print(array[0][0])、print(array[1][0])と実行していることになる。
668:デフォルトの名無しさん
19/12/11 16:19:15 H3x5MOt+.net
>>630
array = [ [1,2], [3,4] ]
このarrayは1つ目の要素が[1,2]、2つ目の要素が[3,4]
だからarray[0]は[1,2]で、array[1]は[3,4]
array[0][0]は[1,2]の1つ目の要素なので1
array[0][1]は[1,2]の2つ目の要素なので2
for y in range(10):とするとyという変数に
0から9まで(10は含まない)を代入しつつループの中の処理を実行する
ループ内でyを参照したらそのループ開始時に代入された値が入ってる
xやyじゃなくfor i in range(10)と書いても同じ
xやyに特別な意味があるわけじゃない
669:デフォルトの名無しさん
19/12/11 16:27:38.36 PLslpcOL.net
>>631
テトリスの作成で、配列の回転をしたかったんですよ
行は[1,2]を1行目、[3,4]を2行目と考えています
670:デフォルトの名無しさん
19/12/11 17:01:24 wQahrCJY.net
>>635
拾い物
URLリンク(pastebin.com)
671:デフォルトの名無しさん
19/12/11 18:26:22.83 BSd1dztf.net
さすがにOSアップデートしろよwww
そんな化石使ってる時点で話にならない
672:デフォルトの名無しさん
19/12/12 17:12:30.59 f967V2wE.net
x = [0,0.1,0.2,0.5,1,2,3]
y = [0.5,0.5,0.4,0.4,0.5,0.4,0.5]
このリストの数値を使ってmatplotlibで折れ線グラフを書きたいのですが、xの小数の値が偏ってしまい見づらくなってしまいます。
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
x軸を等間隔に表示させる書き方があれば教えていただけませんでしょうか。
x,yはそれぞれx軸、y軸にあてたい数字です。
673:デフォルトの名無しさん
19/12/12 17:14:40.82 f967V2wE.net
>>638
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
この行スペースが表示できませんでしたが、メモリの0~0.5までが寄ってて、1~3までが間隔空きすぎている。等間隔ではないってことを言いたかったです。
674:デフォルトの名無しさん
19/12/12 17:51:08.05 dyy25qsp.net
>>638-639
fig = plt.figure()
ax = fig.add_subplot(111)
#↑ここまでは適宜自分がやってるように読み替えれ
#↓目盛りの指示を好きなように出せる呪文。y軸の設定はset_yticksだ
ax.set_xticks([0, 1, 2, 3, 4])
675:デフォルトの名無しさん
19/12/12 18:11:33.19 n05Ewb3K.net
plt.plot(x, y)
plt.show()
で普通に等間隔のtickで表示される
plt.plot(x, y)
plt.xticks(x)
plt.show()
とかすれば等間隔じゃないtickで表示される
676:デフォルトの名無しさん
19/12/12 18:21:07.32 f967V2wE.net
>>640さん、>>641さん
ありがとうございます。お二人のようにそれぞれやってみましたが等間隔で表示できません…。
少数のところが偏って表示されてしまいます。
一応コード載せます
figure = plt.figure(figsize=(10, 5))
axis = figure.add_subplot(1
677:, 1, 1) plt.plot(x,y) axis.set_xticks([0,0.1,0.2,0.5,1,2,3]) plt.show() http://o.5ch.net/1l95o.png
678:デフォルトの名無しさん
19/12/12 18:22:15.85 f967V2wE.net
すみません…。画像の乗せ方わからなかったので試しにかいてみたやつ消すのを忘れてました…!
679:デフォルトの名無しさん
19/12/12 18:28:45.35 Lo+C9eAO.net
ネタじゃなくてマジ池沼さん?
680:デフォルトの名無しさん
19/12/12 18:32:25.07 n05Ewb3K.net
>>642
>axis.set_xticks([0,0.1,0.2,0.5,1,2,3])
↑等間隔じゃないtick設定しとるやーーん
681:デフォルトの名無しさん
19/12/12 18:42:20.58 f967V2wE.net
>>645
はい。もともと等間隔ではないものを等間隔に表示したいという質問でした。
関数の値(例えばx = 0.1ならy = 0.4)をグラフにしたいと思っていました。
xの値は0~1までは少数もとりますが、1からは整数しかとらないためにグラフにすると偏りが出て見づらくなってしまいます。
それを等間隔に表示できれば見やすいかなと思いました。
682:デフォルトの名無しさん
19/12/12 20:20:59.56 TAtdTKRF.net
yokokara
683:デフォルトの名無しさん
19/12/12 20:54:04.13 n05Ewb3K.net
>>646
そいうことだったのか
tickを等間隔な値にして、対応するラベルを設定したい等間隔じゃない値にする
んでplotするxの値をそれに対応するよう変換する必要があるんじゃないのかな
自動でやってくれる方法があるのかは知らない
plt.plot(range(len(x)), y)
plt.xticks(range(len(x)), x)
plt.show()
684:デフォルトの名無しさん
19/12/12 21:57:18.88 dyy25qsp.net
>>646
無理に時空を歪めるのは見る側のことを考えてないのでヤメレ
常識的な解決策としては
・対数グラフを使う
・一部(x=0から1の区間だけ)拡大図を
範囲内のどっか空きスペースまたは別添えでつくる
685:デフォルトの名無しさん
19/12/12 22:46:47.08 f967V2wE.net
>>648
すごい!これできれいにグラフが出せました。本当にありがとうございます!
書き方に工夫が必要で、そういうのをぱっと思いつけるように勉強いたします。
>>649
関数のグラフではなくてxに対応するyの値(値がxのときの結果はこの数値)はこれですよっていうだけの折れ線グラフを出したかったのです。
ですから時空は大丈夫のはず…です。
対数グラフというものを知りませんでしたので調べてみます。ありがとうございます。
686:デフォルトの名無しさん
19/12/12 23:26:28.33 XBUUy+/0.net
いろいろな参考書で、辞書はKeyと値のペアで出来ていると理解しましたが
keyだけがあって、値が空のを作ってしまってはいかんのでしょうか?
687:デフォルトの名無しさん
19/12/12 23:54:29.36 ZS52b4mm.net
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
browser.get('URLリンク(qiita.com)')
calendar = browser.find_elements_by_css_selector('div.col-sm-12')
for col_sm in calendar:
col_sms = col_sm.find_elements_by_css_selector('th.adventCalendarCalendar_dayName')
print(col_sms.text)
エラーが
---> 9 print(col_sms.text)
AttributeError: 'list' object has no attribute 'text'
と表示されます。textで出力できないのはなぜなんでしょうか?
色々調べているのですが出力方法がわかりません。
初歩的なことですみませんが教えていただけないでしょうか。
688:デフォルトの名無しさん
19/12/12 23:58:02.89 n05Ewb3K.net
>>651
setが辞書のキーだけを集めたコレクション
689:デフォルトの名無しさん
19/12/13 00:15:27.02 +9OE4qBy.net
>>652
ブラウザのコンソールからJS叩くかIPythonとかでデバッグするかして
そのCSSセレクタで意図した要素が取得できてるのか確かめるといい
ビジュアルに確認できるのでブラウザのほうが最初はわかりやすいと思う
690:デフォルトの名無しさん
19/12/13 01:37:03.59 cqNP6rMk.net
>>654 ブラウザコンソール開いてみました。ブラウザコンソールについて調べてみたのですが よくわかりませんでした。ここに何かのコードを入力するのでしょうか。 JSとはなんでしょうか? Jupyter Notebookを使っていまして取得したいcol_smsには <selenium.webdriver.remote.webelement.WebElement (session="667d743c5f872d23247665eb139f3bac", element="f43fbb00-654d-472f-b0f0-1b43973384b4")> というようなものがいくつか入っているのですが、textを使っても出力されない状況です。 質問ばかりですみません。
692:デフォルトの名無しさん
19/12/13 02:19:41.88 VJl1Rt3v.net
普通に長さが1の配列が戻ってきてんじゃね
イテレーター使って.text使うかcol_sms[0].textでいいんじゃね
col_sm.find_elements_by_css_selector()の戻り値ggれば解決しそうな話
俺は面倒くさいのでggりませんけども…!
693:デフォルトの名無しさん
19/12/13 03:41:11 +9OE4qBy.net
>>655
JSはJavaScript
スクレイピングするならHTML/CSSと
JavaScript/DOM APIの基礎知識は必須
browser.find_elements_by_css_selector('div.col-sm-12') はJSで
document.querySelectorAll(‘div.col-sm-12’) とするのと同じ
find_element_by_css_selectorは最初に見つかった要素を返す
find_elements_by_css_selectorは要素のリストを返す
んでリストには’text’というAttributeはありませんよってエラーが出てるよね
694:デフォルトの名無しさん
19/12/13 06:07:45.61 N3jObneI.net
Cython について
Cython の pyx ファイルの中に、
@cython.infer_types(True) とあるんだけど、
この@は何の働きをしているの?記法なの?
詳しい人教えて
695:デフォルトの名無しさん
19/12/13 10:39:13.33 A6tZ4ufL.net
>>652-657
Ruby, Selenium Webdriver なら、
find_element は最初の1つだけで、find_elements はすべてを取得する(配列)
css_selector では、div.col-sm-12 などの、
Bootstrap などのCSS フレームワークなどの、デザインを指定するクラスは、あまり意味がない
#main とか、div.container.adventCalendarCalendar とか、table.table とか、
HTML の構造的に、意味があるようなセレクターを指定する。
そうすれば、スマホ・PC などのデザインによって変わらない
css_selector = "#main > div.container.adventCalendarCalendar table.table > thead th.adventCalendarCalendar_dayName"
element = driver.find_element( :css, css_selector )
elements = driver.find_elements( :css, css_selector )
puts element.text, elements[ 0 ].text, elements.length
出力
Sun
Sun
7 (配列の要素数)
696:デフォルトの名無しさん
19/12/13 11:17:38.66 V90d9jYd.net
小学生っぽい子供が混ざってるようだが
質問するときは相手に伝わるようにちゃんと考えた方が良い
技術力よりコミュニケーション力や日本語力を気にしろ
697:デフォルトの名無しさん
19/12/13 11:40:28.24 Mexu05AP.net
>>653
ちょっと難しかったです。
とりあえず辞書は、キーだけで値がなくても構わないと思うことにします
698:デフォルトの名無しさん
19/12/13 12:14:38.95 A6tZ4ufL.net
Ruby では、ハッシュのキーに値を設定しなければ、値がnil になる。
一方、存在しないキーの値を取得すると、nil になる
これでは両者の区別がつかなくなるので、デフォルト値を設定する。
そうすると、キーに値を設定しなければ、値がデフォルト値になる
バグを避けるためには、必ずキーに値を設定するか、デフォルト値を設定しておく
699:デフォルトの名無しさん
19/12/13 12:38:34.35 ZbkO1X73.net
>>661
set(集合)とdict(辞書)は内部的にはそこそこ近いことをやってる
ハッシュテーブルを作って、keyのハッシュからvalueを見るのがdict。key(setにkeyって概念はないけど、便宜上)のハッシュを見て、key自体が 衝突 and 同じ内容が含まれてるか を見て、key自体を要素として扱うのがset。
setは本当に数学における集合と同じような動作をする(bitwise操作などができる)って認識しとけばおっけー
700:デフォルトの名無しさん
19/12/13 12:41:27.69 ZbkO1X73.net
Rubyの話をしてる人が居るのは本当に謎だけど、Pythonでも
dict.get(key, default)
とすればdefaultを設定した上で値を取得できる。
あるいは、collections.defaultdictを使うのもあり
701:デフォルトの名無しさん
19/12/13 12:46:19.59 Mexu05AP.net
>>662-663
ありがとうございます
702:デフォルトの名無しさん
19/12/13 12:49:22.97 Mexu05AP.net
>>664
デフォルトを設定した辞書もあるのですね
ありがとうございます
703:デフォルトの名無しさん
19/12/13 13:41:19.76 +9OE4qBy.net
>>661
「キーだけで値が無い辞書」をどういう風に使いたいの?
704:デフォルトの名無しさん
19/12/13 15:24:58.53 yspevzV6.net
>>664
スレタイにRuby禁止って付けられるくらいに、スレ違いのRubyの話をしたがる頭のおかしい構ってちゃんが一人居ついているだけだからスルーしとけばいいよ
705:デフォルトの名無しさん
19/12/13 15:26:20.43 hzMr3/rM.net
>>667
とある請求書作成アプリのセルからテキストをコピーして辞書に格納してから、別アプリにペーストしたいのです
ケースによって空欄のセルもあるので、そのままで良かったのだろうかと考えてました
でもNoneを入れる事にしました
706:デフォルトの名無しさん
19/12/13 16:20:03.71 +9OE4qBy.net
>>669
なるほど
「キーに対応する値が無い」ケースをどう表現すべきかという話だったね
文字列の空欄を示す場合は一般的には空文字を使っておいたほうが
後でテキスト処理をする時にNoneのハンドリングが必要ないし
キー自体が存在してなくてNoneになるケースとの区別が付きやすくてベターだと思う
707:デフォルトの名無しさん
19/12/13 18:47:08.49 cqNP6rMk.net
>>656-657-659
ご回答ありがとうございます。皆さまから教えていただいたことをできる限り試してみます。
708:デフォルトの名無しさん
19/12/13 18:53:53.21 Mu2dn80c.net
>>652
そのページそもそもdiv.col-sm-12の子孫にth.adventCalendarCalendar_dayNameが無い件
709:デフォルトの名無しさん
19/12/14 00:53:34.54 28JG+Fsi.net
>>672
子孫など何か関係がないといけないのですね。入力をすればなんでも取得できると思っていました。
教えていただきありがとうございます。簡単なサイトを作れるぐらいのHTMLやCSSの基本をまずは覚えた方がいいんでしょうか...
710:デフォルトの名無しさん
19/12/14 09:57:24.53 YkKG/mMh.net
>>670
アドバイスありがとうございます
実は辞書を作る前工程で
Win32のクリップボード経由で、文字列を取得してくるプロセスがあったのですが
そこで自分が書いた関数だと、Winアプリが文字列が空だと、エラーになることに気がつきました
悩ましかったのですが、エラーになったらtry ~exceptで
変数にNoneを入れることでしのぎました
text = “” だとデバッグで読むときよく分からなかったですし
ここは、何がベターなのかもう少し考えてみます
このスレのコメントは大変ためになります
711:デフォルトの名無しさん
19/12/14 10:57:58.37 oHNLq8G6.net
馬鹿には無理
712:659
19/12/14 10:59:10.77 8NRAnTxB.net
>>673
web アプリの初心者は基本、サーバー側はRuby で、
クライアント側は、HTML, CSS/SASS, Bootstrap, JavaScript, jQuery などを使う
jQuery のCSS Selector のルールを学べばよい。
emmet も、似たようなもの
# はid で、. はクラスとか、
x > y なら子要素(子孫を含まない)で、x y なら子孫要素とか
それと、他人のHTML の解析は、基本無理。
クラスをどういう意味で使っているのか、分からないから
構造的な意味で使っているのか、単なるデザイン上のものなのか、
または、Bootstrap などのCSS フレームワークのルールなのかも
713:知れないし、 他人の考えなど、分からない col-sm-12 みたいに、small なら、12列分の幅を使うとか、 こういうデザイン上のものを、CSS Selectorに入れると、 ページのデザインが変わると、セレクトされなくなったりしてしまう 一方、構造的な意味は、変わりにくい
714:デフォルトの名無しさん
19/12/14 11:23:55.42 dDx9/YlQ.net
yokokara
715:デフォルトの名無しさん
19/12/14 11:34:02.24 TlZt0bii.net
後ろから前から
716:デフォルトの名無しさん
19/12/14 11:52:10.65 e26gFA86.net
アホな質問で申し訳ないが
class の、書き方について質問あります
Python がはじめてのプログラミング言語で
やっと手続き的な記述ではやりたいことが
できるようになってきた
オブジェクト指向理解してないのもあるかもだけど
ライブラリとか、フレームワークのclass をオーバーライドしてかく時に
self が乱立しまくってて、
効率わるいようなきがするのだけども
書き方があってるのか知りたい
現場エラー吐いてないから、いいかもしれないけど
マナーというか、お作法としてどうなんやろ?と
別途class つくったり関数作ったりするの?
717:デフォルトの名無しさん
19/12/14 14:32:25.78 tCtWHq2v.net
>>679
それは誰もが感じる疑問
Pythonではインスタンスメソッドとして扱いたいメソッドの第一引数にselfを渡して
明示的にselfを指定する以外にインスタンスメンバーを参照する方法はないので
オブジェクト指向的に書く場合はselfが乱立しまくるのが通常
”Explicit is better than implicit.”という苦しい言い訳をする人も多いけど
そんな高尚なものじゃなく単に言語の制約なのでPython使う限りは諦めて受け入れるしかない
718:デフォルトの名無しさん
19/12/14 16:23:05.11 8NRAnTxB.net
Ruby のクラスでは、引数にself を持ちまわらなくても、selfが使えるだろ。
それは、実装が大変
ユーザーの利便性を上げるために、実装で頑張った
719:デフォルトの名無しさん
19/12/14 16:52:04.55 TlZt0bii.net
selfが嫌なら第一引数を@にすれば良いんだよ
@.hoge でアクセス出来るし便利だぞ
720:デフォルトの名無しさん
19/12/14 16:58:40.39 tCtWHq2v.net
>>681
実装は大変じゃないよ
そんな大変ならPython以外にも
1つくらいselfを要求するOO言語があってもいいよね
721:デフォルトの名無しさん
19/12/14 17:15:21.14 TlZt0bii.net
最近はRustとかNimみたいに
第一引数.関数名(第二引数以降はカッコ内)
の様な文法が流行ってる
722:デフォルトの名無しさん
19/12/14 17:45:57.04 tCtWHq2v.net
>>684
もうそういう苦しい言い訳やめたほうがいいよ
RustやNimやGoはコンテキストが全く違うんだから
>>679
FAQも読むといいよ
URLリンク(docs.python.org)
日本語訳おかしいから英語読めるなら原文のほうがおすすめ
723:デフォルトの名無しさん
19/12/14 18:17:59.35 zJmCdf+U.net
Pythonは変数のスコープもちょっと微妙なとこあるし、self必須とかはスコープに由来してるかわかんないけど、その辺は受け入れるしかないよね
その辺受け入れたとしても便利だからPython選んでるわけで
もちろん後方互換性を保ったまま改善できる言語変更があったら嬉しいけど
○○が変だからPythonは使えない、という人には他の言語もあるしね。
724:デフォルトの名無しさん
19/12/14 21:51:22.03 BIA5WTIR.net
テトリスってむずいすか(´・ω・`)
725:デフォルトの名無しさん
19/12/14 22:02:54.83 1E2rCKG0.net
>>687
ゲームを作りながら楽しく学べるPythonプログラミング
で題材になるぐらいには簡単(入門向け)
726:デフォルトの名無しさん
19/12/14 23:29:48.51 Ztjs0n6X.net
>>687
たぶんブロックの回転で行列がどうこう言ってた人かな?
テトリスは特段難しくはないんだけど、これまでのレスを見てるともっと基礎レベルから頑張った方が良さそう。
727:デフォルトの名無しさん
19/12/15 07:07:55.11 DnIG8IxI.net
今がんばってます(´・ω・`)ゲームつくりたいんで(´;
728:デフォルトの名無しさん
19/12/15 12:01:47.20 tER7UmuJ.net
この界隈だとがんばっちゃダメ
テトリスのコードを10くらい眺めて理解すればいい
729:デフォルトの名無しさん
19/12/15 12:11:02.09 +1jKhtSK.net
>>676
詳しく教えていただきありがとうございます。
jQuery のCSS Selectorのルールなど見てみようと思います。
730:デフォルトの名無しさん
19/12/15 12:21:43.19 YeoWUmPH.net
>>691
どこで仕入れればいいの
731:デフォルトの名無しさん
19/12/15 15:30:08.19 GQ26ybwL.net
SQLite3で巨大なDBにデータを追加してcommitした時
動作としてはdbファイル全体が改めてディスクに書き込まれるのでしょうか
それとも変更した部分のみがディスクに書き込まれるのでしょうか
SDカード上にdbファイルを置いているため書き込み耐久が心配になり質問しました
732:デフォルトの名無しさん
19/12/15 15:53:14.71 goe0JUwd.net
>>694
普通は全書き込みだと思うんだが
そんなに消えて困るものならば
SDカードだったら
常時上書きのドラレコ突っ込みOKみたいな特上品使わないと
やばくね?
733:デフォルトの名無しさん
19/12/15 16:09:30.52 fGq+HT2S.net
ページ単位で管理されていて更新されたデータのあるページだけ書き込まれる。
734:デフォルトの名無しさん
19/12/15 19:58:47.04 tER7UmuJ.net
>>693
chromeかFireFoxのブラウザで「python tetris」と検索して出てきたものを上位から読む
735:デフォルトの名無しさん
19/12/15 23:09:27.37 fpSJINfx.net
>>694-696
ファイルシステムによる
Linux のext では、例えば、40KB のファイルは、4KB のページサイズでは、10ページある。
その5ページ目に、8KBのデータを追加したとすると、
追加された2ページ分は、11・12ページに書かれて、
1~5, 11, 12, 6~10 の順番に、リンクが張られる
この場合は、既存のページは、再配置されない。
次のページを示す、リンクのみが書き変わる。
つまり、5→11、11→12、12→6 を指す
でも、12ページ分48KBを超えると、管理方法が変わるから、
データの再配置が起きるかも知れない
736:デフォルトの名無しさん
19/12/15 23:47:23.79 YEGq3iyi.net
すいません。どなたか教えてください。
jupyter notebook にてpyperclip をインポートしようとしたところできなかったため、
anaconda prompt にてインストール試みました。
conda install pyperclip だと、公式サイトで探してね。的なエラーが出てきたため、
pip install pyperclip で試みたところインストールは完了したのですが、、、
やはりjupyter notebook上でインポートしようとすると、同様の見つかりませんエラーが返ってきます。。。
何が悪いのか、どこを見ればいいのかよくわかりません。。。
教えていただけると大変ありがたいです。。。
737:デフォルトの名無しさん
19/12/16 07:51:04.24 79yFDnLG.net
>>698
dbはふつうそんな追加の仕方はしない。
738:デフォルトの名無しさん
19/12/16 08:55:41.01 +69MK1pA.net
>>687
アルゴリズムはねちょねちょ考えるのが楽しそうだから、回転行列とか勉強しながらやってみ?
問題は表示とかキー入力をどうするかだと思うなぁ。
普通はpygameになっちゃうんだろうけど、tkinterとかPyQtやWx使うとたいへんですかね?
せっかくインタプリタ言語な
739:んだからtubeの「小一時間で作ってみた」シリーズみたいに テキストベースで気楽に作れるライブラリあると良いのにね。
740:デフォルトの名無しさん
19/12/16 08:57:09.75 Ugry/p2L.net
>>699
いまお使いの仮想環境名は把握してますか
conda list -n 仮想環境名 で
その環境を指定して、インストール済み一覧が表示されるから
それで分かるんじゃないでしょうか?
741:デフォルトの名無しさん
19/12/16 12:37:42.94 0jmxiGrg.net
>>701
curses
ncurses
pdcurses
742:デフォルトの名無しさん
19/12/16 21:11:21.65 yUF0sPmO.net
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)
仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。
恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。
改めてアドバイスありがとうございました(^^)
743:デフォルトの名無しさん
19/12/16 21:11:27.79 yUF0sPmO.net
>>702
レスありがとうございます!
仮想環境名を確認したところ 恐らくbaseで、モジュール一覧を確認するとpyperはインストールされてますよとの表示がありました。
(pyperがpyperclipを指すのかも不明の状態です。。。w)
仕組みがよくわかっていないため、とりあえずググって出てくるトラブルシュートを全て試そうと、
アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
再びpip install pyperclip を試すと、完了しているはずがなぜかインストール開始に。。。
その後、jupyter でimport pyperclip 試すもやはりエラー
PC再起動後、jupyter 上でpip install が実行できるとの情報を得、pyperclipをインストール試みると、すでに完了してますよとのメッセージ
その後jupyter上で import pyperclipがエラーを吐き出さないこと確認しました。
恐らく
>アナコンダナビゲーターのopenterminal でconda install jupyter を実行した後、
>再びpip install pyperclip を試すと、完了しているはずが、なぜかインストール開始に。。。
この辺がキモだったんだと思いますが、よくわかってませんw
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。
改めてアドバイスありがとうございました(^^)
744:デフォルトの名無しさん
19/12/16 21:30:31.84 ZGRHc5ZN.net
yokokara
745:デフォルトの名無しさん
19/12/16 23:12:57.95 levX/ad3.net
yokokara連呼厨子ね
746:デフォルトの名無しさん
19/12/17 05:54:50 eGUcswGM.net
conda, pip とか、異なるパッケージマネージャー(PM) を同時に使えるのかな?
それらは、同じデータベース(DB)に、各パッケージの依存関係を記録しているのか?
例えば、node.js をインストールしておいてから、
yarn を、npm を使わずに、
OS に直接または、OSに入れている、Homebrew, Chocolatey などのPMを使って、インストールすることはある
大きな括りでは、異なるPMを使うことはあるけど、
各モジュールのような小さいライブラリを、異なるPMで管理する事は、あるのかな?
片方のPMの依存関係DBが更新されても、もう一方のDBが更新されるのか?
yarnのように、処理が異なるだけで、npmと同じ依存関係DBを使っているのなら、
npm/yarnは、同一のDBを参照するけど
これと同じで、pip/condaは、同一のDBを参照しているのか?
747:デフォルトの名無しさん
19/12/17 08:18:13.44 dA33S95E.net
pythonでWindowsGUIアプリの自動化をやらせたいいんだけど。
(例えば、了解ボタンクリックとかメニューの選択等)
大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
動かなくなるときの考慮てどうするんですか。
748:デフォルトの名無しさん
19/12/17 09:45:31.97 QqOdTjZG.net
>>709
>大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
PyAutoGUIでなくて申し訳ないが
私はそういう事で困る事の少ないAutoITXを使っている
座標系のマウスクリックだけじゃなくて、
アプリやウィンドウ、ダイアログの名前を判断して、指定したダイアログにある「了解」というボタンを押す
なんて命令が使えるから
749:デフォルトの名無しさん
19/12/17 09:54:50.75 OaYPHXYM.net
知恵袋でテトリスの回転のコードをも
750:らったのですが、 https://ideone.com/2j9PhQ このコードの内包表記の部分がよく分かりません(tmpのとこです) この部分をもう少し一般的な書き方はできないでしょうか?
751:デフォルトの名無しさん
19/12/17 10:18:22.18 QqOdTjZG.net
質問です。python2.7.1 windowsです
リストを作りました
list = [“left” , 1 , 2, 3, “num_a1”]
要素は5個です
関数を作りまして、引数を5個にしました
関数にリストを読み込ませたら、無事に動きました
次に要素を15個に増やして
関数に、先頭から5個ずつ読み込ませて
3回、関数に仕事をさせたいと思います
リストは二次元配列にしようと思います
ばくぜんと、forを使うのだろうということは分かるのですが
ググっても類似のソースを見つけられず、悩んでます
気軽に「こんな手法があるよ」程度で、レスをつけてもらえればありがたいです
752:デフォルトの名無しさん
19/12/17 10:21:32.79 qeIaMe/y.net
自身の脳みそを一般的な水準にまで引き上げた方が早い
753:デフォルトの名無しさん
19/12/17 10:23:25.96 4rBcrl8A.net
AutoITは遅くてやめてpyautoguiはインポートするだけでDPIのスケーリング変わっちゃうから
Win32guiとctypesで全部書いて行った
754:デフォルトの名無しさん
19/12/17 10:27:52.81 GwugB5zt.net
>>711
お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
プログラミング向いてないからやめとけ。
755:デフォルトの名無しさん
19/12/17 10:29:46.26 qeIaMe/y.net
teratailの虐殺君じゃね?
756:デフォルトの名無しさん
19/12/17 10:47:25.74 sELGcuhs.net
大層な名前の割にしょぼそう
757:デフォルトの名無しさん
19/12/17 11:06:24.34 OaYPHXYM.net
>>715
わからないから質問して何が悪いのだろうか
758:デフォルトの名無しさん
19/12/17 11:32:25.65 GwugB5zt.net
>>718
ばかなの?
> お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
> プログラミング向いてないからやめとけ。
ただ向いてないだけ。
759:デフォルトの名無しさん
19/12/17 11:43:42.66 6LhBKKEf.net
>>718
質問すること自体は悪くはないが、自分の現在のレベルを自覚して目標を定めた方がいいぞ。
まずはテトリスは遠い未来の話にして、入門書を一から頑張れ。
連立方程式が分かりませんというから解説したら、九々ができないレベルでした、って状態だから、まずは九々を身に付けよう。
今理解できないレベルの問題を相手を変えて、説明の方法を変えてもらっても、理解できないことに変わりはない。相手に手間をかけさせるだけだし、君自身も前進せずに同じところをグルグルしてるだけだろう。
760:デフォルトの名無しさん
19/12/17 12:13:38.61 rApV4krM.net
>>708
両方使ってるけど問題無い
先に conda の方使って conda に無ければ pip 使ってる
761:デフォルトの名無しさん
19/12/17 14:04:39.73 Ef4LKPDY.net
>>712
チュートリアルを一通りやってから出直そうか
チュートリアルで理解できないところがあったらそれを質問したらいい
URLリンク(docs.python.org)
今の段階でググって類似のソースを見つけようとするのは無駄どころか害でしかないよ
762:デフォルトの名無しさん
19/12/17 14:11:37.23 rApV4krM.net
>>712
URLリンク(codepad.org)
763:デフォルトの名無しさん
19/12/17 14:14:27.53 q5RkcH8n.net
visualstudioでc#使ってるときのように、インテリセンスが働いて、なおかつスペースとかを教典通りに調整してくれるテキストエディタありませんか?
764:デフォルトの名無しさん
19/12/17 14:16:09.48 q5RkcH8n.net
vs→vcに乗り換えてインテリセンスが働くようになったのは良かったんですが、スペース入れるbekiどうかで悩んだり、そこに脳のメモリ取られるのがうっとうしい。。。
765:デフォルトの名無しさん
19/12/17 14:18:53.50 Ef4LKPDY.net
>>711
block = [ [11,12,13,14],
[15,
766:16,17,18], [19,20,21,22], [23,24,25,26] ] def rot(): ____tmp = [[x for x in y] for y in block] # listのlistを一時用に作る これはおちょくられてるのかもな 不必要なコードだけどリスト内包表記はPythonの基本なので理解する努力をしよう
767:デフォルトの名無しさん
19/12/17 14:29:57.73 QqOdTjZG.net
>>722
ありがとうございます
単にコピペで貼り合わせて動くものを作るにとどまらず
なぜ動くのかを理解しながら、参考資料にあたりたいと思います
>>723
ありがとうございます
実は調べてるうちに、chunkなる単語を知りまして
やりたかったことは、これだったんだと思ったと同時に
活路が開けたといいますか、学習が進みました
ヒントのソースありがとうございました
768:デフォルトの名無しさん
19/12/17 20:48:36.49 eGUcswGM.net
テトリスなんて、10年以上やってる香具師でも、簡単に作れない
Java 土方で有名なベテラン、T Umezawa の動画を見てみ。
こんな、神レベルの達人でも、タイルが壁にめり込んだりして、簡単には作れない!
落ち物パズルゲームのプログラミング解説 1/2
URLリンク(www.youtube.com)
素人が作るのは、10年以上早いw
作ったと言ってる香具師は、作っていない。
コピペしただけw
769:デフォルトの名無しさん
19/12/17 20:52:54.24 CYemexLv.net
お前の頭が悪いだけ
770:デフォルトの名無しさん
19/12/17 23:11:25.06 8Os966QG.net
みんながんば!
771:デフォルトの名無しさん
19/12/18 00:22:03.39 Z6EQDlLl.net
Java土方で設計力もテスト設計力もないから書けないだけじゃないの
小学生の頃BASICのテトリスのコードの量見て難しいと思った記憶があるけど、今ならどんな言語でも書ける自信があるぞ
今のPCパワーで高速化とか考えなくていいなら愚直に書くだけだろう
772:デフォルトの名無しさん
19/12/18 01:38:39 N9ghlCsW.net
ブロック?じゃなく行列をなんで回転させようとするんだろう?
全く理解できない感覚なんだけど
773:デフォルトの名無しさん
19/12/18 05:13:33 YyMc+ouu.net
a = ['01','03','05']
b = ['02','04','06']
ていう配列があって、それをforで回すんだけど。
for x,y in zip(a,b):
print(x,":",y)
1個飛ばしでstepさせることでてきますか?
マトモな言語ならfor i=0 to a.length step 1とかできるのに。
774:デフォルトの名無しさん
19/12/18 07:14:26.22 Qufxt8uf.net
>>733
自分の無知により自分の思うようにいかないからといって、マトモでないという思考はやめた方がいいぞ
775:デフォルトの名無しさん
19/12/18 08:09:09.35 ZgzG2chb.net
今時lengthだってw
原始人かよ
776:デフォルトの名無しさん
19/12/18 08:16:02.71 4Fp+UrW3.net
for x,y in list(zip(a,b))[0::2]:
print(x,":",y)
777:デフォルトの名無しさん
19/12/18 08:37:40.12 4Fp+UrW3.net
for i=0 to a.length step 1
をPyで使うなら、
for i in range(0, len(a), 2):
print(a[i],":",b[i])
な気がするが。
で、>>733はなんでzipを使うんだろ
778:デフォルトの名無しさん
19/12/18 09:26:00.82 NtHwU1Mj.net
for left in zip(*pos[::-1]:
とかで使ってるけどzip何なのか調べてないしちゃんと動いてるからいいや
779:728
19/12/18 11:59:08.76 j3J
780:URanB.net
781:デフォルトの名無しさん
19/12/18 12:02:31.23 RQBBPl9v.net
造りたい言い始めてから何日かかってんだ
書き込む暇あったらさっさと造れ
一日もあったら出来るだろ
782:デフォルトの名無しさん
19/12/18 12:03:17.83 NtHwU1Mj.net
回転いらない1x1ブロックのテトリスつくったら?
783:デフォルトの名無しさん
19/12/18 12:08:51.54 vQ0YSRP4.net
>>741
あーこれいいね。絶対に伝わらない良アドバイスw
784:デフォルトの名無しさん
19/12/18 12:11:56.37 CFyyhfVu.net
面倒くせーから早く自殺しろ
785:デフォルトの名無しさん
19/12/18 13:39:56.45 N9ghlCsW.net
>>733
無理して使いにくい言語を使わなくても
マトモだと思う言語を使ったほうがいいと思うよ
皮肉じゃなく割とマジで
pythonでstep指定する時はslice/isliceを使う
は? slice? ってなっても我慢すること
pythonはそういう言語だから
for x, y in islice(zip(a, b), 0, None, 2):
____print(x, y)
786:デフォルトの名無しさん
19/12/18 14:00:04.04 N9ghlCsW.net
>>739
>テトリスのすべてのブロックは、4×4 マスに納まる
4x4マスに収まるからといってブロックを4x4の行列で管理するメリットって何かあるの?
viewとmodelの分離ができてないとしても
ブロックを行列で表現してそれを直接回転させようという発想になる理由に興味ある
787:デフォルトの名無しさん
19/12/18 14:05:40.87 j0+9FDxC.net
ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ?
788:デフォルトの名無しさん
19/12/18 14:08:54.50 gHFmoE9o.net
一個飛ばしってただ単にこういうことじゃなくて?
>>> for n, m in zip(a[::2], b[::2]):
print(n, ':', m)
01 : 02
05 : 06
何をもめてるのかわからん
789:デフォルトの名無しさん
19/12/18 17:05:42.74 ZgzG2chb.net
>>746
10年前もテトリスの話をしてただろう
790:デフォルトの名無しさん
19/12/18 18:54:15.48 rPZysOi9.net
global宣言って何となく行儀が良くないような気がするのですが、上級者の方でも結構使いますか?
791:デフォルトの名無しさん
19/12/18 19:04:37.86 YQOjezK4.net
グローバル変数自体はPythonなら普通に使うけど、global宣言はほとんど使わない
しょっちゅう細かい粒度でグローバル変数を更新するようなことをするとスパゲッティ化しやすい
792:デフォルトの名無しさん
19/12/18 20:16:50.10 Kq662flJ.net
nonlocalならまあ、というかよく使う
globalはつかったことがない
793:728
19/12/18 23:13:47.41 j3JURanB.net
>>745
各ブロックの回転パターンは、4つあるから、
ブロックを行列で表現して、それを直接回転させれば、1つで済む
行列の回転なら、動きがおかしくても、回転計算の部分だけを直せばよいけど、
4つのパターンを作っていると、それらのパターンを直接直さないといけないから、大変
794:デフォルトの名無しさん
19/12/19 00:00:42.47 snKgfw1x.net
>>752
回転軸とか壁や設置済みブロックで回転が制限されるケースを考えると
単純な行列回転じゃ無理だし1つの処理でも済むこともないよ
そもそも4x4の行列だとI型のブロック回転させるだけで上下に動いちゃうよ
普通にブロックの型、基準となる座標、向きをモデルとして管理して
描画ロジックとは分けたほうがいい
795:デフォルトの名無しさん
19/12/19 01:26:15 qED21Kil.net
俺もテトリス作ろうしたことあったけど思ったよりややこしくて放置してるわ…
796:デフォルトの名無しさん
19/12/19 08:02:37.49 0eo+DnKB.net
専門学校のコンピュータ・アニメ・ゲーム科卒から数年経ってプログラマーを目指したくなった者なんですがやっぱり未経験者は四年制大学の新卒しか採用されませんか?
やりたい事はAIのプログラミングです
言語はPythonを覚え中です
797:デフォルトの名無しさん
19/12/19 08:11:07.93 EV4M7jYb.net
単純に需要による
アンドロイドプログラミングとかなら今は需要の割にクッソ人が少ないから
kotlin使えたら未経験だろうが就職できる可能性は比較的高い
一方pythonのほうはこれからどうなるかは分からないが
日本では現状深層学習用などの学問用言語で 実務に使っているところはあまりない
ということはつまりpythonでAIやっていくには大学で専攻したような専門知識を持った人たちに
対抗しなくちゃいけないわけで ちと難しいんじゃないか?
798:デフォルトの名無しさん
19/12/19 08:17:46.98 0eo+DnKB.net
>>756
わかりました
Kotlinにします
799:デフォルトの名無しさん
19/12/19 08:21:14.74 0eo+DnKB.net
早速ポチってきました!
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 &Kotlin1.3で学ぶはじめてのスマホアプリ作成
800:デフォルトの名無しさん
19/12/19 09:36:46.63 Ez8BH22g.net
辞書で特定の単語を含むキーをワイルドカードで検索し
ヒットしたキーに対応している値を抽出したいのですが
辞書に正規表現検索を行うのはできないのでしょうか
プリミティブでは難しいでしょうか
801:デフォルトの名無しさん
19/12/19 10:09:48.45 xAWELgvD.net
はい
802:デフォルトの名無しさん
19/12/19 10:49:12.14 Crw8oya5.net
容易い
803:デフォルトの名無しさん
19/12/19 12:27:41.62 dMnFAlGo.net
Ruby では、正規表現のunion で「または」の正規表現を作ることができる。
その辞書の値を、gsub に渡すことで置換できる
hash = { 'ab' => 'あ', 'xy' => 'ん' }
p re = Regexp.union( hash.keys ) #=> /ab|xy/
p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx
804:デフォルトの名無しさん
19/12/19 13:18:16.88 9Fgp9NK8.net
内包表記を使えば一瞬で解決する
805:デフォルトの名無しさん
19/12/19 14:15:27.95 +cpLTGtZ.net
>>755
君がやるべきことは高校を卒業することだ
806:デフォルトの名無しさん
19/12/19 14:51:01.29 snKgfw1x.net
>>759
filter()かリスト内包表記
頻出パターン
foo = {"aaa.py": 1, "bbb.py": 2, "ccc.csv": 3, "ddd.txt": 4}
[value for key, value in foo.items() if ".py" in key]
Out: [1, 2]
条件が複雑ならifのところで正規表現や関数使ってもいい
807:デフォルトの名無しさん
19/12/19 15:36:09.20 Ez8BH22g.net
ありがとうございます。参考になります
808:デフォルトの名無しさん
19/12/19 18:28:38.99 V/5EkM6t.net
機械学習する時、anacondaでpipを使っています
何故、condaを使わないのでしょうか?
809:デフォルトの名無しさん
19/12/19 18:37:09.73 V/5EkM6t.net
× 機械学習する時、anacondaでpipを使っています
〇 機械学習する時、色々なサイトを見てみると大抵、anacondaでpipを使っています
810:デフォルトの名無しさん
19/12/19 19:19:08.89 PZllcG7i.net
そのサイトの記事を書いた人もまたどこかからコピペしてるからだよ
Anacondaがないと何もできないレベルの人が自分で一時情報源に当たって問題解決なんてできるわけないだろ?
そうやって元を辿っていくと、Anacondaを必要としないレベルの人に行き着く
811:デフォルトの名無しさん
19/12/19 19:30:49.49 V/5EkM6t.net
>>769
へぇー、結構適当な理由なんですねw
thank you
812:デフォルトの名無しさん
19/12/19 20:35:05.08 Zd
813:WBIW9y.net
814:デフォルトの名無しさん
19/12/19 20:52:51.96 igx1CkSL.net
プロパティの勉強中
class Goods:
def __init__(self, name, price):
self.__data = {"name":name, "price":price}
def get_name(self):
return self.__data["name"]
def ste_name(self, value):
self.__data["name"] = value
def get_price(self):
price = self.__data["price"]
price__str = f"{price:,}円"
return price_str
name = property(get_name, ste_name)
price = property(get_price)
from goods_property import Goods
food = Goods("pizza",200)
print(food.name) #1
food.name = "humberger"
print(food.name) #2
food.price = 100
print(food.price)
815:デフォルトの名無しさん
19/12/19 20:54:02.72 igx1CkSL.net
#1で
Exception has occurred: AttributeError
'Goods' object has no attribute 'name'
ってなるのではなんで???
#2はOKなのに、initでデータ入ってないってこと?
816:デフォルトの名無しさん
19/12/19 21:28:47.05 xPsWnlhM.net
>>773
実行していないが
>food.price = 100
ではエラーになると思うが、nameのgetter、setterではエラーにならないんじゃないか
あと、setをsteにするってなんかの教えによるのか
817:デフォルトの名無しさん
19/12/19 21:32:21.97 Crw8oya5.net
>>772
URLリンク(ideone.com)
に貼ってきて
818:デフォルトの名無しさん
19/12/19 21:44:29.89 igx1CkSL.net
>>775
URLリンク(ideone.com)
これでOkでしょうか?
819:デフォルトの名無しさん
19/12/19 21:45:21.51 igx1CkSL.net
>>774
すいませんsteは自分で吹きました。。。
820:デフォルトの名無しさん
19/12/19 21:50:51.31 snKgfw1x.net
>>773
#2の直前の
foo.name = “humberger”
でfooにnameっていう変数を新しく追加してそれに”humberger”を代入してるから#2はエラーにならない
__init__で
self.name = name
self.price = price
ってやってればfooにはnameが#1の段階で存在するから#1もエラーにならない
821:デフォルトの名無しさん
19/12/19 22:17:22.66 Crw8oya5.net
>>776
File "prog.py", line 13
price__str = f"{price:,}円"
^
SyntaxError: invalid syntax
>Exception has occurred: AttributeError
>'Goods' object has no attribute 'name'
再現できるコード貼ってくほしい
822:デフォルトの名無しさん
19/12/19 22:19:55.36 Crw8oya5.net
URLリンク(ideone.com)
823:デフォルトの名無しさん
19/12/19 22:24:13.55 snKgfw1x.net
>>778
すまん、↓これ見落としてたわ
name = property(get_name, ste_name)
price = property(get_price)
824:デフォルトの名無しさん
19/12/19 22:33:20.61 snKgfw1x.net
インデントがあってればエラーにはならないね
825:デフォルトの名無しさん
19/12/19 22:43:58.50 igx1CkSL.net
>>778
本当だ・・・。
というか教科書の教材を打ち込んでただけなのですが、教科書自体間違ってるのか・・・。
1時間悩んだのが何だったのか・・・。
ありがとうございます。すっきりしました。
826:デフォルトの名無しさん
19/12/19 22:47:34.16 igx1CkSL.net
>>782
あれ・・・。
name = property(get_name, ste_name)
price = property(get_price)
のインデントってdef ~と同じところではダメなのでしょうか?
827:デフォルトの名無しさん
19/12/19 22:49:21.05 igx1CkSL.net
よくわからなくなってきた。
properyは初期化には関わらないからinitで代入する
self.name = name
self.price = price
が必要って理解でいいのでしょうか?
828:デフォルトの名無しさん
19/12/19 23:05:38.53 GR6pg+Yh.net
socket通信で送った文字列を、Pythonで受け取ってexecするプログラムを作りたいのですが
空いているポートにセキュリティ上の問題が発生してしまいます
セキュリティ問題を回避する方法ってないですか?
829:デフォルトの名無しさん
19/12/19 23:24:54.23 68JQcBLU.net
>>771
個人的にだけど…
globalは宣言もしないし値を使うだけってのもまずやらない
nonlocalは宣言するからには更新するし使うだけってのもバンバンやる
nonlocal宣言するのはGUI部分のみだけど
変数使うだけの方は100行の関数を10行単位の細切れにして引数は渡さないとかそんな感じ
830:デフォルトの名無しさん
19/12/19 23:49:48.18 4y7SvWFf.net
すいません質問なんですが
配列の中のものを交互に2つの処理をするにはどうしたらいいのでしょうか?
a=[0,1,2,3,4]という配列があるとして
0と2と4には5をかけて
1と3には2をたすとかどうしたら良いのでしょうか?
831:デフォルトの名無しさん
19/12/19 23:51:10.25 snKgfw1x.net
>>783
>>778に書いたことは一旦忘れてくれ
property()で設定してるのを見落としてたから
インデントが間違ってるってのは
get_name()や name = property(…)が
みんなdef __init__の中に定義されてるところ
832:デフォルトの名無しさん
19/12/20 00:11:32.82 N19Ct9QI.net
>>788
これでできます
a=[0,1,2,3,4]
for i,number in enumerate(a):#enumrateでaの要素をnumberに入れる、要素番号をiに入れる
if number % 2 == 0:#numberを2で割った余りが0だった場合
a[i]= a[i] * 5
else:
a[i]= a[i] + 2
print(a)
833:デフォルトの名無しさん
19/12/20 00:26:29.96 aoxL/sZJ.net
>>780
それを修正したが、AttributeError なんででるかわからんな
URLリンク(ideone.com)
834:デフォルトの名無しさん
19/12/20 00:33:50.20 mwn52mbA.net
>>790
ありがとうございます
a[0::2]とか使うとforが二個できてカッコ悪いなあと悩んでました
助かります!、
835:デフォルトの名無しさん
19/12/20 00:56:22.82 LtdBIlOX.net
>>790
>if number % 2 == 0:
交互に処理したいなら if i % 2 == 0: じゃないかな
836:デフォルトの名無しさん
19/12/20 09:41:12.09 N19Ct9QI.net
>>793
たしかに
見落としてた
837:デフォルトの名無しさん
19/12/20 12:09:16.88 c7XoinxY.net
>>764
もうPythonはあきらめました
838:デフォルトの名無しさん
19/12/20 13:05:32.03 qS4WQ1Uv.net
python2.7
windowsのアプリケーションからクリップボード経由で手にいれた文字列
“内閣総理大臣賞受賞”
を変数mymarkに入れておいて
u’総理’ in mymark
と演算子inで調べると、総理は存在するはずなのにFalseを返されます
右も左もソースに自分で打ち込んだ場合は正常なので
win経由のものはどこかでエンコードがおかしくなってるのではないかと思います
以下は調べてみました
type #右も左も<type ‘unicode’>
len(mymark) #9
内閣総理大臣賞受賞、で9文字ですね
len (u’総理’) #6
・これがどうして6になるのかよく分からない
839:デフォルトの名無しさん
19/12/20 13:20:02.56 L1XL0AeX.net
len(u'総理')の長さが6になるのは
多分python2では文字の長さを「文字列全体の容量 / 1文字の容量」で計算してるから
日本語などのマルチバイト文字だと実際の文字列の長さより長くなるんだろうなってことは分かる
(python3では普通に文字列の長さが表示された)
内閣総理大臣賞だけ9文字という正確な値になってるのはよくわからない
自分の調べたpython2環境ではlen("内閣総理大臣賞")で27になっていたが
840:デフォルトの名無しさん
19/12/20 13:26:15.19 qS4WQ1Uv.net
>>797
そうなんですか
じゃあ数があわないから、ここに問題が!と思いましたが
そうではないかも知れないのですね
841:デフォルトの名無しさん
19/12/20 13:28:24.35 A+TGdcd9.net
Ruby なら、powershell, clip コマンドを使って、
Windows のクリップボード処理もできる
Windows(CP932でin) → Ruby内部(utf8 で処理する) → Windows(CP932でout)
# frozen_string_literal: true
# クリップボード内の複数行文字列の、各
842:行の先頭・末尾から、 # 連続する空白類を除去して、クリップボードに入れる str = `powershell Get-Clipboard` str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換 ary = str.each_line.map( &:strip ) # 連続する空白類を除去する IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す clip.print( ary.join "\n" ) end
843:デフォルトの名無しさん
19/12/20 13:31:51 lig6lPK8.net
mymark = '内閣総理大臣賞受賞'
だと、18文字
mymark = u'内閣総理大臣賞受賞'
mymark = '内閣総理大臣賞受賞'.decode('cp932')
だと、9文字
最初のmymarkをユニコード文字列にデコードしておけばエラーは出ないね。
2.xのお作法、なんかいろいろ忘れてしまってる。
print()で怒られてしまったw
844:デフォルトの名無しさん
19/12/20 13:42:46 lig6lPK8.net
あと、
len(u'総理')
はちゃんと2になるよ。
python 2.7.17 @Windows10
845:デフォルトの名無しさん
19/12/20 15:26:09.89 qS4WQ1Uv.net
ありがとうございます
プログラムにして動かしてるもの(だが動かない)
があるのですが
右側、mymark に .decode(utf-8)を付けると
UnicodeEncodeError: ‘ascii’が出て
右側、mymarkには何もつけずに
左側(u’総理’)にするとエラーは出ないけれど、in演算子が動かない
試しに左側の総理から、uを取ってしまうと
こんどはUnicodeDecodeError:’ascii’が出るんですね
かなり悩ましいです
別のマシンにpython3環境を構築して、そっちに移植してどうなるか試してみます
846:デフォルトの名無しさん
19/12/20 16:48:06.47 VlcbOuJw.net
馬鹿には無理
847:デフォルトの名無しさん
19/12/20 17:40:34.24 lig6lPK8.net
>>802
decode() の中のコードページはクォートで囲わないとだめだよ
848:デフォルトの名無しさん
19/12/20 18:07:44.29 LtdBIlOX.net
>>796
>右も左も
右とか左の意味がわからない
「A in B」のAを左、Bを右と呼んでる?
849:デフォルトの名無しさん
19/12/20 21:06:36.63 ITSL0wmI.net
全角文字列に対してIF処理を入れたいのですが、何で判別すれば良いですか?
検索対象の文字コードはutf8で、
漢字、ひらがな、カタカナ、全角英数を含む可変長の文字列が対象です。
850:デフォルトの名無しさん
19/12/20 21:41:38.87 LtdBIlOX.net
if "バカ" in "バカボン":
___print(True)
True
851:デフォルトの名無しさん
19/12/20 23:48:14.57 c7XoinxY.net
Pythonは才能が必要
852:デフォルトの名無しさん
19/12/21 00:02:01.64 k+w4ikT0.net
>>808
別スレでpythonやめてkotlinやるって言ってた人か?きっとすぐに同じことを言い出すぞ。
入門レベルで必要なのは才能なんかじゃなく、ごく普通レベルの根気と理解力だけだぞ。才能がどうこう言うような段階まで到達してもいないだろう。
853:デフォルトの名無しさん
19/12/21 00:11:47.62 LfWR8zZ0.net
プログラミングってそんな大層なことなのか…?
854:デフォルトの名無しさん
19/12/21 00:25:48.14 RZ7OoAF7.net
>>809
他の言語はともかくPythonは持って生まれた才能が無い人には無理だろ
10年かかってもできないはず
人生を棒に振るぐらいなら簡単な言語を一生懸命やったほうがお得
855:デフォルトの名無しさん
19/12/21 00:27:14.39 kL8tLCEf.net
Pythonは人を選ぶからなぁ
IQは最低でも120ぐらいはないと難しいかと
856:デフォルトの名無しさん
19/12/21 00:28:58.20 QVJGN34P.net
>>810
ダニング=クルーガー効果だなw
857:デフォルトの名無しさん
19/12/21 00:36:18.17 GTCnNgdl.net
Python習得は大学の受験勉強より時間がかかるのは確か
858:デフォルトの名無しさん
19/12/21 00:38:37.92 kL8tLCEf.net
まぁ、数学(とくに関数�
859:ニ微分積分)を完全にマスターして更にそれらを応用させる能力が必要だからな まず凡人には努力だけでは習得不可能な言語
860:デフォルトの名無しさん
19/12/21 00:39:35.09 LfWR8zZ0.net
関数を完全にマスターってなに?笑
こわい
861:デフォルトの名無しさん
19/12/21 00:40:21.73 sX1zkF8/.net
これを小学校のカリキュラムに入れようってんだからなwww
まさに落ちこぼれ量産機www
本当は他のプログラミングができそうな子供達まで絶望させる
862:デフォルトの名無しさん
19/12/21 00:41:11.60 kL8tLCEf.net
>>816
AIの開発に必須
863:デフォルトの名無しさん
19/12/21 00:42:17.07 AjLe2FOg.net
プログラミングを知らない初心者に勧めてはいけない超難解言語
864:デフォルトの名無しさん
19/12/21 00:43:21.62 kL8tLCEf.net
まぁ、すすめるすすめないは自由だがすすめられたほうは挫折するだろうな
865:デフォルトの名無しさん
19/12/21 00:46:24.32 qQwAhvsi.net
ふつうプログラミングを覚えるということはルールを覚えるという事なんだがPythonは...
(^_^;)
866:デフォルトの名無しさん
19/12/21 00:48:48 k+w4ikT0.net
>>815
数学は単にpythonを使う応用分野の一つというだけで、言語としてのpythonの習得とは独立した話だろw
日本語を習得するというときに、数学や物理の論文を読み書きする能力まで求める奴はいないだろう。
867:デフォルトの名無しさん
19/12/21 00:50:58 QVJGN34P.net
ダニング=クルーガー直後の「完全にマスター」だぞ。釣りに決まってんだろw
868:デフォルトの名無しさん
19/12/21 00:51:51 kL8tLCEf.net
>>822
仕事で使えなきゃ意味ないだろ
869:デフォルトの名無しさん
19/12/21 00:57:35 4SIKQrOR.net
Pythonは9割が脱落する言語と言われてるのもうなずける
もし仮に本人には才能があってもPythonをおぼえようとした時に最初に出会う教材や人によって終わってしまうことも多いと思う
俺はPythonとかプログラミングと全く関係ない数学の応用の本を一緒に読んでた
でも結局脱落した
870:デフォルトの名無しさん
19/12/21 01:02:39 k+w4ikT0.net
初めから言語の習得の話をしていて別に仕事で使う話はしていないぞ。
仕事で使うにしたって、pythonは汎用的なプログラミング言語であって別に用途が人工知能に限定されるわけでなく、ちょっとした統計処理や自動化程度であっても役割として十分だろう。
871:デフォルトの名無しさん
19/12/21 01:08:50 kL8tLCEf.net
初心者の方にはJavaScriptがおすすめ
872:デフォルトの名無しさん
19/12/21 02:39:08 0LiXcgPL.net
二ヵ月前に初めてプログラミングの勉強始めて
友人に勧められたからPythonから触ってTwitter API使ったwin用guiアプリ作ったけど
AIとか作るんじゃないならかなり楽やと思うけどなぁ
転職して今週から働きだしてJava触ってるけど
個人的にはJavaのが難しいと思うわ(主にオブジェクト指向とかが)
まあ、両方楽しいし作ったアプリはオブジェクト指向使わずに書いたからコード自体は今見ると可読性悪いのがよく分かったw
873:デフォルトの名無しさん
19/12/21 07:22:16.03 V5r7QLnH.net
自分が落ちこぼれと認めるより、言語が悪いことにしたいよな
私を嫌う連中は私が嫌いなのではなく私の属性が嫌いなの!って騒いでるTwitterのメスガイジと似てるわ
874:デフォルトの名無しさん
19/12/21 08:03:18 /C2Zxfa9.net
>>825
pythonに限らずC言語の昔から同じようなことが言われていた
875:デフォルトの名無しさん
19/12/21 09:24:29.16 Bl5cSZK5.net
C言語はポインタが鬼門。まずポインタという名称が良くなかった。アドレス変数という名称のほうがしっくりくる。
876:デフォルトの名無しさん
19/12/21 09:43:01 2jb+e7Ut.net
アドレスと混同されないようにあえて別の名前を使ったんだろ。
877:デフォルトの名無しさん
19/12/21 09:44:35.47 LfWR8zZ0.net
アドレスじゃん
878:デフォルトの名無しさん
19/12/21 10:20:00.37 AgLsTGZF.net
Pythonは俺も挫折した
無理
879:デフォルトの名無しさん
19/12/21 15:20:00.57 /C2Zxfa9.net
pythonもidによって謎の数字が出てくる
アレ何なの
おみくじ?
880:デフォルトの名無しさん
19/12/21 15:29:03.30 3CC1js1d.net
7が並んだら奇跡かおきるってよ
881:デフォルトの名無しさん
19/12/21 17:24:57.69 /91O1xjY.net
VSCODE使ってみて初めてVisual Studioのありがたさがわかった。
882:デフォルトの名無しさん
19/12/21 17:26:16.34 /91O1xjY.net
;をうつとちゃんとした記法に成型してくれるって楽だわ。
C#での話だけど。
誰かVSCODEでも同じ機能をつけてくれないものか・・・。
883:デフォルトの名無しさん
19/12/21 17:50:40.98 5ArYAWFR.net
>>838
作るんだよ。お前が。拡張機能を。
あくしろや俺も使ってやるんだからよ。
884:デフォルトの名無しさん
19/12/21 18:09:44.05 XVfPANjg.net
>>808
rubyならキチガイでもできるよ!
885:デフォルトの名無しさん
19/12/21 18:23:47.67 /91O1xjY.net
>>839
ああ、そういうことか!
無理です・・・。orz
886:デフォルトの名無しさん
19/12/22 05:03:39 CyWocscD.net
>>840
Rubyか...
887:デフォルトの名無しさん
19/12/22 17:18:31.92 Ens8Pa2w.net
心理系の研究で2Dカードゲームのようなアプリを作ろうとしています。
当初Unityでやるつもりだったんだけど、機械学習の勉強のためPython学んだら、
Pygameでやるのもありかと思い始めた。
トランプのような2DカードゲームつくるならPythonとUnityどちらがおすすめですか?
888:デフォルトの名無しさん
19/12/22 17:36:04.52 buP4BnNs.net
>>843
JavaScript
889:デフォルトの名無しさん
19/12/22 17:37:49.15 NMRyBzep.net
真理やめろ
890:デフォルトの名無しさん
19/12/22 17:41:49.90 Ens8Pa2w.net
>>844
短期間でC#、Unity、R、Pythonと詰め込んで混乱している。
これ以上言語増やしたくない。
891:デフォルトの名無しさん
19/12/22 17:43:27.57 c4dmvFhs.net
どっちでもいっしょだから自分が得意だと思える方でやればいい。
892:デフォルトの名無しさん
19/12/22 18:04:31.25 Ens8Pa2w.net
>>847
ありがとうございます。
現時点ではUnityのほうが得意なのですが、
アプリからデータ取得して統計処理、機械学習まですることを考えると、
Pythonで統一したほうが後々楽なのかな。。。
893:デフォルトの名無しさん
19/12/22 18:08:30.47 Ens8Pa2w.net
あと、スレタイどおりくだらない質問で申し訳ないのですが、
C#アプリで取得したデータをpythonで統計分析しようとしているのですが、
CSVファイルにデータを保存するとき
100件のデータを全て一つのファイルに保存。
100個のファイルを作製して1件1ファイルに保存。
のどちらがいいのでしょう?
1件のデータには実験環境等ながいDescriptionデータがついてくるので、
1ファイルだとデータの切り出しがめんどくさいかなと思っているのですが。
894:デフォルトの名無しさん
19/12/22 18:16:24.65 buP4BnNs.net
>>846
そのゲームを誰にどうやってやってもらうかとか
結果をどう収集すべきかとか
そういうの考えてる?
895:デフォルトの名無しさん
19/12/22 18:51:55.19 Ens8Pa2w.net
>>850
そのへんは考えてるのですが、質問の仕方が良くなかったですね。
***実験条件データ***
年齢:
性別:
特性A:
特性B:
~
***配列データ***
時間 回数 色 ~
0.11 3 R ~
0.20 1 B ~
みたいなデータが100件ぐらい1ファイルに記述したとして、
をpandasで配列データだけ切り出してくるってかんたんにできるものでしょうか?
896:デフォルトの名無しさん
19/12/22 19:03:33.08 4GpMlcpo.net
>>849
特別な要件がない限り
> 100件のデータを全て一つのファイルに保存。
しかないと思うが
897:デフォルトの名無しさん
19/12/22 19:15:06.28 OE5DN1cz.net
pygameって3?が頓挫して別のに開発リソースまわってるんじゃなかったっけ?
あとcsvはデータ形式によるから具�
898:フ的なカタチがわからないとなんとも…
899:デフォルトの名無しさん
19/12/22 19:59:30.18 u+b66RrE.net
>>851
まず、データだけを抽出する、コンバーターを作る!
そのためには、まず、データだけを抽出しやすいように、
よく考えて作っておかなければならない
JSON とか。
他には、XML, YAML もある
データとデータ以外の切れ目が、分かるようになってれば良いけど
まあ、ファイルを分割している方が簡単で、
後でファイルが増えた時に、融通が利く
900:デフォルトの名無しさん
19/12/22 20:28:35.39 MAO/zmGQ.net
>>848
ゲームはUnity、データ処理はPythonってのがいいよ
どうせゲームの記録は一旦保存して、後で処理するのだから、
ゲームを作るのに得意な言語、データの処理に得意な言語で使い分けたほうが良い。
一つにまとめる必要があるのは、アプリケーションパッケージとして売ったり誰かに納品したりする必要があるときだけだと思う。
901:デフォルトの名無しさん
19/12/22 20:33:44.52 MAO/zmGQ.net
>>849 >>851
見逃したけど、
100条件なら100ファイルの方が取り扱いが簡単だよ。1ファイルにするメリットはないと思う。
1000を超えてくるとOSの方での取り扱いが面倒になってきたりするけど。
1ファイルにする場合、条件データと配列データを切り出すのはPandasでも出来るけど、素のPythonでまず切り分けておいて、
切り出したCSV部分をPandasに渡すのが普通かな。
902:デフォルトの名無しさん
19/12/22 22:03:29.64 Ens8Pa2w.net
>>853
情報ありがとう。
開発終了してるし、後継のライブラリもなんか評判良くないね。
ゲーム部分は素直にUnityで開発します。
903:デフォルトの名無しさん
19/12/22 22:07:05.30 Ens8Pa2w.net
みなさんいろいろありがとうございます。
ファイル分割して、データ統合するコンバータを作るのが良さそうですね。
少し勉強が必要そうだけど、方向が見えてきました。
ありがとう。
904:デフォルトの名無しさん
19/12/22 22:08:24.35 Ens8Pa2w.net
>>855
シンプルにUnityからテキストファイルに書き出して、
パイソンでデータ処理するようにします。
Unityからパイソンのファイルを実行するだけなら、自分でもすぐできそうだし。
905:デフォルトの名無しさん
19/12/23 00:46:17 i+2w2qhs.net
本当にくだらないんだけど、
風俗板とこのスレに常駐すると
パイソンがパイパンに見えてくるな。
906:デフォルトの名無しさん
19/12/23 02:12:53 Z89NhxHR.net
test_str = 'aaaisaisaihuursstestiisaojyewysa'
というような文字列があったときに
文字列の中に'test'が含まれるかどうかの判定ってどうすればよいですか?
先頭でも末尾でも中間でもどこに含まれていても、print('含まれてるよ')と表示したいです。
907:デフォルトの名無しさん
19/12/23 07:39:10.34 i17ydcb/.net
>>861
'test' in test_str
で判定
いっちゃん簡単なやつ
908:デフォルトの名無しさん
19/12/23 08:50:45.33 G1ER7e+F.net
>>861
test_str = 'aaaisaisaihuursstestiisaojyewysa'
if 'test' in test_str :
print('含まれてるよ')
else:
print('無いよ')
909:デフォルトの名無しさん
19/12/23 09:22:23.85 cv9cp49U.net
正規表現
910:デフォルトの名無しさん
19/12/23 15:25:25.14 sEnpgkKc.net
>>835-836
うbyはidが偶数か奇数かでも動作が違う
911:デフォルトの名無しさん
19/12/23 17:05:29.34 Z89NhxHR.net
>>862>>863
ありがとうございます!
912:デフォルトの名無しさん
19/12/23 20:12:29.62 Pi1/7Ubv.net
アップルが従業員に遺伝子検査サービス無料提供。「治療」から「予防」へ
URLリンク(japanese.engadget.com)
913:デフォルトの名無しさん
19/12/23 20:16:11.23 Pi1/7Ubv.net
943
半島人は長い歴史で虐待され続けたため、人間不信に陥っており、
又医学的には拷問を受けたため、遺伝的に脳の前頭葉
914:(脳の30%の部分)が傷ついて萎縮していると判明しています だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です 今後前頭葉を拡張復元していくことがよい結果を生むことになると思います アメリカを中心に、高気圧酸素治療法というのがあります カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です 損傷した脳の復元にかなり効果があることが、わかっていています 284 そこで提案だ 先ほど述べた、Paul Harch 医師達がやっているような、高気圧酸素治療(HBOT)の技術を生かしてみたら、いかがかな つまり、代々前頭葉萎縮で悩んでいる半島人達の脳に、この治療法を応用するのだ 酸素を効率的に沢山供給することで、エデンちゃんの萎縮していた脳がほぼ通常に広がって戻ったのだから、 うまく考えて根よくやれば、半島人達の遺伝的に萎縮した前頭葉をふくらませられるかもしれない そうしたら、彼らに失われていた人間的な感情も、わきやすく、育みやすくなるというものだ 半島人も他の民族と同じように気持ちが安定し、前向きになり、責任を持って自分の国作りをするようになるだろう 他に良い方法があればそれでもよいのだがね、1つの案として提示しておく 全世界の皆さんは、真剣に考えてやってほしい 特に、脳科学の研究者達はね
915:デフォルトの名無しさん
19/12/23 20:16:37.34 Pi1/7Ubv.net
276
その方法というのは、
『高気圧酸素治療(HBOT)』と言う
縦長のカプセルの中に患者が仰向けに寝ていて、カプセル内に高濃度の酸素を沢山満たし、吸い込ませ血管に送り込む
又、その際に高めた気圧で酸素を濃縮して、血管に溶け込みやすくする、という仕組みだ
これにより女児は損傷して萎縮していた脳が、酸素の補給により急激に回復し始め、まもなく感情を表し言葉を発したり、母を認識し以前の記憶がよみがえった
又自分で食べられるようになり、運動能力も徐々につき、驚異的な速さで機能が回復して行ったのだ
五才になった今では、多少歩く時に平衡感覚がまだ足りなくて、左右にぐらつくのを矯正中だが、ほぼ普通に元気に歩き、遊べるようになった
278
私が言いたいのは、これを応用できるのではないかということだ
この女の子、エデン・カールソンちゃんを治療したのは、ルイジアナ州立大学医学部のPaul Harch医師だ
彼は、エデンちゃんに主に高気圧酸素治療を行い、1回45分、週5日、計40回で終了した
治療を始めて10回目で、ほぼ正常に見えるほどになったという
その後も40回(8週間か)まで治療を続け、最終的にMRI検査では、エデンちゃんの萎縮してすき間のあった脳が、ほぼ完全に回復していた
脳の回復が速い幼児だからということも幸いしたが、
最近では急性脳損傷のある成人でも効果があることがわかってきた
成人にHBOTを1回実施しただけでも、脳の組織回復に必要な複数の遺伝子の活性に変化が見られたという
(日本では、病院で脳梗塞の治療等に使われている)
916:デフォルトの名無しさん
19/12/23 20:16:54.72 Pi1/7Ubv.net
280
朝鮮半島民というのは、医学的に研究された結果、
昔から先祖代々貴族等に虐待や拷問を受けてきた�
917:スめに、おびえて脳の前頭葉(脳の30%を占める)に沢山の傷が見られ、そこの部分が萎縮しているそうだ 前頭葉の前半部は、思考、自発性、感情、性格、理性等を司る 前頭葉が損なわれるとどうなるか 例えば、 忘れっぽい 思いつきで動き、不注意 自発性がなく、すぐ人を頼る 大変おしゃべりか、反対に抑うつ的 すぐ怒ったり笑ったり、感情を爆発させる 人を思いやるのが苦手 危険に鈍感になる 規則を守らない 1つのことにこだわり、同時に2つのことができない 過食や浪費 又、もしもその一部である眼窩前頭皮質が損傷すると、 過度に悪態をつく 性欲過多 社会的対話の欠如 共感能力の欠如 アルコール、薬物の摂取過多 等が見られるという どれも困ったことだ 必ず全てが現れるわけではないし、個人差もあるだろうが 943 半島人は長い歴史で虐待され続けたため、人間不信に陥っており、 又医学的には拷問を受けたため、遺伝的に脳の前頭葉(脳の30%の部分)が傷ついて萎縮していると判明しています だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です 今後前頭葉を拡張復元していくことがよい結果を生むことになると思います アメリカを中心に、高気圧酸素治療法というのがあります カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です 損傷した脳の復元にかなり効果があることが、わかっていています
918:デフォルトの名無しさん
19/12/24 11:21:49.38 DWLgg12E.net
pythonにテキストファイルでデータを渡して統計処理しようとして、
初めて整然表現というものを学びました。
919:デフォルトの名無しさん
19/12/24 11:25:36.07 DWLgg12E.net
実験情報
氏名:
性別:
年齢:
実験日時:
実験場所:
実験タイプ:
実験データ
時刻 X Y 色
002 20 14 b
というデータで今まで実験情報と実験データを一つのファイルに記述していたのですが、
SatouTarou20191224DESCR.txt
SatouTarou20191224DATA.csv
と2つのファイルに分けて記述するべきなのでしょうか?
920:デフォルトの名無しさん
19/12/24 11:34:40.49 oSAz7Duc.net
Philip N. Kleinという人の書いたベクトルを表すクラスに、以下の記述があります。
__add__ = add
左辺はインターネットで調べた結果、特殊メソッドであることが分かりました。
右辺の「add」は一体なんなんでしょうか?
そして、特殊メソッドである「__add__」を定義せずに、「__add__ = add」と代入していますが、これは文法的にどういうことなのでしょうか?
921:デフォルトの名無しさん
19/12/24 11:40:09.88 DWLgg12E.net
氏名 性別 年齢 ・・・ 時刻 X Y 色
Sato Tarou 21 002 20 14 B
004 22 10 R
010 1 9 Y
みたいに一つのファイルのほうがいいのかな。
実験条件のデータは項目ひとつに1データでみづらいけど、
これがコンピュータにとって扱いやすい整然データということでしょうか?
922:デフォルトの名無しさん
19/12/24 12:06:36.04 oSAz7Duc.net
>>873
def add(u, v):
class Vec:
__add__ = add
となっています。
これはクラス Vec の外で定義された「add」と同じ関数として「__add__」を定義するという意味ですか?
923:デフォルトの名無しさん
19/12/24 12:16:14.86 Ww2BU2Ri.net
実行ファイルのあるディレクトリのパスを取得するのに
os.path.dirname(sys.argv[0])
という記述があるのですが
sys.argv[0]というのは何故必要なんでしょうか?
また、その1つ上のディレクトリのパスを取得するにはどうしたら良いですか?
924:デフォルトの名無しさん
19/12/24 12:35:53.65 3XzgnZW7.net
>>873-875
add と言う名前から想像すると、加算演算子「+」の再定義(オーバーライド・上書き)かも
例えば、Ruby で、カスタムクラスA を定義して、そのインスタンス同士を足す際、
class A
end
a_1 = A.new
a_2 = A.new
p a_1 + a_2 #=> エラー!
クラスA には、+演算子(メソッド)は、存在しないというエラーになる。
そこで、クラスA に、+演算子を再定義すると、好きな処理ができる。
a_1 + a_2 の場合、レシーバー(self)は、a_1で、other は、a_2 を表す
def +(other)
p self, other
end