くだすれPython(超初心者用) その49【まず1嫁】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★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 ### 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でクリップボードを読み込んでそのまま処理させてる ■ このスレッドは過去ログ倉庫に格納されています