くだすれPython(超初心者用) その37
レス数が1000を超えています。これ以上書き込みはできません。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/ pythonで変数を単にprintで出力等でなく、for文の中の引数のあたりで用いたいのですが
正しい表示の仕方が分からない状態です…。
【NO.1】
driver.execute_script("window.open('about:blank', 'tab0')")
driver.execute_script("window.open('about:blank', 'tab1')")
driver.execute_script("window.open('about:blank', 'tab2')")
driver.execute_script("window.open('about:blank', 'tab3')")
driver.execute_script("window.open('about:blank', 'tab4')")
以下tab3,tab4・・・・・、その都度変わる。
と、例えばこれは上手く動くのですが、こういうプログラムを 'tab0'の部分がいくつまで増えるかわからないので
for文を用いたいです。
そこで以下のようにしました。
【NO.2】
for aa in range(5):
bbb = 'tab' + str(aa)
print(bbb)
driver.execute_script("window.open('about:blank', bbb)")
これで5回ループしてwindow.openを繰り返したいのですが、エラーとなってしまいます。
('about:blank', bbb)") を ('about:blank', 'bbb')")としても ('about:blank', '{bbb}')")
としてもうまく動かないのですが、NO.1のように書いていると長い時はどれだけでも長くなってしまうので、
NO.2のようにしてうまく動いてほしいのですが、教えて頂きたいです。すみません…。 >エラーとなってしまいます
こんなふうに使いたいたいけどエラーになるのは激糞ってことで、
"window.open('about:blank', bbb)"
のbbbを文字列ではなく変数扱いにしろと
Pythonを作っているところに激しくクレームすればOK Method: Selenium::WebDriver::Driver#execute_script
http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium%2FWebDriver%2FDriver%3Aexecute_script
execute_script(script, *args)
Ruby では、第1引数に、JS のソースコード、
第2引数に、様々な型のオブジェクトの配列だけど window.open('about:blank', 'tab{:d}'.format(aa))
0埋めや桁指定したかったら、{:04d}とかにすればおk 有難うございました。
色々試させて頂きましたがなぜか出来ずに、
調べてみた>>12の似たようなケースのもので
'tab{%d}'%(aa
など数パターンをしてみましたが駄目でした。
window.open('about:blank')
のみでもタブは開きますが、>>8のように開いたタブを指定しないと
色々操作できないようなので…
引き続いて調べてみようと思います。 for aa in range(5):
bbb = 'tab' + str(aa)
print(bbb)
driver.execute_script(f"window.open('about:blank', '{bbb}')") 最も最近に起動した、タブを取得する、というような関数は無いのか? Python は、Ruby みたいに、
文字列内に、変数が埋め込めないのか
"some sentence...#{変数}..."
Python は、不便・ややこしい 多分ネームスペースの問題だけど詰まった…
myMod内に既製パッケージをインポートしてmyFunc内で既製Modを呼んでる
myMod内の砂場からmyFuncを呼ぶとちゃんと動く
しかし別ファイルのmainにmyModをインポートしてmyFuncを呼ぶと動かない
エラーメッセージは"既製パッケージに既製Modという属性は有りません"
(今手元に無いので概要)
インポートの仕方を色々変えてみたり、(import pkg, import pkg.mod, from pkg import mod…)
呼び方もフルパス、省略…
終いにはmain内にも既製パッケージをインポートしてみたりしても駄目
抽象的だけどなんか詰まりやすいポイントあればエスパーな人教えてください 取り敢えず既製パッケージはちゃんとmainから呼べるように出来てるんだから、既製パッケージに習って__init__.py置いてパッケージに纏めてみるかな… >>15
有難うございました!これで出来ました!
このパターンもどこかのサイトにあった記憶はありますが
結局投げ出し気味でしっかり試さず来ていたと思います…
tab0、tab1と指定して開いていて、あとでタブ切り替えもしっかり行ってくれました。
ありがとうございました! >しかし別ファイルのmainにmyModをインポートしてmyFuncを呼ぶと動かない
myModをインポートしても、myMod内のコードが実行されていないとか?
それにより、myFunc内で既製Modを呼んだタイミングでは、
既製パッケージはインポートされていないので、既製Modが見つからないとか?
import とは、ソースコードを実行するのか?
また、どの部分を実行するのか、しないのか?
まあ、具体的なソースコードが無いと、回答するのは難しい >>24
手元に無いのですまん、そりゃ分からんよね
でも取り敢えずタイミングというのは手掛かりになりそう、ありがとう
printとdir置いてトレースしてみる 3.6から文字列内に直接変数名を埋め込めるようになったんだよなあ
format()が余りにも不評だったんだろう
これだけで8文字取るからな
書籍でも従来の%を使っているものが多い loggerがformatに対応しないから俺もレガシーなフォーマットに戻った
変数展開はきっと使うと思うけど ubuntuでpython 2.x と 3.xを使い分けるにはどうするのが一番いいですか? Linuxを使っていないWinユーザーの俺でも
Linuxではそう言うのはシバンでやると知っているが.
次の質問はutf-8とかの文字コードを使い分けるにはどうするのが一番いいですか?
かな >>20-21
1. function print(){ };
2. (function print(){ })();
JavaScript では、1. のように、ただ関数を定義しても、実行されない。
2. のように関数を( ) で囲んで、式にしてから、( ) を付けて実行する
Python はよく知らないけど、
何かのスコープ内の関数・モジュールは、import されても実行されないのかも?
スコープ外に出してみれば?
つまり、ファイルスコープ
それか、あちこちに、print 文をばらまいて、
どこが実行されるか、チェックしてみれば?
>>30
Windows10・WSL のUbuntu シェルで、実行すると、
$ python3 --version
Python 3.5.2
$ python2 --version
プログラム 'python2' はまだインストールされていません。
次のように入力することでインストールできます:
sudo apt install python-minimal python3でreqieatsモジュールについてなのですが、postでパラメータを送る際のurlエンコードの文字コードを指定する方法はありますか? 「python3 requests post 文字コード」で検索! >>34
取得したレスポンスの文字化けに関する記事ばっかで、postのパラメータについてのものが見つけられません…
requestsでパラメータが英数のものは動くのですがurllibだとできなかったのでできればrequestで行いたいです。
dataにurllibでurlエンコード済みのstring文字列入れても駄目でした。 form 送信か
元々、そのform があるHTML に、文字コード・地域を指定しているはず 黙れ統失Rubyカス
>>35
requests.postのdataにurlencodeした結果を指定する、であってる
それでも化けるならContent-Typeヘッダーにcharsetつける
それでも化けるならおま環問題である可能性が高い >>35
最近プログラム板に来た人かな?
ID:tdHViWJsは、この板の全域に出没して適当な回答を繰り返す問題のある人物なので、
時間を無駄にしたくないのなら相手にしないほうがよい。
この人物は文章が特徴的なので、何度か目にすれば察せるようになるだろう。 pythonの勉強のためにAnacondaを導入しました
webサイトを見ながら触ってみたのですが、Anaconda promptでconda update condaと入力するとSolving environment:failedと表示されCondaHTTPErrorと続いてアップデートが完了していないと思われる現象が起こります
検索してみたのですが英語が読めず原因が分かりません
プログラム以前の問題で申し訳ないのですが原因と考えられる要素を教えてください >>41
ありがとうございます
インターネットには接続は問題ないようです >>37 >>38
ありがとうございます。
今手元にないので後でもう一度試してみます。 あいやー
おちぃんちんサーバに接続
ぴぃーーーー。小5ロリ以外を粛清せよ 発生しているエラーはこの人と同じ現象だと思います
英語は分かりませんが
conda config ―set ssl_verify no
をやってみろみたいな記述があったので試してみたのですが状況は変わりません…
https://github.com/conda/conda/issues/6007 あ
そもそも windows の firewall でブロックかな
ウィルス対策ソフトとか firewall とか一時的に無効でもだめか? >>48
ありがとうございます
ファイアウォールは切ってみてもダメでした
社内のPCを使っているのですが、ネットワークの知識もないのでどこが影響してるのかも追えなくてすいません… 配列aの要素が配列bにすべて含まれていればTrue、そうでなければFalseとしたい
配列a、bの要素数は可変(ただしlen(a)>=len(b))
また配列内で各要素は重複しない
例えば以下のような形です
#True
a=(1,2,3,4)
b=(2,1,3)
#False
a=(1,2)
b=(4,3)
こういうテストを大量に繰り返したいので、早い書き方を考えています
test=[num for num in a if num in b]
if len(test)==len(b)
みたいなのを考えてみたんですが、たぶんもっとスマートな方法があると思うので、教えてください >>50
aにないものが見つかったところでbreak→False判定 ってして
ループまわす 同じ配列に対して繰り返しその比較するならあらかじめソートしておくと良いことあるかもしれない。 ん、繰り返さないとしてもソートしたほうが速いのか?
よくわからん… Happiness is Mandatory. Citizen,are you happy? >>49
>社内のPC
会社のネットポリシーにひっかかって会社のファイアウォールがブロックしているんじゃないのか?
このせいで俺のところなんかでもアクセスできないところが色々ある
5chも行っちゃだめよだし >>51
よく考えたら内包表記でもifしたら速度出ないですね
これで試してみます 要素が含まれてるか検知するのに、lenやifを使うなんて
頭が悪すぎる。
粛清せねば成らない。 んあ、パイソンってループより内包表記のほうが速いってマジ? 内包表記でリストを作る場合は専用命令を使うので、微々たる物だが速くなる >>50
> 配列aの要素が配列bにすべて含まれていればTrue
> 例えば以下のような形です
> #True
> a=(1,2,3,4)
> b=(2,1,3)
???
4が配列bに含まれていないようだが?
なぜにTrue??? うーんまあ
配列aの要素が配列bの要素をすべて含んでいる場合
あるいは
配列bの要素が配列aにすべて含まれている場合
と書くのが正確ね >>65
このスレの質問者は超低脳が多い。
そんな奴の質問は辻褄が合うことはあまりない
そんなもんだから回答者は真の質問を見抜ける高脳でないと駄目
len(a)>=len(b)なら、配列aの要素が配列bにすべて含まれている可能性あるのは.... pythonでアプリ(実行ファイル)作るのは難しいよな
俺もスクリプト作るのが限界だわw わざわざ()してくれたとこ悪いんだけど.pyも実行ファイルなんだよね class NewClass:
hoge = "hoge"
class NewClass:
def __init__(self):
self.hoge = "hoge"
この2つに違いってありますか? >>76
なるほど継承するときに違いが出るということですね
ありがとうございました こうかな?
class A:
hage="hage"
class NewClass:
hoge=A()
a=NewClass()
b=NewClass()
b.hoge.hage="huga"
print(a.hoge.hage)
print(b.hoge.hage)
class NewClass2:
def __init__(self):
self.hoge=A()
a=NewClass2()
b=NewClass2()
b.hoge.hage="huga"
print(a.hoge.hage)
print(b.hoge.hage) >>80
なるほどコンストラクタ外に記述したプロパティは参照するたびに更新されるということですかね
ありがとうございました コンストラクタってどれのことを言っているんだろ
ダンダーinitのことかな? なるほどクラス変数とインスタンス変数の違いですかね
これが別物だということを分かっていませんでした
ありがとうございました リストの2次元配列に文字列をappendしていきたいのですが、
完全に空な2次元リストはどのように宣言すればいいんですか?
arr = [[]]
arr.append("apple")
arr.append("hage")
とすると
[[],[apple],[hage]]
となってしまいます
[[apple],[hage]]というリストを作りたいです リストにリストを持たせたければ
リストをappendするしかないんじゃないか
>>> arr = []
>>> arr.append(['apple'])
>>> arr.append(['hage'])
>>> arr
[['apple'], ['hage']] arr = [[] for _ in range(2)] あとは arr[0] と arr[1] にappendすればOK Linux上で動いてるパイソンコード(ライブラリ等も含めて)をWindows exeにする方法ってありますか? Linuxは全然分からないけど、windowsとかMACのモジュールと同じモジュールでも動くならあるよ >>93
pythonコードをLinux上でwinのexeに変換するプログラムはあるんじゃないのか。
これの需要はかなりありそうだし
ただ、WinにはないLinux独特の機能を使っているコードだとだめだろうが。 UbuntuのB shellでワンライナーで実行したいんですけど、
文字列をprintしようとすると変数と解釈されてしまうみたいでエラーが出てしまいます。
整数だったらエラーにならないんですが...
どうすればいいのでしょうか?
python -c "print("aaa")"
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'aaa' is not defined
python -c "print("1")"
1 >>99
すみません
自己解決しました
シングルクオートにしたらできました for を使って単純な足し算引き算を10億回の処理したら、皆のPCならどれくらいの時間かかる? そんなこと聞いてどうする。言語の違いでもそんなの意味ないのに。 いやこのスレ的に python の long の性能の話だろ多分 いいんじゃねーの聞くくらい
俺はやらないし答えないけど while ture でループ中に計算してだした値をリストに入れて次のループでもそのリストを使いたいんだがどうするんですか?
例えば[1] [1,1] [1,1,1] とループで表示していきたいとき
while true:
list=[]
list.append(1)
print(list)
time.sleep(5)
ってやってもずっと[1]が表示され続けるんですが >>112
そりゃ毎回list作り直してるからな
> list=[]
をループ外に出せばいい 半年前からC#を始めて、最近pythonの勉強も始めました
今は参考書を見ながら基本文法を勉強しているのですが、何か形にしてイメージを掴みたいなと思っています
みなさんが勉強する時に参考にしたアプリや、これを作ってみろ、というような物がありましたら是非教えてください GUI部分をC#
3目並べをモンテカルロ or ミニマックス法 python
受け渡し実装 古典的に分かり易い
ミニマックス法が良いんじゃね?[不明]
嫌なら、ネガマックス法とか
かな 他人の押し付けより自分が一番興味あることを言ってみろ
それに関連するものをやればいい class A,B,Cを継承したMainクラス内でそれぞれをsuper()するとき
(MAIN,self) (A,self) (B,self)となるのはどうしてなんですか
すごい気持ち悪いんですが、どうにかなりませんか? Guido の重要な洞察のひとつに、コードは書くよりも読まれることの方が多い、というものがあります。 あ、いや、明示とか可読性の話じゃなくて
なんでsuper(A)~(C)じゃないのか、という疑問です 開発者に聞いてこい
開発者の気持ちを答えなさいって国語の教師気取りかテメーはよ プログラマに文系が歓迎される理由が>>127のおかげでわかった エクセルソルバーのGRGみたいな非線形最適化制約有りをやりたいんだけど、Pythonでできる? 俺らに気持ちを悪さを>>123から読み解けだからな
文系なら、
>>123からなぜ気持ち悪いかがわかるし、どう何とかしても当然わかるんだろうな。
でも、理系だと無理で、>>126のような大補足が必要なんだろうな
理系だと手間がかかるからプログラマに文系が歓迎されるわけだ
>>123はPython開発者の気持ちを分かったうえで>>123なのかな いや単純に、superは引数の親クラスを呼んでくるということがわかってないために違和感生じてるんじゃないか
引数で指定したクラスの中身がそのまま使えるみたいな感覚でおるんでは? 他の言語を色々やって、その経験からPythonはすごい気持ち悪いんですがなんじゃないのか? >130
scipy.optimize
を使ったらできるんじゃないかな Pythonごときで気持ち悪いとか言ってる人は、Haskellみたら制約多過ぎて即死するだろうなw >>135
気持ちのいい制約っていうのが大事なんだよ 最近出たオライリーのHead First Python
第2版は買いですか? Foot Last Pythonが出るまで待ちです。 Head Firstは人を選ぶから自分で判断しなさい
俺はデザインパターンのを買ったが5ページで挫折した
あのノリにはついていけん Hip Middle Python
は、いつ出ますか?
尻好きの私は待ち遠しくてたまりません。 Head Firstは意識高い系な雰囲気が嫌い
Java系ばっかだと思ってたがPythonも出てんのね python2.xと3.xを同居させられないの。
#ifdef(PYTHON3)
print('world')
#else
print 'world'
#endif とか。 threading.Threadのrunにwin32com入れるにはpythoncom.CoInitialize()が必要というのは調べてわかったのですが、なぜこれが必要なのかわかりません
どなたかお教えいただければ幸いです >>147
Win32 というか COM 自体がスレッド毎に CoInitialize が必要だから windows10
python 3.6.4です
multiprocessingについて教えていただけないでしょうか?
ttps://docs.python.jp/3/library/multiprocessing.html
↑を見て例題にある
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
をやってみましたが
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\nanasi\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "C:\Users\nanasi\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'f' on <module '__main__' (built-in)>
というエラーがでて動きません。
いくつか他のもマルチプルプロセッシングがあるものをコピペしたりしてみたのですが
だいたいp.startのあたりでエラー出ます。
windowsではサポートしてない所があって動かないんでしょうか?
どうしたらwindowsで動くようになりますか? >>150
普通に*.pyファイルに保存して、VisualStudioデバッガやPowerShellから動かせたけど・・・
対話モードだとダメっぽいね >>152
import しない限り__name__の中身って__main__になるんじゃなかったですっけ??? >>154
メインでますね。
>>> print(__name__)
__main__ 自分のいる場所が __main__ でも
def f() で f が作られる場所の問題じゃね
global f
してみ >>157
いたるところにglobal f 入れてみましたがpythonコマンドにコピペすると
動かないですね
def fのところの___name__調べてみましたが
あるところだけ__main__になってないですね・・・
sub=__main__ #ほかのdefをifの中で名前()で呼び出した場合
hello bob
mp=__mp_main__ #def fの中
mein=__main__ #ifの中
かといってif無しでやっても
おんなじエラー出ます。
とりあえず、.py保存してから実行なら動くから実際問題はないのかな? ubuntuにanacondaをインストールしたのですけど、
pythonでは起動できなくて、python3で起動するように
なってしまいました。
インストールをどこか間違ったのでしょうか? echo $PATH
which python3
ってやってみろ
どうせパス通ってないだけ 漏れのWindows10・Ubuntu・WSL では、
which python3 (3.5)で、/usr/bin/python3 (3.5)
which python としても、そういうコマンドは無い。
そもそも、python2 か3か、あいまいだし
Windowsでは、元からpythonが入っていないから、
Anaconda をインストールするだけで良いけど、
Ubuntuだと、システムで使っているpythonが、元から入っているから、
もし、Anacondaのpythonのバージョンと異なると誤動作する
システムの方の/usr/bin/python3 を何かのアプリで使っている可能性があるから、
こちらは、うかつにバージョンアップできない
だから、Anacondaだけを仮想環境に閉じ込めて使えば、
自由にpythonのバージョンを変えても、システムに影響ない
Ruby on Rails を使うときの、rbenv みたいなもの。
Anacondaを、virtualenv(venv)で使えば? conda createからのactivateするんじゃないの? >>162
仮想環境はインストールした後の話だろ。
Anacondaをインストールするだけならシステムには影響ない。
それとも、その「仮想環境」ってのはDockerとかVMのことを言っているのか? 時期柄もあるだろうから書いておく
>>162はRubyスレを含む多数のスレで適当なことを書いて煙たがられているユーザーだ
触らないように
レス番号以外の固定ハンドルをつけている奴にも触らないように
それらは基本的に自意識過剰か承認欲求で頭がおかしくなっている tupleをlistに変換したいのですが、ぐぐって見つけたコードを真似て入力してもTypeErrorになります。
t = ('one', 'two', 'three')
l = list(t)
なんか間違ってる? >>169
間違ってない
うちのPython3.6.4のコマンドウインドウにコピペして実行した結果は以下のとおり
>>> t = ('one', 'two', 'three')
>>> l = list(t)
>>> l
['one', 'two', 'three'] >>171
ファイル作ってもいけた
k = ('one', 'two', 'three')
l = list(k)
print(l) こういうのはゲームだと思ってやらなきゃ…
仕事と思っちゃダメだ…楽しまないと覚えられん…
…何から手をつけて良いか分からん泣 仕事なら目標が明確だから何から手を付けていいかわからんてことはないだろう 色々教えてくれた。スレ内の知り合いが、一年近く来ない。
今頃、どうしてるんだろう。 漏れは、10言語ぐらい知ってるけど「みんなのPython」にも書いてある
Anaconda は、元からPython が入っていない、Windows を対象にしている。
元からPythonが入っていないから、
Pythonを入れても、バッティングしないから大丈夫
元からPythonが入っている環境では、
専門家じゃないと環境構築できないから、説明しないって書いてある
これは、Pythonを入れるとバッティングするから、
素人では環境構築できないっていう事
仮想OS とか、virtualenv(venv) とか、何らかの仮想環境を使わないと無理
漏れのWindows10・Ubuntu・WSL では、
which python3 (3.5)で、/usr/bin/python3 (3.5)
これを例えば、python3 を、3.5 とは異なるバージョンと結び付けたいのなら、
/usr/bin/python3 (3.5)よりも前方に、探索パスを追加しないといけない。
コマンドの実行ファイルは、探索パスの前方からの順に探されるから
だから、rbenv, virtualenv などで、activate すると、
$PATH の一番最初に、自分が使いたいバージョンのパスが追加される
PATH="$VIRTUAL_ENV/bin:$PATH"
まあ「python virtualenv 仕組み」で検索して
こういう仕組みを、初心者に説明するのが無理だから、
「みんなのPython」では説明していない
Linux の環境構築なんて、素人じゃ無理。
LPIC などの、Linux資格を持っていないと無理 きっとrubyが欠陥言語だからユーザーがこんなんなんでしょうな >>173
とりあえず覚えたいじゃなくて、仕事なら最初からやること決まってるじゃん?
自分は明確な目的がないから、思い付いたものはとりあえずpython で出来るかどうか試す、なんて無駄なことやってるぞ
この道に嵌まりたかったら、それで良いけど テキスト内のキーワード指定して、集計データ返してくれるなら、
スクリプトじゃなくて良い。ただ、なでしこ言語は挫折した。 画像のような仕組みは何と言えば良いのですか?
取得したデータをPythonで画像のように出力したいので、やり方か仕組みを調べようとしたのですが、何と検索して良いのか分かりません
https://i.imgur.com/4fXnUAH.jpg >>185
Windows なら python windows gui
Linux なら python linux gui
とかで検査 >>185
PythonならWebアプリにしてHTMLで出力したほうがいいよ
ネイティブGUIをPythonで作ろうと思うと、極めてマイナーなフレームワークにどっぷり浸かることになる
極めても全く価値のないスキルであり、時間の無駄だ 本についてなんですが、ソーテック社の「いちばんやさしいPython入門教室」って
本は良いですか? 返答ありがとうございます
>>186
これがGUIというんですね…
よく耳にするTkinter がいいのかな?こちらも調べてみます
>>187
なるほどhtmlですか
こちらでも良さそう… 調べたら分かりやすかったので、こちらからやってみます スマホアプリにも出来そうですし
Python ってGUIを作るのが大変なんですね
>>189
その場でパッとデータを確認できたらいいことと、更新したら即データが反映されるようになってほしいので…
でも、パワポ出力は他で使えそうなのでまた調べてみます いつも、お世話に成ってますw
トランプからカードを引いて、マークつけを行いたいです。
関数Sample2の結果を返すにはどうすれば良いでしょうか?
教えて下さい。
https://ideone.com/085uNT sudo update-alternatives --config python >>186
怪しいので、身体を検査させてもらいます。 >>189
出力だけで入力イラネであればパワポやpdf出力の方がファイルセーブもできて良いよな。 >>188
Amazonだと高評価だけどどうだろう
実際に本屋に行って見るのが良いかもね〜
かく言う俺もガチガチの初心者だから本探ししてる 「みんなのPython 第4版、2017」が定本
そこに、なでしこの作者・クジラ飛行机が参入。
その後、掌田津耶乃・大津真など、多言語の作者も参入 1 2 3
4 5 6
7 8 9
の入力があった時に行ごとの計算結果を出したいときってどうしたらいいですか? ちょっと状況分かんないけど
合計ならforで行ごとに
sum([1, 2, 3])
とか Ruby なら、
text = <<'EOT'
1 2 3
4 5 6
7 8 9
EOT
text.each_line do |line| # 1行ずつ処理する
# 末尾の改行を削除して、空白区切りで、配列に入れる
numbers = line.chomp!.split
# 数値に変換してから、配列内のすべての数字を足す
puts numbers.map(&:to_i).inject(:+)
end 酷いなRuby。Perlの悪しき轍を踏んでいるのか。 >>197
pandas だと行ごとの map とか reduce とかあるし Flaskを使ってWebサービスを作ろうと思っています。
その裏ではある処理を行うPythonのプログラムがあって、
その結果をリアルタイムにWebページに反映するという仕組みを作りたいのです。
例えるなら時計のページのようなものです。
このようなものを実現する方法として、どの様にするのが良いでしょうか?
自分なりに考えてみたところでは次のようなやり方で出来るかなと思うのですが
なんだか無駄が多いような気がして、もっとスマートに実現出来るのでは?という気がします。
アドバイスを頂けると嬉しいです、よろしくお願いします。
(1)バックグラウンド処理の部分をthreadingを継承したクラスで作成し
(2)Webサービス本体となるapp.pyで、(1)をインスタンス化して実行
(3)(1)からの処理結果はapp.pyにコールバックで返却
(4)app.pyのコールバック関数はsocketioを使ってWebページに処理結果を送る
(5)websocketを受け取ったWebページは、処理結果をページに反映させる >>188
「めんどうなことはpythonにさせよう」が面白かった。 >>202
リアルタイムで更新したいならフロントエンドにreactを使え >>197
#スペース区切りの数字を受け取り 3回
#l=[list(map(int,input().split())) for _ in range(3)]
#完成するデータ
l=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#横の合計
[print(sum(i)) for i in l]
#改行
print()
#縦の合計
[print(sum(i)) for i in list(zip(*l))] こんくらいブラウザでやれば?
`
1 2 3
4 5 6
7 8 9
`
.trim().split`\n`
.map(row => row.split` `.map(Number).reduce((a, b) => a + b))
.forEach(rowSum => console.log(rowSum)); なんで最近のプログラミング界ではforが迫害されてmapやreduceがもてはやされてるの?
初心者には分かりにくいと思うんだが。 s.split(",")
s.replace(",","\t")
",".join(s)
joinだけ何故こんな文法に? >>209
基本的には、パフォーマンス上のメリットがあるから。
けれど、PythonやJavaScript(ES6)の場合はジェネレータもあるので、
パフォーマンスを保ちつつ、for文を使ったやさしい書き方もできる。
Javaだと、ガチで>>207の書き方しかできない。 >>211
join を文字列のメソッドにしたかったから >>210
仕事でソフト開発している人が、初心者のために分かりやすいコーディングをしているとは思えないよな。 >>195
あっ、レス付いてる
ありがとうございます
注文することにしました
読んでみたらレビューしますね >>202
このスレのレベルを超えた質問で場違いな感じの質問だな >>215
逆だよ。仕事でソフト開発している人が、難読コードを書いちゃいかんだろ。 >>218
例えば、リスト内包表記は慣れたらめちゃくちゃわかりやすいんだけど、初心者には不評
でも慣れてる人にはわかりやすいから内包表記を使いまくるってことだろう >>212
>>207よりこっちのほうが分かりやすいと?そうかなぁ?
昔ながらのfor文に慣れてるからそう思うだけで、初心者に聞いてみたらむしろ逆なんじゃない?知らんけど
何より識別子が増えて名付けが辛い。
const mat = `
1 2 3
4 5 6
7 8 9
`.trim();
for (const row of mat.split`\n`) {
const rowAry = row.split` `;
let rowSum = 0;
for (const cel of rowAry) {
rowSum += Number(cel);
}
console.log(rowSum);
} joinは文字列の連結がウリなのに、引数を一個しか指定できないのが謎過ぎる
",".join("A","B","C")ってやりたい時に、実際はあらかじめ"A","B","C"をリストに入れるか
+で連結しとかんといかんって本末転倒だろ >>221
[ ]で囲むだけだろ
Pythonでは可変長引数はあまり好まれない >>209
初心者はどっちから教えても一緒だと思う >>225
俺も大差ないと思う
forでダラダラ書くより、map,reduce,filterで簡素に書けるなら使ったほうがいいからな こんにちは
タイムカードを処理するアプリを作りたいと思っていて、月の勤務記録を一括で読み込んで実労働時間を出そうと思ってます。
1行毎(1日毎)に実労働時間を出して最後にそれを全て足そうと思っているのですが、行ごとの処理の仕方がわからないんです…
ご回答よろしくお願いします。 一行分の入力データと
一行分の入力データから得たい出力データを記載しろ 1行分の入力 2017/03/01 12:00-15:00 16:00-24:00
出力 11
こんな感じです
そもそもsys.stdin.readlines()で処理するのが正しいんですかね pandas.read_from_hogehoge >>> import datetime
>>> import pandas
>>> from io import StringIO
>>> mindif = lambda s: (lambda x: td(x[1])-td(x[0]))(s.split('-'))
>>> td = lambda s: (lambda x: datetime.timedelta(hours=x[0], minutes=x[1]))(list(map(int, s.split(':'))))
>>> f = StringIO('''\
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
''')
>>> a = pandas.read_table(f, header=None, sep=' ')
>>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
>>> a
0 1 2 3 4
0 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
1 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
2 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
3 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00 >>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
この2行は
>>> a[3] = a[1].map(mindif) + a[2].map(mindif)
だけで良かった 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) Ruby だと、時刻に、24時は無いけど。
23まで
午前中は、どう表記してる?
03:05, 3:05 のどっち? >>229
ごめん。仕様ミスで行数が増えたら対処できない。
そこは改変してくれ。
https://ideone.com/1izELX >>233
午前中は5:00まで29:00の仕様です >>238
5時がタイムカード上では29時なんか
夜23時から早朝の5時勤務の場合
タイムカードは23:00-29:00
夜23時から早朝の6:00時勤務の場合
タイムカードは23:00-06:00
夜1時から早朝の5時勤務の場合
タイムカードは25:00-29:00
とかになるのか >>240
そうです
なのであり得ませんがフル勤務の場合は5:00-29:00になりますね >>238
それって残業代どうなるの?深夜勤務、8時間超えたら、〇時間超えたら何割増しってあるんでしょ? 規模によるがw
数百万から数千万の未払金が発生するなww
ただの問題サイトのテストケースだろうけどなw >>242
そこからは自力で書いてみようと思ってます >>229
医師とかだとこういう勤務形態になるのかな 月200時間以上ざんぎょーしてた頃がなつかしーわー
3れんきん(中日は24時間勤務)とかふつうにあった
書類上は
5分仕事 15分休憩
の繰り返しになってた 仕様が決定して有るなら、作業みたいなモノだろうに。
そんなに仕事を抱え込めるのかな?
管理も兼任してたら、オーバーフローでオーバーロードですな。ww Ruby スレに書き込んだのは、python スレの書き込みとは別人。
ID も異なるはず
python スレの書き込みを見て、
Ruby ではどうプログラミングするべきか、考えてみたが難しかった pythonで書けてrubyで難しいなんてことがあるのか。
ちょっと意外 >>250
出せるけど、書式変更が あーーー
https://ideone.com/aCw7iG
調べても2,3分で実装まで5分掛からないんだから、頑張ろうな。
実質、2行増えただけだしな。 >調べても2,3分で実装まで5分掛からないんだから、頑張ろうな。
"超"初心者=>調べることができない、調べようとしない、頑張ることができない人
超初心者に不可能なことを要求するなよ。初心者ならこれらのことは出来るんだが >>255
>>244 で
自分で書いてみます。って書いてるやん とは言え。偉そうにしたのはスマンかった。
>>250
ごめん。ちょっと調子に乗ってた。
失礼しました。 >>255
いえいえとんでもないです
本当にありがとうございます!調べても分からなかったところだったので… 検索の仕方は
言語 項目
python 日付
python 曜日
とかで、hitする。と思う。 素直に行くなら、
公式Documentを落として、
英語で、ファイル内検索
かな。 for index, row in mr.iterrows():
a = row.ix[0]
a.replace(u"月","a")
月をaに置換したいんだけどうまくいかない・・・どうすればいい? 'nichi月🔥水moku金do'.replace(/月/gu, 'a'); >261
panda は使ったことないのでよくわからないけれど、
str.replace(s, t) について言うと
文字列はイミューダブルだから、replaceでstrが書き換わるわけではない。
書き換わった値が返ってくるので、それを変数に代入することが必要。
つまり、a = a.replace(s, t) のようにする。
さらに、aに再代入しても、
iter.ix[0]の中身は変わらない。
なので、
iter.ix[0]=iter.ix[0].replace(s, t)
のようにする必要があるのだと思う。
外してたらゴメン >>263
まさに知りたかった答えです助かりました!
>>262
セミコロンが付いてるし、他の言語かな? Githubで公開されていたライブラリ?モジュール?を利用したプログラムを書いているのですが、
このライブラリの関数の中に、WebからJson形式で値を取得するものがあります。
これを実行するとコンソールにズラーっと結果がPrintされるのですが、
このPrintを無効にしてコンソール上に出力しないようにする事は出来るでしょうか?
デバッグ用のPrint等が流れて読めなくなってしまい、邪魔なので出さないようにしたいです。
よろしくお願い致します。 ライブラリなら普通はlogging使ってるはずだから設定で消せる
もし直接printしてるようならそんなものは今すぐ投げ捨てて他を探せ
そんな低品質なゴミを使ってると後々取り返しのつかないトラブルの原因になりかねない >>266
頭が良い奴なら、ソース弄らないで動的に関数内のprint部分だけコメントになるようにするとかできるんだろうが(デコレータのような使い方で)。
でも、そんな奴は5chのpythonスレにはいないだろう 無効にする割合は、40ぐらいに設定して置いた方が無難 優秀な奴が、労力をかける場所を間違わないと思うけどな。
ほんの1つのライブラリなんだから、他を探すのが正解だと思うぞい!ww まじめにライセンスを読むのはいかがわしい事を考えてる奴だけ説 @GPS取得
↓
Aネットにあるjsonを取得
↓
BGPS内容・json内容を0.5秒おきに出力
↑の処理をするプログラムを組んでいます。
@はすぐ処理が終わるので問題ありませんが、Aは使用環境が外でモバイル通信を使用しているためかAの処理だけで最大5秒かかることがあってBの処理が大幅に遅れてしまいます。
Aのみ裏で処理して、@とBをループさせたいのですが、いい方法ありますでしょうか? 先ほどの書き方だとjsonを0.5秒以内に取得するということになってしまうので修正します。
@GPS取得(0.5秒ごとに処理)
↓
Aネットにあるjsonを取得(10秒ごとに処理)
↓
BGPS内容・json内容を出力(0.5秒ごとに処理)
10秒に1回以外は@とBのループなので問題ありませんが、↑の処理だと10秒に1回はAを処理するときに時間がかかってしまってBの処理が0.5秒で処理できなくなってしまうのが問題です。 スレッドという処理があったのでこれを使えばいけそうでした
自己解決すみません。 俺ならGPSロギングとJSON取得はそれぞれ全く別個に作って別プロセスで動かすわ
結果はタイムスタンプを使って後で結合すればいい f = open("precictor_result.txt","a")
f.write(result," ",predict," ",data_test,"\n" )
f.close()
これだと、引数が多いとエラーが出る
,の代わりに+を使うと、数値として計算するようで、
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U21') dtype('<U21') dtype('<U21')
とエラーが出る
とりあえず、簡単に出力させて中身を確認したいがどのようするのがスマートだろうか? 変数が何なのかは知らんが
>数値として計算する
なら文字列に変換すれば良いだろ >>281
レスありがとうございます
変数全てに対して文字列に変換するのが面倒で・・・
例えば、
print(result," ",predict," ",data_test,)
であれば問題なく出力されますので
ファイルに保存する場合ももっとスマートにできる方法があれば助かります これで、良いのかな?
f = open('text.txt', 'r')
for i in f:
print (str(i))
f.close() 見たら分かると思うけど、
f.write( str(i) )
と言う構想 ありがとうございます。
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
でうまくいきました。ただ、大量の変数を出力する場合、
標準出力ではうまくいくわけですから、全て文字列にキャストするのはちょっと面倒と感じています。
例えば、
print(result," ",predict," ",data_test) #実際にはもっと多くの変数が並ぶ
こんな場合、これではエラーが出ますが、イメージとしては、
f.write( str((result," ",predict," ",data_test)) )
のような物でもあればもっと気軽にファイル出力できるような感じです str = [result, predict, data_test]
for i in str
f.write()
これで動くっけ? >>275-279
スレッドは、同一プロセスだろ。
こういうのは、別のプロセスでよくある
数秒毎に書き込むプロセスAと、1秒毎に読み込むプロセスBがある
B は、ファイルをスタンプを見て、
新たに書き込まれた情報が無ければ、. を出力して、
新情報があれば、o を出力するみたいなやつ
制御・組み込み系で多い
...o....o...o.....o....o.. name = 'John'
age = 20 + 3
print "名前は #{name}、年齢は #{age}歳"
Ruby では、テンプレート文字列って言うのかな?
文字列の中で、式を展開できる。
最終的に、変数が文字列型に変換される
Python には、こういう機能が無いのか? >>280
printは引数を強制的に文字列に変換するうえに
キーワードオプションで出力先を変更できるから
以下で通るはず。空白も改行も勝手に入る
詳しくはドキュメントの「Python標準ライブラリ-組み込み関数」を参照
print(result, predict, data_test, file=f) >>288
文字列中での式展開はPython3.6から実装された
3.6以前ではこの機能がなく、%記法やstr.formatメソッドを使う
%記法
print("名前は %s、年齢は %d" % (name, age))
str.formatメソッド
print("名前は {}、年齢は {}".format(name, age))
フォーマット済み文字列リテラル
print(f"名前は {name}、年齢は {age}") >>285
データ構造が不明だから、何とも言えない。
何処かで、
書き込むべき内容を1つのリストに纏めたり
できない? >>291
Pythonを初めて2日目でデータ構造についても正直よく分かってないです
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import cross_validation, metrics
from sklearn.externals import joblib
import warnings
warnings.filterwarnings("ignore")
mr = pd.read_table("test-data.txt",header=-1)
mr = mr[0:70]
clf = RandomForestClassifier()
clf = joblib.load('cars.pkl');
for row_index, row in mr.iterrows():
result = row.ix[0]
data_test = row.ix[1:]
predict = clf.predict(data_test)
f = open("test.txt","a")
print (result," ",predict," ",data_test )
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
# 標準出力を、ちょっとファイルに出力して中身を確認したいだけで全てキャスト(今は3つなので良いが10くらいになると面倒)するのは面倒なので上の行をもう少し簡素にしたい
f.close() >>289
標準出力にその機能があるなら、writeでも何とかならないでしょうかね?
>>286
str = [result, predict, data_test]
for i in str:
f.write(i)
残念ながら、
TypeError: write() argument must be str, not numpy.int64
という結果が表示されます >>293
これはprint関数の機能だからwriteでは使えないよ
こう変えるだけなんだけど、どうしてもwriteじゃなきゃいけないの?
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
↓
print(result, predict, data_test, file=f) resultとかの各変数の中身が文字列じゃない気がする pandasは触った事ないから、協力できない。
差支えが無ければ、test-data.txtの中身(記述形式)を教えてくれ。
でたらめな数値や造語で良い。そうしたら、何か分かるかも。 >>294
出力されたデータをExcelでグラフにしたり検証したい時などとりあえずテキストデータにしたいのです
普段はperlを使っているのですがそれだとprintそのままにファイルハンドルを付けるだけで
標準でもテキストでも好きに出力できるので同じような使い方ができればと思っています
どちらも出力させて、画面で分かるものはそれでいいですし、
詳細な検討がしたい場合はファイルをExcelなどで開いて再検討する感じです
また、pythonやpandasに慣れて居らずその結果が不安で適宜Excelの結果と照合したいというのもあります
本当はperlでやりたいのですが機械学習について調べているとPythonのモジュールを使う物ばかりで・・・
>>296
生データそのままです
0 1 1 100 99 98 97 101
0 1 1 101 100 99 98 97
1 1 1 97 101 100 99 98
1 1 1 98 97 101 100 99
1 0 1 99 98 97 101 100
1 0 0 100 99 98 97 101
1 0 0 101 100 99 98 97 画面に出力する(普通にprintする)プログラムを作って、
ファイルに保存したい場合には
foo.py > filename
という風に実行する、
というやり方はご存知ですか? in/out を、標準入出力にしておけば、パイプでファイルにつなげられる
スクリプトファイル < 入力ファイル > 出力ファイル >>298,300
おぉーその方法がありましたか
大昔DOSで使ったことがありますが完全に忘れていました!
>>299
とりあえずサンプルプログラムをそのままでpandasもpythonもまだ使いこなせていません
色々なtypeがある場合でも、さくっと出力してくれますか? 聞けば聴くほど分からなくなってくる。
取りあえず出力したいなら、
>>290 >>301
Pythonを初めて2日目じゃ何もわからないだろう
ここの連中が言っているアドバイスすら理解不能だろ
一通りさっとでもPython学習をやってから>>292のようなコードに臨んだほうが良い >>297
print(result, predict, data_test) # 標準出力に出力
print(result, predict, data_test, file=f) # ファイルハンドル f のファイルに出力
これが理解できないならもうワシは知らん >>303
貰ったアドバイスは一応理解できてると思う
ただ、以前perlを覚えた頃は掲示板をネットで調べたり、大量のサンプルプログラムを眺めたり
書き換えたりしながら完全に独学で覚えたから用語などがいまいち分からない
良い勉強方法があるなら知りたい
↓についても、その勉強方法ならアドバイスを聞くだけで分かりそう?
>>304
ありがとうございます
お手数おかけしましたが無事動作しました
fh.write()
としていて動作が失敗していました
コメントアウトしたら動作しました 俺もperl5やってたけど、公式ドキュメントが有った。
それと同じ様にpython公式ドキュメントをやれば良い。 pythonスレでperlとかrubyとか言い出す奴は
やべー奴ってことか どこスレでもCとか言い出す奴はアルティメットアンタッチャブル >>307
このスレでperlとかrubyとか言い出す奴はperlとかrubyを超使えるやべーレベルの人だからな
そんな人からすればpythonは言語としてperlとかrubyより使えねーとなるだろうな。 perlやruby使いが出てきたら、「機械学習」って唱えれば退散するよw 配列の要素数が、
len(list)
Python は、頭おかしいw
この式を、どう解釈せえっちゅーんや!
一方、Ruby では、オブジェクト指向。
ary.length >>310
いや、python使えねーって言うやつはある程度pythonを知っているやつだろう。知らなければ批判も感想もないわけだから。
俺もほとんどわからないから何とも言えない。これまでPerlやCばっかり使っててpythonやろうと思わなかったから。 >>313
perlの人はPythonを少しは知っているだろ
Pythonプログラム書いているんだし
Perlの人はPythonならPython1日目よりsklearn、pandaを使ったプログラム書ける自信があるという感じで始めたんだろうが。
その自信の元はperlを超使えるやべーレベルな気がする
でも、スレで無様をさらすことになってしまったが ここは超初心者スレだからコミュ能力ないのはしょうがないのかもしれないが
perlの人のやりたかったのは>>280からだいぶ後の>>340の
>普段はperlを使っているのですがそれだとprintそのままにファイルハンドルを付けるだけで
>標準でもテキストでも好きに出力できるので同じような使い方ができればと思っています
なんだろう。
最初にこれを出せば、面倒を連呼しなくて済んだのにな >>314
超使える訳じゃないけど、そもそもperlしか知らない
そのperlもまともに勉強したわけではなく
サバイバル英語の勉強方法みたいな感じで覚えたから元から無様ですよ
上でも書いたけど、作りたいプログラムを見つけてきたら
それをいじりながら勉強する感じでやってきた
とりあえず、様々なエラーが出たけど、エラーもでることなく10時間CPU回しっぱなしで動作してる
よく分からないながらでも、とりあえず書けば機械学習ができてしまうのは便利だと思ってる
>>311
まじそれ。perlでできるならわざわざ新しい言語を覚えようとは思わなかった
スコープの使い方まで違うし慣れるまで色々嵌りながら学習する必要があると思うと泣けてくる perlってテキスト処理ぐらいしかやったことないけど
え、それだけ? ってぐらい簡単に書けちゃうとこがあって面白いね >>316-317
書き捨てならperlでも良いと思う
何ヶ月後か何年後かにメンテするときに
忘れてから(あるいは他人のもののメンテ)が勝負
pythonの方にしといて良かったと思える >>312
頭悪いなあ
Rubyにだってstrとかreadlineとかgsubとかあるだろ
pythonのlen(x)は中でx.__len__()を呼んでおり、お前の好きなオブジェクト指向(笑)だ
完全に実装者任せのrubyとは違い、Pythonがlen関数を使うことには下記の2つの意味がある
・メソッド名を確実に統一する(Rubyみたいに自由だとcountとか誤った名前を付ける奴が出てくる)
・__len__の返した結果が規約(必ず整数であること)に従っていることをチェックして保証する
Pythonの方がより規約を重視した高度な仕組みなんだよ >>317
本当にかんたんに書けるよな
Perl使ってる身からすれば、同じP言語だし可能な限りPythonでも簡単にできる方法が知りたくなる
>>319
他の言語は殆ど知らないので何とも・・・メンテかんたんなら良いね
Javaとかネットで良いと言われて、2週間頑張ったけど、長すぎる命令文が覚えきれずタイプが面倒で諦めた
今となっては当時作ったJavaアプリは命令文すら覚えていないから書き直すことすらできないけどね 一回importしたモジュールを取り消すことできますか? 関数の中でimportしたら、関数処理が終わるごとに解放されるの? >>325
Pythonはすごい賢い言語だから、importを頭に書いても
必要になった時に動的にインポートし、不要になったら解放してくれるんじゃないのかな。 ただ、毎回インポート・解放すると時間が消費するから
そんなのやめて常駐にしたいときには、キャッシュしといてと指示すれば解放しないで常駐するように
する機能とかも提供している気がする。 試してないけどdel モジュール名はできないの
明示的に参照消したらさすがにガベコレしてくれるだろ
って妄想 あまり行儀良くないけど、
使う関数の中でローカルにインポートしてもいいんだよ
いつ使うか分からんからどう扱うか知らんけど、ライブラリとか読んでると後始末に使うモジュールは大体そうしてる
例えば
def Quit():
import sys, os
各々のexit関数を試みる
みたいな感じで
これらは軽いからあまりいい例では無いと思うが、ちょっと他の例が思い出せないので >>321
Perl なら、Python ではなく、Ruby Ruby大好きおっさんかあんちゃん。爺さんはないだろうが。 Rubyは名前を呼んではいけない(アンカーをつけてはいけない)あの人みたいになると思うと無理 (´・ω・`)あのーパイソンって小学生でもひと月ぐらいでできるぐらいかんたんってきいたけどほんとなの?
らんらんもプログラマーになれるかなー? (´・ω・`)アマゾンで参考書さがしてるけどおすすめの参考書はありますか?
パイソンの本ってむちゃくちゃ多いからまようー この本が、定本。
みんなのPython 第4版、2017
Python は、Ruby よりも難しい。
先に、この本を読め
たのしいRuby 第5版、2016
北大の湊真一が作った、ZDD なら、Ruby gem もある パイチンくんの本がいっぱい出すぎで
どれを買っていいかわからないよ
みんなのパイチンくん
スラスラわかるパイチンくん
パイチンくん1年生
いちばんやさしいパイチンくんの教科書
いきなりパイチンくん
やさしいパイチンくん
パイチンくんからはじめる数学入門
独習パイチンくん入門
ホンキで覚えるパイチンくん
パイチンくん機械学習プログラミング 「みんなのPython」が定本
そこへ、なでしこの作者・クジラ飛行机が参入した。
そこへ掌田津耶乃・大津真などの、多言語の作者も参入 rubyの本も急に沢山出た時期があるけど
流行りで出てくる本の九割以上は糞本
スルーでOK まあ流行りで本が沢山出るならまだ良い方だよ。それだけ売れるってことで、それはつまりやってる人が多いということだから。 ディレクトリを指定してその中にあるファイルのパスをリストで取得できるモジュールとかないですか? Ruby なら、Dir.glob だけど、
「python list dir glob」で検索! rubyが廃れた理由が分かるな。
いやrailsのバッテリーとして余生は安泰かwww Pythonではタブ記号の代わりにスペースを使う人が多いですが移動が面倒です。
タブ記号だと例えば、インデントが4つあっても4回の右キーを押すだけで移動できますが、
スペースの場合、16回くらい押す必要がありますよね。
どのようにしたらいいでしょうか?
エディタは秀丸を使っています。 >>347
・Sakuraエディタにのりかえる
・インデント機能を使った後、Tab->空白機能を使う >>348
Sakuraエディタは使ったことないけど、多分秀丸にも同じ機能はあると思うが、
タブにスペースを使うことが問題で
タブがスペースだと結局は16回、もしくは、ショートカットキーで飛ぶことになり面倒でない?
Tab->空白変換 機能は使ってるけど、
サンプルプログラムと手書きを何度もやりとりしてると
タブとスペースの混在で結構良い頻度でエラーになってしまう
統一したいと思ったり・・・ >>349
pythonファイルならスペース4つを一回で移動できるエディタたくさんあるよ >>345
globってそういう時に使うのですか
サンクス >>349
うちは秀丸の設定で1タブ4半角スペース固定にしてる
それで
書いたらはしらせる直前に
全選択して Tab->空白 ソフトタブだっけ?
俺Atomだけどスペース混在がどうのとか気になったことない 今ってたしか
タブとスペースの混在は('A`)ヴァーで
タブは(・A・)イクナイ
スペース4つにしましょうキャンペーン中じゃなかったっけ >>344
os.walk()
os.path.walk()
os.listdir() windows10
Python 3.6.5 C:\pythonにインストール済み
pip install -U selenium でseleniumインストール済み
ChromeDriver 2.37 インストール済み
C:\chromedriverに入れて、Pathも通しました
aiueo.pyを作って、C:\myscriptフォルダに入れています
中身は、下になります
from selenium import webdriver
driver = webdriver.Chrome()
これを実行すると、
C:\myscript>python aiueo.py
Traceback (most recent call last):
File "aiueo.py", line 1, in <module>
from selenium import webdriver
File "C:\python\lib\site-packages\selenium\webdriver\__init__.py", line 18, in <module>
from .firefox.webdriver import WebDriver as Firefox # noqa
File "C:\python\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 20, in <module>
import http.client as http_client
File "C:\python\lib\http\client.py", line 72, in <module>
import email.message
File "C:\python\lib\email\message.py", line 10, in <module>
import uu
File "C:\myscript\uu.py", line 7, in <module>
options = webdriver.ChromeOptions()
AttributeError: module 'selenium.webdriver' has no attribute 'ChromeOptions'
エラーで実行できません。。助けてください できたー!!エラー治りました!
同じフォルダに入っていた、uu.pyというファイルを消したところ治りました
なぜ消したら治ったのか原因がよくわかりません
uu.pyをフォルダに入れると、またエラーが発生します
作っちゃいけないファイル名などがあるのでしょうか。。 >>360
ありがとうございます。もともとuu.pyというファイルがあったのですね
適当にaa.py test.py cc.py kkk.pyとか適当ファイルいろいろ作って試してました・・
勉強になりました、ありがとうございます >>362
プログラミングやったことない超初心者です。
スクレイピングでやりたいことがあるのでpythonインストールしてみました。
ライブラリとファイル名、かち合わないように気を付けます
わざわざありがとうございます! openpyxlを使ってExcelファイルのA2セルの値を取り出そうとしたんだけど
そのセルに書かれている計算式が取り出せました。
計算式ではなく、計算結果を取り出すにはどうしたらよいの?
こう書きました→print(ws['A2'].value) 長文になって申し訳ないけど、メソッドに関する質問。
1.Pythonで始めから使えるメソッド(.replace()とか)に呼び名はある?
ビルトインメソッド?、ビルトイン関数?、メソッド?それとも他の呼び名?
2.help()関数のようにビルトインメソッド(仮)の定義を見ることはできるか?
print(help(replace))と入力すると
>>>NameError: name 'replace' is not defined となるため見れない
3.ビルトインメソッド(仮)はなぜ存在しているのか?ビルトイン関数で代替できないのか?
メソッドがオブジェクト指向版の関数という自分の解釈なら、
メソッドはライブラリかユーザー定義用だけにしておいて、
ビルトインオブジェクト(クラス)のメソッドなんて用意するべきではないと思うから。
以上3点です。よろしくお願いします。 >>368
ほんとだ。ありがとうございます。
メソッドを呼び出す際は、ここでもオブジェクトが必要だったんですね。
そして、print()関数は不要でしたねすみません。 >>370
1.はクラスメソッド、スタティックメソッドのことを言っているような気がするが、
XXXclass.replace()なクラスメソッド、スタティックメソッドはあったっけな感じだが....
>>367
3.に関してはPythonを作っている奴らにきくのが一番良い
ついでにjava,rubyも同様だからjava,rubyスレでも尋ねたほうが良いかも ビルトイン型のメソッドはその型固有の機能だから
ビルトイン関数とは用途が違うんじゃないの Ruby では、継承できて、インスタンスを作れる、class と、
継承もできず、インスタンスも作れない、module の2つがある
classに、moduleをインクルードして、機能を付け加えることを、Mix-in と言う
module内の関数は、多くのクラスで使えるような、汎用的なもの Recognizing hand-written digits
画像ファイルを読み込んで結果だけ取得したい。
どの様なコードになりますか?
この場合は、421です。
http://fast-uploader.com/file/7079419507797/ chainer_pix2pixを自前で用意した画像でやってみたんですが
updater.pyの70行辺りで
x_in[i,:] = xp.asarray(batch[i][0])
Exception in main training loop: Broadcasting failedというエラーが出ました
なんとかnumpyのコピーのエラーという事が分かったのですが
どう直したらいいのか分かりません・・・お助け下さい・・・
batch[0][0]とx_in[i,:]の中身の画像これです
https://imgur.com/a/PViEJ
pix2pix
ttps://github.com/pfnet-research/chainer-pix2pix
ここの解説見ながらちょっとづつやってみたんですがほぼほぼわかってないです・・・。
ttps://spjai.com/pix2pix-image-generation/
windows 10です エラーはわかるが、お前が何をやってるのか全くわからんから答える気にならん >>382
すいませんでした
参考にしたサイトにある魚の線画を描くと魚っぽい写真になるの逆で
カラーの線画のない画像から黒い線画を書かせるという事がやりたいです。 失礼ww IQ220ぐらい有るんですけど
>>375
が解りません
教えて下さい
http://fast-uploader.com/file/7079435955779/
ぶひぶひぃ ぶひうぃいぃぃぃぃいいっwwww
ぶひぃいいいいいいいいいいいいいいいwwwwwwwwwww プログラミング自体初心者&独学です
aizu online judgeを順に解いていっているのですが以下のコードでRuntime Errorが出てしまいました。
なにが悪いのかまったくわからないので教えてください!
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_4_B
pi = 3.14159265359
r = int(input())
area = pi*pi*r
length = pi*r*2
print('{:.5f}'.format(area),'{:.5f}'.format(length)) 小学生からやり直します(汗)
以下に修正しても同じエラーになるんですがなぜでしょうか(泣)
pi = 3.14159265359
r = int(input())
area = r*r*pi
length = 2*r*pi
print('{:.6f}'.format(area),'{:.6f}'.format(length)) なんかこれで通りました。
import math
r = float(input())
pi=math.pi
s = ( r ** 2 ) * pi
l = 2 * r * pi
print(s, l) 試したけど、受け取り値がint型だけど、実際のテストケースではフロート型 既に解決してるけど、12.3が123として計算されてるな。 >>382
すいませんどこまで何をやったか、という事ですよね???
解説サイトにあったものをfacade_dataset.pyに丸っと上書き保存して
色のみの画像500枚をfacade/labelフォルダー
線のみの画像を500枚をfacade/baseフォルダーにいれて
同じように評価用画像もtest_dにdetabaseからとれるようにちょっと変えて
python train_facade.py -g 0 -o image --snapshot_interval 100実行したところエラーがでたって感じです
(学習用と教師用の画像は500枚用意はしたんですが
動くかどうかも怪しいのでいまは三枚づつしかフォルダーに入れてません) >>392
なんかすごいことをやっているな。俺には出来るレベルの物ではないな。
ただ、>>381のコードはそっくりそのままgithubよりもって来た物なのか?
それとも何がしらの変更を加えている?
>>381は、コードはgithubのままだけどそれだとエラー出るからエラー出ないように修正したいてことかな
ひょっとしたら、中身の画像によっては要コード修正なのかもしれないのかもしれないが >>385
print(f'{area:.5f} {length:.5f}') >>381
ブロードキャスト出来ない状態だから、テンソル(numpyアレイ)の次元が合ってないんだろう
元ソースと自分のプログラムで両辺のshapeをプリントかデバッガで見て比較すれば間違えた箇所に気付くと思う
それでもダメなら、もっと簡単なmnistサンプルとかでnumpyの処理を勉強し直した方がいいかも darknetで検出した結果だけをキャプチャーするのって、どうするの?
ダメなら、テラテイルで聞くわww >>393
いくつか変更というか、
どちらかが途中で変更されたみたいで
そのままだとエラー出る感じです
>>395
ありがとうございます
numpyほぼほぼわかってなかったので
numpy勉強して小さい画像サンプルで
元のと同じ条件でやってみたものと
自分のやってるものと比較してみます。
何をやっていいのかもわからなかったんで
書いてもらった単語調べるだけでヒントザクザクで助かります
ほんとありがとうございます chainerはデータのパックが面倒くさいからあまり好きじゃない
numpy→タプルデータセット→イテレータ→アップデータ→トレーナー
tensorflowはshape未定義のプレースホルダーのままテンソル演算をさせる所が分かりにくい
最終的にC++やC#のアプリに組み込みたい時はこれしかないけど
kerasはnumpyを縦ベクトル化してfit関数に渡すだけだから初心者向けで一番楽だと思う
日本語の解説本が少ないけどwebの記事はそれなりにあるはず インポートエラー、format_excみたいなやつが永遠と出るんだがなぜでしょうか...
3日前から急に発症して、前回まで動いてたpyファイル全て実行できない...
python入れ直したり、anacondaで入れ直したりしたけど改善されないです 何かが、自動update されたのかも
例えば、moduleA が、moduleB 2.2 に依存しているとする。
ここで、Bが2.3 に、updateされたため、Aが使えなくなったとか
それか、環境変数PATH を上書きしたとか Anacondaでトラブってるの見る度に気持ち良くなるわ
バカすぎ 数字や数字を変えながら、ちょっとスクリプトを作る場合、
def(サブルーチン?関数?) の場所について、物理的に下側にないとエラーが出てしまう
プログラムの書き換える度に、下までカーソルを動かさないといけないし
地味に不便なんだけど、何とかならない? 深層部にif __name__ == '__main__':を持ってくるか。
clss XX():
def YY()
処理
なら、clss XXのdef YYを
def YY()
処理
として、classから外す。
タスクバーが邪魔なら、非表示か移動
スクロールが無いなら、スクロールが有るエディターに変更する。
出力結果なら、外部ファイルに保存して確認する。
クリックしたら、クリックした文字の横に移動できる。
状況が解らない。
スクショ上げてくれたら、何か言えるかもな。 初めまして。
よろしければ回答お願いします!
大学でpython3を使いブロックスというゲームのプレイヤーAIを作ろうとしているのですが、効率の良い攻め方を実現する方法が分かりません。
盤面の状況次第で臨機応変に対処できるようにしたいです。
何か良いアイデアはないでしょうか。
因みにpythonを扱うのはこの授業が初めてです。
以下ブロックスの詳細です!
http://saikoro-table.com/2016/12/05/blokus/ ??
??? ?? ???
モンテ使って、機械学習で数百万回読み込ませば良い。 alpha zeroのパクりならgithubにいくつか転がってるぞ >>407
すみません。自分含め班員もど素人しかいないので多分難しいです… 難しくても丸パクりすればOK
理解は後からついてくる ちなみに素のモンテカルロ木探索だけだとあんまり強さが出ないかべらぼうな時間がかかる可能性があるので注意 >>406
追記です。ボードの情報は board[X][Y]で与えられます。また、置ける場所をリスト?で返してくれる関数も与えられています。
ただこれをただ使ってるだけだと弱くて弱くて…笑
ということで、相手のピースとピースのつなぎ目を狙わせたいのですが、(そうすると強い)
いい方法解答お願いします。 >>404
===test.py====
def learn(learn_mr,predict_mr):
maxrange = 15000
#・・・・・・・・・・・・
def iroiro:
maxrange = 15000
#・・・・・・・・・・・・
def iroiro2:
maxrange = 2
#・・・・・・・・・・・・
# def が大量に続く
###
input_file = 's1_x33x.txt' 例えばこの辺りを時々更新したい
f = open(input_file, 'r', encoding='utf-8')
Allf = f.read()
f.close()
Allf = Allf.replace("y","0 1 0 0 0") 例えばこの辺りを時々更新したい
row_step = 200
for row in range( row_step , 208900 ): 例えばこの辺りを時々更新したい
l_mr = mr[ row-row_step : row ]
p_mr = mr[ row : row+1 ]
dummy = learn(l_mr,p_mr)
dummy2 = iroiro(Allf)
print ("予備テスト完了") 例えばこの辺りを時々更新したい
###
エディタは秀丸で###と###の間を時々更新するばあい、言語によっては###間を先頭に書いて
下にサブルーチンをだらだら書いて必要に応じて呼び出す使い方ができるけどPythonだとどうすればいいかと思って
ショートカットキーで移動したり方法はあるけど、ファイルを開いてちょっと編集して閉じるみたいな使い方をすると意外とストレスで >>403
関数の中にさらにインデントしたdefで関数を書けるから、ちょっとしたマクロっぽいことをしたい時は使う場所の近くに内部関数定義してる
あとは初心者には難しめだけどラムダ式とか >>413
単純にリストにしたら?
[ [ファイル名], [置き換え] ]
classで纏めれるdefは纏める。
それから、継承して行く形かな。
https://ideone.com/4X41rB
print部分を適当な配列に渡す。ぐらいかな。
最後のfor文は、アイデアが出ない。 >>413
forループの中でしか使わない関数なら、forループ内で内部関数としてdefをすることも可能
関数が大きい場合は、調整が必要な部分だけ内部関数に書いて、その関数内でもう一度外側の関数を呼ぶ二段方式もある
def outfunc(x):
外側の関数
for i in range(10):
def infunc(y):
調整が必要な部分
outfunc()
infunc() # 内部関数呼び出し
変更箇所が少ない関数を下に置きたいだけなら、メインシーケンスを def main(): などで囲んで関数化してから、
一番最後にインデント無しの main() か、if __name__ == '__main__': と インデント付き main() を一緒に書く
def main():
メインの処理
func()
def func(x):
外部関数の処理
if __name__ == '__main__':
main() # この時点で名前解決出来ていればエラーにならない ブロックスについては、将棋・囲碁みたいに、評価基準を考える必要がある
1. 敵ピースの角に置く
2. 1マスのピースは、勝負所まで取っておく
まず、こういう高評価される手を列挙して、点数を付ける
AI の研究は、何年も掛かる >>413
別のファイルに分けて、import すれば?
変数をコマンドライン引数で渡すとか、
設定ファイルに書いて読み込むとか
エディタは普通、VSCode を使う。
ソースコードのある範囲だけを、右クリックメニューから実行できる
普通、動的言語は関数定義を上に書かないと、関数を呼び出せない。
例外は、JavaScript で、関数の巻き上げ >>406
つなぎ目ならx,yからx+1,y+1までの4箇所の判定で対角2つ埋まってて2つ空いてる所を探せば良さそう
置ける場所リストの周辺の盤面を検索して、対角パターンを優先して、さらに出来るだけ大きいブロックを選べばいいと思う
全部の角の判定が正確に出来なくても、部分的にでも判定出来ればそこそこ強くなると思う >>420
訂正
対角2つが敵、1つが自分、1つが空白だった >>418
ご回答ありがとです!因みに、あと二週間くらいで完成させなければならないのですが
点数つけるのは時間的にはどうなのでしょうか? >>420
回答ありがとです!これは自分もしたいなって考えてたのですが、どう書けばいいか分からなくてですね…
疑問点を列挙すると
@判定の仕方
A判定後の評価
B現在使ってる置ける場所を教えてくれる関数が返してくるリスト?をその評価でソートできるのか。
って感じで前途多難です( i _ i ) 評価基準を決めるには、何年も掛かる。
点数を決めて、敵AI と何千局も対戦して、微調整を続ける
将棋・囲碁もそう 大前提がブロックスを完成済み。として、話が進んでるが、
ブッロク自体を作れてるのか気になる。 期限が2週間も有り、大学費だしてるなら、
直接
講師[先生]に聞いた方が良いよ。
むしろ、聞け。
なんの為に学費だしてるんの? >>424
そうなんですね!それは厳しい…( i _ i )
>>425
ブロックはアルファベットaから21字が割り振られて最初から与えられていて
置ける場所を
(X座標、Y座標、ブロックの形、回転)
のリストで返してくれる関数?を使ってます。 >>426
手伝ってくれたら嬉しいです
>>427
先生が答えてくれない先生でですね…
聞いても調べてくださいとしか言われないので
こちらにお邪魔させていただきました… pythonてかやろうとしてることが難しいんじゃないの?
言語としては簡単な方でしょ、同じことを別の言語でやってみたら分かる そりゃあ、ブロックスなんて答えが無いだろ
将棋・囲碁みたいに、対戦コミュニティがあるか?
まず、コミュニティへ行って、AI 同士で、何千局も対戦して、
微調整を続けないと、無理だろ >>429
今時そんな殿様商売あるのかあやかりてぇ
いいなー先生様は 強いAI を作るのは無理だから、
とにかく、次に置けるマスだけを、リストに入れて、
その中からマスを適当に選んで、適当に選んだピースを置け
それで良い AIは可能な選択肢のうち、0点以上の最高得点手を打つ。同点時はランダム。初期値は0
AI同士に勝負させて、打った手は全部保存しておく。最終的に勝ったほうは手のそれぞれにプラス点、負け側はマイナス点
ってやろうぜw
それを二週間延々繰り返させたら強くなるんじゃなーい? どんなゲームだか知らんけど
とある局面のとある手に対して、
その後は両者ランダムに打って終わらせる試行を100回くらい繰り返して
勝った回数をその手のスコアとすれば良い 遊べる。ブロックスAIと言う課題なら
目安だと[GUI]は5日
ブロックスのAIを課題にするぐらいだと、逆算して
本人が半日から1日でブロックス自体が完成させれる段階で
長くても2日
残りの3,4日で
CPU AI をコレまでに教えた内容で、調整して下さい。みたいなモノ
どう、考えても[推測上の一日の固定時間 9時から20時45分]
[一日の作業量(思考)2,3時間]と過程しても、
2週間は多すぎる。
1日2日は前後する可能性が有るけど、辻褄が合わないな。
F欄大学か、なんちゃって専門学校かな? >>437
実験の一端でそもそもpythonもこの授業が初めてです。丸投げされました。 回答していただいた方ありがとうございます。
参考になります。 大学設定は嘘だな。
大学設定が本当だったら、今のお前に「そんな」課題だすアホ教員が悪いのか、
何も教えない大学で大金払ってる馬鹿なのか知らないけど、
質問内容で現在のレベルが分かる。
教えて貰うのに、
理解できてないなら、教えて貰ってないのと一緒。 >>440
行ってみます!
>>441
なんか自分お邪魔みたいだったですね…失礼しました。勉強します。 おう。
大学受験に失敗して6年引き篭もってる俺には、
大学生は邪魔だぞいww 2週間ははっきり言って課題に対して期間がみじかすぎるよ。
python精通してる人でも強いAI作ろうとしたら2週間以上かかる。
まあルール部分は用意されてるようだからその分割り引くべきかもだけど。 2週間なら>>436くらいが適当だとおもう。
あんま強くならないだろうけど。 >>416
コード紹介ありがとうございます。
まだ内容がしっかり決まって居無くってちょっと書き換えたいという時にはちょっと大げな感じになりますね
ある程度のコードの中が決まっていると良さそうですね
>>417
ありがとうございます
色々な方法があるのですね
今回の場合、mainを置く方法が手っ取り早そうです
ただ、試しに書いてみるとエラーが出ました
どこか間違えていますかね?
>>419
関数が巻き上げられるのはそこそこ一般的だと思っていました
IDEだとそんなこともできるのですか・・・
大昔、Exlipseを使っていたのですが重たくって重たくって使わなくなっていましたが検討してみようと思います
ありがとうございます。 新年度始まって間もないのにpythonでブロックス+AIの課題が出るような学科は情報系の学科なのかな。
情報系の学科なら今流行りの機械学習系のことも普通にやるんだろうな 横からなのですが>>187さんのWebアプリにしてはpythonでサーバー建ててブラウザで表示するで合ってますか? >>450
# sudo pip3 install bottle
# http://localhost:8080/hello/world
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080) >>447
コード貼り付け忘れていました
# ===test.py===
def main():
x = "H"
for num in range(5):
func(str(num))
def func(x,str):
print (x + "ello " + str)
if __name__ == '__main__':
main()
# UnboundLocalError: local variable 'func' referenced before assignment ブロックスてそんなに有名なゲームなんか?聞いたことないわ >>453
> def func(x,str):
の前に
> func(str(num))
の呼び出ししたらそりゃそうなるわな えっパイソンってホイストないの?
c系言語には大抵あるのに。
抽象度の高い処理頭の方に書いて、使用関数の実装はお尻のほうに置いとけて便利なのに >>456
ありがと
全部main()に入れるんだと勝手に思い込んでた Perlと比べてイライラすることがあったけど、
{
}
が不要なのはサクサク書けて良いな
Pythonの良いところまた1つ見つけた
>>457
perlしか知らないけど普段そういった使い方してたからあれば便利だよねー 関数を書く順番はどうでも良いよ
関数は全部グローバルに書いといて、ファイルの最後でmainを呼べばオーケー ってか、>>453はdef funcのインデント下げれば動くだろう >>460
こういうこと?
# ===test.py===
def main():
x = "H"
y = "h"
for num in range(5):
func(x,str(num))
func(y,str(num))
def func(x,str):
print (x + "ello" + str)
def func2(y,str):
print (x + "ello" + str)
if __name__ == '__main__':
main() >>461
それについては456で教えて貰って解決した>>458
>>462
訂正
def func2(y,str):
print (x + "ello" + str)
def func2(y,str):
print (y + "ello" + str) 呼ぶ側がfunc2になってないから動かないと思うけど、だいたいそういうこと >>457
そもそもpythonのdefは実行文だから spyder使ってるんだけど、defの中の変数が実行後の変数エクスプローラに表示されなくなるんだけど、表示させる方法ない?
もちろん実行時はその変数に値が格納されてるんだけど、defを出た瞬間に破棄されちゃうのかな。
いちいちprintしてデバッグするのめんどくさい デバッガはブレークポイント仕掛けたり1行ずつステップ実行しながら変数をウォッチするものだと思うので
実行中にリアルタイムで表示変えるのは超高速なエミュレータでもないと…; >>467
globalにすれば出来るのは知ってるけど、いちいち関数化したのを戻すのが面倒だから他に方法がないのかと思って。
>>469
リアルタイムでみたいわけじゃなく、プログラム実行後にメモリに残った変数を確認したいって意味ね。
おかげ気づいたけど、defを抜ける直前にブレークポイント置いてそこで確認すりゃあいのかな。けど関数の分割多いと辛いな。 printめんどくさいとか言ってるがある程度のサイズのあるプログラムはログ残したほうが結局は作業がはかどる。 ログはprintでは無いと言う事を肝に免じて置いて下さい。 >>473
ログをprintで書くことで悦に入っています。 >>472
printがめんどくさいと言う人ならログ出すように変更するのもめんどくさいになるだろう。
めんどくさいのいやだいやだで、(コードに手を入れないで)
ツール(デバッガ)で楽々出来るようにしたいにニダと言う感じだろう
実運用ではこのログはイラネなんだろうが。 肝に免じてどうする
肝は銘ずる(刻みつける)ものだ >>476
遊園地のいるところは
肝に銘じてが
話し言葉で
>肝にめんじて
になるところなんだよ。
鉛(標準語では訛)がでたんだろ >>479
間違えました、py2exeです。日本語文字をprintしようとすると
UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence
って出るんですよね。コードをutf-8にしたり、文字列の先頭にuを付けてみましたが、きちんとexeが生成されません >>477
あああーーーー
それは、アカンww
明治時代の初期までなら、隣の県に行けば
言葉が通じないのもザラだったしなwww >>480
んでもってPythonは2系をつかってるのか?
あるいはWindowsのユーザー名が日本語なのか。
素直に3系つかうことと
py2exeするときはあきらめて日本語を含まないユーザー名を作って
そこからやる py2exeは3.6に対応してないから、バイナリ作るならpyinstallerの方がいいと思う
セットアップファイル作る必要もなくて楽だし bytesをfloat配列にする高速な方法無いでしょうか?
4バイトで1floatではなく、1バイトで0.0〜1.0の範囲の1floatの
同じ長さの配列が欲しいのですが pyinstallerで詰まったのは、pandasを使うスクリプトでエラーが出ることぐらい
pandasを 0.20.0 に落とせば通る様になると思う 精度気にしないなら
0x00 = 0.0
0x01 = 0.004
0x02 = 0.008
...
0xFA = 1.0
0xFB〜0xFF は使わない
とか勝手に決めれば良いだけ >>490
それ普通に255.0で割る方が速いだろw そうか?
>>490 も 250 で割るだけだから速度は一緒だぞ >>493
250.0で割るのだと元のバイト列にある251〜255を1.0に丸める処理が必要になるだろ。
考えてから発言する習慣付けなよ。 おいおい256.0だろ…
おまえは1を0.1にするのに9で割ると言うのかい? >>485
256 しかないんだから float f[256] の配列作って変換すればいいんじゃね? >>483 >>484
素直にパイインストーラーを使うことにします。ありがとうございました! windows辞めて、Ubuntuにしたらデフォルトでpython2,python3入ってるよ。
なんつってwwww これぞwww 悪魔の囁きwwwww それな
むしろデフォで入っていることが余計なトラブルの元になってる Pythonに依存した他のパッケージを動作させるためだけのものだよね
ユーザーが使ってはいけない >>501
何に騙されてそんなガセネタ信じとるんやwwwww UbuntuとかMacとかはpyenv入れてからAnaconda入れてとか結構面倒くさい Ubuntu系のlinux mintにAnaconda入れてる。
起動確認の初回しか、動かしてない。 オブジェクトをヒープ上にメモリ確保する場面は
どんな時ですか? 逆にヒープ以外にどこにメモリを確保するんだ?
それが答えじゃね? >>504
開発環境とシステム分けておくの大事だぞ 実行できない。
へるぷ
def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
□i = bisect(breakpoints, score)
□return grades[i]
[grade(score) for score in [33, 99, 77, 70, 89, 90, 100]] 実行できないってどういうことよ
エラーメッセージがあるならそれも載せろよ
まあわざと載せてないのかもしれないけど >>510
>>509が言っているだろ。開発環境とシステム分けてないから実行できないんだよ NameError: name 'bisect' is not defined
関数内にglobal と書いてもダメだった。 import bisect
で、TypeError: 'module' object is not callable
$ sudo pip3 install bisect で
Could not find a version that satisfies the requirement bisect (from versions: )
No matching distribution found for bisect
要件bisectを満たすバージョンを見つけることができませんでした(バージョンから:)
二等分線に一致する分布が見つかりませんでした 「みんなのPython」に書いてある
Anaconda は、Windows など予め、Python が入っていないOS が対象です。
Linux など、最初からPython が入っている場合は、プロに聞いて下さい。
この本では教えませんw
つまり、Pythonがバッティングするから。
Python3 というコマンドが、Python 3.4, 3.5 のどれを指すのか、
OSとAnacondaで、異なるバージョンの場合に厄介だから
$ which python3
/usr/bin/python3
$ which python3.5
/usr/bin/python3.5
$ file /usr/bin/python3
/usr/bin/python3: symbolic link to python3.5
つまり、Windows10・WSL・Ubuntu16.04 では、python3 → python3.5
異なるバージョンを使いたければ、仮想環境のvirtualenv(venv)を使って、
環境変数PATH を上書きしないといけない
activate ってすると、PATHが上書きされて、
システムとは異なるバージョンと結び付けられる
それか、Docker を使うとか Anaconda使ってないよw
Geanyから起動してる。
linux mint18 mate
python 3.6.3 システムバージョンの
python 3.5.2でも試したけど、一緒のエラー内容だった。 公式から、ライブラリ落として
入れないと駄目とか?
分からない。 本当に分からなかったので教えて貰いました。
https://teratail.com/questions/122985
import bisect
では、なく。
from bisect import bisect
と、記載しなければ成らなかった模様です。 help(help)について
help関数の定義を見たくてhelp(help)を実行したところ、
以下のような出力がありました。
Help on _Helper in module _sitebuiltins object:
class _Helper(builtins.object)
| Define the builtin 'help'.
|
| This is a wrapper around pydoc.help that provides a helpful message
| when 'help' is typed at the Python interactive prompt.
|
| Calling help() at the Python prompt starts an interactive help session.
| Calling help(thing) prints help for the python object 'thing'.
|
| Methods defined here:
|
以下略
見たいのは_Helper in module _sitebuiltinsではなくhelp function、
以下のような説明です。
help(object): help on object or class of object, except
help('name'): help on object/module named 'name'
help(): run utility, which starts with utility help
どうしてそれが出ないのか、ご教授いただけるとありがたいです。
Python3.6、pycharmを使用しています。 >>519
質問をすることでしか得られない、回答やアドバイスがある。
15分調べてもわからないことは、質問しよう!
何このサイト
入門者でも質問OKなのかな?
このスレだと15分調べて質問したらggksとか言われそうなんだが >>523
色々な意味で驚いた
間口が広いはずの、2/5chの存在意義が・・・
ただ、入門者だと実際ここで躓く事もあるし
ディレクトリ構造って実際理解するの結構大変
分かってるとツリーになってると言えるし、そもそも何が大変なのか説明する方が難しいレベルだし・・・
そういえば、最近のOSってアドレスにあるパスが一部しか書いてなかったりするけどみんな困らないのかな?
昔のOS使ってるとパス辿ればいいと分かるけど、パスの概念を勉強する機会が減りそう >>524
同意を求めるのじゃなくて質問すれば答えてくれんじゃね?そうゆうの? >>526
teratailで質問するとここと違いやさしく丁寧に教えてくれるよ >>526
グーグルでpython インストール で検索。
以上。 >>526
ネタだと思うけど、公式から自分が使用してるOSを選ぶ。
https://www.python.org/downloads/
32bit PCだと 64bit版は動かせない。
x86 32bit
x86-64 64bit ここは、Python の初心者用のスレだろ。
言語だけの初心者
PC・OS・情報処理の初心者用ではない。
Python以外の事は、知っているべき win機で特に理由が無いなら、
Windows x86-64 executable installer
Ubuntuならコッチみてくれ。
https://www.python.jp/install/ubuntu/index.html >>530
最初に、どれ動かして良いのか分からなかったからww
全部ダウンロードして、試した俺が居るぞww >>530
でもなぁー
毎日PCの電源を入れている人ならともかく
例えば高校数学にコンピュータあるけどあれするだけでもプログラミングソフトのセットアップって
重要で意外と難易度が高い
かといって、WindowsOS向け、Pythonセットアップスレとか作っても多分はやらない
ただ、少し慣れてきてUbuntuとかtensorflow-gpuとか入れろと言われるとトラブってる人も多いし
その記事だけでアフィが成り立つレベルだよ 526です。pythonのコード書くのはコマンドプロントだけ? pythonのエディタはWindowsのコマンドプロントだけ? >>533
学校も含めて他人のPCにインスコするときは
VM用意してその中で遊ぶのがマナー >>530
言語だけの初心者=PC・OS・情報処理の初心者やけど
よっておまえもなw >>536
それは無いよ。
USBブートで遊ぶべき。 >>536
VMってシステムに深く入り込むから大変なことになる
というかLANが使えなくなって半日嵌った >>539
???
VMware PlayerとかVirtualPCなんかだと普通のアプリケーションと変わらんぞ
ゲスト側のネットワーク設定はちょっとコツが要るけど アップデートしたら、仮想SW死んだことがある
環境的に物理的なトラブルと切り分けが調べられなくて泣きそうになった wxpythonでボタンをクリックしたら別のpyに書いたウィンドウを表示させているのですが、開いたpyウィンドウを閉じるともとのボタンをクリックしても再実行されません。
importは一度だけというのはわかっているのですが・・・
どのような記述をすれば閉じても何度でも再実行できるようになるのでしょうか。
教えて下さい。 wxpython を説明している、サイトを見て、勉強する >>544
5chのPythonスレのレベルを超えた質問
teratailで尋ねたほうが良いよ
>>546
このスレで出来る回答はそんなもんだよな >>548
実行ボタン処理が定義されて無いから?
詳しい人、どうぞww pythpn初心者だけどオブジェクト指向分からな過ぎて死にそうです
何かおすすめの本ありますか? 厳し過ぎやろ
俺が引いてんじゃねぇか!ww
[遊園地は]使い分けると深みに嵌まるから、この形式だけ抑えて後は垂れ流しだな。
https://ideone.com/VuRClI >>548
とりあえず、ボタン押してフレーム出すのはこう。
import wx
class ChildFrame( wx.Frame ):
def __init__( self, parent ):
super().__init__(parent, wx.ID_ANY)
sizer = wx.BoxSizer(wx.VERTICAL)
lb = wx.StaticText(self, wx.ID_ANY, "Hello!")
sizer.Add(lb)
self.SetSizer(sizer)
sizer.Fit(self)
class MainFrame( wx.Frame):
def __init__(self):
super().__init__(None, wx.ID_ANY )
sizer = wx.BoxSizer(wx.VERTICAL)
btn = wx.Button(self, wx.ID_ANY, "Push Me!")
sizer.Add(btn)
self.SetSizer(sizer)
sizer.Fit(self)
btn.Bind(wx.EVT_BUTTON, self.on_button)
def on_button( self, evt ):
child_window = ChildFrame(self)
child_window.Show()
if __name__ == "__main__":
app = wx.App()
frame = MainFrame()
frame.Show()
app.MainLoop() >>550
まずこの本で、オブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む。
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
この順番でやらないと、理解できないはず。
特に、オブジェクト指向の本は「スッキリ」しか存在しない >>553さん
ありがとうございます!
ただボタンを押した後のフレームを出す処理を他のファイルに書いています。
そういうやり方は一般的ではないのでしょうか?
def on_button( self, evt ):
import aaa
のようにaaa.pyを呼び出して処理させたいのですが、一回表示させて閉じると再表示させることができません。 >>555
ファンクションの中でimportして、しかもそれだけでウィンドウを出すってのはすごく変。
四の五のいわずにやめた方がいい。
大体そんなやり方してたら親ウィンドウすら渡せない。 >>555
子ウィンドウのコードを別のファイルにしたいなら、ChildWindowの定義部分を別ファイルにしてimportすればいい。 >>555
偉大なるこのスレの遊園地様が必死に質問しているteratailで聞いたほうがいいよ
処理を書いている他のファイルも提示して動くようにしてくださいと依頼すれば良い importは読み込んで実行というより
定義や宣言を読み込むため(だけ)に使うのが普通よね >>557
>ChildWindowの定義部分を別ファイルにしてimportすればいい
ChildWindowの定義部分がある別ファイルのaaa.pyをimportしているのが
on_buttonのimport aaaなんだろ import aaa
…
def on_button(…):
child_window = aaa.ChildFrame(…)
child_window.xxx = yyy
…
こんな感じかね ついでにimportで1回しか実行されない原因はこれ
http://python.matrix.jp/pages/tips/import.html#id4
C言語でいうインクルードガード的なのが働いてる ありがとうございます、大変勉強になりました。
頑張ります! >>560
wx.Frame.Showをimportするファイルに書くなって意味なんだけど、伝わりませんか、、、そうですか、、、すみません。 >>555
.pyファイルを1つの関数が代わり使うとは大胆だな。
単純に、 >>561
import aaa
aaa.pyファイルの中身を関数かクラスにする。 遊園地ww 公式ですと、こんな感じですなww
----aaa.py----
import bbb
bbb.A()
----bbb.py-----
def A():
print('Hello World') >>555
もしかしてimportするスクリプトにグローバルに書いてるのか
もしそうなら、面倒でも何か関数をdefして(例えばopen_window() とか名前を付けて)
その中にグローバルで書いてた処理を移動すべし
def on_button( self, evt ):
import aaa
aaa.open_window()
という風にすれば、on_button() を呼び出す度にopen_window()が確実に実行される 568さん、今日1日でここまで教えていただけると思わなかったです!
ほんとありがとうございます! >def on_button( self, evt ):
>import aaa
のaaa.pyのどんなことを書いてあるんだろ?
>>569は
>>553のdef on_button( self, evt ): の処理部をaaa.pyに書いて
動くように出来る? ああわかったよ、書けばいいんだろ、、、
>>>aaa.py
import wx
class ChildFrame(wx.Frame):
<中略>
>>>main.py
import wx
from aaa import *
class MainFrame(wx.Frame):
<中略>
def on_button(self, evt):
child_frame = new ChildFrame(self, wx.ID_ANY)
child_frame.Show() すまん、インデントが消えた。
ちなみにwxの子ウィンドウには親の参照渡しとかないと、親を閉じたときにアプリケーションが勝手に終了してくれないから
アプリケーションのメインウィンドウ以外には親を渡した方が良い。
これはaaa.pyに子ウィンドウを表示するグローバル関数を定義する場合も同じ(関数の引数として親を渡せるようにする)
じゃないと、出したフレーム片っ端から閉じないとプログラム終了しなくなる。 new ってなんだよ、、俺。
「new ChildFrame(・・・」のnewはいりません、ごめんなさい。 奥深いっす…でも楽しみです!
ありがとうございます! >>572
俺、超低脳でさっぱり分からないんだけど、
>wxの子ウィンドウには親の参照渡しとかないと、親を閉じたときにアプリケーションが勝手に終了してくれない
その親の参照渡しは>>571のどこに記述されているんだ? >>575
ChildFrameのコンストラクタの第一引数。 ていうとわかりにくいか?
child_frame=ChildFrame(self・・・
のself >>577
俺の知識では理解は無理だが、その部分なのか(そもそも、クラスを理解している奴なら質問しないだろうが)
ついでに、
>>553で>>571のような回答をくれればよかったんだろうがな(元の質問が別ファイルに子windowの記述がある)
一方、>>574は素直に>>553を>>570のようにするにはどうすれば良い?と質問すればよかったんだろうが
超初心者は俺もだがコミュ力ないから回答得るのに遠回りするよな
このスレは>>576で出たコンストラクタも、これ何?レベルの奴が質問だろうからな すまんね。
553書いたときはクラス一つ別のファイルに移動してそれを使うことが出来ない人がwx使ってウィンドウ出せるなんて思ってなかったんだよ。 >>553
コミュ力ない人の質問だと本当に教えてほしいことが相手に伝わらないことが多いから
回答する人は要エスパー力だからな 以下のコードを実行するとエラーになります
どうすればいいのでしょうか・・・
y = 10
print(f'test y = {y}') すいません3.6から実装されたf文字列というんですね
3.5だからエラーになるわけだ(´・ω・`) 別バージョンのpython入れてから、物凄いトラブってる。
dpkg-deb: エラー: サブプロセス ペースト がシグナル (Broken pipe) によって強制終了されました
処理中にエラーが発生しました:
フォーカスの処理とかしてないが、呼び出すだけなら、コレで良い?
試しては無い。
def Sample():
sub_win = Tkinter.Toplevel()
sub_win.title(u"Sub Process")
sub_win.geometry("400x300")
Sample() jupyter labとnotebookどっも括弧やクォーテーションの補完が効かないんだけどデフォ?
それともなんかおかしい? 553さんは普段仕事でpython利用されてるんですか?? 現場ですぐに使える! Pythonプログラミング逆引き大全 313の極意
って初心者向き? >>587
デフォルトでは補完されることになつているはず。
今の状態だとIpythonでも補完できないと思うが? すみません、質問です。
初歩的なことかもしれませんが、
Pythonを使うエディタで秀丸使ってるんですけど、
他のsublimeとかのほうが使いやすいですか?
秀丸だとインデント打つのが面倒で・・・。
ご回答よろしくお願いします。 そのうちプログラム打つのが面倒とか言い出しそうだな >>588
本業はc++
そっちでwx使ってるから、wx周りはそこそこ詳しいってだけ。
pythonは趣味。 意地張ってないでpycharmにしなさい。どうせpythonしか書かないでしょ。 >>592
俺は扱えないけど、プログラムのためのエディタはvimが良いらしいらしいよ
>>597
低脳にはそんな素晴らしいIDEは猫に小判だろう
書くPythonだって100行もいかないだろうし、そして、モジュールの中を見ることもないだろう >>591
ipythonでも補完できない。なんかなくちゃいけないファイルが無いんかなあ、探してみます。 >>598
vimは関係ないですよ。
プログラミング書くのに適してませんし。
>>598
趣味でPythonやっている>>553さんに「低脳」って言うのは言い過ぎだと思いますよ。 Vimが適してないとかアホか
お前がプログラミングに適してねえよマヌケ
一生懸命ひでまるおしてろ vimでプログラミングするって冗談じゃなかったのかw
これは真性だな・・・
俺はもう実務でPython扱ってるよ
すでに300行以上書いた
明日からちゃんとしたエディタインストールするわ
あとみんなレスするときはアンカー(>>)をつけるように
誰に対して言ってるのかわからない独り言みたいだからね 配列の例題なのですが
str = "Hello"
str2 = ""
for n in str:
str2 = str2 + (n * 2) + '~'
print(str2)
これのstr2 = ""は何をする為に必要なんでしょうか? >>603
試しに、str2 = "" を #str2 = "" して見ればOK
str2 = [] や str=0でもOKだが >>604
えらい!
ちゃんとアンカーつけられたじゃないかw
今日も仕事頑張ったし
もう寝るわ
おやすみノシ コメントアウトしたらNameErrorと出ました。
これはstr2=""でとりあえず文字として定義してるってことですかね >>600
「 ̄ `ヽ、 ______
L -‐ '´  ̄ `ヽ- 、 〉
/ ヽ\ /
// / / ヽヽ ヽ〈
ヽ、レ! { ム-t ハ li 、 i i }ト、
ハN | lヽ八l ヽjハVヽ、i j/ l !
/ハ. l ヽk== , r= 、ノルl lL」
ヽN、ハ l ┌‐┐ ゙l ノl l
ヽトjヽ、 ヽ_ノ ノ//レ′
r777777777tノ` ー r ´フ/′
j´ニゝ l|ヽ _/`\
〈 ‐ 知ってるが lト、 / 〃ゝ、
〈、ネ.. .lF V=="/ イl.
ト |お前の態度が とニヽ二/ l
ヽ.|l 〈ー- ! `ヽ. l
|l気に入らない lトニ、_ノ ヾ、!
|l__________l| \ ソ >>607
まだ見てるよね
ちょっとお母さんと代わってくれる?
お宅のお子さんはちゃんと小学校に通わせましたか?
お猿の学校では駄目ですよ
って教えてあげないといけないんだ >vimは関係ないですよ。
>プログラミング書くのに適してませんし。
vimを使っている奴は、真性だな・・・と主張しているのか 俺はvim使ってるけど確かにここの超初心者には勧めたくはないな 実際vimでコーディングする人は多いよ
きちんとカスタマイズしてやればIDEより軽いし機能も必要十分で普通に実用的 >>608
何のために、str2=""でとりあえず文字として定義が必要と思った?
str2 = str2 + (n * 2) + '~'
を
str2 += (n * 2) + '~'
として、とりあえず文字として定義を止めるとNameErrorと出るか?
ついでに、大きく変更して
str2 = 1 + 1 にしたら、str2はNameErrorとでるか?
最後に、NameErrorと出たのは
str2 = str2 + (n * 2) + '~'
のどれだ?(一番目のstr2、2番目のstr2、(n * 2)、'~')
中学あたりの数式計算で、
x = 1
y = y+x
としたとき、yの値は得られると思うか >>608
for文の中でstr2から値を参照しようとしてる
定義していない変数を参照することは出来ないから、空でもいいから初期化しないといけない
初期化していないと「空であるかどうか」すら判定出来ない オレ2年やけど体壊して1年休学してるから本当は3年やからな
なめんじゃねーぞ 授業で入るなら、小中学生が増えてもおかしない。
ただ、5chに来るかは来ないかだと、来ないだろうけど。 >>616
>>618
空っぽの変数として定義する必要があったってことですね。
プログラム初心者なもんで申し訳ない・・ >>592
普通に秀丸使ってるけどな
なんだかんだ言っても使い慣れたエディタが楽 pythonで作ったツールをexe化して配布しようとおもうんですけど
二次配布防止するにはどうすればいいですか?
今考えてるのはアイパスとコンピュータ名とかでhash値作ってサーバーに登録。
ツール起動時に毎回サーバーに問い合わせる、とかです。
ライセンスというほど大それたものでもないので、理想はサーバーつかわずに
初回に起動したそのpcじゃないと使えなくして、からくりがバレれば二次配布できちゃう
程度の精度でもいいんですけど。。 Q
多言語みたいに型だけ宣言して置く方法とか有りますか?
int i
print(type(i))
# era-
SyntaxError: invalid syntax >>624
大した物でないならならzipにパスワードで良いんじゃね?
そのサーバ維持やメンテナンス延々とするつもりならいいだろうがドメイン維持だけでもそれなりのコストになりそう >>624
起動時に、ユーザー名を拾って来て、適当なファイルに暗号化して入れる。
そのユーザー名と一致しなかったら、メッセージボック等を出して終了 pythonをバイナリ化出来たとしても、中の依存モジュールに1つでもGPLが入ってたらソース公開しないとライセンス違反になる
結局ソース解析されるだけの様な気がするけど… win機で動くかわからないけど、下記が動作するか調べてみたら。
import os
T=EMAIL_SUBJECT_PREFIX = '[%s]' % os.uname()[1]
print(T) >>629
zipにパスワードって解凍して中身取り出せば再配布し放題ですよね?
レンタルサーバーは広告ありの無料とかでよいかなぁと。 んごぉーーー
from socket import gethostname
T=EMAIL_SUBJECT_PREFX = '[%s]' % gethostname()
print(T) >>634
じゃあダウンロードサイトにもパスワードかけとけ >>634
心配しなくても、その程度のソフトなら二次配布なんて
しないよ。 >>636
ダウンロードサイトであーだこーだするなら、
ダウンロードさせるexeの内部に毎ダウンロードごとに異なるパスワード(hashとか)
を組み込んで、管理サーバーでこのパスとPC固有情報を関連付けすれば良いんじゃないのか。
管理サーバーを立てるぐらいの人ならこれぐらいは頑張って実現するだろう
>>624
それでexeの二次配布防止なるのか? exeは全て共通なんだろ。それで
管理サーバーはPC登録情報からexeが2次配布利用であると判断するんだ?
PCが登録しているかはわかると思うが オープンソースのライセンスを無視してバイナリ配布して
さらに自分だけコピープロテクトを掛けたりしたらサイトが炎上しそうだな
importするモジュールの選択にはくれぐれも気をつけてくれ 全部バイナリ化せんでも
肝心な部分だけDLL化pydとかpyc化して
それが無いと動かないようにするだけでもいいのに >>634
過去何度もレンサバ撤退してる
数年経過して撤退したら日常で使ってたそのソフトが急に使えなくなる
更に開発者の君自身がそのソフトに興味を失っており(良くある話)コンタクトができない
無責任すぎでしょ
独自フォーマットの開発者とか見てても思うけど数は少なくても思いつきでやって
はしご外されると作ってる人の迷惑はかなりの物がある 二次配布とか考えなくても、Vectorに登録する審査も通ると思えないけどな。 5chの伝統芸だからぁあああwwwwwwwwwwww
年間利用者0とかザラだしww
公開したら分かるんじゃないww それはないと思う
ベクターにサンプルプログラムの教科書に載ってそうなスクリプト置いてるけど
毎月15件くらいDLされてる 俺も2年間で60ダウンロードぐらいされてる。
コメントは1件だけ来た。
タイトル
無能
本文
無能なんですね。 python,exe化して、ふぁいるりねーむ公開してたな。
絶対パス + 拡張子[指定] [XXX]付けたい名前 連番りねーむ
それだけの機能 >>647
www
でも、コメントが付くだけでも正直かなり羨ましわ
もう何年も5個くらいおいたままになってるけど何のコメントもない
でも、俺自身が10年以上使ってるし、使い方があえてば凄く便利だし
絶対に使ってる人いる筈なんだけどなぁ・・・ githubにうpしてたら勝手にforkされて勝手にバージョンアップされてた 因みにどんなソフト
もし良ければ教えて
サンプルみたいなプログラムでも便利なら誰かアップしてくれるかな?
便利だから10年くらい使ってるけど、動作が微妙なんだよなぁー GAEで実行すると、datetimeを変換する際、
tzinfoになにを入れていても
time.mktime(t.timetuple())や
calendar.timegm(t.timetuple())
で、mktimeやtimegmを実行した時点で+9時間されてしまいます。
こういうものなのでしょうか? あ・・・勘違いしてました
ネットの変換ツールの方が+9時間してたようですorz ,をリアルタイムで数えるには、どうすれば良いでしょうか?
現状では、
1秒毎にファイルを開いて、更新してます。 >>656
その質問の仕方であなたが今なにをしていて、これから何をしたいと思っているのか解る人はいないと思う。 >>658
お前はteratailできけば良いだろ >>624
本体をwww鯖に置いて、配布するコードはそれをDLして呼び出すだけのものにする
配布コードに公開鍵置いて適当な認証コードを生成して鯖に送ってバリデーションする
配布コードは適当に難読化するか、バイナリにコンパイルしておく
プロテクションを強めにするなら毎回DL、そうでなければキャッシュOKにする
DLするファイル側にも日付やIPアドレスから鍵を生成して暗号化するとか、嫌がらせの方法はある str = "100 20" #<<色々な組み合わせが入る比較せよ↓だと90点しか取れなかった どこミスしたんだろ?
l = str
list = l.split(" ")
if(list[0] == list[1]):
print("eq")
elif(list[0] > list[1]):
print(list[0])
else:
print(list[1]) なんか問題文が雑だな。
もっと正確な仕様があるんじゃないの? 文字列で比較してるからじゃないの
問題の要求知らねえけど >>662
雑?ベストな書き方ってどんなの?
>>663
某人材派遣会社のテスト問題
10個ほどテストを通したらしいけど1つだけ出力が間違ってるらしい
境界線データなどは全てパスしてる ベストっていうか一言一句たがわず元の問題文書けよ。
もしかしたらテストっていうから漏らしたらいけないのかもしれないけど。 それにしても人材派遣会社でパイソンって。
Javaとかじゃないのか?
それとも言語は自由選択なのか? >>665
一切漏らしてはダメなんですまん
>>666
好きな言語でOKな所 ん〜そうなんか。
じゃあsplitに失敗した時の挙動とかはなんか条件なかった? >>668
入力値最終行の末尾に改行が1つ入ります。
とあるけど、多分これではないと思う
問題文は書けないけど他の問題↓でも上の条件はあるけど100点だった
aa = input()
list2 = aa.split(" ")
list2 = sorted(list2)
list2 = reversed(list2)
list = list(list2)
print ( int(list[0])*10+int(list[3]) + int(list[1])*10+int(list[2] )) 仕様クイズやってんじゃねえんだよ
言えないなら他を当たれ レベルは基礎(年収200万レベル)だから
得意な人が見ればスグに分かるかと思って・・・ >>670
確かに、90点の回答から問題文(知っているが言えない)を妄想して
どこミスしたか教えてクレクレだからな。 なんかざんしんなクレクレだな ほぼ同額ハネてるくせにずいぶん調子こいてんな人売り。 正確な使用かNGだった入力データか、せめて一方はないとなぁ >>674
スマン
入力データ(10種類テスト)は非公開
問題文はpaizaの規約でNG あんま思いつかないけどたとえば
str="+10 10"
でeqを出力しなきゃいけないとかかなぁ >>650
おもろーい
>>649
そりゃいるんじゃね?
普通の人スクリプトかけないし
自分もやりたいことがあってググったら
Pythonのスクリプト見つけて
それがきっかけでPython始めた 知ってるかもだけど、strとかlistとかの組み込み関数の名前を変数に使わない方がいい
例として以下を挙げる
>>> str = "A"
としたあと、組込み関数str()を使うと
以下のようにエラーになる
>>> str(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable https://qiita.com/makaishi2/items/63b7986f6da93dc55edd
上記のサイトを見ながら勉強しています
その中のword2vecを使用して学習させた結果を表示させてる部分に(学習に乱数を使っているので、同じ結果にはなりません)と表記されている箇所があるのですが、乱数はどの部分を指しているのでしょうか?
入力した値に対して毎回結果が変わってしまうのは違和感があるのですが、これが正しい考え方なのでしょうか? >>661
標準関数を変数名に使うな
コードを貼るなら、ideoneとかcodepad使え
文字列のまま比較するな pythonって遷移的なimportができてしまうのか。知らなかった。
これはちょっと嵌りポイントじゃないかなぁ? >>679
gensimのword2vec実装のなかで乱数を使っているということじゃないかな?
だからこそこに書いてあるコード中にはrandはない pythonって誰が書いても同じになるように作られたはずなのになんでwith分とか作っちゃったの? with文便利じゃん
途中でエラー出ようがハングしようが
必ずclose()されるし with分が許されるなら i++ も付けてほしいのよね Rubyにi++がないのと同様の理由でパイソンにもないんじゃないか?
適当だけど。 俺もよく知らんが整数がイミュータブルでさらにオブジェクト指向が組み合わさると++が難しいらしい。
理屈は知らん。 僕「それはちょっと…むずかしいです」
??「難しいかどうか聞いてるんじゃない!出来るんだな!?」
僕「はい…」 お願いします。
Pysideで1.jpgのフルスクリーンから1秒後に2.jpgのフルスクリーンに切り替えたいのですが、1.jpgが映ったままで止まってしまいます。
どのようにプログラムを直したら良いでしょうか?
import sys
from PySide import QtGui
import time
app = QtGui.QApplication(sys.argv)
pixmap = QtGui.QPixmap('/home/pi/Pictures/1.jpg')
screen = QtGui.QLabel()
screen.setPixmap(pixmap)
screen.showFullScreen()
sys.exit(app.exec_())
time.sleep(1.0)
app = QtGui.QApplication(sys.argv)
pixmap2 = QtGui.QPixmap('/home/pi/Pictures/2.jpg')
screen = QtGui.QLabel()
screen.setPixmap(pixmap2)
screen.showFullScreen()
sys.exit(app.exec_()) >>696
なんか、pythonプログラムだけど、Qtのプログラムの質問な感じで
ここできくよりQtスレで尋ねたほうが良いような感じだな。
Qtはpythonで激しく使われているけど、スレレベルからしてこのスレ連中で
使っている奴は激しく少ないだろうからな。
Qtさっぱりな俺でも、上の1.jpgコード部分をコピペして2.jpgに変更では動かんと思う
>>700
俺はQtをインストールすらしていない >>701
承知しました、コメントありがとうございました。 >>702
Qtさっぱりな俺がぱっとコード見て妄想で答えるが、
app = QtGui.QApplication(sys.argv) はQtGui初期化だろうからで2回は不要(1回でOK)。
sys.exit(app.exec_()) は終了ってことだから、time.sleep(1.0)の前の
sys.exit(app.exec_())でプログラム終了
な気がする。 すいません、前にchainerpix2pixの件で質問した者なんですが
あれからようやくCPUでは動いたものの、GPUではアウトオブメモリーになってしまいます
chainerのmnistのサンプルだとgpuは動いたので
使う画像のサイズを小さくすればいいのではと思って
get_example(self, i, crop_width=256):をcrop_width=1にしてみたのですが
同じくアウトオブメモリーになってしまいます・・・
どうしたらgpuで動くようになるのでしょうか?
あと、cudnnは使えないのでChainer_cudnnは0にしています このアプリは、GPU を使いますとか、
何か、そういう設定でもあるのかも matplotlibの文字化けを直そうとしてるんだけどどこにもキャッシュがない…
web見てると3つキャッシュがあるはずなのに1つしかない(fontList.Json)
こういう場合どうすればいいの…? >>706
有るよ。
ドロールとか組み込みなら、CPUで動かすのが基本
従ってインストールした時点でGPUが無効になってるライブラリも多い。 >>707
よく分からん時はOSのクリーンインストールから初めてmatplotlibをインストール OSクリーンインストールとかww
なんというオニ畜アドバイスww gamefaqていうサイトのurlパラメータで、print=1ってすると、印刷向けのデータを返してくれるんではないかな。
pythonのprintとは無関係 なんでそんな質問しているのかわからない
print=0だと駄目なんだろう >>718
Appending ?print=1 as a parameter, ie, http://www.gamefaqs.com/ps3/959558-fallout-new-vegas/faqs/61226**?print=1**,
simplifies the document for printing such that in a browser, the content appears to be plaintext (of course it's not, it's HTML).
Pythonのことを尋ねているんではなく、英語が分からんから意味が分からないと言うことだろ。 BMPファイルのヘッダ情報をいじりたい場合、
C言語だとバイナリーモードでファイルを開いて
ヘッダと同じ構造の構造体に格納→いじるっとしていたのですが
Pythonの場合はどうするのがスタンダードですか? >>721
bytearrayオブジェクトを作って添え字でアクセスするか、
ctypesモジュールにあるCの構造体互換の機能を使うかだけど
それならCでいいじゃんって話になる
そもそもスクリプト言語でバイナリデータを操作すること自体、あんまりメジャーじゃないと思う >>721
スタンダードかどうかは知らんが
ファイルヘッダのようにバイナリで色々なサイズのデータがあり、フォーマットが決まっている場合は
structモジュールのpack() とunpack() が使える
ファイルをバイナリモードで開くことと、結果がタプルで返ってくること(値を変えるならlist()を通す)、
書式指定文字列がperlよりタイトで厳密に一致しないといけないことに注意 >>721
725 よりは ctypes の方が結果的に楽
どうせやってることは同じ csvの書き込みで特定の列にのみ値を入れるってどうすればいいでしょうか?
例えば3列目にCと入れる場合、
writerow(['','','C'])
とはできると思うんですが、indexの[2]とかで挿入したいです。 >>727
['']*3で空配列作ってinsertでindex指定すればいけそうでした。
無視してください pythonista3で
カメラロールに保存した画像のパスを取得したいんですが
どうすればできますか? 前提として、pythonista3を始めて知った。
iPad持って無い& Pythonista3-omz:softwareは有料アプリ 1200円
いろいろ見たけど、appex.get_file_path()だと不可なので、
appex.get_attachments()
参考サイト
https://qiita.com/lm0x/items/28d5f7ef433a9654474c
別途、環境による共有ライブラリの不具合が有るかは不明 最悪、自分で保存場所を決めて[デフォルト位置を特定も可能]
自ら、取得しに行く手も有る。 >>731
pythonistaで画像をカメラロールに保存してそのパスを取得したい >>733
前提として、StaShの導入[pip等が使える?] 不要かも知れない?
通常のカメラロールにあるファイルは、
Pythonista3で直接扱えないのでDropboxを利用するらしい。
# そんな事ないかも?
import os
os.getcwd() #パス取得
何の画像か分からないよ。
WEB上の画像なのか? カメラ起動からの取得した画像なのか?
それによって回答も変わる。 取り敢えず、
web上のURLからの取得[ダウンロード]
http://alba.blog.jp/archives/74055809.html
写真のアクセスなど
http://omz-software.com/pythonista/docs/ios/photos.html 写真へのアクセス
http://omz-software.com/editorial/docs/ios/photos.html
んーー 力不足だ。すまん。
テラテイルなら答えてくれるかも知れない。そっちで聞いてくれ。
ただ、画像はデフォルトでカメラロールに送られると書かれてるから、
カメラロールのURLさえ分かれば、直接叩いたりできないのかなー? とかは思う。 >>736
どぴゅうーーー!!?ww どうしてそう成ったw
まだまだ。5ch初心者だなww stashは導入してます
もしかしてAsset.local_idってのがパスのかわり? 普通にPCでやった方が無駄なこと考えなくていいから楽だと思う やだ
何でもiPhoneでやりたい
ファンや電源ユニットの音を聞きたくない Python上級者の遊園地メンバーならなんとかしてくれるよね >>740
カメラロール 保存場所はPCで言うと
/home/use/ピクチャ
Androidだとギャラリーの所
命令文で取るんじゃなくて、直接して画像を取りに行くスタイル
ファイルマネージャとかでソコのURLが分かれば、可能かと appex.get_attachments()で取得する
アプリの写真が渡す時に使う場所
/var/mobile/Media/PhotoData/OutgoingTemp/
たぶんパス指定して直接は見れないようになってる
API通さないと無理なんじゃないかな 皆が調べたけど、限界だ!
って所からがスタートかな?
取り敢えず。 下記を実行して見た結果は どうなる?
import photos
all_assets = photos.get_assets()
last_asset = all_assets[-1]
img = last_asset.get_image()
img.show() 手段として、延期かなー。
テラテイル と スタッフオーバーフロー
で質問(本人が)
その間に別の事に取り込んだ方が良いかもなー
進めて行くうちに、類似箇所や該当操作に辿り着くかも知れない。 すでに出来たよ
assetからObjCInstance使って出来た パスで何かしようとするとPermissionErrorがでるよ 一応
print(str(ObjCInstance(picasset).pathForOriginalFile())) 質問1
C#とかC系しか知らんものがパイソンを素早く概括的に理解してマスターするには
どのような手順を取るのがベストかを述べよ。 質問2
「C++からパイソンを呼び出す」などC++とパイソンを組み合わせて使うケースについて
散見するが、C#とパイソンの組み合わせがないのはなぜだろうか? その理由を述べよ。
質問3
他の言語特にC#にくらべてパイソンの優位性もしくは劣性について述べよ Pythonをパイソンと書くようなキチガイははよ死ね バカって外来語をネイティブな表記で書くよねw読めないからw >>753みたいなガキは、遊園地メンバーのちんぽナメナメしたら、答えてやるわ。 質問1の模範解答
このような粒度の荒い質問にここで回答を期待するのは無理。 遊園地メンバーではなく。
遊園地ランドの一員な。
問1
公式Documentを読む
(その判断が下せなかった君には難しい)
問2
pythonとc#の組み合わせは有ります。
日本語記事が少ないのは確かです。
問3
全ての言語に置いて、優位性と劣性は
状況により、変わります。
大事なのは目的との適切な判断です。
なお、遊園地ランドの5ch民は標準スキルにフレンドリーファイアーと成ってますww 初代のくだすれ だと、
「pythonのパイは おっぱいですか?!」
だった様な気がする。 雪風だった時に叩かれた頃と
そっくりで、大爆笑だなw
低い所から、始めたら
上がるしかないから、良いと思う。 >大事なのは目的との適切な判断です。
そもそもどのような目的でpythonは作られたのか? 優秀な言語が五万とあるのに
わざわざ作るにはそれなりなりの理由があるはずだ。その理由について手短に簡潔に述べなさい。
その程度の説明ができないなら、pythonを使う意味がない。
仮に説明できるだけの能力があるにせよ、その程度のことをめんどくさがって説明できないと
したらプログラミングのようにめんどくさい仕事には向かないと思える。 確かにPythonとか何がいいのかまだ理解してないわ。
人工知能界隈では流行ってるみたいだけど。 最近使い始めた
いまいち理解してない
それでもある程度便利に使える
誰も使ってないと開発止まるし流行りにはのるスタイルです >>764
グイド・ヴァン・ロッサムがクリスマス休暇中に
分散OS「Amoeba」向けにスクリプト言語を作りたかった から
以上 >>768
>分散OS「Amoeba」
MINIX のタネンバウムの amoeba のスクリプト言語?妙な縁があるんだね Basicが代表だと思うが、当時の開発者は自分の作ったモノの価値は殆ど知らなかったよ。 駄目だ。
持ってる書籍だと、第4世代の事は
殆ど記述されてない。 休暇中に軽く創られただけなのにw
明確な意志と理由が有ると思い込んでたの?
まあw低い所から始めたら
上がるしか無いからなww良いんじゃねw せっかくの新人を逃してしまったかw
pythonで何が、したかったのかき聴きそびれた numpyの高階テンソルをいじろうとしたら、演算子1個でサクッと出来るPythonじゃないとまず無理
C++やC#で3次元以上の配列作ってディープラーニングの設計なんかしたくないよ それはライブラリの有無の問題だろ
演算子オーバーロードはC++でもC#でもできる >>776
任意の文字または文字列を演算子として定義することは C++ ではできないからなあ… pythonってCで作られてると聞いたけど、
pythonでCを作る事ってできないの? 分かりません。
C言語のアプリケーションとしてpythonを作ったのかも?です。
本人に聞いて見たら、どうだろうか?
ツイッターかフェイスブックで探したら? >>764
五万と言語はないだろう。808くらいだろう。 >>778
あんたみたいにマシン語でさくさく書ける人にとっては? >>781
マジレスすると「チューリング完全」でググれ >>788
それマジレス?
ググったけど、
https://ja.wikipedia.org/wiki/チューリング完全
>コンピュータ言語のうち、少なくともチューリング完全でなければプログラミング言語とは呼ばれない。
つまり、pythonはプログラミング言語ではないってこと??? [1, 2, 3, 4, 5]みたいな整数のリストを
"1 2 3 4 5"という文字列に変換したいんですが簡単な方法ありますか >>790
簡単な方法だな?
ブラウザを開く→F12押す→以下を張り付けenterを押す
[1, 2, 3, 4, 5].join` ` >>790
python入門者なんでサンプルプログラム見ながら作ってみた
間違ってたらスマソ
list = []
for n in range(1,6):
list.append(n)
list = map(str,list)#mapでlist中のintをstrにキャストする
print ( " ".join(list) )
もしくは
list = []
for n in range(1,6):
list.append(str(n))#文字列としてlistに保存する
print ( " ".join(list) ) 俺もゴルウィーから勉強し始めた初心者だけどそれでいけると思う Python書いてるとバカになりそう
やっぱC++かな…w >>790
取り敢えずコレで、後は自分で拡張してくれ。
□がインデント
# 1から5を作成 int
l=[i for i in range(1,6)]
# 空の文字列 宣言
r=''
# 表示だけ l配列
print(*l)
# ループアクセス
for i in l:
# 文字列の結合
□r+=str(i)+' '
# 望む出力結果
print(r) >>792
どうでも良いけどlist型の変数名をlistにすると、以降list型のコンストラクタ呼べなくなるから不適切だな iPhoneのpythonistaでTumblr APIの利用登録しないでtumblrに画像とコメントをアップロードしたい
どうやったら出来ますか?
workflowはtumblrにアップロード出来るのですが
HTMLダウンロードすると落ちるバグがあったりで使えません もっとworkflowの不満を言うと
文字検索で対象が少し大きいと検索出来ないウンコです >>800
大抵のwebサービスはアクセストークン無しでは外部からアクセス出来ないだろ
利用登録しろってことだ Tumblrは登録しなくてもうp出来るのがいいのに まずpythonでtumblrにログインするにはどうしたらいいのかも分からない
誰か教えて Pythonを使ってヤフオクで入札したいがログインが出来ない
どうすればいい?
API公開されてるけど入札は対象外なんだよなぁー ブラウザの挙動を調べて真似する
それ以外に何かあるの? 効率悪
それを車輪の再発明と余分だよ
大手サイトだから同じ事やってるスクリプト探せば良いんじゃね? 確かに車輪の再発明はあれだね
ただ、探せと言う人多いけど、どこにあるんだろ?
808に限らないけどみんなはそんな時、どうやって探してる?
ググったけど見つからない>< 日本語だと有用な情報が見つけられないこともあるね
C++やC#は日本語だけでも事足りるけど、Pythonを使いだしてから英語サイトを読む機会が増えたと思う >>809
いやログインはAPIあるんだから
まずは使えよ 普通は、Ruby で、Mechanize, Selenium WebDriver で、ブラウザを自動操作する
iMacros も良いかも
漏れは、図書館にログインしたり、Showroom のアバターを消したり、色々自動化してる >>816
いまのrubyは低脳がやるものでないからな。非低脳なら自分でそん事は出来る。
一方、いまのPythonユーザーには超低脳がいっぱいで
Pythonユーザーにはそんなことを自分で調べて実現出来ない奴が超多い。
だからここ超初心者スレがあるんだけど、でも、回答する人も低脳になるから
超低レベル質問でないと駄目なorzスレ。 俺も遊園地レベルまで出来るようになりてえなぁ
本一冊読み込んでみてるがアウトプットが全くできてないや 見てない間に・・・
マジで適当なことばっかり言うなよ
TumblrのpostメソッドはOAuthで認証しなきゃダメだし、登録無しで画像だろうがコメントだろうがポストできない
アプリ登録してOAuthキー発行してpostメソッドのURI構造調べてHTTPリクエストpostして終了だよ
こんなとこで聞くより調べた方が早いだろ 難しいとくぐれで終わるけど
検索してもAPI関連ばかりで分からないなあ ネットでスナフキンという方が公開していたchannelbreakoutbotというもの(自動売買Botのソースコード)を動かしてみました
すると最初のimportのとこのtornado.genとかがないよー!ってエラーが出ました
これって全部とりあえずpip tornado.genとかでインストールできるのでしょうか?
あとバックテストでは出てなくて、実際注文だして見ようとするとエラーにぶつかったのですが、バックテストでは必要ない関数なんですか?→tornado.gen 方針変更でpostはworkflowにやらせる
w_url = "workflow://x-callback-url/run-workflow?name=post_tumblr&input={0},{1}". format( urllib.parse.quote(str(picasset.creation_date)), str(ObjCInstance(picasset).valueForKey_('filename'))))
後はコメントとタグはworkflowにまかせたらいいか
役に立たないと思っていたファイルパスの取得が役立ったよ >>822
pip install tornado おかしい・・・
ぐぐるとpickleは標準ライブラリと出てくるのに、俺のUbuntuマシンではimport pickleすると
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import piclke
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'piclke'
Error in sys.excepthook:
(以下省略)
と表示される。
apt-getで何か入れないとダメなんですか???? >>827
piclke じゃなくてpickleだよ テストコードをpickle.pyという名前で保存してないか? deque out of rangeってエラー出たんすけど、dequeの概念がググっても分からないんすけど 嘘つくな
ググったら分かる
プログラマーのくせに英語結果ハブいてんじゃねーぞ 日本語でも出るじゃねーか
http://wa3.i-3-i.info/word14722.html
自分でまともに調べもしないで便利に使ってんじゃねぇ >>834
>>831が言っているのはdeque(double-ended queue)のことで
お前がどやがをで示したqueueのdequeueのことではないだろ
なんか超初心者スレらしいほのぼのしたコミュだよな with open('aa.txt','r') as f:
d = f.read()
d[0] = 'A' ←TypeError: 'str' object does not support item assignment
テキストファイルから読み込んだ文字列の一部だけ書き換えたいんだけど・・・どうしたよいの? 入門書読みながら書いたりしてるけど全然進まない…
連休中に1冊終わらせたかったのに… 入門書っつっても2〜300ページはあるんだろ?
そりゃそんな早く終わんねぇよ >>839
俺も勉強しながら入門書を書いているところだ。頑張ろう、お互いに。 初心者向けって聞いたから期待してたのにお前らがなにいってるのかすらわからんわ 初心者といっても、
言語についての初心者と、プログラミング自体の初心者では、
自ずと理解できるものが違うからなぁ。 >>837
文字列型(str, bytes)は、変更不可能(immutable)
一方、文字列型も属する、シーケンスは変更可能(mutable) TypeError: 'dict_keys' object is not an iterator
と出るのですが、dict_keysオブジェクトってiteratorではないんですか?
Python3.0について解説しているブログによると、
d=dict(a=1, b=2, c=3)
ks = d.keys()
print(ks)
>>>dict_keys object at 0x33d9d0
print(next(ks))
>>>"a"
となるはずなんですけど、私のPCで実行してみると
print(ks)
>>>dict_keys(['a', 'b', 'c'])
print(next(ks))
>>>TypeError: 'dict_keys' object is not an iterator
と出ました。
これはブログの情報が古い(最新版のPythonではイテラブルではない)
ということでしょうか?
実行環境はPycharmでPython3.6です。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>>847です。ところどころ間違っていたので、申し訳ないですが再投稿です。
TypeError: 'dict_keys' object is not an iterator
と出るのですが、dict_keysオブジェクトってiteratorではないんですか?
Python3.0について解説しているブログによると、
d=dict(a=1, b=2, c=3)
ks = d.keys()
print(ks)
>>>dict_keys object at 0x33d9d0
print(next(ks))
>>>"a"
となるはずなんですけど、私のPCで実行してみると
print(ks)
>>>dict_keys(['a', 'b', 'c'])
print(next(ks))
>>>TypeError: 'dict_keys' object is not an iterator
と出ました。
これはブログの情報が古い(最新版のPythonではiteratorではない)
ということでしょうか?
実行環境はPycharmでPython3.6です dict_keys は、iterator object ではなくview objectなので、
iterでイテレータを取得して、
kks = iter(ks)
print(next(kks))
とすれば、所望の結果が得られると思います。
Python3の当初から、例示されたコードが動かなかったのか、Python3.xのどこかの時点で動かなくなったのかは、自分はあまり詳しくないので分からない。 (´・ω・`)最初は参考書読んで勉強しようとおもいます
それで実際に練習でコードを書くのはなにがおすすめですか?
なんかパイザ?とかいうブラウザでできるのかあるみたいだけどああいうのは無料でつかえるの?
それとも統合開発環境とかいうソフトをかわないといけないの?
くわしいひとよろしくお願いします。 >>850
まあ、世評の高い「みんなのpython」でも読んでみんシャイ >>850
>コードを書く
Sakuraエディタがいいぉ
無料だし
自動できれいにインデントしてくれるし Pythonの基礎はある程度学んだつもりだけど、AI作るのにライブラリはどれがいい?
最初は画像とか文字とかの分類とか、最終的には音声聞き取りでアシスタントAIを作りたいなと
あと、AIとかってグループ作って皆で分担して作ったほうがいいの? マジレスするとGoogleHomeを買ってきた方が速い >>856
このスレに来るようなレベルの奴が俺趣味で作成した激ヘタレものより、
すごいプロが作ったのを使ったほうがずっと実用的で良いからな。 >>854
AIを作るってなんだ?
AIなどという言葉を使ってるくらいなので知識も殆ど無いんだと思う、なのでGoogleとかの音声認識APIとか画像認識APIを使うのを勧める
1から勉強して,trainプログラム書いて,学習させて,モデルの評価して,出来上がったモデル使ってシステムやアプリを作って・・・って相当大変だぞ?
まぁ、ありきたりなAPI使ったところで、劣化Siriくらいしか作れないだろうが・・・
https://i.imgur.com/PzJbcpU.jpg raspberrypiで音声入り動画を撮ろうと検索したところ、以下のターミナルコマンドがありました。コマンド自体はターミナルで動作確認済みです。
https://qiita.com/shibabuki_yuta/items/4f38e46d48908a16fca1
raspivid -t 0 -w 640 -h 480 -b 10000000 -fps 30 -awb fluorescent -o - | \
ffmpeg -y -ac 2 -f alsa -ar 16000 -i plughw:1 -r 30 -i pipe:0 -vcodec copy test.mkv
このターミナルコマンドをpythonで実行するためにsubprocess.runを使おうと思いましたがうまくいきません。
subprocess.run('raspivid’,’-t’,’0’,’-w’,’640’,’-h’,’480’,’-b’,’10000000’,’-fps’,’30’,’-awb’,’fluorescent’,’-o’,’-’,’|’,'\',
’ffmpeg’,’-y’,’-ac’,’2’,’-f’,’alsa’,’-ar’,’16000’,’-i’,’plughw:1’,’-r’,’30’,’-i’,’pipe:0’,’-vcodec’,’copy’,’test.mkv')
上のようにすると
Invalid command line option(\)
や
Invalid command line option(|)
が出て、\は削除しても影響ありませんでしたが、|を削除するとコマンドが機能しなくなります。
うまく行く方法がありましたらご教示ください。 そりゃパイプなんだから実行できるわけない
subprocess パイプでググれ 質問ですが
学習済みモデルを読み込んで256×256ピクセルの画像を変換してみたところ
chainer、cpuで10〜20秒掛かりました
実際こんなに時間かかるものなのでしょうか?
tensorflow,caffeなどなどの方でも画像を実際変換してみた時の
経過時間を教えてもらえないでしょうか?
学習時間が何時間とかそういうのは検索で見かけるのですが
モデルから変換した場合の時間は検索してもなかなか見かけません もう一つ質問ですが
機械学習とかAIとか質問とか交流するサイトあるんでしょうか?
独学しんどいです。。。 `date`
#=> "2018年 5月 8日 火曜日 03:43:25 DST\n"
`date | cut -c -4`
#=> "2018\n"
Ruby なら、`Linux コマンド` で実行できるけど。
cut で、先頭4文字を切り出す
他にも、pipeline で、
指定したコマンドのリストを、パイプで繋いで順番に実行できる
Python でも、同じような機能があるんじゃないの? >>862
海外のmoocsなら学習者同士のコミュニティが盛況なのが普通。 >>858
ありがとうございます
まだ知識が足りないようなので、本を買ってきて勉強したいと思います >>861
そんなもんcpuのスペックというかPCのスペックに激しくよるだろ
うちのボロパソ(CPU2GHzない)で自然言語の学習やらすと
文庫本100ページぶんくらいに一ヶ月半とかかかったぞw listのソートなんだけど、重複する要素が多い順に並び替えることを1行、2行程度で行えたりしますか?
for文を使って並び替える処理を書こうかと思ったんですがpythonなら
そんなことしなくても出来たりしないかと思いましてw import collections
lst = [1, 2, 1, 3, 6, 3, 3]
result = collections.Counter(lst).most_common()
print(result) (´・ω・`)pycharmっていうのが無料でなかなかいいみたいなことみたのでダウンロードしてみた
みんなはこれの有料版とかつかってるの? >>869
学習済みモデルを使って
変換したらどのぐらい時間かかりました?
>>865
日本人はシャイなんですかね・・・
自分もですけど・・・ >>874
放置してたから記憶が曖昧なんだけど
たぶん2−3時間@出力は400文字 >>854
tensoflowとkerasでいいだろう。 プログラミング初めてでPython触ってみたんだが実際にコード書いて初心者に分かりやすいサイトない? >>877
Python hello でぐぐってすきなところを選びたまへ
とほほのところが有名だ
尚これから始めるなら3.x系がよいとおもわれ サンクス
人工知能に興味あったから始めたけどもっと早く学習すれば良かった後悔してる
頑張ってみるわ AIやゲームを作りたいと言ってプログラミングを始める人の9割は挫折する >>880
じゃあ初心者の最初の目標は何にしたらええの? ゲーム作り最強やろ
むしろほかの用途探すのが難しいくらい 最近pythonを勉強し始めてwebのサンプルコピペしてTensorBoardに表示させて遊んでたんだけど機械学習の知識ゼロだから結局表示させたものが何なのか意味が分からなかったから機械学習の勉強したい
理系の知識もない人間が一から始めようとすると何から始めれば良い? マジレスすると機械学習アルゴリズムの細部まで理解するのは相当しんどいと思う。
俺は挫折した。 >>875
教えてくれてありがとう。
けっこう時間かかるもんなんですね
>>882
初心者でもどうしても作りたい明確な(機能)ものが
あればゲームでもAIでも続くんじゃないかな
どうしても分からないところを質問できるコミュニティは必要だと思うけど。
>>886
初心者用のネットの日本語無料講座あったんじゃなかったっけ??
そういう所でざっくりとだけ概要をつかんだ方がいいと思う。 >>886
クダスレで尋ねるような超ゆとりではな
一番大事なのはその人の特性だからな。ゆとりは何やってもゆとりレベルまでしか行かない
超ゆとりは勉強始めてもすぐに挫折だろうし
>>887
例えば、働きながら独学で弁護士になるような奴ぐらいの奴なら良いんだろうがな。
俺らゆとりではしんどいから止めたになるよな >>890
5chではまだ若手の36だよ
この歳になると社内の20前半の若い奴の普段の行動から
こいつは俺同様にダメだな・逆に見込みあるとなんとなくわかるんだよな。 ディープラーニングは理系の院生ぐらいの脳みそがないと無理
数学・英語が出来ないと自力で問題解決出来ないし、誰かに手取り足取り教えてもらえるほど甘い分野じゃない Pythonだって本気で使いこなそうとしたら
Cで書かれた挙動とか最低限必要だろけど
実際にはよく分からんでも
適当にやってたら動いてくれる
スマホでタッチで動くほどじゃないけど
実際には、良いフレームワークとかあるし
更にラッパーとかあるしいずれは
ビジュアルプログラミングとかでも使えるレベルになるだろうし
DLも良い物なら誰でも使えるようになりそう >>886
理系の知識が全くないなら本当に厳しいよ
本気で機械学習の勉強したいならPRML(ビショップ本)と微積・確率統計・線形代数・情報理論の本買って,Pythonの数値計算ライブラリで実装すれば相当力付くけど >>894
ベクトル解析も追加。岡谷貴之先生の「深層学習」もおススメ。 独学でプログラミングの勉強始めたけど、めっちゃ難しい。そもそもきっかけが小学校でも必須になるぐらいだから知っとかないと駄目だろうと始めただけで目標がないし。最終的に個人のレベルで何が出来るようになるのかも分からない。 open関数について教えてください
ファイルがなければ新規作成する、というのは分かったのですが、もしファイルが存在している場合はそのファイルの中身を全て真っさらにしてから書き込む、という挙動であっていますか? >>899
ありがとうございます
自分の環境でやってみた結果、ファイルの容量を見ていると既に存在してるファイルが500KBだったのが0KBに変わってから書き込まれたような挙動をしていたのでこれが本来の挙動であっているのかなと思って質問させて頂きました >>898
引数で指定できるんじゃね?普通の言語は指定できる。パイソンは知らんけどw 掃除とかゴミ出し、家事を物理レベルで自動化してほしい。 >>898-902
ファイル書き込みには、上書き・追記・trunc とか、様々な種類がある with open('input/lunch.csv', encoding = 'utf-8')as f:
for row in f:
colnms = row.rstrip().split(',')
name = colnms[0]
lunch = colnms[1]
if lunch == 'コロッケ弁当':
print(name)
colnms[0]
colnms[1]
この[0] [1] 意味教えてさいお願いします。 リストなどのシーケンス[index]
index は、0 origin で、0, 1, 2〜と順番に、要素が並んでいる >>908
確かになにこれだよな
例えば
1 + 1で+の意味が分からないと、これが何をしているのかわからないよな
俺らは学校で"+が引き算を表す記号(演算子)"だと洗脳されていから、この結果は0
で、"-が足し算を表す記号(演算子)"と洗脳されているから、1-1は2になると分かるよな
で、
name = colnms[0] 場合の[]はPythonではget itemするアルヨを表す記号
逆にしてcolnms[0] = name の時の[]はPythonではset itemするニダを表す記号
Pythonの__getitem__、__setitem__ を調べれば[]の意味は分かる
最後にここまで読んだお前はうんこだよ。うんこは嘘を読んで信じるからな とりあえず、csvモジュール使ったほうがいいと思います とにかくうんこスレには来ないほうが良い
うんこスレに来るとウジ虫な奴になる
with open('input/lunch.csv', encoding = 'utf-8')as f:
for row in f:
colnms = row.rstrip().split(',')
の意味が分かるからきかない、で、下の[0] [1]で 意味は分からんって不思議な感じ
俺なら[]どころか1行目のwith〜で意味わからんだが Ruby で、以下のコロン区切りのCSV 入力ファイルを、1行ずつ処理する
"1":"Fri, 02 Mar 2018 01:10:15 +0900":"abc"
"2":"Fri, 02 Mar 2018 01:10:20 +0900":"def"
CSV.foreach("abc.csv", col_sep: ":") { |row| p row }
出力結果
["1", "Fri, 02 Mar 2018 01:10:15 +0900", "abc"]
["2", "Fri, 02 Mar 2018 01:10:20 +0900", "def"]
row[1] 要素内のコロンでは、区切れていないだろ。
これを自分で、split で区切ったら、5要素になってしまう
だから各要素中に、区切り文字がある場合にも、
正常に動くためには、CSV のモジュールを使わないといけない うんこスレだとPythonではなく他言語のRubyのことを語るだからな スレタイにエクスキューズがあるからといって何をしても良い訳ではない >>916
子々孫々汚辱にまみれて苦しみ抜いて死にますように。 Vectorに公開してるしょぼいPythonのスクリプトをGithubでNYSLで公開したいんだけどとりあえずどうしたらいい?
あまよくば、誰かが勝手に改良してくれることを期待
とりあえず、ユーザー登録まではしたけど、英語だしチュートリアル読む気にもなれない
手短にやり方分かるHPあったら教えて Python超初心者スレらしくRuby語り、github相談となんでもありだな こんど勉強するつもりなんだけどネットに学習サイトみたいなのあるけど
ああいうのはどうなの? >>928
続きは課金版で!とかいうかんじのやつのことか? >>927
プログラマだといって英語が当たり前に読める前提は辞めて欲しい
英検3級落ちたOrz >>932
>>931は実は英語”超初心者"でも英訳を出来るHPあったら教えて
と言うここらしい質問を間接的に(ダイレクトには流れ的にしずらい?)しているんだからな。
githubの次は英語、ほんと>>918だよな
勉強する気がある奴のための初心者用スレとは違い、超初心者用スレ==実は勉強する気ない奴用スレ 最近始めたんですが、ファイルを分割したいのでimportを使うようなのですが、スコープが全然解らなくて教えてください。
main.py
class Filelorder():
data=読み込んだデータをここに保持
class Calcfunc():
def なんちゃら:
file_lorder.data と参照して使用
file_lorder=Filelorder()
file_lorder.load() クラス内にdef loadは作ってあります
この様にしていたのですが
fileloader.py にclass Filelorderを移動
calcfunc.py にclass Calcfuncを移動
main.py
from fileloader import *
from calcfunc import *
file_lorder=Filelorder()
file_lorder.load()
として、file_lorderを切り分けたファイル側から参照するにはどうしたらいいのでしょうか
又は、Filelorder()のインスタンスの置き場所としてfile_lorderをグローバルに置くべきではないのでしょうか
class Filelorder の中を外部から直接見る方法はあるのか、fileloader.py 内でインスタンスを作ってしまってそれを他のファイルから参照できるのでしょうか
教えてくださいよろしくお願いします。 >class Filelorder の中を外部から直接見る方法はあるのか
となりのクラスとかからみたいときは
Filelorder.data
でとりだせるはず
なかみはいってるならな! >>935
別に困らんよ。難しとか関係なくてきとうに妄想レスするだけだし
>>934
テラテイルできけ。ある程度の以上の実力がある奴がたくさんいるところで質問したほうが良い。
ここだと俺のような超低レベル激多く、そいつらのあほ回答を訂正してくれるそれなりの実力ある奴がいない。
お前自身も自分でそれが良くないって分からんだろうし。
ここにはrubyの上級者がいるからその人が気合を入れてrubyではと説明してくれるかな レスありがとうございます。
試行錯誤してみたのですが、ひとつのファイルならクラス外のグローバルにアクセスできるけど、ファイルを分けると完全に切り分けされてしまってグローバルにアクセスできなくなる感じだというのが解りました。
Calcfuncのインスタンスを作る時にfile_lorderを持たせて保持してもらうことで対応できそうです。
どうでもいいけど、lorderでなくてloaderですね、lordなら意味は通じなくもないけどerは付かない・・・
どうもありがとうございました。 Python のglobal は、モジュール(ファイル)スコープのglobal
アプリ全体のglobal は無い >>934
>from fileloader import *
* を使うのは、名前がバッティングする事もあるから危険
>class Filelorder の中を外部から直接見る方法はあるのか
見れたら危険、ダメ!
カプセル化にならない matplotlibで座標を繋いだり画像変換してみたのですが
画像自体を保存するとグラフの縦軸や横軸なしで画像を保存する方法はないでしょうか?
plt.savefig(savefile)すると縦軸横軸も合わせて小さいサイズで保存されてしまいます。
宜しくお願いします。 自己解決です
以下にいくつかの解決方法が書いてありました。
ttps://stackoverflow.com/questions/9295026/matplotlib-plots-removing-axis-legends-and-white-spaces どこかで、辞書とOrderedDict の違いについて書いていたけど、
Python3.6 以降の辞書は、追加された順序を保持するけど、
OrderedDict とは異なる
比較する際、OrderedDictでは並び順も含めて、一致と判定されるが、
普通の辞書では、並び順を考慮しないで、一致と判定される
「みんなのPython 第4版、2017」に書いてある >>554
「スッキリわかるJava入門」読んだけど、ホントにスッキリ分かった。みんなのPython読んでもあんまりよく分かんなかったから、すごく助かった。ありがとう。 スマホゲームで3dcg(アイマス)が動いてるのを見ましたが
ああいう3dcgを表示させてなおかつキャラの線画をpythonで表示させるのって
どうやってやるんです??
なんかライブラリとかあるんでしょうか??? Unityでも使え
Pythonはそういうのには向かない >>951
そーなんですかー
3dグラフとか表示できるなら
3dcgの表示もできそうな気もしたんですが・・・ なんでUnityのほうがうまく出来ると言ってるのにPythonでやりたいの???
せっかくPythonなんだからDEEPラーニングでもやりなよ。 Blenderでも弄ってればいい
死ぬまでに目的は達成できないだろうけど キャラの線画が欲しいのであればUnityかUnreal Engineでシェーダっていう機能をつかうのが1番だよ
おすすめはUnity >>953、>>954
単純に自作のスクリプトで表示させてみたかっただけで
unity、blenderとなるとなんかもうソフトウェアの力で自作のスクリプトって感じじゃないから・・・
deepラーニングもやってみましたけどグラボがしんどいですね・・・ >>952
お前が素敵なPython用3dcgライブラリを作れば良い >>957
ライブラリ無しでマイナー系画像変換自力でやったらしんどかったから
もうライブラリ欲しいところです・・・ >>958
ライブラリ作るのいやなら
Pythonでunity・blenderを使えるようにするラッパーライブラリは恐らくあるだろうからそれらを使うと。
でも、これ実質unity・blenderを覚える感じになるだろうからな。それなりに大変だろう。 three.jsとかをブラウザで動かすのをpythonで作ればいいかも それjsでやればよくね
せっかくpythonならではなことあるのに… ああBlenderあるじゃん
pythonで動かせるし、シェーダーとか画像いじる機能あるからいろいろできるよ if-else文で else: を打ったあとにエンターを打つとエラーが出る
外側のインデントレベルと一致しないって書いてるけど
if と else は揃えてるのになんでだろう
わからなすぎる エディタウィンドウに書いてランモジュールしたらできたわすまん >>967
慣れの問題でしょ
Ctrl + z 使えないのはクソだけど 今どきのvimは絶妙に厨心をくすぐってくるからのうw スパイダー快適だが、他のideためしたことないのでこれがベストなのかは定かでない Vimは依存症になるから最後の手段にすべきだと思うわ(末期) pycharmにvimのキーバインドじゃいかんのか? Vimとか慣れるまでが苦痛すぎて初期のころに代替案あった人は挫けるだろふつうw
おれは挫けたwww みんなのpythonを地道に読みながら勉強してる
まだまだ基本の構文も覚えきれてないところが多いから背伸びしちゃダメなのかもしれないけど、他に勉強する時にこういうのもやっておくと良い事があれば教えてください
やりたい事は知識もないからすごくぼんやりしてるけど機械学習や自然言語処理は面白そうだなと思っています 何度も言われてることだけど、プログラム自体の初心者か他の言語の経験があってpythonだけ初心者かで話が全然違う。
プログラム自体の初心者ならいきなり機械学習や自然言語処理は不可能に近い。 >>979
ありがとうございます
C#は基本的な部分だけですが理解はあります
機械学習などは実装するだけでも難しいのにアルゴリズムまで理解するのは初心者にはハードルが高いですよね
数式も大量ですし… >>980
俺もプログラミング超初心者だけど
>C#は基本的な部分だけですが理解はあります
こんなレベルでは俺同様プログラミング超初心者。
なのに機械学習や自然言語処理をやるってのは、
幼稚園児・小学低学年レベルが大学の専門課程でやるような応用物理解してやる感じだからな。 超初心者が超初心者に偉そうにwwwww
何がわかるってんだ恥知らずwwwww そんなこと言っても実際にプログラムに触って物作ってる奴は形にするけどな
多分このスレで下から数えた方が早いけどチャットソフトを改造したものがバズって
その後アクセ数が増えて広告だけで3万ドルくらい入った事がある
因みにPaizaでCランクの頃の話
価値あるモノを作り出すのに必ずしもプログラムスキルが必要とは限らない
未だにBランクだからプログラムを極めたいならお薦めしないけど
自分が社長でとりあえず使えるモノを作りたいってのなら、さっさとやってみるってのが早いかもしれない
不足な知識はその都度学習するとかね
自然言語は分からないけど、機械学習の基礎だと ゼロから作るDeep Learning とか面白いと思う
書いてあることは何となく分かるけど、これやってると放送大学でコンピュータが何故動くか?
真理表から半加算機を作ったりしてる講座を思い出した
知ってた方が良いのは分かるけどこんな事知らなくても使えるアプリなら普通に作れるしねー すいません、教えていただけないでしょうか?
以下のサイトのexrからopencvに変換するサンプルプログラムのところで
http://www.excamera.com/articles/26/doc/intro.html
module 'cv2.cv2' has no attribute 'SetData'というエラーが出ます
検索したところどうもバージョンがopencv2系じゃなくて3系だと
命令文が違う?みたいなのですが3系だと
何になってるか教えていただけないでしょうか???
あとcv.CreateMat(size[1], size[0], cv.CV_32FC1)のほうは
かろうじてimg = np.zeros((size[1], size[0], 3), np.uint8)かなと思うのですが
あってますでしょうか? すいません、opencv普通にexrファイル読み込めました。
早とちりしました >>983
広告だけで300万円って相当なものだと思うんだけど
何作ったの? chainerを使って入力からクラス分けのやり方は分かったのですが入力から出力を出すやり方がわかりません。
例えば株価予測といったようなものです。
解説サイトなどありませんか? >>988
専門用語使って話さない辺り機械学習初学者以下と見た
回帰分析をしたいんだと思うんだけど,回帰分析にも様々な手法があるから流石にもう少し調べてから質問してくれ >>989
>機械学習初学者以下と見た
だって、ここは超初心者用。超初心者は基礎力ないから>>988になるのは当然だろう
>>986
非超初心者なら簡単にできるんだろうが
超初心者にそんなレベルの高いことをやってねと言っても。 いくら初心者でもtensorflowとkeras使うくらいできるだろう
chainerて chainerなんかジャップアイランドの外では誰も知らないよ >>978
具体的な達成目標とか目的が無いからそうなるんだろう
だらだら読んでてもだめ >>983
もう退官したけど元学長の岡部センセの論理回路のやつは面白かったね 雑談は盛り上がるってさすがPython超初心者スレだよな
Pythonの知識がほとんどない奴ばっかだからこうなるよな このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 8時間 34分 20秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。