くだすれPython(超初心者用) その39
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その38 https://mevius.5ch.net/test/read.cgi/tech/1526522954/ Pythonが好きだからこそ他言語を挙げて叩くというマッチポンプをやりたいんだろうな 正直そんな理由でPythonスレを荒らすなよと プログラマは知識マウントしたがる奴が多すぎて、初心者を鬱に追い込む件 >>370 貶されて当然とゆう事は断じてない 間違いなくペチパー、ジャバパー、そしておまえ、は現代の三大バカやけどw 普通の荒らしかリアルでゴミみたいな扱いをされて俺の使ってる言語は凄くてそれを使える俺は偉い!他の言語使ってるようなやつはクソ野郎!ていう思考でも持っているのでは? どっちみちこのご時世でマッチポンプに引っかかる奴はいないだろ >>368 それはない。 pythonスレ以外でも全力でruby上げしてるガイジだぞ? if文が複数できない・・・ x = 2 if x == 2: print("数字は 2.") if x % 2 == 0: print("数字は偶数.") if x % 2 != 0: print("数字は奇数.") これを入力したいのですが4行目でエンター押して毎回エラーになります・・・なぜ…? あっすみません インデントはしっかりやってました 正確にはこうですね 失礼しました x = 2 if x == 2: print("数字は 2.") if x % 2 == 0: print("数字は偶数.") if x % 2 != 0: print("数字は奇数.") ただこれでもエラーになるという・・・ ええ・・・if文ホントは複数無理なんじゃね・・・? って心持です 参考書のままにやってるのに・・・ ちなみにバージョンは最新だと思います 3.7(32-bit) >>378 2行目以降のifをelifに置き換える、が答えになると思う 一応そのままゴリ押しするなら一文ごとにelse:で閉じるでもできなくはないと思うが どんなエラー? インデントにタブとスペースが混ざってたりしない? エラーメッセージをエイリアン語か何かと思って無視する癖を止めたら、超初心者は卒業できると思うよ。 兎に角エラーメッセージを晒してね >>378 対話モードでやってるからエラーになるんだろうな 4行目を入力する前に空行を入力して if文が終わったことを明示しなくてはならないかと 6行目のところも同じことがいえる >>386 ありがとうございます 納得しました 次はエラーメッセージも晒します >>388 人になつかれたことなさそうな人がなんか言ってて笑える 分からん。。。 もう一度、プログラムを見つめ直してみる。 ポジション取るんだけど、バックテストで資金が上昇してもロットは一緒。 >>389 藁 なんで、コンソールなんか使うのか? Ruby, Python でも、VSCode を使え! 拡張機能のCode Runner で、何も考えずとも、右クリックメニューから実行できるわい! 関数呼び出しの構文について教えて欲しいんだけどさ AAA(BBB: CCC)とAAA(BBB=CCC)って一緒なの? AAA(**{BBB: CCC})とAAA(BBB=CCC) はホボ一緒だけど 関数の定義のされ方によっては違う djangoでゲーム作ってる方っています? 作ってるなら、どんな感じのゲームを作ってるか知りたいです djangoでのwebアプリ制作の練習も兼ねて、ログインとかデータ保存のできるブラウザゲームを作ろうと思ってるところなんですが、個人でフレームワークを使っての開発は手に余るかな、と気になって… JavaScriptの方が管理しやすいかなぁ >>399 Dangoでゲーム? フロントエンドどうすんの? JS必須だろ ほんとだ、結局JavaScriptが必要ですね それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ… 既に環境を構築してあるDockerを使え 便利だぞ webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます jsonをcsvに変換する良い方法他にないですかね? jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです csvは10万行近くになります 元のjsonファイルと出力したいcsvのイメージ貼ってみ 1レコードあたりの行数に目途が付くなら 単にテキストファイルをシーケンシャルに読んで レコード毎にループして正規表現とかで処理するか 丸ごと一個のjsonを読むんじゃなくて json の visits [] の中身だけに適用して やっぱりレコード毎にループで処理 ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ >>408 全体的にpandasは使わずに 正規表現などを使った自前の処理でカンマ区切りのテキストを生成して テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね ということ あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか "os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば 多少早くなるかも jsonのobjectって結局馬鹿デカいリストだから 全部pandasに食わせるのは非効率 >>407 >>409 ありがとうございます 目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので… pandasは勝手に軽いものと思ってたんですがそうでは無いのですね もう少し自力で試しつつ、無理そうであれば別の方法探してみます 回答ありがとうございました 25000件で10万レコードって意味なら 1レコードあたりたったの4行だぞ 大したことないじゃん anaconda環境でnotepadでプログラム書くのできますか? Jupiter使ったほうが良いでしょうか? メモ帳は、プログラミングに使ったらダメ! BOM付きUTF-8 になるから、バグる。 BOMなしUTF-8(UTF-8N)にできるエディタを使うべき! 今は、すべての言語で、VSCode を使う >>415 ありがとうございます。PCが古いので軽いの探します。 >>417 メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる いろいろな言語の予約語の強調表示にも対応してる TeraPad https://www.vector.co.jp/soft/win95/writing/se104390.html >>415 すいません、ありがとうございます。 それとパスが通ってなくコマンドプロンプトからpythonと入れても起動できなくて、anaconda3\pythonだと起動するのですが。 環境変数にC:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin;など色々試してもダメでした。 英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。 なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。 Python と Javascript ではじめるデータビジュアライゼーションの50ページです https://ideone.com/Xv83M6 28行目でエラーになってしまいます。 Traceback (most recent call last): File "./hoge.py", line 28, in <module> cols.sort() AttributeError: 'dict_keys' object has no attribute 'sort' 何がいけないんでしょうか? 'dict_keys' オブジェクトは 'sort' 属性をもっていない sortメソッドはおそらくリストオブジェクトのメソッドだろうから dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ >>417 MeryやgPadがおすすめ TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない >>422 どうもありがとうございます list()で括ったらうまくいきました 3年くらい前の本なんですが、Python2だとこれでも動いたのかそれとも誤記なのかどっちでしょうか? 次のページで、printする際に最後にコンマを付けると改行されないと書いてあったけれど、python3ではコンマ有る無しで表示結果は変わりませんでした。 print(hoge), # こんな感じで 漏れは、TeraPad は、メモ書きに使っている。 アプリのサイズが小さい ただし、一部の文字が使えない。 中国の地名の「深圳」みたいな文字が「深?」になる >>424 詳しくはpython2とpython3の違いでググってね >>419 例えば、コマンドプロンプトで、where notepad と入力すると以下のように、メモ帳の実行ファイルのパスが表示される C:\Windows\System32\notepad.exe C:\Windows\notepad.exe 同様に、where python と入力すれば? これで正しく表示されないのなら、 python.exe があるフォルダを、ユーザー環境変数PATH に追加する 環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、 その知識がないと、開発なんてできない! >>424 3年前でpython2なのか、スゲー本だな 訳注ぐらい入れれば良いのにね python3だとprint(hoge end='') いけねカンマ抜けた print(hoge, end='') >>426 >>428 >>429 どうもありがとうございます。 2と3の違いググりました。 listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね 2016年7月に原書が出て2017年8月に日本語版が出た本です。 今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。 print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。 >>427 ありがとうございます。 ずっとやってましたが、色々と調べててもわかりそうにありません。 anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。 ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。 自分でいじるのは、知識をどうにかしてつけてからにします。 >>431 Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽 Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん C:\Anaconda3にパス通しても動かなくて当たり前 コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く >>432 将来的に検索もできる対話型AIを作りたいです。 >>433 その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。 パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。 一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。 Linux の基本コマンドとか、環境変数PATH など、 OS の基礎を知らない人は、開発者になれない 情報処理資格とか、コンピューターリテラシーが必要 仮想環境では、activate を実行したときだけ、 環境変数PATH に追加するようなプログラムもある activate する前には、python というコマンドは実行できないが、 activate した後には、python というコマンドが実行できる >情報処理資格 Linux とは関係ない 開発に必要ということは同意 EXCELを操作できるライブラリopenpyxl(ver2.3.0-1)なんですが行の挿入でエラーになります。 import openpyxl as py wb = py.load_workbook('aa.xlsx') ws = wb.active ws['A1'] = 'NURUPO' ws.insert_rows (1) wb.save('aa.xlsx') insert_rowsじゅないの? re.searchでグループ化したものを取り出す時に ?P<name>で出来たのですが re.subと同様に通常の正規表現の「\1」のように 書く書き方は出来ないですか? よろしくお願いします。 >440 > m = re.search("b(.)", "abcdefg") > print(m.group(1)) c Py_INCREF()を呼ぶタイミングを教えてください 下のようなコードを書いたとして、 mainの中でfunc1が呼ばれない場合でもhogeはimportされますか? func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね? def func1(): import hoge ... def main(): ... >mainの中でfunc1が呼ばれない場合でもhogeはimportされますか? されないよ ためしてみそ ありがとうございます! 確かめたくても方法が分からなかったですので。助かりました >>448 >>445 の状態で、importしてないと呼び出せない機能をmainに書き込む たとえば def func1(): import re re.compile('hoge')←これはfunc1をよんでくればエラーしない def main(): re.compile('hoge') ↑func1をよんでないのにこれ書いたらエラーする その理屈だと一回呼んで戻ってきたら使えることになるな >>452 あー そのはっそうは なかったw 450のかき方(インデントは正しくできているものとしてクレン)したら、 func1の中でしかreのimportは効いてナインかな ちょっとちゃんと実験してみるは... 三 ( ´D`) ( ・∀・)ノフォラァヨ!!---===≡≡≡ ttp://dpaste.com/18SSZEP :main内でエラーするかきかた つづき ttp://dpaste.com/17A5RJ3 :やっぱりmain内でえらーしますた (この はっそうは なかった) けつろん >450の注釈はまちがいまくりだな!ゲヒャ(∀・∀) >>452 の疑問はどんぴしゃごもっともだった けつろん > 450のかき方(インデントは正しくできているものとしてクレン)したら、 func1の中でしか reのimportは効いてナイン 結局スコープ内でしか有効じゃないから確かめる方法は無いってこと? >>460 >>449 キャッシュで判る 実行前にキャッシュを消して 実行後にキャッシュが出来ているかを見れば 読み込まれたか無視してるかは判る キャッシュはどうやって見れますか? mainでキャッシュ見れる関数を書くのですか? マジでアホの考えなんとやらだ importするとクラッシュするモジュールを用意して func1からimportしてみりゃーいいだろ クラッシュすればimportされてるし、しないならimportされていない importするとクラッシュするモジュールが発見出来ませんでした・・ よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。 importするmoduleを自分で書くなら moduleの初期化時にprint('読まれたよ!')って書いて置けば桶 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる