くだすれPython(超初心者用) その49【まず1嫁】
レス数が1000を超えています。これ以上書き込みはできません。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OS+IDEの種類とバージョン)をシッカリ書くこと。
【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。最近流行中?
ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇
くだすれPython(超初心者用) その48【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1589201940/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎても自動落ちはしなくなって久しい)
### END OF TEMPLATE ### 前スレの、>970
ドラクエの開発者によると、0.2% の頻度で、データエラーになるので、
絶対に、回線から来るデータを信頼しない
UDP は、エラーを直すことを保証していないし、
TCP でも、ルーターによっては、データエラーの場合でも、
新たにパリティーを再計算して、そのまま正常データのように扱うものがある
元々の規格が、こういうものらしい。
データエラー時でも、別に再送しなくてもよいらしい 質問です!
大学の授業でPythonを使ってます。
課題提出は.pyファイルを提出しろと言われてて、そこまでは出来ます。ですが、その提出するファイルを自分で開こうとすると何故か開けないんです。
要するに、左にファイル名が書いてあるので任意のファイルをダウンロード→それを提出は出来るんですけど、ファイルをダウンロード→それを開いて中身を見るができません。
.svgファイルは見ることができるのですが.pyファイルは見れないです。
自分は開けないので先生の方へ送ったやつも開くことができるのか不安です、、、 >>7
「単一スレをたてるほどでもないけどききたいくだらないことを質問するスレ」の略らしいぞ
>>8
それしちゃうと今度ダブルクリックで実行されなくなりましたって言ってくる罠 ファイルを右クリックメニューから、
「プログラムから開く」で、好きなエディターで開けば? 初回の授業で環境構築やったんだけど欠席しちゃったとか?
でももう7月だしな...(´・ω・`) コロナで内容スッカスカの授業も圧縮授業もどちらも不幸で可哀想だと思う jupyter notebookを起動してNEWを押したときに表示されるPython 3だとかWolfram Language 12だとかといった表示を消すにはどうすればいいでしょうか?
実はWolfram Language 12をアップデートしてWolfram Language 12.1にしたのでWolfram Language 12のほうは消したいです。 >>12
内容スッカスカでリモート授業で自宅待機強制して
今度は夏休み短縮とかスケジュール管理めちゃくちゃだしな https://ideone.com/m0g0B4
度々失礼します。
x座標の現在位置を反転させるにはどうしたらいいのでしょうか。そもそも移動方法がわかりません。
メインループ内にx += 1としたら、x -= 1と干渉して動かなくなりますが 失礼
100と-100の間を行ったり来たりさせたいです
すみませんガイジで vxを速度とする。
var x = 0, vx = 1
func _process(delta):
if (x == 100):
vx = -1
if (x == -100):
vx = +1
x += vx
print(x) オライリーの本読んでたらいきなり=\って出てきたんだけどこれなんなんですか? >>18-19
前スレの−10と10の間を行ったり来たりさせたいクンと同じ学校なのんけ?w
21のクソコテのレスはインデント崩壊してるが
言いたいことは1行目がだいたい全部だろう。
なお
ステップ刻まずただ2値の反復横跳びをさせたいだけなら>>20 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 前からいるpythonもどき言語は同じ人なんじゃないの? Godot のスレは、ゲーム製作技術板にあるので、そちらへ書き込んでください! 深夜にお世話になります
改行に挟まれた文字列を改行ごと消し去りたいのですがどのようにすればできますか?
まず改行の中だけ選択しようとしているのですが、
resultstr = re.match(r'\r\n\r\n.+?\r\n\r\n', test.text)
で試してみるとNoneだとエラーになってしまいます。
str()もNoneだと使えませんでした。 >>29
reを使うのならなぜ.subを試さないのか >>29
例文と、希望する結果ぐらいのせろ。
文字列が2行以上の場合は、望み通りの結果とは限らない。
import re
str="""abcd
efg
"""
str2 = re.sub(r"[¥r¥n]+.*?[¥r¥n]+",r"",str)
print (str2)。 scores= [90, 86, 78, 64, 57, 62, 87, 82, 90, 95, 86]
best=
if :
best=
best=の後ろと、ifの後ろに適切なものを付け加えて、このプログラムでscoresから最高値を取り出したいのですが、どのようにすればいいですか?
最高値を直接出す関数は使用禁止されています。 webアプリ開発ってdjangoよりphpのほうが一般的なんでしょうか
また、ネイティブとどっちをやるべきですか? scores= [90, 86, 78, 64, 57, 62, 87, 82, 90, 95, 86]
best=
if :
best=
best=の後ろと、ifの後ろに適切なものを付け加えて、このプログラムでscoresから最高値を取り出したいのですが、どのようにすればいいですか?
最高値を直接出す関数は使用禁止されています。 print (sorted(scores)[-1]) >>37
自分で調べも考えもせずネットで答えを聞くのは禁止されてないの? こういう無理矢理用意した正答を答えさせる教育方法が許されるのは中学までだよな
どういう力を育てればいいのかまるで理解してないように見える >>43
同じこと思ったが、きっと授業で懇切丁寧に教えている背景があるんだろう
それを全く無視して設問だけ流すから、なんだかなになる キャニー法とディープラーニングを用いたエッジ検出てどっちが精度いい? >>46
膨張差分法とキャニー法による線画作成の比較
https://testpy.ハテナblog.com/entry/2018/03/18/042514
>両者を融合すると良い感じになると思う。 メイン.pyでimport モジュール1してて
気づかずにメインで読み込むサブ.pyの中でもimport モジュール1
としていた場合、気にする必要はないですか?(モジュール1はメインとサブとは別) import random
temp = []
for i in range(10):
__num = random.randint(1,10)
__if num <=5:
____num = str(num)
____temp.append(num)
__else:
____num = float(num)
____temp.append(num)
みたいなループ中の条件分岐でそれぞれの処理+共通処理するやつ
finallyにあたるのがあればシンプルに書けると思うんだけど,みなさんはどうしてるのです?
諦めて何回も書く?
for i in range(10):
__num = random.randint(1,10)
__if num <=5:
____num = str(num)
__else:
____num = float(num)
__finally:
____temp.append(num) クラスのアトリビュートに
self.option={"hoge":"fuga"}
みたいなdictを与えて参照するとき
self.option.hogeってやると、hogeないよ的なエラーがでてハマりました
self.option["hoge"]みたいにテキスト形式じゃないとダメなんですね・・?
なぜなんでしょう、みやすさでしょうか?
(そもそもアトリビュートにdictを代入してもいいんですよね) >>49
pythonがうまい具合に解釈してくれるのでしょうね ありがとうございました >>50
for i in range(10):
__num = random.randint(1,10)
__if num <=5:
____num = str(num)
__else:
____num = float(num)
__temp.append(num) (モジュール1はメインとサブとは別)っていう表現が気になるが
main と sub で sys.path を変えて
同じ名前の「モジュール1」でも違うもの二つ別々にってことかと思った
それでも気にしなくて良いが >>54
なるほど
javascriptだとどっちでもいい的な感じだったのでちょっとハマってしまいました >>50
>>53
違う型を混ぜられるけど混ぜると後で混乱の元になるからやらない >>51
setattr(self.option, "hoge", "fuga") Pythonのoption["hoge"]は、option.__getitem__("hoge")のショートハンド。
データとアトリビュートを明確に区別している点で理に適っている。 オペレータオーバーロードが出来る言語は異質
使いこなせばごく限られた選民になれる > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>37
Ruby では、
ary = [90, 92, 90, 95, 86]
max = ary.first # 初期値。ary[ 0 ]
# 1つずつ処理する
ary.each do |num|
max = num if max < num
end
p max #=> 95 pythonのライブラリのインポート負荷ってどれくらいなんですか?
いつもライブラリ全部一括インポートするか一部機能だけインポートするか迷うんですが
OpenCVやPytorchなどです CVやPyTorch使うのに、そんなミクロなこと気にしてどうするんだ?
せいぜい使わないモジュールをインポートしないとかくらいだ。 openCVインストールか
peppep
wheelwheel openCVで動画のリサイズ後の動画サイズの予測をしようとしたのですが
『動画の圧縮形式』『フレームの縦横の幅』『fps』『秒数』がわかっているので
#count = 総フレーム数
width(px) * height(px) * count の値と、
実際に生成された動画のサイズの関係性をいくつか比べてみたのですが
誤差10倍以上あって参考にならないレベルでした
何がやりたいかと言うと、
動画をリサイズしたいといより
大体◯◯bytesになるように動画をリサイズしたい
のです 動画のサイズを指定してリサイズしてくれるモジュール的なのがあるのかなと思ったのですが
まだ無いみたいですね
需要はありそうなので自分が作るモチベにもなりそうです
やってみます 深層学習によるエッジ検出についての質問です。教授いわく深層学習は数百枚の画像を読み込んでパターン学習を行うとおっしゃっていました。深層学習によるエッジ検出にはたくさんのデータが必要なのですか?一つのデータにはこの手法は使えないのでしょうか。 https://ideone.com/qvUKjh
delta timeでタイマーを作ったのですが、1秒経過するごとにprintするようなプログラムは作れるでしょうか? def resize(w, h):
subprocess.call(f'ffmpeg -i input.mp4 -vf scale={w}:{h} output.mp4')
できた! 燃えるゴミのビニールが少なくなっています。
燃焼にカロリーが足りなくなるため、ガス炉転換済みの自治体向けに、空気層を含むビニールシートを開発しました。
(従来ビニール袋に使われていた)石油精製時に余る素材を利用しているので、たいへんエコな製品となっております。
焼却炉の燃焼状態でお困りの自治体様に置かれましては、ぜひご検討くださいませ。 >>73
>70についてでしょうか 違っていたらすみません
やりたいのはffmpegのオプションでいうところの強いて言えば
-b ◯k
の部分なんですよね
おそらくそのresize(w,h)だとw,hはわかっていても
出力後の動画の『ファイルサイズ』はわからないような気がしますが違うのでしょうか openCVあらためてぐぐってみたら
CAP_PROP_BITRATE
という設定がありました
とりあえずこれでやってみます >>72
作れるのでがんばれ
ソースは見に行ってないが、初心者あるあるなてんで突っかかってるのだろうとエスパー
>>71
1枚しかデータがなくても、解像度がよくて特徴がちゃんとしてれば、
おまいの調教次第では、あるいは。。。 elifとifの入れ子って同じことなでしょうか?
>>78
わかんないんで諦めます >>72
今ソース見てきたがこの言語Pythonじゃなくね?
ヽ( ・∀・)ノ● ウンコー!!! openCVでbitrateの取得に成功したのでwidthとheightを変えて
リサイズして出力した動画ファイルのビットレートを取得してみました
wとhそれぞれの倍数をnとすると、(n^2)倍くらいのファイルサイズで出力されました(入出力動画ファイルは共にmp4)
cap.set(cv2.CAP_PROP_BITRATE, bitrate)して良い感じに調整してくれるのかと期待したことは結局できませんでしたが
とりあえず誤差に問題なかったのでこの辺りを落とし所にしておきます >>82
想像だけど、OpenCVはコンピュータビジョンのライブラリであって、
動画の出力に特化したライブラリじゃないから、
手の込んだ圧縮がしたいなら、
ffmpegのために連番画像を一回書き出すとか、それが嫌ならパイプで読んで標準入力に画像の生バイナリデータをがんがん送るとかで圧縮して、
希望の圧縮ができるようにしたほうがいいよ。 素人グラマーです
フォルダかファイルを指定してリネームする関数を書いてみたのですが
こう書いた方がいいとか、ここがダメとかいう プロのグラマーの意見が欲しいです(勉強になるので)
https://dpaste.org/2KBd あと関数とか変数名のつけかたもよく分からんので、普通はこう命名する みたいな点があれば指摘していただけると助かります youtubeはdjangoで作られてるって言ってるひとがいるけど違うよね?
django公式にも採用例として載ってないし >>83
そうなんですね
あれからいろいろやりましたがエラー頻発にめんどくさくなって
結局ffmpegでやることにしました・・ >>87
コアロジック部、APIはPython。
CPython通してCも間接的に使われている。
その他、C++、Goも使われている。
で、フレームワークにはJavaで動いてるGoogle Guiceが使われていると思われる。
Pythonが使われている=Djangoが使われている、ではないからね。
「証拠出せこの嘘つき野郎!」と煽ってみたらどうだろう? Python超初心者なんですがでC#の匿名型+オブジェクト初期化子みたいな技使うなら辞書型になりますか?
[""]付けるのが嫌だなって・・・
var pet = new { Age = 10, Name = "Fluffy" };
pet.Age = ・・・
pet = {"Age":10, "Name":"Fluffy"}
pet["Age"] = ・・・ 追記:理由はリテラルべた書きになるのでリファクタリング手間かなと・・・今はまだIDE分からないんでメモ帳使ってるんですが >>94
そのサイトの分析結果見てから言ってるなら相当のマヌケだなお前。死んだ方がいいよ。分からないなら黙ってりゃいいのに。 ローカルでDLやりたいのでおすすめなゲーミングPC教えてください。予算は20万前後でやんす >>96
このスレに書き込みしてるって超初心者なら
まずは買う前に今手持ちのパソコンでPythonの
プログラムを走らせてみてから見積もりしても遅くないと思われ 家電製品を運ぶならF1カーより軽トラだし
家族がまだ居ないのにミニバン選んでも仕方ないからセダンにしとけという事だよ
何なら中古のゲーミングPCなら4〜5万円でも間に合うだろう
今最新のグラボ積んでも2年で使えなくなるかは
そのdeeplearningでやりたい事のプログラム次第なんだから
一概にオススメ出来るものは無いけど
グラボのメモリは8GB以上
マザボのメインメモリは12GB以上
CPUはグラボを計算用にする為グラフィックチップ内臓のもので
オンボードグラフィック可能なもの
(グラボの出力をモニターに繋がないで計算資源に割り当てる為、元から付いてないテスラもあるし)
OS側はSSDかM.2で128GB以上
ストレージは2TB以上のHDD
くらいので探してみてはいかがでしょう?
ガレリア、マウス、エイリアンウェア、などの外観は好みだけど
3日3晩フルでぶん回すとか(グラボ90℃のから温風で冬場暖房要らず)
あるから排熱フローはしっかりとね
(水冷にこだわる人も居ればグラボ6枚挿しのマイニング転用オープンカーで扇風機だったりもあり)
電源も80ゴールド+やプラチナとかは大事
出来ればマザボのコンデンサは固体タイプ
もうスレチの自作パソコンみたいになってくるんでこの辺でやめとくよ
職人の道具を揃えても職人とはいえないからね >>5
スですみません。
WindowsがPythonを認識していないようですね。
PCを一旦きれいにした方が良いかもしれませんね。
コマンドプロンプトを開いて、format c:とタイプしてenterを押してみていただけますか?
これで、PCはきれいになるはずです ubuntu使うとプログラミングにおいてメリットはあるでしょうか? >>105
Linuxまわり・Linux特有の操作に詳しくなれる ぱいそんって読むのか…
ぱいとんって読んでたわ…
しかも最近流行なのかと思ったらけっこう昔からあったのね… フォーラムとかでコード参考にしてると
print("hoge")
ではなく
print "hoge"
みたいな書き方あるけど、エラーでる
python3じゃだめな書き方なの? >>91
名前付きタプルはどうかな?
もしくは、
pythonのクラスは後からメンバ変数追加できるからそれはどう?
class hoge():
pass
h=hoge()
h.age=10
みたいな
いずれにせよ、言語違うから、副作用を含む匿名関数とかも作れないし、匿名クラスもないし、多少全く同じ機能がないのは仕方ないかと
C#はなんでもあり言語だしね >>109
そうですか
何かしらの開発ディストリビューション上でいけるやつなのでしょうね
ありがとうございました a=["a","b","c"]
for n in a:
_print(n)
このときインデックスも取ろうと思ったのですが
for n,i in a:でいけるかなと思ったらエラーでました
n.index(n) や for i in range(len(a)):
以外にありますでしょうか python使いの神様方に若干スレ違いで申し訳ないですがお願いです
このリアル植松の呟きをcsvに保存するプログラムを大至急作っていただけないでしょうか
もうすぐ凍結されると思うのですみませんがどうかお願いします
羆さん (@mhlworz) / Twitter
https://mobile.twitter.com/mhlworz
《SNSで接点》100万円で京都ALS患者殺害 容疑者40代医師はペンネームで「高齢者を『枯らす』技術」執筆 | 文春オンライン
https://bunshun.jp/articles/-/39214
https://twitter.com/5chan_nel (5ch newer account) >>118
chromeの拡張
Twitter メディアダウンローダー >>120
早速のレスありがとうございます
できましたら画像だけでなく呟き丸ごと欲しいです
とりあえず教えていただいた拡張使って画像落としてきます >>121
メディア無しのチェックボタンありますやん
RTを含むチェックもある pythonを3.8.0から3.8.5にバージョンアップさせたのですが
venvで作成した仮想環境もまとめて更新する方法ってありませんか?
今は本体のpythonを更新したら仮想環境を1つずつ作り直してるのですが、手間がかかります >>120
>>122
貴方様、作者様が神です
全16457tweet、無事きっちり落とさせていただきました
なんj、嫌儲で伝説とさせていただきます
VB使いのスレ汚しすみませんでした >>124
じゃあVBでやればよかったのに。
VBすら使えないくせに見栄はるなよ >>123
venvの入ってるもの一覧を出すコマンドと
画面に出てる文字列をファイルに書き出すコマンドを
合体させるのじゃ。
しかるのち、
新しいvenvに
書きだしたファイルを食わせて連続でインスコを行うようなバッチを作るのじゃ マイナーバージョンのアップデートは、仮想環境そのままでいいだろ。 >>123
requirements.txtで一回出力してインストールすれば良い
pip freeze > requirements.txt
pip install -r requirements.txt
詳細はpython requirements.txtでググれ >>130
それだけだとvenv内のpython自体のバージョンアップはできなくね? 「”」を一つ入力すると、2つ出るようになりますが、
文字列の入力が終了して改行したい場合、右矢印ボタンを押してエンターしか方法はないのでしょうか。 二つ目の「"」の後に「\n」も一緒に出てくるように設定すれば下矢印キーを押すと次の行にいける
それか「真下に次の行を作成し、次の行に移動」というマクロを自作する >>136
ありがとうございます。
地味に面倒だったので助かりました。 root = "/dir0"
dir = "/dir0/dir1/dir2/dir3"
#これの/dir0/dir1までの文字列を取得したいのです
dir2 = re.compile(dir+"/([^/]+)").match(root).groups()
if dir2:
_print( f'{dir}/{dir2[0]}' )
として取得できたのですが
なんか野暮ったい気がしますがもっとスマートは方法はありますでしょうか >>138
reつかうより
「/」でsuplitして(仮リスト)
仮リストのインデックス0と1を「/」でjoinし、
先頭にも「/」をたしたらどーよ >>138
'/'+'/'.join("/dir0/dir1/dir2/dir3".split('/')[1:3]) iPad ProでPythonは厳しいでしょうか?
やっぱりメモリ不足、機能不足ですか?
仕事用で資料書き込み用として併用を考えております
アホな質問ですいませんで申し訳ありませんが
どなたかご教授いただけたら幸いです >>138
from pathlib import Path
root = Path(r"/dir0")
path = Path(r"/dir0/dir1/dir2/dir3")
root.joinpath(path.relative_to(root).parts[0])
Pathじゃなく文字列が欲しいだけなら
root = '/dir0/dir1'
path = "/dir0/dir1/dir2/dir3"
'/'.join(x for x in path.split('/') if x in root.split('/'))
どっちもスマートとは言い難いが >>143
そのiPadの古さ&容量と、仕事とやらの重さによるだろ >>145
iPad Proは最新12.9inch、1T、メモリ6gの予定です
Pythonでやりたいのは会計ソフトとHP作成です CPUアーキテクチャの差か、ふつうにMacBook Airなんかより高性能だよそれ。性能よりもHP作成は環境構築が大変そう。iOSだし。 性能的には問題無く、後はやる気の問題てことですかね
お答えいただきありがとうございます とりあえずデータ分析やりたいんだけど、初心者は何をやればいいの?
手段の目的化してるけどね >>146
具体的にどのくらいのファイルを読み込無必要があるのかとか、どんな処理をしたいかによるから答えようがない >>151
すいません、容量はさっぱりわかりません…
会計ソフトはなるべく簡素な内容で、領収書・証明書発行・対象となる人についての情報登録(1万人くらい)と検索、これくらいです もちろん誰かが作るのだろ?
こんなのを聞かなきゃわからん奴には無理だろ ExcelをPythonで操作するところから始めればいいよ
その手の本が出てるから買うなり図書館で借りるなり > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>153
自分の立場上、2,3年後くらいに確実に必要になるものでして…
時間掛かってものんびり挫けず組んでいけたらなと
不快にさせてしまったのであれば申し訳ない
決して舐めてる訳では無い メモリ関係なくipadでpythonは筋悪
pro買う金があればマトモなノート1台用意出来る >>147 は? もう全てのAppleのOSは統合されるよ。
>>152 クラウドの会計ソフトを使うだけじゃないの? そんな知識で自分で作るつもり?
専門家に相談したほうが良いよ。 Pythonで会計ソフトなんて作ってもバイナリサイズがバカデカくて動作モッサリなゴミしか生まれんぞ >>159
Python → GO 書き換え案件流行ってるよね >>140,142,144
rootが/dir0/dir00とかになったときにズレそうな気もしましたが
rootの/の数をプラスしてやればできそうですね
splitつかえばスマートにいけそうです
ありがとうございました howじゃなくてwhyだな
・「会計ソフト」と称される
・『立場上』、2〜3年後に必要となる
・一万人規模
・カネと引き換えに紙の免状を送る
・外注はしない/出来ない
・既存のAccessなどは使わない
そりゃ10000人から1000円集めたって10000000円だろ
ツールに50万円くらい払ったっていいじゃん
「立場上」「必ず必要になる」「2〜3年後」「それだけが出来る超高性能ソフトウェア」が欲しい、だ
それだけが可能な、単機能でピーキーなアプリだ
立場上必要になるが、自分個人でしか使わない、となる
立場によって使うことになる、役職上業務上の会計ソフトウェア、なんてのは異質だからな
ついでに、iPadで作るってことはiPadで使うことを念頭にしてるのか?
なんにせよ、何に使うかは本人の中ではバッチリ決まってる
・・・ウラのウラのウラがありそう そんなウラがあるもんでも無いんですが…
・ソフトが自分しか使わないのは自営業だからで、ソフトを売るつもりは無い
・既存のモノを使うには月々いくらかかかり、それが長年続く
・自分が使う時まではまだ年単位で時間あるから、必要なら作ってしまうか
・iPadやMacBookはあるから使えるよう持っていきたい
動機自体は安易なんですが、自分が思っている以上に大変な事のようですね… それが7年前に買ったMBAで…たまに落ちる時がありいつまで保つかわからないのです
新しく買う際、>>143の目的もあって併用出来たらありがたいなと思い、感触として誰かご存知であればと質問させていた次第です ipadは開発機じゃ無いしMBAの代わりにもならん
ipad活用計画は捨ててmac買い直せ 素直に買い直した方が良さげですね
返信していただいた方々、ありがとうございました
気長に作っていきたいと思います
スレ汚し申し訳ありませんでした pythonで作ったアプリ配布したいけどpyinstallerがダメ過ぎる。
これってhello worldぐらいしか通らないんじゃないか? >>163 馬鹿な考えだと気がつけないのは愚か。
そんな状態で何か作るならExcel とかでやっとけ。
ま、自分がお勧めするのは MoneyForward などのクラウドソフトだな。
MoneyForwardなら領収書をiPhoneで撮影すれば全て明細が一覧で出てくるし。
銀行やクレジットカードなどの履歴も全て自動で取り込まれ確定申告がすごく楽。
日常の講座管理も楽。先ずは試してみるべき。 >>169
PtinstallerはMacは無理ゲーだけど
Windowsなら普通にアプリ作成いけるよ
自分は社内アプリを作ってた
まぁイレギュラーな方法だけどね >>161
ズレそうな気もしますっていうかズレたか?
ズレてないけど 改訂2版 Ruby逆引きハンドブック、2018、株式会社マネーフォワード
この本は、デザインパターンの宝庫で、Ruby の名著!
Rails でも有名な会社 機械学習系ってどうやって役立てればいいのかわかりません
個人レベルで役立つ事はありませんか >>177
おまいらの大体がエロ収集での活用を目指す傾向 >>178
画像ダウンロード違法になるしね、、、
>>179
画像生成に興味がありましたけど、これは予測系ですよね
分類系とはどういうものでしょうか >>180
適当にエロを集めてきたとして
俺好みかそうでもないか地雷かを学習させ
俺地雷を警告する
とか。 金に結びつけるにはどうしたらいいんだろうね
株とかそれくらいしか思いつかない >>172
>142と>144の後半だと
root="/dir0"の場合は/dir0/dir1
root="/dir0/dir00"の場合は/dir/dir00
になってしまいますね
>144さんの前半は/dir/dir00/dir1となってバッチリでした 金に結びつけるならやっぱ不良検知だろ
個人ではできんけど 不良検知って企業レベルじゃないかしら
エロ画像生成するくらいかね? >>171
Ptinstaller?
pyinstallerの打ち間違いですか?
pyinstallerはなんかmatplotとの相性問題が言われてますよね。
自分のアプリはmatplot使いまくってるので、通らないのかなぁ・・・。
せっかくアプリ書いたんだけど非技術系の人たちは実行ファイルにしないと
対応してくれないので(´・ω・`) os.walkでフォルダ内のファイル探査中にファイル削除ってしていいの?
for root, dirs, files in os.walk(fpath, topdown=False):
_for name in files:
__os.remove(root+"/"+name)
みたいな 確かに躊躇するな。
いいか悪いかわからんけど、削除予定のパスはリストに突っ込んでおいたら? >>188-189
実際はos.remove(root+"/"+name)の前に条件に一致するファイルだけ削除したいんだけど
やっぱまずはパス名だけリストして
ループ抜けたあとに、最後にそのリストを参照して削除した方がいいのかあ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 配列にマイナスの数値かけたらスルーされてそれは期待する結果だったけど
そういう使い方してもOK?
例
ary = ["a","b","c"]
len_max = 5
print( ary + ['x']*(len_max-len(ary)) )
len_max = 2
print( ary + ['x']*(len_max-len(ary)) ) print('aiueo'.split(''))
#これでいけると思ったのにエラーでた
print([s for s in 'aiueo'])
#['a','i','u','e','o']
#こうするしかないのだろうか >>197
できたあ!
なるほどargmentsの展開のやつ?かd 任意のフォルダ(fpath)内のすべてのファイルを検索をして
名前に◯◯が含まれていたらcallback1を実行…@
名前に△△が含まれていたらcallback2を実行…A
ただしcallbackはファイル検索がすべて終了した後
をしたくてゴリ押しでなんとかいけたのですが
”ファイル検索後”の処理部分がモヤモヤします・・
(該当したファイル分だけコールバックが保管されてるところとか)
@Aで引っかかったファイルのパスと、対応するコールバックを一時的にリストに保管
そのリストをループして・・・みたいな感じです
https://ideone.com/UUltFZ
もっと良い感じにできないものでしょうか・・ 学校の課題だか仕事だか知らんけど、自分でやる気なくて他人にやらせて成果だけ自分のものにしようって考えの人なんでしょ とりあえずos.walk使うのやめてscandir使うと幸せになれると思う ゴリ押しできるコードを自力で完成させるまでは質問はしないと自分ルールで決めているのですが
非のない最適コードをかけるまで、となると
ハードルが高いというかゴールが見えないんですよね・・
そもそもどこが足りないかがわからない、みたいな
仕様書を全部読めばいけそうですが右から入って左から抜けていきそうです(汗
>>202
199を投稿した直後に「あれ、これもしかしてこういうモジュールあるのでは・・?」
と思ったのですがまさか、、scandirさっそく調べてみます os.scandir ?
os.listdir 使うと幸せるなれるかも
fnmatch.filter 使うと幸せるなれるかも
glob.glob 使うと幸せるなれるかも
glob.iglob 使うと幸せるなれるかも
pathlib.glob 使うと幸せるなれるかも
pythonやめると幸せになれるかも
for x in glob.glob(‘./foobar/*.[Mm][Pp]4’):
__callback(x) そもそもなんですが、もしかして
ディレクトリ内の検索再帰中にファイルの削除操作ってしても良い感じなのでしょうか?
ファイルを一括操作してるコードをいろいろと見てみましたが普通に
for中に、ヒットしたら即ファイル操作(名前変更したり削除したり)してるようなコードばかりです
(もちろん、検索ヒットしたファイルを変更したあとで(変更前のファイルを)扱うようなコールバックはエラーですが)
例えば
ary = ["a","b","c"]
for n in ary:
_ary.pop(-1)
_print(n)
"c"はprintされないので非同期的にループ処理がされている?と思うのですが
こういったことがファイル検索中のファイル操作でも起こるのかなと思い>199のようなコードになったのです したいならすればいいししたくないならしなければいいだろ
自分の好きにしろよ >>206
ゴリ押しで動くコードはもう完成してるし動くので作業には支障ないんです>199
(もしかするとコードが書かれたurlが下の方なので見えない人がいるかもしれない?https://ideone.com/UUltFZ)
今はその先の段階で、もっと賢く書けないだろうか?
という段階です 例えば>199の
>(該当したファイル分だけコールバックが保管されてるところとか)
これの改善策は自レスになりますが
globalsを使えば、dataに入れるのはコールバック名(str型)だけでよくなります
def func():
_print('func()')
globals()['func']()
でも初心者の私は、コールバック名(単なるテキスト)から関数が実行できる、という
そもそもそこを知らなかったので、そういうアイデアが出るまで時間かかりました
(ただその後、そもそもコールバック関数名のテキストだけ入れた場合と、コールバック関数を入れた場合とでそんなに差があるのか?という疑問もわきました)
おそらく上級者の人はこの辺の把握力とか改善スピードがすごいのでしょうね 変に質問加工するよりも、課題をそのまま書き込んでくれ 課題・・?
よくわかりませんがもしかすると>199でそもそも何をしたいのかが
伝わってなかったっぽい・・?
自分で客観的に>199を見て簡単にまとめるとすれば
'''
任意のディレクトリ内で複数のフィルター検索をし
それぞれのフィルターに対応したコールバック関数を
該当ファイルすべてに対して実行する
ただしコールバック実行のタイミングは、検索終了後とする
'''
みたいな感じでしょうか
内容自体はかなり簡単だと思います
初心者の自分ですら必要十分まではこぎつけたので > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>211
単純に条件にマッチするファイル名のリスト(もしくはイテレータ)を生成して
それに対して関数を適用するほうがずっとシンプルだと思うけど
それだと何か不都合があるの?
条件1にマッチするリストを生成 -> 関数1を適用
条件2にマッチするリストを生成 -> 関数2を適用
条件3にマッチするリストを生成 -> 関数3を適用 >>214
それと似た感じでパターン(>199で言うところのfilters)を1関数につき1種にして
lst1 = filter_search('条件1',関数1) #条件に一致したファイルパスのリストを返す …@
list2 = filter_search('条件2',関数2) # lst1をcallback2で使えたりする余地
みたいなことや
見ため的にclassにして
filter_search('/path').fltr('条件1',callback1).fltr('条件2',callback2) …A
みたいな形にしていました
しかしcallbackの内容次第ではファイルが消えたりするので
条件12それに対応する関数12の依存関係が強いなと気付き
lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
みたいに、あえて依存関係を作った方がいいかな?と
(しかし>199のようにcallback割当が野暮ったくなる・・みたいな結果に)
”非同期的にファイルが消えたりリネームされる?されても大丈夫?”という部分がスッキリすれば
(特に大量のファイル数を扱うわけでもないし)214さんの方法や@、Aの方法を取っていたとおもうし
そうでなくとも、コメントアウトで説明入れとけばいいのでは?とも思います
ただ、上手い感じに依存関係をコードの視覚的にパッケージできないだろうかとも思ったのです pyinstallerって全てのライブラリに対応しているわけじゃないんだね。
まあ、当たり前といえば当たり前だが。。。
うまく実行ファイルできればラッキーというところか。。。 ただ214さんのおっしゃる通りイテレータを使えば
条件の依存関係を保ったまま視覚的な表現ができそうです
一度それでやってみようかと思います >>216
>しかしcallbackの内容次第ではファイルが消えたりするので
>条件12それに対応する関数12の依存関係が強いなと気付き
>lst12 = filter_search(['条件1','条件2']) #対応するcallbackを与える or lst12を再帰させる
>みたいに、あえて依存関係を作った方がいいかな?と
なるほど、わからん
ファイル消す処理をしてるなら消えて何が困るのか?
依存関係??
全体的に無理に難しい言葉を使おうとしてる印象を受ける
コードもそれと全く同じで無理に難しくしてる印象を受ける >>219
頭の悪い本当の馬鹿は内容を理解せずあちこちからコピペするだけだからこうなる。
ゆとり世代に多い。 >>218
exeにするときに引数ふやして自分で足そう >>219
>何が困るのか?
普通に>216@Aのパターンで何も困らないし自分も基本そうしてます
以前ここかどこかで質問したとき
再帰中に消すのはなぁ、みたいな意見が一定数あったので
自分でもファイル一括処理方法のサイトをいくつか調べてみましたが
特に気にしているようなコードはみかけませんでした
それもあって単に、
#---- A ----
条件1='条件'
条件2='条件1依存の条件'
関数1=条件1のための関数
関数2=条件2のための関数
#---- A' ----
lst1 = f_search(条件1,関数1)
lst2 = f_search(条件2,関数2)
#---- B ----
これ(AB間)を
「条件1ありきで条件2を書き、かつ関数12は条件12のためだけに書いたぞ」
という両方を満たす雰囲気をコード上で表現できるようなうまい書き方はないもんかな
という見た目の話です >>222
自分もそういうタイプなので敢えての小言
mp4とmovを振り分けるのに引数にする必要も正規表現使う必要もないですよね。
いやそこは簡略化した例だから、やりたいことを察してピンポイントで助言がほしいというつもりなんだろうけど、それってすごい偉そうな物言いで、助言をもらうのは厳しいと思います、必要ないことやろうとしてるようにしか見えませんから。
といってもそういうセンサーはついてないのだと思うし、そもそもあなたは自分で解決しないと納得できないタイプですから、人には聞かず自分で探し出しましょう。 >人には聞かず自分で探し出しましょう
繰り返しになりますが、
”コードは野暮ったくても実用できるまで”
は解決はしてるんです
ただ、もっと書き方を良くできないだろうか
という点が質問した一番の意図です
その先も自分で探し出しましょうとなると
このスレの存在意義は?とちょっと疑問に思います
(もちろん自分でも探しています)
>199,211でも書いてあるように
>ただしコールバック実行のタイミングは、検索終了後とする …@
なんですよね
しかし今のところ
”検索中、同時進行でコールバック実行(ファイル処理)”
してしまえば問題なく書ける、についての返答なんです
しかし質問の前提は@
要するに@をやらない書き方をしましょう、という提案なんですよね
@をやらない方法は自分自身>216で通過済みで、それがあっての@>199なんです
そこでループしてるなと感じますね
>必要ないことやろうとしてるようにしか見えませんから
複数条件検索の全部終了後の全ファイルパス取得を取得し
それぞれの条件に対応した関数を実行する
ファイル検索に限らずこの部分はほんとに不必要なのかな、とは個人的には思います コールバック実行の方法を現役エンジニアが解説【初心者向け】 コールバックにする理由が1mmもないことにワロタ
複数条件考えるなら条件の優先順位考えて上から実行するだけ
最後にやりたいってことは条件の衝突を管理したいようだけど、今の調子だとバグの温床になるぞ
処理の一つ一つは疎結合にして上から順に処理すべき mp4とmovで重複してるからどちらか片方を消したい、とかじゃないの
そもそものやりたいことが一切書かれてないからこれ以上は何も出てこない
howは出てくるけど肝心要のやりたいことが一切出てきてないでしょ
なら出てくるコードに対しては「はいそうですね」としか言いようが無い
一番トップのメインの主題が隠されてるから、こちらが提案しても「それは違うこれも違う」言ってる小出し人間だ
コレ、外側の他人から見るとお気持ちだけで否定してるクズにしか見えない >>222
>条件2='条件1依存の条件'
これ例えばどんなの?
.mp4と.movの例は依存してないよね? >条件2='条件1依存の条件'
例えば条件1でヒットしたファイル名だとか
読み取った内容だったりとかで条件2の解釈も変わるときとか
NOT検索とか
ヒットしたら条件1でヒットしたファイルをやっぱり操作しないとか(これは条件を逆にすればいいだけですが)
まだありそうです >>233
日本語ももうちょっと整理してくれないと読むのがしんどい
> 「条件1でヒットしたファイル名だとか読み取った内容だったりとか」で条件2の解釈も変わるとき
↑これだと「条件1の検索結果に条件2が依存してる」と言ってるのと大差ないからわからないよ
前段の処理次第で解釈が変わる条件と言ってるものが具体的にどういうものを想定しているかを聞いてる >>227
>処理の一つ一つは疎結合にして上から順に処理すべき
これ大事 >>234
>条件1の検索結果に条件2が依存してる
はその通りの意味でいいと思います
条件1,2は単なるstr型とも限らないので
で、>227さんの言う>処理の一つ一つは疎結合にして上から順に処理すべき
はもちろんのことで、それはもうできたんです
しかし手続き的に条件1とか条件2とか定義するコードの見た目とのトレードオフだと思い
そこでとりあえず>233などいろいろなフィルタを経て、条件に一致するファイルだけをリスト化して
あとでまとめて処理しよう、という形でやってみようという流れがあります > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >> ID:DIwwuwRf
(・∀・)カエレ!!! >>224
このスレの存在意義は質問ですが、あなたは(私も)人の意見を聞くことのできない人種なので、聞いても無駄です。無駄につきあわされる人は腹を立てます。
もしまだ本心から人の意見が聞きたいと思っていると思うなら、下手な抽象化をせず、ソースコード全部公開することをおすすめします。 >>239
>199と>207でめちゃくちゃ公開しているんですが・・
で、>人の意見を聞くことのできない
の全く逆で”人の意見を聞いて”それをヒントに、数レス後に自己解決に近いとこまではきたんです
>209とか>216あたりです(結局、クラス化すればglobalsなんて要りませんでしたが)。
それからは、もう最初の質問の意図と全く違う方向で
逆質問みたいになってなぜかこちらが用途について説明してる感じになってるんですよね
なぜファイルをあとで処理するのかとか、なぜコールバックにするのだとか
そこから派生した以降のやり取りってもう質問でもなんでもなく別の雑談だと思いますよ
質問の本質は単に
ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする
であったわけで、こういう汎用シーンって結構あると思うんですよ
で上級者の方ならリスト化のテクニックもそれだけ経験豊富なわけですよね
しかし返ってきたのはそもそもの
リスト化や検索後の処理の必要性について
え?そこから?みたいな突っ込みをされて正直なところ不思議な感覚でした とりあえず自己解決部分を補足しておくと
最初は、
NOT・アンチなどフィルタ検索部
↓
リスト化
↓
通常の条件検索部
_└→条件1リスト化
___└→(条件2以降のための)ファイル処理
_____└→条件2リスト化→ファイル処理(条件3、4,5など続く)→…
…→ 最終処理ファイルリスト化 → 最終ファイル処理
みたいに分けていました(ただ汎用性はまるでないです)
その後>通常の条件検索部以降の条件1,2…部分と
最終ファイル処理部の条件はかぶるし、NOT・アンチフィルタも条件チェーンに入れることができると考え、
まとめることにしました
で、(処理を指示する情報も含めた)そのリスト化は(質問後に)できました
今は↑のような段階的処理をメソッドチェーンにして
条件とコールバックの依存関係だけをみれるような形なので汎用性があります
res = exSearch('/foobar').fltr(条件1,func1).fltr(条件2,func2)
#条件2は条件1の結果を参照することができるが、
#この部分の補足がコードからは読み取りづらい
res.get_func_list()#[ {"func1":['/foobar/hoge/test.txt', '/foobar/fuga/test.txt']},{},{},,, ]
res.do() # self.fnc1やself.fnc2を使ってそれぞれのファイルを処理する >>236
具体例を聞いてるんだけど?
ないの? それとも出せないの? それは”条件”というワードがどこから始まったかをたどれば自ずと答えは出てくると思いますよ 日本語のコミュニケーションに難があって
君が何を求めてるのかわからないから抽象度を下げて具体例を聞いてるんだけど
それも説明できないようなのでもう諦めるわ 求めている(いた)のは繰り返しになりますが>199や>211ですよ
具体例もソースコードも誰がどう見てもめちゃくちゃハッキリと書いてあります
>1テンプレ推奨のurlも使ってます >>241にある「ファイル検索がすべて終わった後にリスト化して、まとめて最後に処理をする」だけだったはずなのに話が難しく感じるのは何故だろう
俺もやるならメソッドチェーンかなぁ、優先順位が明確だしね
そうするとクラス化するだろうから、コールバックじゃなくて一連のシンプルな処理をメソッドとして実装するかな
.move(条件1).delete(条件2).rename(条件3) >>246
>.move(条件1).delete(条件2).rename(条件3)
条件1を満たしたファイルをmoveして
moveした結果のうち、さらに条件2を満たしたファイルをdeleteして
deleteした結果のうち・・・renameできねぇ・・・
例だからrenameできないのはいいとして
意図としては上に書いたイメージ? PythonのコードをC++に変換するようなツール出てこないかなぁ
Python遅すぎるわ プロジェクト始めるときにどの言語が適切か検討しろよ… >>249
そんなお前はrustかjuliaに行った方が幸せだぞ >>248
そっか
まあ>>246の例だとメソッドチェーンにする意味ないもんね >コールバックじゃなくて一連のシンプルな処理をメソッドとして実装する
決まった処理ならそれが一番わかりやすいですね >>246
.move()
#ここで検索が終わり処理する
.delete()
#ここで検索が終わり処理する
.rename()
#ここで検索が終わり処理する
なのか、
.move().delete().rename()#最後にリストを処理する
か(または混合なのか)はオプションで選択できそうですし
・◯◯ファイルを含むディレクトリ内のファイルは処理しない .ignor(条件)
全メソッド内で、処理をしないディレクトリを総当り?
・.move(条件1)のmoveする予定のファイル情報を読み取り.delete(条件2)の条件2に与えたい
.move(条件1).over(条件).delete(条件2) #元々チェーンだから意味が分かりにくいかも
・リスト化の段階でmove→delete→renameによるファイルの存在有無の変化を考慮する必要性があるか否か
改めてこの辺りの実装をやっていきたいと思います ありがとうございました そもそも、そんな複雑な、2つ以上の条件があるものを、直接削除してはならない!
絶対に、ロールバックできないから
本当は、別のフォルダに、全く同じフォルダ階層を作って、
そこへ削除するものを移動するのが正しい。
その後、検証してから削除するか、そのまま保存しておく
または、すべての階層を丸ごとコピーして、バックアップを作ってから、試すとか
繰り返し途中で削除するのは、非常に危険!
途中でエラーになったら、そこまで処理した分だけが削除されてしまう
データベースで言う、一貫性がなくなるので、ロールバックできない状態になる。
全てが正常終了するか、または、途中でエラーが出たら、すべてが元通りになるべき
高機能なアプリでは、ロールバックできるように作っている 珍しくruby厨がまともなことを言っている
削除は戻せないから削除候補ディレクトリに入れるとかして別タイミングで削除ってのは確かによく使う手だな 個人用途ならRecycleBinやTrashに入れる処理をdeleteってことにすれば十分
販売するようなデスクトップアプリならUndo含めて考えるけどそういうのはpythonでは作らない
途中でエラーが出たら元通りにすべきかどうかも仕様次第
DBと違ってファイルシステムの場合は100%元通りには出来ないケースが出てくる PyScripterでデバッグした時のローカルファイルのパス指定ってどうなってるの?
例えばhoge.py、hoge.mp3が同じディレクトリにあって
hoge.py内でhoge.mp3を再生する時パス名を'hoge.mp3'にすると
コマンドラインでは正常に再生されるけど
PyScripterのデバッグ実行だとWinError6のエラーになる >>258
getcwdでカレントディレクトリをチェックしたらどうかな。
スクリプトのパスはなんかで取れるから、そこからの相対パスと合成するって手もあるよ PyScripterに、スクリプト実行するときにそこにcdするって設定ないのかな? 要約すると、さしあたって必要はないけどスマートなプログラムを書きたいので上級者の人に無料で添削してほしいということです >>260
自分で作っとけ がんがれ
>>261
×上級者
◎俺様の脳内をエスパーできる超能力者かつPythonにも詳しいSSRカード並みの誰か プログラミングスレあるあるだけど
抽象的な質問があると回答→否定されることに怯えている回答者って一定数いるよね
間違えているわけでもないのに妙に回答失敗に怯えているというか
回答が質問者に合わなかったとしても、スレ的には周りから見れば財産にしかならない
上級者であればあるほど質問者の1から「あーハイハイあれのことね」と
10も20も話を展開できるだけの話なのになって思う
悪い意味ではなくアスペなのかもしれない >>264
そういうのはアスペではなく完璧主義と言う >>264
そういうひろがりんぐは
あるあるスレとか雑談スレでやれよ >>264
これは脱初心者したばかりの中級者に有りがちな考え方
質問からあれこれ憶測するのは簡単
ただ経験を積めば積むほど初心者の質問であっても可能な限り憶測を排してニュートラルに解釈しようと努めることの大切さを理解するようになる
そこを理解してない人から見れば否定されることを恐れてるように見えるんだろうが、実際恐れてるのは自身が短絡的思考パターンに陥ることと相手に間違った結論に飛びつかせてしまうこと >>249
マジレスするとそういうツールはあるが
Pythonを単純にC/C++に置き換えても
速くなる訳ではない
Pythonでnumpy使った方がマシだったりする >>264
どこのスレでもアスペみたいな回答者湧くけどそういうことか >>267
結局のところ仕事でもなければ自分に影響しないところにいる奴からの質問に対しても慎重に答えてしまうのは
職業病もあるだろうが結局間違った解決策出して後から教えた奴に間違ってんじゃん大したことねーなと思われたくないからなのであながち間違っちゃいない いや、影響しないどうでもいいやつとほんとに思ってるなら大したことねーなと思われるのもどうでもいいと思う・・w
それに初心者スレの質問レベルでエスパー回答が立て続けに外れるなんて極稀なことだ
密室で一対一で問答してるわけでもないしスレの価値や利用者からすればスレの代謝が良いに越したことはない 言い過ぎだけどエスパーできない人の方がたいしたことねーなと思ってしまう
アキネイターじゃないけど、一発勝負じゃないわけだし
その過程で副産物もあるよね 回答する側に問題がないとは言わないが9割5部以上は質問する側の問題
質問の仕方と聞く耳の持ち方
回答する側はスルー力が試される 今回のやつも最初はそれなりにエスパーレスついてる
それに対して「そうじゃないんです、それはもうできてるんです、やりたいことはすでに書いてあります」って返すから答えるほうはだんだんイラついていってる
質問してるほうは本人的には理解してると思ってることを何度も回答されるし、やりたいことを繰り返し説明しても理解を示して貰えないからイラついてる
この状況でもっとエスパーしたらいいのにって感じるなら頭オカシイよ エスパー回答自体はスレの代謝が上がるので良いと言えるが
エスパーするかどうかは自由なので同列に扱うのはそれこそ頭オカシイ エスパー回答は自由
もちろん慎重回答も自由
ただし初心者スレでは圧倒的にエスパー回答の解決率の方が高い現実w
確実な情報を得てから完璧に俺が解決してやる!と意気込む慎重派が抽象化能力に長けたエスパー回答者に先を越される
そういう嫉妬を産んでしまうのかも ヒソ( ´・д・)ヒソ(´・д・`)ヒソ(・д・` )ヒソ python再入門(一度は挫折)したので、このスレでお世話になるかもしれません。
現段階で特に何も質問とかないんですが、決意表明として勝手に使わせていただきました。
あと、質問と回答のやり取りを見ていれば何か勉強になるかと思って・・・
失礼しました。 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>278
まずは自分の意思で息を30分止められるようになってから出直せばいいよ 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ
☆ VM + ASM を書いた (C#, DX) * x86 ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip はじめまして、写経の修行中のものですが、このプログラムにエラーが出ます
一時間ほど考えても何がダメかわからないので、ダメなところをご教授いただければ幸いです
#1 python3
# pw.py -パスワード管理プログラム(脆弱性あり)
PASSWORDS={'email':'F7minlBDDuvMJuxESSKHFhTxFtJVB6',
'blog':'VmALvQyKAxiVH5G8v0if1MLZF3sdt',
'luggage': '12345'}
import sys
import pyperclip
if len(sys.argv)< 2:
print('使い方:python pw.py[アカウント名]')
print('パスワードをクリップボードにコピーします')
sys.exit
account=sys.argv[1]
if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print(account+'のパスワードをクリップボードにコピーしました')
else:
print(account+'というアカウント名はありません')
エラーメッセージはこんな感じです
Traceback (most recent call last):
File "C:/Users/U/AppData/Local/Programs/Python/Python38-32/pw.py", line 15, in <module>
account=sys.argv[1]
IndexError: list index out of range
>>>
よろしくお願いします :の後の行のスペース4つ分抜けていますが、
自分が入力したやつはきちんとスペースがあります >>284
>if len(sys.argv)< 2:
len(sys.argv)が1だとしたら上の条件はfalse
長さ1だとsys.argv[0]は存在するけど
sys.argv[1]は存在しないのでindex out of range >>286
ありがとうございます
account=sys.argv[1]を
account=sys.argv[0]
にするとエラーなく動きましたが、
本は1になっているので誤植?かもしれないですね
回答したいただいた内容も把握できないので、
もう少し勉強します... >>286
あれ? おかしなこと書いてた
len(sys.argv)が1ならFalseじゃなくTrueだわ
起動するときにaccount名を引数で渡してないのとインデントの問題かもね
$ python pw.py account_name sys.exitできてないのが原因だね
sys.exitをsys.exit()に ありがとうございます
用事が入ったので、後で試してみます! ありがとうございます
用事が入ったので、後で試してみます! x = 0 % 3
print(x)
こうすると0が出力されるのですが、0を分子にして計算した場合にエラーにならないのはなぜでしょうか。
(0で割る、ではなくて、0を割る、という話です。)
pythonはそういうもの、ということでしょうか? 余りがあるとすれば、割り切れているから、余りもゼロ。 0で割ることが出来ないのはわかっていたのですが、「0を割ることが出来ない」って書いてあるサイトがあったので質問させていただきました。
別に普通に出来るんですね。
イライラさせてしまってすみません。 python3.7.6 windows10 anaconda3
Qt designer5.9.7で作成したuiファイルをpyファイルに変換したいです。コマンドプロンプトで下記のエラーが出ます。
C:\Users\・\Desktop>pyuic5 test.ui -o test.py
'pyuic5' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
どうすれば変換できるでしょうか。ど素人です。 ↑すみません自己解決しました。
環境変数で登録したpathが間違えてました。 __truediv__を使えば/演算子を使って0で割ったように見せることができる(文字列)
class slash(object):
_def __init__(self,s):
__self.s = s
_def __truediv__(self, other):
__return [self.s[:other],self.s[other:]]
print(slash('abcdefghi') / 1)
print(slash('abcdefghi') / 2)
print(slash('abcdefghi') / 0)
>>
['a', 'bcdefghi']
['ab', 'cdefghi']
['', 'abcdefghi'] 文字列/2は文字列を半分にすると混同するのであまり使えない print( pjoin('/foo') / bar / a.txt )
>> ./foo/bar/a.txt
これは割りと使える でも0を0で割ると1にならないでエラーになるのは何故? >>308
それは1を含めてあらゆる数が正解になるから
1だけが答えではない >>300
>0を割ることは出来ない
数学的には間違ってるけど、日本語としては必ずしも間違ってるとは言えないとは思うわ そういえば、Pythonnだと
1.0 / 0 = Infinity
0.0 / 0 = NaN
にならないな。 >>315
1/0.1
1/0.0001
1/0.000000000000000001
1/0.0000000000000000000000000000001
どう考えても無限大に発散するだろ 逆に
0.1 /1
0.0001 /1
0.000000000000000001 /1
0.0000000000000000000000000000001 /1
0/1 は限りなく0だろ >>314
JavaScriptはなるわ
1/0=Infinity
0/1=0
0/0=NaN >>316
+のほうの極限は∞だけど、
−のほうの極限は−∞
だから定まらない 25の平方根になるのは5で、google電卓の場合は√25で5が答えとして出ますです
windows関数電卓の場合はどうやるんどすか? 初心者なのですが質問させてください。
明日から夏休みで彼女と泊りがけで熱海に旅行に行きます。
うまくリードするためのコツとかありませんか?
なるべくコールバックは使いたくありません >>321
>>314
JavaScriptでは
1/+0 = Infinity
1/-0 = -Infinity >>311
2+0 0を足す
2-0 0を引く
2*0 0を掛ける
2/0 0「で」割る
ややこしや py2appで作成したアプリって,どうしてサイズが大きくなってしまうのでしょうか?
サイズを小さくする方法はないのでしょうか? Pythonは悪魔手スクリプトでインタープリタが実行してるのに対して
マックドナルドなネイティブアプリにコンパイルして実行ファイルになるんだからアタリメクラッカー >>328
なんとなーく分かりました
たしかにpythonベースのアプリ全般,容量が大きい気がします
諦めるしかないんですね… Pythonスクリプトで作らずに
直接Objective-CかSwiftで開発すればええんやで > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw ソース(サイトから拾ってきてるので間違いは多分ない)は数行でエラーコードが長いものの質問したいのですがありですか?環境の問題だと考えて入るのですが。
エラーコード長すぎてスレに貼れないのでその場合どうするといいですか? >>334
スクショ取ってImgur辺りにアップロードして
ここにリンク張ればとりあえず見れる > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw スクレイピングの本で一番のおすすめは何でしょうか?
これからpython2年生をやる予定です
オライリージャパンのセンザンコウが表紙のはクソみたいなのでやめました >>339
それである程度基礎が理解できるようになってきたら
次は中級者向けで広く浅いライブラリ紹介にとどまるけど
「Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう 」クジラ飛行机
なんてのはどうでしょう?
自分のやりたい事とマッチングするのが見つかるかも? うちもスクレイピングしたくて本買ったけど、結局ネットで調べてる情報でやりたいこと完成したから1ページも読まないまま置いてある
目的が先に達成されてしまうとやる気がおきん… 回答ありがとうございます
とりあえずpython 2年生やって、342さんのをやってみますね
ちなみに今は面倒くさいことはpython にやらせようをやっています
これも結構難しいです
理解には三カ月ぐらいかかりそう 純粋にスクレイピングがやってて面白くない。
ほとんどテクニックだけの世界で。
その点ではWebサーバサイドも似ているけど、こっちはまだ作る楽しみがある。 >>339
pythonのマニュアル
どうしてみんなマニュアルを読まないんだろうね
一番ちゃんと書いてあるのに スクレイピングやるならPythonよりJavascript読めるようになる方が重要だよ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw beautifulsoupでは取れないサイトが多すぎる。
で、結局変化後のDOMに追随できるSeleniumの学習に進むことになるわけだが…
そこまでやるなら、さらにjsとcssも分かってるとくればpuppeteerやtaiko使った方が楽という罠 seleniumを使っていると悪質botとみなしてアクセスブロックするサービスを使う増えてきていて、スクレイピングはいずれ廃れる技術。 seleniumとかは本物のブラウザを操作してアクセスしてるわけで、そんなん掻い潜る方法はいくらでもある。ただしrecapchaに類するパズル解かせて人間か判断するブロックはいかんともしがたいが…
そこは一旦停止させて人間に入力させるようにするしかない 株価のデータを引っ張ってくるにはどうするのがベストなの? 最初から、Ruby on Rails で、Selenium Webdriver が楽。
DB も付いてる
Github Actions のCI のシステムテストで、
Capybara で、Headless Chrome を使うとか Rubyなんて死んだ言語今更やるくらいならPythonでいいだろ selenium自体はJava製で、各種言語向けのドライバーが出ています。
その中で最も人気なのがPython向けdriverで、
最も不人気なのがRuby向けdriverです。 その死んだ言語と比べてもスクレイピングに必要な言語機能もライブラリも劣ってるのがPythonなんだよなぁ
今どきbs4+selenium+pythonで苦労してる人ってちょっと大丈夫?って思っちゃう
実際につかったことなければ苦労も分からないか > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>353
>一旦停止させて人間に入力させるようにするしかない
ここを上手く工夫して
「AIで文字認識の研究にご協力ください」っていう偽サイト造って
そこに問題解く人を大量に誘導する仕組みにして
captchaを人間に代行させる自動化プログラムらしきものを観たことがある >>363
その偽サイトにスクレイピングボットがアクセスしてくるという地獄絵図www 一種の(良心的?)MITMなのでbotにアクセスされても困らないというか
botが来る理由が判らない >>363
2captchaだね。
1000ReCaptchaあたり3ドル取る有料サービス。
現在の平均解決時間は45秒とのこと。 pythonでaccessを実行したいと考えています。
いくつか調べてみましたがさっぱり分からず。。。
具体的にはaccessでファイルを出力する際にボタンをクリックするのですが、その作業を複数回する必要があり、それを自動化したいと考えています。
pythonでデータベースを読む込む必要はなく、その作業だけを自動化したいです。
どのようなモジュールを使えばできるでしょうか?
低レベルな質問で恐縮ですが、お答えいただければ幸いです。 >>367
PyAutoGUIみたいな自動操作系のライブラリを使う > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 辞書でキーが存在しないときにNone返してくれるgetって便利なのあるけど
これの配列バージョンは無いの? 335 336 338
コードもエラーコードも1のリンクあるものに貼り付けるのが正しいのでしょうか?
悩んでいたのですが、コードが人によっては不愉快になるかもしれないのでその質問自体は自粛しておこうかと思ってます。
内容的にはポイ活的なコードですが。
別の質問なのですが、会社のパソコンで休み時間などにPythonを勉強したいのですが会社のパソコンにはソフトのインストールはできません。
ウェブ上でseleniumとかも使えるサイトは無いですよね?
会社でポイ活のコードとか作動させる気はなく勉強用としてです。 普通に家PCをリモートでいいんじゃない、スマホからでもつなげるし >>372
>上半分
質問すること自体が不愉快になるぞ
規約違反チネ!!!(・∀・) 俺もポイ活勢だけどあまりこの話は余所で出さない方がいいぞ
ポイ活自体印象相当悪いからな >>367
win32com を使う
access でボタンを押したときに呼ばれてる関数を探す
win32com からその関数を実行する 373
なるほど。わかりました。
374
環境作ればリモートもたしかによさそうな気がしてきました。p関連は最終的に自分で勉強していきます。
375
すみません。ですが1を読んでもわかりません。 python 3.9がリリースされたらしいんですが
公式見ても見つかりません
誤報でしょうか? 3.9はまだベータ、正式版は10/5の予定
ダウンロードページの真ん中あたりにPython 3.9 Release Scheduleってあるじゃろ a = 0
if True:
_a = 1
else:
_a = 0
print( a )
一行目のa=0ってかならずaが1か0が代入されるのでいらないと思うけどみなさんは書く派ですか?
自分は何の変数があるかどうかぱっとみわかりやすいので書く派なんすけどa以外にも複数変数あるときも書くものかなって。
でも結局最後の行見ないといけないし、やっぱこの変数使わないってなったら編集の面倒さも2倍だなって else には行かないから
a = 1
だけで充分だろ
もし変数観るなら
b = True
a = 1 * b
#aは1
b = False
a = 1 * b
#aは0 >>383
その1や0の部分に他の変数が出てくる時見づらくないですか?
関数型みたいに他の変数の数だけ三項演算子で記述するってことかな?
それなら見やすいと思った
>>384
>else には行かないから
その通りです
なぜならif Trueになっているからです
そこから下はちょっと何言ってるかわかりませんでしたすいません python基本好きだけど、三項演算子とlambdaはブサイクで嫌い >>378 >>385
おまえらまとめて
初心者の質問板 https://matsuri.5ch.net/qa/ へ(・∀・)カエレ!!!
もう二度とくるなよ >>387 なんか見えてきたので間違ってるかもしれないけど一応メモしとく
a=1
b=0
if True:
_a=1
_if True:
__b='1,1'
_else:
__b='1,0'
else:
_a=0
_if True:
__b='0,1'
_else:
__b='0,0'
print(a,b)
こういう書き方のコードって結構見る
if Trueの部分が真偽どちらであろうと結局a,b出力されるじゃんって感じのコード
実際見るコードはaもbも複雑で相互作用しまくってるけど
結局見やすさを追求するなら、変数が出てくる部分をどうにかこうにか関数でやればいいじゃんって思ってきた
f1=lambda n:1 if n else 0
f2=lambda n:1 if n else 0
f30 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f30'
f31 = lambda n1:lambda n2:'('+str(n1)+','+str(n2)+')f31'
f4 = lambda n:1 if n else 0
ab=lambda a:f30(a) if f4(a) else f31(a)
n = f1(True)
a = f1(n)
b = f2(False)
print('a = '+str(a))
print('b = '+str(b))
print('(a,b)='+ab(a)(b))
最終的に使われている変数は何か、が圧倒的に見やすい
いらない変数を削除・編集したときに、削除・編集すべき関数も瞬時にわかる Pythonしか書かない人とCも書く人ではコーディングスタイルが多少変わってもおかしくない
とりあえず出てくる変数は先に宣言した方が見やすかったりするのさ。
後でアルゴリズムを変える可能性を考えると必ず式で一発で評価できるか微妙なときもあるしね。 初歩的なことですまないが、
if True:
って、条件の対象って何? def show_start_menu():
root1 = tk.Tk()
root1.title(u"データ分析")
root1.geometry("400x300")
# Label
Static1 = tk.Label(text=u'分析するデータの個数を選択して下さい')
Static1.pack()
# Button1
Button1= tk.Button(text=u'1データを分析', width=25)
Button1.bind("<button1-1>",print('click'))
Button1.place(x=105, y=60)
root1.mainloop()
これを実行するとウインドウ開くと当時にclickって表示されるんですけどなんででしょう?
button1を左クリックしたらclickと表示されるようにしているつもりなんですが・・・。 >>391
何もないよ
すでにBoolean型のTrueが入ってるから >>391
if文は引数が真であるかを判断するもの >>392
メソッドの引数は渡される前に評価(print()が実行)されてしまうから。tkは関係ない
def clicked():
print('click')
button1.bind('<button-1>', clicked) >>393,>>394
ということは、やっぱり必ず真になって偽にはならないということだよね
デバッグやループのときに使うのはわかるけど、
それ以外で使う意味がいまいちわからなくて
結局件の使い方には意味がないってことでいいの? >>389、>>396
とにかく 是が非でも a=1 にしたいんだろ
そこを通過してくれないと困るんだろ n = f1(True)を n = f1(False)にすればa=0になるし
if True: を if False:にしてもいいし
文脈みればどうでもいい部分だからif Trueにしてるってことくらいわかるでしょ
a=1だけでいいとかはまったくの的外れ コード”のみ”をみれば結果がa=1だからそれを最適化すればいい
とか普通にネタで言ってるんだと思って流してたけど違うのか??
そんなこと言い出したら全角の_でインデント使ってるとこも
エラー出るぞとか言って徹底すればいいのに ガチのマジでアスペいない?
あざといからネタでやってるんだと思ってるんだけどなぁ 初めから知識0からじゃ何も進まないじゃないか
ともかく前提条件が >>1以外の事は考えたくないんだ ↓のような標準入力が大量にあったとして、それをリストに入れたい状況で、
リストを順に命名する方法はありますか?
list_001 list_002 list_003 list_004 list_m の様に増えていくイメージです。
for i in range (m): のような形の処理しか思いつかないのですが、
リストを何らかの順番で規則的に命名する方法がわかりません。
よろしくおねがいします。
--------------------------
123 4 56 789 0123 45 67 8901 .....n list_001
as efef asef fe3 434 ee fea ...n list_002
aseff ae asd ...n list_m >>403
temp_dic={}
forループの中で
temp_list=[]
リストの中身いれてさいごに
hoge="list_"+str(i)#桁揃えのやり方あるけどなんだったかわすれたわ
temp_dic[hoge]=temp_list
でもってさいごのさいごに
またforループでdicから順々に取り出せばえんでねーのかな > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>405
放射能まみれのチョッパリが何をイキガッているんだ?
強姦と窃盗はお前らチョッパリのお得意分野だろう!
慰安婦の方々に謝罪し、徴用工の方々にきちんと賠償しろ
俺たちに口応えするのはそれからだ! >>395
ありがとうございます。
これだと
clicked() takes 0 positional arguments but 1 was given
となりました。引数無いぞコラというエラーですよね。
def clicked(a):
print('click')
button1.bind('<button-1>', clicked)
だとOK。 button1.bind('<button-1>', clicked)
って左クリックをしたらclikedを実行ではなくて、 左クリックをすると
イベント値をclickedにわたすということでしょうか?
クリックをしたら関数を実行みたいにしたいのですがbindを使うのが間違ってる? >>404
ありがとうございます。
なんとかなりそうです。 >>403
execをつかう
要するに、「python 変数 動的 生成」と検索すると答えは出る
Python - pythonでname0,name1,name2・・・のように変数を宣言したい|teratail
https://teratail.com/questions/9130
pythonで動的に変数を定義する - Qiita
https://qiita.com/ytsumura/items/917de811c023ee9f3709
pythonの教科書でevalが全然説明されてないのも問題だ
こういう便利なヤツはバンバン使えばいいのに
そもそもevalとapplyは最重要項目でしょう そもそもlist/dictに勝る点がないので、便利でも何でもない。
デバッグのし辛さとか変なコードの実行などなど。
execなんかよりストレートにglobals/locals使う方法もあるが、
globals()["hoge"] = "Hoge"
print(hoge)
これもexecと同様デバッグがめんどくさくなる。 >>410
すいません自己解決しました。
button1 = tk.Button(root1, text='1データを分析', font=20,command = clicked)
でOKでした。 ずっとanacondaからvscodeでpythonいじってたんですが、
プログラムの規模が大きくなってきたため、統合開発環境をインストールして開発しようかと思っています。
無料の統合開発環境でいいのってないですか? 2次元配列のリストと辞書(一次元)は同じ様に思えるのですが、違いはありますか?
(3.7以前、辞書が順序を保存しなかったときは大きな違いがあったと理解しています。)
それぞれの仕組みが書いてあるサイトはあるのですが、何が違うのかを調べても見つけることが出来ませんでした。
書くのが面倒であれば、説明が書いてあるサイトを貼っていただく形でもありがたいです。
>>412
ありがとうございます。試してみます。 File "C:\Users\NEC-PCuser\.spyder-py3\temp.py", line 23, in <module>
my_data = genfromtxt('SingleECG.csv')
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)
File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)
グラフをプロットしたらこのようなエラーが出ました。解決方法を教えてください > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 今どきWindowsに直でPython入れてる馬鹿はくたばっとけよ >>417
1.Spyderを1回でも起動するとホームフォルダに「.spyder-py3」というフォルダができています。
Windowsの方は、ご自分のデフォルトのホームフォルダに「.spyder-py3」ができていることがわかります。
OSXの方は、ホームフォルダ直下に、不可視フォルダとして存在しています(見えません)。Finderの「移動」メニュー→「フォルダへ移動」をクリックして、「フォルダの場所を入力」に「.spyder-py3」と入力し、Returnキーを入力します。
2.このフォルダの中に、「spyder.lock」というファイルを探してください。このロックファイルは通常Spyderの起動時に自動的に作成され、終了時に自動的に消去されます。ところが、何らかの理由でこれが残ってしまった場合、spyderを新たに起動できなくなります。
3.spyder.lockをゴミ箱に入れて削除します。
4.再びspyderの起動をおこなってください。 >>417
>>1をよめ まもれ
はなしはそれからだ >>403
n行目のリストにlists[n]でアクセスできれば十分だと思うんだけど
どうしてそれぞれの行にわざわざ変数名を付けたいの? >>424
webからpytonで取得したデータをcsvかxmlで出力して、
他のデータと合わせて処理したいというのが今の狙いです。
今の所excelで最終的に処理しようと思っていますが、もう少し勉強しないとそのアプローチが正しいのかもわからないです。
プログラム自体完全初心者で、初めて1週間程度なので分かっていない部分が非常に多いことは自覚してます。
pandaとかnumpyとか色々あるようですが、その辺りが理解できれば別のアプローチを考えるかもしれません。 質問にキチンと答えられていなかったので補足すると、
csvで出力した場合に他のデータとマージしたりする時に、
各行ごとに順番で名前がついていれば処理しやすいと思った、というのが理由です。
根本的な発想が間違っている可能性もありますが、その点は申し訳ないです。 単純に順番でなのであれば、>>424が言う様に2次元配列でいいと思う
>>> list=[["a","b","c"],[0,1,2],["あ","い","う"]]
>>> list[0]
['a', 'b', 'c']
>>> list[1][1]
1 >>426
変数名そのものを変数で定義したり外部に出すのはとてもむずかしい
(できなくはないが普通はやらないので特別な方法をとる必要がある)
dictを使うのが正解で
それならitems()で変数名と中身の両方にアクセスできる 変数名っていうかキーね
まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない 皆様、色々教えて頂きありがとうございます。
>まぁ普通はそういう変数を変数で命名するのはpython以外の言語でもしない
なるほど。
それでも世の中うまく回ってるってことは、私みたいなアプローチをする必要がないんでしょうね。
辞書とか多次元リストを試してみます。ありがとうございました。 >>425
それで、それぞれの行に変数名を付けたい/付けたほうがよさそうと思った理由は? >>426
そういう理由であれば変数名じゃなく値として行番号を持つデータ構造を選ぶか
csvに出力するときにlists[n]のインデックス値を行番号として出力するようにすればいい
変数名は入れ物の名前で
基本的にプログラムに固定値として書く(ハードコーディングする)ものなので
動的に変わるような値は変数名にはしない
(メタプログラミングとかやや特殊な使い方をしたい場合は除いて) しかし初めて1週間にしてはやろうとしてることがハイレベルだな。
才能あるんじゃない? conda activate "C:\Users\takashi ishida\Anaconda3"
conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識
されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから
、再試行してください。 >>436
すいません。途中で送信しました。
anacondaのvscodeで開発したプログラムを他で実行しようとするとこういうエラーがでます。
condaコマンドって使った覚えがないのですが・・・。 >>437
同じディレクトリに.vscodeってあって、それまでコピーしてきてないか? >>435
才能があるとは思わないですが、面白さにハマって一気に勉強してます。
あと10年早くプログラミング開始してれば絶対にエンジニアに転職してたと思います。
キチンと使えるようになれば相当色んなことが出来ますね。
暇つぶしにゲームとかやってないでpythonやってりゃ良かった・・・ >>392
既に米付いてるけどもうひとつ
Button1.bind("<button1-1>", lambda : print('click')) >>436-437
「他」とやらに
.pyだけもってきていて
anaconda入ってないとかいうオチじゃねーの?
>>439
オラも
暇つぶしにプログラミングなんてしてないで
ボカロの調教か3Dモデリングしてればよかったとか
そも建築学科いってればとか
いろいろ思うだーよ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 文字列を整形するスクリプトをいくつか使っているんですが
手軽に使いたいので整形前の文字列をinputで入力するようにしています
でも文字数に制限があるらしく長い文字列だとエラーになってしまいます
やっぱり横着しないでファイルから読まないとダメですか? >>443
限界数の文字列をまず受け取る
しかるのち
とった分をhogeみたいなのに代入しておいて
続きを入れろと促すメッセージを出し、
受け取ったらhogeに足す。
(以下略)
途中で打ち間違えたら困るので、普通にファイルから受け取るほうがいいぞ >>444
なるほど!と一瞬思ったけど
文字列が限界突破してるかどうかの判断はどうやるんでしょう? >>445
input関数の上限はたしか1024文字
ためしに1025文字打ってみ input使うほうがめんどくね?
for line in sys.stdin:
print(line)
data = sys.stdin.readlines()
data = sys.stdin.read() 俺氏のレベルが低すぎてわからなかったが
限界のちょい前で区切れば良いのか
これはちょっと時間があったらやってみようと思う
ありがとう
>>447
個人的にはスクリプトをダブルクリックしてプロンプトに右クリック→エンターが楽だな
テキストファイルを編集するのが地味に面倒い 面倒くさいからクリップボードにコピーしたあと
pyperclipでクリップボードを読み込んでそのまま処理させてる というかpythonってjavascriptで言うところのtextareaみたいなのないの?
だったらブラウザのdriver使って入力するとか
そもそもtextエディタのdriverがあったりして >>452
そんな事がしたい奴はJupyterを使う >>452
textareaはHTMLだろう
ブラウザのdriverってなんだよ?
そもそもtextエディタのdriverとか
ちょと何言ってるかわかんない >>453
そうなの?
数値とかデータだけ収集したいならそれでいいけど
文字列を整形するってなると、どこかのサイトからコピペみたいな用途もあるかな、と
>>454
たしかに、htmlタグだった
chromeドライバーとか、使い方の変数もdriverってなってるしdriverって言っていいかなって。
driver.get("index.html")みたいにして、テキストエリアに挿入
pythonで受け取って処理、みたいなことができると思った
というか既存ウェブサービスであれこれしたいときは普通に使ってるし >>455 自動化のRPA Selenium のドライバーとかと混乱してない?
driver.get ってSelenium の機能じゃないの?
Python でもSelenium は使えるよ。 >>456
>Selenium
うん、もちろんそうだけど。。
Seleniumでchromeドライバ読み込んで
>>443
スクリプトをダブルクリック → driver.get("自分で用意したtextarea.html")
→ テキストエリアに右クリック(文字列コピペ)
→ pythonが変更を感知して文字列を読み取る
→ 文字列成形処理(textarea.htmlで何かしらの操作をやってもいい)
→ ウィンドウclose
みたいにすれば文字数制限なしの右クリック(コピペ?)→エンター必要なしのお手軽inputの代わりになるのでは、ってこと >>457
おまえの過去レスから
なぜそこまでエスパーしろと
おれらに要求するんだwww
(・∀・)カエレ!!! おれとしてはそんなことよりもなんで>>447の方法じゃだめなん?というのが気になってる inputってOSとかターミナルに依存せんの?
その1024っていうのも文字数なのかバイト数なのかよくわからんし。
いままで意識したことなかったけど、意外に短かいもんだな。 漏れは、Ruby で、クリップボード経由で、文字列を変換している
さらに、バッチファイルに、ruby .\script.rb と書いて、
ダブルクリックで、そのプログラムを起動できるようにしている
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end >>462
さっそくやってみた 良いね
from tkinter import *
root = Tk()
root.geometry('240x120')
e = Entry(root, validate="key", validatecommand=(root.register(lambda p:[print(''.join(p.split())),root.quit()]), '%P'))
e.grid()
root.mainloop() https://murashun.jp/blog/20200113-51.html#chapter-3
フォルダ名の一覧を取得したいのですが、ファイル一覧を取得してからフィルターをかけるしかないのでしょうか?
4行目なんですが、このcmdライクな書き方が良くわからないのです。 f for f とは何でしょうか?
↑牡蠣忘れました >>465
内包表記
[ ”条件1がTrueのとき” for f in files if "条件1" ]
else使いたいときは書き方が変わってifが前にくる・・
[ ”条件1がTrueのとき” if "条件1" else "条件1がFalseのとき" for f in files ]
例
files = ["a","b","c","d"]
#条件1=Trueだったとき
print( [ "条件1がTrueのとき f = "+f for f in files if True ] )
#条件1=False だったとき
print( [ "条件1がTrueのとき f = "+f if False else "条件1がFalseのとき f = "+f for f in files ] ) リスト内包表記までは便利だけどifに複数条件からめるとかえってややこしくなるので複数行にしてる
タプルのリストの重複チェックとかは定型文的に使ってるわ 改造してみます
ありがとう
リネームに使いたいです リスト内包表記の方がfor文の処理速度が速くなるらしいけど読みづらすぎ&書きづらすぎるわ
リスト内包表記を使わずに速度を処理速度を速くする方法を作って欲しい 見慣れの部分もあるだろうけど明らかに見難いと思う
ただ結果的に何が出力されるんだ?
という部分に着目し簡潔に書く、そのために(無駄を省いたり関数にしたりして)
工夫せざるを得ない状況を作り出すための方法としてはありかも pandasで読みん込んだテキストファイルの先頭から指定した行まで削除は出来たのですが、最後から指定した数行だけ消すやり方がよう、分かりません
行数がころころ変わるのでrangeでは消せないのです
お知恵下さい globで取得したファイルのリストの最初のファイルを取得するにはどうしたらいいでしょうか?
file = glob.glob("fold/*")
for i in file:
print(file[i])
TypeError: list indices must be integers or slices, not str
こういうエラーが出ますが、fileはリストではないのですか? file = ["one","two","three"]
for i in len(file):
print(file[i])
テスト用に作ってみましたが、これだとnot iterableになります
iが繰り返しに使えないとはどういうことでしょうか
インデックスは繰り返せるはずですが、、、 >>476
fileはリストだけど
iは?
エラーメッセージ読めよ >>476
リストをループすると、iにはイテレーターじゃなくて、リストの中身が入る
file = glob.glob("fold/*")
print(file)
for i in file:
print(i)
実行j結果
['fold\\aaa', 'fold\\bbb']
fold\aaa
fold\bbb
だからfile[i]にすると、文字列を使ってリストにアクセスしようとするからエラーになる >>477
これはPythonの記法的な問題
for i in 3みたいな書き方は出来ない
エラーメッセージでTypeError: 'int' object is not iterableって書いてある通り
file[0]、file[1]、file[2]みたいにアクセスしたい場合は>>479の書き方にするか
rangeを使う
file = ["one","two","three"]
for i in range(3):
print(file[i])
実行結果
one
two
three さらにenumerateも便利、同時にインデックスとれる
files = ["one","two","three"]
for i,n in enumerate(files):
_print(i,n)
>>>実行結果
0 one
1 two
2 three ↑ありがとうございました
インデックスではないんですね
range(len(file))を使いますです 超初心者スレとはいえ、ちょっとこれは酷すぎるだろ
知的障害を疑うレベルだわ 下手な教え方するより一回チュートリアルやらせたほうが、結果的には近道になるパターン >>469
入れ子になってたりタプルで複数の値を渡してたりしたら読みづらいときもあるけど、
慣れたら別に読み辛くないよ。
読み辛いなと思ったらforの前に改行を入れてみるとわかりやすいと思う .py実行したら出てくるcmdやターミナル画面ってあるけど
これをtkinterみたいなGUIウインドウの中に入れたり(そう見えてるように重ねたり)追従させたりできる?
tkinterのウインドウつまんで動かす時、一緒にターミナル画面も動いてきたらいいのにと思ったんだが pathlibをインポートするとglobはインポートしなくていいのでしょうか
モジュール同士の継承関係がわからないですが、参考ページありませんか? >>487
何をしたいかに依るのでは
from pathlib import *
#実行する.pyと同じ階層のファイルとディレクトリ一覧取得
#str()でファイルやディレクトリの絶対パスの文字列を取得できる
print( [ str(p) for p in Path().iterdir() ] )
#つまりその文字列を扱いフィルターをかけることもできる
#ファイルネーム・ディレクトリネームの文字数が20以上だけフィルタリング
print( [ str(p) for p in Path().iterdir() if len(p.name) > 20 ] ) >>487
importするのに通常は依存継承関係とか余計な事は考えなくていい
ファイルが違えばスコープも違うのだから必要なモジュールならとにかくimportすればいいだけ xの値に反比例して1から0まで直線的に減少していく値yが入った
value_y[x]
があって、家などの画像の上に、value_y[x]に比例したピクセル値を持つグレー画像を重ね合わせて表示させたいと思っています。
(左端はグレーで家は見えなくて、右側に行くにつれて段々とグレーが薄くなって家の画像が見えてくる感じ)
openCVとか使えば出来るかなとおもうのですが、重ね合わせようのグレー画像のうまい作り方があったら教えて下さい。 イテレータとリストと配列の違いってなんでしょうか?
かんたんな例え、はありませんかね、、、 厳格な型制御をするC#から勉強すればそんなアホな質問は出てこない。 >>493
なぜPythonでやる必要があるんですか
GIMPやINKSCAPEの使い方覚えた方がいいんじゃない?
>>494
イテレータは反復子現在地ポインタ
リストはインデックス番号のある配列の一種
配列は並べられた複数の箱 >>496
pythonで数値計算したあとの出力なので出来ればそのままpythonでとおもったけど結構めんどくさそうですね・・・。 for x in range(width):
span=(width-x)
if span>10:
span=10
fig.axvspan(x, x+span, color="red", alpha=float(lr_y[x]/10))
の
span=(width-x)
if span>10:
span=10
のところが冗長な気がするのですが、一行でうまく記述できないでしょうか? Opencvで
画素ごとに画素値舐めてってyの値に比例して画素値減衰させればいいんじゃないの? for x in range(width):
end = min(width, x + 10)
fig.axvspan(x, end, color="red", alpha=float(lr_y[x]/10)) BeautifulSoupでスクレイピングやったらうまくいったけど
10ページ分やろうとしてforで回したら
どうやら非同期(同時に)10ページ接続してる気がする
1ページ目終わったら(+sleep)2ページ目
ってやろうと思うけど、javascriptのjqueryでいう$.ajaxみたいなやつ教えてください と、思って改めてやったらどうやら接続が早すぎて同時接続してるように見えたっぽい
自己解決? お騒がせしました
sleepだけでよさそうですね >>493
重ね合わせはnumpyでグラデーションの画像作ってから
openCVで元画と重ね合わせって感じでできる グラデかけるのなんてimagemagickで簡単に出来そうだが >>502
無能がスクレイピングするとDos攻撃とみなされて裁判沙汰になるからやめとけ 私は某サイトで無謀なスクレイピングをしてアクセスバンを食らった。 txtlとして保存するだけだけどキャッシュ機能作った >>506
ちなみにスクレイピングするときの無能有能の線引きみたいなものは?
もちろんAPIあるとことかスクレイピング禁止のとこでやるのは問題外として 最近?だと図書館だかでスクレイピングしてた人が開示されてたけど
あれ結局どうなったんだろう
当時はめちゃくちゃ失笑されてたけど
もちろん図書館側が スクレイピングの解説してる記事読むと、アクセスの間隔は1秒位は開けましょうとか言ってるけど、
どれくらいの頻度でアクセスしていいかなんてそのサイト次第だから。
自分はバン食らった後で利用規約読んで真っ青になっちまったよ。 まぁノーログVPNでもかましとけば表沙汰になってない程度のことってのがなんとも感慨深いですな >>510
岡崎市立中央図書館事件ですか
昨今のコロナ騒動でつくづくと思うのですが、技術的な事実と意思決定を行うものとの間隙が広すぎるのが、いろんな点で問題を複雑にしてしまっているのが最近の事例ですね
私は図書館側も責めることができません、だって図書館側の誰一人として、この件の技術的事実を当時も理解できなかったろうし、将来の時点においての理解可能性も期待できませんから 例の図書館の件、実際に業務に支障をきたすようなレベルだったんだろうか。
それなら図書館の言い分にも理があるかもしれない・・・
とか思って調べたら、「1秒に1アクセス程度に調整」だったのか・・・ >>516
業務に支障はあったらしいですよ、プログラム側がバグっていたから‥‥ >>509
まあ「加減」ってやつを常識の範囲でコントロールするかどうかだな。アホは加減を知らん。 正確には加減を加える方法を知らんから恐ろしいコードをそのまま実行してしまう。 こっちが常識的に振る舞っているつもりでも、
相手が変な人かもしれないというリスクは常に存在するわけだ。 一般的には程度の低いバカの集団を相手にしてると思って間違いない
わたくしに比べれば他人の半分はアホだ
そういうのが相手だ
そういうノータリンに技術的な話は全く通じない
お涙頂戴の情緒的なお話しか通じない >>518
真のアホなのはスクレイピング側ではなくて、三菱電機側なのでは? >>502は
・10ページ程度
・1ページずつ
・sleep挟む
慎重かつコントロールしようとしてるけど
それに対して「加減を知らん」ってのが今一わからんな
ようするに
>Dos攻撃とみなされて裁判沙汰
って言いたいだけでそれこそ加減を忘れて、説教したかっただけでは robot.textも詠んでない奴は無能だからスクレイピングすんな逮捕されるぞ >>524
その robot.txt は「結果的に国立国会図書館のクローラも受け入れを拒否しており違法状態となっていた」そうですよね… パスの指定方法を教えて下さい
txtファイル一覧を取得したいです
pathlib.Path("*").glob("*.txt")
これだと取得出来ていないようです
フォルダ部分のアスタリスクが良くないようです
fold1
├fold1-1.txt
└fold1-2.txt
fold2
├fold2-1.txt
└fold2-2.txt 君さぁ、一連のループ処理の質問してる人と同じ人?
pathlibの公式ドキュメント読んだ上でその質問なの?
https://docs.python.org/ja/3/library/pathlib.html そんなもん読むよりぐぐったり聞いたほうが早い(読むなとは言ってない)
ソースコード読みたくなったときにドキュメントを全部読むと良いと思う
全部読んだ人は読むべき場所だけをわかってる
全部読んだことの無い人は読む必要のないところを知らない まぁ初心者でpathlib程度なら読むだけなら数時間もかからないだろうが
よくよく質問とかを見ればpathlibというよりもpythonの文法やら表記法で苦戦してるって感じじゃないか Pythonは公式ドキュメントがクソだからね
初心者には厳しいよ
逆引き的なサイトを見るほうが賢い ステップ関数とシグモイド関数とLeRU関数を一つのグラフにするやり方がわからないです
fig.savefig()
で保存してpreviewをしても真っ白でした >>535
固定?3^3=27?
Pythonはconst定数ないんだっけ? > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >> 532
これなぁ
チュートリアルはいい出来だと思うが、リファレンスとしては本当にひどい ファイルの書き込みがダブルブッキングになりそうなときっていい感じに勝手にpython側で処理してくれるの? >>539
やってみたら分かるけど、後にオープンしたほうが優先される >>540
そもそもテストの仕方がわからないけどこれでええんやろか
with open('hoge.txt', mode='w') as f:
f.write('a')
with open('hoge.txt', mode='w') as f:
f.write('b')
with open('hoge.txt') as f:
print(f.read())
たしかにbだけしか更新されてなかった・・
つまりは同じファイルをアッチやコッチで更新してたときに
with open閉じるまでに処理が重なって同時更新した場合は、
後が優先され前のデータは書き込みできていないってことかー・・ と、おもったら上書きモード"w"になってただけだった
"a"だと普通に追記になったわ
上書き書き込み、というより、追記
がやりたいことだった >>539
追記のときもwith openがほぼ同時に処理されるなんてことはあるのだろうか モジュールとクラスでは、モジュールのほうが大きいんですよね? >>542
バッファリングがあるからそんなに単純じゃないよ
同時に処理されるかどうかは確率的にゼロでなければ長期間運用してたら起こる可能性はあるので、その可能性があるならバッティングの処理が必要
一般的な方法としては空のファイルを作ってそのファイルが存在するかどうかで判断する
他の方法としてはsyslogやデータベースを使って、その処理は既存の仕組みで対応する >>544
sleepしてって考えてたけどsleep終わったあとに同時になったら・・とか思ってたが
>空のファイルを作ってそのファイルが存在するか
(これも存在確認後に、ってのがちょっと気になるが)
>syslogやデータベース
なるほど、あまり気にせず既存のを使えるのはいいな
とりあえずは余裕をもって確実に順次実行できれば一般用途では大丈夫ってことかな
あんがと ライブラリ ← パッケージが詰まってる
└パッケージ ← モジュールが詰まってる
└モジュール ← クラスや関数が詰まってる モジュール名.py >>541
withを使えばその動作は予定通りなのでは?
普通にopenしてcloseするまえに処理の競合が起きれば、また違った動作になる >>515
安全靴で丸坊主で歩いてるだけで逮捕だもんな
狂ってるわ >>544-545
セマフォの役割にはmkdir()が良いってどっかで聴いた perlの時代から有る手法で、ご丁寧なことに、被らないユニークな名前を生成してくれるモジュールまで存在していた >>548
そう
ただ、デバッグのやり方がわからなかった
例えば
with open('hoge.txt', mode='w') as f:
_f.write('a or b')
のa.py、b.py2つ用意して
a.pyとb.pyを同時に何万回も起動実行したりとかすればいいのかなと
>>511
なるほど >>553訂正 mode='w' → mode='a' >>536
Python で定数を定義する
https://maku77.github.io/python/syntax/const.html
Python には、C/C++ の const のような、定数を定義するためのキーワードは用意されていません。 https://i.imgur.com/z8LRR8K.jpg
ステップ関数をグラフにしようとしてこうやったけどならないんだけど間違ってる??
保存先の13.svgをpreviewしても真っ白になる >>559
ステップ関数ってy=0とy=1が同じx座標になる関数じゃないの?
ズレてない? 今まで一つのファイルにつらつらとコードを書き連ねてたから、分割しようとしたらま〜苦労した
ライブラリとかモジュールとかただコピペして使ってただけだから、from〜importとimportの違いもよくわかってなかった
独学で必要な情報だけつまみ食いしてると基本的なことが抜け落ちてて補完が大変だ… フレームワーク使って簡単なウェブアプリでも作ったらいい
構成からテスト、デプロイ等々、一通り網羅できるでしょ https://imgur.com/gOoCERA
https://harigami.jp/cd?hsh=1e894b6f-d705-405e-9987-613886c9e6c5
Pythonとmysql-connector-pythonについてです
MySQLで画像のようなテーブルを作成し、売上が100以上200以下の社員数を営業所ごとにカウントしたいです
sql_1は期待する結果を得られていますが
sql_2やsql_3のようにプレースホルダーを使うと何も取得できません
変数でテーブル名や数値などを動的に使いたいです
プレースホルダーを使ってsql_1を実現する方法を教えて下さい > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw Ruby on Rails なら、
売上.where( 売上: 100..200 ).joins( 社員 ).group( 社員.営業所 ).count
Rails みたいなフレームワークを使わず、自分で文字列で、SQL 文を組み立てると、
SQL injection され放題になるけどw 【構成】
hoge_sample
├main.py
└packages
├__init__.py
├sample01.py
└sample02.py
【main.py】
from packages import *
a = smpl01(1,2)
print(type(a))
print(a)
#print( dummy(1,2) )
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01", '''"dummy"''' ]
【sample01.py】
from .sample02 import smpl02
def smpl01(a,b): return smpl02(a+b)
def dummy(a,b): return b-a
【sample02.py】
def smpl02(s): return str(s) 疑問点 >>570
(1)
【main.py】でpackages内モジュールのクラスや関数を使う時
smpl01という名前を知っていることが前提
せめて「sample01をインポートしましたよ」みたいなマーキングは必要か?
それとも【packages】みたいなパッケージのディレクトリ名から、把握しているのが前提か
(2)
packagesのサードパーティ製モジュールのimportは相対パスで指定している
デバッグのために【sample01.py】を直接起動させると
smple02が使えない 訂正 >>570
【__init__.py】
from .sample01 import *
__all__ = [ "smpl01" ] #["smpl01","dummy"] まずtableがデータベースのテーブルではなくカラムになっていて紛らわしい
通報されるレベル
cursor.execute()の前にcursor(prepared=True)を実行しているか分からないが大丈夫か?
> cursor.execute(sql_2, (table, table, x_min, table, x_max))
は問題がないように見える
> cursor.execute(sql_2, (table, x_min, x_max))
は%sと引数の数があっていない
> cursor.execute(sql_3, {'table': table, 'x_min': x_min, 'x_max': x_max})
はこの文法が通用するのは比較的新しいPyMySQL(0.7.9以降?)だがバージョンは大丈夫か?
https://github.com/PyMySQL/PyMySQL/blob/73c22c78d14466a5ed8029ef67ca11198234913e/pymysql/cursors.py#L158 >>571
(1)は言いたいこと良くが分からない
アスタリスクが全ての元凶のように見えるが・・・
この構成の作り方だと
packages.sample01 … module
packages.sample02 … module
packages.smpl01 … function
がmain.pyからは見える
(2)は相対インポートがパッケージ内でのみ機能する記法だから
直接実行すると相対インポートがエラーになる
回避方法は
python -m packages.sample01
として実行する方法だが、上記の構成で__init__.pyが定義されているため警告はでる >>574
>python -m packages.sample01
d できた
なぜか警告も出なかった
(1)は最初
from packages.sample01 import smpl01
にしてたけど他にも使いたいモジュールが出てきたら
fromなんちゃらの行が【main.py】に延々追加されていくので
それなら__init__.pyの方に纏めておいた方が見やすいのか?と思った >>573
こんな書き方できるのか。知らんかった
mysqlclientで順番に値を放り込む方法しか使ったことないや >>577
カラム名を%sにするとだめみたいよ
置換フィールドで放り込んでやるとうまくいった
sql_4 = "SELECT 社員.営業所, COUNT(売上.売上) " \
"FROM 社員 LEFT JOIN 売上 " \
"ON 社員.社員ID = 売上.社員ID" \
"WHERE {table} BETWEEN %s AND %s " \
"GROUP BY 社員.営業所".format(table='売上.売上') >>575
python -m packages.sample01
で警告が出るのはpythonのバージョンのせいかも知れない(python3.7では警告が出た)
この方法では
packages/__init__.py
がまず読み込まれ、その後
packages/sample01.py
が実行される
__init__.pyでsample01.pyを読み込んでいるので、sample01.pyは2回読み込まれていることに注意
__init__.pyにまとめることは普通に良くやるしpackages/__init__.pyの中でアスタリスクを使うことも良くやる
ただしmain.pyでアスタリスクを使うのは行儀が悪いように思う
fromナンチャラの行が増えるのが嫌いなら、メモリは食うけど
import packages
とした方が心の健康によさげ >>577,578
>カラム名を%sにするとだめみたいよ
これが全て >>579
>2回読み込まれ
あーやっぱりそうだったのか なぜか2倍printされるので。。
>ただしmain.pyでアスタリスクを使うのは行儀が悪いよう
なるほど >>578
できました!やったーありがとうございます 実用的でないPythonプログラミングを買いました。
VisualStudio2017とかでできますか?
皆さんオススメの環境を教えてください。
Pythonのバージョンは3.5らしいです。
(まだちゃんと読んでないけど) Windowsなら
Python: Anaconda
エディタ: Visual Studio Code (VisualStudioではない) >>583
AnacondaPrompt
エディタはNotePad++ >>584
>>585
有り難みが強い。
参考にさせていただきます。 イテレータとリストの違いですが、イテレータは処理途中の状態を記録できるという点が違うのでしょうか? 違う
君が言う後者の機能は generator
リスト は全部メモリに確保されたもの
イテレータ はメモリを占有せずに順番に値を取得
generator は処理途中の状態を記録できる
イテレータの実装に generator が使われているかも知れないが別の概念 作り置きと、注文の都度作るかの違い
作り置きは、置き場のスペースが必要 foo = [1,2,3]
foo_iter = iter(foo)
next(foo_iter) #=> 1
next(foo_iter) #=> 2
next(foo_iter) #=> 3
next(foo_iter) #=> StopIteration
イテレータはnext()が呼ばれたら次の要素を1つ返すオブジェクト
内部でどこまで返したか覚えておく必要があるので状態を記録してるかというと記録してる
for x in foo: って書けば
iter(foo)して、next()を呼んで、得られた値をxに代入して、loop内の処理へ渡してる
ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
ジェネレータではないイテレータは1つ1つ値を生成するんじゃなく
すでに用意されたリストなどから順に値を1つずつ返すもの
なので作り置きから注文の都度1つずつ返すのもイテレータ 何故pathで取得したパスは、iterdirなどを使ってジェネレータにする必要があるんでしょうか?
ササッとリストでも取得してくれればいいんじゃないですか?
フォルダのファイル一覧を取得する場合、
パス→ジェネレータ生成→リスト化という手順を踏まないといけないみたいです
パス→リスト
でいいような、、 一言で言うと「yieldがあるのがgenerator」 >>593
項目が超巨大になったときにリストの実態返されたら悲しいことになる
ジェネレータなら、あれ?なんかでかいぞ、止めよう、ができる >>596
な、なるほど
そこまで巨大なファイルを扱ったことはなかったので、必要性が分からんでした やっぱり強制的に教え込むべきだ
業界が先祖返りしてる
計算機プログラムの構造と解釈 第二版
https://sicp.iijlab.net/fulltext/x350.html >>592
> ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種
逆でしょ
「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
>>588とかも勘違いしてる >>598
先祖還りって言うか
もう3周目とか4周目だろう >>599
逆じゃないよ
>「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」
こういう味方があっても別いいとは思うけど一般的ではない
>ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある
yield 乱数生成()で値を返すジェネレータがあったとして
何回yieldしたかとかloop条件を満たしてるかどうかとか
なんらかの状態を内部に保持することになるよね? ループの返り値を内包表記を使用して変数に挿れるのと、普通にループで記載する場合では何が違うんでしょうか?後者だとグローバル変数が必要になると思いますけど。 >>601
> こういう味方があっても別いいとは思うけど一般的ではない
いや、なんの根拠もないお前の定義を一般的と主張されても困るよw
イテレータは必ずジェネレータだけどイテレータでないジェネレータはあるだろ(その例が乱数発生器)
> yield 乱数生成()で値を返すジェネレータがあったとして
> 何回yieldしたかとかloop条件を満たしてるかどうかとか
> なんらかの状態を内部に保持することになるよね?
そりゃ、そういうジェネレータならそうだろう…
内部情報を保持しない例に保持する奴持ってきて何を言いたいんだ? >イテレータは必ずジェネレータだけど
どこからこんな解釈が?
pythonのイテレータはイテレータプロトコルをサポートするオブジェクトのことだし、
ジェネレータは呼ばれたらイテレータを返す関数のことだろ。 >>604
日本語のWikipediaの間違った記載を鵜呑みにしてるっぽいね
https://ja.wikipedia.org/wiki/ジェネレータ_(プログラミング)
英語版も見るといいよ
https://en.wikipedia.org/wiki/Generator_(computer_programming)
疑似乱数生成器(Psuedo Random Number Generator)の名前にジェネレータが含まれてるからといって
それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから >>606
>それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから
それらが”すべて”プログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないね
ジェネレータのものもあればそうでないものもあるということ >>605
>イテレータは必ずジェネレータだけど
逆ぅ!
>>> import collections, types
>>> issubclass(types.GeneratorType, collections.Iterator)
True tkinterでmainloopする前に無限ループ処理をしたいのですが
無限ループ処理Aをするとmainloop()できない
mainloop()を先に、無限ループ処理Aを後にすると、無限ループ処理Aできない
という板挟みになりました
どうしたら良いのでしょうか
import tkinter as tk
import time
while True:
_print("処理")
_time.sleep(1)
root = tk.TK()
root.mainloop() クラスの使い道がわからん
数値や文字を関数に放り込んで値を出して表示する
これだけでやりたいことが全部できてやることがなくなった >>611
root = tk.Tk()
def mokomoko():
処理
root.after(1000, mokomoko)
root.after(1000, mokomoko)
root.mainloop() >>612
そのとおり
クラスなんかなくても何でも書ける
ただしクラスという抽象化手段は、単に書けるという以上のものを目指すときに使う
例えば再利用とか >>611
まずはかんたんなアナログ時計から作った方がいい >>613
できました ありがとうございます
ついでにボタンを追加してみたのですが
処理中はなぜかプッシュ感がありませんでした
ボタンクリックしても押し込まれるアニメーションが出てこない(処理が終わった瞬間、処理前に押したときのボタン処理がドバーッと実行される)のですがそういうものなんでしょうか >>615
とりあえずストップウォッチのコードを眺めてみることにします 何かしらPythonでなければならない理由があるならともかくGUIならC#で作った方が楽じゃないか? >>616
細かい所を拘るなら
PySimpleGUIとか別ライブラリを使うのも手
(tkinter自体は大昔からあるやつだから、モダンな物を作ろうとするとちょっと大変) https://ideone.com/h4QkaK
とりあえずストップウォッチを参考に書いてみましたが
やはりボタンのプッシュ感がありません
なぜでしょうか
明らかにroot.afterの行が原因で止まっているんだろうな、という感じです 複数フォルダの先頭ファイルのみ取り出すにはどういうロジックにしたらいいんでしょうか?
フォルダのインデックス0を取り出したあと、各々のフォルダの中でファイルのインデックス0を取り出すという手順になるでしょうか あ、違いますね。
フォルダのインデックス0という点は間違いです。フォルダ構造です。
フォルダ1
┗ファイル1
┗ファイル2
フォルダ2
┗ファイル3
┗ファイル4 自己解決したかどうかわかりませんが(意図した処理と同等かよくわからない)一応ボタンが常にプッシュしてくれるようになりました >>621
https://ideone.com/GOuxDw >>623-624
その子供ファイルたちの「一番目」って何で決めるの?
サイズ?日付?名前??? sortedを使用するので、名前です(´・ω・`)、、、 フォルダの一覧を作成。
各フォルダについて最初のファイルを取得して、ファイルパスをリストに追加。 >>587
一般論であれば、まずPythonにおける「リスト」とは
他言語における「配列」を指す
次に、配列とは単なるデータ構造を指し、
その配列の各要素をあれこれ処理するアルゴリズムは「手続き」として定義される
データ構造と手続きが完全に分離されている、これがFORTRAN/COBOLに始まり
C/Pascal/Modulaへと続く1980年代前半までの古典的な「手続き型言語」の流れ
こうした手続き型の流れは、大規模開発における保守性/再利用性の低さから批判を受け、
対処策として注目された概念の一つが「抽象データ」であり、
これはデータ構造の内部詳細を隠蔽し外部に公開された手続きで処理対象をモデル化する
たとえばスタックという抽象データは、内部のデータ構造が配列であっても
リンクドリストであっても構わず、外部に公開されたEmpty/Push/Pop/IsEmptyという
手続きの集合(インターフェイス)だけで定義される
この抽象データという概念を発展させて、反復(ループ)処理すらも抽象化させるという提案が
イテレータ(iterator, 反復子)であり、それが最初に実装されたのがCluと呼ばれる実験的言語になる
まとめると、リスト(=配列)とはデータ構造の一種であり、イテレータとはリストを含む
複合データ構造に関する反復処理に限定して抽象データとしてモデル化した概念である >>628
ロジックは最初に日本語化したほうがいいですか? >>630
英語の方が分かりやすいなら英語で。伝統的な日本人なら日本語で。 PySimpleGUI調べてみました
圧倒的にコードが見やすくなりました
特徴は、レイアウトを最初にまとめてコーディングして
最後にWhile True:でイベントを監視するところでしょうか。
event, value = window.read()の直前後にprintを挟んでテストしてみましたが
一番最初にそのprintが出力され、次にイベントの処理が出力されました
つまりwindow.read()のところで待機?してるのだと思いますが
その仕組みが今一わからず悶々としています >>631
リストに対応する英単語は list であり、
同様に、配列に対応する英単語は array(アレイ) または vector(ベクタ) である
何を言いたいのかな?
英語?日本語?言語は関係ないよ はじめてpysimpleguiを知ったんだけど、tkinterやqtのラッパーだなんて説明を見つけたけど本当?
公式の英語を読むと、ラッパーなんて記述は見つからないのだが。 あ、ホントだ。てことは、exe配布時に必要なバッケージはどうなるんだ?
全部? 例えば、メモ帳のパスなら、コマンドプロンプトで確認できる。
上に表示される方が、優先される
where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
同様に、where php とやってみれば?
環境変数パスを知らないような人は、システム環境構築運用なんて、とてもできない >>623
【.cmd】 バッチファイルスクリプト %13 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1542779527/972
上に、Ruby で書いておいた。
Rubyでは、フォルダ以下のファイル名を取得する際、自動的にソートされる
他には、隠しファイルをどう扱うのか? 再帰関数について質問させてください。
どういう順番で処理されているのかよくわからなかったので、
0から10までの数字を足す処理を再帰で書いて、途中のプロセスをprintで出力しようとしました。
https://techiedelight.com/compiler/?PYzg
するとこのような結果が出たのですが、A_10からB_55が二回分printされているのはなぜなのでしょうか。
他のプログラム言語の経験は無く、pythonを始めたばかりです。
変な質問だったらすみません。 >>641
total(10) #=> 1回目
print(total(10)) #=> 2回目
2回実行してるから 再帰の件、続けての質問ですみません。
https://techiedelight.com/compiler/?b7CW
さっきと同じ計算なのですが、printの位置を追加しました。
これを見ると、「def の中で if より上の部分だけは最初に処理される」ように見えます。
そこで疑問なのですが、再帰というのはdefを使っている場合だけに可能な処理で、普通に書いた時は再帰処理することはできない、という理解は正しいですか? ラムダ式っていうのを使えばdef使わなくても再帰はできる
しかし本質的にはやってることは同じ pat = sorted([file.stem for file in foldername.glob("*.txt")])
return pat[0] if pat else None
これはフォルダにあるファイルの一覧を取得していますが、
if pat の部分は何を指定しているのでしょうか?
もしリストであったのなら とは? >>647
Pythonで「if 変数名」ときたら
「変数がからっぽ系じゃない場合は」という意味
この場合は
「リストになんかHitした結果がはいってるなら」=foldernameの中にtxtファイルがあれば この手の暗黙的な書き方は、セキュアじゃないことに気を付けないといけないけどな。
ところで、この場合の角括弧はいらないというか邪魔。
pat = sorted(file.stem for file in foldername.glob("*.txt"))
他に引数がある場合は、丸括弧にする。
pat = sorted((file.stem for file in foldername.glob("*.txt")), reverse=True) >>648
trueということですね ありがとうございます > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw ファイルに連番を使いたいのですが、イテレータからインデックスを取り出す事はできませんか?
import os
import pathlib
target_folder =pathlib.Path(".")
for i in target_folder.iterdir():
os.rename(i,"hoge") import os
import pathlib
target_folder =pathlib.Path(".")
for i, name in enumerate(target_folder.iterdir()):
if name.is_dir():
print(name)
os.rename(name,"hoge"+[i])
フォルダを連番リネームするにはどうしたらいいのでしょうか?
リストにインデックスはつけられないみたいです。
このエラーです
can only concatenate str (not "list") to str "hoge"+str(i)
"hoge{0}".format(i)
f"hoge{i}" str内でインデックス使っていいんですね
ありがとう lis = [1,2,3,4,5,6]
for i in lis:
rep = "{0}{1}{2}".format("(" , i , ")")
print(rep)
formatで括弧を付ける場合、これよりかんたんな書き方はあるですか? rep = "{0}{1}{2}".format("(" , i , ")") の発想がすげーよ。
馬鹿にしているわけではないよ。 >>659
波括弧になにもない場合は数字は0ということですか? format って、% より優れてんの?
どっち使えばいいのかわからない。 >>663
バージョン 3.1 で変更: str.format() を使い、位置引数指定を省略することができます。
'{} {}'.format(a, b) は '{0} {1}'.format(a, b) と同じになります。
https://docs.python.org/ja/3/library/string.html#formatstrings
個人的には嫌い、ちゃんと '{0} {1}'.format(a, b) って書けって思う。 >>665
多くの場合、新構文に {} を加え、 % の代わりに : を使うことで、古い %-書式に類似した書式になります。
って書いてあるぐらいだから新規に書くなら{}の方が良さげみたいよ
https://docs.python.org/ja/3/library/string.html#format-examples 読んでませんよ
yagniの法則ってやつがあるじゃないですか >>670
プログラミングむいてないから死んだほうがいいよ >>670
yangiの法則自体は正しいが人に聞く時点ですでneeded itなんだからyangiとか言うのはアホすぎる >>670
今必要ないものを後に回すのは構わないが、今必要なものをそれと分からずに面倒だからと後回しにするのは愚か者のすること >>673
いえ、チュート全部やれと言われたことだと勘違いしてました >>658
Ruby では、"〜" 内で、#{ 式 } を使うことによって、
式の結果を、文字列に変換して埋め込める
ary = [ 1, 2, 3 ]
ary.each { |num| puts "(#{ num })" }
出力
(1)
(2)
(3) pandasっていうのは、大雑把にいうとexcelみたいな操作が出来るっていう理解で良いですか? YAGNIの原則は、機能追加の話だろ
(必要になるまで追加しない、無駄な機能は実装しない)
困るまで勉強しない、っていう意味では決してないぞ 何でPython スレにRuby馬鹿が居座ってるんだよ。
迷惑だから出て行け。 >>679
>困るまで勉強しない
なんだかすごくステキにみえました… >>686 こいつお岩さん見たい。 現代風で言えばリング このスレでpysimpleguiを知ったのは収穫だった
以前tkinter使ったときうんざりしたので、以来pythonでのGUIアプリは敬遠していた > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw tkinterのメッセージボックスだと最前面するのがちょっとめんどくさいので
メッセージボックスにWindows APIを使ってる
MessageBoxTimeoutWくらい自由度があるといいんだけどな 自由度が高いモノって面倒臭さも高いんじゃないの
自由度が高くて単純なモノってのは普通は存在しないんじゃない >>695
デフォルトで使うと、tkinterと変わらない動作
自由度という点では、これに加えて、
アイコンの種類、ボタンの種類、デフォルトボタンの指定、
(ここまではtkinterもできる)
ウィンドウ制御(最前面など)、タイムアウトの有無、その時間などが指定可能
タイムアウトに関しては、ボタンを選択しなければ設定後に指定した値を返すもので、
ドキュメント化されていないAPIなのでいつまで使えるかわからないけど、
XP以降、10になっても同じ動作を確認済み
このタイムアウト、ものすごく便利なので、tkinterでも取り入れてくれないかな pyqt5で作ったアプリをpy2appで書き出すときに関する質問です
-Aオプションでエイリアス指定すれば動作するのですが,-Aなしでビルドするとエラーになります
どこに問題があるのでしょうか…? スタンドアロンなアプリを作るのにPythonを選択したところかな 頭悪くてすみません,ようやく解決しました
オプションでPILを指定しなきゃいけなかったみたいです
使ってないのになぜ…? pythonのexe化って難読化とか暗号化とかされるの? >>703
Pythonで書かれたものはインタープリタで動かすスクリプトに過ぎないので
OS環境で動かす為にバイナリにコンパイルするんだよ exeに必要なものをzipでまとめてくっつけてるだけだぞ Pythonインストールしてなくても動くのは何故? >>703 Python は一度コンパイルされて中間コードになる事を知らないみたいだね。
.pyc がキャッシュに出来てそれが実行される。
これをまとめてexe化してるだけだから、当然ある程度難読化はされてることになる。
自分でコンパイルしてみたら?
Pythonでコンパイルは可能なのか?やり方をまとめてみた
https://blog.codecamp.jp/programming-python-compile-can-1 >>706 Pythonごと実行環境が丸ごと入ってるから。 だからサイズも大きくなる。 >>703
されないよ。中間コードその他に変換することは難読化とは言わないし、実際pythonの場合は変数名やdocstringもそのまま残るから、ツールで簡単に元に戻せる PythonNN.dll 以下のサイズにはならんでしょ Pyodido と言うWebAsembly 上でPythonが動く。
numpyとか色んなライブラリも入ってる。
PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中
2019年4月19日
https://www.publickey1.jp/blog/19/pythonwebassemblywebpythonpyodidemozilla.html
Mozillaは、WebブラウザでPythonインタプリタや数値計算ライブラリのNumPyなど、Pythonの標準的なデータサイエンス環境をほぼそのまま実行可能にする「Pyodide」(パイオダイドと発音されているようです)を開発中です。
Pyodide
Mozilla Hacksのブログに投稿された記事「Pyodide: Bringing the scientific Python stack to the browser」で、このPyodideの詳細と現状が報告されています。
Pyodideは、データサイエンス環境をWebブラウザ上で実現しようというMozillaのプロジェクト「Iodide(アイオダイド、と発音されているようです)の関連プロジェクト。
Pyodideの最大の特徴は、標準のPythonインタプリタのフル機能をWebブラウザ上で実現しようとしている点にあります。下記はブログから。
Pyodideはフル機能の標準Pythonインタプリタをブラウザ上で提供し、Web APIへのフルアクセスも実現する。
つまりWebブラウザ上でPython言語およびデータサイエンス関連のPythonライブラリ、例えばNumPy、Pandas、Scipy、Matplotlibなどをそのまま使ってプログラミングできて、さらにWebGLのような高速なグラフィック描画なども呼び出せるようにする、というわけです。
以下略 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 実はお手軽にGUIツール作りたいってだけならHSPとかラクなんじゃないでしょうかね >>716
Visual Studioが良いと思う
HSPはスレに多い[Highly Sensitive Person] globに下位フォルダの検索機能はあったでしょうか?
ルートフォルダを起点にして、下位フォルダのファイルを取りたいどす 初めてさわったのがpythonだからPHPやJavascriptで{}や;がやたら多くてびっくりした
他の言語もこんな無駄カッコや無駄記号だらけなん? >>724
一概に無駄でもないよ
改行とインデントを強制されなければ
script.min.js のように圧縮出来たりするんだから plt.gcf().text(0,0,'value=',value)
でエラーが出る
テキスト文字と変数を同時に表示させるのってどうすればいいのでしょう? >>727
コレかな?
https://stackoverflow.com/questions/42435446/how-to-put-text-outside-python-plots
or by using the text method of the figure instead of that of the axes.
plt.gcf().text(0.02, 0.5, textstr, fontsize=14)
In both cases the coordinates to place the text are in figure coordinates, where (0,0) is the bottom left and (1,1) is the top right of the figure. https://note.nkmk.me/python-string-concat/
数値と文字列の連結・結合: +演算子, +=演算子, str(), format()
異なる型の+演算はエラーとなる。
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
source: string_concat.py
数値(整数型intや浮動小数点型floatなど)と文字列を連結したい場合は、
数値をstr()で文字列型に変換してから+演算子(または+=演算子)で連結する。
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25 textstr = 'value=' + str(value)
plt.gcf().text(0.0, 0.0, textstr, fontsize=14) 俺なら、
plt.gcf().text(0,0,f'value={value}')
とするわ >>723
深さが色々なのですが、できるでしょうか >>733 横だが
できるはずだぞ
「glob 階層 検索」あたりでggr >>731
そうおもっていたじきもありました
バッチやVBAも、やってみればなかなか楽だったでよ https://i.imgur.com/mjoy2Xy.jpg
globとisdir関数でフォルダのみを取りたかったのですが、変なドットが含まれます
これは何でしょうか?上がディレクトリの構造です
import pathlib
import os
pat = pathlib.Path(".")
dirlist = pat.glob("**/")
for i in dirlist:
if os.path.isdir(i):
print(i)
これが結果です
.
renamedhgggg(0)
renamedhgggg(1) >>737
os使わなくてもpathlibでis_dir()使える >>739
どうも
ごっちゃになっててよく分からんですねこれ https://ideone.com/GdzQRA
これでなぜ4が返ってくるのでしょうか?
ローカル変数のlisをリターンできないと思うんですが >>741
4行目でreturnしとるやん
でもって6-8行目でちゃんとprint()にハメてるやん
だからちゃんとprintされるでー >>741
ローカル変数は参照できないだけでreturnはできるぞ
むしろそれ出来なかったらグローバル変数だらけになってカオスになるだろwwwwww >>745
へぇ グローバルにしなくていいんすか(´・ω・`)、、、 横軸距離、縦軸心拍のグラフ作りたいのですが
matplotlibで表示するとフルマラソンの横軸が
42.195ではなく4.2195E04となってしまいます
400m走読ませると4E02となります
これを一般的な42.195kmあるいは400mと表示させるには何を設定すればいいのでしょうか?
matplotlibのaxis触っても色や一だけで中身変える方法が分かりません >>735 そりゃ単に底が浅いだけだよ。 複雑な事をしようとすると何もできない。 なぜglobはリスとではなく、ジェネレータを返すのでしょうか? folder = pathlib.Path("./folder")
gettxt = folder.glob("*.txt")
for i in gettxt:
print(i)
イテレータの1つめを取得するにはどうしたらいいんでしょうか
print(i[0])だと怒られます >>749-750
ggrks
「Python イテレータ ジェネレータ」 >>748
一見複雑なことを
簡単なことの規則性に分解するのがプログラみんぐジャネーノ? >>747
matplotlibとエスパーして答えてやんよ
違ってたらシラネ(゚听)
ScalarFormatterのプロパティをuseMathText=Trueにしてないか ←一番濃厚
subplots()関数のsharexオプションにTrueを渡してないか
Axes.set_xscaleをちゃんとlinearにしているか←穴馬 イテレータくんの長期連載は進歩してる感じが全然しないな print(folder.glob("*.txt").next()) >>756
print(folder.glob("*.txt").next())
AttributeError: 'generator' object has no attribute 'next'
こうなりますです >>755
んだべな
>>754
バカの壁・・・
続きは↓でやれよ! (・∀・)カエレ!!!
初心者の質問 https://matsuri.5ch.net/qa/ 結論だけ言うとジェネレータが返ってくるのでジェネレータはn番目の要素が具体的に何なのかという情報は持ってないので
リストにすればlist[0]で1つめの要素を取得できる(がメモリの使用量が大きくなる欠点がある)
ジェネレータに実装されてるのはnext()じゃなくて__next__()だが
これを直に書いて呼び出す時点で実装は相当頭悪いと言われても仕方ないので別のやり方を考えろ どういうやり方がいいんでしょうか?
特定のフォルダ内の先頭のファイルを取得したいのです。
フォルダは複数です。 print(next(folder.glob("*.txt"))) > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>760
おい>>626に答えろよ愚図
でもって(・∀・)カエレ!!! >>754
>>667-674
おまえ舐め過ぎ
必要になったら自分で調べるどころか人に聞けばいいと思ってるだろ
こういう事言っていいのは自分で問題解決出来る奴だけだ
つまりIQ高いとか多言語での知識や経験があるとか、少し試しただけで察せるような者
おまえのような覚えの悪いガイジはチュートは勿論、入門サイト片っ端から周って全部読め
急がば回れ。低脳は一つ一つ、読んで、書いて、試して、考えて、覚えろ ID:d0Iv/yZR
コイツみたいなガイジは無視でいいんじゃないの?
これ、ただのクレクレくんだぞ >>766
グループで作業してる等、人に説明する必要が湧くかもしれないなら必要
そうじゃないならマイルール >>765
そんなこといったら クレクレくんに失礼だろ! ε=(`・ω・´)プンスカプン!!
ガイジいけぬまヒトモドキでおk! >>766
フローチャートは非プログラマに対して処理の流れや業務フロー等を説明するために使うもの
プログラムの設計に使うのはプログラムを汚くする原因になるので 絶対NG >>769
えっ、設計には使わないのが普通なんですか?
設計するときに流れを整理するために言語化したりしないでしょうか? >>770
だったら自然言語で設計すればいい
フローチャートはPythonより抽象度が低いから設計には不適 直接コード書き始めるのが習慣になって
未だにフローチャートの書き方がわからない フローチャートでよくつかう形にかたぬきずみのポストイットあったらいいなー 枝葉をカットしてUMLやらの流れ図にまで押し込められるまでにかんたん化する
だから図そのものでは設計してない
そしてフローチャートそのものももう古い
なんで学校で教えているのか分からない、
というか、採点しやすい、(採点側であるところの)「わたし」が見て分かり易い、
(プログラミングなんて全くできないバカ=採点するアホでも)とりあえず眺めて満足できる、という理由だけで教えられてるフシがある
バカ向けの書類を作る苦行をさせられてるワケだ。
この種のバカを全排除すればITの効率は上がる
ハンコと同じだね
Cプログラミング診断室/上司が問題/フローチャート
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.3.3.html >>776
この代わりの方法というのはどんなものでしょうか? そもそもスクリプト言語ってのが処理の流れを書くものであって
図じゃなくて英語が読めるならインデントの箇条書きみたいなもんでは 特定のフォルダに存在するフォルダを取得したいです
pathで指定されているフォルダには対象フォルダは2つありますが、上のコードだと結果が1つしか返りません
これのどこがいけないでしょうか?ループの問題だと思いますが、どこを治せばいいですか?
https://ideone.com/XpH2Wi
>>778
フローチャートはやめて、ブロックごとにコメントでも書いておきます >>779
(・∀・)カエレ!!チネ!!!(・∀・) プログラム自体をドキュメントとする。
例えば改訂履歴、関数のパラメータの説明やリターン値などの説明、
ドキュメントを自動生成してくれるツールや、関数を呼び出すときにそれらの説明を表示してくれるIDEなども有る。
jupyterなら関数の説明として表示してくれる。
java ならjavadoc
python ならdocstrnig
VSCode にはautoDocstringが有る。
書き方には色々ありNumpy スタイル、Google スタイルなど有る。
後でsphinx と言うツールでドキュメントとして出すことも可能。Python の公式ドキュメントはこれで作られている。
Numpyスタイル
https://qiita.com/simonritchie/items/49e0813508cad4876b5a
Googleスタイル
https://qiita.com/11ohina017/items/118b3b42b612e527dc1d python のdoctest は、docstring内の実行例までテストしてくれる。
https://docs.python.org/ja/3/library/doctest.html?highlight=docstring
doctest モジュールは、対話的 Python セッションのように見えるテキストを探し出し、セッションの内容を実行して、そこに書かれている通りに振舞うかを調べます。 doctest は以下のような用途によく使われています:
モジュールの docstring (ドキュメンテーション文字列) 中にある対話実行例のすべてが書かれている通りに動作するか検証することで、docstring の内容が最新かどうかチェックする。
テストファイルやテストオブジェクト中の対話実行例が期待通りに動作するかを検証することで、回帰テストを実現します。
入出力例を豊富に使ったパッケージのチュートリアルドキュメントが書けます。入出力例と解説文のどちらに注目するかによって、ドキュメントは「読めるテスト」にも「実行できるドキュメント」にもなります。 >>783
フローチャートと違ってツールがないすね https://heat-haze.ハテナblog.com/entry/2016/08/02/232149
> NSチャートが記述できるフリーソフトがないかと探していたところ、
> Structorizerというルクセンブルグ生まれのソフトを見つけた。 >>757
print(folder.glob("*.txt").__next__()) ジェネレータは添字がないのなら、何を目印にしているんですか?データそのものの文字列とかですかね> 今ならハーバード大学の授業、2021年まで無料です。
PythonとJavaScriptのクラスもありますよ。
英語できたらそこらのスクールにお金払わずとも、ハーバード大学でプログラミング学べるって、
やはり英語最強ですね。
https://online-learning.harvard.edu/course/cs50s-web-programming-python-and-javascript?delta=0 os.renameで2つの引数に複数の値を指定した場合どういうループ構造にするといいですか?
target = [target1,target2]
replace = [replace1,replace2]
os.rename(target,replace)じゃだめですよね for t, r in zip(target, replace):
____os.rename(t, r) python関連でググると高確率で、techacademyとかいうサイトがヒットする。
そして毎回、冒頭の男女二人の会話にイライラしながらスクロールするのだ。
会話最後の女のノー天気な「お願いします!」が余計怒りを増幅させてくれる。 >>794
おい
次書き込みするときから
名前欄に「アホループジェネレータ」って書け NG sejuku
NG techacademy
微妙 teratail 東京フリーランスのとだこうきが、デイトラに、
9万円のRuby on Rails のコースを作って、価格破壊を起こした!
1年で、デイトラの企業価値、10億円を目指すとか
他校と違って、宣伝費・就職サポートが無いから、安い なんでRuby馬鹿はPython スレを荒らすんだ? Ruby スレから出てくんな まあこいつが宣伝するとネガティブな効果しかないけどなw
おそらくこいつが言及している人物なりサービスの提供元からすれば、糞な書き込みに俺の名を出すなと言いたいことだろう pysimpleGUIで**って表記が出てきます
なんとなくobj = {"key1":"val1","key2":"val2"}
みたいな辞書のkeyとvalueを展開してるんだろうなくらいの認識なのですが
そもそも**はどうやって使えるようにしてるのでしょうか
print(**obj)とかやってもエラーでました >>807
なるほど受取り側の関数の引数名がkey1やkey2でないといけないわけですね
つまり(pysimpleGUIメソッドを使うときに**で渡していた)辞書のキー名は
pysimpleGUI内で使う引数名と一致する必要があったのですね
ありがとうございます かわ∃
530 (ワッチョイW 1fc5-4PbC) 2020/08/21(金) 16:29:12.94 ID:63P3hyCP0 (PC)
Pythonのインテンドルールに通ずるものがある >>808
ちょっと違う
どんなコードを見てそう思ったかは分からんけど
まず**自体について
これ関数の引数がhoge(**kwargs)で定義されてたら
引数をdict型として受け取る、という情報になる
(dictの詳細な型情報をいちいち記載しなくても使えるという利点がある)
>つまり(pysimpleGUIメソッドを使うときに**で渡していた)辞書のキー名は
>pysimpleGUI内で使う引数名と一致する必要があったのですね
これについはのその関数がどういう実装をしているかによる
というか、辞書のキー名指定があるものを**kwargsで受け取る仕様にしてたら
バグの元にしかならんから、たぶん違うと思うぞ >>811
引数をdict型として受け取る意味合いがあったのですね
hoge2とhoge3の使い分けが今一わからなかったので
関数側もhoge1みたいに引数で主張するもんだと思っていました
obj = {"key1":"val1","key2":"val2"}
def hoge1(n, *, key1, key2):
print(n)
print(key1)
print(key2)
def hoge2(**kwargs):
for k,v in kwargs.items():
print(v)
def hoge3(obj):
for k,v in obj.items():
print(v)
hoge1(10,**obj)
hoge2(**obj)
hoge3(obj)
pysimpleguiではsg.Button("忘れた", **style)
みたいな感じで使われてました
あらためて調べたところ
https://github.com/PySimpleGUI/PySimpleGUI/blob/master/PySimpleGUIQt/PySimpleGUIQt.py
にButton Class がありました(これかどうかはわかりません)がhoge1みたいにやってるみたいでした 訂正
>pysimpleguiではsg.Butto
というより、どこかのサイトでpysimpleguiを使ったコードの中では
でした https://ideone.com/WqvyRk
フォルダの先頭のファイルを拾ってそのファイル名を親フォルダ名としたいのですが、os.renameの箇所が動きません
どこが駄目ですか?
フォルダの取得とファイルの取得はいけました
コード汚くてすません(´・ω・`)自分でも読めない >>815
全部駄目
まずはコテハンにしてください >>815
folder_pathがpathlibオブジェクトのままでは
str(folder_path) >>815
Pythonのイテレータとジェネレータ
https://qiita.com/tomotaka_ito/items/35f3eb108f587022fa09
>ジェネレータは一度forループで回したりすると2回目以降のforループでは要素が出てきません。
これをまず100回ぐらい読め
その呼び出し方だと、replace_text側のlistが空で返ってくる
で、直すとこんな感じ
こっちの環境で動かす時に関係ないフォルダがリネームされかけたから
暫定的な処理を入れてるけど、その辺は自分で消しておいて
https://ideone.com/HooKEd と、思ったらpathlibのままでもいけたわすまん >>817 >>818
>>817
どうも、このままだと動かなかったので改造してみます
フォルダ構造はこうです
root
┣folder1
┣folder2
┗rename.py(ここにファイルを書きました) 最初の方
getfile1 = path.glob("*")
getfile2 = path.glob("*")
最後の方
zip(getfolderlist(getfile1) , getfilename(getfolderlist(getfile2)))
ってやったら普通にリネームされたけどね
root
┣folder1 - folder11.txt
┣folder2 - folder22.txt,folder33.txt
┗rename.py
実行後、folder11,folder22へ >>796
あのサイトあの会話部分を取り除いて
簡潔に書いてくれれば読む気になるのにな
会話が目に入った瞬間にあのサイトから離れるわ >>823
ほんと、会話部分は蛇足だよね
内容は参考になることもあるから、もったいないよ Pythonはnkmk、Mysqlはdbonline
ここが引っかからなかったらそれ以上わかりやすいサイトはないので検索ワードを変えるか別の方法を考える scipy入りのexe作って起動して終了するとプロセス残る なんでじゃー!? >>821
どうも
すみませんが、全コードもらえませんか?
どこが動いてないのか分からないです ギブアップしてクレクレし始めたな
次は改変の仕方を質問してまたクレクレするのだろう
もうキッチリ仕様決めて文書化して依頼スレにでも行けよ >>640
に書いておいた
まず事前に、チェックツールを作って、それでチェックしないと危険。
例えば、5個までrename に成功して、6個目でエラーになった場合に、元に戻せないだろ
フォルダ内を走査しながら、フォルダ名を変えるとか、
こういうのは最も危険な行為
事前にすべてを取得して、変更前後で、整合性が取れているか、チェックすべき!
それと必ず、全データを別の場所へ、バックアップしておくこと!
初心者が大規模に、フォルダ処理をするのは、非常に危険だから
それと質問者は、最初に質問したレス番号を、名前欄に入力してくれ。
誰が書いているのか、分かりにくいから >>829
文字通り>>821の3箇所しか(>>815のコードから)書き換えてないよ
https://ideone.com/bZFnuq
あとは最後のos.renameの行のインデントくらい >>367
accessってマイクロソフトのAccessのこと? >>833
お前が他人に何かを求めるな
スレタイ読んで1読んでそれに従えるようになるまで発言するなよ >>829
>すみませんが、全コードもらえませんか?
>どこが動いてないのか分からないです
デバッグとかしたこと無かったりする?
(ちゃんと想定通りの返り値が来てるとか、変数の中身が想定通りとか)
IDEのデバッガどころか、printデバッグすらしてないように見える 833がせっかくウルトラ珍しくイイ!!(・∀・)こといってるのに
836で突っ込まれててミリワロタ(・∀・)
>>839
今日のNGID:Z35Hz91Dは
「しか知らない」とかいう問題以前のうんこだぞ >>838
デバッグの方法がよくわかりません
printはよくやりますが、どの部分をprintすればいいのか、という法則に則っているわけではないです
当てずっぽというか、、、
vs codeのコンソールを使用しています エラー読む → デバッグ箇所が何行目かざっくりわかる
の流れで大抵はいける気がする リファクタリングしてみた
https://ideone.com/rpOUxC
./foo/foobar.txt
./bar/foobar.txt
のような場合に両方ともfoobarに変更しようとするから片方はこける 事前に、2つのチェックが必要
1. 変更前のフォルダ名と、同じフォルダ名にならない事
2. 変更後のフォルダ名が、重複しない(ユニーク)事 >>842
プログラムっていうのは構文エラー(syntaxerror)を除けば
エラーが発生するまで基本的には動き続ける
と言っても、エラーが発生した箇所=元凶とはならない、っていうのをまず覚えてく必要がある
一番分かりやすいのがprintデバッグ
・エラーメッセージからエラーが発生した箇所を確認する
・エラーが発生する個所の直前にprint文を入れて、渡している引数の変数がどうなっているか確認する
・変数値がおかしいなら、その変数を取得してる個所について調べる
っていうのが流れになる
>>845にあるように、デバッグ構成を設定すれば
デバッガが使えるようになるから、一々print文を仕込まなくても
変数の中身を確認したり、ブレークポイントで処理を途中で止めたりとか柔軟に確認できるようになる
これが出来ないといつまで経ってもプログラム書く→実行→何故か想定通り動かん
のループにハマるから、ちゃっちゃとデバッガの設定してこい seleniumでウェブサイトのボタンとかリンクとかクリックはできますが
逆にDOMのボタンがクリックされたときに
pythonの処理をするメソッドってありましたっけ?
(ボタンがクリックされたらJSでウェブページの内容を変更して、
python側では常にその変更箇所を監視する、というイレギュラーな方法だとできる) >>852
EventFiringWebDriver, AbstractEventListener >>853
うおおおおおお ありがとうございます!! https://www.seleniumqref.com/api/python/event/Python_after_click.html
ここのサンプルを試したのですが
python側からGmailのリンクテキストをクリック → 処理
で終了してしまいました
逆というか
手動でGmailのリンクテキストをクリック → pythonの処理
を期待していたのですが >>855
プログラムでelement.click()してるからクリックされてるんじゃないの?
あとは手動操作より先にプログラムが終了しないよう待つ処理が必要 bottleなんて使わず素直にflask使っていれば良かった
完全上位互換だわ element.click()消してループさせてみました >>856
https://ideone.com/EdCzQj
これで、Gmailのテキストをマウスでクリックしたら
print("before_click:" + driver.current_url)
print("after_click:" + driver.current_url)
が実行されるのかなとおもったのですが、画面遷移されるだけで、ターミナルには何も反応せず。
while内の処理が優先されているのでしょうか? リストボックスの情報を最新のリストに更新する処理をかきたいんだけど、
listbox.delete(a,b)を使えば良さそうというところまではわかったんだけど、
どう引数を入れたらdelete関数でリストボックスをリセットできるのかわからない。
いくつかサイトを見てもわからなかったり、動かなかったりという状態なので、
何卒よろしくお願いいたします。 >>859
なんのことだかしらんが
一旦空リストを書き込んで
新しいリスト入れたらえーんでねんの > どう引数を入れたらdelete関数でリストボックスをリセットできるのかわからない
ggrks
https://www.google.co.jp/search?q=Listbox+delete+Python
> いくつかサイトを見てもわからなかったり
バレバレの嘘つくな。貼れ
> 動かなかったりという状態
書け
どんどん雑になってきたな
おまえは楽しようって魂胆が見え見え杉 サイトとかのソース参考にしてても、import文の記載が無い事が多くてどのパッケージなのか解らなくて大変です。
どうすれば良いのかアドバイス欲しいです。 >>862
>>861でググりゃインポート文付きでサンプル出てくるじゃねーか >>862
コテハンつけろ
親と一緒にネットしろ ひとりでやるな 今どきのキッズは人に聞く前にリファレンス読まないのか? >>1
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 回答者は1を読めということか?
質問者が💩だったり質問内容が💩だったり丸投げだと回答しませんとかテンプレートにわざわざ加えるのか?
書くまでもない常識だから書いてないんだろ。
コイツも>>862と同じ💩だな スレタイすら読めないなら来なきゃ良いのに
くだすれPython ←丸投げ
(超初心者用) その49 ←肥溜
【まず1嫁】← すら忌む 初心者キッズにうんこマークで返信とかあり得ないだろ ここ5ちゃんなんでー
うんこがヽ( ・∀・)ノ● ウンコー!って煽られるのは5ちゃんクォリティだろ 答えるのが面倒なら上級者さんはここみなければいいやん。 ひとまずスレタイの超初心者用って外したほうがいい
カス共に煽られて超初心者が可哀想でならん Pythonの超初心者対象スレであって、
ひとにものをきくこと自体の超初心者や
ネッツ超初心者
および
宿題丸投げしたいいけぬまは対象じゃないスレだと思うぞここ >>874
いや、それこそ>>1に質問する時に以下書けって書いてあるし
それ以前にこれ無いとエスパーしないと回答できないから無理だぞ
>★エラーを解決したい場合は、
> 表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
> 実行環境(Pythonのバージョン・OS+IDEの種類とバージョン)をシッカリ書くこと。 >エラーを解決したい場合は
>エラーを解決したい場合は
要するに質問者がシッカリ書いてないので
答えられないor答えたくないのなら
単純に、答えなければいいだけだし
それが原因で回答者がいなくなればスレが廃れるだけのこと
でも実際はそうなってない
シッカリ書いてないから書けというのは、説教でしか無い
質問者が横着だろうと宿題だろうと丸投げだろうと
質問者含め他の利用者にとってはQ&A自体が財産となる
説教”のみ”は負の遺産 > 説教”のみ”は負の遺産
確かに
>>877見てると同意せざるを得ないなw >>877
>シッカリ書いてないから書けというのは、説教でしか無い
これを説教と思ってるならお前相当な馬鹿だぞ
ぶっちゃけQAサイトなんか他にもある
teratail、stackoverflowがその代表例だわ
だけどどこでも>>1に書いてある情報ってのは必須項目だし
何ならルール的には一番緩いぐらいだ
何よりもだ
「こっちが回答した内容を、その通りに実行する」っていうのはQA解決の基本なんだよ
言った事が実行出来んならいくらこっちが言っても永遠に解決できん だから
>エラーを解決したい場合
って書いてあるじゃん
質問者がシッカリそこを書いてないのなら
エラーを解決しなくてもいい、と受け取られても仕方ないってこと
その上で、シッカリ書いてなくても理解できる&答えられる回答者がいる
そして問題ないことはこのスレの存続が証明している
シッカリ書いてないと理解できない&答えられない回答者は
無理して答えなくていいんだよ
答えられないor答えたくないのなら
単純に、答えなければいいだけ
「おれが答えられるようにシッカリと書いてくれ」みたいに無理するから
説教になるんだよ 無理して答える → 解決しなかった → ふーん → じゃあこれはどうだ
みたいな回答者がほとんどな一方で、
無理して答える → 解決しなかった → シッカリ書いてないからだろ!! → 俺は間違ってない!、俺は失敗してない!
質問者がシッカリ書いてないからだ → シッカリ書くように!!
みたいな回答者が一定数出てくるのは初心者質問スレあるあるでほんとにどこにでも湧く現象
回答を否定されたことで恥かいたみたいな心理なんだろうけど
半匿名のスレで恥・・?と思う そもそもエラー文も載せないで質問もクソもないだろ
エスパーすればいいのか 初心者スレで出る質問なんてエスパーで解決できる問題がほとんどだし
できなければ問答で詰めればいいだけ
そもそもどの部分がエラーなのか、エラーの重要性を知らない初心者はそのときに知ればいい
初心者がどこまで把握してるかなんてわかるわけないし
最低限リファレンスimportするモジュールの仕様書全部読んでから来ましょうなんてスレの存在理由なさすぎ >>880、>>881
あのな、まずはコミュニケーションを取ってくれ
質問者:質問する
回答者:情報足りんから、エラー文とか本文を乗せて?
質問者;はーい
回答者:あーなるほど、〜を直してもう一回動かして
回答者:あ、動きましたありがとうー
で済む話やん
お前の言ってる事って
「指図するな、俺のレスだけで回答しと」
「質問に回答できないのは、回答者がエスパー出来ない低レベルな人だからだ! 黙ってろ!」
って言ってるもんだぞ なんで回答の過程で相手方の情報聞くのに
ここまで言われないとアカンのか、それが分からん
エスパー過信しすぎだろ >シッカリ書いてないと理解できない&答えられない回答者は
>無理して答えなくていいんだよ
超初心者スレで質問ガン無視推奨は草生える >シッカリ書いてないと理解できない&答えられない回答者は
>無理して答えなくていいんだよ
訳:おれのママンならきっとこたえられるはず!!! >>884
いや、その質問回答者の対話のくだりはまったく否定してないし
シッカリ書かれてなかったら問答で詰めればいいだけ
その対話云々の前に、テンプレ通りにきちんとシッカリ書き、書けないなら質問するな
みたいに匿名スレで無意味な活動してるバカに言ってるんであって 現状
質問者:質問する
回答者:ばーかばーか雑魚は帰れ!
質問者:(やべーとこに書き込んじゃったな…) もっと言えば
質問者:質問する
(大抵ここでエスパー回答者が解決する)
で、済むわけで ほんとコレに尽きる
”エラーを解決したい場合は、シッカリ書けばいい”
”シッカリ書いていなければそれ相応、エスパー回答者が答える”
”他の回答者は無理して答えなくて良い” エスパーは無料だから使い倒すべし
って思考のやつって
ティッシュ配りしてる人に何度も「無料なんだからティッシュよこせよ!」ってたかりそう・・・ >>875
これ。
python初心者は問題じゃないんだよ。エスパー上等。
ただ人としてウンコな質問者やそれを擁護するやつに反吐が出るだけ すまんティッシュ配りのたとえ全然わからん
単純にエスパー回答も含め回答は自由なだけだろ うんこかどうかは自分のさじ加減ってことを認知してなさそう これは宿題、これは宿題じゃないの判別できるとか
それエスパーじゃなくて統失 それこそコミュニケーション取ったほうがいいな
それ宿題だろ? → いいえ違います
ここで引いたほうがいいぞ
宿題のはずだ!ってなりはじめたらヤベえやつです IDなしのやつやべえDQNだな
いいえ違いますって言うあふぉもいるが
なにからなにまで●写しだと
教授会にかけられて半年停学+単位剥奪+名前晒しの刑になるだけだぞ現実は ところで
このスレで宿題丸投げうんこ野郎と言っている際は
本気じゃなくてただ煽ってるだけのこともある 宿題か否かも写しか否かも煽ってるだけか否かも
調べようがないわけでかなりどうでもいい
そのことを5chで主張することに何の疑いもないなら
ほんと統失を疑った方がいい おれさまのかんがえたさいつよりろんにはんろんするな!でーすかwww 手取り足取り教えるより
>>899 「現状」の対応の方が正しい くだらない言い争いとかどうでもいいんで、
フォルダパスとイテレータの質問にちゃんと回答してくださいよ こういう質問スレで、テンプレ厳守回答者が一定数沸くのは
返信できない焦燥感に起因するのだと思う
質問レスが視界に入ったとき、返答しない(=回答しない=解決できない)原因が
どこにあるかを探ろうとしてしまう
そもそも回答するもしないも自由だ、ということを認知していなくて
回答しない原因を自分のせいにしたくない、という心理が先に働いている
というのがしっくりくる
回答、返答しないことは悪いことではない 答えはすぐ思い付いても
他人の答えを知りたいときは
あえて黙ってることもある プログラムなんてルールの塊みたいなもんやし
プログラマやってたら自然とルール遵守するようになるのは当たり前やぞ
インデントにタブか空白を使うかで言い争いが出来るような人種にそんな一般的な考え方通じんぞ というよりプログラマなんてルール守って無かったら単純にイラつく連中やぞ
・全角と半角の混同
・日付書式が不定になてる
・命名規則がちゃんとしてない
etcetc……
ルール守らんと実害が出るって知ってる連中やからな
だからルール守らない=プログラマにとっては不快極まりないねん 1のテンプレシッカリ守ってシッカリ書いてないってだけやん
ルールの解釈が違うだけでは このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
したらルールを守ってね? 質問するやつはするし回答するやつはする
テンプレ厳守はまさに暖簾に腕押し
そもそもシッカリ書かないと質問してはいけないなど一言も書いてないしな >1
>「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨
テンプレを勝手に書き換えているのは、荒らし。
削除した方がよい
自分がスレをめちゃくちゃに出来るように、
他人が書き込めないように、様々な条件を付けて、テンプレを改変してくる
昔から漏れらは、スレを立て直して、正しいスレへ誘導したりしてた
荒らしは、必ず2回以上書き込む。
「そうだよねー」みたいに、前のレスに同意して、人数を多く見せかけるので信用しないように! 影の100条委員会があると言うなら、影の影の100条委員会があっても良いはず。
設置します。 やっと番号とはいえコテつけたか
スキーリ(・∀・) IDなし●つき氏、
長々とへりくつ(要約すると 質問者の権利>>>>>>>>その他の住民の権利>>質問者の権利 ってなるぞw)こねてないで
なんとかしてさしあげろよwww 質問も回答も自由なプラットフォーム上で自分の理想に制御しようとするからそういう思考になる 自由にクソ行為が含まれるっていう思想がね
迷惑だは オラクルDBクライアントを使ってオラクルDBに接続して動作するpythonファイルをEXEファイル化しても、
他のパソコンで実行するときにはオラクルDBクライアントのインストールは必要になる? もちろん必要
悪いことは言わないから今すぐ考え直してWebアプリ化しろ
作ったものを自分の手の届かないところへ配るのは地獄の始まり >>924
ありがと。
ただ、大量のユーザーがいるわけではないから、webアプリ化は必要ないかな。 >>925
違うっそうじゃないwww
「作ったものを自分の手の届かないところへ配るのは地獄の始まり」
↑これがすべてだぞ 言っても分かんないだろ。
いっぺん痛い目みればいいんだよ。
愚者は経験に学ぶしかない。 配布自体はそこまで問題じゃないでしょ
pythonをexe化して配るのが問題 >>925 少ないユーザなら自分のコンピュータにサーバを建ててアクセスさせれば良いじゃん。
Oracle DBサーバがあるんだったら、Webサーバなんて適当な隙間に入れられるだろ。 oracle instant clientを同梱すればなんとかなる気はするけど
後は頑張れとしか言えない パイソンの配布に少し興味がある。
例えばアナコンダとかで作った仮想環境を
仮想環境丸ごとパッケージ化して配布とか
できんのやろか? >>934
とんでもないサイズになりそうなんだが
通信量大丈夫か? >>926
自分の手の届かないところへ配るとどういう理由から地獄になる? >>935
実際にはしないから問題ない。
純粋に技術的に興味があるだけだから。 >>938
単純にパソコンに詳しくない業務側のシステム担当者に定型的なデータベース操作をさせるためのツールでしかないんだけど。
1台、2台のpcでしか使わないようなものだし、保守に手間がかかるようなものではないと思うが? >>931
サーバに空き容量が無いわけではないが、一ヶ所の業務端末でしか使わないようなツールだし、webアプリ化まで手間をかけるようなものではないと思う。
pythonのexe化の問題点を検索するとexe化後のファイルサイズがデカイといった内容があるが、実際にexe化してみたら20メガ未満のサイズでしかない。
>>933が書いてるようにしておけば特段問題ないように思うんだけど。 個人的にはpythonをexe化して配布しようという人の考えは理解出来ないけど、自分が自信を持って問題ないと思えてるならそれでいいじゃね >>943
何を問題と思ってるのか知りたいんだけど。
聞いてもその辺を書かないレスばかりじゃん。 >>944
ぱっと思いつく問題をつらつら書くと
・配布先PCの環境依存性
使うのに別ソフトウェア(oracle)が必要になるなら、バージョン指定した上でインストールしてもらう必要から
その辺を記載したマニュアル作成しておく必要とかが出てくる
(1〜2台のPCと言っても、故障とかで入れ替わると再セットアップが必要になるから、書いておかないと問い合わせが来る)
あとはよほど無いとは思うけど、必要なソフトウェアのインストールに失敗した時の対応を誰がやるかとか……
・ソフトウェアのアップデート対応
→1〜2台ならあんまり手間かからんけど、ソフトウェアアップデートしたらその時に対応が一応居る
必要になるのはexeのアップデートと、関連ソフトウェアのアップデートぐらいだけど
アップデートバッチを自動配布が理想だけど、社内とかでやるならその辺も整備が必要
・不具合対応
一番の懸念はこれかな、配布先PCの環境に依存したバグを引き当てると
修正がクソ面倒になる(再現が面倒なので) >>945
それってパイソンに限って生じる問題?
他の言語では生じない問題? >>945
懸念点について了解。
it系じゃない企業の情シスだとその辺は普段からの当たり前になってるからあまり問題では無いかな。
一般人というのは文章作成とクリックしかできない想定で、その他は全て情シスがやるようなのが自分の会社の業務分担だし。
現場に行けばプリンタ設定さえも怪しい。
まあ、会社のパソコンがアカウント設定等で色々縛られてて、家のパソコンと違うってのが主原因だけど。 >>946
どの言語でも言えることだと思うよ。
たくさんのパソコンにインストールする場合は大きな問題になるから、
webアプリにした方が良い問題だな。
余談だが、富士通とかNECなんかのソフトベンダーはwebアプリとなると色んな言語のプログラマを揃えないといけなくなるから嫌がるけどね。 >>947
何も有用なレスを返せずに煽ってるお前は本物のゴミなんじゃね?
ゴミは人間社会から必要とされてないよ。 会社(身内)だけならなんでも好きにすれば良いけど、
俺ならwebアプリ一個置いておいて使いたい人がアクセスして使うようにするね
ユーザーが増えた減ったの対応面倒だし、開発者はwebアプリ一個管理しとけば良いから楽 >>950
ここは見てるだけ。teratailで回答してる。 Pythonの勉強したいのについついプレステ4起動してしまうよーー >>952
ム板を襲撃してTeratailへ誘導してるようなことを書くと、いろいろマズいのでは? 「素人丸出し」では飯が食えん
社会的欲求と安全欲求が足りん >>942 Webアプリ化が手間だと思ってるのなら間違い。
一度やってみれば後は簡単。
今後避けては通れないんだからやってみるべき。
そう言えば、PostgreSQL の管理ソフト PgAdmin がいつの間にかPython に変わってたな。
起動するとWebブラウザが開くんだけど。 他は面倒なインストールはない。 Flask で作ってたのかな? 状況にもよるが、もしwebサーバーだけ自分で管理しなければならないなら
アプリケーション配布する方が楽だな。 ブログをスクレイピングしたいのですが、記事一覧ページを表示させて、ページネーションごとに保存したいです。
ページネーション1、ページネーション2、ページネーション3
という感じです
これはpythonで出来るでしょうか? >>958
今回は既にものが出来上がってるからこのままexe化でいくけど・・・
webアプリとして作るならpythonよりphpの方が作り易いと思う。
djangoは勉強したが、フレームワークってルールが多くてツール作るまでの学習に時間をとられる。
pythonもフレームワーク無しでwebアプリが作れるかも知れんが、やってる人が少ないから、日本語情報少ないし。 >>960
ページネイションの<a href=タグのアドレスを拾い直せばいいんでね? こっちもexeやめたいんだけどキャプチャ取って画像分類使ってるやつWebアプリにできたりする? >>961
俺もジャンゴで挫折したクチだけど、flaskを知ったら世界が変わるよ pythonは言語やライブラリがexe化して配布される事を想定してない
標準のパッケージングで対応出来ないなら、基本的にはpythonを使うべきユースケースじゃない
問題発生時に責任持って尻拭いできるなら、pyinstallerで問題が発生しないことをお祈りしながら使い続けるのも一つの選択肢 >>966
Pythonで作ったPythonコンパイラが存在していて再配布可能なのであれば、
Pythonで作ったプログラムも再配布可能って理解は間違ってる?
PyPyは再配布を前提に作成されてないってこと? exeじゃなくてpythonとpackageと自作アプリ別々にインストールしてもらうと
後で客が勝手にpackageの依存関係壊したりして面倒なことになるのが判り切ってる 配布の仕組み自体が整備されてないような会社なんだろうけど、Windowsならインストーラ用意してグループポリシーを使うのが標準的
DBアクセス権限なんかも合わせて管理できる
あとはサポート用に診断スクリプトを用意しておく
exe化で表面的に問題が解決できるように感じるから本来必要な仕組みに意識が向かない >>932
悪いけど国語は昔10だった
俺は知能指数が人口の上位2%なので
あなたの話が通じてないんだと思う
具体的に話してもらえるかな? 他人に教えを乞うときに上から目線で臨むとどういう結果になるかわからない程度の知能指数w Flask は簡単っていうより簡素なだけ。
一枚のapp.pyから脱皮しようと依存性やらディレクトリ構成やらを考え出すと、contextがグローバルなことの難しさに直面する。
もちろん、これらの解決法もWebでたくさん転がってはいるけれど。 import requests
from bs4 import BeautifulSoup
url = "https://www.yahoo.co.jp/"
response = requests.get(url)
#response.encoding = response.apparent_encoding
with open('hoge.html', 'w') as file:
file.write(response.text)
print(response.encoding)
取得したyahooが文字化けするんですが、何が原因かわかりませんか?
文字コードはutf8になるので、これで問題ないはずですが、、、 >>960
技術的にはできるが
規約などをしっかり読めないあふぉがやると最悪タイーホ案件
>>963
日本語でおk >>976
IQじゃ数学と基本的単語が池沼該当か否かくらいしか測れないって見本だよなほんと975は
>>979
だれうまw >>978
まずはそのPythonを走らせてるOSの種類とバージョンを言ってみようか
DOS窓の設定を特段弄ってない状態のWindowsではないかとエスパーしてはいるんだが >>978
with open('hoge.html', 'w', encoding='utf-8') as file:
>>979は君のことじゃないからね >エンコーディングが指定されなければ、デフォルトはプラットフォーム依存です (open() を参照してください) >>985
どうも
めっちゃ見づらいんですけど、見やすいリファレンスありますか? >>976
思ったw
教えてもらっといて了解とかね くだすれPython(超初心者用) その50【まず1嫁】
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので
↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。最近流行中?
ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 くだすれPython(超初心者用) その49【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1595057607/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ### このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 40日 15時間 17分 5秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。