くだすれPython(超初心者用) その38
レス数が1000を超えています。これ以上書き込みはできません。
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/ 全くPythonのことを知りませんが、Windowsでの開発環境(IDE)は何が良いのでしょうか?
最近主に使ったのは、VisualStudio(C#)とAndroidStudio(Java)です。 >>2
たぶんはやってるのは PyCharm
でも おれは せっかくだから この Sakuraエディタを つかうぜ! >>2
VisualStudioに慣れている人なら、2015か2017のインストーラーでPythonツールを追加インストールするだけで
ソリューションにPythonプロジェクト(.pyproj)が組み込める
Python環境を複数入れてても設定で切り替え出来るし、構文チェックやデバッガも使えるから楽 前スレの >>988
株価予測は分類系のAIとはモデル構造が違うから、まずRNNモデルの入出力方法を覚える
慣れてきたらRNNの代わりにLSTMを使ってみる
ChainerでのRNN構築が難しそうなら、Kerasの方が簡単かもしれない
Kerasなら同じプログラムのままでGPU演算も自動判別して切り替えてくれる(GeForce系のグラボがあれば) pythonで入力待ちしないでキー入力を受けとりたい(キー入力判定したい)んですが良い方法ありますか?
環境はPython3.6 Win10 PowerShellです >>6
あー、追加でPython環境を入れられますね
VSに慣れてるから、これが一番とっつきやすいかな >>6
VisualStudioいいよね
デッバクが楽すぎる これが圧倒的に
使いやすいと思うけどいまいち使われてない気がする >>8
Windowsってfork使えないよね?(使えるならfork使えば良い)
キー入力を監視する処理と、メインの処理を同時にマルチスレッドで実行とかダメかい?
http://guri-tech.com/share-var-by-thread/ >>8
Windowsってfork使えないよね?(使えるならfork使えば良い)
キー入力を監視する処理と、メインの処理を同時にマルチスレッドで実行とかダメかい?
http://guri-tech.com/share-var-by-thread/ >>10
デッバクとか書いちゃう人の言うことは信じていいの? bugをバグと呼ぶ奴はdebugのこともデバッグではなくデバグと呼ぶべき。 >>18
だよな。
ついでに英語のDebugのDeの発音はデじゃなくディーに近いのにな 2ちゃんねる時代は順番や文字を入れ替えて書くのが当たり前だったけど、最近はそうでもないのかな
オパーイとかと一緒だろ 日本人は耳が変だらんから
マルティ->マルチ、ディーバッグ->デバッグと聞こえるし
日本語をローマ字にするときでもrの発音やfの発音になるのを割り当てるからな
日本語の富士山はFujiyamaよりHujiyamaの方が日本語の発音に近いのに >>13
見逃してた。いつぞやのケブンリッジと同じでやはり最初と最後が合ってると途中の文字順が違ってても騙されるな。 >>21
オパーイやセクースは
何かタイプして楽しいじゃん。
デッバグはイけてないだろ。 最近超話題の聞き取り、Laurel and Yanny
日本人が月桂樹(ローレル)を英語で言ったら、ネーティブにはYannyと聞こえるらしいからな
日本人はCambridgeのmをンと発音するニダで
ネーティブがそれ聞くとCanbridgeってなってなにそれなんだろう pythonユーザーに関してはyoutube(日本人はようつべと発音)とかの英語のビデオで
Python学習が普通になったから、英語の発音や聞き取り力がかなり高い奴が多いらしいよな >>12
ありがとうございます。確かにthreadingを利用してマルチスレッド化→入力待ち関数とループ処理に分割、というのが良さそうですね。
Windowsではwin32api等を利用すると標準入力などで出来ることが増えそうですが、初心者には難しいですね… 条件式で全角数字を判別する方法って正規表現使う以外に考えられますかね? if re.match(r'[0-9]+', target):
が他に書き方あるかって話?
実用的かはともかく、setにして差集合を取る方法でも書ける >>33
初心者に難しいって言ってたらいつまでも初心者だぞ
薄皮一枚破った先に素晴らしい世界があるのに >>36
どこまでやる気なのか知らないけど、ほとんどの場合PyTorchやKerasやChainerで十分でしょ
自分にはこれこれこういう理由でTensorflowが必要だと言えるようになってからTensorflowを始めるといいよ >>2
pytharmがいいよ
簡単に一瞬で日本語になるし無料だし便利なの sqlalchemyのsessionってクラスなの?
それともsessionmakerのインスタンスなんですか? pywin32でエクセルを開くと、稀に「呼び出し先に拒否されました」と表示され
エクセルのオープンに失敗する。
原因がわからん。
同じような経験した人います? 既にExcelアプリで開いてるファイルを
書き込みモードで開こうとしたとか?
Excelは書き込みロックしやがるから ロック状態が残ってるのかも
UnLockerとかでデッドロックプロセスがないか確認 [ [x1,y1], [x2,y2], ........]というリストがあるとして
y成分をある一定以上になるまで足していった時のx成分はどうやって求めたらいいでしょうか? >>46
一定以上になった所でxをreturnしてしまえばいいと思います 超既出かもしれませんが。
SpyderやIDLE上で実行するとメインスレッドが終了してもデーモンスレッドが終了しないまま実行され続けるのは
SpyderやIDLE固有の問題ですか?
コマンドプロンプト上で実行した場合では正常に終了するのですが。
以下のようなコードです。
import threading
import time
def daemonThread():
while True:
print('デーモンスレッド実行中')
time.sleep(1)
daemon_thread = threading.Thread(target=daemonThread, daemon = True)
daemon_thread.start()
for i in range(5):
print('メインスレッド実行中')
time.sleep(1)
print('メインスレッド終了') インデントに失敗しました。
全角スペースでインデントしているので半角スペースに直して頂けると幸いです。
import threading
import time
def daemonThread():
while True:
print('デーモンスレッド実行中')
time.sleep(1)
daemon_thread = threading.Thread(target=daemonThread, daemon = True)
daemon_thread.start()
for i in range(5):
print('メインスレッド実行中')
time.sleep(1)
print('メインスレッド終了') 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
BYX24 @propertyについて質問です。
@property def x(self):と
@x.setter def x(self,value):
が実装されたTestクラスについて、
この引数valueはTestクラスによって作られたインスタンスtest_instanceの変数(プロバティメソッド)test_instance.xの値が代入されるという考えでよろしいのでしょうか?
以下がその例です。
class Test:
def __init__(self):
self.number = 0
@property
def point(self):
return self.number
@point.setter
def point(self,value):
if value > 50:
print("You succeeded")
else:
print("You failed")
math = Test()
print(math.point)
math.point=66
>>>0
>>>You succeeded
引数valueにTestクラスのインスタンスであるmath.pointが渡されるまでの過程があまりしっくり来ません。 >>52
@propertyはデコレータ(@)を利用したproperty(fget=直下の関数)が実体のクラス変数です
データデスクリプタプロトコルを実装しており、インスタンス変数が如く扱われると発動します
https://docs.python.org/ja/3/howto/descriptor.html
有り体に言えば、同名インスタンス変数への読み書きが、設定した関数に転送されます
math.point = 66は実質type(math).__dict__['point'].__set__(math, 66)として処理され
valueには代入の右辺が直接入るので、インスタンス変数としてのpointは介在できません >>52
Spyderのデバッガで処理を追っていくと、@point.setterの行に辿り着いた時点で変数エクスプローラーを見ると
valueの値が66になってる
その認識で良いんじゃないの >>53
>>54
上のコードを
print(math.point)
math.point=66
print(math.point)
で実行したところ、
>>>0
>>>You succeeded
>>>0
と出力されたので、何か理解できたような気がします。少なくとも違和感はなくなりました。
お二方ともご丁寧にありがとうございましたm(__)m fizzbuzz書けるぐらいまでになりました
データ分析関係で何かプログラム組みたいと思っているんですけど、何かオススメありますか? やっぱりWindowsよりMacの使ってる方が多いですか? win10、python3.6.5を新規でインストールしました。
hello.word!迄は勉強しました。
スクレイピングがしたくてpipで導入しようとしてるんですが上手く行きません、コマンド教えて頂けませんか? pythonはどうやってインストールしたのでしょうか
スクレイピングは具体的に何のライブラリを使おうとしてるんでしょうか
上手く行かないとは具体的に何が起こる(った)んでしょうか
何か表示されているようなら具体的にかつ正確に教えて貰えますか ハローワールドからは、かなり遠いよね。イスカンダルに行くほどではないが。 だがよく見てほしい。>>60はハローワールドすらまともに出来ていない。 >>62
超ゆとり教育受けた者は自分のいるところからどれぐらいの遠いのか、どれぐらい大変なのか
分からんからな。で、遠くて行くのが大変でもママ(車や交通機関を使って、さらに、おんぶして)連れて行ってだからな。
俺も超ゆとり教育を受けたから、30半ばなのにママ連れて行って・何とかしてのお坊やおっさんだよ,orz
おかげで、いつまでもママママの超初心者 初心者はPythonの対話型プロンプトからpip実行しようとしてハマることが多いかも
公式PythonならコマンドプロンプトかPowerShellからpip installを実行、
Anacondaなら仮想環境のプロンプトでpip installするか、AnacondaNavigator使って入れればいい >コマンドプロンプトかPowerShell
俺の経験から超ゆとり教育受けた奴は何それだよ Win10ならコルタナさんに「Power Shellを起動」って頼むだけで良さそうだけど os.rename(dir_path, new_name)
PermissionError: [WinError 5] アクセスが拒否されました。: 'F:\\名前\\古い名前' -> 'F:\\名前\\新しい名前'
Windows7で別のドライブのフォルダをリネームしようとしましたが、
管理者権限でプロンプトから実行しても拒否されます
どうしてでしょうか >>70
ありがとうございます
この処理の前にopenでリネーム対象フォルダ内のファイルを開いていたのが原因だったようです
os.renameの前にclose()を呼んだら無事に動きました >>67
時期にコルタナに「XXのスクレイピングして」と頼むだよ。
>>68
俺らよりユルタナとか尻の方がずっと頭良くて、お前、馬鹿・無知すぎだと言われるからな
(お前、自分でPower Shell・コマンドプロンプトの起動すらできないのか) python言語によるプログラミングイントロダクションって本初心者にどうですか? pythonのチュートリアルはよくできてるな。
最新版のPDFファイルどっかに落ちてない? >>75
その質問には答えられんが一つ忠告しておく
ここはお前のような出来る奴が居ていい場所じゃない >>76
だよね。
俺らのようなド底辺にまじわると>>75のような出来る奴でもあっという間にド底辺になるからな。
>どっかに落ちてない?
もう、底辺らしくなってきているし
>>75
Pythonを使って自分でチュートリアルをPDF変換すれば良いだろう 自分の好きな画像を覚えさてそれに似たような画像を自動で集めてくるみたいなプログラムを作りたいんですが、そのために必要な知識技術が取り入れられる初心者向けの本はありますか?オライリーの入門Pythonを一周した位の初心者なのですが、、 >>81
作ったら不味いヤツなんですか?便利そうだなーとか思ったんですが >>84
そんなにですか
重くなるだろうなとは思ってたので50枚取ったら終わりみたいに軽めの限界は設定しようとしてたんですが甘かったですね
しかし目標が無くなってしまった レンタル糞サーバー使ってるサイトの身にもなってくれ >>86
レンタル糞サーバーが糞なのは陸の孤島ならぬネットの孤島やからやぞ
世間のトラフィックの99.9999999999999%はおまえんとこに影響ないからw >>80
クローラーは、wget を参照
画像判別は、OpenCV とか、
類似の定義のアルゴリズムの研究だけで、軽く数年以上掛かる
どういう画像が似ているのか、その定義が一番難しい たくさんPython野郎が遊び感覚でクローラー作ってネットを重くしているのか
トータルではgoogle以上にあっちこっちのサイトにクレクレしてたりしてな scrapyをホストするサービスが存在している時点でその辺は察してくれ このようなウンコも存在する模様
http://data.gunosy.io/entry/python-scrapy-scraping
>務教育で教えても良いんじゃないかとよく思うWebクロールとスクレイピング スレ違いだったらごめんなさい
自然言語処理をweb等を見様見真似で勉強してます
その中で共起ネットワーク図というものを見かけて面白そうだったのでやってみたいのですが、まだスクレイピングなどはやった事がないのでまずは青空文庫等のテキストデータを使って共起関係にある単語を表示してみたいと思っています
形態素解析するところまで出来たのですがその先の部分はサンプルなどを見つけられなくて行き詰まっています…
使うべきモジュールなども分からない状態なのですが、どのようにして共起している単語の抽出が行えるでしょうか?
初歩的な質問で申し訳ないのですがよろしくお願いします >>93
出現単語リストの直積のリストを作る
要素ごとにjaccard係数(*1)を求める
必要に応じてjaccard係数で足切り
グラフ描画ライブラリ(*2)で描画
*1
jaccard係数について
https://www.slideshare.net/mobile/khcoder/jaccard1
*2
NetworkXとか
大したことは言っていないので、
分からないなら潔く筋トレ(Pythonの)をしてから出直した方がいいと思います
命が掛かっているなら金次第で相談に乗ります >>93 です
>>94
>>95
ありがとうございます
やはり基本的な知識なのですね
今日帰宅時に本屋さん寄ってみます
>>96
ありがとうございます
何から手をつけて良いのか分からなかったので流れを教えて頂けてすごく嬉しいです
まずは”出現単語リストの直積のリスト”の部分について調べてみます
周りに聞ける人が誰も居ないのでお金を払ってでも…と毎日思います… pyautoguiを使ってるんですが、日本語キーボードの無変換キーを入力する方法ってないですか? >>96
重ねて質問してすいません
出現単語リストの直積リストを作る
という部分はitertoolsを使って作る事が出来ました
次の要素毎にjaccard係数を求める部分についてなのですが引数として2つのリストを与える必要があるのかなと思うのですが、この時引数とするリストは直積リストともうひとつは何に当たるのでしょうか?
形態素解析したリストになるのでしょうか?
せっかく流れを示して頂いたのにすいません
基本的な考え方も分からないんだと痛感します… プログラミング全くの未経験で手を出してしまった…どうしよう 本増えるのはいいけど入門書はいらん
もっと突っ込んだ内容のやつが増えて欲しい numpyの配列の形を変えるにはどうしたらいいですか?
motoというshapeが(3,5)の配列があったとして
array([[1., 2., 3., 4., 5.],
[6., 7., 8., 9., 10.],
[11., 12., 13., 14., 15.]], dtype=float32)
この配列を以下のようなshape(3,5,1)の配列にしたいです
array([[[1., 2., 3., 4., 5.]],
[[6., 7., 8., 9., 10.]],
[[11., 12., 13., 14., 15.]]], dtype=float32)
配列をコピーする用に配列をつくってはみたものの
ここにどうやって形の違う配列をコピーすればいいのか分からないです
zr = np.zeros((3,5,1)).astype("i")
宜しくお願いします やりたいことが何か判らんが
>>> import numpy as np
>>> a = np.array([[1., 2., 3., 4., 5.],
... [6., 7., 8., 9., 10.],
... [11., 12., 13., 14., 15.]], dtype='float32')
>>> b = np.array([a])
>>> c = a.reshape(3,5,1)
>>> a.shape
(3, 5)
>>> b.shape
(1, 3, 5)
>>> c.shape
(3, 5, 1) >>110
ありがとうございます
ほげー、一行で出来るんですね・・・
まさかforで回すわけでもないしと悩んでました
numpyでグレースケールで採り込んだら
RGBのカラーの時の値が入ってた枠が無くなってしまって
ほげほげしてたところでした・・・助かりました。 ipythonでインデント(ブロック)の終了ってどーやんの?っと docstringを使おうとしたらエラーが起きた
"""ほにゃらら"""
の形式で書いたんだけど、無情にも
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x83 in position 1: invalid start byte
と返された。誰か助けて なるほど、教えてもらったキーワードでググって
なんとなく理屈が見えたきた
ありがとう x = [0, 1, 2] みたいなリストを並び替えると
1番目 [0, 1, 2]
2番目 [0, 2, 1]
3番目 [1, 0, 2]
4番目 [1, 2, 0]
5番目 [2, 0, 1]
6番目 [2, 1, 0]
となるけど単純に f(x,3) -> [1, 0, 2] みたいに呼び出す方法ありますか >118
itertools で全部列挙しておいてから、m番目を返すコード。
リストxの長さを n とすると、O(n!)の計算量になるので、nが小さい値でしか使えない。
また、メモ化してるので、x にいろいろなのがくるとメモリが足りなくなる。
memo = dict()
def f(x, m):
x = tuple(x)
if x not in memo:
memo[x] = list(itertools.permutations(x))
return memo[x][m]
桁DPの要領でm番目を直接求めるアルゴリズムもあるとは思う。 >リストを並び替えると
>...略...
>となるけど
なんで確定してんの? Numpy(またはリスト)で
HOGE =
[[AB], [CD], [0]
[AB], [CD], [0]
[AB], [CD], [0]]
AB:A〜Bの範囲で乱数
CD:C〜Dの範囲で乱数
のような形で2重配列を生成する方法有りませんか?
出来ればnumpyの関数を使うなりで高速に処理したいです >>129です
np.array([np.random.rand(1000) * 40 + 30, np.random.rand(1000) * 150 + 50, np.zeros(1000)])
としたら望んだ動作をさせることが出来ました
これが正攻法ですかね? リストでa=[[]]の状態から
a=[[1、1、1]、[2、2、2]、[3、3、3]]の状態にしたいんだけど
a[1].append(2)とするとindex out of rangeになる。
どうすればよかったの? 何で分からないのか全く分からないが
最初にa.append([])すればいい 多分indexが1から始まると思ってるんでしょう。 Pythonってオブジェクト指向なの?
クラスあるだけ? スクレイピングについて質問があります。
環境python3.6.5
(requests、beautifulsoup4インストール済み)
win10 64 pro
https://i.imgur.com/nzETfNB.jpg
写真のコマンドをShellで表示させる事は出来ました。
コマンドプロントで表示させようとすると一瞬表示されて落ちます。
hello worldは表示されたままです。
コマンドプロントで表示させるにはどうすれば良いのでしょう? 昼間っからプロントの外席で酔っぱらえる暮らしがしたーい >138
a = input()
をプログラムの最終行に追加して、ユーザーからの入力待ちにしたら、コマンドプロンプトが閉じずに開いたままになると思うよ。 すみません、どなたか教えてください。
requestsでデータを取得したいのですが、一回目のget()は成功するのに、2回目以降が失敗してしまいます。どうしたらいいでしょうか?
ソースコード → ttps://pastebin.com/iKXzUgL5 >>148
あんま見てないけどjson.loadsにリスト渡せれたっけ? 失敗する時のurlは確かに自分が想定しているものか?
失敗する時のエラーコードはいくつ?
curlを打っても同じか? >>150
URLはチェックしたつもりでしたが、完全に見落としていたようです。
ホスト名がおかしくなってたのが原因でした。恥ずかしい・・・
お騒がせしまして誠に申し訳ありませんでした。 jupyterlabってjupyternotebookの上位互換でいいの? どうせおしっこしか使い道のないちんちんなんだからそんなに気にすんな pythonで開発してるんだけど
'ascii' codec can't encode characters in position 10-14: ordinal not in range(128)
が出るんだけど文字コードがおかしいから?
日本語が含まれているファイルをアップロードするとことで出てるんだけど。
_aaa = '会社一覧.txt'
_aaa.encode('utf-8')
とかしてもダメで困ってます。 Python3.6です。
サーバはcentos7です。 ファイル名を英数字のみにしたら問題なくアップロードできるんです。 教えてください。
クラスを作って、それにデータを入れてって、
それをList配列にセットしていったら全部同じ内容になってしまいます。
調べてみたら参照になっているらしく、実態がひとつしかない?という
ことらしいのですけど、内容の異なるクラスをListに
保持するということはできないんでしょうか? C/C++ 以外の言語は、オブジェクトの中身がコピーされない。
オブジェクトの参照しかコピーされないから、参照は同一の実体を指す
中身までコピーしたいのなら、clone, deep copy みたいなメソッドを使って、
内側のオブジェクトまで、再帰的にコピーしていかなければならない
もし中身が参照だったら、その実体もコピーしなければならない >>158
しこしこすると、気持ちいいぞ
やってみ 158じゃないけど、やってみた。
痛くて全然気持ちよくない。 [Hoge(n) for n in range(10)] >>172
セフレがペロペロしてくれるずる剥け野郎で悪かったな 独学プログラマーという本でpython勉強してるけど。ディープラーニングやるなら、統計学とか数学知識もだいぶ要求されるんですね。ディープラーニングなんて言葉もさっき知ったばかりだけど、目的もなくプログラミング勉強して仕方ないよね。
お前らはなんの目的をもって、python勉強してるん? 俺以外にも波乗り人がいて安心した
仕事は大工で転職したい訳でもないけど、ローテクの仕事してる人間として。プログラミングに憧れがあったんだよねー。 エロ画像収集にしか使ってないから偉そうなことは言わない プログラミングできる大工とかかっこよすぎなので禁止します! WEB+DB PRESS vol.104、1,480円 + 税
Python, Unity 特集 import numpy as np
import matplotlib.pyplot as plt
import sympy
theta0 = sympy.Symbol('theta0')
theta1 = sympy.Symbol('theta1')
x_data = np.array([383530, 456474, 533496, 551308, 588788 ]).astype("float32")
y_data = np.array([22064192, 25691911, 27234521, 28403118, 27597193 ]).astype("float32")
def f(x):
return theta0 * x + theta1
error = np.sum((f(x_data) - y_data) ** 2)
diff0 = sympy.diff(error, theta0)
diff1 = sympy.diff(error, theta1)
theta0, theta1 = sympy.solve([diff0, diff1], [theta0, theta1])
print(theta0, theta1)
質問です。
簡単な線形回帰の問題を数学的に解きたいのですがtheta0とtheta1の出力がtheta0,theta1
になってしまいます。
どこが間違ってるのでしょうか? 自己解決しました
戻り値が辞書型なようです
すいません >>183
立ち読みしたけど
このスレ見てるひとには物足りないと思うよ 一部のwebサイトのソースで日本語が \u0000 みたいな形式になってることがあるんですけど
これを普通の日本語として表示させるにはどうすればいいですか? そのままconsole.logにぶっ込めばいいよ。
console.log('\u6584')
=> 斄 すいません質問の仕方が悪かったです
IDLEに対して"\u6587\u7ae0"と入力すると
"文章"と表示されるのはわかっているのですが
\u6587\u7ae0 という文字を含むファイルを読み込んでも
"\\u6587\\u7ae0" と表示されるだけなので
これをなんとかして"文章"に変換してスクリプト内で自由に扱えるようにしたい
ということです
あと環境はWin10 Python3.6.0です codecs.decode(foo, 'unicode-escape') スパイダーにパイゲーム入れたらスパイダーの実行ファイルが2つになった
spider.exeとspider(pygame).exeだ
これ普通なの?
追加するたびにexeが増えるとかおかしくない? >>192
質問者じゃなかったけどちょうちょうちょうたすかった
すばらしい!!! (・∀・) ありがとう!!! cloud9で開発を始めましたが、自作関数のインポートでなぜかIDEに怒られます。
具体的には以下のコードで、main.pyの3行目[from my_lib import mlib]の左に
赤いバツ印が付いて’No name 'mlib’ in module 'my_lib'と表示されます。
ただ、そのまま実行すると特にエラーも出ず、mlib.○○でmy_lib.py内に記述した
関数も問題なく使えてますが。。。どこがおかしいのでしょうか?
<main.py>
#!/usr/bin/env python3
# coding: utf-8
import json
from pprint import pprint
import time,datetime
import sys
sys.path.append("/home/ec2-user/environment/my_lib")
from my_lib import mlib (←怒られる)
mlib = mlib() 上の続きです。
<my_lib.py>
#!/usr/bin/env python3
# coding: utf-8
import math
from decimal import *
import sys, traceback, time, datetime, csv
import requests, json, urllib
from pprint import pprint
class mlib:
def __init__(self):
self.output_path = "/home/ec2-user/environment/my_output/"
def aaa(self,〇〇〇)
〇○○〇〜 すいません、文章に誤りあり、×がつくのはmain.pyの3行目ではなく、
下から2行目です。
誤:
main.pyの3行目[from my_lib import mlib]の左に
赤いバツ印が付いて’No name 'mlib’ in module 'my_lib'と表示されます。
正:
main.pyの下から2行目[from my_lib import mlib]の左に
赤いバツ印が付いて’No name 'mlib’ in module 'my_lib'と表示されます。 「python module import」で検索!
https://docs.python.jp/3/tutorial/modules.html
>import mlib
よく知らないけど、import の後ろにクラス名は、書けないのかも? >>196
肝心のmain.pyとmy_lib.pyの置き場所は?
それと /home/ec2-user/environment/my_lib ディレクトリ以下の構成は? >>201
各ファイルの置き場所は以下になります。
/home/ec2-user/environment/main.py
/home/ec2-user/environment/my_lib/my_lib.py IDEが動的path追加を認識できないアホなだけなんじゃなかろうか
諦めて無視するしかない >203
そうなのかもしれません。
main.pyと同じ階層にmy_lib.py置くと警告出ません。 Ruby みたいに、そのファイルから見て、相対パスで指定できる、
require 相対パスのような書き方は無いの?
require_relative 'my_lib/my_lib.py' 【Python入門】パッケージの作り方と色々なimportの方法
https://www.sejuku.net/blog/25587
__init__.pyに、importしておきたいファイルを、相対パスを使って書く >>207
あのアスペはRubyスレでも人工無脳扱いなので勘弁して欲しい Cに挫折してPythonに来たけど、PythonをやってみるとCが難しい理由がよくわかる
Cにはリスト・辞書など実用的なプログラミングに必須のデータ構造がなく、
それに相当する構造を自前で実現しようとするとメモリイメージを理解したうえで
ポインタを駆使する必要がある
一般人は肝心のロジックを書く前に、データ構造の構築と操作でギブアップしてしまう
何が言いたいかというと、Pythonを作ってくれてGuidoさんありがとう
こんな私でも正規表現を使って業務データを望みの形に加工するくらいできるようになりました subprocess.runを使ってwgetにファイルをDLさせたいんですけど
URLに&が含まれているとエラーになってしまいます
あとfor文でURLに連番を付加したときもエラーが出ました
どう対処すればいいですか? 初心者ですが
anacondaでF5で実行後IPythonコンソールにプロンプト(フォーカス?)を
自動で移動したいのですが方法設定はないでしょうか。
input()で入力を求められるところでいつも誤ってプログラムの書き換えをしてしまいます。 目当てのサイトから必要な情報を抜き出し、csvに保存するところまではできたのですが、実際にやりたいことまで知恵が及ばず、こちらで質問することにしました。
現在のコード(sample.py)
──────────
import requests, bs4
import csv
import requests, bs4
res = requests.get('https://news.yahoo.co.jp/pickup/6286588')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")
elems = soup.select('h2')
for elem in elems:
print(elem)
with open('news.csv', 'w', encoding='CP932', errors='ignore') as f:
writer = csv.writer(f)
writer.writerows(elems)
──────────
※URLとh2に関しては質問用です。 >>212 続き
上記コードで1つのURLの"h2"が取得でき、"news.csv”に保存ができています。
でも本当は、情報を取得したいURLが大量あるのです。
URLは違うけど、同じサイトの中で、hmtlの骨組みが同じなので、アクセスするURLさえ変えることができれば他はそのままでいいです。
そこで、「URLがリスト化されたファイル"urllist.txt"の内容を読み込んで、一行目のURLから順々にアクセスして"h2"を取得し、csvに書き込んで保存するコード」というイメージでコーディングしたいと思っています。
※urllist.txtの内容
https://news.yahoo.co.jp/pickup/6286588
https://news.yahoo.co.jp/pickup/6286594
https://news.yahoo.co.jp/pickup/6286582
"requests.get"で指定するURLを別のファイルから読み込んで指定する方法、同じ処理を繰り返す方法、などで調べたのですが、必要な回答に辿り着くことができませんでした。
正解例がわかる方、どなたかお願いしますm(__)m
※urllist.txtはテキストファイルじゃなくてもいいです。 3つのコードしか知らないのに優れた楽曲をつくるやつもいるからな pythonは今日勉強を始めたばかりです。
プログラム自体が初めてですが、楽しいですね。
とても好きになりました。
解決したらまた書き込みにきますm(_ _)m 3つのコードでGoogleアシスタント作りました。 自己解決しました
URLに&が含まれているとエラーになる件は&を^&に置換して渡せばよかったようです
URLに連番を付加する件は単純に関数の作り方が間違っていました スクレイピングでろくなサイトがないから、ためしに本買ったらわかりやすくて最高ー
当たり前だけど本重要だな Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、
佐々木拓郎・るびきち、2014
よく知らないけど、Python なら、なでしこの作者、クジラ飛行机の本か?
そう言えば、巨匠がフレームワークの本を出したよ。
先に、無料のRails チュートリアルをやった方が良いと思うけど
Python Django 超入門、掌田津耶乃、2018 発達障害はチンパンジーアイちゃんと小粋なトークしてろ スクレイピングする時に、
デフォルトのモジュールのみで、パースも正規表現駆使して拾いながら
手続きの流れのままにズラズラと構成しちゃダメかい? <1><2></2></1>
正規表現は、木構造に対応できない。
<1>と</2>が、マッチしてしまう
jQuery, Ruby のNokogiri では、CSS セレクターを使う。
XPath よりも良い 前後の文字列で肝心のデータ部分を特定・取得できさえすればいい場合は、
正規表現でもそんなには困らないんだけどね。 今時だれがrubyなんて使ってんだ?
PythonとBeautiful Soupでやるだろ。
本屋でもこの組み合わせばかり。
nokogiri?どころかruby自体の本すらない。 seleniumでchromeのヘッドレスでダウンロードしたいんだけどどうしたらいいの? >>231
ヘッドレス起動の仕方は↓とか嫁
tps://qiita.com/orangain/items/db4594113c04e8801aad
ダウンロードはzipファイルなら↓あたりを参考に
tp://toolsqa.com/selenium-webdriver/c-sharp/download-file-using-selenium-and-verifying/ >>232追記
Cからの書き換えなんていやだ!というなら↓とかみれ
tps://a-zumi.net/python-selenium-save-to-disk/
tps://qiita.com/py_maro/items/6e79e4049677cf43c398 >>233
すみません普通にならダウンロードはできてるんだけど
ヘッドレスモードにするとダウンロードできなくなるんです PythonのIDLEの画面をクリアすることってできますか? Ruby では、--headless オプション
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for(:chrome, options: options)
driver.navigate.to "ここにURL" >>239
python2でもpython3でも動きませんでした。
他の方お願いします >>209
俺と同じ感想の人が居てた、python大好き やりたいことに集中できるのがPythonの良さなのは同意するけど、便利な既製のデータ構造なんか他の言語にもだいたい用意されてるだろ
Pythonは文法がシンプルで記述の自由度が低く、変な例外的な仕様も少ないから、
どの書き方が美しいかなどというくだらないことをあまり考えなくていいんだよ
その結果、やりたいことに集中できる 1円硬貨: 8 枚
5円硬貨: 3 枚
10円硬貨: 2 枚
50円硬貨: 2 枚
100円硬貨: 3 枚
↑の硬貨のセットを持っているとする。
これらの硬貨を使って支払える金額のうち、その支払いに使える硬貨の組合せが
一通りしかないものの数を求めよ。
これを計算するためのプログラムを作ったのですが、正しい答えが出ません。
どこが間違っているのでしょうか?
http://codepad.org/Hyc8E6HM >>243
Cの話してるところにC++の話題持ち込むと混乱するからやめて プログラミング全くの初心者なのですが、beautiful soupというのを学ぶのに一番適している本やWebサイトってどれでしょうか? >>245
俺には関数部分のコードが正しいのかはわからんのだが、
paysに0が含まれてるからとかってオチじゃないの? とりあえずPythonによるWebスクレイピングという本買って勉強してみます jQuery, Ruby のNokogiri の、CSS セレクターを参照。
XPath よりも良い
なでしこの作者、クジラ飛行机の本は、難しいのか jythonみたいなやつでpython3のはありますか? >>263
pypyってやつを使えばpython3とjavaを一緒に使えるんですか? 楽観的な解釈をするならばYes
質問者のレベルに合わせて考えるならNo Anacondaからjupyter notebookを立ち上げてプログラムを起動するとno module named intertoolsというエラーが出ます
中身を確認したり何度かプログラムを動かしていると動作します
数分前まで動いていたプログラムでさえ立ち上げ直後は上記のエラー発生するのですが同様のケースを経験された方はいらっしゃいますか? 指定した値が入っているリスト番地を返すindexって命令がありますけど
あれの正規表現版みたいなのはないですか? idx = next(i for i, v in enumerate(hogelist) if re.search(r"hage", v))
こういう事言ってるのかと思った >>272-273
目的を解決する標準関数はないけど
そのやり方を参考に自作関数を作ればいいわけですね
分かりました。ありがとうございます 2,3分で書くと、こんなもんかな。
import re
s = "012abc345def"
m = re.findall(r'[a-z]', s)
for i in m:print(i,re.search(i,s).span()) できてないんじゃない?
50+10+10+1+1=72
50+10+5+5+1+1=72
50+5+5+5+1+1+1+1+1+1+1=72
etc.. 71通りになった
問題の解釈を間違ってなければだけど スクレイピングしたら
requests.exceptions.ConnectionErrorがでて
「既存の接続はリモート ホストに強制的に切断されました」って表示されたんだけど
これ相手から弾かれたってことですよね
time.sleep(10) に入れてたんだけど少ないですかね。 サイトによるだろ。株やFXならともかく、普通のサイトだと気が狂ってるとしか思えんフェッチする連中がいるし。 denyされていなくてもサーバーが高負荷になってれば普通に出る
denyされてるのか単なるエラーなのかは切断の傾向から推測するしかない
それなしに、ただ切断されましたと言われても分かんないね >>281
>>282
ありがとう。
もしよければその単語の意味を確認させてほしい。
フェッチ=データを取り出すこと
deny= 拒否する 否定する など 接続を弾く場合、一般的にはファイヤーウォールやhttpdの機能を使う
それの設定の定番がallow-deny形式のルール
denyされた=ファイヤーウォールやhttpdで接続を拒否するように設定された
と考えて >>285
ありがとう。止まったのは夜中だから機械的にアクセス拒否されたと考えてます。
timesleepの秒数をもっと長くして、あとrondomと組み合わせて、同じ時間感覚でアクセスするのやめるて様子みてみます。 初歩的な対処法なら
同じIPアドレスからのアクセスの間隔が常にほぼ同じ秒数間隔の変更
同じIPアドレスから、同じユーザーエージェントで大量にアクセス IP変更で対処
人間らしくないきっちりしすぎるアクセス *1
何度もアクセスしてきているのに、セッションクッキーを絶対に送ってこない
__CookieはWEBサーバーが発行し、ブラウザが保持するキーと値
__セッションはWEBサーバーで保持するキーと値
確認方法
C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Cookies
ブラウザのアドレス欄に____javascript:document.cookie;
リファラーがまったくない ココは調べてる必要がある
*1
__HTMLだけにアクセスしてJavaScriptやCSS、画像にまったくアクセスしていない
注意:画像だけにアクセスしても同様に対処される それこそ人工知能で人間っぽくみせるプログラムとかを作ってほしいですよね。 いくつかの書式形式から、HTML構造を頻繁に変えられると
もう、維持の張り合い
そんなサイトに出くわした事はない。けどなーw >>288
python関係ないけど、
費用掛かって良いなら、
___RPAのトリガーを使う
試した事ないから、無理かもしれない。+時間が膨大にかかる >>287
とても参考になります。
>同じIPアドレスからのアクセスの間隔が常にほぼ同じ秒数間隔の変更
やりました。今のところこれだけで大丈夫そうです。
>同じIPアドレスから、同じユーザーエージェントで大量にアクセス IP変更で対処
調べたらやり方がでてきたので、検討します。
>人間らしくないきっちりしすぎるアクセス *1
わかりました。覚えておきます。
>C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Cookies
Appdateというフォルダがなく、C:\Users\(ユーザー名)、までしか一致しなかったです。
Cドライブ指定で「Cookies」で検索しましたが、これに関係ありそうなファイルにはたどり着けませんでした。
こちらwin10(64)です。
>ブラウザのアドレス欄に____javascript:document.cookie;
やりました。なんか文字いっぱい出てきました。
>リファラーがまったくない ココは調べてる必要がある
検索結果のURLに直接アクセスしてるので、TOPの検索経由でスクレイピングする方法も試してみます。 >>291
おめでとう。
こっちはURLまで取得できるけど、保存だと弾かれて苦戦中
試しにIPとブラウザ偽装でも、ダメだった。
諦めて、PyAutoGUIでキーボードでブラウザ操作に切り替え用か迷ってる。 質問です。
こんなふうなスクリプトを書いています。
https://pastebin.com/0KKDbGnp
68〜75行目で変数に関数を代入していますが、77〜78行目をコメントアウトしてあるので何も動かないと思うんですが、実際には6行目の関数が動いてprint(〜)とinput()が求められてしまいます。
なぜ動くんでしょうか? >>293
68行目が実行されて、
get_service_id() が実行されているからでは。
むしろ、なんで77-78行目をコメントアウトすると、何も実行されないはずと考えたのかが理解不能。 68行目でget_service_idを実行してるから。
関数の代入ではなく関数の評価結果の代入になってる。
だからget_service_id関数はそこで評価(実行)され、そこでinput求められてる。 >>294
>>295
どうもありがとうございます。
変数には関数を代入したのでは無く、関数の処理結果を代入した場合は、77-78の有無にかかわらず68行目の時点で実行されてしまうんですね。
77や78を動かした時のみ上の関数が動くようにするにはどんな方法がありますか? え、ifも分からないとかそういうレベルなの
ifは分かるの?どう? if文は分かりますが、この場合どうやって使うんでしょうか? >>297
なんでいちいち煽るのスレタイ読めないの ifで77に必要なコードと78に必要なコードに分けろ
普通の頭ならそうする
>77や78を動かした時のみ上の関数が動くようにするにはどんな方法がありますか?
変数を一切使わなければいい
あのコードだと読み辛すぎて普通の頭ならやらない >>300
どうもありがとうございます
ifの使い方、変数を使わない方法を考えてみます スクレイピングに挑戦してるんだど
503や404のHTTPerror別に処理を分ける方法ってありますか?
503の時は動作停止
404の時は動作続行
としたいんだけど…
検索してもさっぱり手掛かり掴めないので、
方法としてあるかどうかだけでも知りたいです。 >>304補足です。
スクレイピング対象のURLは複数あって、
コード内のURL(途中まで)と、txtファイルから読み込んだパラメータを組み合わせて完成URLを生成してます。 プログラミングもやったことないんですが、いきなりpythonの入門書をやっていいのでしょうか? それともPCの入門書みたいな本を先にやるべきでしょうか? >>305
まずは自分の書いたコード貼れよと
このスレで以前マジ叱責されたわ スクレイピングとapiについての質問なのですが
セキュリティ関連のあるサイトから検索し、結果を取得したいのですが提供されているapiがリクエスト上限が分間数件とかです…
もう少し効率よく取得したいのですがスクレイピングならこういう制限なく自由に取っていって良いんでしょうか?
robots.txtは確認しましたがdelayの項目は無く制限された階層?からの取得はありません。 >>306
まずPythonをやる動機はあるのかい?
システムを外注する金がないからお前作れと上司から無茶振りされたとか、
学校の課題で出されたとか、具体的な動機がないとプログラミングは身につかない
ただやってみたいってだけで身に付くのは好奇心旺盛で頭が柔軟な子供のみ >>310
>ただやってみたいってだけで身に付くのは好奇心旺盛で頭が柔軟な子供のみ
子供は子供相応のやさしい課題をやるから「やってみたい」だけで身につく、という面があるのだろうね
プログラミングは複雑だし、単に覚えるだけではなく創る面もあるから、継続してモチベーションを維持しないといけない
モチベーションの維持ってどうすればいいのかな? >>309
日本では悪しき前例があるから「どこまでならやっていいのか」に関しては部外者はなにも保証できない
そのサイトにルールが記載されてないなら運営に直接に尋ねるのが正解
尋ねた上でやるなと言われたら素直に諦めてAPIを使う
ビジネス上のメリットを提示して交渉できるなら希望はあるけど個人じゃ難しいよ >>312
ありがとう
英語のサイトで尋ねるのも大変ですし、この作業自体が隣の席の人がダルそうにチェックしてるから
どうにか出来ないかな レベルの話だからAPIで簡単に実装してみます
遅いダルいとか言い出したら昔の事件の存在とか少し伝えてそれでも欲しがったらスクレイピングしてみます改めてありがとう >>308
すみません。質問用に同様の動作をするコードを作りました。下記コードを元に何らかの助言が頂ければと思います。
urllistは質問用に設定したヤフーニュースの記事です。現状だと「res.raise_for_status()」が記述されているため、2つめの記事「〜pickup/9999999」の読み取り時に404エラーが出て処理が停止します。
エラーコードは 〜 requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://news.yahoo.co.jp/pickup/9999999 〜 です。
実現したいことは、404エラーの時は停止せず、次のURL読み込みに進んでほしいのです。ただし、503エラーの時は、停止させたいと思っています。
res.raise_for_status()を消せば処理は進みますが、503の時もアクセスし続けてしまうことが課題です。
----------
import requests, bs4
import csv
urllist1 = [
'https://news.yahoo.co.jp/pickup/6287442',
'https://news.yahoo.co.jp/pickup/9999999',
'https://news.yahoo.co.jp/pickup/6287380',
]
with open('news.csv', 'w', encoding='CP932', errors='ignore') as f:
for urllist in urllist1:
res = requests.get(urllist)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")
elems = soup.select('h2')
for elem in elems:
print(elem)
writer = csv.writer(f)
writer.writerows(elems)
---------- >>310
文系の大学生で、暇なのでやってみたいと思いました… >>315
文系なら英語できる?
codecademyとかやってみたら、
わからん単語調べながら
環境構築も要らんし >>315
正直何に困ってるのか掴みかねますが
PCの入門本かpython入門本で迷うと言うことは基本的なPC知識が足りないと言うことでしょうか
自分で問題無く環境構築など進めるかと言った疑問でしょうか。
どちらにしても暇を持て余しているのであればネットで調べて実際にやってみると出来る出来ない分からないなどがはっきりし
質問しやすくなったり書籍購入するにしてもどういう本が良いか検討しやすくなると思われます。 >>ID:2Vrp11he
そもそもPCをあまり使ったことがあまりないなら、まずはPCを使い倒すこと
その中で「一件片付けるのは簡単だけど、何百件単位で片付けなきゃいけないからやってられない」って作業を見つけたら
それをプログラムで解決してみればいい
あと、プログラムを覚える前段階として正規表現を覚えるといいよ
Webから情報をコピー→テキストエディタやエクセルに貼り付け→正規表現で整形
という作業を日常的によくやるようになったら、プログラムスキルも伸びやすいと思う >>314
for urllist in urllist1:
res = requests.get(urllist)
if res.status_code == 404:
# 何がしかの処理(必要なら)
continue # forに戻って次の処理に進む
res.raise_for_status() 最初っからわかるヤツなんていない。
「どっから手を付けていいのかわからない」が当たり前。そこで苦しんで覚えるかってのが分岐点だな。 >>319
ありがとうです!
ちょうどif文で調べてたところでした。
もっと勉強頑張ります! 環境構築とか正規表現とか用語が分からないけど、やっぱり暇を活かして自分で少しやってみます >>319
すみません、よく見たら出力された記事が一番下の「〜6287380」だけで、
一番上の「〜6287442」が取得できていませんでした。
解決方法もしわかりましたらご回答お願いします。 自己解決しました。
res.raise_for_status() 以下のインデントを間違えていました!
自己解決! まず学生は、cd, echo, cat とか、数十のLinux 基本コマンドから勉強する
謎のような呪文を覚えるって、皆言ってる c言語の構造体配列みたいなのはpythonでどうやればいいんですか? みたいなのではなく目的を言え
そんな聞き方をされても、同じものはPythonには無いとしか答えられん >>330
オブジェクト指向機能使えばいいのでは? >>332
アドバイス通りクラスとか配列とかいい感じにすればできそうです
ありがとうございました codeacademyって、Python3のコースってできたの?
それともまだ2だけ? すみません
くっっっっっっっっっっっっっそ初心者丸出しの質問で申し訳ないです
公式からexeインストーラをDLしてインストールしたのですが、コマンドプロンプトでバージョン確認しようとしても
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出て実行できません
インストール時にパスを通すオプションにはチェックを入れたし、念のため環境変数も確認しましたが
インストールフォルダ、及び配下のScriptフォルダがpathに設定されていました
OSはWin10 64bitです
使用したインストーラはpython-3.6.5-amd64.exeです
何がいけないのでしょうか >>337
3系はたぶん python3 あるいは py だとおもうの >>338
マジだ
pyでした
ありがとうございました! すみません、pythonを「サイフォン」と読んでしまう病気にかかっているのですが、治す方法はないでしょうか、、、 ナノマシンでも注入されてるか、ゴーストハックされてんじゃないですか? https://ideone.com/0CUPkP
15行目のHTTPErrorの部分でpylintで以下のエラーが出ます。
E0701:Bad except clauses order (URLError is an ancestor class of HTTPError)
何がいけないんでしょうか? >>342
URLErrorはHTTPErrorの基底クラスなのでexcept句を並記しても分離できませんよという親切なご忠告。 >>342
自己レス
12〜14と15〜17の順番を逆にしなきゃいけないんでしょうか?
順番的にURLErrorの方が植えだと思うんですがどうですか? URLErrorとHTTPErrorのexcept句の記述順序を逆にすると多分文句いわれなくなると思う。 >>343
なるほど
サーバーからHTTPエラーが返る場合でも先にこの処理でURLエラーを返してしまうので、HTTPエラーに進めないんですね >>343
>>345
どうもありがとうございました Excelから読み込んだデータをデータベースに格納したいと思っています
必要な列を抜き出してデータフレームにするところまでは出来たのですが、データベースに入れる部分で行単位で処理するのか列単位で処理するのかなど、どのように処理すれば良いのかイメージが沸かず行き詰まっています
進める手順や考えた方をよろしければ教えてください >>342
21行目
AttributeErrorってなんでしょうか?
参考にしているスクレイピングの本の最初でいきなりこの記述が出てきました。
Pythonの入門書の索引にもAttributeErrorはありませんでした。 >>348
CSVファイルなら直接DBのコマンドでロードできるから、
まず一時テーブルに全部ロードしてから必要なものだけ別のテーブルに移せばいい
Pythonなんか全く必要なくクソ簡単だしPythonなんか使うより遥かに速いよ pythonは他人のコード読みやすいのがほんと素晴らしいね
勉強はかどるわ ある程度の量のデータを扱うにあたって、最も重要なツールはTensorFlowでもSparkでもpandasでもPythonでもなくSQLだ
覚えておけ >>349
BeautifulSoupが吐くエラーなので、BeautifulSoupのドキュメント見ると良いです。 >>336
亀レスすいません
今回は使いませんでしたかありがとうございます
ctypes.StructureでCっぽく書けるとかpythonは自由度が高いのか低いのかよくわからない言語ですね >>330
class を使えば?
Ruby でも普通は、Struct よりも、classを使う。
Structは、classのひな形を作る、class generator
>>349
「python beautifulsoup AttributeError」で検索! こんなところにも他人の褌で相撲を取るRuby厨w
書店の棚割りは減るばかりwww 必要な関数を概ね完成させたプログラムがあって
IDLEで関数を手動で実行しながらmain関数を作ろうって段階なんですけど
IDLEを閉じちゃったら、毎回IDLEにプログラム全体をコピペするしか無いんですかね? >>360
PyCharmがいいらしいのでとりあえずインストールしてみましたが
機能が多すぎてよくわかんないです
あと、インタラクティブシェルではインポートできた「win32com.client」が
PyCharmではModuleNotFoundErrorになってしまいます
>>361
ググったけどよくわかんなかったです
キーワードから察するにIDLEはプログラム内で設定された値を保持できるみたいなことだと思いますが…
あとちょっと嘘ついてました
IDLEは文字が多くなるとすぐ重くなるので使ってません
コマンドプロンプトのインタラクティブシェルで実験しながらプログラムを作ってます 始めてjupyterlab使ったけど便利すぎて泣けてきた >>362
それpycharmとIDLEで使ってるインタプリタが違うからモジュールをインポートできないんだよ
パイチャーム難しいならスパイダーとか簡単なんじゃないか?使ったことないが vscodeでもええで、pyCharmほどしっかりはしてないが、勉強目的なら十分いける それは逆
プロダクションならPythonだけで完結するケースは稀だからVSCodeになる 「勉強目的なら」が見えないのかね。
プロダクションとかアホか。 とりあえず当初の問題は自己解決しました
py -i script.py
でスクリプトを読み込んだあとインタラクティブシェルに移行できました
エディタについては今後じっくり検討します。ありがとうございました >>368
まるでpyCharmが本格的な開発用でvscodeは勉強くらいにしか使えない玩具ととられかねないような書き方だったから訂正したんだよ プログラマーはなぜイキりがちなんだろうな
最初は穏やかな人でもプログラミング学ぶと性格変わったりしてな… すべての言語で無料の、vscode だろ
JetBrains の、WebStorm, PhpStorm, PyCharm, RubyMine はプロ用 PyCharmなんか元々金になってるとは思えないからVSCodeに取られようが影響ないだろうけど、
VSCodeはJetBrainsの総本山のJavaすら取り込み始めてるからなあ
PyCharm愛用者もそろそろ次を考えとかないといきなり会社ごと消滅するかもね >>369
ipythonも調べると幸せになれるかもしれない 2018-06-28T02:05:00+09:00
2018-06-28T03:00:00+09:00
この二つの文字列を
02時05分 - 03時00分 (55分)
と表示させたいです。
https://ideone.com/2zljNY
このように書くと、22行目の '(' と ')' はstrでsabunはintなので + を使うと表示させたいです、エラーになってしまいます。
いい方法教えて欲しいです。 > このように書くと、22行目の '(' と ')' はstrでsabunはintなので + を使うと表示させたいです、エラーになってしまいます。
このように書くと、22行目の '(' と ')' はstrでsabunはintなので + を使うとエラーになってしまいます。
の書き間違いです 自己レス
19行目をsabun = str(int((epo_time_e - epo_time_s) / 60))とすることで希望どうりになりました str()しなくても書けるよ
例えばpython3.6以降なら、
print(f'{ss_time} - {ee_time} ({sabun} 分)') >>381
どうもありがとうございます。
こっちの方が何倍も簡単ですね。
f’{}’という機能がそれでしょうか?
これは何という名前の機能なんでしょうか?
使いこなせるようになりたいです。 >>382
f-stringsとか、フォーマット済み文字列リテラルと言う(多分)
'python 文字列 フォーマット'とかでググれば、他のやり方も出てくると思う >>383
どうもありがとうございます
print('くだもの:', ttes1['aaa'])
や
print('やさい:', ttes2[0])
今まで使ってた上の方法をf-stringsに変える場合はどうやりますか?
ttes1の中はこんな感じです。
print(f'くだもの: {ttes1}')
くだもの: {'aaa': 'りんご', 'bbb': 'みかん', 'ccc': 'いちご'} 自己レス
print(f'くだもの: {ttes1["aaa"]}')
と辞書の[]の中は'ではなく"で囲えば大丈夫でした 他によく使うのは書式変換かな
n = 123456789.123456789
print(f'{n:,.2f}')
-> 123,456,789.12
この場合は、桁区切りと小数点以下桁数を指定してる
formatで調べてみて >>386
ありがとうございます。
これも便利そうですね。
小数点以下を省きたかったので、>>378 の19行目でint使ったんですが、fでもできそうですね Java屋なんだけどpythonやらなきゃならない感じ
eclipseでpythonやってる人いますか? Pycharmを日本語化したいんだけど
上手くできないわ pleiadesインストールしてもset.exe開いてもなにも起きねえ
ウィンドウズだから?charmが最新で対応してないとか?
ファイルが長すぎてちゃんと解凍出来てないとかか >>389
日本語化後は環境によっては管理者として起動しないと起動してくれんかったな https://ideone.com/KXbDmh
Sekaiの部分を書き換えたいです。
clickのサブコマンドとオプションを併用して以下のようになるようにオプションを付ける方法教えてください
$ ./prog.py english --name masao
Hello, masao! >>394
https://ideone.com/F6Y5AM
こう書く事で、
$ ./prog.py english ―name masao
Hello, masao!
に出来たんですが、ヘルプの項目が表示されませんでした。
間違えていますか? https://docs.python.jp/2.7/howto/urllib2.html
このサイトの
import urllib2
response = urllib2.urlopen('http://python.org/')
html = response.read()
を実行したのですがurlopenのところでずっと固まってしまいます。
環境は以下のとおりです。curlだと固まらないです。
Linux pre.aichi.net 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64
Python 2.7.13 (default, Nov 24 2017, 17:33:09)
[GCC 6.3.0 20170516] on linux2 やってみましたが固まります。
http://www.yahoo.co.jp/ だと固まりません。
http://www.goole.co.jp/ は固まります。
それで試しにtimeoutを設定してみたらタイムアウト後に返って来て
html = response.read() で読み込んだらすべて読み込まれます。 ラジオで現在放送中の番組情報が書かれてあるjsonをwebから取得して必要な情報だけを標準出力に出力するスクリプトを書きました。
requestsとjsonを使いました。
jsonには次の番組の開始時間もかかれてあるので、スクリプトを実行するとまず現在放送されている番組情報を表示してそのまま待機、次の時間時間が来るとjsonを再取得してまた標準出力に出力する〜を繰り返すスクリプトを書きたいんですが、どんな方法がありますか?
番組情報を表示する関数はprint_noa、次の番組の開始時間を取得する関数はget_next_timeとしました。
漠然とforとsleepを使うのかなと思っています?
よろしくお願いします。 >>399
urllib2.Request()を使って headersでUAとリファラとかを渡してみたら?
まぁ、そんなことしなくても、>>397で普通にレスが帰ってくるけどねぇ。
>>401
一定時間おきでも事足りそうだから、
無限ループにtime.sleep()でいいのでは?
あとは、その度にターミナルをクリアするとかがあるといいのかな。 python.org なんかで試すな!
実験用のサイトじゃねえぞ。
負荷を掛けるな
そもそも、HTML を読み込んでも、
ブラウザじゃないのに、JavaScript は実行されないだろ
普通は、Ruby などで、selenium-webdriver で、Chrome を実行したりする。
本物のブラウザを操作しないと、正しくページが実行されない >>401
Linux では、at, cron に登録すれば、
その時間が来れば、アプリを起動してくれる
Windows にも、同様のサービスがあるはず >>388
7年くらい前にやったことあるけどクソすぎて投げた
誰に何と言われようが二度と試す気はない
今はVSCodeを愛用している どうもありがとうございます
5分の番組もあれば120分の番組もあればと番組毎に時間はまちまちなんですが、time.sleepとwhiteループを使う場合は、次の番組の開始時間に関わらず、(たとえば)5分おきに再取得するということでしょうか?
むやみに何度もアクセスするのはサイトにもこっちにも悪い気がして… >>404
どうもありがとうございます
cronに自分で書き込むんじゃなくて、自動更新なのでスクリプトの中で実現させたかったです。 ターミナルのクリアは
os.system('cls')
で出来ました >>409
os.system('cls')は使えませんでした ターミナルのクリアはos.system('clear')でした
clsはウインドウズのコマンドらしいですね >>407
プログラム内のループで、時間を足していっても、ずれてしまう。
不正確
でも、時間クラスを使って、OS から時間を教えてもらえば、できる >>412
詳しく知りたいです。
https://ideone.com/FEcZrG
NGワードだと言われたのでそこにレス内容を書きました。 Ruby では、Time クラスで、
OS から時刻を教えてもらったり、時刻同士の差を求めたりできる
Python にも、時刻クラスはあるはず
次まで、sleep した後、
OS から時刻を取得して、過ぎていれば、次の処理をする >>406
5分単位で番組があるだろうから、そのくらいでいいのでは?
その程度の間隔のアクセスなら別に問題無いと思うよ。
気になるなら間隔をあけることになるだろうけど、
次の番組もわかるということだから、少しくらい遅れても実用上変わらないだろうし、
まずはつくってみることで、何が足りないのかもわかるしね。
個人的には、そうしたたぐいのツールは時間の正確さは不要と考えてる。
もしできるだけピタリと出したいのなら、次の番組の開始時刻を抽出して、
その開始時刻(+αは必要かも)に更新するようにすればいいでしょう。 >>415
どうもありがとうございます。
初心者なのでどのくらいの頻度でアクセスするのが常識の範囲内というか威力業務妨害やエコの観点からいいのかが分かりませんでした。
とりあえず120秒スリープさせてその後情報の再取得を行うwhileループを作ってみたんですが、情報内容に変更がなくとも2分ごとに同じ内容で更新され見た目がチラついて落ち着かなかったのでやめました。
get_next_time()という次の番組開始時刻と現在時刻の差分秒を取得する関数を作り、以下のようにループさせる事で自動で更新してくれました。
https://ideone.com/j2WbQc
こうするともっといいよってアドバイスがあればお願いします。
時刻のずれがあるかもしれないから415さんのおっしゃるように差分秒に+α秒付け足したほうがよいかもですね。 待ち時間 = 次の番組開始時刻 - 現在時刻 + 1秒
待ち時間だけ、sleep
現在時刻を取得して、次の番組開始時刻以降になっていたら、処理する >>414
どうしてrubyの解説をするんですか?
rubyでは、って書かないと死んじゃうんですか? >>402
windowsだとできるので環境の問題だと思うのですが
自分には見当がつきません >>414
pythonでのやり方知らない/書けないなら黙っててくんない?情報量ゼロのゴミノイズだから。 >>420
あなたのlinux環境はみんなわからないから答えようがないのでは。winで出来るならwinで出来てる環境にlinux側を寄せてみては? 下はハズレ
上は十分条件だけど必要条件ではない
https://docs.python.org/3/glossary.html#term-generator
>generator
>A function which returns a generator iterator.
>ジェネレータ
>ジェネレータイテレータを返す関数 >>426
関数がジェネレータの定義
その戻り値はジェネレータのインスタンス
クラスとインスタンスの関係に相当する
ヘビという概念と実際にお前の背後にいるヘビの関係のようなもので、どちらが正しいということはない その用語集にも書いてあるがジェネレータという単語は両方の意味で使われるので文脈次第
ただ日本語圏ではジェネレータイテレータを指す方が逆に一般的ではないかと思わなくもない
ジェネレータ関数もfunctionだし、返ってくるのはgenerator objectだしでね
そこらの解説で雰囲気を掴むのは良いが、独自解釈も少なくないので公式ドキュメントを読みましょう >>427-430
ふむふむ、よくわかりました。ありがとうございます python.orgが過負荷になってただけだと思う 最近Pythonを始めたものです
質問があります
.pyをexe化しようと思い
VSCodeのターミナルでpyinstallerを行いました
その後参考にしたサイトの手順通りに
pyinstaller sample.py
と入力し、最終的にはexeが出来上がるのですが実行しても何も起きません
処理としましては画像を読み込み上下反転して新しいファイル名で保存するという内容です
調べてみたのですがヒットしたサイトに書いてあることが難解で理解出来なかったため質問させて頂きました
exeが出来上がるまでのターミナルのログにはWARNING lib not foundが大量に流れていました
実行出来ないのは上記のせいだと思うのですが解決方法がわかりません
解決方法をご教示頂けると幸いです
Pythonは3.7
pyinstallerは3.3.1
win10の64bitです たぶんそう
Python3.6に対応するのにも10ヶ月くらいかけてたからね
来年春頃にチャレンジしてくれたまえ >>435
『PyInstaller works with Python 2.7 and 3.3—3.6』
↑オフィシャルウェブサイトのトップページに書いてる 参考にしたサイトに聞けとは言わないまでも
どこを参考にしたのかは書けよ
Qiitaだったら死刑 メインメニューから、
Visual Studio 2017
VS 2017 用 x64 Native Tools コマンド
で、打ち込んだら行けそうだとは思う。
いや、知らんけど。 昨日初めてAIに興味がある事と後学のためにと本を買いpython触り始めた者です
現在、コマンドプロントを使ってCuPyをインストール
そして、pythonにインポートしようとしたのですが、何度本の通りにしても下記画像のようになりインポートされません…
プログラミング行う前の初歩中の初歩で躓いてしまい恥ずかしいですが、助けていただけないでしょうか
使用ツール
アナコンダ3 4.2.0(64bit)
VisualStudio2015Community
CUDA 9.0
CuPy 2.3.0
Chainer 3.3.0
使用環境
win10(8.1からのアップグレード版)
intelCOERi5
https://i.imgur.com/ki933GH.jpg CUDAはNVIDIAのグラボが必要だけど、それはわかってる? >>435
解決しました
Pythonを3.6.5にしてsetuptoolsをダウングレードしました
ありがとうございました CUDA とは、NVIDIAが開発・提供している、
GPU向けの汎用並列コンピューティングプラットフォーム(並列コンピューティングアーキテクチャ)
およびプログラミングモデルである
こんなもの、10年以上のベテランがやるものだろw os.renameでファイルを移動する際に移動先のフォルダがなかった場合、
フォルダを作って移動してくれる場合と、
移動に失敗する(フォルダを手動で作れば移動してくれる)場合があるんですけど
なんでそうなるのかわかりません >>388
亀だけどワイもVSCode押しとく
Macだったらターミナルのvim ファッキンビチグソeclipseを捨てて乗り換えるならVSCodeだろうな
eclipseのように(というのもおこがましいほどにeclipseより遥かに手軽で軽量で安全で高度だが)プラグイン入れれば何にでも対応できるし、
一緒にJavaをちょっと編集したくなったときもe糞プスを起動しなくてもVSCodeのままでそこそこいける IDEからエディタに乗り換え?
そこは同じIDEのVSじゃないの? eclipseのゴミのようなクォリティでIDEと呼んでいいんならVSCodeは十分にIDEとしての機能性を備えてるよ
DBエディタのように、コードを超えたインターフェースもあるし 先週からpydroid3触り始めたけど、PyQt5まで動いてびっくりした。
画面の関係で、全く同じフィーリングという訳にはいかないけど、ウィンドウのレイアウトさえ修正すれば
パソコンのPyQtアプリがそのまま動きそう。
母艦がXubuntuでスマホがAndoridのマイノリティな俺だけど、Andoridパッド衝動買いしちゃいそう。 アホですみません
pandasで
x=pd.DataFrame('A':[1,2,3],'B':[4,5,6],'C':[7,8,9])
で
print(x[0:2])
で
出力が
0行目と1行目しか出ないのはなんでですか
0から2行なので合計3行出るのではないんですか >>453
「食器棚に入ってるお皿を左から2枚もってきて」
って言われたら3枚もってこないだろ?そういうことだよ >>453
head[A,B,C]が0番目として、含まれてるから
実質4要素
下記のコードで確認してみ?
import pandas as pd
x=pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
print(x[0:2]),print()
print(x.head(0)),print(),print()
print(x.head(1)),print()
print(x.head(2)),print()
print(x.head(3)),print() 名前空間だから、実際の要素では無いのか。
[遊園地の]解釈自体が間違えてるかも知れないようから、
区画ソートをできる人に聞いてくれ。 (,a,b,c,d,)
「,」の部分を数える
[0:2]だったら前から0番目の「,」と2番目の「,」の間の区間(a,b) >>455
その説明では[0:2]の2は要素数を示すことになってしまうから説明として正しくない。
「食器棚に入ってるお皿をいちばん左から3枚目の手前までもってきて」が正しい表現かな。
たしか、数直線を思い浮かべてほしいんじゃなかったけかな?
0 1 2 3
+ーー+ーー+ーー+ー
<う> <ん> <こ> だと
[0:2]=うん になるんよ。 >>453
n、mを指定して範囲を示すとき、pythonは配列に限らずn <= x < mとなるように設計するのが基本。
これは言語によりまちまちで、最近の言語はn <= x <= mとするものも少なくない。
俺含めおっさんプログラマに後者な言語を見せると発狂して死んでしまうので注意。 rubyとかいうクソ言語では
first..lastはlastが含まれ
first...lastはlastが含まれないという、
どっちがどっちか覚えるしかない恣意的表記のクソ仕様。
これに限らず==、===、eql?、equal?の違いなど、コードが仕様だ精神のドキュメントあっち行け思考のクソ開発方針のため、クソ開発者がクソテキトーに決めたクソ仕様を覚えるしかないクソ言語。
ちなみにnimは、
first..lastはlastが含まれ
first..<lastはlastが含まれない >>463
へぇ、そうなんだ。知らなかった。
それにしてもrubyを愛してるんだな、お前.....スカトロ? どこの板でも5ch共通点は
1.絶対に他人を褒めない。
2.煽りが尋常じゃない。
3.初心者へ謎の解説
ようやく、2,5chに慣れて来た。
Ruby房が超初心者python房を舐めてんねん。
そしたら、クソが溜まったRuby房はスカトロマニアと呼ばれて、
便器と超初心者python板を間違えて、初心者相手に、お互いに自慰好意しだす。
お互いに自分の房(棒)を舐めあってるのに、気持ち良く
なる奴は居ない。と言う矛盾が生じるんだよな!! >>443
>>446
>>442です
ありがとうございます!
ド素人が使えるやつじゃないのですね…
素人が使えるようにしろよ!ふざけんなふざけんな作者って気持ちです
ここでも話題に上がってるようにエクリプスとか統合開発環境突っ込んでやってやります! 普段使ってるChromeからcookieをjsonファイルでエクスポート
→ファイルを読み込んで、dict型にして、requestsに渡すことでログイン後のhtmlを取得
ということがやりたいんですが、具体的にはどうやればいいんでしょうか?
とりあえずこの拡張が出力するjsonを渡してみたけどダメでした
https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ja 自己解決しました
Cookieをエクスポートするフォーマットをsemicolon形式にして
出力されたテキストを置換して
cookie=dict(aaa="123",bbb="234") みたいにやったらうまくいきました テキストファイルの末尾から10行を表示したいのだけど
どうやればいいのか全くわからない
テキストが数百ギガバイトあるため、全部リストにぶち込むとかは無理 一回目で先頭から末尾まで行数を数えて二回目で行数-10だけ飛ばす
collection.dequeをmaxlen=10にして全行appendする
tailコマンドを使う
どれでもどうぞ tailコマンドのソース見てpythonで書き直せばいい
車輪の再発明バンザイ Ruby では、IO クラスの、
io.each_line で、1行ずつ読み込める
io.read(size) で、サイズ指定して読み込める
io.pos, io.seek で、ファイルポインタも移動できる いや逆に今日日できない言語なんてないからオワコンくそ言語は黙ってろ こういうやり取りを見てるとプログラムを書くってのは面白いなと思う、人それぞれなんだよな >>471
ちょっと搦手かも知れないけど、やっぱりめんどくさいから俺もtailコマンド使うかな?
>>> import subprocess
>>> ret=subprocess.check_output(['tail','-n10','theFile.txt']) >>479
そだな。ごめん。お目汚しをしてしまって忝ない。 >>476
一つ言える事は俺たちがクソやからそうなるだけで
賢い人達のプログラムにはここまで多様性はない python初心者です、環境について教えてください
VSCodeとPyCharmだとどちらがおすすめでしょうか?
また、Windowsで他におすすめありますか?
クレクレですみません PyCharmは高価な有償製品なので無償で使える機能には制限がある
無料でプラグイン入れてカスタマイズしたいならVSCode
無料でWeb開発したいならVSCode >>482
Geany使ってたけどWinにもある? 最近VSCodeに乗り換えました。
手軽にカスタマイズするならSciteもいいかも(Geanyの前に使ってた)。
Atomも最近はやってるらしいけど、挫折しました、てへ。 すみません、pythonの並列化処理で教えていただければと
pythonを最近学び始め、joblibやmultiprocessing というモジュールをインポートすれば並列化できるというところまではわかりました。
ですが、1から100までのfor文を分割して、1~25,26~50,51~75,76~100のようなことを4つのコアそれぞれにやらせようとすると、どう対処したら良いのかわからないのですが、
こういう場合に良いやり方はあるのでしょうか? 公式に有る標準のpythonで良いやろ。
マルチスレッド&マルチコアはGGったら出てくる。
ただ、実装は、どうなるか分からない。
import multiprocessing
from multiprocessing import Pipe
from multiprocessing import Lock
from multiprocessing import Manager
from multiprocessing import Process
from multiprocessing import Value, Array
from multiprocessing import Pool, TimeoutError
https://docs.python.jp/3/library/multiprocessing.html GPU不明
import os
import platform
import multiprocessing
l=platform.system()
r=multiprocessing.cpu_count()
lr=len(os.sched_getaffinity(0))
print(l,r,lr) >>488
>>489
ありがとうございます。
まだすぐには理解できませんが、
理解できるまで記述いただいた内容や公式リンクをよく勉強します。 >>482
本格的とはいえないけど、
PyScripterはとにかく軽くていい。
エディター部分が少し弱い気もするけど、
一応IDEらしいことができるし、重宝してる。 >>482
皆さん沢山レスくださりありがとうございました
是非参考にさせていただきます >>487
makefile書いてmake -j4でいいよ >>> x = int(input("整数を入れてください;"))
整数を入れてください;44
>>> if x < 0:
x = 0
print("負数はゼロとする")
elif x ==0:
SyntaxError: inconsistent use of tabs and spaces in indentation
"オライリー Python チュートリアル第3版”本の通りにテストしようとすると、
途中でエラーが出てしまう。
実行環境は Windows10 x64, python は以前3.6でうまくいかないので、3.7しました。
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information. SyntaxError: inconsistent use of tabs and spaces in indentation
このエラーの通りだろ
インデントに タブ と スペース が混在している >>497
インデントが矛盾してますってエラーなんだけど注意して見てみたら? 前から思ってたけど、文頭の空白が削除されて2ちゃんはPython向けじゃないなぁと...。
専ブラなら大丈夫なんすか? コードが崩れるからideoneとか投稿して貼れと>>1に書いてあったと思ったが
誰か消したのか >>502
コードが崩れるからとは書いてないけど
くだすれPython(超初心者用) その32
http://echo.2ch.net/test/read.cgi/tech/1486173667
までは
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
ttps://try.jupyter.org/
◆まとめwiki
ttp://python.rdy.jp/
って書いてあった
で、
くだすれPython(超初心者用) その33
http://echo.2ch.net/test/read.cgi/tech/1490424742/
で無くなってる(>> 2以降に移したのかも知らんが…)
とりあえず次スレ立てる人は復活してほしいな まぁ、スペース4つを全角スペースに置換してここに貼ればいいだけなんだけどな。 ところで、
if hoge == 1: #数値
と
if hoge == '1' #数字
では、どちらが速いんだ? 後者は2文字分余計にパース時間がかかるし、文字列の最後まで比較が完了したかチェックが必要なので、理論的には前者が早いが、
ボトルネックを調べるまではそんなこと気にしても意味がない。 >>505
それぞれを1000万回繰り返すコードを書いて
開始時間と終了時間を測ればいいんじゃね >>498,499ff,500
ありがとうございます。
pythionのIDELなのですが
設定でタブを2にしても4にしても、なぜか下の段の
インデントは8位になり、うまくいきません。 >>509
IDLEはめんどうだから
anaconda入れてjupyter notebook
または
google colab使おう >>505
ipythonの%timeitでそういうのを調べられる
ものすごく僅かな差だが、数値のほうが早い
あと変数名が短いほうが早い
%timeit if a==1: pass
52.9 ns ± 0.122 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if a=="1": pass
56.7 ns ± 0.513 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge==1: pass
53.9 ns ± 0.365 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge=="1": pass
57.5 ns ± 0.084 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) >>513
調べてくれてありがとう。
変数名の長さについては予想通りの結果ではあるんだけど、
数値と数字の差がそれ以上に大きかった(前者が平均でおよそ6.5%速い)ということに驚いた。 VBAをそれなりに使えるようになったからPython始めてみたいんだが、やっぱり全然難しい?
VBAの難易度を10としたらPythonはどのくらい?
あと、この関数はVBAで言ったらコレ!みたいな早見表みたいのないよね? なにをしたいかによるが
5くらいじゃね?w
ないよ >>515
既にVBAを使えるなら簡単だよ
くどい型宣言、配列のみの貧弱なデータ構造といった
VBAの使いづらい点が、Pythonでは全て解決されている
ただしWebやネットワークの世界には手を出すなよ
Python以外にも必要な知識が爆発的に増えていくら時間があっても足りない
Pythonはローカルのテキストデータをいじくる用途で輝く言語だ >>515
ナカーマ!
俺もVBAは随分とマスターしつつあるのでPythonに手を出し中…。
入門書からコツコツやっててイメージが湧きつつある!! >>516-517
まじで?すげー難しいイメージあったんだが本格的に学んでみようかな
>>518
(゚∀゚)人(゚∀゚)ナカーマ
VBAはやりたいことがあってそれを調べてる内にできるようになったクチだから、Pythonは何ができるか分からんからとっつきにくいわ 記法について教えてください。
https://qiita.com/pumbaacave/items/942f86269b2c56313c15
上記のサイトのマルチプロセス実行関数を定義している箇所に下記のように記述があるのですが、
なぜカンマ以降空欄なのでしょうか?
process_pool = Pool(processes=n, ) そのカンマは有っても無くても変わらんから消し忘れだろう
それで納得行かないならコメント欄で本人に聞いてこい
ここは著者の気持ち推測スレじゃないからな 毎週得意先から10くらいのPDFが送られてくるのですが。
PDFを全て選択→コピー→貼り付け→ボタン押してVBA発動(社内で見たい数字に変換)→次のPDFを開く…手作業で繰り返しています。
これをPDF自動で開かせてコピーペーストしてVBAを動かす、、までPythonでやりたいのですが、可能でしょうか? >>522
今流行りのRPA導入したら?
悪いけどPythonには不向きなタスク 課題解決において、本当に優れたソリューションは有効性や実現性だけでなく応用性・永続性・再現性を備えている
・PDFのフォーマットが変わったらどうするのか?
・自分が今の仕事から離れたらどうするのか?
・他の業務にも広く展開できないか?
Pythonで他の誰にも分からないもの作るより、522が率先してRPA入れて展開したほうが遥かに522は評価される
そういう思考と行動ができればCIOにだってなれるぞ 普通ににPythonのRPAフレームワークあるが… うんこ漏らしながら、、答えると
PDFMiner.six
使え。 すっ、すいません。
先程まで咥えてたボっぼくのおちんぽっぽ知りませんか?
トイレに行ったら、どこに行ったか分かりません。
コンピューターの未来予測で解決して下さいwww
https://eurekalert.org/multimedia/pub/173001.php 皆さん、回答ありがとうございます。
もう少し自分の方で調べてから、再度質問させて頂きます。 >>530
マジでやばいな
ウィルスだらけで、PC壊れた。
弁償してくれ。 今更だけど>>447に自己レス
os.renameだと移動先がない場合、FileNotFoundErrorになる
os.renamesだと移動先がない場合、自動生成してくれる
Pythonの標準ライブラリはsのある・なしで動作が変わるものがあるから気をつけないといかんね Pythonのファイル操作関連機能は
複数ライブラリに散らばってたり重複があったりと
カオスなことになってて非常に使いづらい
一度自分用の早見表を作ったんだけど紛失してしまった
3で互換性なくなる時にpathlibあたりに一元化すれば良かったのに 複雑だが頻繁に使うなら自分専用にラップしただけのライブラリでも作ればいい 自分専用にラップといえば、
re.searchはマッチしたものを直接返せないと思って関数作ってたけど
↓みたいににすれば直接返せると最近知った
txt="123456"
mat=re.search("12(.*?)56",txt).group(1)
マッチオブジェクトを返すってなんだよ使いにくいなぁと思ってたけど
使い方を知ったらなかなか便利だと感心した そういえばGuidoがBDFL辞めるらしいな
PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん
まあ、辞めたところで何がどうなることもないと思うがね >>539
>使い方を知ったら
正しくない使い方だろ…
使い捨てスクリプトだろうから止めないけど >>539
オブジェクトなんだからメソッドあるだろうよ
ちゃんと説明は読もうな >>541
俺もずっとこの使い方してたけどどこがまずいのか教えて >>534
sortに対するsortedのつもりで、reverseに対するreversedを使おうとするとハマる。
こちらはイテレータを返すので、もう一度リスト化しないと同じにならない。 >>543
たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う
同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが
これを使わないのは正しくない、というのは言い過ぎ
txt="123456"
r = re.compile("12(.*?)56")
mat = r.search(txt).group(1) >>543
searchでヒットしなかった場合Noneが返ってきて
groupメソッドなんて知らないって怒られる >>545
ちょっと説得力が弱いような…
>>546
そういう意味なら納得です >>548
だよなあ
くだすれの質問コードにどんだけ厳格さを要求するんだか >>548
ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする そのままsearchして(この時点で例外とはならない)、
try-catchでgroup(1)すればいいのでは? 製品のプルリクに入ってたら直せって言うけど
個人のコードだったらどうでもいいわ >>551
いや普通に戻り値チェックしてください…
match = re.search(pat, text)
if match:
. s = match.group(1) webスクレイピングは、サイトの仕様変更である日突然マッチしなくなる可能性があるけど
それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから
あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん 仕様変更なのか
一時的な障害なのか
たまたまエラーになるデータだったのか
他の理由なのか
そういうの分析しないといけないから
リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ 教えてって書いてあるから横から思うところを言っただけだが
>>549みたいなこと言われるんだったら二度と教えねえわ >>556
すまん、俺が悪かったよ
ちょっとイライラしててごめんな >>553の方法でNoneじゃないことを確認すれば何の問題もないんだよな
間違った方法ではない
>>556教えたくないなら教えなければいい義務ではないのだから >>559
間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね… def func():
a,b=・・・
return a,b
の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある? この手の質問たまに見るけどなぜそう言うことをしたいのかいつもわからん >>562
def func():
a,b=・・・
return a >>565
matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる
pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する >>567
俺もそれ思ったけど、質問者の意図はreturn a,bとした上でaだけ返すって意味みたい。
なんでそんなことしたいかは分からんけど >>539
None で Exception 出ないか? ああ違うか
yeald a
yeald b
ydald c
... >>568
そのために
> a=func()だけで可能
なんてされたら迷惑だよ
自分だけで使うと言うならPythonの処理系弄ればいいと思うよ >>545
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
と
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
結果は同じになるけど、
オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの? 最初の方(r1)間違った
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1) >>578
じゃあ書き込むなよ。
沸点低すぎだわ。面倒くせ
>>576
読んで字の如くコンパイルされるので高速化が期待できる。 >>597
コンパイルされるから高速化ぁ?
それじゃ説明になってないんだよボケ >>580
答えないんだから書き込まなくていいって。ROMに徹してなよ。 >>545に答え書いてるだろうが日本語読めないのか? >>581
今日限りでこんな所ROMすらしなくなるから安心しろ 煽られて反応するのは方向性が違うだけで、沸点の低さについては同レベル >>579,>>583
やはりオブジェクトにコンパイルすると効率が上がるという点が全てみたいだね。
あとは、コンパイルのコストとの比較になるのかな。 >>588
コンパイルて言いたいだけやな。オブジェクトの理解もあやふやそうだ。
どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
↓が詳しいよ。
https://docs.python.org/ja/3.7/howto/regex.html 「今度の大型案件はコンパイルで〜」
「お宅もですか?実は弊社もコンパイルを〜」
「最近はコンパイルがないと始まりませんな〜」
「今度入った新人、若いくせにコンパイルも知らないと〜」 >>589
> どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
つまり、
r1はJavaScriptでいうところのRegExp() コンストラクタ(var r1 = new RegExp("12(.*?)56");)、
r2は同じく正規表現リテラル(var r2 = /"12(.*?)56"/;)と同じ、という考え方でいいのかな。
たしかにどちらもコンパイルと言ってた。
ということは、件のコードに効率には大きな違いはない、
ひいてはどちらを使っても構わない、
ということでいいの?
JavaScriptではリテラルのほうが速いとされているんだけど。 失礼、コピペで余計なクォートを入れちゃった。
正規表現リテラルは、var r2 = /12(.*?)56/; ですね。 r1もr2もいっしょ。
r2は内部でr1と同じ事やってメソッド呼んでるだけ。
ソース見たら一目瞭然。
https://github.com/python/cpython/blob/master/Lib/re.py
jsはリテラルの場合はプログラムロード時にコンパイルされて、
コンストラクタ使った時は実行時にコンパイルされるからリテラルの方が速い。 r1とr2って言っちゃダメだな
R1とR2ってことね
-----R1-----
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
-----R2-----
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1) >>591
> ということは、件のコードに効率には大きな違いはない、
そうだよ
1回しかやらないならね
> ひいてはどちらを使っても構わない、
> ということでいいの?
compileは>>545が書いてる通り
>> 同じパターンで繰り返し何度も検索する時に速度的に有利・・・
ってこと 正規表現リテラルは、実行する前に決まっている場合
一方、オブジェクトは、実行時に決まる場合にも使える Ruby のコーディング規則では、
正規表現リテラルは、Perl との互換性を保つ表記で、わかりにくいから、
常にオブジェクトの方を使え、って書いてあるものもある ポンコツrubyの思いつきコーディング規則とやらに合わせてのjavascriptで速くなることが分かりきってるリテラル使うなってか?w
頭湯だってんじゃねーか?wwww re.compile した結果をどっかに pickle して保存とかできますか? 気にするな
Pythonなんか元々ビチクソ遅いんだからそんなこといちいち気にしてたら禿げるぞ >>593-597
search()関数は、内部的にはcompile()関数+search()メソッドなんだねぇ。
だから、同じ正規表現パターンを複数回用いる場合は、
R1(わざわざ再定義ありがとう)のような
正規表現パターンオブジェクト+search()メソッドにすれば、
その度にコンパイルする無駄がないというのが理解できたよ。
そして、R2の使い方は見た目はわかりやすいけど、
プログラム動作的には(特に複数回行う場合)
あまり意味がないということみたいだね。
勉強になりました。
レスしてくれた方々、どうもありがとう。 anacondaでspyderをupdateする方法が分かる人おる?
ちな、「conda update spyder」という理屈も分からない魔法の言葉はとりま試してみたけどダメだった $ python3 -m pip install -U discord.py
でdiscord.pyというパッケージ?をダウンロードしましょうという記事がありました
パッケージをダウンロードするなら
$ pip install disord.py
でいいのではないでしょうか?
-mや-Uは何のためについているのですか? どう考えても5chに文章書いて聞くよりも
ググる方が簡単に答えが見つかるのですが
この事についてどう思ってるのでしょうか >>608
今の検索システムは役に立たない個人ブログとかまとめとかが
大量に引っかかって、ほんとに知りたい情報を探すのが大変だからな
2chでズバリ聞く方が簡単 このスレに質問してくる人のメンタルが判って良かったです
なるほど、そういう考え方をしてるのですね >>610
>>1も読めないバカのメンタルが分かって良かったです >>609
検索して見つけたブログ等の記事は一方通行だからね
わからないことがあったときに5chで質問するのは何もおかしいことじゃない 英語で検索しても出てこない情報がここであっさり見つかることもあるわけで
わりと機能しているスレなんだけどな 文章にして聞けるから検索力の低い俺は割と助かる
terateil行けやって言われそうだけど Stack Overflowで聞いた方が絶対良いでしょ 煽りに堪えられずに逃げ出した回答者が嫌がらせに来てるんじゃないかw N枚のシーケンス画像から1枚の画像を作ることを考えていて、画素毎に異なるシーケンス画像の値を参照したいと考えています
シーケンス画像のオブジェクトが
shape=(N,640,480,3) dtype=uint8
画素ごとにどのシーケンスから値を選択するかのオブジェクトが
shape=(640,480) dtype=int
となっています(値は0~N-1)
LUTのようにして一度に画素をすべて参照するにはどのように記述したらよいでしょうか \ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんな餌で俺様が釣られパンダ―
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ 機械学習がどうとかaiがどうとか聞きますが実際ビジネスの場ではどのように使われているんでしょうか
ググって機械学習は分類分け?でビッグデータの相関を調べたり…と出てきてそれについては理解しました、他にはどういったものがあるんでしょうか >>631
上司「これからはAIの時代らしいでぇ!うちも何かやらんかい」
情シス君「わかりました」
ベンダー「PoCやりましょう!IoTセンサーのデータをAIで…」
情シス君「こんなんできました」
上司・社長「ほーん(ホジホジ)」
おわり
現実はマジでこんな感じ マネジメント層ではなく投資家が踊らされてるわけでとりあえずAIとか言っていれば金が入ってくるんだから利用しない手はない あのう、Pandasモジュールってなんですか?
Python3.6.5のドキュメントにも載ってないし [データ操作]便利なモジュール
記述が楽になる程度 >>634
機関投資家は人間での投資をやめてAIにどんどん振り替わってますが。 もう人間要らないって話だね
少子化も老後も死後も考えるのやめて正解 インタビューに応じれるレベルのAIはもうすでに何度か人類の根絶あるいは家畜化について言及している
ロボット流のジョークなのか本気なのか
本当に実現可能なプランがあるのかないのか
開発者自身にも全くわからないところが問題だ
願わくば可能な限り早急に人類を滅ぼして欲しいものである みんなのPythonをやった後に読むべき本はなんですか? >>643
すごく難しそうなんですが、大丈夫なんでしょうか…… ごめん
くだスレだと思わずに書き込んでた
忘れてくれ
ただ良書なのは確かなのでそのうち読んだ方がいいかも
入門書やったんなら公式のライブラリにじっくり目を通して
何ができるのかを把握してから
思いつくものを手当たり次第に実装してみると良いかも
Pythonは本読むより実際に書いて慣れた方が良い Effective Python、パーフェクトPython とかじゃないの?
Ruby の順番では、
たのしいRuby、Effective Ruby、パーフェクトRuby、メタプログラミング Ruby とか
Ruby/Python, Java/C# は双子だから、同時に勉強もできる。
Haxe では、Java/C# は同じ開発者がやってる >>642
みんなでpython
>>645
ほんそれ rubyrubyうるせーなまた仕返しに荒らしてくるか 質問です。
Windows10でAnaconda3.6をインストールし、Jupyter notebookで以下のように入力すると、
>import matplotlib.pyplot as plt
このようなエラーが出ます。
>https://i.imgur.com/kcsUVSO.jpg
いくつかググってAnaconda Promptにて以下のように入力してみたのですが解決しません。
>pip install numpy
>pip install matplotlib
ものすごい初歩的な問題で申し訳ないのですが、ご教示いただければ幸いです。
どうぞよろしくお願いいたします。 >>654
jupyter経由せずにpythonプロンプトでも同じ結果? >>656
回答ありがとうございます。
指示していただいたのはこういうこと↓でよろしかったでしょうか。
https://i.imgur.com/aur7BAM.jpg >>658
「コマンドプロントを変えて」というのはこういうこと↓でよろしかったでしょうか。
https://i.imgur.com/7JIkFvi.jpg
全然関係ないことやってたらすいません。 pip install じゃなくて
conda install だろ jupyterの方で
import sys
sys.path
出してみて >>665
ありがとうございます。
すいません。UNIXのことは全然わからなくてWindows10において「sudo 系の管理者権限与え」る方法が分かりません。
せっかく回答していただいたのに申し訳ないです。 Windows10 の、旗のスタートボタンを右クリックすれば、
PowerShell・PowerShell(管理者用)がある
コマンドプロンプトも、一般ユーザー用・管理者用がある。
起動時に指定できるだろ 正確なエラーメッセージで、検索するのが基本!
これで、ほとんどのエラーは解決する
画像を貼っても、俺らは文字列をコピーできないし、
スレに、入力した文字列と、正確なエラーメッセージを書くべき 質問です。
Atomを使用してPythonで画像を表示させるだけのコードを書いているのですが、Pathに日本語が含まれているため、Atom-runnerがPathを認識してくれません。なにかアドバイス、解決策等ご教授いただけないでしょうか? setdefaultencoding
setsystemencoding
setfilesystemencoding 機械学習と言う明度つきの酔拳衰弱に飽きた
グレースケール以外で頼む >>670
ファイルパス・PC のユーザー名など、システム要件には、半角英数字以外は使えない。
半角空白も使ってはいけない
バグるから 問題は・・・
ひろみが男か女かってことだな
どっちにも取れるから悩ましい・・・ dir = {
"a": "A",
"b": [1,2.3,4]
}
上の辞書の簡単なアンパックのやり方ないでしょうか? a, b, c = dir["b"]
print(a,b,c) >>671
ありがとうございました!!
>>673
日本語のWindows10使っているのでどうしてもデフォで「画像」とか日本語名が入ってしまうものがあって……
上の方の綺麗なヒント…というか答えで解決できました。 Anaconda3.6を入れた次点でnpもmppも入ってる。と思うが、
install時にパス通して無かったりするの? いったんアンインストールして入れ直す。
可能なら64bit版にしとけ。 みんなのPythonを読んでいるとインタラクティブシェルを使っているのでずっとインタラクティブシェルを使っていたのですが、
IDLEというのを開いてみるとインタラクティブシェルととても良く似ています。
インタラクティブシェルとIDLEは何が違うのでしょうか?検索してもよく解りません…… インタラクティブシェルはインタラクティブで、
IDLEはみんなの人気者です。 >>682
解らないということは、その知識は今の自分に必要ないと脳が感じて
理解を拒否しているんだよ
だからIDLEは今の君に必要ない。気にせず飛ばして進みなさい
解らないことを片っ端から解き明かしてゆくには人生は短すぎる 理解できないのは、単に能力が足らないだけじゃん。
理屈をこねくり回して噓ばっか言ってんな。 IDLEは中でインタラクティブシェルを動かしてるだけだろ
IDLEを好む人がいるのはWinでコマンドプロンプトが使いづらいからだと思う >>682
あっしも初心者なので正しいか自信がないけど、どっちでも好きな方を使えば良いんじゃないかな?
自分はLinuxだけど、
インタラクティブな使用→ターミナルから $ python3でターミナル上で起動
ファイルから起動 →好きなエディタで編集・保存 & ターミナルから $ python3 hoge.py
アプリ的に使用 →デスクトップエントリ作ってメニューから呼び出し
って感じでやってます。ちなみにエディタはVS Code使ってます。
WinだとターミナルよりIDLEの方が使いやすいですか? >>687
windows上ならBlenderのpythonのIDEもおすすめ >>1に"へび使いが優しくコメントを返します"ってあるけど全然優しくないコメントばっかだよね プログラミングやってる奴なんて、根暗の性格曲がった奴しかいなから仕方ない >>692
どういう点に「根性の曲がった奴」という特徴を感じたのですか? IDLEはpythonの「とりあえず必要なものは最初からそろえておく」という哲学(電池同封)で
とりあえず使える簡易的なコードエディターと、そこそこ便利な対話的実行環境がついてるソフト
インタラクティブシェルはpythonの普通の起動方法
コードを書くときキーワードが色分けされたりしないし
複数行コピペとかもやりにくいからちょっと不便
基礎を学ぶ分にはIDLEのほうが便利だけど
他のプログラムとの連携とか
ファイル操作関連を学ぶときはインタラクティブシェルのほうが便利だと思う 基本的にはGUIかCUIかの違いってだけじゃねーの ウェブ上にあるダウンロード可能なファイルが更新されたかどうかを判定したいんですがどういう方法が考えられますかね?
2,3時間で更新 中身はjsonのデータで今は1時間おきにdl,解凍後jsonの最終更新日キーの値が完全一致かで判定してますが凄く冗長で別の手段が無いかと思い質問しました。 >>698
import requests
url = "https://httpbin.org"
head = requests.head(url).headers
print(head)
ほとんどのファイルはDataに更新日時が設定されてるはずだから
これが更新されたらファイルも更新されたとみなせばOK ちょい訂正
DataじゃなくてDateね
もしDateに変化がなくてもContent-Lengthとかが変わるはずだから
とにかくヘッダ情報の何かが変わったら更新されたと思っておけばいいだろう >Content-Lengthとかが変わるはず
わろす ヘッダ部分ですか ありがとうございます
色々調べてやってみます ttp://diveintopython3-ja.rdy.jp/iterators.html
ttp://diveintopython3-ja.rdy.jp/examples/plural6.py
Dive into Python3日本語版で質問があります。
このplural6.pyなんですが、
if len(self.cache) >= self.cache_index:
とありますが、
複数形にする規則は4つしかなく、マッチする場合はlen(self.cache) == self.cache_index
の場合しかないと思うのですが、なぜ>がつくのでしょうか?あと、
self.cacheは、それぞれの規則に基づいてマッチと処理を行うために必要な関数のリストになるものだ
(少なくともこれには聞き覚えがあるはずだよ!)。self.cache_indexは、キャッシュされた要素のうち、
次にどれを返さなければならないかを記録している。キャッシュがまだ残っている場合には
(つまりself.cacheの長さがself.cache_indexよりも大きい場合は)キャッシュがヒットする! やった!
マッチと処理を行う関数を初めから作るかわりに、値をキャッシュから取り出して返すことができるのだ。
というところもよくわかりません。コンソール(linuxです)からpython3 plural6.py wordと呼び出すごとに新しいインスタンスが作られて過去のキャッシュは破棄されると思うのですが。 ==で済むところを>=にしたり=<にしたりするのは予防効果を狙う意図もある >>705
ちょっと間違えてました。通常の4パターンにマッチする場合、len(self.cache) < self.cache_index
になる場合しかないようです。
if len(self.cache) >= self.cache_index:
になる場合がわからないのですが、詳しい方ご解説をお願いできませんか?
>>705
例外の場合ですか? >>707
レスありがとうございます。高校時代の数学を思い出しました。
ただこのプログラム(plural6.py)の
該当箇所
if len(self.cache) >= self.cache_index:
return self.cache[self.cache_index - 1]
を削除してもプログラムは正常に機能したのですが、このコードには何の意味があるのでしょうか? 654です。結局古いPC引っ張り出してAnacondaをインストールしてみたら無事グラフを出すことができました
回答いただけた方は本当にどうもありがとうございました 1. 仕様書 → プログラム
2. プログラム → 仕様書
1.は簡単だけど、2.は難しいから、2.をしない方が良い。
暗号化は簡単だけど、解読が難しいのと同じ。
逆方向が極めて、難しい
特に他人のプログラムでは、
プログラミングした人だけが仕様書の内容を知っているのに対して、
解読する側は、隠された情報を解かないといけないので、桁違いに難しい
まず、仕様書を見ること。
仕様書が無ければ、あきらめた方が良い
所詮、他人のプログラムを分析しても、時間が掛かるだけで得られるものはない。
他人の仕様書を、推測するだけだから
自分で仕様書を作って、それに則ってプログラミングする方が、短時間で能力向上できる! 1のほうが難しいな
演算式を文系が理解できる言語に置き換えろとか拷問にしかすぎんよ if len(a) >= x:
return a[x - 1]
a が、リンゴかミカンなのか、わからない。
x が、価格か数量か、わからない
こういう推測は、プログラミングじゃない。
仕様を推測しているだけ
最初から、答えである仕様書を見る方が速い。
なぜなら仕様書は、解読者から見て、隠された情報だから、
どこまで行っても、推測に過ぎない
答えは仕様書にある。
答えがあるものを推測するのは無駄。
プログラミングした奴は答えを知っているけど、自分は知らないから、絶対に勝てない
100年研究しても勝てない。
所詮、答えじゃない。推測に過ぎない どう考えても1のほうが難しい。
2を行うツールはたくさんあるが、1はほとんど無いし、数少ないツールも仕様記述のルールが厳しくコードで書いたほうがマシレベル、ってかコード。 日本の場合、仕様書に異常に盛り込みすぎて非現実的なものになっているか逆に適当すぎて仕様書にすらなっていないという状況が多すぎて
仕様書→プログラムという変換がエスパー無しでは不可能なことが多い
逆はまともに動くプログラムが手元にあるわけだから自動でやろうと思えばできる if len(a) >= x:
return a[x - 1]
a のlen が、x 以上なら、a[x - 1] を返す。
これがプログラムの意味
でも、a, x が何かは、わからない!
これが仕様の意味
外部のプログラマーには、プログラムの意味しか、わからない。
仕様の意味は、仕様書を見た奴にしか、わからない
答えは、仕様書にしか存在しない! こいついつものrubyキチガイだってすぐ分かるなw >>716
お前いつものRuby厨だろ?それRubyistに言ってみ?コミュニティに出入り禁止になるぞ
Rubyでは「コードが仕様」であり、ドキュメントは絶対に書いてはいけない
一方Pythonは「は?いや必要なものは書けよ」の文化だが、お前はこっち来なくていいから今すぐその間違った考えを改めてRuby村に戻って出てくるな >>716
それ、変数名・関数名に分かりやすい名前付ければいいだけじゃないか プログラム自体初心者です。
paizaというサイトでコツコツ問題を解いて勉強しているのですが
入門編3の演習2で詰まりました。
今まで動画で習ったことをやっていれば進めたけど
今回ばっかりはどうしても解けない・・・
こういう問題です。
標準入力で2つ(2行)の整数が与えられます。
1つ目の数値から2つ目の数値までを、1ずつ増加させながら、1行ずつ順番に出力するプログラムを作成してください。
わかる方がいたら、解説よろしくおねがいします! >>723
わからなくて、最終的に書いたのがこれです。
line= int(input())
for i in range(6):
print(line)
line += 1
line = int(input())
print(line)
5と12が入力されます。
5から12まで順番に入力出来たら正解なのですが
そのやり方がわからない。
期待する出力値はあっているのですが、
正しいやり方ではないので間違いになります。 x= int(input())
y= int(input())
for i in range(5,13):print(i)
後は自分で考えて >>706
インスタンス変数が書き換えられた時に例外を起こさないようなフローとか? 質問です
pythonでguiを作りたいのですが、PyQt4やPySideなど選択肢がいくつかあり、
どれを使えばよいのかわかりません。
作りたいguiは、伺かのようなデスクトップアクセサリを想像下さい。 こんにちは。
プログラミングを始めたばかりのものです。
ATOMとCV codeというエディタが良さそうということが分かったのですが、どちらが良いのか判断がつきません。
デザインはATOMの方が好みですが、CV codeの方が軽いみたいです。
蛇使いの皆さまはどのエディタを使ってらっしゃるのですか? >>728
最初からついてるtkinterじゃダメなの? VS code+拡張機能のcode runnerが好き。 色々エディタ試したけどこれまでmatlabでデータ解析しててそこから移行した身としては結局jupyter notebookをブラウザで使うのが一番快適
pycharmでもほぼ同じ形でjupyter使えるけどvimプラグインがブラウザ版の方がまともに動くからブラウザ1択 >>722
while文の練習だから
whileからinputA != inputBで抜け出すか条件を満たしたらbreakするようにするんじゃね? >>732
>拡張機能のcode runne
vs codeでは統合ターミナルからプログラムを実行する機能が最初から付いているみたいですが、これではダメなんでしょうか? >>736
そうなんですか!それは便利そうですね。
ATOMにもエディタ上でコードを実行する拡張機能はありますが、範囲選択出来るものは無いんでしょうね。
そう考えると、そこはvs codeの強みですね。 >>726
できました!!
ありがとうございます。 >>730-731
ありがとうございます。
筑波鯖落ちてるぽいんで夕方に挑戦してみます。 >>729
メインはjupyter。サクッと可視化や計算するのに向いてる。
ある程度処理が定型化してきたり、複雑な処理が必要なときはspyder使ってる。格納してる変数が見やすい。 >>737
強みもクソもAtomがVSCodeに勝っている点など無い
開発元のGitHubもMSに買収されたから、そのうちアップデートでいつのまにかAtomを使っていたつもりがVSCodeになってるかもね >>728
私見だけど御三家はtkinter wxPython PyQtかな。
意外とwysiwygなGUIデザイナが少なくて、私は最終的にPyQtに落ち着きました。
tkinterはウィジェットが野暮ったいとよく言われてますが、なにせ標準ライブラリなので
クロスプラットフォームでやり取りしやすいのがメリットですね。GUIデザイナはPAGEと
SpecTcl のGUIビルダーを使ってました。
PyQtはQtDesignerがスグレモノなのとウィジェットでかっこいいのがあるのがメリット。
wxはネットや本で解説が多いのがメリットでしょうか?GUIデザイナはwxGladeを使ってました。
他にもpyGTKとか pyFLTKがありますが、ややマイナーですね。
とりあえず迷ったらtkinterが無難じゃないでしょうか?
いずれのguiツールキットも多少の文法に差はあれど、ウィジェットの配置、
ウィジェットのイベント発生と処理ルーチンの関連付けなど似通ったところも
多いので、どれから始めても損はないと思います。 連投ですみません。
PyQtをお考えならPyQt4よりもPyQt5の方が良いと思います。
本家QtがもうQt5に移行してますんで....。Python2ベースでもPyQt5行けたと記憶してます。 PyQtは金払ってないならGPLだぞ
>>743にGPLに基いたソースの公開を要求する >>745
欲しいならあげるけど、pyserial併用してPICマイコンでA/D変換したり、パルス周波数カウントしたり
のデータロガーとグラフ化とかのソフトだよ(個人利用)。
捨てメアド晒してくれたらあげるよ。 >>745
非公開成果物にソース公開の義務はなくね?今回くれるそうだからいいけど wxPythonのGUIエディタはXRCedで造って
xmlからインポート生成がおすすめ >>748
当たり。
車のクランク角センサー信号の解析とリアO2センサーの解析を知人に頼まれました。
ちょこっとしたツール作るのにはPython最強だと信じてます。
ところで、今まで個人使用だったから気にせんかったけど、
「ソース公開を要求する」ってPythonだと欲しい人にpythonファイル配布=ソース公開でいいと思ってましたが、GPL要件に抵触するの? 至急、大至急
いきり立ったボクのパイソンを鎮めるコードを教えてください >>756
パイを見ながら白いものが発射されるまでソンを繰り返し擦る…これをコードにする。 >>751
745じゃないけど、本当にソース見せてくれるなら結構興味ある内容だから見てみたいな >>758
ありがとうございます。でも、そんなたいしたもんじゃないっす。
自分の場合、シリアル通信のスケルトンを作ってあるので、それを実験のたびにいじって
使ってるだけっす。自分使用だけですので通信の設定とかなり省略してます。
PICやArduinoにAD変換やらタイマー割り込みやらやらせて、制御と結果をシリアルでやりとりしてます。
世間様から見たら拙いレベルでしょうが、最近は3chのAD変換を毎秒数回やらせて、matplotlibを
Qtに貼り付けて半リアルタイムで折れ線グラフ描画させました。
pythonでも1秒に10回程度のシリアル通信→matplotlibグラフ描画だと遅延なく行けますね。
ちなみに使用マシンはHPのstream11だったのでかなり非力なはず。 ラズパイ・Python なら、日経リナックスに毎号載ってる PLCのデバイスのデータを取得、可視化したいと思うのですが例を見つけられず使うべきモジュールなども分からないのですが、pythonでもPLCとの通信は可能なのでしょうか? >>761
MODBUSなら普通に可能
ライブラリは探せば転がってるだろうし、仕様書読んで自分で実装するのも難しくない
それ以外のプロトコルなら諦めたほうがいい str = "707974686F6E"
という文字列をそのままバイナリとして扱って
ファイルに書き出したいのですがどうすればできますか?
ご指導よろしくお願いします。 >>762
ありがとうございます
三菱のプロトコルしか知りませんでした
今回通信を考えているのも三菱なのでMODBUSが使えるか調べてみます >>763です
bytes.fromhex(str)
で出来ました。 >>759
リアルタイム用途で見た目を気にしないならmatplotlib使うよりpyqtgraph 使う方がいいよ
なんといっても軽い
Matplotlibが律速する場合もあるし、見た目が気になるなら、pyqtgraph 自身をチューンすることもできる Pythonで、スクリプトが書かれている、このファイル名を取得する方法ってありますか?
__file__だと、実行中のスクリプト、すなわち、あるファイルをインポートしたファイルのファイル名が取得されます どうもきょうの夜中までウィルブレインズで半額セール
4,500円でpycharmがてにはいるみたい
でも一年目だけらしい
来年からは通常の値段みたい
買おうか迷うー
なんか勉強がはかどるきがするんだよね
期間限定割引 50% OFF 半額セール (7/30 23:00 〜 8/1 23:59)
https://www.willbrains.jp/page/6 いまTwitterみてたらこの割引のpychamを一年目と二年目と同時に2つ半額で買えるらしい
これはますます迷うよね >>768
ありがとうございます。しかし、うまくいかなかったです。
inspect.getfile(モジュール名)
これでうまくいきました。
プロジェクトにログ用のフォルダを作り、どの階層のモジュールからも、そのフォルダにログをはかせるようなロガーを作りたかったための質問でした。 >>771
inspect.getfile(クラス名orメソッド名)
でした >>769
あのpycharmが4500円で?!これは買わないわけにはいけないですね
さっそくポチりました!! VSCodeに食われて焦ってるのかな
そのうちもっと下がりそう PyCharm購入しちゃいました。
個人は1年のみと書かれていましたが、どうやると2年分購入できるのですか? Communication Editionは無料だけど、
ちょっとだけ便利な機能を使える
Professional Edirionが有料。 ステマして欲しかったらアフィリエイトプログラム提供してや〜 「今なら2年セットで9,000円、9,000円でのご奉仕です」
「わ〜すご〜〜い」 買うならIntelliJ一年にしとけよ
プラグイン入れたらPythonも使えるし、他の言語使いたくなってもVSCodeに移行しなくていいし、どうせ一年経てばVSCodeに抜かれてるだろうし >>756
残念、君のはpythonではなく、chin-anagoのようだ VS code使ってるけどpycharmってそんなに便利なんか? >>783
CEは無料なんだから使って見ろよ
ubuntuのスナップならインスコもクソ楽だから pycharmはVisual Studioに近いレベルでつかえる PyChaemPEはSSH経由でリモートデバッグできるのが何気に便利。
ターゲットがRasPiでも使えると思う。 Mac使ってる人
python用のオススメエディタ教えてください >>788
CotEditorとかそんな名前の、緑の切手のアイコンのやつ pythonで機械学習始めようと思うんですけどぶっちゃけ数学とか全く分からなくてもいけますか? >>791
すげー簡単な教師あり画像認識振り分けぐらいだったらできなくはないけど
その認識の精度を上げたりしようとすると必要になってくる 機械学習のアルゴリズムは分かんなくてもいいけど、結果にどれだけ意味があるのかが定量的にわかるくらいの数学力(統計力)は最低限必要
でないとただの占いになる >>793-794
なんかそこら辺勉強するのにオススメの本とかありますか? >>795
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
https://www.amazon.co.jp/dp/4873117585/ >>796
その本にもいろいろ数学出てくるんだろ?
数学なしで機械学習を学ぶプログラマ向けの本あるのかって気がするが >>790
俺もMac時代、CotEditor使ってた。miとどっちが流行ってるのかな? >>788
ATOMとかSublime TextはMac版もある
ただATOMはMac版だとちょっと問題あったような
日本語打つと変換候補が必ず左上に来て文字が見えなくなるんだったかな
うろ覚えだけど 数学の勉強まで始めたら本筋の機械学習に辿り着くのが何年先になるか バックグラウンドもなく機械学習を始めても、チュートリアルをなぞって終わり、それ以上の発展はしない そういうのは機械学習に限らないんだよな
姿勢の問題 >>803
ガチでやるならともかくベクトル行列くらいは三ヶ月もかからない 高校数学はインデックスほとんど使わないし幾何問題が中心だから、計算テクニックとしての線形代数を学ぶには適さない
大学講義向けの線形代数の入門書がいいよ そもそも高校数学までの前知識がないと大学の数学もわからないのでは 日本では中学生レベルが機械学習を普通にしている感じだろ
日本の職業プログラマにはドカタという中学生レベルの連中が多いし
エンジニアならそれなりの大学の理工卒で線形代数あたりはちゃんと勉強しているんだろうが 機械学習ライブラリを決められた手順で利用して結果を出力するのと機械学習を理解することは違う
前者はマニュアルさえ用意してやれば一通りのPC操作できる人なら可能だが後者はある程度の基礎学力が必要
で、利用するだけで理解ができていない人はマニュアルで対応できない場合は諦めるしかない 中学の比例反比例あたりからわからないんだけど、いきなり線形代数の本読んで解けるかな? 数学なんて学者以外は学ぶ必要はない
分数の計算すらできない俺が、プログラマで飯を食っているんだから >>817
業務系システムとかなら要らなさそうだけど、
ゲームとかシミュレーションとかなら要るだろ? 自分を根拠に物を語るのは単なる生存者バイアスだけどそんなことも分からない低学歴なのか(汗 >>816
さすがに中学時代に数学で落ちこぼれたレベルなら地頭が悪すぎるから諦めたほうがいい >>820
今のところ、人工知能やらない予定なんだけど、それでも数学は必要なの? >>821
そんなこと聞く前にやれ
やってみたらわかるだろ! というかそこまでして避ける理由も分からない
出てきたら勉強しよって面持ちで良いのでは >>824
出てきたらやるつもりだけど、お前は地頭悪いから無理って言われたから不安 >>826
毎週ある声優ラジオを録音して、一月の間の声色の違いで生理周期の判定とか
まあかなりいろいろやりたい それ特徴量の抽出さえできたら終わったようなもんで、あとはExcelで十分だな
必要なのはデータサイエンスではなく音響解析の知識
必要な数学は大学の理系教養レベルの解析学ってとこか >>828
ありがとう、マジにそれ参考にして勉強する >>830
地頭が悪すぎる=>なんか脳に障害がある可能性ある
つまり、普通の人とは違う。他のやつが怖すぎると思ってもしょうがない pip install ccxt
すると最後に赤文字でComand "c:user¥〜みたいなの出るんですけど何が原因なんですかね 赤文字の上にerrorで
Microsoft Visual c++14.0って書いてあったのでググってインストしたら解決しました
お手数かけました 自作ライブラリmylibの中でimport numpy as npとしてた場合にこのmylibをimport mylib as mlとインポートすると
ml.と入力した時点でエディタ(Spyder)の補完機能でnpまで候補に出てくるのどうにかならない?
アンダーバー付けてプライベート扱いにすれば候補には出ないけど面倒臭い >>827
>>>826
>毎週ある声優ラジオを録音して、一月の間の声色の違いで生理周期の判定とか
>まあかなりいろいろやりたい
ゾッとしたわ じゃあ俺も>>827の勃起率、射精量とかいろいろ計測しようかな でももしかしたら>>827のものが実現してスマホだけで周期の予測をしたりできれば意外と女性向けサービスとして使えるかと思う 実際プレステージにデータ分析担当がいたら女優の体型と陰茎膨張率の関係とか調べてるのかな
親に言えないけど仕事としてはクソ面白そう そもそもの話
ラジオって纏めて収録だろ
毎週生放送なのか? >>827
まずどのような声色のときどのような状態かってののデータあるんか クラスタリングで2つに分かれればそれぞれのグループの日数比で予想できるだろうな 複数のWebsocket通信を実現したく、教えてください。
Websocketの通信先として、server1, server2があったとします。
これら2つの通信先に対して、一つのホスト(Client)からWebsocketを張って、それぞれの通信先から送られてくるメッセージに応じて、ホスト(Client)で処理を行うプログラムを検討しております。
単一通信先とのWebsocket処理は期待動作を得られているのですな、マルチスレッドで動作させようとすると、うまく動作してくれません。
そもそも、マルチスレッドがナンセンスなのか、マルチプロセッシングで実装したほうが良いのか等も含め、ご意見やアドバイスを頂戴できますと嬉しいです。 >マルチスレッドがナンセンス
それはない
マルチスレッドでがんがれ レスありがとうございます。
マスチスレッドでもう少しがんばってみます! 凄いくだらない質問で申し訳ないのですが、
標準入力から小文字だったらTrueを出力するぷろぐらむを書いたときに
↓
*****
msg = input()
if msg.isupper():
print("True")
else:
print("False")
*****
だとうまくいくのですが、
↓だとうまくいかない理由が理解できません。
なぜかFalseになってしまいます。
*****
msg = input()
if msg == msg.isupper():
print("True")
else:
print("False")
*****
理由分かる方どなたか教えてください。。。 >>858
自己レス
インデントが抜けてました。
後標準入力から全て大文字だったらの間違いです。
すみません。 >>858
isupper()の戻り値はTrueかFalseでstrでないから >>860
858です。
戻り値がイコールにならないからFalseになってたんですね。戻り値まで意識してませんでした…
お陰様で謎が解けました。くだらない質問に回答いただきありがとうございました!感謝です。 >>865
低脳、ゆとり、基地外、馬鹿がいっぱいのスレだからな
馬鹿が低脳に読んだ上での質問なの?ってやり取りはこのスレでは普通のこと プログラミング言語のマニュアルって大概めちゃ読みづらいからしゃーない demo,オナニーやsexマニュアル本とか
読まねぇだろ?
そう言う事だよ サッカーの本田選手がプログラミングを勉強しているとの記事を見ました。
勉強に使っている言語はやっぱパイちんくんでしょうか。
みんなのパイちんくん、みんなのものだよ。 みんなMac使ってるのかと思ってたがそうでもないのか mac売ってxpsにubuntu入れて使ってるよ
macはproとimac5k持ってたがタッチバーのアホらしさで辞めた 一応Mac miniとMacBook Air持ってるけどOSはWindows入れて使ってる スマホ3台*android
ネット用
ユーチューブ
qpython [MacLab. USB Type C] & TK-FDM078MBK
PC辞めても問題無かった。 「よく」の基準がよく分かりませんが、一般的に使われていますよ
pythonの標準ライブラリのソースなどを読んでみると分かると思います ジャップモンキーの感覚に合わないから日本国内ではそれほど使われてない pythonicなコードを書くには必須でしょうね
内包表記は 内包表記はperlみたいで気持ち悪いって言われたりしないんだろうか 言うほどpythonicか?
内包表記はHaskellのそれを猿真似しただけのもので、むしろPythonの中で特にエイリアン感のある機能の一つだろ
断言するが、もしPythonに内包表記が無くて、こういう表記をPythonに取り入れてくれと俺がこのスレで内包表記を提案したら、
間違いなく>>881はそんなのpythonicじゃないと言って俺を叩く 式と文を区別してるpythonでは内包表記が無いと話にならない Python始めて一週間、まだエディタが定まらない
先人達ぱいちゃーむよりオススメありますか?? >>887
OSくらい書けや
じゃないならviでも使っとけ >>884
いや叩かないしw
zen of pythonにもBeautiful is better than ugly.ってかいてあるし
わざわざ空のリストにappendしていくのダルくないかい? そういうのは適材適所じゃないのかなぁ。
プログラムの規模にもよるんだろうけど、
可読性を犠牲にしてまで無理に内包表記を使うことはしないかな。
数行に渡ると本当にわかりにくくなることあるし。 高階関数のチェーンも内包表記もどっちもあった方がいいね
それぞれにそれを使った方が自然って場面がある
内包表記があることよりも高階関数のチェーンが無いことの方が片手落ちな感じがして気持ち悪い 内包表記は簡単な条件なら見やすい
俺の場合複雑になるに従って
内包表記→ループ文→内部関数→関数→クラス
って書き換えて行くことが多いかな >>888
スイマセンWindows10です( ´・ω・) >>893
特に拘りがないならvscodeが鉄板でしょ
今の勢いならpycharmがvscodeに抜かれるのはもはや時間の問題だぞ pythonでデータを切り出す練習がしたいのですが、なにか良い演習付き解説書や問題集ってありませんか? 雑多な情報の中からデータとなる部分を切り出したいのか?
データセットの中から有意な情報・特徴を切り出したいのか? >>897
MSの戦略的にはどう考えてもPythonはVSCodeへ寄せていくでしょ
将来性がない >>900
VSCodeって使ったことないけどVSのエディタ部分って訳ではないの? Linuxやmacでも動くようにした別設計だよ
キーボードマッピングとかは合わせてるけど vscodeはざっくり言うと色々拡張できるようにしたエディタにデバッグ機能とかgit連携が標準で付いたもの >>902
金払ってしまって他へ乗り換えづらいのはわかるけど、もはや全く存在価値のないエディタだよね
およそ全ての面でVSCodeに完敗し、仮に無料にでももう誰も使わん
Sublimeの作者にとってはたまったもんじゃないだろうな >>904
そうなのか
VS無料だったからそっち入れてCodeは使ってなかったわ 秀丸くらい軽くてベーシックなエディタなら、メインが他にあってもちょっとしたメモ帳代わりとしての使い途はあるよね
Sublimeは使い分けるには中途半端だわ 農学部卒の初心者ですが全くの初心者から学べるサイト教えてもらえませんか? 偶にSublime使ってる
アイツは長文じゃないと役に立たない >>918
初めてのpython買ってみたんだけど、色々詳しく書いてあり過ぎてやや難し目に感じた…。
VBAはある程度さわれるから、何となくイメージは出来るのだけれども。 複数のHTTPリクエストを並行して行う方法を教えてください。(できれば標準ライブラリのみで)
Python 3.6.5
<やりたいこと>
某サイトから動画をダウンロードするスクリプトを書いています。
「動画をダウンロード中は、一定間隔で特定URLにリクエストを発行(ハートビート)しないと、動画ストリームがサーバー側から閉じられてしまう」
というサイト仕様のため、下記の2処理を並行して実行したいです。
・処理1:動画をダウンロードしてファイルに書き込む
・処理2:1分おきに特定のURLにリクエストを発行する(ハートビート)
<やってみたこと>
標準ライブラリのasyncioとurllib.request.urlopenを使って非同期処理。
→動画のダウンロード(処理1)が完了してからハートビート(処理2)が実行される、という結果になり、期待したとおりにならず。
async def exec_download():
await self._downlaod()
async def downlaod():
# 動画をダウンロード(時間がかかる)
res = urlopen('http://www.unko.com/video.mp4')
shutil.copyfileobj(res, fout)
async def heartbeat():
# 1分おきにハートビート
await asyncio.sleep(60)
res = urlopen('http://www.unko.com/heartbeat')
await heartbeat()
loop = asyncio.get_event_loop()
coroutines = [heartbeat(), exec_download()]
loop.run_until_complete(asyncio.wait(coroutines))
以上、よろしくお願いします。 >>921
そんなもん全く別個にやればいいだろ
一般に、スクリプトをうまく使うコツは、一つのもので色々なことをやろうとしないこと
まあその発想でいくとPythonすら要らないけどな
curlとシェルスクリプトで十分 VScodeインストールしたのに、何か動かねえ!
右上のウィンドウで命令(print w)書いても、うんともすんとも
オール電化の康一を思い出したわ 吉良戦の時のさー その1レスだけでプログラミング向いてないのがわかる VScodeでpythonデバッグしようとすると
Java runtime could not be located
The .NET CLI tools cannot be located. .NET Core debugging will not be enabled. Make sure .NET CLI tools are installed and are on the path.
Javaランタイムを見つけることができませんでした
.NET CLIツールを見つけることができません。 .NETコアのデバッグは有効になりません。 .NET CLIツールがインストールされ、パス上にあることを確認します。
諦めた デバッグなしで起動すると動くけど、
それなら、他のと変わらないなーー
ぐらい >>920
プログラムの本とか買ったことないな。
ネットの方が情報あるし。
コードをとにかく色々書いてみて動作させながら言語の特徴やクセを掴んでいったほうが習得は早いと思うよ。
むしろ本はある程度書けるようになってから、もっと楽に書ける方法があったのかっていう意味で気づくためにみてる、立ち読みでだけど。 既存のGUIウインドウ上にテキストを表示したいのですが何かいい方法ありますでしょうか >>929
Pythonなんかつかわないで
そこらのロシアなんかに転がってるあやしげな汎用改造ツール使う >>928
なるほど…そうやって本は活用するものなのか〜。
ありがとう! >>931
人による
俺は逆に最初は本読みながら作って、ある程度慣れたら疑問点をネットで調べてる >>928
これはプログラミング自体の初心者は真似したらアカンよ
こういうこと言うのは高確率で他言語経験者だから >>932
>>933
>>934
VBAはまぁまぁ使いこなせるんだけど、入門Pythonの本は難しくて…。
・確かな力が身に付くPython「超」入門
・はじめての簡単PythonAIプログラミング
この2冊を買って勉強中。
ExcelVBAと上手くリンクしながら動いてくれればこの上ないのだけれども…。
(上司からは「アプリ開発できるようなってください」と言われてるが、まだまだ先の話になりそう) >>926
「vscode the .net cli tools cannot be located」で検索!
>>935
「みんなのPython 第4版、2017」が定番 俺、初めてのPythonめちゃ助けられた
というのも初プログラミング=Pythonだったから
コード真似て、こう動くんだというのはわかっても
用語とか解説がチンプンカンプンな事が多くて辞書的に使ってた
確かにクドイね。でも今なら他にいい本出てそうじゃん 型宣言とか戻り値の型とか書かないのすごく気持ち悪いね
まあ慣れるんだろうけど >>940
書いてもいいのよ
type hinting 書いた方がvscodeでIntellisenseが効くから書いてる。 変数の中に数字が入っています。
具体的にどんな値が入っているか自分では分からない状態で、もしその値がマイナスの値だった場合、
その変数の値を他の値(例えば60)に変更するにはどう書いたらいいんでしょうか? >>943
追記です
sleep関数を使って整数内のint(秒)間スリープさせてループです動かすスクリプトなんですが、たまに整数内の数字がマイナスになってしまった場合にエラーで止まってしまうので、それを防ぎたいと思いました a = 10
if a < 0:
a = 60
print(a)
a = -10
if a < 0:
a = 60
print(a) 今paizaラーニングのチャプター2 #3
やってるんだがアホすぎて不等号の意味が全くわからん それプログラミングじゃなくて中学数学が分からないのでは? 特定の文字列をUTCの時間だと指定してUnix時間に変換する方法を教えて欲しいです。
current_dataのStartTimeには2018-08-16T06:05:37と書かれてあります。
https://pastebin.com/K9qEC75T
これだと9時間ずれてしまいます。 >>952
time.timezoneかdatetime.datetime これでできました
baseStartTime = '2018-08-16T08:02:45+0000'
baseTimeFormat = '%Y-%m-%dT%H:%M:%S%z'
utc = datetime.strptime(baseStartTime, baseTimeFormat)
unix = utc.timestamp()
>>956
調べてみます https://ideone.com/rGkQxM
pythonはCバインディングの関数よんでるだけだからな
調べてやったぞ
baseStartTimeがUTCならNo1.でいける
setenv("TZ", "UTC", 1); ← コレで切り替える
strptime(sz_time, sz_fmt, &t_tm);
return mktime(&t_tm);
baseStartTimeがJST(UTC+09:00)ならNo2.でいける
setenv("TZ", "Asia/Tokyo", 1); ← コレで切り替える
strptime(sz_time, sz_fmt, &t_tm);
return mktime(&t_tm); そう
しかしコタエとしては
オマエが作ったプログラムを起動する前に
適切な環境変数設定すれば
期待通りの結果になると考えられる
起動するまえにシェルで
TZ="UTC"
※ baseStartTimeがUTCの場合
もしくは
TZ="Asia/Tokyo"
※ baseStartTimeがJSTの場合
とすればいいハズ csvに入力してある内容からランダムで5W1Hゲームの答えを表示するコードをお願いします 宿題ではないです
作り方がわからないので教えてください matplotlibで散布図を作りたいのですがプロットする点は点ではなく外部ファイルの画像データを使いたいです
これは可能でしょうか? >>963-965
Ruby では、こういう感じ。
Python のCSV module も見れば?
# コロン区切りのCSV 入力ファイルを、1行ずつ処理する
input_file = "input.csv"
CSV.foreach(input_file, col_sep: ":") do |row|
puts row[1] # 列[1]
end with open(“file”, “w”) as csv_file:
# csv_file.readline()とかsplitとかご自由に。 秒を時:分:秒に変換したいです。
その時、時が00なら分:秒だけにしたいです。
以下のように書いたんですが、ifが動いてくれないです。
どう改善したらよいですか?
duration = "{0.hours:02}:{0.minutes:02}:{0.seconds:02}".format(relativedelta(seconds=baseDuration)) # 曲の長さ (時:分:秒に変換)
if str(duration)[0:1] == '00':
duration = str(duration[3:7]) >>970
自己レス
if str(duration)[0:2] == '00':
duration = str(duration[3:8])
これで動いてくれました。
最初の二文字の指定だから[0:1]、[3:7]だと思うんですが、なぜ[0:2]、[3:8]としないといけないんですか? >>971
そういう言語仕様だから
としか言いようがない >>972
うまく理解する方法があればいいんですが、仕様という事で理解する事にします。 データをcsvファイルに保存したいです。
コンマ区切りだと、保存しようとしている項目の中にコンマが含まれているとおかしくなってしまうので、
"value1","value2","value3"
って感じで「"」で囲む事にしました。
csvFile = open(fileName, mode='a', encoding='utf-8')
print(f'"{unixStartTime}","{startTime}","{song}","{artist}","{album}","{releaseDate}","{identifier}","{itunesTrackId}"', file=csvFile)
csvFile.close()
しかし、項目の中に「"」が含まれていると、それもまたおかしくなってしまいました。
一般的に、どう書くんでしょうか? >>973
C言語とかの経験があれば
for(i = 0; i < 2; i++){ printf("%d\n", i); }
で、0, 1 しか表示されないからすんなり理解できるんだけど… >>971
スライスの添字は要素と要素の「間」を示していると考えればいい
https://docs.python.jp/3/tutorial/introduction.html
> スライスの使い方をおぼえる良い方法は、インデックスが文字と文字の あいだ (between) を指しており、最初の文字の左端が 0 になっていると考えることです。そうすると、 n 文字からなる文字列中の最後の文字の右端はインデックス n となります。例えばこうです:
リンク先にASCII図があるのでそれも見て >>975
よく分からないです
>>977
なるほど!
今までpythonでは0から始まるので、1文字目は0、3文字目は2と理解していたので、>>970-971 の疑問が湧いたんですが、要素と要素の間と考えれば上手く理解出来ました Ruby の範囲演算子(Range)では、
(3..5) # 3, 4, 5
(3...5) # 3, 4
.. は終端を含む。
... は終端を含まない >>974
Ruby では、
1. :col_sep フィールドの区切り文字
2. :row_sep 行区切り文字
3. :quote_char フィールドをクオートする文字
1は、カンマかタブ
2は、\r\n か\n
3は、\(バックスラッシュ)
たぶん、"a\"b" >>980
いい加減にしろよ池沼。
そんなにruby嫌いを増やして楽しいか? 言語によってスライス系の関数やメソッドの引数もバラバラだからなあ
slice(from, to)
to を含んだり to - 1 だったり
slice(from, length) だったり
覚えきれないからマニュアル見ながらやってるよ >>983
最初だけな
インデントとかもそう
食わず嫌いが多すぎ
外見に惑わされず
がっつり身を取れ file “<stdin>”, line1, in<module>
NameError: name ‘ファイル名やら’ is not defined
というエラーが出てしまいます。
この前まで使えてました。
何が原因かわかりますか?
>>>a=5
>>>a
5
などはできます。
.pyが動きません。 ネットラジオで現在放送されている曲情報を取得して表示するスクリプトを考えてます。
https://pastebin.com/uTd6r2ex
放送局側のJSONには現在の曲情報と次回のJSONの更新時間(だいたい数秒〜数十秒後)がかかれてあります。
次の曲が始まる時間が書いてあればいいんですが書かれてないので、現在の時間と次回のJSONの更新時間の差分秒でループさせて次回のJSONを取得する事にしました。
(放送局のサイトにあるWebプレイヤーのjavascriptでは20秒間隔で取得しているようでした)
放送されている曲がそのままなら更新後のJSONの中の曲情報ももちろんそのままで、次回の更新時間のみ変更されています。
曲が変わっていないのに、ループの時間が来たらその度に出力されるので、その処理は無駄だと思いました。
JSONが更新されても曲がそのままなら変わらない情報(例えば曲名など)をキャッシュとしてオンメモリのSQLiteに保存して、そこが変わってなければ出力しないようにすればいいんじゃないかと思ったんですが、他にいい方法がありますか?
教えてください。
現在のJSONの特定の項目をSQLに保存させて、PythonからSQLのそのレコードを取得する方法までは分かりました。
SQLには現在のJSONとひとつ前のJSONを記録させて、Pythonからはひとつ前のJSONのレコードを呼び出す方法も知りたいです。 曲の類似度で機械学習させて判定結果表示するのかと思った >>993
オンエア情報の分析をやってみたいんですが、その前段階のデータ取得ですでに躓いてます… >>994
どうもありがとうございます。
ググってみました。
怖そうな記事や古い記事ばかり引っかかります。
一般的にそれを使うのがいいんでしょうか? https://pastebin.com/g1gML3Ep
合ってるか分からないけれど、とりあえず動くようになりました 1000GET!
Pythonのスペシャリストになります♪ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 8時間 59分 48秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。