くだすれPython(超初心者用) その45【Ruby禁止】
レス数が1000を超えています。これ以上書き込みはできません。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
↓等のてきとうなソースコード用うpろだに貼ってきてください。
スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう
◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/
〇前スレ〇
くだすれPython(超初心者用) その44【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1563969768/ >> http://mevius.5ch.net/test/read.cgi/tech/1563969768/999
C++ (ビープ音でドレミの歌とか、表示文字色を部分変更とかできたころの)
R
Python 2 → 現在3への適応に自分・ソースコードともに苦しんでいる
アセンブラ
>> http://mevius.5ch.net/test/read.cgi/tech/1563969768/1000
そもそもが50GBくらい(64GBに届いてないのはリカバリ用隠しドライブのせい)で
今、空きが11〜12GBくらい。
そういえば、Cygwinとかトートイズとか
おれさまのMP3コレクションとかがんがって泣く泣く消したから
ちょっとあいている状態なんだな。。。
で、
メモリが2GBしかない(拡張できねえ!仕様)し、
CPUも1コア×1.33GHzだから、
のそのそしている。 >>3
確かにそのスペックでインストールできるIDEは無いのかも。 >>4
どっちもこのマシンと、その前に使ってたもうちょいましなやつで
インストール&初回起動までなら、したことがある。
どっちにせよ起動するまでが糞激重くて数分かかってしまって
('A`)ってなってあきらめた。 サクラエディタやnotepad++でも充分でしょう >>6
ちょっとやってるぞー
くらいのレベルなら、
んだべな。 ちょっとした入門練習ならそれでも良いかもしれないが、本格的にプログラミングをするなら、しっかりした環境を作らないとダメだよ。
1年間の時間のロスがいくらの金になると思ってるんだ?
入門練習でも上達度が違ってくるぞ。
例え今時間はタダだと思っていても、貴重な人生の時間を使ってるんだからよくよく考えた方が良い。 tensorflowjsをインポートするだけでエラーが出るんだが(´;ω;`)
確実にライブラリは入ってるのに
一応、pipやってもalreadyって出てるし 20年くらい前のPC使ってる人が居るようだが
それだとpython使っててもpipすら出来ないだろ もしかしてpythonって++とか--できないんですか? はい
現代言語では非常に奇特なことにインクリメント演算子は存在いたしません
それをもって欠陥言語と評する派閥も少なくないです >>11
Win8→8.1の頃に買った
タブレットとノートパソコンどっちつかずのヤツなんだ・・・
pipはできる
でも機械学習やらせようとか思っちゃうとチヌ >>13
エラー吐いてくれればまだ良いんだけど
黙ってシレっと動いたフリするから困るよなω プログラム自体初心者なんですがこのサイトは学習に向いてると思いますか?
https://automatetheboringstuff.com/chapter1/
日本語ので良いサイトありますか?英語はできますが日本語でいい教材があるならそっちのほうが好ましいです
ちなみにテンプレのwikiはページがありませんでした 1ページあたりの内容が薄すぎてページめくりの回数多くて非効率
また学習に関係ない Youtube Logo がいくつか邪魔 >>1 まとめwikiのリンクは変更しないと開けない。
http://python.rdy.jp/wiki.cgi
に変更した方が良い 教材はここが纏まってる。
Pythonの学び方と,読むべき本を体系化しました2018〜初心者から上級者まで
https://shinyorke.hatenablog
.com/entry/python2018
中村勝則も無料の教材としては良いと思う。
https://qiita.com/KatsunoriNakamura/items/b465b0cf05b1b7fd4975 同じファイルを違うPCで実行したときの挙動が異なって困ってます。
pythonなどのバージョンは同じです。
具体的にはseleniumでchromeを起動する際に画像非表示オプションを設定しているのですが、
macbookair2013では画像が非表示になってもmacbookpro2017は画像非表示になりません。
クリーンインストールしても変わらなかったです。
まったく意味不明です何か見当つきませんか? 気になるんで教えてください
import numpy as np
lx = np.arange(0.0,6.28,0.01)
ly = np.sin(lx)
この場合
lyはnp.sinクラスのインスタンスを生成
npのメソッドsinの実行により生成
npモジュールのsin関数により生成
のどれと考えるのが筋がいいですか
この辺、テキストによって説明がまちまちな気がします >>23
>pythonなどのバージョンは同じです
Macのバージョンや設定がちょっとでも違ってたらチネ!!!(・∀・)なんだが。 >>26 追記
Chromeのサブバージョン番号まで完璧に一緒か
Macのサブバージョン番号まで完璧に一緒か
設定もまったくもって完全一致なのか python3.8はWindowsストアからインストールできるんだけど、pybind11に対応してないのでおススメできない。
なので従来通りのやり方でインストールしたほうがいいね。 >>25
Python 3.7.4 (default, Sep 7 2019, 18:27:02)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import numpy as np
In [2]: type(np)
Out[2]: module
In [3]: type(np.sin)
Out[3]: numpy.ufunc
ということなので、「npモジュールのsin関数により生成」が最も近いんじゃないかな
ufunc自体はそれ自身にメソッドやメンバを持つオブジェクトで、
カッコつきで呼び出されたら関数として振る舞うみたい。
sinはそのオブジェクトのインスタンスの一つだね。
https://numpy.org/devdocs/reference/ufuncs.html?highlight=ufunc >>29
ありがとうございます
VBAを少しいじったことがある
程度の初心者なんですが、当面
>>25 のような形式ではでは判断
できない違い(概念の違い?)がプログラム組むに
あたって影響することはあるでしょうか?
とりあえず名前つけて生成の過程はどうであれ
インスタンスができた程度の認識を持っていればよいのでしょうか? javaのMathのような、staticでシングルトンな何か
……と思い込んで使う >>30
プログラムを書く時間をなるべく短く、速く効率よく開発したい、と思うのであれば、
意識してモジュールとはなにか、クラスとはなにか、関数とはなにかということは区別をつけたほうがはまりにくいと思う。
関数を指定すべきところ、インスタンスを指定すべきところがあって、だいたいモジュールは指定できないかな。
試行錯誤する時間が十分にあって、かつ、モジュールやクラスや関数の違いについてまだ慣れていないのなら、
あまり深く悩まず、色々触ってみるのがいいんじゃないかな。 >>26
>>27
chromedriver, macosは同じですmacの設定は違うところもあると思います。
今気づいたけどwebdriverでchrome出すまでをpythonにやってもらって、その後手動でurl打ち込んで遷移すれば画像非表示有効でした。
なにこれ、こんなことあります?
以前このmacbookpro2017はキーボード問題で修理出して中身総替えしたみたいなのでそれで何かがおかしくなったとか…他のpcではいけてるし何かがおかしい… >>23
ブラウザのコンソールに、エラー表示されていないの?
漏れは、Ruby で作っているけど、
chrome のselenium webdriver のオプションは、しょっちゅう変わるから、
画像非表示オプションは、昔はあったけど、今は無くなったのかも? >>33
だから
Macの設定がどっかちがっつるんじゃねーのって。
ルートレスみたいな「余計なお世話」を
デフォルトON状態でモリモリ盛り込んでくるのがMacクォリティだからな。 >>32
時間は十分あるんで
気にせず、やってみます https://i.imgur.com/mLwF5kR.jpg
すみませんPycharmでmatplotlibというライブラリをインストールしたいのですが画像のようなエラーを吐いて失敗します
pipのバージョンが古いみたいなことを言われていますが、おそらく最新のを使っていると思うので困惑するばかりです
解決方法を教えていただけたら幸いです OSはwin10でPycharm community Edition 2019.2.30(おそらく最新)
Python3.8.150です なぜ1文字列目を無視したのか面白おかしく言い訳してください >>37
> https://i.imgur.com/mLwF5kR.jpg
エラーメッセージとProposed Solutionがありますが、それは試したましたか?
その結果はどうなりましたか? system terminalの意味がよくわからなかったのでスルーしてました
ありがとうございます。
ググってやってみた結果次のようなエラーを吐きました
ERROR: Command errored out with exit status 1:
ERROR: Command errored out with exit status 1:
command: 'c:\users\*\untitled\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; s
ys.argv[0] = '"'"'C:\\Users\\*\\AppData\\Local\\Temp\\pip-install-jv9zguo4\\matplotlib\\setup.py'
"'"'; __file__='"'"'C:\\Users\\*\\AppData\\Local\\Temp\\pip-install-jv9zguo4\\matplotlib\\setup.p
y'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"
'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\*\A
ppData\Local\Temp\pip-record-gi1t32x6\install-record.txt' --single-version-externally-managed --compi
le --install-headers 'c:\users\*\untitled\include\site\python3.8\matplotlib'
cwd: C:\Users\*\AppData\Local\Temp\pip-install-jv9zguo4\matplotlib\
Complete output (505 lines):
エラーメッセージのどこを貼ればいいのかわからないので、関係ないとこを貼っているかもしれません
そうでしたら申しわけありません BUILDING MATPLOTLIB
matplotlib: yes [3.1.1]
python: yes [3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC
v.1916 64 bit (AMD64)]]
platform: yes [win32]
OPTIONAL SUBPACKAGES
sample_data: yes [installing]
tests: no [skipping due to configuration]
OPTIONAL BACKEND EXTENSIONS
agg: yes [installing]
tkagg: yes [installing; run-time loading from Python Tcl/Tk]
macosx: no [Mac OS-X only]
OPTIONAL PACKAGE DATA
dlls: no [skipping due to configuration] error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe
' failed with exit status 2
ここが原因ということでしょうか?
すみません、ズブの素人なのでイラつかせるかもしれません src/checkdep_freetype2.c(1): fatal error C1083: Cannot open include file: 'ft2build.h': No such f
ile or directory
ft2build.hがないとからかもしれません
少し調べてやってみます。 visual studio 入れ直してもダメでした。 >>45
>system terminalの意味がよくわからなかったのでスルーしてました
どーせAdministrator権限が足りテナイとかジャネーノ
>>42
REQUIRED DEPENDENCIES AND EXTENSIONS
の欄が
まるっと抜けてる気がするんだが 回答ありがとうございます。
freetypeをインストールしようとしたところ次のエラーは吐きました。
ERROR: Could not find a version that satisfies the requirement Freetype (from versions: none)
ERROR: No matching distribution found for Freetype
環境変数CL,LINKの設定はMSVCのコマンドラインを使うという感じのやつでしょうか?
>>47
管理者として実行しているので権限が足りないということはないと思います まあそのほうがいいかもしれないですね。
ありがとうございました。
他の言語の勉強も含め色々検討したいと思います。 cmd から v8 という javascript をインストール中に
pythonコード内で利用されているファイルディスクリプタの read() 使用時に
UnicodeDecodeError: 'cp932' codec can't decode
というエラーが出ました。
文字コード関係のエラーというのはわかるのですが、
これを治すためにインストールファイルを直接触るのはためらっております。
コードを触ること無く、エラーを解消する方法はないでしょうか?
環境
windows10 Pro 64-bit
python2.7.17 このご時世に2.x使ってるとか奴隷制の犠牲者か何か? ファイルを、BOM 無しUTF-8(UTF-8N)で、保存しなおすとか、
Ruby の場合は、
ファイル読み込み時に、オプションで文字コードを指定するとか、
OS のユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を追加するとか >>50ですが、whlファイルを使うことで無事matplotlibのインストールに成功しました。
ありがとうございました。 >>51
あるあるパターンとしては
Windowsのユーザー名に2バイト文字が入ってる件・・・ >>51
cmd> chcp 65001
をしてからインストールを試してみたら? プログラミング自体初心者です
配布することも考えた小規模の自動化ツールを作る場合、GUIアプリにするか、Webアプリにするか、選ぶ基準はありますか?
どちらを選んでも、希望の機能の実装自体は実現できるとします
個人的な意見で大丈夫なので、考え方とかあれば教えていただきたいです すみません、一応補足すると、
Python で作ることが前提
小規模→社内で使い回す程度
です
連投すみません 違った、GUIアプリじゃなくてネイティブアプリです…
本当にすみません 基本的にWebを選ぶべき。なぜなら配布が楽だし、環境に依存しにくいし、Pythonでのクライアント(GUI)アプリ開発などという
国内ではほぼ誰もやっていないであろう無価値な技術を習得する壮大な時間の無駄をしなくて済むから。 おっ、業務支援スクリプトだな
pythonは業務支援スクリプトに最適な言語だからな 何言ってるのかわからん。GUIアプリなんてググればたくさん出てくるし、
Webはwebでサーバー環境立てる手間が居る。 クライアントアプリはインストールや更新を完全に利用者側の自己責任にできる場合にのみ使っていい
開発者自身が面倒見なきゃいけないなら確実に地獄を見ることになるから絶対にやめておけ 俺も自分一人かもしくはもう一人くらいならGUIでやるかもしれないけど
>>66の言うような理由でWebだなあ。運用保守面だよな問題は >>65 何をとち狂ってるんだよ。 Webアプリってローカルで動かして何ら問題ない。 JavaScript込みならwebアプリ選ぶけど
Python決め打ちなら普通にローカルアプリ作るのが早い つかうやつらにアプデを告知し、アプデさせるのがくそめんどうだから
Webアプリできる状況だったらWebのほうが断然おすすぬ
1個でWinだけじゃなく
MacやLinuxの連中にも使えるようになる品 >>23ですが解決しました。
macbookairでできてproでできないのはdGPUが関係してました。
proの設定>省エネルギーの"グラフィックスの自動切り替え"をオフにすれば画像非表示が適用されました。
↑の設定の他にchomeoptionに"--disable-gpu"を加えることでも解決しましたのでこれを適用させています。
>>26,34-35ありがとうございました。 >>71
解決おめ!
報告乙!
そういえば近年のchromedriverって、
積んでても積んでなくてもgpuの設定はちゃんとしないと、文句いうよね。 >>72
そうなんですね。解決しないと諦めてましたけど良かったです。
ちなみにdisable-gpuを設定しなくても
https://www.yahoo.co.jp/の様なdgpuを必要としないサイトでは画像非表示ができて
例えばhttp://taotajima.jp/の様ないかにも画像が重たそうなサイトではdgpuを使用して画像非表示ができなかったみたいです。 seleniumでchrome起動して、あるページのログインフォームにsend_keysしたいのですが、
開いたchromeのウィンドウがアクティブになっているとelement not interactableでエラーになります
ただchromeのウィンドウを非アクティブ(起動してすぐ別のウィンドウを操作する等)にすると
問題なくsend_keysされます
どのような原因が考えられますでしょうか >>74
formによってはたまにありますね
xpathをフルパスで指定すればいけたりすることもありました。
あとはexecute_scipt使ってjavascriptで入力はどうでしょうか >>69
儂もそう思う。儂はWEBアプリも興味あったけど挫折した。ということはローカルならpythonの方が多分かんたんだと思ふ。
tkinter使えば追加のライブラリ不要なのでGUIアプリも簡単に配布できるだろう。
もっとも、儂はPyQt5派だけど...
Qtにしてもtkにしてもwxにしてもgtkにしても使いやすいguiデザイナがあるから楽だよ。 フルパスXpathもJavaScriptも試したけどダメでした
泥臭いっていうか泥そのものみたいなコードですが
そのフォームにsend_keysするときだけウィンドウを最小化するというクソみたいな方法で回避することにしました
悔しいけど自分が使うだけのツールなので我慢します モザイク除去ソフトのDeepCreamPyを使うためにPythonの勉強を始めました(正直)。
https://github.com/deeppomf/DeepCreamPy/releases
Ubuntu 18.04でv1.3.0-beta win64のソースコードを取得して実行したのですが下記エラーが出ます。
Traceback (most recent call last):
File "decensor.py", line 8, in <module>
from libs.pconv_hybrid_model import PConvUnet
ImportError: No module named libs.pconv_hybrid_model
なお8行目はこんなです。
from libs.pconv_hybrid_model import PConvUnet
libsディレクトリはあるし、その中にpconv_hybrid_model.pyもあります。
.bashrcにexport PYTHONPATH="libsへのパス:$PYTHONPATH"と加えて再起動してもダメでした。
多分すごく簡単に治ると思うのですが、治し方が分かりません……。どなたか教えていただけないでしょうか。
モザイク外したい…… sympyで連立方程式をといて、その解の値を抜き取る方法が知りたいです。
例えば
import sympy
a = -1/2
b = 3
c = 1/2
d = -1
x = sympy.Symbol('x')
y = sympy.Symbol('y')
eq1 = y - a*x - b
eq2 = y - c*x - d
ans = sympy.solve([eq1, eq2], [x, y])
print(ans)
とすると
{x: 4.00000000000000, y: 1.00000000000000}
となりますが、4.0, 1.0それぞれの値を変数ans1, ans2に
代入する方法がわかりません。教えてください。 >>83
ans1=ans[x]
ans2=ans[y] >>> M = numpy.matrix([[-1/2,-1],[1/2,-1]])
>>> M
matrix([[-0.5, -1. ], [ 0.5, -1. ]])
>>> numpy.linalg.inv(M) * numpy.array([[-3],[1]])
matrix([[ 4.], [ 1.]]) anacondaとcolabってaiにおいて何がちゃうんですか? venvでの仮想環境を他のpcでも共有したい時どうすれば良いのでしょうか
家にpcが2つあり、両方で作業出来たら良いなと思っています
ソースコードはgithubで共有しているのですがvenvをpycharmで読み込もうとすると参照パスにpythonインタプリタが無いとかで面倒くさい,何かいい方法がないかと考えております >>74
漏れは、Ruby, selenium webdriver で、yahoo に自動ログインしてる
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--begin-maximized')
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
driver.manage.window.maximize # 画面最大
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click >>79
クリップボードに文字列をコピーして、フォームにペーストするってのはどう? >>88
いろいろ既に揃ってる方のPCのvenvを読み込む
↓
好みの階層で
pip freeze > requirements.txt
↓
でてきたtxtを、
何らかの手段で
もう1台のPCにもっていく。
(方法はメールでもgithubでもなんでもいい)
↓
揃ってない方のPCでvenvをはしらせる
↓
もってきたtxtがある階層にて
pip install -r requirements.txt PythonのKivyっていうライブラリでGUIを作ってるのですが
コンパイル前のコンソールからの起動だと、GUIが立ち上がるまでに4秒
コンパイルしてexeファイルを実行すると起動に10秒かかってしまってます。
コンパイル前から遅いのでコード自体が悪いんだと思いますが
せめてコンパイル後の起動の遅さをなんとかしたいです。
どうやったらexe化後の実行時間を短縮できますか? >>93
pyinstallerを使ってコンパイルしました。
WindowsとMacで配布するつもりです。 すみません、自己解決しました
py2exeを使ってみます pythonで後ろに隠れたウィンドウのスクリーンショット取りたいんですが、可能でしょうか?
win32guiは使える状態です The conda.compat module is deprecated and will be removed in a future release.
Collecting package metadata: done
condaというのは廃止されるのですか? >>96
inactive capture win32gui GUIライブラリのKivyを使えばAndroidやiOS向けに作れるんだろ。 Pyinstallerを使うとクソ遅いし、py2exeはPython3.4までしか使えない上に開発終了してるっぽいし
もしかして、Pythonってコンパイラ全部死んでんじゃね cx-Freeze は? Python3.6まで対応してる
https://pypi.org/project/cx-Freeze/#data
一部に手を入れれば Python3.7でも動くらしい >>101
コレは行けるのでは…と思ったらKivyに対応してないみたいで詰んだ 今更Kivy以外のライブラリで書き直すのもつらいし、もっと慎重に使うライブラリ考えとけばよかった…
GUIライブラリではどれが1番強いんだろ… >>103
つぶしがきく的にTkinterだとおもう tkinterはさすがにダサすぎるからQtとか使っとくべきだった >>103
MacとLinuxしか使ってないのでWinでどうかはわかりませんが、日曜趣味プログラミングの自分の経験上ではこんなかんじ。
結局、pyQtに落ち着いてます。Kivy再挑戦しようかな...。皆さんは何使ってるんですかね?
tkinter:標準ライブラリなので他の人に配るなら楽。GUIビルダーが探しにくいけどフリーでいくつかある。見た目が野暮ったいと言われるけど嫌いじゃないな。
wxPython:意外と日本語資料が多い。割と使いやすかった記憶があります。
PyQt:GUIビルダーが使いやすい。見た目がカッコイイ。なんだかGPLなので市販ソフトはだめらしいけど、個人使用なら良いらしい。
PySide:PyQtのLGPLライセンス版とのこと。使ったことない。
Kivy:挫折した。GUIビルダーが私の知る限りではあまり多くない(Linuxで動くのはひとつ?)。
PyGTK:使ったことない。でもGladeは使いやすそう。
PyFLTK:使ったことない。日本語の資料が少ない。
並べると意外とGUIの選択肢が多いですね。 Python始めた時にセットでkivy使い始めた
機能的にも使いやすさ的にも満足してるがコンパイル成功したことない、デバック実行で十分だけど 要するに最後の最後でフラストレーションが溜まるんだろ
単体で動くネイティブアプリに出来ないから GTKは糞
PyQtも糞
Qt(C++)はセーフ
wxPythonはgood
wxWidgetsはgood
tkinterはgood
tcl/tkはgood >>109
まぁ、そうなんですよね。一時期(当時はMac使ってた)、PyQtでアプリ使って、Pyinstallerとかで
なんとか単体アプリの体をつくろうとしたけど、バカバカしくなってやめました。
どっちにしてもアイコン用のpngファイルとか置くこともあるし、gui部分の表記は別の.pyファイルに
してメイン側から呼び出すのは、tkinterでもQtでもWxでも同じだと思うので、フォルダ単位の配布で良いかと...。
受け取った側が、どこにフォルダを置いても動くように、ファイルの呼び出しには
os.path.abspath(__file__)使ってます。
Winではアプリ化するのってpy2exeで簡単にバンドル化できるんですか? >>111
py2exeよりpyinstallerのほうが、遅いが確実なう。 exeにするメリットデメリットについて教えろ
macの実行ファイルでも同じか >>113
・メリット
pythonがインストールされてない環境でも実行出来るので他人に配布するのが楽。
コードが盗み見られづらくなる。
・デメリット
起動が遅い python.dll を呼ぶ exe を C で書く
そこから hoge.py (main) を呼ぶ
これでインストールしなくても使える >>115
Nuitkaっていうコンパイラがそれっぽいことをしてくれるみたいだけど
使い方がよく分りません>< C の知識あるなら module だけでも tutorial 通りに造ってみ
main じゃなくても良い exeの方法の一つとして、Nuitka を使ってCのソースを作り出してCをコンパイルして実行ファイルを作る方法が有るみたい、
Nuitka の話題はあまり聞かないけど良さそうなのにどうして?
ま、それができればかなり美味しそうなのにあまり話題にならないという事はそれなりに問題もあるんだろうけど。 https://github.com/Nuitka/Nuitka
Nuitka
Nuitka は Python コンパイラの1つです。
Python を C にトランスパイルし、libpython とリンクすることで実行可能ファイルにします。
2018年3月現在、最終更新は2018年です。
Windows、macOS、Linux および FreeBSD に対応しています。
また、x86/x86_64 だけでなく arm にも対応しているようです。
――-
動的型付を静的型付のCでコンパイルするという事は、頻繁に型変換を自動でやるのかな? 結構な重労働に感じる 初級者なんだけどこれくらい読んどけって本ありますか
とりあえずEffective Pythonは候補にありますがこれで良いのか他にもっと良いのあるか迷ってます ネタにはネタで返す
あま
dp/4839965250 pythonは標準でastモジュールが用意されているけど、そこからpythonコードを
生成するのには何を使うのがいいのかなあ。
pypiで探してみても古かったりあまり使われてなさそうなものばかり。 seleniumでchrome動かす用途でしかほぼ使ってないんですけど、
chrome自体はもちろんとして、pythonのインストール先も
SSDなど高速なドライブにした方が、動作は早くなりますか?
それともほとんど関係ないでしょうか 常駐してほぼ無限ループするようなやつならメモリ増やした方が良い selenium自体高速動作じゃだろ
ドライバ自体がボトルネックだからよっぽどなハードじゃない限り... なるほど、ではpythonのインストール先はHDDでも良さそうですね
実は無駄にRAMdisk上にインストールしてしまったのですが
インストールした後にインストール先の変更(移動)ってできますかね… >>131
Macだったらかなりアキラメロン
Winだったら普通にアンインストールしてから再起動かけて再インストールで、いんじゃね? すいませんWindowsです
いろいろpipでインストールしたものもあるのでめんどくさいなーと思ったのですが仕方ないですね
ありがとうございます >>133
ちょっとまて
「一旦アンインストール」をする前に
pip freeze > hogehoge.txt
みたいなコマンド(正確なのは
ぐぐるか、このスレか初心者用じゃないほうのPythonスレにこないだ書いたから、
検索してくれ)で
pipしてたもののリストをだしておいて
入れなおしのあとは
そのリストをpipに食わせて連続インスコって
楽ができるはずだ >>134
うまくいきました、ありがとうございます
実はpywin32を使ってエクセルを操作していたのですが、
pywin32のインストールの時に、インストーラーでインストールして
そのままでは動かなくて、Python\Lib... 内の何かのファイル2つを
上層のディレクトリにコピーしたら動くようになった記憶があるのですが
その記事がいくら検索しても出てこなくて、困ってます
上記の説明でわかるでしょうか… 自己解決しました
1時間くらい探して見つからなかったからこちらに書いたのに
書いた直後に発見した…
>copy pywintypes26.dll and pythoncom26.dll
>from C:\Python26\Lib\site-packages\pywin32_system32
>to C:\Python26\Lib\site-packages\win32
スレ汚し失礼しました そのやり方は間違ってる
おかしなやり方を広めないように 転職したくてpythonの勉強始めて約1ヶ月弱・・・
文法の綴りミス多かったり
ルールとか少しづつしか理解出来てなくて悔しい
今までやったこと無い事ばかりでどうすればちゃんと理解しながら勉強出来ますか? 一度に多くのことをやりすぎない
細かく分けて一つ一つ理解する
その積み重ねでしかない >>138
基礎がそもそも出来てないだろうからとりあえず入門書的な本を買う
詰まったら本見て調べる。出て来なければググる
あとはひたすら書いて慣れるのみ。ゲームと同じで攻略本読みまくるよりプレイして経験積むほうが成長できるしね レスありがとうございます。
本は二冊買っていてチュートリアルのサイトも見ながらもう一度初めの基礎からしっかり覚えて行こうと思います。 >>135-136
コピーして解決☆彡じゃなくてだな
オリジナルのファイルがある階層に
PATH(環境変数)が通ってないのが原因だろうから
site-packagesへのパスを通せ
というか
2系はもうすぐ終了するので、使うと後ですごい苦労するぞ。
最初から3系使え。 >>143
詳しくありがとうございます
なるほどPATH通せばいいだけだったんですね…
こんな初歩的なことに気づかずお恥ずかしい限り
後出しになってしまって申し訳ありませんが
上に貼った英語の記事は26になってますが、自分はPython3.8です
ご助言ありがとうございます うちもPATHおかしくなってるっぽいけどなんか問題なく動いてるから調べてないや
VScodeのターミナルから全部入れて普通に使えてたがAnaconda入れてからターミナルでpip出来なくなった、AnacondaPromptからなら入る 環境変数は書く順番で通るパス変わるからな。bashなら実行環境でwhich pythonて打ったら自分の使ってるのがどれかわかるよ。
Anacondaは依存を最高に管理してくれてるから、基本conda使うんだよ。pandas のこのversionには依存してるnumpyはこのちょっと古いversionまでしか上げないとかな。
何でも最新入れればいんじゃないんだよ。condaになければpipだけど。使うときpip install numpyとか使わないでAnacondaのpipがあるフルパス スペースinstallスペースnumpyとかって使うんだよ。
そうじゃないとwhich pip で通ってるMacでいうとpython2.7にnumpy入れるだけだからな。
Anacondaは使えないとかいうバカをたまにみるけども。 pathに2と3のpathが混ざってるとかありえないんだが 2ヶ月目くらいの初心者ですが 図書館で子供向けのPython入門本と
コーリー・アルソフの「独学プログラマー」ってPython本借りて
基礎からやっています この本はなかなかいいかもしれません >>147
Winユーザーだけど、
まぜてるよ?
まだ2系時代の遺産をリメイクし終えてないから、
ふだんは2優先起動で、
3優先にしたいときだけは、
「3を優先するようにするバッチ」からコマンドプロンプト出してる。
Macを使わされてた時期もあるけど(当時は2しかなかったけど)
システムのPythonと自分のいじるPythonわけてたから
環境変数に書く順番はジッサイトテモダイジだった windows だけど
2 しか使わない console と
3 しか使わない console に
分けてる Winユーザーだけど混ぜてないなあ
pylauncherだけパス通してある んで2と3のどっちを起動するかはシバンに書いてある プロジェクトごとに仮想環境作ってそこを使うようにしてるわ
ごっちゃにならないし、補完もできるし楽
グローバルな環境でpipとかまず使わん >>151-152
Windowsだとそれが一番楽だよね。
あと、2、3ともにPATHを通して(一応3が優先にしてる)
あと、python.exe、pythonw.exe をそれぞれ、
python2.exe、pythonw2.exe、python3.exe、pythonw3.exe のようなシンボリック・リンクを作っておいて、
これでコンソールというか実行するインタープリターを使い分けしてる。
同様に、py2.exe py3.exeっていうシンボリック・リンクで楽ちん呼び出しもしてるな。
pip.exeがそんな感じになってるのでその真似なんだけど。 pylauncherとvirtualenv/venvの併用だな。ディスクをモリモリ喰うのが難点だが。 classをはじめて触ってるのですが
class Test :
__def __init__(self):
____pass
みたいに書くと思うんですが、インスタンスを作成するときにtes=Test()としないとエラー吐くのはどうしてですか?
class Test() :
__def
と書いていくのではないのですか
classの()はどうして書かないの?
書かないのにインスタンス作成するときは書くのはなぜ? >>156
書いても書かなくても大丈夫なのです
試してみて ガッコで画像処理の勉強やったりしている工学部生ですが、
すばらしい画像処理やPythonのサイトがあったのでご報告します。
工学全般に説明されているので、お気に入り登録をおすすめします。
またいつか、質問があったりしたら来ますね。
https://algorithm.joho.info/image-processing/digital-imaging/ >>157-158
ふーむ…(object)で調べたらなんとなくわかったような分からないような
もうひとつ聞きたいのですが
いまデータベースにアクセスして各種パラメータを取る関数?を作ってます
get_ids():
__なにかの処理
return ids
get_names():
__なにかの処理
return names
という感じです
これはclass化するべきものではないのかなと思ったので
class GetItemParamsを作成し、配下に各メソッドを作ろうかなと思ってるのですが
これって考え方として合ってるんですか?
なんか
get = GetItemParams()
get.names()とかって冗長な気がします GetItemParams.pyファイルにコンストラクタがわりのグローバル変数と各関数書いて、importする方が適切なんでしょうか?
なんかよくわからなくなってきました
こういうシチュエーションのときはどう書いてったらいいんでしょうか 変数名を get にするのは混乱の元だから辞めた方が良い
クラスにするのが抵抗あったらモジュールにするだけでも良い
db とのコネクションをどうするかとかも一緒に考えて >>156
classの()は継承する時に親クラスを書くためのもので引数とは違う
何も継承しないならわざわざ()だけ書かなくても良くなってるだけ >>156
僕も初学者なのでアレですが…
クラスを定義する時の class Test(): の括弧のなかにはselfが入っていて、
それは a = class() とした時に第一引数self = a は
Pythonが自動的に渡してくれるから省略できるのだと思います >>164
そうなんですね... 勉強になります... >>167
ちょっとうろ覚えで書いています...
あとで見直してみますね >>165 の話ですが..ちょっと認識違いのようでした
>>164 さんの言うとおり 既存のクラスを継承する時には class(): で使い、
通常は書いても書かなくても良い
何も書かなければ object型を継承したとみなされるようです
失礼しました Qiitaで初心者が書き散らしてるやべー文章みたいだな >>159
そこは超初心者用だ
Pythonに慣れたらいち早く引っ越せ
さっさと卒業しろ >>159
おお
覚えた事が右から左にすぐ抜ける自分にはぴったりのサイトだwww >デジタル画像の画素を数式で表現する場合、一般的には行列を用います。
はぁ? DataFrameの末行に1次元リストを行方向に結合したい
dfの列数とリストの要素数は合ってる
この場合はどう書くのが早いですか? ひと月、本見ながらコード書いてて余り理解出来てなかったけど
ここで聞いて基礎復習しながら作ってみたい物を調べながら書きだして3日だけど全然頭に入ってくる感じが違って楽しい!
どうしても分からない事が出てきたら聞きにきますのでその時はどうか宜しくお願いします。 とりあえずGUI表示させてボタンつけたりできて
敷居が超低いことがわかって興奮したけどそれで終わってしまった
ガチ系じゃなくて、ちょっとした作業って具体的に何ができるの >>179
ご質問の趣旨に沿っているか分からないけど、私も趣味でPyQtでちょいちょいツール作っていますよ。
最近作ったもの↓
・子供が迷路たくさんやりといと言うので、迷路作成プログラム(PyQtでプリンタ使う練習)
・車のO2センサー電位を表示するプログラム(マイコンで測定回路を自作。matplotlibとPyQt組み合わせ)
・子供がひと桁の足し算の練習をやりたいというので、足し算ドリル
・物理現象で乱数作る実験したくて、その検証プログラム(トランジスタの電子雪崩回路自作、matplotlibとPyQt組み合わせ)
・フラクタル画像の実験で雪の結晶ぽい画像を描画するプログラム
・車のCAN-BUSをモニターするプログラム
・USBシリアルのモニタ レフ機から画像のインポート
クリップボードのスタック
端末出力の特定の語の着色
辞書
写真の露出からEV値に変換(現場の明るさの数値化)
フラクタル図形の描写
素因数分解
素数判定
imgur のバグの簡易対処
等等 >>182
素数判定ってどうやりました?
私は2から与えられた数の平方根(または半分:mathをimportしない場合)までをひたすらforループで%して
判定するプログラムを作ったのですが、もっとスマートな方法ってありますか? git系プログラムのプロセス通信を使ったgitクローンのタイムスタンプ同期 素数判定ってIF文並べていけばいいだけじゃないの? >>183
素数出したやつキャッシュしておけばもっと早くとかはあるけど
ルートまで単純にチェックするのが簡単なので C言語で書き直した
wolfram などの判定は異常に速いから素数判定の数学の術を知れば
もっと早くなるとおもうので数学の板でそこの住民に聞いてくれ
あいつら素数大好き >>180,181,182
おぉめちゃくちゃ沢山ありますね
主にPC上での補助ツールの想定しかしていませんでしたが
データさえインポートできれば、ちょっとしたIoTみたいなことができるのですね
JavaScriptのときは実用する機会が多かったのでモチベが続いていたのですが
Pythonで表現できることも多そうなので同じ感じのモチベでやろうと思います
ありがとうございました var y=0
func main():
for y in range(4):
y += 1
print(y)
4まで表示したら終了したいのですが、どのようにして処理を終了するのでしょうか
1
2
3
4
1
2
3
4
とメイン関数内で繰り返されます ソケットプログラミングの実験なんかもPythonでできるし、速度や並行性を要求されないものだったら
大抵Pythonで書いて楽してるな。
その辺を要求されたらC#になる感じだな。
あとはブラウザ上でなんか動かすときのためにJavascriptを知っておけば、
PC上でのプログラミングは大体カバーされる感ある。 if((i%FIZZ)==(i%BUZZ)==0):
上記を含むコードを動かしたところ、意図する動作にはなるのですが
こういう書き方、して良いんでしょうか
(言語によってokだったりngだったりしたような)
この書き方の名称が解らないので調べられません >>196
andの省略で条件の連結が可能
10 < a < 30 みたいに書ける ほんとに初歩の初歩でごめんなさいなんですけど、今電卓を作っていて、ボックスをからにしてから結果を表示したいのですがreturn.self.Box.delete(0,tk.end)と
return self.Box.insert(tk.end,eval(self.Box.get()))
を順番に実行したいのですがどうやっても同時になってしまいます、順番にやる為にはどうすればいいですか? 初心者はこんなコードを書きやすい
典型的な糞コード
ループ {
sum = _mm_add_ps(sum, data[i]);
} フォンノイマン型のコンピュータの効率の良いメモリ活用ために
変数を使ったり代入をするのが
数学的ではない奇妙に見える方法だから mp3をvlcから再生するとまともな音質なのにpygame.mixerから再生すると音割れ酷いんですけどどういう違いが考えられますかね? 事前に windows media player 立ち上げて(こっちは立ち上げるだけで何もしない)から実行したら? >>204
どうして糞コードなんですか?
sumを使いまわすなってことですか? >>207
書き忘れてました。実行環境はラズパイ3です。
vlcプレイヤーを立ち上げた状態でpygameで鳴らしてみましたがやはり同じ曲でも音割れしますね・・・スピーカーを替えても同じでした。
init時のパラメータを調整してみるしかないのかな >>215
名作はもちろん、
つきぬけた糞ゲーをつくるのも、
なかなかにむずかしいと学べるだろうよ。 r1 = "6x/im-name-5kg/10.x"
r1b = "6x/im-na-me-5kg/10.x"
r2 = "7x/im-250g-name/20.x"
r2b = "7x/im-250g-na-me/20.x"
r3 = "8x/im-1kg-name-1kg/30"
r3b = "8x/im-1kg-na-me-1kg/30"
name部分にはランダムな英語文字列(大文字/小文字のみ)が入ります
na-me は apple -> app-le みたいなパターンです.その他記号や数字は入りません
このname部分だけ抽出したいんですが,正規表現だとどう書くのでしょうか
if使って不格好にやることはできるのですが,遅いです >>219
name以外の部分はそこで列挙したパターンのみなのか、数字や桁数などが可変なのか?
最初に正確な仕様を出さないと、後から五月雨式に追加すると非難されるぞ >>219
im-(?:¥d+k?g-)?(.*?)(?:-¥d+k?g|/)
とか
im-(?:[¥d]+.+-)?([^¥d][A-Za-z]+-?[^¥d][A-Za-z]+)
とか 可変長文字列/im-名前-重量/2桁の数字 可変長文字列
可変長文字列/im-重量-名前/2桁の数字 可変長文字列
可変長文字列/im-重量-名前-重量/2桁の数字 可変長文字列
という3種類がテンプレートで,重量と名前の表記には揺れがあります
名前ブロックを抽出するのが目的です
例えば~/im-1.5kg-name/xx~のときはnameが欲しい
~/im-100g-n-a-m-e-100g/xx~のときはn-a-m-eが欲しい def gen_objects(elems):
____import random,string
____name_pattern = ["name","n-ame","n-a-me","n-a-m-e"]
____weight_pattern = ["100g","1kg","1.5kg"]
____temp = []
____for i in range(elems):
________rand_strings = "".join([random.choice(string.punctuation + string.ascii_letters + string.digits) for i in range(random.randint(4,7))])
________rand_name = random.choice(name_pattern)
________rand_weight = random.choice(weight_pattern)
________rand_footer_num = random.randint(10,99)
________n_w = f"{rand_strings}/im-{rand_name}-{rand_weight}/{rand_footer_num}{rand_strings}"
________w_n = f"{rand_strings}/im-{rand_weight}-{rand_name}/{rand_footer_num}{rand_strings}"
________w_n_w = f"{rand_strings}/im-{rand_weight}-{rand_name}-{rand_weight}/{rand_footer_num}{rand_strings}"
________obj = random.choice([n_w,w_n,w_n_w])
________temp.append(obj)
____return temp
testlist = gen_objects(10)
こういう感じのテストユニットをループで回して正規表現でnameを抽出していってnamelistを作成しようとしています >>224
>>219 には浮動小数点入ってないな
曖昧過ぎて話にならん 今は3種類の正規表現パターンでtryとtypeErrorを重ねて抜き出してます
もう少し早くて上手いやり方がないかなと考えています >>224
im-(?:¥d+¥.?¥d*k?g-)?(.*?)(?:-¥d+¥.?¥d*k?g|/)
とか
im-(?:[¥d]+.+?-)?([A-Za-z]+(?:-?[^¥d][A-Za-z]+)*).*/
とか
どっちも微妙なところがあるから用途に合わせて組み合わせるなり最適化するなりしてどうぞ
>>225 本題と関係ないけど:
- 名前パターン x 重量パターンは12種類しかないから全部テストしたほうがいいんじゃ?
- 入力値のバリエーション増やして品質あげたいならHypothesisとか使うといいかも
- elemsという名前で数を渡されるのはちょっと… >>224
(?<=im¥-).*?k?g?(?=¥/)で抜き出して、^[¥d¥.]+k?g¥-|¥-[¥d¥.]+k?g$で削除したら? あーこれケツのランダム文字列にも/が出てくると破綻するんか。死ね
pat = r''im-(\d.*?k?g?-)?([a-zA-Z-]*)"
pick = re.search(pat,i)
pix = pick[2].rstrip("-")
これでダメかな .+?\/im-(?:\d+k?g-)?([a-zA-Z-]+)(?:-\d+k?g)?\/.+
で$1でnameだけ取り出せるかな
jsでしか確認してないけど 小数点入ってんのか
.+?\/im-(?:[\d\.]+k?g-)?([a-zA-Z-]+)(?:-[\d\.]+k?g)?\/.+
に修正 numpyに入ってる画像をkivyのパネルにtextureにして貼ってるんだけどサイズが合ってない
numpyの時点で指定サイズに縮小とかできませんか 遺伝的アルゴリズムは最適化法
ニューラルネットはモデル >>235
numpy だけでは無理
numpy -> PIL Image -> resize -> numpy >>239
遺伝的アルゴリズムは、生命の進化過程を基にした、より良いデータを生み出す手法
ニューラルネットワークは、脳の仕組みを基にした、AND回路やOR回路の組み合わせのような、処理するための回路 遺伝的アルゴリズムは、集団の中で殺し合ってくださいと言うバトルロワイヤルな世界、最後に生き残った者たちで生きて行こうぜと言う殺伐とした世界
ニューラルネットワークは、集団に役割を持たせて、みんなに狩や料理や建築などを割り振って、上手くできるヤツを育てて専門家を作って、出来ない奴もいるけど取り敢えず置いとけと言う優しい世界 別にニューラルネットワーク同士を遺伝的アルゴリズムで殺し合わせて学習させてもいいんだぞ 遺伝的アルゴリズムとニューラルは技術的に関連があるの?
遺伝的アルゴリズムのほうが簡単ですか? お前さ、お勉強スレで
> glslとpytorchでの画像認識は似ているのですか?
> pytorchとtesorflowlってなにがちゃうんですか?
> どちらからはじめたらいいです?
とか聞いてた奴だろ
二度とプログラミングするなと言っていたはずだが、もう一度言わないと分からないか? tkinterで線を描くと線がギザギザしてしまいます
フォトショップのようななめらかな線を引く方法を教えて下さいませ><
アンチエイリアス?って言うんでしたっけ?助けてください GANって遺伝的アルゴリズムだったんだ。知らないで調律してた
ただの普通の敵対的生成じゃん。駄目だなあ、技術から入ると背景の理論の壮大さを
まったく感じ取れない >>249
フォトショでもおまえのマウスさばきが糞ならギザギザの線になるんだが。
あと、みためは同じような「なめらか感」でも
自動で手振れによるぎざぎざをなかったことにする派と
手の動きを、近似の数式にすることで、どこまでもなめらかに表現している(ベクタ)派
があるんだが。 >>251
アンチエイリアスのやり方を教えて下さい。お願いします。
tkinterだと斜め45度の直線でもギザギザしてしまいます>< >>252
wikiれ
そもそも白黒2値ワールドとかだったら( ゚Д゚)イッテヨスィ >>254
白黒2値じゃない白黒の境界を灰色にする方法をお願いします>< >>255
灰色とひとくちにいうが
こいのとうすいの くらいは作っておかないと
コレジャナイ感が出そうなんだが。
tkinterの色指定についての説明を読めよ。
「How to change the colour of everything in a tkinter GUI」とかでぐぐるもよし。
英語アレルギーなら
端末を窓から投げ捨てろ きっとブレゼンハムのアルゴリズムか何かで線を引いてるだけだろ
ならアンチエイリアスを自前で実装すればいい pyautoguiでchromeの操作を自動化したいんだけど、chromeでリンクをクリックしたあと、ページの完了が終わるまで待つには、sleep使う以外にはどうしたらええんやろか var array =[
[0,1,0,1],
[0,1,0,0]
]
var array2 =[
[0,0,0,0],
[0,0,0,0]
]
配列がすべてゼロだったら、という条件はどう書くんですかね >>259
セレニウムだと「クリックできる状態か否か」を判定できるんだが
pyautoguiにあるかどうかはシラネ >>260
中身全部を0かどうか順番にチェック
0じゃないものを発見した時点で0以外をみつけたフラグをおっ立ててチェックを抜ける(break)
チェックする部分の次のところでは
0以外発見!のフラグがたってるかどうかで
処理をわける そういえばwindwosのminesweeperをポチポチするプログラムを
pythonで書いて自動化して完成させた途端
msがminesweeperのデザイン変更しやがって糞な思いした
画面ポチポチするプログラムは仕様変更に対して効率悪い >>260
var 付いてるからスレチだが
python の話と仮定して答えると
numpy 使えば一発 >>263
ボタンの上からn番目みたいなアッタマワルイ指定方法とか、
画面上の座標指定とかじゃなく、
クリックできるようになってるもの固有の何かを指定しておいたとしても、
大幅デザイン変更に遭遇したら泥縄になるのは
さけられない。
あきらメロン
マインスイーパみたいに
マス目があるの絶対な!みたいな
なにがしかの決まりがあるものならば、
マス目の区切りを自動検出して
チェス盤や将棋盤のごとくx軸y軸順番にマス目番号を振っちゃう
みたいなのを作っておけば、
色合いとかかえられた際は
マス目の自動検出をちょいちょい手直しするだけで済むが。 サイズ固定でいいなら if array == [[0]*4]*2: とか。 >>260
all([not any(x) for x in array])
そこはかとなくダサいけどall()やany()使うのが普通だと思われ >>261
ありがとう
seleniumで次クリックする要素が出るまで待つのが王道なのか >>269
「要素が出た」≠「クリックできる状態」 >>257
英語はわかりません><
>>258
アンチエイリアスは自前するしかないのですか? >>271
じゃあPythonどうこうより先に
Google自動翻訳あたりをなんとか使えるように勉強しろ
あと
無知を誇るな >>272
英語から日本語への翻訳はまだ学習が進んでなくて使い物になりません。
お前のようにw >>274
プログラマは目指してません><
趣味でPythonの勉強をしてます。
どなたかアドバイスお願いします。 アドバイスくれと言う割に、挑戦する前から自分には出来ませんって
やる気すら無いやつに誰も教えてくれるわけ無いじゃん >>276
挑戦はしてます。。。
英語を翻訳機にかけてみましたが日本語になりません。。。 僕は昔フラッシュのアクションスクリプトを勉強してたんですが
フラッシュではジャギはかからずにアンチエイリアスが自動でかかりました
パイソンはできないのですか? 気になるならPILでお絵描きしてtkのcanvasに貼れ >>280
ありがとうございます。
別のライブラリに頼るしかないのですね。
その方法を採用させて頂きます! >>270
とりあえずpyautogui.locateOnScreenメソッドで次クリックするアイコンの画像が出てくるまでループしてsleepする形にしたわ
pyautogui.locateOnScreenは画像がなかったら、ImageNotFoundExceptionの例外を上げるとドキュメントに書いてあるのに、noneを返してくるわ(´・ω・`) var array2 =[
[0,0,0,0],
[0,0,0,0]
]
func _ready():
for i in array2.size():
for j in array2[i].size():
if array2[i][j] != 0:
print("true")
else:
print("false")
配列にゼロが含まれるかどうかチェックしたいんですが、これだとfalseが8回帰ってきますよね
あるかないか 1度のみの結果を返すように出来ますか
ちなみにgodotです
ありがとう >>284
スレチ&板違いだ
延々ここで続けるんじゃない
gamedev板へ(・∀・)カエレ!!! 近頃
あっちのスレでもこっちのスレでも
GodotをPythonだと思って湧いてくるあふぉが多すぎるから
次からは
1に
「godotはスレチ&板チ (・∀・)カエレ!!!」を
明記した方がいいとおもう件。 >>980あたりの人へ
↑についてどうよ? >>all >>287
出て逝く前に
>>262はちゃんと読んだか?
もまえ>>260だろ? まあ、冗談だけど
x=sum(array2,[])
x.sort()
x[0]==x[-1]==0 >>269
Ruby で、Selenium WebDriver なら、
driver.manage.timeouts.implicit_wait で、要素の検索のタイムアウト秒数を設定できる。
何も設定しなければ、10秒でタイムアウト
options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout >>288
ええ、読みました
変数を加算していって合計が0以上だったら、という条件でもいいのでしょうか? >>291
値が非負だという前提があるのならそれでもいいんじゃね?
コメントなどで明示しとかないとバグの元になるが。 >>292
どうも
配列の長さが同じなら、比較用の配列用意するのもいいみたいですね
上のやり方試してみます すまん誰かエスパーしてぇ………
anacondaでpython3入れたんだけどコマンドプロントでpython3 --versionやっても何も結果が返されない……
anacondaのインストールフォルダに行けばpython3いるしjupyter notebookとかは普通に使えるのん…
なんで…なんでぇ……コマンドプロントのいじわるぅ…… なんでこの言語は
オブジェクト指向なのに
関数で属性を所得することがあるんだ?
なんか意図があるのか? 関数で属性を取得したい、という意図があるんだろ
それ以上のどういう説明が欲しいんだ 後付けOOPだからしゃーない
さらに作者は関数型も嫌いだから中途半端なサポートになってる 初心者に最適みないな煽り
で解説書でてるが
宣言いらないし、見た目はシンプルだからこそ
易しい言語ではないな >>299
開発中に変数の型をコードで確認できると便利だろ
あとSQLやPandasの各列をfor文で操作する時に、型チェックして分岐をつけることもある この引数受け取って < 又は > を関数側で判断したいんだけど どう記述すりゃいいの?
qsort(lambda x, y: x < y, [2, 4, -90, 3, 10])
単純に変数に入れて出力してみたけど
def qsort(a, b):
........print("a= ",a)
........print("b= ",b)
不等号 < > が全く見えません
a= <function <lambda> at 0x000001D564F7B4C8>
b= [2, 4, -90, 3, 10] >>306
その書き方で間違ってはないよ
渡されたlambdaのソースを確認したいなら
import inspectしてprint(inspect.getsource(a)) https://github.com/AmbientDataInc/EnvSensorBleGw/blob/master/src/gw_RPi/env2ambientBS.py
これを動かしてみると、
NameError: name 'companyID' is not defined
とエラーになってしまいます。
51行目からの関数「def send2ambient(dataRow):」の中の
52行目の
if companyID == 'ffff': とif文がありますが、どこにもcompanyIDという変数は見当たらない気がします。
56行目〜59行目、52行目を削除して、53行目〜55行目のインデントを戻せば正常に動きました。
companyIDはどうやって取得するんでしょうか? >>308
多分解決しました
value[0:4]にcomanyIDが入っていたので、
77行目でvalue[0:4]も渡して、
51行目の引数にcomanyIDを加えてやると動きました
これであってますか? >>307
不等号記号が判断できました
ありがとうございます >>36
自前でsort_byみたいなのを作るのかな パッケージ、モジュールについて質問です。
import numpy as np
a = np.random.rand(10)
という記述があったとします。
np はパッケージ
random はモジュール
rand() は関数
であっていますか?
np がパッケージだとすると、パッケージは関数や定数などを含むことができてしまっておかしいような気もします。
このあたりについて解説をお願いいたします。 中身みたらいいんじゃないの?
import numpyがPackage
import randomがSub-Package
randがfunctionってコメント書いてる 質問者の本来の意図は判らんが
質問文だけ読めば
import hoge as fuga
fuga.hage.hige()
の一般的なことを聴いてる可能性もある
ケースバイケースとしか言いようがない プログラミング始めて2ヶ月弱です。
今TwitterのsearchAPIを使用してtkinterのメインフレーム内のテキストウィジェットに検索結果を追加していくプログラムを書いてまして
threadを使用してリアルタイムに追記させていくことは出来たのですが停止がうまくいきません。
ttps://teratail.com/questions/147319
上記URLの様にスタートとストップを分けて書いているのですがストップ時に止まらず応答無しになります。
tryの前に上記URL内のwhile not stop_flag:を置いてループさせているので
ループ中try内のプログラムにif stop_flagがtrueの時にbreakする条件を追加すれば想定道理に動きますでしょうか?
仕事中で詳しくは記述出来ませんがこの考え方で合っているのか確認したく質問させていただきました。 while not stop_flagって書いてるし意味わからんな >>312
気になるのはわかるが
生成の過程はどうであれ
オブジェクトが生成された程度でいいとおもうよ
ここつついてもなんもでてこない >>314-315
>>320
ありがとうございました。 柴田望洋さんのPythonの本に、
'\\\\\\\\'
と入力すると
'\\\\'
が出力されると書いてありますが、JupyterLab上で実行すると、
'\\\\\\\\'
が出力されます。
これはどういうことでしょうか? もう一つ質問させてください。
id(1)
とするとある大きな正の整数が出力されます。
オブジェクト「1」のIDだと思います。
ある複雑なオブジェクト(あるクラスのインスタンスなど)にIDが割り当てられているのは理解できます。
おそらくインスタンスを作ったときにIDが割り当てられるのだと思います。
整数の場合にはどうなんでしょうか?我々は整数を使うときに整数のインスタンスを作ったりはしません。
このあたりのからくりについて教えてください。 >>324
id()で表示されるのは実装にもよるが単純にメモリ内のどの位置にそのオブジェクトがあるかじゃなかったかな?
いちいちidが割り振られるのは単純にプログラム内で一度出現した値を再度読み込むときにすぐ読み込めるようにするためだった気がする。
id(1)とかだと同じプログラム内だとずっと同じidになっているがid(10000000000000000000000000000000000)とか数値が大きくなると
ずっと同じ数値を保持するためには莫大なメモリが必要になるから、いちいち同一のidを保持したりせずに毎回値が変わるのがわかると思う
それと、1が整数のインスタンスじゃないというのは勘違いだ。 isinstance(1,int)とすれば整数1が整数のインスタンスだとわかる
プログラムする側が明示的にインスタンスを作らないだけで内部的にはインスタンスになっている
また、C言語などにおいては整数は「単純な値」と言えなくもないが、少なくともpythonにおいては数値もオブジェクト、
dir(1)してみればわかるが1にもさまざまなメソッドがついている >>322
JupyterでOutに出るのはPythonで表記したときの書き方。
print('\\\\\\\\')すれば\\\\が出る。 >>322
つまりprint('\\\\\\\\')はPythonで表記したものではないと JUpypてrが何か知らんがMacだと¥と\が違うんだろ >>299
え?俺便利だと思って多用してるけど....
関数側で引数がリストならfor文で引数内の要素で再帰呼出し、リストじゃなければ
引数を処理みたいな感じで使ってる。
(簡単な例を書き込もうとしたらブロックされた...わかりにくくてすんまそん) >>332
たぶんインデントなのと半角英数がいっぱいなのが
先週あたりから強化された全板規制にひっかかる。
>>1にのってるようなソースコード用うpろだを使うのだ >>332
なるほど
確かに便利だ
オブジェクト指向の概念からいえば
関数で属性取得するの邪道だと思っていたが
柔軟にしないといけないな
これが純粋性より実用性ってやつか The Zen of Pythonの一部の翻訳についてですが、柴田望洋さんは、
「Errors should never pass silently.」を「エラーを黙って渡してはならない。」と訳しています。
エラーを渡すというようなことが実際にPythonであるのでしょうか? エラーを黙って見過ごしてはならない。
みたいな意味かと思ったのですが。 >>336
pass silently を「黙って渡す」と直訳するか、その行為を日本語の表現で
「見逃す」、「見過ごす」と訳すかと違いと思う。
日本語的には見過ごすと訳した方が自然に感じます。 >>336の意味であってる
「黙って通過させてはならない」的な意味
「エラーを黙って渡してはならない」は完全な誤訳
Errors should never be passed silentlyや
You should never pass errors silentlyじゃないと
エラーを渡すという意味にはならない 例外の握りつぶしとかだろ。
例外をキャッチしたけど、何もせずに、そのまま処理を継続したとか
Jupyter Notebook(JN)は、Python, Julia, Ruby などで使うIDE だろ。
VSCode みたいなもの
Bash, PowerShell などのシェル経由でも、
シングル/ダブルクォーテーションで、エスケープのタイミングが違ってくる。
Linux/Windows で書き方が異なる
シェルに渡すときに、既にエスケープされているか、されていないのか
エスケープ文字を、エディタで設定できるかも知れない >>335-336
個人的には>>339の解釈に1票。
try:
なんとかかんとか
except:
pass
みたいなマジクソ行為は
自分以外の人物が
たとえ0.1×10^23%でもかかわる可能性があるソースコードでは
絶対やっちゃだめだなwww >>340
どんなに小さな確率でも、と言いたいのかもしれないけど巨大な下図になってるぞw >>340
passがダメだとして何なら良いわけ? >>341
可能だが、pyinstallerのような方法で事実上の静的リンクを行った場合には
LGPLに従ってpygameが含まれている実行ファイル全体の再配布を許可せねばならない
つまり俺が買ったらそれを10円で再販してやる >>344
passを書くくらいならエラー処理せずに普通にエラー発生させた方がマシ >>341
補足
あと、リンクの方法に関わらず、そのソフトウェアを買った俺はそれをリバースエンジニアリングし、改造できる
俺のスキルをもってすればライセンス認証の回避は容易であり、お前はそれを禁止できない すまん、俺が金払って買ったなら認証を回避する意味はなかったな
問題は、ダウンロードは無料だが継続して利用するにはライセンス認証が必要になるというような典型的な配布パターンだ
この場合、俺は金を払わずに改造してライセンス認証を突破し、タダでそれを使う
そしてその方法をWebで公開する
お前はそれを禁止できない
なぜならLGPLライブラリを使用しているからだ >>346
つまりtry ~ except は不要と言ってるのか?
excaptの中に何を書くのが良いのか訊いているんだが。 >>342
ほんとだ 重要なマイナスが抜けてた!
>>340訂正する
×たとえ0.1×10^23%でもかかわる可能性があるソースコードでは
〇たとえ全世界の砂粒から、ハズレの1粒をひきあてたくらいの確率でも、かかわる可能性があるソースコードでは
>>349
「except:」みたいな雑なくくりをせず
おきるエラーの種類ひとつひとつについて
「except Errorhogehoge:」みたいなかんじで一個ずつちゃんと分岐させろ >>350
例外の種類ごとに異なる対処が必要なら分岐するがそうでないならその限りではない。
何か対処すべきことがあればそれを記述するが他にすることがなければpassでよい。
おまえさんは何か変な教条主義に囚われているんではないかね? >>350
悪いけど、最初から個別の例外について虱潰しに対応しようとするのは典型的なアンチパターンだよ
あまりにも手間がかかりすぎるし、変更に対して非常に弱いコードになる。
例外処理で死守すべき大原則は、アプリを落とさないこと、綺麗に回復すること、の2点だけだ。
その上で、必要に応じて丁寧な個別対応をしてもよい。
まずアプリを落とさないことだが、WebのリクエストハンドラであったりUIのイベントハンドラであったりバッチ処理の一番大本のループであったり、
「ここまで戻れば確実に回復できる」という箇所で全ての例外をキャッチし、リトライやエラーメッセージの表示等を行って回復する。
次に綺麗に回復すること、これは、適切にwithやfinally等を使用して例外発生時に適切な後片付けを行うことだ。
この2点が守れていれば例外処理は完璧だが、場合によっては個別対応することで早期に回復できたり、より適切なエラーメッセージをユーザーに表示できたりするケースがある。
しかしそれはあくまでオプションにすぎない。 >>351-352
え、お前らマジでこんなコード書いてるの!?
いろいろビックリするわ
try:
____do_something()
except:
____pass Ruby on Rails で、RSpec で、TDD から学びなおせw >>353
単に無視することが適切な回復なのであればそれで正しいよ
大抵はそうではないが、だからといって例外が発生した瞬間に直上でキャッチしたところで対処のしようがないケースがほとんど
ほとんどの例外は単純にキャッチせずにスルーし、上の方で纏めてキャッチしてエラーを表示したりすることになる >>348
ありがとうございます。ようするにpygameを使った作品は著作権を放棄しろってことなんですね。。。 >>355
範囲の狭い特定のエラーを意図して無視するのが適切な場合はあっても
あらゆるエラーをすべて無視するのが適切な場合はまずないやろ >>356
細かいツッコミすると、国内で放棄できるのは著作請求権だけ 著作権を放棄しているわけではない
自分の著作権の下で自らの著作物をLGPLの派生物として配布しているんだ
自分の著作物をどんなライセンスで配布しようが本来は勝手だが、利用しているライブラリが他人の著作物である以上、
そのライブラリの著作権を同梱した派生物を配布するためにはそのライブラリの著作権者が定めるライセンスに従わねばならない
そして、そのライセンスが派生物のライセンスを制約するようなものであった場合は結果的に自分の著作物にライセンスが感染する形になるわけだ >>360
そういうことなんですね!
勉強になりました。 俺が不勉強なだけかもしれないが
try:〜except:passでエラーを握りつぶしておいて
直上でエラー処理するってどういうことだ?
普通にエラーをそのままにしといたら呼び出し元にエラーが届いて
そこで処理したらいいだけの話だろ 一番下の階層でpassして握り潰す必要はない >>362
> try:〜except:passでエラーを握りつぶしておいて
誰がそんなことを言ってるんだ?
そう思い込んでいるのはあなただけでは 異常系をわざわざ戻り値で表現し直すんじゃないの?w
そんなことするより、リスローの方が絶対にいいわな。 pyautoguiっての普通に使ってる時は問題ないんだけど
リモートデスクトップで1度開いちゃうと画面閉じた時に
pyautoguiの中のsetcursorposってのでエラー出るんだけどどうにかならない? 大企業で無料で商用利用できるIDEでオススメありませんか?
個人ではVScode使ってますがエンタープライズ企業は無償利用無理みたいです >>367
そんな都合のいいものはない
大企業税(有名税てきな)だとおもって
あきらメロン >>367
VSCodeはエンタープライズでも無償だぞ >>357
堅牢なソフトウェアを構築する方法論として、何かエラーがあったらその処理単位ごと
無かったことにするというものがある。DBのトランザクションとかerlangのlet it crashとかな。
そういう方法論ではエラーの種類など見ない。
そこでは逆に、知ってるエラーだけcatchして他はスルーするという手法こそ否定される。
なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは
「もっと知らない」はずだからな。 >>372
ものすっごい中途半端な知識で知ったかしようとする前に基礎を抑えようね
DBのトランザクション処理を実行しました
なんかエラー発生しました
エラーの種類など見ないっ(キリッ)
軽量プロセスにsend messageしました
なんかプロセス落ちました
リスタートあるのみ(キリッ)
>なぜなら、下層のルーチンが「知らない」とスルーしたエラーなら上層のルーチンは
>「もっと知らない」はずだからな。
何を知らないのか考えようね >>372のやり方だと「止まらない」プログラムは作ることはできても
「使える」プログラムは作れそうにないなw pyautoguiのsetcursorposエラーはtry:〜except:passで無事解決しました! >>349
漏れもpassは禁止で正しく処理するべきだと考えるが
どうしてもスルーしてプログラムを続行したい場合は
1.フラグを立ててプログラム終了時に報告
2.loggerでsyslogに出力
3.上の1と2の合わせ技 >>355
上の方でまとめてキャッチしたいのに
except で pass したらキャッチされないぞ
except でその場だけキャッチせず上にスルーしたいならあらためて raise しろ pyautoguiでとりあえずブラウザ内の手作業のの自動化できたから、seleniumにも手を出してみたけどこっちは難しいね
HTMLが分かってないとキツイな(´・ω・`) python勉強しようと思うんだけどエディタはjupyterがデフォなの?
visual studioになれてるからvs使いたいんだけどまずいのかな。 >>383
PCのスペックが足りてて問題なく動けば問題ないぞ
スペック足りない俺様PCでは
秀丸エディタかsakuraエディタが精いっぱいなんだぜ >>383
VSCodeにしとけ
MSはPythonの開発環境としては今VSCodeを推していて、本家VSの方のPythonサポートはもう将来性がない >>380
>漏れもpassは禁止で正しく処理するべきだと考えるが
passは正しい処理ではないと言っているようだが、そう断言できる根拠はないだろ。
ログを吐けばオーケーというのも意味わからん。プログラムの正しさとは何の関係もないだろうに。 保守性が落ちるコードは正しいコードとはいえないだろ
例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき
自分ひとりで全部完結するプログラミングなら
他人から見てエラーを脳死で握りつぶしているのか
面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな
ぶっちゃけ「正しいコード」が書きたいならpythonじゃなく証明型プログラミング使えばいいだけだしな 正しい処理どうこうの前に
passは文字通り何もしてないんだから処理したとは言わないだろ >>389
> 例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
> 自分で例外処理が書けないなら例外をそのまま発生させて別の誰かか未来の自分が対処できるようにすべき
>
> 自分ひとりで全部完結するプログラミングなら
> 他人から見てエラーを脳死で握りつぶしているのか
> 面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけど
↑イイ!!(・∀・)こと書いてある!!! >>389
>例外処理でpassするくらいならそもそも例外が出ないようにすべきだし
なんか言っていることが矛盾してるね。自分ひとりで全部のコードを書いているわけじゃなけりゃ
下層のルーチンから例外が出ないようにするなんてことが常にできるわけがないだろう。
自分で保証できるのは上流の呼び出し元にどういう例外を渡すか(渡さないか)だけ。
>他人から見てエラーを脳死で握りつぶしているのか
>面倒臭くてpassしてるのか分からない変なコード書くのもありかもしれないけどな
意図がわかりやすいコードを書くことが推奨されるのはもちろんだが、逆にコードだけからは
意図を判断しづらいケースはいくらでもあるわけなんでそこを非難しようとしても不毛なだけだと
思うがな。
例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして
いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして
いたのか、コードの字面だけからはやっぱり判断できんだろう。
そもそも、面倒くさくて握りつぶすという発想がよくわからんな。
面倒くさいなら何もしないでスルーするんじゃないの?
#Javaの話で関数の仕様を変えられないから、とかならわからんでもないが。 >>392
下層で例外を上に渡すのか渡さないのか決めるなら
例外処理をどうするのかを上層で判断するのか下層で判断するのか
結局どちらでもない中途半端になるだけだな
上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
例外が出る可能性を消せないのであれば例外を隠蔽しない
例外を隠蔽するくらいなら例外が出る可能性を完全に消す
単純な話だ
>例えば逆のケースで例外をcatchしていないコードがあった時、それが意図的にスルーして
>いるのか面倒くさいからかcatchしなかったのかはたまた例外が発生する可能性を見過ごして
>いたのか、コードの字面だけからはやっぱり判断できんだろう。
このうちのどれかなんて判断しなくていい 全部対処の必要があるからな
君は「問題なく動くコード」を作ることを最優先にしているようだがそのために「問題を起きていないことにする」んじゃあ意味がない
起きてない問題を解決するのは起きている問題を解決することの数倍難しいんだ
エラーが発生すること自体は開発の過程においては別に悪いことじゃない
エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪 >上層に例外処理を任せるなら 例外を握りつぶしにしても上層で握りつぶす
その例外を発生させた処理に近い方が適切な判断ができるに決まってるだろう。
どういうメリットがあってその処理を上層に任せるなんて言ってるのかねえ。
>エラーを見かけ上発生させなくなることで問題を不可視にするほうが害悪
こうなるともう宗教だな。
仮に内部でエラーが起きたとしても、それが外に対して悪影響を及ぼさないんだったら
無かったことにして全然問題ないと思うが。 外に悪影響を及ぼさないことを保証できる実力があるなら文句ないわ
俺にはとても出来ない >>394が作ったプログラムが上手く動かなかったときは
下層上層問わずすべてのコードを精査して
「外部に対した悪影響を及ぼさないからエラーを握りつぶしてOK」と「思いこんでいるかもしれない部分」
も含めてチェックしないといけないハメになるな
地獄だぜ わださんへの反応が皆無で笑ったwさすが初心者スレ。 numpyとかいうのなしで、配列を回転させることはできますか?
テトリスのブロックの回転です
var base = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]
]
var block = [
[0,0,0,0],
[1,1,0,0],
[0,1,1,0],
[0,0,0,0]
]
#
func _ready():
for y in block.size():
for x in block[y].size():
block[y][x] =
print(block) [[block[3-l][i] for l in range(4)] for i in range(4)] >>399
>>401に補足すっと
各ブロックの向き4種類をあらかじめ準備しといて、
まわすボタン(AボタンとBボタンで回る向き違うよな)1回押されるごとに、
(左右どっちか)隣の状態へ行くようにしとけ
4種類目から次へいく指令がきたときは、1種類目を表示するようにも、しとけ。
いちいち回す計算してたら ちぬる 配列回すのなんて計算してインデックスを読み替えるだけだろ
配列を書き換える必要などないし計算コストなんてほぼゼロだし極めて単純な算数
>>402はよほど頭悪いんだろうな > 極めて単純な算数
長いヤツの180°回転がずれたら叫ぶぞw >>404
んだべや
配列の回転て
手計算だと結構しくじるヤツがいるし
理屈はわかってても、プログラムするとなるとバグ仕込んじゃうヤツけっこういるぞw
>>403は現場を知らない テトリスブロック回してずれたら(・x・)コロヌ!!!だけど、
ぷよぷよの場合は
「滝登り」できないと逆に困るけどなw 数億パターンとかあるわけじゃないでしょ?
じゃあテーブルルックアップの方が早いに決まってる visual studioでpythonをインタプリタ形式で動かすのってどこで設定すればいいんでしょう? >>408
どのような方法で実行しようがPythonはインタプリタ形式で動きます テトリス野郎です
ありがとうございます
理解できないんでもう少し調べてrから着ます(´・ω・`) class myClass():
def __init__(self, message):
self.value = message
def name(self):
self.name1 = self.value
print(self.name1)
m = myClass("hello!")
print(m.name()) >>411なんですが、実行するとhello!とNoneが表示されます
Noneは、どこから湧いてきていますか(´・ω・`)? class myClass():
def __init__(self, message):
self.value = message
def name(self):
self.name1 = self.value
print(self.name1)
m = myClass("hello!")
print(m.name())
インデント入れるとこんな感じです >>411-413
最終行が悪い
Noneがいらないなら
m.name()
でおk ところで
>>413な内容をやらせるのに
nameってつけるネーミングセンスは
ないわー サンクス、直ったわ(´・ω・`)
NameError: name 'センス' is not defined >>409
ああ、一行入力したらすぐに結果が返ってくるようにしたいのです。 >>416
なおってなにより。
2年後の自分が上からよんでって、
過去の自分に対して殺意が湧かない程度の名前をつけるようにしる。
すげーだいじだぞ。 Tensorflowでディープラーニングの勉強するのに必要なPCのスペックを教えてください。
GPUはやはりいりますか? >>419
NVIDIAのGPUがいいとか、その中でもGTX750、850、950、1050以上でないと無理だとか
メモリもできれば8GBできれば16GBがいいとか
色々あったか
4スレッドのCPUだとそれがボトルネックになったなんて話もあったかな
だがスピードを気にしないならGPUなしでも出来るだろ!って人もいる
大規模な問題は出来なくなるが >>420-421
ありがとうございます。
小さな問題さえ試せればOKだと考えています。
Tensorflowやいろいろなツールを使えるようになればOKだと考えています。 >>422
いやだからさ、
テンフロつかって 何がしたいかによるんだってばよ・・・
ある1人の文豪の文章全部を教師にして
文豪もどきっぽいあやしいモノをつくったったwwwくらいなら
GPUなし、一昔前の古しいPCでも3週間かけっぱでできるんだYO
ところが
文書データといっても
Abstractがひっぱってこれる既存の理系英語論文全てをターゲットにして
なんかかんかしようとすると
メモリ2テラくらい使っていいスパコンがないと、無理。 結局スパコンのタイムシェアリングで50年前と同じじゃねえか はじめましてPython初心者です
a = input()
で入力を求めて、[1,2,3,4,5]
と入力をしても変数aが配列にならず文字になってしまいます。
誰が良い方法をお願いします c#アプリで計測したデータをpythonで自動的に統計処理してグラフ表示する。
って考えてるんですが、言語はpythonでokでしょうか?Rを使うのとどっちがいいか悩んでます。 想定してる統計は単回帰とコルモゴフスミノフなど簡単なものです。グラフは回帰直線表示させた後に平均値、最大値、最小値を赤でプロットしたい。 >>425
input()は文字列を返す関数なので、自分で変換する必要がある
https://docs.python.org/3/library/functions.html#input
In [1]: a = input()
1 2 3 4 5
In [2]: list(map(int, a.split(' ')))
Out[2]: [1, 2, 3, 4, 5] すみません。
macでanaconda3(python3.7)をインストールしたのですが
ターミナルでconda -versionで確認してもcommand not found
python -Vで確認しても2.7.10と表示されるのですが何故でしょうか
環境構築の質問で申し訳ないですがどなたか詳しい方いますか? >>428
ありがとうございます!
変換する必要があるんですね! >>426-427
どっちでもできるよ
その後どういう風に上達していきたいのか
それとももうその作業さえできればおkなのか
あとは自分がどっちの言語がより好きなのか
による >>429
Macにデフォで入ってるPythonのほうが優先で呼ばれている件
環境変数を弄らないとだめだとおもわれるが
いじるとそれはそれで困ったことになるかもしれない
py -V
は動くけ?
(Python3系は「py」で呼べるのだ) >>432
ありがとうございます
py -Vもcommand not foundとなってしまいました
私の今の状態はanaconda3、python3.7ともにインストールはされているもののパスが通っていないと言う認識で間違い無いでしょうか? >>433
パスが通ってない可能性に気づいたなら、まず自分なりにパスの確認までしてから次の質問をした方がいいぞ。(自分で考える&確かめる習慣をつけるために。) >>429
>macでanaconda3(python3.7)をインストール
>ターミナルでconda -versionで確認してもcommand not found
Mac使いさんにWin使いが出しゃばってしまうのは非常に失礼なのは承知だが
Winだと
https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679
Anacondaでのインストール後に
Windosのコマンドプロンプトやパワーシェルにpython -vで
何か表示されるのは、むしろ良くない事だとされている
で、Macだとどうなbセろう? >>435
conda -versionも動作しないってゆってるからなー
Macは最初からシステムにPython2.7系が入ってるから
なにかがうまくいってなくても
Python2.7系がはいってますよー ってならないとおかしい。 >>433
434氏がすごくイイ!!(・∀・)ことゆってくれてる anaconda Mac ターミナル
って検索したらやっぱり書いてる人がいたw
この辺はどこも同じか
でもWinはパスは無理に通すな!って書いてあるけど、
Macだと通しても異常が起こりにくいって事だろうな >>435
複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ
その記事書いた人も例に漏れずバリバリのエンジニアのようだ(その割にはWindowsを使っているというのが滑稽ではあるが)
データ分析やちょっとした手元の処理の自動化など、アドホックにPythonを使いたいならPythonの神経質なバージョン管理は要らん >>439
>複数のPython環境を使い分ける必要があるのは、受託や自社サービスなどコード書くこと自体が仕事の人だけだ
自分の場合
1.
何かtensorflowのインストールって物凄く難しいらしい!これは別環境作っておかないとヤバい!!!
→Anaconda内にPython3.6の別環境作る。何か今年前半くらいまで3.7では無理だったらしいし
(今では可能になった)
2.
OpenCVのインストールも結構難しいらしいぞ!これも別環境作ってそっちでテストしてから統合だ!
→(1)OpenCVインストール用環境作ってインストール法確立(wheel型の選び方とインストールなど)
(2)先に作っておいたtensorflow用環境をクローンした新環境を作り、そこにOpenCVインストール
(3)全てが上手く行ったことを確認してから、BASEと、[tensorflowとOpenCV両方入った環境]だけ残して
半端なのを捨てる
3. XGBoost?こんなもんは余裕でインストールできんだろ?Baseに入れる
→yaml型がぐっちゃぐちゃになって全部使えなくなる
→Anaconda丸ごと入れ直したorz
ここでXGBoost専用環境作っておけば良かったなあ
4. 1つのWindows入りPCは、ユーザー名の姓名の間に半角スペースが入っていたため
Anacondaインストール後に別環境を作れないと判明したorz
HDDにパーティションつけてそちらにUbuntu入れて出直すべきか >>440
それならGoogle Colabでよくね
もしモデルを実運用するにしてもどうせクラウド上でやるだろうし >>431
いずれ、AIとかwebにも手を出してみたいからpythonなんでしょうね。 class myClass():
def print(self ):
print('test')
def __enter__(self ):
return self
def __exit__(self, ex_type, ex_value, trace):
pass
with myClass() as m:
m.print()
m.print() #←★まだ生きてる
上の場合、withを抜けたらdel相当が行われインスタンスmは使えないと思ってたのですが使えるようです。
classのインスタンス作成でwithを使うのは意味がなかったりますか(´・ω・`)? pythonに限らない社会通念だと「コンストラクタでインスタンス作成しましょう」というのが共通認識
withは出来るがしてはいけないこと
暗黙のうちの諒解
意味が無いではなく、作法・マナー違反 それよりもdel相当が行われっていう認識がヤバい
誰に吹き込まれたんだよそれ LUV MACHINES AG400XN-M2SH2-KK 価格.com限定
Ryzen 7/16GBメモリ/256GB NVMe SSD+2TB HDD/GTX1650搭載モデル
↑現在価格コムのランキングが6位のデスクトップパソコンです。
自分にとってはこれでも高いパソコンですが、このパソコンでディープラーニングを学習できますか? GeForce GTX 1650
というGPUが搭載されているとのことです。 OSはLinuxではなくWindows 10でもOKですか?ディープラーニング専用機にはしたくないです。 電源が500W以上のものばかりですが、電気代もかかるんですね。 >>443
withにスコープはないからmはその関数内で可視というだけ。
後始末したいものがあれば__exit__でやればいい。mそのものは気にしない。 A列の値でカンマで区切られたB列に入っている文字列の位置を検索したいのですが、
A列 え
B列 あ, い, う, え, お
欲しい結果 → 3
カンマでsplitした後にA列の値の参照ができなくて、頭がぐるぐるしてきました >>451
ソースを>>1に挙がってるソース用うpろだのどこかにうp C#のusingとかと比べると(´・ω・`)?になるのはよく分かる 文字列をイコールで比べてるなら「カンマでsplitした後」は
『う』じゃなくて『 う』だな
ようするに先頭に空白でもあるんじゃねえの すみません
>>433です
いろいろググって試しましたがpathが追加されず・・・
macの環境に詳しい方いませんか? >>455
「MacでPATHを通す」でぐぐれカス
あと
ルートレスとかが強烈だとそれも解かないとだめかもね >>419-423
>>446-447
マウスコンピューター、
期間限定 2019/11/20(水)11時 〜 2019/12/4 (水)11時
ttps://www.mouse-jp.co.jp/special/sale/
m-Book X400H
ノートPC で、87,800円
14型 フルHDノングレア (LEDバックライト)で良ければ、
Core i7-8565U, 8GB メモリ, 256GB SSD
m-Book K700XN-M2SH5
ノートPC で、133,800円
15.6型 フルHDノングレア (LEDバックライト)
Core i7-9750H, 32GB メモリ, 512GB SSD NVMe対応,
GeForceR MX250, 1TB HDD 全く関係無いが、Core i5の1万番台のu型って
4コア8スレだったのか
一部で、深層学習でGPUを使うならコア性能よりスレッド数重視だぞってあったが
本当なのかなあ
MX250だと一応はCUDAコアを使えるね
今はCPUオンボードで深層学習での性能が上がって来てるけど、それよりは数倍は良い >>446
も、マウスコンピューターのタワー、96,800円。
価格.com限定モデルか
メモリも、32/64GB まで拡張した方がよい。
SSD も、512GB へ。
保証期間も3年以上は、ほしい
OS も一応、5,800円で、Windows Pro版にする こっちもMacで困ってるな〜
Finder使いづらくて共有かけてWindowsエクスプローラー+Windows側のVSCodeで作業してるんだけど
Windows側(3.7.3)では問題なく動く、Mac側(3.7.3)もターミナルは問題なく動く、XCode(3.7.1)からだとPythonのバージョンが違う・・・ pythonはexcelと共にwin側についたからね
appleとしては排除したいところ
出来れば自社開発の軽量スクリプト言語を広めたいハズだが
winとmac両方で動くインタプリタをappleが作る……なんてのはやりたくないはずだ
なんつったって軽量スクリプト言語でトップシェアはpythonじゃなくexcel付属のvbaだからな Docker Hub で、好きなバージョンを探せば?
それか、仮想環境とか FinderでPython関連のファイルなんか触ったことないわ
普通VSCode上でやるかターミナルじゃね プロゲートのpython最後までやってじゃんけんするゲームを作った
forなりifなり覚えたけどここ以降どうすればいいのかよくわからん…
今後の目標としては自分なりのプログラム作りたいけども皆さんはどのように進めていった? >>461
マイクロソフト「マイクロソフトが Excel に搭載するのは JavaScript であって、Python を使いたいのであれば PyXLL か xlwings を使え」
ExcelにPythonが搭載?その後 - xlwings を使おう
https://qiita.com/yniji/items/b38bc312e860027108ac
アップル「AppleScript使ってくれる人増えないからMacの自働化用の言語にJavaScript (JavaScript for Automation : JXA) も追加したわ」 テトリミノの回転をやってるのですが、前の配列にアクセスする方法はありますか?
array = [1,2,3,4]
for i in array.size():
■array[3]
とすると4が取り出されますが、その前の3にアクセスする方法はありますか?
array[3]-1
みたいな感じですかね
まだよく理解できんてないんで(´・ω・`) よく見るといろいろおかしいな。
配列の要素にダイレクトにアクセスするならforは要らんし、
要素数を求めるならlen(array)
for i in array:
print(i) 前の配列にアクセスに書き換えることで、回転させるわけすよね(´・ω・`) >>443
インタプリタというかIDE環境でやってると
立ち上げて実行したときのmは全部残るから
前にテストしてたmが残ってるだけじゃないのか >>467
temporary=3
mae_no_yatsu=array[temporary-1]
的な
>>470
逆向きに回す場合は
次の配列にアクセス、かつ「次」が配列の要素数をこえてたら、振り出しに戻す(0番目を呼ぶ)んだぞ Win環境で2枚の画像ファイルを必ず一定(Min.1)の
出力フレーム周期で、交互にフルスクリーン表示する
手段は無いでしょうか。
今はOpnnCvのフルスクリーン設定でループさせて、
cv2.waitKey(1)
sleep(0.011)
といった記述ですが、原理的にずれるを避けたいです。
PsychoPyはFHDクラスのフルスクリーンに対応できず、
waitForVBlankやFrameSwap等のキーワードは把握したのですが、
使い方がわかりませんでした。 なんか上の方でmacOSでのanaconda導入の話題あったから便乗して質問してみます
・やったこと
https://weblabo.oscasierra.net/python-anaconda-install-macos/
↑を参考に公式からインストール
ターミナルで下記実行するも
python3 --version
conda --version ともにcommand not foundになる
python --versionではおそらくデフォで入ってる2.7.10が表示される
brew install python3を実行後、python3 --versionすると3.7.0と表示
condaコマンド?は/Users/user_name/opt/anaconda3/binにあるらしい
かつ、printenv PATHしてみると上記PATHが表示されないのでPATHが通っていないと推察
https://qiita.com/nbkn/items/01a11392921119fa0153
↑を参考に上記PATHを記述後、printenv PATHしてみたが変わらず
・聞きたいこと
1.condaコマンドが使えないのはPATHが通っていないという推測は合っているか
2.1が正しい場合、他にどのように通す方法があるか
現状(anaconda3インストール時点)のbash_plofileに記載されているのは↓の質問者の試したことにあるのと同じ内容
https://teratail.com/questions/157057
3.そもそもanacondaインストール手順として自分がやったことは合っているのか
稚拙な質問かつ分かりにくい文章で申し訳ありませんがどなたかご教示お願いします >>475
3が間違ってる可能性が高い
つまり1と2は議論の無駄 >>475
$ echo $SHELL
でシェルがbashかどうか確認
$ source ~/.bash_profile
で.bash_profileの中身(conda initの記述)を実行
$ conda >>472
定まってないですね
なので先人が基礎的なこと覚えたあとになにをやってるのか興味があります >>479
おれは文字列処理@Python2系に挑んで地獄を見た
機械学習ごっこも、日本語をPython2系でやって大変だった。
そしてそのせいで仕事も文字列処理系(ただし英文だった)をやらされていた。 >>477
ありがとうございます
具体的に何が足りないor間違っていますか?
わかる範囲で指摘いただければ助かります
>>478
ありがとうございます
SHELLはbashです、昨日確認しました
残り2つはマシンが手元にないので後ほど確認します 素人がAnaconda使うなと言っとるに
ほんと害悪 まあ最近はどの本やらサイトもpython始めるならanaconda導入から始めようみたいなの多いしそれを見たんだろう WindowsのAnacondaは悪くない
Macが糞なだけ ほんとMac使いにくいなぁ、Windows版のXCodeないのかな コンピューターサイエンティストはなぜMacを使っている人が多いのでしょうか? UNIXだから
Python使うにしても手元でアドホックな自慰をするだけならWindowsで問題ないけど、
でき上がったものをクラウドで実運用に乗せようと思うと途端にWindowsは嫌になる ディープラーニングやらブロックチェーンやらでGPUブン回す人たちはMacなんか使わんでしょう Macでどやりたいひとはwebクリエイターωの意識他界系の人らだから GPUガン積みの自作PCだとWinになる
自作の情報が多いのはWin dockerやクラウドなどなどリモート開発が主体だから、最早WinとかMacとか関係ない。
GPUにしても、最近はGPUサーバを作ることを考慮して、Linux対応も重視されてきてる。 オンラインのコンピューターサイエンス系の動画を見ると大抵Macのノートブックを使っているので、
不自然に感じました。
一般人はWindowsの人ばかりですよね? Windows一筋だな、MacBookAir持ってるけどスタバ用 MBP2017今も使ってるけどキーボード酷すぎで一気にアンチになったわ。
と、言ってもネットで恨み辛み書き込んでるだけでようやっと欠陥キーボードやめたらしい最新モデルの13インチ版が出たらまたMacにしてしまうかもしれん。 >>500
ちなみになぜMacが好きなんですか?
素人目に見ると、Linux, Mac, Windowsどれも大差ないように思います。 >>498
研究室だと
初期設定を人数分するのがうっとうしいとか
元居た畑のソフトがその昔Mac用しかなかったとか
予算がありあまってるからとか
昔は入ってたヒラギノが大好きだからとか
色んな理由でMacイ諸がいる >>501
Unix環境でMS Officeがまともに動くのがmacOSだったから
今ならWindowsでもWSLあるから別にどっちでもいい
Docker使うときだけはWindows 10 proになるが、これが恐ろしく使いにくいのでmacを使っている >>483
単に使ってるヤツがダメなだけだぞ
超簡単なインストールすら出来ない奴が、本家のpythonでトラブル起こさない保証はゼロだ >>486
いや、俺の感覚ではwindowsのanacondaの方が難しい
特にvscodeでデバッグする場合のクソさは辟易する
Powershell周りがまだまだ全然安定していない
macはそのあたりノートラブルだから非常に素直だ
macでanaconda disってるヤツは本当に使った事があるのか疑問 >>475
一応答えておくか
anacondaのインストールに失敗している可能性が高いので、まずは全部消す
anacondaはサイズがデカいので、googleでminicondaを検索
macOS 64bits版をダウンロードして、ターミナルから
bash ダウンロードしたファイル名
すると
/Users/ユーザ名/miniconda3
にインストールされる
.bash_profileに設定が追加されるかどうかはインストール最後の質問にどう答えたかで変わる 何を根拠にインストールが失敗してると言ってるのか??
インストール先から直接実行してみればPATHが原因かどうかはわかるやろ?
$ /opt/anaconda3/bin/conda >>507
全部デフォルトでインストールした場合、condaコマンドが見つからないと言う状況は起こらないので失敗していると判断
.bash_profileに既に何らかのバグがあってanacondaのインストーラが追加したスクリプトに到達しないとかはあり得る 全部消すって言ってもcondaコマンドが使えないならアンイストールすらできないんじゃね? >>509
Anacondaはディレクトリをrm等で消して、
.bash_profileに追加されたスクリプトを消すだけでOK
venvとか使ってanacondaをインストールするのはオススメしない
あとは/opt/anacondaや/usr/local/anacondaに共用としてインストールしたいとか、そんな欲求は捨てて全部デフォルトに従うのが吉 >>510
へーそうなのか
消すことはないだろうけど勉強になるわサンガツ
デフォルトの件は>>475のインストール手順書いたサイト見ると次へをポチポチしてるだけだからデフォルトっぽいけど何か違うんかね? 色々な可能性はあるけども
1. .bash_profileにバグがある
2. デフォルトshellがbashでない
3. インストール前からディレクトリの不整合を起こしていた
と言う感じかなぁ
minicondaではなくAnacondaを入れたのなら、
/Application
の下のAnaconda-Navigatorが正常に動くかどうかでも確認できそう よく見ると記事が若干古いなぁ
昔のデフォルトは/anaconda3で、その設定が残ってている可能性はありそう
今のデフォルトは/opt/anaconda3 >>498
おまいは印象操作に簡単に引っかかるタイプやろ
ジャパンライフに騙されるのもこんな人らだろ そして今日からAnacondaのPythonが3.8になりやがった
そして3.7に落としてから、tensorflow-gpuをインストールして、無事動作確認
tensorflow-gpuも前みたいに事前に色々入れなくても動くんだな
Visual StudioなしでcudatoolkitもcuDNNもcondaで持ってきてくれた
なおtensorflow-gpuは1.15
cudatoolkitは10.0を持ってきてくれた(RTXなので良かった)
ちょっと前にGTXの後期のを入れたときはcudaも9を自分で選んだ Mac with Anacondaって変になると、アンインストールも出来ん VSも変になるとアンインストールも再インストールも出来ん https://codeday.me/jp/qa/20190216/261316.html
この質問者と同じことがしたいんですが、回答が参考にならないです。
質問:.pyへの引数として*.csvのようなワイルドカード(のファイル名)を使いたい、
回答:.py内に'*.csv'とシングルクォートで囲って書け
そういうことではなく(.pyへの直書きではなく)
.pyを実行する際の引数にワイルドカードを使いたいんですが、可能でしょうか? リンク先の回答者が的外れなように書いてるけど、あなたが理解していないだけ。
ちゃんとglobモジュールを使うことで…と書いてある。
python test.py '*.csv'
import glob,sys
filelist = glob.glob(sys.argv[1])
print (filelist) ワイルドカードの展開ってshellがするんじゃなかったか import hoge
した時にimporterrorになったら
自動でpip installしたいとき
try:
import hoge
except:
subprocess.call('pip install hoge')
import hoge
こんな感じのを、関数化するにはどうすればよいですか
importをimportlib使って引数にストリングで渡すと、hogeが未宣言になります やるならSetuptoolsとかでやるべき部分だと思う
せいぜい実行したいpipコマンド出力するぐらいでいいでしょ >>522
hoge = importlib.import_module(“hoge”)
hoge.hage() >>519-520
Ruby の1-liner なら、これでカレントディレクトリにある、
すべてのCSV ファイル名が表示される
ruby -e "puts Dir.glob( '*.csv' )"
'*.csv' を、コマンドライン引数として渡したいのなら、ARGV[ 0 ] に入ってくる。
ruby -e "puts Dir.glob( ARGV[ 0 ] )" '*.csv'
例えば、
ruby -e "puts ARGV[ 0 ]" 'abc'
#=> abc
Ruby の場合は、
「ruby オプション script.rb 引数」で、
スクリプトファイル名は、ARGV[ 0 ]じゃなくて、$0 に入ってくるので、
引数がARGV[ 0 ]となる
漏れは、Python は知らないので、>>520
によると、引数がARGV[ 1 ]に入ってくるのかな?
>>521
* のままなら、シェルが展開する。
ls [b-d]* # bcd で始まるファイル名
*をエスケープするには、'*' "*" \* の3つ。
expr 2 '*' 3 #=> 6 ネタじゃないうえにPython関係ない質問なんだけど
Rubyってどこで使われてるの?めったにみないよね、Windowsには無いし >>528
ネタじゃないならお前はスレタイ読めないゴミw
スレにもいらない。出ていけ。 >>528
Webサービス
有名なのはクックパッドとかGithubとか
どちらも最近はGoへの置き換えが進んでるらしいがw HDD消さずに業者に手渡したから
証明書貰ってるから大丈夫だよね? >>528
件のRubyバカが懇切丁寧に(いい加減な話も含めて)教えてくれるだろうから、手を取り合ってどこか他所に行って続けてくれ >>524
関数化はどうすればいいですか?
my_import("hoge")
で
import hoge
と同等の機能を実現できる関数化したいです。
やっぱ無理ですか? setattr で local とか global に追加汁 >>534
え〜
def my_import(module):
____return importlib.import_module(module)
hage = my_import(“hoge”)で
import hoge as hage とだいたい同じ def my_import(module):
setattr(globals(), module, importlib.import_module(module)) >>541
ありがとうございます。配列の事を調べると、すぐにNumpyというライブラリーの話題になってしまうので
ひょっとして標準で存在しないのだろうかと悩んでました
リストのことを調べてみます []←これとはまた別なの?
あれ配列って長が固定なもんを指すんだっけ?
()ともまた違うんけ?
それよりnunpyの話詳しくしてほしいなって…!
なんか便利なライブラリーなんしょ? 便利というか数値配列扱って計算とかするなら実質必須 今こそ血涙の文字で告白しよう!!
僕たちが純粋な輝きを失って大人になってしまったらお座なりとおべんちゃらと、陰口と
服従と妥協と打算と倦怠と保身の中で、ずるがしこく、チョロチョロと動き回りながらネズミの
一生を送るようになるんだ。
それから結婚して子供を作って、世の中でいちばん醜悪な母親という大人になるんだ。
ああ、時の流れとはなんと残酷なのだろう!!
生きることと老いることが同義語だという過酷な命題を直視しなければならないんだ。
老いはまさしく肉体と精神の双方の病気だったが、老い自体が不治の病だということは、
人間存在自体が不治の病だというに等しく、われわれの肉体そのものが病であり、
潜在的な死なんだ。
衰えることが病であれば、衰えることの根本原因である肉体こそ病だった。肉体の本質は
滅びに在り、肉体が時間の中に置かれていることは、衰亡の証明、滅びの証明に使われて
いることに他ならないんだ。
老いはすさまじい恐怖であり苦痛であり、そして真実である。
このままだと僕たちは腐敗して汚れて蝕まれたおぞましい大人になってしまうんだ。
大人たちは日々を生きのびようとする故なき執念、執着によって、地上に栄える
ありとあらゆる悪徳と汚穢とを一身に体現しているのだ。
テチには限られた貴重な時間を死にものぐるいで生きてもらって思う存分に輝いてもらいたい。
ああ、一分一分、一秒一秒、二度とかえらぬ時を、人はなんという稀薄な生の意識で
すりぬけるのだろう!!そうして血が失われるように時が失われていく。
そしてテチが二十歳になったら、その最後の輝きの絶頂の中でステージ上で美しく鮮烈に
死んで欲しい。
ああ、テチの光輝あふれる肉体と精神が劣化することも衰退することもない永遠に美しいまま
伝説となり歴史となるために無慈悲な時の流れを止めたい!!
その時、テチには誰かもわからない僕も自殺する。
大人になるテチなんか絶対に許さない。僕はテチと血まみれになって心中する。
テチを殺すことを許してください。テチをステージ上で銃殺して自殺する。
僕の血とテチの血が混ざり合って純化されるのだ。
これだけはわかって欲しい。僕が誰よりも平手友梨奈を永遠に愛していることを・・ 来てみりゃいきなし通報案件じゃねえか……
こりゃたまげたなぁ…… しかも文章めっちゃ上手いよね
その才能をなぜ文学とか別の方向性に活かせないのか… 本当に超初心者質問です。
pythonで
a=100
と
a = 100
では、どっちの書き方にするべきですか?
今までC#でVSが
;
を打つと自動的にきれいにスペース入れてくれてたので、
どう書くのが標準なのかわかりません。 >>551
これVSが自動で直してくれないんでしょうか?
自分でスペースとか入れていると、
いちいち表記法を意識しなければいけないのでしんどい。 >>550
pycodestyleやautopep8みたいなlinterを使うと
変な書き方してると注意してくれたり修正してれたりする >>553
VSをアンインストールしてVSCodeをインストールすれば自動修正も可能 >>555
C#使ってるやつのVS、アンインストールさせんなw追加でVSCode入れればいい。 >>552
そーか、インデントにはtabじゃなくてスペース4個が望ましかったのか.....
ずっとtab使ってたわ、まぁ他人に配布することないし今後もtabで行くと思うけど... >>558
俺もtab(表示は4スペース)派
人に渡すことはまずないしあっても変換すりゃいいだけだし >>560
ぱっと読んで多変量解析してなさそうな報告だったけど、本当にインデントの種類が収入の因子になってるのかね?
まぁ、俺は趣味だからtabで今後も行くし,spaceインデントを否定するつもりはないけど
(1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む
(2)スペースの打ち間違いによるエラーがわかりにくい、
4段階インデントの場合、スペース16個と17個(間違い)がぱっとみわかりづらい。
CとかならいざしらずPythonだとエラーになる。tabだとtab4個と5個では違いがはっきりしてる。
オートインデント使えねえクズは死ねとか言われそうだけど..... >>562
>(1)スペースだと4段階インデントに16回スペースを押さなければならない、tabだと4回で済む
エディタの機能でtabキーを4回押せばスペース16個になる
さすがにスペースキー連打してるやつはいないよ >>562
ちょっとちょっとw
丁寧におかしな分析してんじゃないですよ? 他言語ではタブ派だけどpythonだけはvscodeでスペース4に設定してるな
indent-rainbow入れとけばインデントミスはすぐわかるし >>557
vscodeなら直してくれるんだ・・・。
pythonsはやっぱりVSでなくてvscode使えってことなのか。 インデントの話やPEP8の話が出て来ると
必ずと言って良いほどオレの方が正しいって
主張始めるやつが出て来るのが面白いな
スペース 2 個派です pythonの場合、インデントが必ずしも2とか4の倍数じゃないところがめんどくさい。
パレンで囲って改行したときに、次の行頭にちまちまスペース入れなきゃならないし。
まぁ、しなくても動くけど。
タブ文字は便利だが、こうした場合スペースと混合されると紛らわしいな。 >>568
Pythonは一応バイブルあるから自分が正しいって主張する奴はあんまりいなくね?
大抵は俺と一緒で「自分しか関与しないから俺流でやるぜ」って奴かと 教義を守らないヤツは異端だから滅ぼしていい
ってのが西洋人の考え方だよ 他の言語(Goはタブ強制だから除く)だとスペース2個派だけど、Pythonは4だなあ
PEP以前にPythonでスペース2個は浅すぎて読めん
深いネストから戻るときに今何段目か分からん ネストよりフラットが良い by zen of python
貧乳派の教祖である。 https://ideone.com/Wg79gW
ループをy→xの順で回して、printはlist[x][y]とすると以下の結果になります
1324
これはなぜでしょうか
どういう仕組みでこうなるかわかりませぬ そもそもpythonじゃないのでネタ確定だが
あえてpythonで書くと
https://ideone.com/osA1LA >>576
varで始まってる時点でPythonじゃねぇ
チネ!!!(・∀・) >>580
ネタではないです
ただ、どういうロジックでこういう結果になるのかわからないです >>581
それを判断するのはオメーじゃねぇ
(・∀・)カエレ!!!
チネ!!!(・∀・) >>582
xとyの値を確認しながらデバッガーでステップ実行するかprintデバッグすればわかる >>581
もしかしてお前は自分が書いている言語が何なのかすら知らないのではないか?ロジックがどうこう言う手前の段階だろう。 Windowsの「アプリA」バージョン3が文字列を画面に表示してます
これを「アプリA」バージョン2に対してコピペしたいのですが
二つのアプリは同時に起動することができません
そこで、まずバージョン3を起動して、手に入れたい部分をコピーしてテンポラリー書類にコピーペースト.
入れ替わりでバージョン2を起動して
テンポラリーからコピペしたい部分をゲットして
バージョン2宛にペースト.
そんな工程を目論んでます
テンポラリーファイルには、変数名と文字列、数値が記録されることになると思います
このような手法に適した、ファイルの書き出し・読み込みと言えばどんなものがあるでしょうか?
自分なりにはpickleというものを見つけましたが、なんか難しそうな気がしました
アドバイス頂ければ嬉しいです クラスの勉強をするかdict型で書き出すかして
そのままpickleにかけろ
それより楽な方法は生データをテキストで保存することだが後々苦労するからやめとけ ありがとうございます
dictと、クラスの定義ですね
はて?
pickleって、ひょっとして持っていけるのは要素だけで
変数名とかリスト名とかは持っていけない? 可読性ならjsonよりyamlやtomlのほうが… 590の”可読性”はhuman-readableの意味で使ってんだろ msgpackはJSON比で大して速くも小さくもない
人間による読み書きが可能であり大抵の言語で標準で扱えるというJSONのメリットを捨てるのに見合ったリターンはない せいぜい50%程度を充分と思うかは貴方次第
私はそうは思いませんね msgpackが同じキーを何度も書いていないとでも? 可読性といえばxmlじゃないの
いやよく知りませんけど! 訳あってWordのdocument.xmlを読んだが非常に厳しい >実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
Python2.7.1 Windows 2000pro 開発環境はPython付属のIDLEです
Win32のクリップボードから取得した要素を、順番に辞書に渡しているのですが
「一番目、二番目」の順で渡したものが、「二番目、一番目」とひっくり返ったり
三つ渡すと「三番目、三番目、二番目」なんて順で保管されたりして、訳がわかりません
「辞書型オブジェクトには順序がありません」という話ではなくて
keyを使って取り出してみると整合してないのです
助言を頂ければありがたいです。 >>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ウィンドウが開くまで待機して、その後実行します >>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
>>> >>610
そのAPIは知らんけど、copy関数使われてなくない? >>610
Windowsのクリップボードを監視した感触では、
とある請求書ソフトウェアからは、正しい順番でコピーされている様子です
ペースト関数を、一回しか使わない場合は、正常動作します。
素人ながら、なんか、定義済の変数に新しい値が代入されるとき
前後でメモリの処理がまずくなっているのかなと思いました
グローバル変数とかローカル変数とか、そっちの問題なんだろうかと、それらの勉強も始めましたが
まだまださっぱりわかりません
助言だけでもいただければありがたいです >>611
そうですね。copy関数は使われてないですね
参考元では、copyとpasteがペアで表記されていたので
もしかして改善するときに必要になるかな?と思って、念のためにあげました
失礼しました >>613
copy関数使わないで、コピーはどうしてるの?
マウスクリックしかされてないみたいだけど。
想像だけど、copy関数使ってコピーしてそのままreturnしたら良いんじゃ無いの? >614
copy関数使わないで、コピーはどうしてるの?
「とある請求書ソフトウェア」は、画面上に「COPY」というボタンがありまして
それを一回クリックしてます
するとWindowsのクリップボードに、テキストが入ってきます >>608
3.6までの辞書は
「とにかく出てくる順番はテキトー 気分次第」になるぞ。
keyがうんたらなんたらとかいうレベルではなく。
いやorこまるなら3.7系にするか
標準で装備されてるcollectionsモジュールの「OrderedDict」(これは2.7系から使える)を使う >>616
後出しですみません
import time
time.sleep(0.3)
#0.3〜3までいくつか検討
結果
time.sleep(3)
AAAAA
近くにある命令が辞書に入ってくる
不思議な現象が起きております
環境が悪いんですかね >>610
A = (dic["key"])
print(A)
B = (dic["key2"])
print(B)
これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
puts "A の値は : #{ A }"
print結果が、単にタイミングの問題で、
後にprintされたものが、先に表示されているだけかも知れない >>617
いやいやいや
出てくる順番は適当で良いですけど
キーと一緒に代入した(つもり)要素が、別物になってたら困りますよね
それはそれでOrderedDict 調べてみます >>619
>これを、Ruby の式展開、JavaScript のテンプレート・リテラルみたいに、もっと分かりやすく書けないか?
すみません。今の私の技術では限界です
ソースにふりがなのついた参考書と、赤い表紙の本を手引きにしてるレベルです
>後にprintされたものが、先に表示されているだけかも知れない
探ってみます >>620
ループといってもいろいろあるので
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%97_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
↑このへんから辿って勉強しる >>618
sleepどこに書いたの?
MouseClickした後paste呼ぶ間に入れてみれ
マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期なんだよ >>625
横レスだけど
> マウスクリックで相手のソフト側がコピーするんだったら自動化してたとしても非同期
なるほどとってもなっとくっく dataの参照を取り出してるだけで
dataの中身を取り出してないから
printするときに逆になるんじゃね
知らんけど >>625
>sleepどこに書いたの?
>MouseClickした後paste呼ぶ間に入れてみれ
pasteの後に入れてました
1回目と2回目のコピペの間で、休ませれば正常動作するかな?と思いまして
そして、はー。これが正解でした
sleepの位置も大事なんですね
ありがとうございました
みなさんもありがとうございました AutoItからの移行組だと思ったけどあれじゃAutoItの時も動かないはずだが https://ideone.com/qx5CEY
このコードの1つ目だと、1列目の行にしかアクセスできてないです
しかし、2つ目のようにarray[x][y]とすると、2つめの行までアクセスできています
しかし、yループは1度しか回していません
xを先に書くとxがyループの取り出しに使われるのですか? 何を意図してるかにもよるが
縦(行)をyと考えてるなら
array[y][x] でアクセスするべき
君がやりたければ
array[x][y] でも構わないが
y は横(列)になるってだけ >>610
printデバッグとデバッガのステップ実行を使うといいよ
両方組み合わせればタイミングが原因かどうかはだいだい切り分けられる
今回の例ならpaste関数のreturnの前にprint(“paste data: ”, data)を入れて
dic[“key”] = paste()の直前か直後にブレイクポイントを設定してステップ実行する >>630
ループ以前に配列を理解していない。
2つ目のはy値はずっと0でx値は0,1と変化している。
print(array[0][0])、print(array[1][0])と実行していることになる。 >>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に特別な意味があるわけじゃない >>631
テトリスの作成で、配列の回転をしたかったんですよ
行は[1,2]を1行目、[3,4]を2行目と考えています さすがにOSアップデートしろよwww
そんな化石使ってる時点で話にならない 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軸にあてたい数字です。 >>638
(0 0.1 0.2 0.5 1 2 3) ←x軸の数字がこのようになってしまう。
この行スペースが表示できませんでしたが、メモリの0~0.5までが寄ってて、1~3までが間隔空きすぎている。等間隔ではないってことを言いたかったです。 >>638-639
fig = plt.figure()
ax = fig.add_subplot(111)
#↑ここまでは適宜自分がやってるように読み替えれ
#↓目盛りの指示を好きなように出せる呪文。y軸の設定はset_yticksだ
ax.set_xticks([0, 1, 2, 3, 4]) plt.plot(x, y)
plt.show()
で普通に等間隔のtickで表示される
plt.plot(x, y)
plt.xticks(x)
plt.show()
とかすれば等間隔じゃないtickで表示される >>640さん、>>641さん
ありがとうございます。お二人のようにそれぞれやってみましたが等間隔で表示できません…。
少数のところが偏って表示されてしまいます。
一応コード載せます
figure = plt.figure(figsize=(10, 5))
axis = figure.add_subplot(1, 1, 1)
plt.plot(x,y)
axis.set_xticks([0,0.1,0.2,0.5,1,2,3])
plt.show()
すみません…。画像の乗せ方わからなかったので試しにかいてみたやつ消すのを忘れてました…! >>642
>axis.set_xticks([0,0.1,0.2,0.5,1,2,3])
↑等間隔じゃないtick設定しとるやーーん >>645
はい。もともと等間隔ではないものを等間隔に表示したいという質問でした。
関数の値(例えばx = 0.1ならy = 0.4)をグラフにしたいと思っていました。
xの値は0~1までは少数もとりますが、1からは整数しかとらないためにグラフにすると偏りが出て見づらくなってしまいます。
それを等間隔に表示できれば見やすいかなと思いました。 >>646
そいうことだったのか
tickを等間隔な値にして、対応するラベルを設定したい等間隔じゃない値にする
んでplotするxの値をそれに対応するよう変換する必要があるんじゃないのかな
自動でやってくれる方法があるのかは知らない
plt.plot(range(len(x)), y)
plt.xticks(range(len(x)), x)
plt.show() >>646
無理に時空を歪めるのは見る側のことを考えてないのでヤメレ
常識的な解決策としては
・対数グラフを使う
・一部(x=0から1の区間だけ)拡大図を
範囲内のどっか空きスペースまたは別添えでつくる >>648
すごい!これできれいにグラフが出せました。本当にありがとうございます!
書き方に工夫が必要で、そういうのをぱっと思いつけるように勉強いたします。
>>649
関数のグラフではなくてxに対応するyの値(値がxのときの結果はこの数値)はこれですよっていうだけの折れ線グラフを出したかったのです。
ですから時空は大丈夫のはず…です。
対数グラフというものを知りませんでしたので調べてみます。ありがとうございます。 いろいろな参考書で、辞書はKeyと値のペアで出来ていると理解しましたが
keyだけがあって、値が空のを作ってしまってはいかんのでしょうか? from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
browser.get('https://qiita.com/advent-calendar/2016/crawler')
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で出力できないのはなぜなんでしょうか?
色々調べているのですが出力方法がわかりません。
初歩的なことですみませんが教えていただけないでしょうか。 >>651
setが辞書のキーだけを集めたコレクション >>652
ブラウザのコンソールからJS叩くかIPythonとかでデバッグするかして
そのCSSセレクタで意図した要素が取得できてるのか確かめるといい
ビジュアルに確認できるのでブラウザのほうが最初はわかりやすいと思う >>654
ブラウザコンソール開いてみました。ブラウザコンソールについて調べてみたのですが
よくわかりませんでした。ここに何かのコードを入力するのでしょうか。
JSとはなんでしょうか?
Jupyter Notebookを使っていまして取得したいcol_smsには
<selenium.webdriver.remote.webelement.WebElement (session="667d743c5f872d23247665eb139f3bac", element="f43fbb00-654d-472f-b0f0-1b43973384b4")>
というようなものがいくつか入っているのですが、textを使っても出力されない状況です。
質問ばかりですみません。 普通に長さが1の配列が戻ってきてんじゃね
イテレーター使って.text使うかcol_sms[0].textでいいんじゃね
col_sm.find_elements_by_css_selector()の戻り値ggれば解決しそうな話
俺は面倒くさいのでggりませんけども…! >>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はありませんよってエラーが出てるよね Cython について
Cython の pyx ファイルの中に、
@cython.infer_types(True) とあるんだけど、
この@は何の働きをしているの?記法なの?
詳しい人教えて >>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 (配列の要素数) 小学生っぽい子供が混ざってるようだが
質問するときは相手に伝わるようにちゃんと考えた方が良い
技術力よりコミュニケーション力や日本語力を気にしろ >>653
ちょっと難しかったです。
とりあえず辞書は、キーだけで値がなくても構わないと思うことにします Ruby では、ハッシュのキーに値を設定しなければ、値がnil になる。
一方、存在しないキーの値を取得すると、nil になる
これでは両者の区別がつかなくなるので、デフォルト値を設定する。
そうすると、キーに値を設定しなければ、値がデフォルト値になる
バグを避けるためには、必ずキーに値を設定するか、デフォルト値を設定しておく >>661
set(集合)とdict(辞書)は内部的にはそこそこ近いことをやってる
ハッシュテーブルを作って、keyのハッシュからvalueを見るのがdict。key(setにkeyって概念はないけど、便宜上)のハッシュを見て、key自体が 衝突 and 同じ内容が含まれてるか を見て、key自体を要素として扱うのがset。
setは本当に数学における集合と同じような動作をする(bitwise操作などができる)って認識しとけばおっけー Rubyの話をしてる人が居るのは本当に謎だけど、Pythonでも
dict.get(key, default)
とすればdefaultを設定した上で値を取得できる。
あるいは、collections.defaultdictを使うのもあり >>664
デフォルトを設定した辞書もあるのですね
ありがとうございます >>661
「キーだけで値が無い辞書」をどういう風に使いたいの? >>664
スレタイにRuby禁止って付けられるくらいに、スレ違いのRubyの話をしたがる頭のおかしい構ってちゃんが一人居ついているだけだからスルーしとけばいいよ >>667
とある請求書作成アプリのセルからテキストをコピーして辞書に格納してから、別アプリにペーストしたいのです
ケースによって空欄のセルもあるので、そのままで良かったのだろうかと考えてました
でもNoneを入れる事にしました >>669
なるほど
「キーに対応する値が無い」ケースをどう表現すべきかという話だったね
文字列の空欄を示す場合は一般的には空文字を使っておいたほうが
後でテキスト処理をする時にNoneのハンドリングが必要ないし
キー自体が存在してなくてNoneになるケースとの区別が付きやすくてベターだと思う >>656-657-659
ご回答ありがとうございます。皆さまから教えていただいたことをできる限り試してみます。 >>652
そのページそもそもdiv.col-sm-12の子孫にth.adventCalendarCalendar_dayNameが無い件 >>672
子孫など何か関係がないといけないのですね。入力をすればなんでも取得できると思っていました。
教えていただきありがとうございます。簡単なサイトを作れるぐらいのHTMLやCSSの基本をまずは覚えた方がいいんでしょうか... >>670
アドバイスありがとうございます
実は辞書を作る前工程で
Win32のクリップボード経由で、文字列を取得してくるプロセスがあったのですが
そこで自分が書いた関数だと、Winアプリが文字列が空だと、エラーになることに気がつきました
悩ましかったのですが、エラーになったらtry 〜exceptで
変数にNoneを入れることでしのぎました
text = “” だとデバッグで読むときよく分からなかったですし
ここは、何がベターなのかもう少し考えてみます
このスレのコメントは大変ためになります >>673
web アプリの初心者は基本、サーバー側はRuby で、
クライアント側は、HTML, CSS/SASS, Bootstrap, JavaScript, jQuery などを使う
jQuery のCSS Selector のルールを学べばよい。
emmet も、似たようなもの
# はid で、. はクラスとか、
x > y なら子要素(子孫を含まない)で、x y なら子孫要素とか
それと、他人のHTML の解析は、基本無理。
クラスをどういう意味で使っているのか、分からないから
構造的な意味で使っているのか、単なるデザイン上のものなのか、
または、Bootstrap などのCSS フレームワークのルールなのかも知れないし、
他人の考えなど、分からない
col-sm-12 みたいに、small なら、12列分の幅を使うとか、
こういうデザイン上のものを、CSS Selectorに入れると、
ページのデザインが変わると、セレクトされなくなったりしてしまう
一方、構造的な意味は、変わりにくい アホな質問で申し訳ないが
class の、書き方について質問あります
Python がはじめてのプログラミング言語で
やっと手続き的な記述ではやりたいことが
できるようになってきた
オブジェクト指向理解してないのもあるかもだけど
ライブラリとか、フレームワークのclass をオーバーライドしてかく時に
self が乱立しまくってて、
効率わるいようなきがするのだけども
書き方があってるのか知りたい
現場エラー吐いてないから、いいかもしれないけど
マナーというか、お作法としてどうなんやろ?と
別途class つくったり関数作ったりするの? >>679
それは誰もが感じる疑問
Pythonではインスタンスメソッドとして扱いたいメソッドの第一引数にselfを渡して
明示的にselfを指定する以外にインスタンスメンバーを参照する方法はないので
オブジェクト指向的に書く場合はselfが乱立しまくるのが通常
”Explicit is better than implicit.”という苦しい言い訳をする人も多いけど
そんな高尚なものじゃなく単に言語の制約なのでPython使う限りは諦めて受け入れるしかない Ruby のクラスでは、引数にself を持ちまわらなくても、selfが使えるだろ。
それは、実装が大変
ユーザーの利便性を上げるために、実装で頑張った selfが嫌なら第一引数を@にすれば良いんだよ
@.hoge でアクセス出来るし便利だぞ >>681
実装は大変じゃないよ
そんな大変ならPython以外にも
1つくらいselfを要求するOO言語があってもいいよね 最近はRustとかNimみたいに
第一引数.関数名(第二引数以降はカッコ内)
の様な文法が流行ってる >>684
もうそういう苦しい言い訳やめたほうがいいよ
RustやNimやGoはコンテキストが全く違うんだから
>>679
FAQも読むといいよ
https://docs.python.org/ja/3/faq/design.html#why-self
日本語訳おかしいから英語読めるなら原文のほうがおすすめ Pythonは変数のスコープもちょっと微妙なとこあるし、self必須とかはスコープに由来してるかわかんないけど、その辺は受け入れるしかないよね
その辺受け入れたとしても便利だからPython選んでるわけで
もちろん後方互換性を保ったまま改善できる言語変更があったら嬉しいけど
○○が変だからPythonは使えない、という人には他の言語もあるしね。 >>687
ゲームを作りながら楽しく学べるPythonプログラミング
で題材になるぐらいには簡単(入門向け) >>687
たぶんブロックの回転で行列がどうこう言ってた人かな?
テトリスは特段難しくはないんだけど、これまでのレスを見てるともっと基礎レベルから頑張った方が良さそう。 今がんばってます(´・ω・`)ゲームつくりたいんで(´; この界隈だとがんばっちゃダメ
テトリスのコードを10くらい眺めて理解すればいい >>676
詳しく教えていただきありがとうございます。
jQuery のCSS Selectorのルールなど見てみようと思います。 SQLite3で巨大なDBにデータを追加してcommitした時
動作としてはdbファイル全体が改めてディスクに書き込まれるのでしょうか
それとも変更した部分のみがディスクに書き込まれるのでしょうか
SDカード上にdbファイルを置いているため書き込み耐久が心配になり質問しました >>694
普通は全書き込みだと思うんだが
そんなに消えて困るものならば
SDカードだったら
常時上書きのドラレコ突っ込みOKみたいな特上品使わないと
やばくね? ページ単位で管理されていて更新されたデータのあるページだけ書き込まれる。 >>693
chromeかFireFoxのブラウザで「python tetris」と検索して出てきたものを上位から読む >>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を超えると、管理方法が変わるから、
データの再配置が起きるかも知れない すいません。どなたか教えてください。
jupyter notebook にてpyperclip をインポートしようとしたところできなかったため、
anaconda prompt にてインストール試みました。
conda install pyperclip だと、公式サイトで探してね。的なエラーが出てきたため、
pip install pyperclip で試みたところインストールは完了したのですが、、、
やはりjupyter notebook上でインポートしようとすると、同様の見つかりませんエラーが返ってきます。。。
何が悪いのか、どこを見ればいいのかよくわかりません。。。
教えていただけると大変ありがたいです。。。 >>698
dbはふつうそんな追加の仕方はしない。 >>687
アルゴリズムはねちょねちょ考えるのが楽しそうだから、回転行列とか勉強しながらやってみ?
問題は表示とかキー入力をどうするかだと思うなぁ。
普通はpygameになっちゃうんだろうけど、tkinterとかPyQtやWx使うとたいへんですかね?
せっかくインタプリタ言語なんだからtubeの「小一時間で作ってみた」シリーズみたいに
テキストベースで気楽に作れるライブラリあると良いのにね。 >>699
いまお使いの仮想環境名は把握してますか
conda list -n 仮想環境名 で
その環境を指定して、インストール済み一覧が表示されるから
それで分かるんじゃないでしょうか? >>701
curses
ncurses
pdcurses >>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
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。
改めてアドバイスありがとうございました(^^) >>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
プログラミングってそれ自体もそうだし、環境構築も奥が深いんですね。。。。
改めてアドバイスありがとうございました(^^) 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を参照しているのか? pythonでWindowsGUIアプリの自動化をやらせたいいんだけど。
(例えば、了解ボタンクリックとかメニューの選択等)
大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
動かなくなるときの考慮てどうするんですか。 >>709
>大概の場合、PyAutoGUIで座標クリックにいきつくんですが、座標クリックだとウィンドウの大きさとか
PyAutoGUIでなくて申し訳ないが
私はそういう事で困る事の少ないAutoITXを使っている
座標系のマウスクリックだけじゃなくて、
アプリやウィンドウ、ダイアログの名前を判断して、指定したダイアログにある「了解」というボタンを押す
なんて命令が使えるから 知恵袋でテトリスの回転のコードをもらったのですが、
https://ideone.com/2j9PhQ
このコードの内包表記の部分がよく分かりません(tmpのとこです)
この部分をもう少し一般的な書き方はできないでしょうか? 質問です。python2.7.1 windowsです
リストを作りました
list = [“left” , 1 , 2, 3, “num_a1”]
要素は5個です
関数を作りまして、引数を5個にしました
関数にリストを読み込ませたら、無事に動きました
次に要素を15個に増やして
関数に、先頭から5個ずつ読み込ませて
3回、関数に仕事をさせたいと思います
リストは二次元配列にしようと思います
ばくぜんと、forを使うのだろうということは分かるのですが
ググっても類似のソースを見つけられず、悩んでます
気軽に「こんな手法があるよ」程度で、レスをつけてもらえればありがたいです 自身の脳みそを一般的な水準にまで引き上げた方が早い AutoITは遅くてやめてpyautoguiはインポートするだけでDPIのスケーリング変わっちゃうから
Win32guiとctypesで全部書いて行った >>711
お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
プログラミング向いてないからやめとけ。 >>715
わからないから質問して何が悪いのだろうか >>718
ばかなの?
> お前、色んなとこで質問してコード継ぎ接ぎしてるだけだろ?
> プログラミング向いてないからやめとけ。
ただ向いてないだけ。 >>718
質問すること自体は悪くはないが、自分の現在のレベルを自覚して目標を定めた方がいいぞ。
まずはテトリスは遠い未来の話にして、入門書を一から頑張れ。
連立方程式が分かりませんというから解説したら、九々ができないレベルでした、って状態だから、まずは九々を身に付けよう。
今理解できないレベルの問題を相手を変えて、説明の方法を変えてもらっても、理解できないことに変わりはない。相手に手間をかけさせるだけだし、君自身も前進せずに同じところをグルグルしてるだけだろう。 >>708
両方使ってるけど問題無い
先に conda の方使って conda に無ければ pip 使ってる >>712
チュートリアルを一通りやってから出直そうか
チュートリアルで理解できないところがあったらそれを質問したらいい
https://docs.python.org/ja/2.7/tutorial/
今の段階でググって類似のソースを見つけようとするのは無駄どころか害でしかないよ visualstudioでc#使ってるときのように、インテリセンスが働いて、なおかつスペースとかを教典通りに調整してくれるテキストエディタありませんか? vs→vcに乗り換えてインテリセンスが働くようになったのは良かったんですが、スペース入れるbekiどうかで悩んだり、そこに脳のメモリ取られるのがうっとうしい。。。 >>711
block = [ [11,12,13,14],
[15,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の基本なので理解する努力をしよう >>722
ありがとうございます
単にコピペで貼り合わせて動くものを作るにとどまらず
なぜ動くのかを理解しながら、参考資料にあたりたいと思います
>>723
ありがとうございます
実は調べてるうちに、chunkなる単語を知りまして
やりたかったことは、これだったんだと思ったと同時に
活路が開けたといいますか、学習が進みました
ヒントのソースありがとうございました テトリスなんて、10年以上やってる香具師でも、簡単に作れない
Java 土方で有名なベテラン、T Umezawa の動画を見てみ。
こんな、神レベルの達人でも、タイルが壁にめり込んだりして、簡単には作れない!
落ち物パズルゲームのプログラミング解説 1/2
https://www.youtube.com/watch?v=iyMMaQWlF_0
素人が作るのは、10年以上早いw
作ったと言ってる香具師は、作っていない。
コピペしただけw Java土方で設計力もテスト設計力もないから書けないだけじゃないの
小学生の頃BASICのテトリスのコードの量見て難しいと思った記憶があるけど、今ならどんな言語でも書ける自信があるぞ
今のPCパワーで高速化とか考えなくていいなら愚直に書くだけだろう ブロック?じゃなく行列をなんで回転させようとするんだろう?
全く理解できない感覚なんだけど 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とかできるのに。 >>733
自分の無知により自分の思うようにいかないからといって、マトモでないという思考はやめた方がいいぞ for x,y in list(zip(a,b))[0::2]:
print(x,":",y) for i=0 to a.length step 1
をPyで使うなら、
for i in range(0, len(a), 2):
print(a[i],":",b[i])
な気がするが。
で、>>733はなんでzipを使うんだろ for left in zip(*pos[::-1]:
とかで使ってるけどzip何なのか調べてないしちゃんと動いてるからいいや >>731
T Umezawa は、Java, C#, C++ とか何の言語でも、
入力補完を使わずに、メモ帳にすごい勢いで書くだろw
土方を極めた、神としか思えないw
>>732
テトリスのすべてのブロックは、4×4 マスに納まる
キー操作による回転に、対応させないといけない。
90度左回転・右回転とか 造りたい言い始めてから何日かかってんだ
書き込む暇あったらさっさと造れ
一日もあったら出来るだろ >>741
あーこれいいね。絶対に伝わらない良アドバイスw >>733
無理して使いにくい言語を使わなくても
マトモだと思う言語を使ったほうがいいと思うよ
皮肉じゃなく割とマジで
pythonでstep指定する時はslice/isliceを使う
は? slice? ってなっても我慢すること
pythonはそういう言語だから
for x, y in islice(zip(a, b), 0, None, 2):
____print(x, y) >>739
>テトリスのすべてのブロックは、4×4 マスに納まる
4x4マスに収まるからといってブロックを4x4の行列で管理するメリットって何かあるの?
viewとmodelの分離ができてないとしても
ブロックを行列で表現してそれを直接回転させようという発想になる理由に興味ある ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ? 一個飛ばしってただ単にこういうことじゃなくて?
>>> for n, m in zip(a[::2], b[::2]):
print(n, ':', m)
01 : 02
05 : 06
何をもめてるのかわからん global宣言って何となく行儀が良くないような気がするのですが、上級者の方でも結構使いますか? グローバル変数自体はPythonなら普通に使うけど、global宣言はほとんど使わない
しょっちゅう細かい粒度でグローバル変数を更新するようなことをするとスパゲッティ化しやすい nonlocalならまあ、というかよく使う
globalはつかったことがない >>745
各ブロックの回転パターンは、4つあるから、
ブロックを行列で表現して、それを直接回転させれば、1つで済む
行列の回転なら、動きがおかしくても、回転計算の部分だけを直せばよいけど、
4つのパターンを作っていると、それらのパターンを直接直さないといけないから、大変 >>752
回転軸とか壁や設置済みブロックで回転が制限されるケースを考えると
単純な行列回転じゃ無理だし1つの処理でも済むこともないよ
そもそも4x4の行列だとI型のブロック回転させるだけで上下に動いちゃうよ
普通にブロックの型、基準となる座標、向きをモデルとして管理して
描画ロジックとは分けたほうがいい 俺もテトリス作ろうしたことあったけど思ったよりややこしくて放置してるわ… 専門学校のコンピュータ・アニメ・ゲーム科卒から数年経ってプログラマーを目指したくなった者なんですがやっぱり未経験者は四年制大学の新卒しか採用されませんか?
やりたい事はAIのプログラミングです
言語はPythonを覚え中です 単純に需要による
アンドロイドプログラミングとかなら今は需要の割にクッソ人が少ないから
kotlin使えたら未経験だろうが就職できる可能性は比較的高い
一方pythonのほうはこれからどうなるかは分からないが
日本では現状深層学習用などの学問用言語で 実務に使っているところはあまりない
ということはつまりpythonでAIやっていくには大学で専攻したような専門知識を持った人たちに
対抗しなくちゃいけないわけで ちと難しいんじゃないか? 早速ポチってきました!
作って楽しむプログラミング Androidアプリ超入門―Android Studio3.3 &Kotlin1.3で学ぶはじめてのスマホアプリ作成 辞書で特定の単語を含むキーをワイルドカードで検索し
ヒットしたキーに対応している値を抽出したいのですが
辞書に正規表現検索を行うのはできないのでしょうか
プリミティブでは難しいでしょうか Ruby では、正規表現のunion で「または」の正規表現を作ることができる。
その辞書の値を、gsub に渡すことで置換できる
hash = { 'ab' => 'あ', 'xy' => 'ん' }
p re = Regexp.union( hash.keys ) #=> /ab|xy/
p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx >>755
君がやるべきことは高校を卒業することだ >>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のところで正規表現や関数使ってもいい 機械学習する時、anacondaでpipを使っています
何故、condaを使わないのでしょうか? × 機械学習する時、anacondaでpipを使っています
〇 機械学習する時、色々なサイトを見てみると大抵、anacondaでpipを使っています そのサイトの記事を書いた人もまたどこかからコピペしてるからだよ
Anacondaがないと何もできないレベルの人が自分で一時情報源に当たって問題解決なんてできるわけないだろ?
そうやって元を辿っていくと、Anacondaを必要としないレベルの人に行き着く >>769
へぇー、結構適当な理由なんですねw
thank you >>750
>>751
ありがとうございます
globalもnonlocalも設定値みたいに使ってglobal変数自体は更新しない場合が多いってことですか?
多少無理してでも引数と返り値でやりくりした方が見栄え良さそうですね プロパティの勉強中
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) #1で
Exception has occurred: AttributeError
'Goods' object has no attribute 'name'
ってなるのではなんで???
#2はOKなのに、initでデータ入ってないってこと? >>773
実行していないが
>food.price = 100
ではエラーになると思うが、nameのgetter、setterではエラーにならないんじゃないか
あと、setをsteにするってなんかの教えによるのか >>774
すいませんsteは自分で吹きました。。。 >>773
#2の直前の
foo.name = “humberger”
でfooにnameっていう変数を新しく追加してそれに”humberger”を代入してるから#2はエラーにならない
__init__で
self.name = name
self.price = price
ってやってればfooにはnameが#1の段階で存在するから#1もエラーにならない >>776
File "prog.py", line 13
price__str = f"{price:,}円"
^
SyntaxError: invalid syntax
>Exception has occurred: AttributeError
>'Goods' object has no attribute 'name'
再現できるコード貼ってくほしい >>778
すまん、↓これ見落としてたわ
name = property(get_name, ste_name)
price = property(get_price) >>778
本当だ・・・。
というか教科書の教材を打ち込んでただけなのですが、教科書自体間違ってるのか・・・。
1時間悩んだのが何だったのか・・・。
ありがとうございます。すっきりしました。 >>782
あれ・・・。
name = property(get_name, ste_name)
price = property(get_price)
のインデントってdef 〜と同じところではダメなのでしょうか? よくわからなくなってきた。
properyは初期化には関わらないからinitで代入する
self.name = name
self.price = price
が必要って理解でいいのでしょうか? socket通信で送った文字列を、Pythonで受け取ってexecするプログラムを作りたいのですが
空いているポートにセキュリティ上の問題が発生してしまいます
セキュリティ問題を回避する方法ってないですか? >>771
個人的にだけど…
globalは宣言もしないし値を使うだけってのもまずやらない
nonlocalは宣言するからには更新するし使うだけってのもバンバンやる
nonlocal宣言するのはGUI部分のみだけど
変数使うだけの方は100行の関数を10行単位の細切れにして引数は渡さないとかそんな感じ すいません質問なんですが
配列の中のものを交互に2つの処理をするにはどうしたらいいのでしょうか?
a=[0,1,2,3,4]という配列があるとして
0と2と4には5をかけて
1と3には2をたすとかどうしたら良いのでしょうか? >>783
>>778に書いたことは一旦忘れてくれ
property()で設定してるのを見落としてたから
インデントが間違ってるってのは
get_name()や name = property(…)が
みんなdef __init__の中に定義されてるところ >>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) >>780
それを修正したが、AttributeError なんででるかわからんな
https://ideone.com/dyL8m9 >>790
ありがとうございます
a[0::2]とか使うとforが二個できてカッコ悪いなあと悩んでました
助かります!、 >>790
>if number % 2 == 0:
交互に処理したいなら if i % 2 == 0: じゃないかな python2.7
windowsのアプリケーションからクリップボード経由で手にいれた文字列
“内閣総理大臣賞受賞”
を変数mymarkに入れておいて
u’総理’ in mymark
と演算子inで調べると、総理は存在するはずなのにFalseを返されます
右も左もソースに自分で打ち込んだ場合は正常なので
win経由のものはどこかでエンコードがおかしくなってるのではないかと思います
以下は調べてみました
type #右も左も<type ‘unicode’>
len(mymark) #9
内閣総理大臣賞受賞、で9文字ですね
len (u’総理’) #6
・これがどうして6になるのかよく分からない len(u'総理')の長さが6になるのは
多分python2では文字の長さを「文字列全体の容量 / 1文字の容量」で計算してるから
日本語などのマルチバイト文字だと実際の文字列の長さより長くなるんだろうなってことは分かる
(python3では普通に文字列の長さが表示された)
内閣総理大臣賞だけ9文字という正確な値になってるのはよくわからない
自分の調べたpython2環境ではlen("内閣総理大臣賞")で27になっていたが >>797
そうなんですか
じゃあ数があわないから、ここに問題が!と思いましたが
そうではないかも知れないのですね Ruby なら、powershell, clip コマンドを使って、
Windows のクリップボード処理もできる
Windows(CP932でin) → Ruby内部(utf8 で処理する) → Windows(CP932でout)
# frozen_string_literal: true
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
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 mymark = '内閣総理大臣賞受賞'
だと、18文字
mymark = u'内閣総理大臣賞受賞'
mymark = '内閣総理大臣賞受賞'.decode('cp932')
だと、9文字
最初のmymarkをユニコード文字列にデコードしておけばエラーは出ないね。
2.xのお作法、なんかいろいろ忘れてしまってる。
print()で怒られてしまったw あと、
len(u'総理')
はちゃんと2になるよ。
python 2.7.17 @Windows10 ありがとうございます
プログラムにして動かしてるもの(だが動かない)
があるのですが
右側、mymark に .decode(utf-8)を付けると
UnicodeEncodeError: ‘ascii’が出て
右側、mymarkには何もつけずに
左側(u’総理’)にするとエラーは出ないけれど、in演算子が動かない
試しに左側の総理から、uを取ってしまうと
こんどはUnicodeDecodeError:’ascii’が出るんですね
かなり悩ましいです
別のマシンにpython3環境を構築して、そっちに移植してどうなるか試してみます >>802
decode() の中のコードページはクォートで囲わないとだめだよ >>796
>右も左も
右とか左の意味がわからない
「A in B」のAを左、Bを右と呼んでる? 全角文字列に対してIF処理を入れたいのですが、何で判別すれば良いですか?
検索対象の文字コードはutf8で、
漢字、ひらがな、カタカナ、全角英数を含む可変長の文字列が対象です。 if "バカ" in "バカボン":
___print(True)
True >>808
別スレでpythonやめてkotlinやるって言ってた人か?きっとすぐに同じことを言い出すぞ。
入門レベルで必要なのは才能なんかじゃなく、ごく普通レベルの根気と理解力だけだぞ。才能がどうこう言うような段階まで到達してもいないだろう。 >>809
他の言語はともかくPythonは持って生まれた才能が無い人には無理だろ
10年かかってもできないはず
人生を棒に振るぐらいなら簡単な言語を一生懸命やったほうがお得 Pythonは人を選ぶからなぁ
IQは最低でも120ぐらいはないと難しいかと Python習得は大学の受験勉強より時間がかかるのは確か まぁ、数学(とくに関数と微分積分)を完全にマスターして更にそれらを応用させる能力が必要だからな
まず凡人には努力だけでは習得不可能な言語 これを小学校のカリキュラムに入れようってんだからなwww
まさに落ちこぼれ量産機www
本当は他のプログラミングができそうな子供達まで絶望させる プログラミングを知らない初心者に勧めてはいけない超難解言語 まぁ、すすめるすすめないは自由だがすすめられたほうは挫折するだろうな ふつうプログラミングを覚えるということはルールを覚えるという事なんだがPythonは...
(^_^;) >>815
数学は単にpythonを使う応用分野の一つというだけで、言語としてのpythonの習得とは独立した話だろw
日本語を習得するというときに、数学や物理の論文を読み書きする能力まで求める奴はいないだろう。 ダニング=クルーガー直後の「完全にマスター」だぞ。釣りに決まってんだろw Pythonは9割が脱落する言語と言われてるのもうなずける
もし仮に本人には才能があってもPythonをおぼえようとした時に最初に出会う教材や人によって終わってしまうことも多いと思う
俺はPythonとかプログラミングと全く関係ない数学の応用の本を一緒に読んでた
でも結局脱落した 初めから言語の習得の話をしていて別に仕事で使う話はしていないぞ。
仕事で使うにしたって、pythonは汎用的なプログラミング言語であって別に用途が人工知能に限定されるわけでなく、ちょっとした統計処理や自動化程度であっても役割として十分だろう。 二ヵ月前に初めてプログラミングの勉強始めて
友人に勧められたからPythonから触ってTwitter API使ったwin用guiアプリ作ったけど
AIとか作るんじゃないならかなり楽やと思うけどなぁ
転職して今週から働きだしてJava触ってるけど
個人的にはJavaのが難しいと思うわ(主にオブジェクト指向とかが)
まあ、両方楽しいし作ったアプリはオブジェクト指向使わずに書いたからコード自体は今見ると可読性悪いのがよく分かったw 自分が落ちこぼれと認めるより、言語が悪いことにしたいよな
私を嫌う連中は私が嫌いなのではなく私の属性が嫌いなの!って騒いでるTwitterのメスガイジと似てるわ >>825
pythonに限らずC言語の昔から同じようなことが言われていた C言語はポインタが鬼門。まずポインタという名称が良くなかった。アドレス変数という名称のほうがしっくりくる。 アドレスと混同されないようにあえて別の名前を使ったんだろ。 pythonもidによって謎の数字が出てくる
アレ何なの
おみくじ? VSCODE使ってみて初めてVisual Studioのありがたさがわかった。 ;をうつとちゃんとした記法に成型してくれるって楽だわ。
C#での話だけど。
誰かVSCODEでも同じ機能をつけてくれないものか・・・。 >>838
作るんだよ。お前が。拡張機能を。
あくしろや俺も使ってやるんだからよ。 >>839
ああ、そういうことか!
無理です・・・。orz 心理系の研究で2Dカードゲームのようなアプリを作ろうとしています。
当初Unityでやるつもりだったんだけど、機械学習の勉強のためPython学んだら、
Pygameでやるのもありかと思い始めた。
トランプのような2DカードゲームつくるならPythonとUnityどちらがおすすめですか? >>844
短期間でC#、Unity、R、Pythonと詰め込んで混乱している。
これ以上言語増やしたくない。 どっちでもいっしょだから自分が得意だと思える方でやればいい。 >>847
ありがとうございます。
現時点ではUnityのほうが得意なのですが、
アプリからデータ取得して統計処理、機械学習まですることを考えると、
Pythonで統一したほうが後々楽なのかな。。。 あと、スレタイどおりくだらない質問で申し訳ないのですが、
C#アプリで取得したデータをpythonで統計分析しようとしているのですが、
CSVファイルにデータを保存するとき
100件のデータを全て一つのファイルに保存。
100個のファイルを作製して1件1ファイルに保存。
のどちらがいいのでしょう?
1件のデータには実験環境等ながいDescriptionデータがついてくるので、
1ファイルだとデータの切り出しがめんどくさいかなと思っているのですが。 >>846
そのゲームを誰にどうやってやってもらうかとか
結果をどう収集すべきかとか
そういうの考えてる? >>850
そのへんは考えてるのですが、質問の仕方が良くなかったですね。
***実験条件データ***
年齢:
性別:
特性A:
特性B:
〜
***配列データ***
時間 回数 色 〜
0.11 3 R 〜
0.20 1 B 〜
みたいなデータが100件ぐらい1ファイルに記述したとして、
をpandasで配列データだけ切り出してくるってかんたんにできるものでしょうか? >>849
特別な要件がない限り
> 100件のデータを全て一つのファイルに保存。
しかないと思うが pygameって3?が頓挫して別のに開発リソースまわってるんじゃなかったっけ?
あとcsvはデータ形式によるから具体的なカタチがわからないとなんとも… >>851
まず、データだけを抽出する、コンバーターを作る!
そのためには、まず、データだけを抽出しやすいように、
よく考えて作っておかなければならない
JSON とか。
他には、XML, YAML もある
データとデータ以外の切れ目が、分かるようになってれば良いけど
まあ、ファイルを分割している方が簡単で、
後でファイルが増えた時に、融通が利く >>848
ゲームはUnity、データ処理はPythonってのがいいよ
どうせゲームの記録は一旦保存して、後で処理するのだから、
ゲームを作るのに得意な言語、データの処理に得意な言語で使い分けたほうが良い。
一つにまとめる必要があるのは、アプリケーションパッケージとして売ったり誰かに納品したりする必要があるときだけだと思う。 >>849 >>851
見逃したけど、
100条件なら100ファイルの方が取り扱いが簡単だよ。1ファイルにするメリットはないと思う。
1000を超えてくるとOSの方での取り扱いが面倒になってきたりするけど。
1ファイルにする場合、条件データと配列データを切り出すのはPandasでも出来るけど、素のPythonでまず切り分けておいて、
切り出したCSV部分をPandasに渡すのが普通かな。 >>853
情報ありがとう。
開発終了してるし、後継のライブラリもなんか評判良くないね。
ゲーム部分は素直にUnityで開発します。 みなさんいろいろありがとうございます。
ファイル分割して、データ統合するコンバータを作るのが良さそうですね。
少し勉強が必要そうだけど、方向が見えてきました。
ありがとう。 >>855
シンプルにUnityからテキストファイルに書き出して、
パイソンでデータ処理するようにします。
Unityからパイソンのファイルを実行するだけなら、自分でもすぐできそうだし。 本当にくだらないんだけど、
風俗板とこのスレに常駐すると
パイソンがパイパンに見えてくるな。 test_str = 'aaaisaisaihuursstestiisaojyewysa'
というような文字列があったときに
文字列の中に'test'が含まれるかどうかの判定ってどうすればよいですか?
先頭でも末尾でも中間でもどこに含まれていても、print('含まれてるよ')と表示したいです。 >>861
'test' in test_str
で判定
いっちゃん簡単なやつ >>861
test_str = 'aaaisaisaihuursstestiisaojyewysa'
if 'test' in test_str :
print('含まれてるよ')
else:
print('無いよ') >>835-836
うbyはidが偶数か奇数かでも動作が違う 943
半島人は長い歴史で虐待され続けたため、人間不信に陥っており、
又医学的には拷問を受けたため、遺伝的に脳の前頭葉(脳の30%の部分)が傷ついて萎縮していると判明しています
だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です
今後前頭葉を拡張復元していくことがよい結果を生むことになると思います
アメリカを中心に、高気圧酸素治療法というのがあります
カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です
損傷した脳の復元にかなり効果があることが、わかっていています
284
そこで提案だ
先ほど述べた、Paul Harch 医師達がやっているような、高気圧酸素治療(HBOT)の技術を生かしてみたら、いかがかな
つまり、代々前頭葉萎縮で悩んでいる半島人達の脳に、この治療法を応用するのだ
酸素を効率的に沢山供給することで、エデンちゃんの萎縮していた脳がほぼ通常に広がって戻ったのだから、
うまく考えて根よくやれば、半島人達の遺伝的に萎縮した前頭葉をふくらませられるかもしれない
そうしたら、彼らに失われていた人間的な感情も、わきやすく、育みやすくなるというものだ
半島人も他の民族と同じように気持ちが安定し、前向きになり、責任を持って自分の国作りをするようになるだろう
他に良い方法があればそれでもよいのだがね、1つの案として提示しておく
全世界の皆さんは、真剣に考えてやってほしい
特に、脳科学の研究者達はね 276
その方法というのは、
『高気圧酸素治療(HBOT)』と言う
縦長のカプセルの中に患者が仰向けに寝ていて、カプセル内に高濃度の酸素を沢山満たし、吸い込ませ血管に送り込む
又、その際に高めた気圧で酸素を濃縮して、血管に溶け込みやすくする、という仕組みだ
これにより女児は損傷して萎縮していた脳が、酸素の補給により急激に回復し始め、まもなく感情を表し言葉を発したり、母を認識し以前の記憶がよみがえった
又自分で食べられるようになり、運動能力も徐々につき、驚異的な速さで機能が回復して行ったのだ
五才になった今では、多少歩く時に平衡感覚がまだ足りなくて、左右にぐらつくのを矯正中だが、ほぼ普通に元気に歩き、遊べるようになった
278
私が言いたいのは、これを応用できるのではないかということだ
この女の子、エデン・カールソンちゃんを治療したのは、ルイジアナ州立大学医学部のPaul Harch医師だ
彼は、エデンちゃんに主に高気圧酸素治療を行い、1回45分、週5日、計40回で終了した
治療を始めて10回目で、ほぼ正常に見えるほどになったという
その後も40回(8週間か)まで治療を続け、最終的にMRI検査では、エデンちゃんの萎縮してすき間のあった脳が、ほぼ完全に回復していた
脳の回復が速い幼児だからということも幸いしたが、
最近では急性脳損傷のある成人でも効果があることがわかってきた
成人にHBOTを1回実施しただけでも、脳の組織回復に必要な複数の遺伝子の活性に変化が見られたという
(日本では、病院で脳梗塞の治療等に使われている) 280
朝鮮半島民というのは、医学的に研究された結果、
昔から先祖代々貴族等に虐待や拷問を受けてきたために、おびえて脳の前頭葉(脳の30%を占める)に沢山の傷が見られ、そこの部分が萎縮しているそうだ
前頭葉の前半部は、思考、自発性、感情、性格、理性等を司る
前頭葉が損なわれるとどうなるか
例えば、
忘れっぽい
思いつきで動き、不注意
自発性がなく、すぐ人を頼る
大変おしゃべりか、反対に抑うつ的
すぐ怒ったり笑ったり、感情を爆発させる
人を思いやるのが苦手
危険に鈍感になる
規則を守らない
1つのことにこだわり、同時に2つのことができない
過食や浪費
又、もしもその一部である眼窩前頭皮質が損傷すると、
過度に悪態をつく
性欲過多
社会的対話の欠如
共感能力の欠如
アルコール、薬物の摂取過多
等が見られるという
どれも困ったことだ
必ず全てが現れるわけではないし、個人差もあるだろうが
943
半島人は長い歴史で虐待され続けたため、人間不信に陥っており、
又医学的には拷問を受けたため、遺伝的に脳の前頭葉(脳の30%の部分)が傷ついて萎縮していると判明しています
だから豊かな感情に欠け、キレやすく、倫理的なことにあきらめ感が強く、無感動です
今後前頭葉を拡張復元していくことがよい結果を生むことになると思います
アメリカを中心に、高気圧酸素治療法というのがあります
カプセルに入って寝て、気圧を高めて高濃度の酸素を、人の血中に送りこむ療法です
損傷した脳の復元にかなり効果があることが、わかっていています pythonにテキストファイルでデータを渡して統計処理しようとして、
初めて整然表現というものを学びました。 実験情報
氏名:
性別:
年齢:
実験日時:
実験場所:
実験タイプ:
実験データ
時刻 X Y 色
002 20 14 b
というデータで今まで実験情報と実験データを一つのファイルに記述していたのですが、
SatouTarou20191224DESCR.txt
SatouTarou20191224DATA.csv
と2つのファイルに分けて記述するべきなのでしょうか? Philip N. Kleinという人の書いたベクトルを表すクラスに、以下の記述があります。
__add__ = add
左辺はインターネットで調べた結果、特殊メソッドであることが分かりました。
右辺の「add」は一体なんなんでしょうか?
そして、特殊メソッドである「__add__」を定義せずに、「__add__ = add」と代入していますが、これは文法的にどういうことなのでしょうか? 氏名 性別 年齢 ・・・ 時刻 X Y 色
Sato Tarou 21 002 20 14 B
004 22 10 R
010 1 9 Y
みたいに一つのファイルのほうがいいのかな。
実験条件のデータは項目ひとつに1データでみづらいけど、
これがコンピュータにとって扱いやすい整然データということでしょうか? >>873
def add(u, v):
class Vec:
__add__ = add
となっています。
これはクラス Vec の外で定義された「add」と同じ関数として「__add__」を定義するという意味ですか? 実行ファイルのあるディレクトリのパスを取得するのに
os.path.dirname(sys.argv[0])
という記述があるのですが
sys.argv[0]というのは何故必要なんでしょうか?
また、その1つ上のディレクトリのパスを取得するにはどうしたら良いですか? >>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 >>876
sys.argv[0]が実行ファイルそのもの。
os.path.dirname(f)はfのディレクトリ。
os.path.dirname(os.path.dirname(f))でさらに一つ上の階層。
sys.argv[0]の代わりにos.path.abspath(__file__)も使える。
python 3.4以降?なら下の様な方法でも。
from pathlib import Path
Path(os.path.abspath(__file__)).parent.parent >>876
Ruby では、シェルで「ruby オプション script.rb 引数」と入力するけど、
このスクリプトファイル名は、$0 という変数で参照できる
引数部分が、ARGV の[ 0 ]から順番に参照できる。
ARGV[ 0 ]には、スクリプトファイル名が入ってこない
そこが、Python とは異なる!
親のディレクトリは、parent で、祖父なら、parent.parent で。
たぶん、python にも、ファイルパスを扱うモジュールがあるはず
require "pathname"
path = Pathname("foo/bar") # 相対パス
path.parent # => #<Pathname:foo>
path.parent.parent # => #<Pathname:.> >>873
class Vec:
__add__ = add
は
class Vec:
____pass
Vec.__add__ = add
と同じ Vec.__add__ = add がどういうことかわからなければ
↓これを参考に
https://ideone.com/Z5nLWW Rubyバカはスレタイを100回復唱してから書き込めよ >>872
RDBであれば別のテーブルで管理すべき内容
ただ一連の質問を見る限り他人がメンテする必要性が低そうなので1ファイルの場合と2ファイルにした場合のメリット・デメリットを考えてみて好きに決めればいいと思う
ファイルの分割に関係なく実験情報と実験データの1つの組をユニークに識別できるIDを定義しておくのが無難 人名単位のcsvに実験データを追記していく
必要なら名簿を作成してI/Oを平易にする
これではいかんのけ? 日本語ファイル名は災いの元なので、学籍番号やローマ字表記などに変えるべき。 日本語かどうかよりはファイルシステムでファイル名としては取り扱えない文字かどうかを気にした方が良いような
まあ、結果としてアルファベットと数字とハイフン、アンダースコアにしておくのが無難だという結論になるけれど >>886
主キーで管理して実験情報テーブルと実験データテーブルを別個に作るということですか。なるほど。 ってアクセスでならできるけど、パイソンでRDB的なことってできるんでしたっけ? >>889
ファイル名は氏名と生年月日と記録日にしようかと思っています。
検索しやすいので >>887
同一人物でも異なる実験条件で複数回検査するので。 あああ、確かに100件以上の実験データを扱うことを考えるとDBにデータ移行できるようにした方が良いですね。盲点だった。 >>407にもある通り数億とか数千万のオーダーを考えるのは普通
ファイルでも数万は簡単に行く
盲点でも何でもない 参照系なら必ずしも正規形にこだわる必要もないよ。
統計処理はjoinされた形でやるわけだろうし。 >>892
その3つで一意性を完全に保証できる前提ならいいんだけど
同じ人が複数タイプの実験を1日で実施したりすれば対応できなくなるよ
一意性を保証できない状況が発生しうるなら
識別IDに人間の見やすさのための情報を付加する形がいいかも
0011228_SatoTaro_20191224.csv
0011235_SatoTaro_20191224.csv >>897
スタンドアロンで別施設でデータ取得も考えると
年月日_実験開始時刻_氏名_生年月日
ですかね。
ファイル名は長いですが、
人間が判別するときもこれらのデータがあるとわかりやすいし。
20191224_120122_SatouTarou_19820912
ファイル名長いな・・・。 正規形勉強してきました。
アクセス使ってたけど主キーとかユニークナンバーとしか理解してなかった。。。 >>874
は第一正規形ってことですね。
python上で第三正規形のデータ取り扱うってどうすればいいんだろう???
pythonやRで統計処理をするときは、
第一正規形であれば問題なさそうな気がするんですが、
間違っていますでしょうか? ちょっと論文読んできました。整然データ=第三正規形ではないんだね。
1. 実験情報と実験データでcsvファイルを分ける
2. 1のファイルから要約データを計算し、要約データファイルに実験情報と要約データを順次上書き
3. 要約データを実験条件で分割して有意差検定する
が良いのかなぁ。 >>974
間違ってない。
第三正規形は、更新時の書き込み箇所を一本化したり、保守性を上げる(スキーマ改変の範囲を限定する)というようなことが目的だから。
参照オンリーの場合は、むしろパフォーマンス面でマイナスになったりする。
けれど、非正規化するかどうかは別問題。
マテビューなどの解決策もあるからね。 Ruby on Rails では、
多重度、1 : N は、has_mamy, belongs_to とか
参照、references
外部キー、foreign_key >>891
sqlite3とか入れてPythonからそれを叩くのが定番 >>892
生年月日みたいな個人情報入れるとか大丈夫?
てか企業とか学校なら社員番号とか学籍番号とかあるんじゃないの? python3.8でコードをexe化する方法ありますか? Python習いたての初心者です。
Pandasでデータフレーム作って
Scikitlearnで標準化をする際に
一旦数字のみ抽出して、標準化、
またデータフレーム化という手順で習ったのですが
回りくどい気がしてなりません。
Pandasのまま標準化するには
計算コード直入力するしかないものですか?
理解不足があったらすみません。 >>891
実験データをSQLiteとかで管理するのはお勧めできない
間違ってデータ飛ばしたりとかがSQLに慣れてないころには容易に起こる
データの結合とかはpandasでSQLで出来ることはほぼ同レベルの手間でCSVファイルに対してできるから、とにかくCSVファイルに保存していく形にするのが良いと思う
実務ではないのだから、最悪ちょっと機械的な手作業を頑張ったらなんとかなりそうという、見通しが立っている状態を維持し続けるべきだと思う
SQLとかRDBMSにめちゃくちゃ慣れていて、pandasなんか覚えたくないよというのならpandasじゃなくて良いけど
あと、データをあれこれするときはjupyter notebookを使うと履歴が残せるし、うまくいかないところだけ試行錯誤でコードの修正がしやすいので本当にオススメ >>902
ありがとう。
>>901
のパターンでやってみる。
データ構造どうするかって、きちんとしておかないと後で地獄見るってよく勉強になりました。 >>910
pandasでデータ成型(スクレイピングって言うのかな?)
も学ばなきゃ。
新しく学ばなきゃいけないことたくさんだけど、
プログラミングは試行錯誤できることと、
お金があまりかからないのがいいことですね。
がんばります。 北海道のグラサンスーパーハゲザーはここにはこないのー? >>900
>pythonやRで統計処理をするときは、第一正規形であれば問題なさそうな気がするんですが、間違っていますでしょうか?
あってる間違ってるの話ではなく整然データにしておけばデータをこねくり回すときに楽になるよって話
現状困ってないなら無理して整然化する必要はないと思う
>>901
論文にも明記されてるけど整然データ(=tidy data)は第三正規形と基本同じだよ
原典か日本語訳を読むといいと思う
https://vita.had.co.nz/papers/tidy-data.pdf
>>902
一般的に特定の非正規形は特定の分析用途には使いやすくても
違う観点で分析しようとすると正規形からデータ変形するよりも多くの手間がかかる
参照オンリーの場合でもデータの利用方法が定型化していない場合は正規形から考えるメリットは大きい
特にRDBで分析用途のDBを用意する場合は参照オンリーでも正規形から考えとかないと手間が異常に増える 質問でつ
このコードの4行目で print(combsを表示) しちゃうと
最後の return ta_combs の中身が空になるんだけど 何で?
import itertools
def twoSum(nums, target):
・・・combs = itertools.combinations(nums, 2)
・・・#print(list(combs))
・・・ta_combs = set()
・・・for comb in combs:
・・・・・if sum(comb) == target:
・・・・・・・ta_combs.add(comb)
・・・return ta_combs
print(twoSum((10, 20, 10, 40, 50, 60, 70), 50 )) bigtable使ってるから正規化なんてないわ。
SQLもシンプルだし。
速度は言わずもがな。 複数の表をjoinするのとそれらの直積からselect/uniqueをとるのは等価だから
非正規形だと手間がかかるってのは当たらないと思う。
パフォーマンスや容量は別として、必要な変数を選んでuniqueをとるだけという
操作に統一できるから、いちいちどう結合するか考えるより手間が省けるくらい。 以下のようなテスト用の記述があるとします。
vecというモジュールからクラスVecをインポートしています。
vecモジュール内でも同様のテスト用の記述があるとします。
↓のコードを実行した場合、vec内のテストも行ってしまうようです。
vec内のテストは完了しているので、テストされないようにすることはできるのでしょうか?
from vec import Vec
…
"""
Returns the value of entry k in M, where k is a 2-tuple
>>> M = Mat(({1,3,5}, {'a'}), {(1,'a'):4, (5,'a'): 2})
>>> M[1,'a']
4
>>> M[3,'a']
0
"""
…
if __name__ == '__main__':
import doctest
doctest.testmod() >>915
list(combs)でイテレータを消費してるから
for comb in combs:のところではもう次のアイテムはない >>917
一理ある
DBを正規形にしておくのは必ず非正規化されたデータが正規形の直積から取り出せて、不整合なデータはありませんという保証を担保する側面があるってことだね >>917
それは一番単純なパターンで
キレイに非正規化されてるケースだけにしか当てはまらないよ >>919
アドバイス ありがとうございます
イテレータを理解してなかった
import copy 追加して
a = copy.copy(combs) を print の前に入れたら上手くいきました キレイじゃない非正規化ってどういうのを想定してるのかな。
データとして等価じゃないならそりゃまずいが。 そもそも第一正規形以外の正規形って更新時異常を避けるために考えられたものであって
検索のことは考慮外なわけで。 >>924
そりゃjoinのパフォーマンスなんかDBMSの実装の問題なんだから考慮外で当たり前だろう
レイヤの異なる関心事をごっちゃにしている典型例だな パフォーマンスの話なんてどこから出てきたのやら。
>レイヤの異なる関心事をごっちゃにしている典型例だな
そうだね。 すなおにpyinstallerのみ3.7で動かすことにしようと思います
オフライン環境にインストールしたかったので、先にオンライン環境で
pip download -d <保存先> --no-binary :all: pyinstaller
で関係ファイルをすべてDLし、オフライン環境にてpip installを試みました
ところがそれぞれのファイルをインストールし、
最後にPyInstaller-3.5.tar.gzをpip installするところでエラーになってしまいます
エラー内容を見るに、PyInstaller-3.5.tar.gzのpip installの中に
setuptoolsのオンラインでのpip installが含まれているように見えます
もちろんsetuptoolsは先にpip installしているにも関わらずです
何か方法ありますでしょうか
エラーメッセージ↓
ERROR: Command errored out with exit status 1:
command: <Python.exeのパス> <pipのパス> install --ignore-installed --no-user --prefix <overlayのパス> --no-warn-script-location --no-bina
ry :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=40.8.0
' wheel
cwd: None
Complete output (8 lines):
Collecting setuptools>=40.8.0
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, st
atus=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3
.connection.VerifiedHTTPSConnection object at 0x02F322D0>: Failed to establish a
new connection: [Errno 11004] getaddrinfo failed')': /simple/setuptools/
(以下繰り返し) 自分もひと月ほど前にオフラインでのpip installをやろうとして
行き詰まった
pipは何かとPyPIに接続しにいくからね
結局linuxサーバでプロキシーサーバーとファイヤーウォールを建てて
オンラインでできるようにしてからインストールしたよ 北海道のグラサンスーパーハゲザーはここにはこないのー? .tar.gz展開して中のsetup.py直接起動させたらいけました
自己解決ですみません こういうデータがあります 外側のカッコはタプルでも可 要素は重複してないので集合でも可
data = [00, 01, 10, 11, 12, 22]
要素から 1桁目が0のみ抽出・・00,01 2桁目が1のみ抽出・・01,11 という処理をしたいです
今はforで回し正規表現で判断してるのですが、簡単に記述出来るモジュールのような物はあるんでしょうか? >>931
条件が簡単ならリスト内包表記で抽出するやり方があるけど
forで回して正規表現で検索する方が何かと汎用性があると思うよ
左1桁めが0のデータを抜き出す場合
[ x for x in data if x[0] == '0' ]
左2桁めが1のデータを抜き出す場合
[ x for x in data if x[1] == '1' ] >>931
十分簡単な記述だと思うけど、俺ならタダの数値計算にする。
切り捨てで1
10倍して10で割ったあまりが1 要素は文字列でした 間違ってました
data = ["00", "01", "10", "11", "12", "22"]
>>932
"2"を抽出時も簡単ですね 全く思いつかなかったです
3行の記述が1行に収まるので、こちらでいきたいと思います
>>934
10倍後10で割る方法もレスされて思い出しました
>>932 >>934 ありがとうございました >>931
ある言語では
p data.select{|x| x[0] == '0'} [ x for x in data if re.search(r'1$', x)]
[ x for x in data if re.search(r'1.$', x)]
とある言語では
data.filter{|x| x.match? /1$/}
data.filter{|x| x.match? /1.$/}
またとある言語では
data.filter(x=> /1$/.test(x))
data.filter(x=> /1.$/.test(x)) Ruby では、select でフィルターする
data = %w(00 01 10 11 12 22)
p res_1 = data.select{ |x| x[ 0 ] == '0' }
p res_2 = data.select{ |x| x[ 1 ] == '1' }
出力
["00", "01"]
["01", "11"] >>939
別の正規表現で書いてました (r'1$', x) (r'1.$', x) の方が簡単なので使わせて頂きます
参考にします >>938 >>940 Macで、このプログラムをPyinstallerで実行ファイルにすると動きません。
MacってPythonと相性悪いんでしょうか?
import os
import sys
path_w = os.path.dirname(sys.argv[0])+'/testWrite.txt'
with open(path_w, mode='w') as f:
f.write('testWrite') >>944
Macには最初からPython2.7系が入っているので
3系を、ケンカしないようにうまいことインスコするのが基本。
でもってpyinstallerって
Windows用じゃなかったっけっか >>945
いいえ、Pyinstaller自体はWindows/Mac両方で動くように設計されているもののようで
Pyinstallerでアプリケーション化した後もGUIの作成やソケット通信などの部分は正常に動くのですが
ファイルの参照やファイルを作成のようなコマンドが内部に含まれていると何故か動かなくて困っています。 >>946
pathの書き方がLinux系とWin系で異なるから とかもないなら
Macの「システム設定」てきな歯車アイコンの奥底にある
「出どころがあやしいアプリは動かないようにブロックする」デフォルト設定のせいじゃなかろか
(この機能の正式名称 ルートレス とかなんとかいったような) >>944
Macのターミナルから実行した場合は動くの? >>948
はい、ターミナル(正確にはAnaconda Prompt)から、素の状態のPythonを実行すると動きます。
しかし、Pyinstallerを使ってアプリ化することによってファイル作成コマンドが使えなくなります。
Windowsの方ではPyinstallerを使っても正常に動きます。
>>947さんの指摘が近そうな気がするので調べてみます。 あと、もう1つ情報を付け加えると、PyinstallerによってMacアプリ化すると
アプリが作成されるのと同時に、サブフォルダに「Unix実行ファイル」というのも作成されています。
何故かアプリでは動かないのに、サブフォルダ内の「Unix実行ファイル」の方をクリックするとファイル生成などのコマンドも正常に動いています。 有明セントラルタワー
痰吐きジジィのチンポが18階の(どこの島かは言わないよ)20代の女の娘のオマンコに
入って行くウゥウウウーーー!
http://o.5ch.net/1lejw.png >>950
sys.argv[0]じゃなくて絶対パス(/Users/hogehoge/Desktop/testWrite.txt)で出来るのか試してみて、
出来るなら、print(sys.argv[0])で何が違うのか確認するべき >>952
プリントして表示したらパスが分かりました
ありがとうございました >>954
理屈的にはできるはず
完成できるかどうかはおまいの腕前次第 そういうライブラリがあるか聞いてるわけではなくて? 小
m3SXtna
61x65 96dpi 24bits
大
o9qwWuG
511x509 96dpi 24bits
横 8.38倍
縦 7.83倍
なんかきもい 品質はともかく出来るか出来ないかで言えば出来るだろう
元のより拡大後の方が綺麗に見えるっていう加工にすぎない >>960
そういうレベルの拡大画質ではないかと
スレの師匠方でも「理論としては可能」というくらいだとかなり難しいという事ですね つかこれの可能不可能は言語的な制約によるものではないだろ
頭わりぃな 画質は落ちてても人間には綺麗に見えるフィルタなんていくらでもある
「画質」とか「綺麗」とかの定義と客観的定量的指標が必要 >>961
そういうレベルw
モデルを顔写真用にトレーニングせずにそのまま使ってもそりゃダメだろ
GANs使ってアイコラ自動生成するアプリと同じ pygameのmusicでmp3を流すと、ファイルによってはオクターブが下がったり超低音のくぐもった音で再生されてしまいます。
vlcプレイヤーなどで再生すると同ファイルは正常に再生できるのですが・・・。
さらに後者の現象の後はdouble free or curruption(out)というエラーが発生しています。こんな現象に遭った方いらっしゃいますか? ゲーム作るならどうせ遅かれ早かれPythonは卒業することになるんだから、
時間を無駄にする前にそろそろunityにでも乗り換えたらどうかな >>963
> 画質は落ちてても人間には綺麗に見えるフィルタなんていくらでもある
マジで?
2~3紹介してくれ Windowsのパスを指定するときって\を使う場合と/を使う場合がありますが
/を使うと不具合が起きるような場合ってありますか? pipenvを最近使い始めたのですが、疑問点があります。
一度仮想環境から出たあと、pipenv shellを行い、再度仮想環境に入り直そうとすると仮想環境が作り直されます。
毎回pipenv installを行い、ライブラリをインストールしなくてはならないのでしょうか。 >>970
pipenvはプロジェクトごとにフォルダを沸かせて管理してくれやがりますので
Linux系なら
1かいめのpipenv shellのあと
「echo $VIRTUAL_ENV」して
応答で表示されるパスを覚えとけ(ここでは仮に/Users/hoge/fooがかえってきたものとする)
あるいは(echo $VIRTUAL_ENVが反応しなかったときなども)
普段「python -m venv /Users/unko」とかでpipenvをよんでるとおもうので
そのパスをメモれ。
でもって
「export $VIRTUAL_ENV=/Users/hoge/foo」みたいに
魔法の呪文をシェル設定ファイルに書いておけ >>961
GANなので画像を補正しているわけではなく、生成している Pyhtonは外部ライブラリの氾濫とenv関連の乱立でダメになったね
シンプルで学習コストが低いという最大の強みが
言語本体ではなく周辺環境の学習・構築コストが著しく高くなったことで
相殺されてしまった
Guidoさんも嘆いているだろう >>961
きれーに拡大できる画像づくり ≒ ラスタ画像→ベクタ画像の自動変換 は
過去から現在まで
世界各国様々なやつらが
いろいろとがんがってきて
あれやそれやと販売してきはているのだが
未だ「コレダ!!!(´∀`)9 ビシッ!」という優れた製品が出てないのだ。
bmp→jpegで落ちる部分を補完するのだって
りくつはわかるが
おれたちに満足が行くクォリティの実行は
きっと不可能ではないのだろうが、
やっぱりゲキムズ >>970
export PIPENV_VENV_IN_PROJECT=true
をシェルの設定ファイルに書いておけば、プロジェクトのルートディレクトリに.venvという名前で仮想環境を作ってくれる pipenvがこれからのスタンダードになってくかと思いきや、最近はなんだかpoetryの方が良くね?って空気もあるし、かと思いきや名前忘れたけど新しい有力なパッケージマネージャが出てきたとかなんとか
どれを使えばええんや >>974
情報のエントロピー的に上限がある
それを超えるのは異世界にでも行かないと無理 >>973
もともと環境の分離が考えられてなかったpythonの造り自体にも一因があると思うぞ。
そのあたりの古臭さは結局最後まで改善されなかった。 >>980
nodeは標準でpipenv相当のパッケージマネージャが付属している
Goはコンパイラ自体がパッケージマネージャの機能を有しており、その上すべてをスタティックリンクするから実行環境にも依存しない >>983
Mac使ってるんならman openで確認できるよ >>984
ありがとうございます。
subprocess.callというのはunixコマンドを呼び出すもので、-Rオプションを付けると開くのではなく選択状態にするだけということですね。 Ruby のBundler が基本!
それを真似たのが、Node.js のnpm, yarn、
PHP のComposer
つまり、恥も外聞もなく、Ruby のシステムをパクったものが勝つw
>>969
Windows 10 で、Ruby を使っているけど、/ パス区切りで、問題ない!
Dir.glob( 'C:/Users/Owner/Videos/openload/*' ) do |full_path|
処理
end pipenv
vs
poetry
vs
pyflow グーグルに頼んでGoのコンパイラをPython対応にしてもらうしかないだろう
バイナリにしちまえばPythonのあらゆる欠点を改善できる pipenvは、仮想環境を取り込んでしまったのがそもそも大間違い。
パッケージ管理だけに特化すれば良かった。
poetryは一応外せるようにはなってるね。 pythonはパッケージをpythonバイナリからの相対位置で探すから、プロジェクトごとに
パッケージを分離しようとすると基本的にpythonバイナリごと丸コピーになる。
poetryってのも裏で仮想環境用意しているんじゃないかと思うが。 >>990
プロジェクトディレクトリからの相対パスをsys.pathに入れたければ
PYTHONPATH使えばいいんでないの? エラー文に表示されるハットキャレットはエラー位置を示しているのでしょうか。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 78日 5時間 55分 5秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。