Pythonのお勉強 Part62
■ このスレッドは過去ログ倉庫に格納されています
★当スレにRubyのソースコード類を書くことを禁ず★ ☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止 ☆「Ruby では」「Rubyでは」をNGワード登録推奨 ◆エラーを解決したいときはエラー文(勝手に省略禁止)と 環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと ◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩壊するので ↓等のソースコードうp用サイトに貼ってきてくだしあ (スクリーンショットをimgur等にうpる「横着」禁止) ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう。 ◇Pythonオフィシャルサイト http://www.python.org/ ◇まとめwiki ttp://python.rdy.jp/ ●関連スレ● くだすれPython(超初心者用) その44【Ruby禁止】 http://mevius.5ch.net/test/read.cgi/tech/1563969768/ 〇前スレ Pythonのお勉強 Part61 http://mevius.5ch.net/test/read.cgi/tech/1563622784/ 次スレの建立は>>985 あたりが挑戦する。 [EOF] VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured for i in range(4): でした ここは1だろうが4だろうが関係ないですが >>439 bashだな。aliasに必要なものを登録してオレオレ疑似コマンドを作ってる だからさ、python でエラーになるコードをあげてpython スレで質問するというのがおかしいでしょ。 お門違いだよ。 専用のスレで質問したら? godot engine ってゲームでは流行ってるの? mainが繰り返し呼ばれる仕様なのかな? どっちにせよforの使い方でまた躓きそうな感じはする。 Pythonのリストってリスト構造なんですか?それとも配列なんですかね なんかリストだとパフォーマンス落ちそうな気がするので実装的には配列にしてそうな気がしますけど Godot の質問は、ゲーム製作技術板の方へ書き込んでください >>439 論理積 && で、つなげれば? >>447 Pythonにおける「リスト」は、他の一般的な言語における「配列」だ Javaを知っていれば、その「ArrayListクラス」がPythonの「リスト」と対応する LispやHaskellなどの関数型言語における「リスト」と対応するJavaの 「LinkedListクラス」は、残念ながらPython標準には含まれていない なお、Pythonのリストはより正確には「可変配列(mutable array)」になる そして「不変配列(immutable array)」をPythonでは「タプル」と呼んでいる これもまたHaskellやMLといった厳密な型システムを持つ言語だと、 タプルは数学の概念である直積(cartesian product、デカルト積)を指しており、 概念と用語の対応が世間の常識と乖離しているので注意が必要だ list → ArrayLis dict → MAP taple → ???(たぶんない) 複数の変数を返す関数、内部でtapleを使ってるんだよな 動的型付けの良い部分ってことなんだろうか >>439 venvの中にあるpythonを直接叩くとか。 >>439 . venv/bin/activate && pythonとでもしたら? 環境変数を自分であれこれすることを考えたくないからactivate呼ばないは無駄に面倒になると思う。 >>425 scikit-learnとか他に何点かインストールでエラーになった。 sklearnと互換性でエラーを起こすのかよ 触る気もおきねえ numpyとかが3.8非対応らしいけどどうしてそういうことが発生するのか誰か教えてくれ 3.8では非サポートになる機能を何か使ってたけどbeta期間中に対応終了しなかったってことなの? 中核ライブラリがマイナーバージョンアップの正式リリース後も使えないままで しかもインストール時のエラーで初めて気がつく状況って他言語ではあんまり聞かないんだが 後方互換性のないコードを書いてるということだが、なぜそんなことになるんだろう どうやったらそんなコードを書けるんだ? インストール時のエラーならまともだろ インストール後のエラーだと眼も当てられん いきなり飛び付くやつのほうがどうかしてる 修正版(x.1~)が出てからが本番だよなー 新バージョンは人柱向けって今の若い子は習わないんだろうね >>464 numpyはやらかした時のインパクトがとてつもなく大きいから、テストは慎重にやらなきゃいけない 特にPythonは頻繁に破壊的変更が入るし、Rubyなんかよりはマシとはいえ所詮はゆるふわ言語なのに、 近年になって信頼性を必要とする分野でも広く使われるようになってしまったことで歪が生じてるの 「多言語ではあまり聞かない」理由は、その言語が信頼性が重要でない用途で主に使われているか、もしくは互換性を言語側で責任を持って担保しているから。 Pythonの場合は信頼性の必要な用途でも広く使われているにも関わらず言語側が互換性を軽視しているため、 互換性を担保する負担がライブラリ側に課されているというわけだ。 Pythonではマイナーバージョンアップでも後方互換性のない破壊的な変更が入るのが常識? numpyのような重要なライブラリが新バージョンで使えなくても 新バージョンの正式リリース前にコミュニティに対して広く周知するような仕組みはない? Githubのissueみてもどれも「ライブラリが対応するまで待て」みたいなコメントばっかりで 実際の原因について言及してるやつが見つけられないから何が原因なのかよくわからない numpyがよく使われてるっていったって、標準ライブラリじゃないからなあ >>470 文法は後方互換だけど、処理の中身は微妙に変わる >>470 それはバージョンアップというものを勘違いしている。 クラウドサービスやスマホアプリなんかと違い、別に新しいバージョンが出たからといってすぐに移行しないといけないわけではない。 Pythonでは小数点以下1桁が上がるのは立派な「メジャーアップデート」であり、 当分の間は旧バージョンのマイナーアップデートも継続される。 そして、なぜ事前にテストしないかだが、それは以下の理由により時間の無駄だからだ。 ・上記の通り、新しいものが出たからといってすぐにアップデートをする必要がない。そもそも開発者自身もアップデートしない。 ・正式リリース前のバージョンは仕様が未確定であり、正式リリースまでに変更される可能性がある。 セマンティックバージョニングしか知らないボーイズ&ガールズが マイナーバージョンだから後方互換がどうたらと叫んでるだけじゃないの https://docs.python.org/3/faq/general.html#how-does-the-python-version-numbering-scheme-work > Python versions are numbered A.B.C or A.B. A is the major version number – it is only incremented for really major changes in the language. B is the minor version number, incremented for less earth-shattering changes. 以上です >>475 https://docs.python.org/3/whatsnew/index.html ここではx.y.zのx.yをmajor Python versionと呼んでいたりする 3.8も公式が普通に major release と呼んでるし、もはやセマンティックバージョニングの定義が実態と合ってないんだよね JavaやNodeも同様の状況になってバージョンを繰り上げた Pythonも2のサポートが完全に終わったら同様にPython9とかになるんじゃないかな >>471 Pythonにおけるnumpyの存在は、RubyにおけるRailsの存在に等しい numpy/scipyが無ければ、Pythonが誇る機械学習/AI関連のフレームワークは 登場しなかったし、少なくとも国内ではPythonは見向きもされなかった RubyがRailsの普及に比例して批判に晒されてきたのと同じ状況に ようやくPythonが追いついただけのこと 結局、言語のポリシーについてもわからないし どういう破壊的な変更が行われた結果ライブラリが使えなくなったのかもわかんないんだね Pythonではマイナーバージョンアップで後方互換性のない破壊的変更が入るかどうかはわからないが 重要なライブラリでも普通に使えなくなるし、その状況をまとめて周知するようなこともないから気をつけろ ってことで理解した NumpyはちゃんとメンテされてるバージョンのPythonをサポートしているので安心してもらって問題ないですよ Numpy以外のライブラリやフレームワークでもメジャーなものだと同じような状況です Python以外だって大抵の小数点以下がある言語で小数点以下が変更されたら 動かなくなるものがある印象だけどな。PHPだって、Rubyだってそうでしょ。 メジャーだけど、1年に1回ぐらいしか起こらないバージョン番号変化はどこが上がるのかという差異はあれど、 大抵どんな言語でも互換性問題を持っていると思うけど。だから1年に1回ぐらいでしか上がらないんだし。 前に参加してたプロジェクトは3.8にしちゃってたんだが、大丈夫かなぁ 心配になってきた 10レスくらいレスの無駄遣いがあるようだが 無視して読み飛ばして正解だった すいません、初めてですよろしくお願いします いま開発環境がcolaboratoryで、requestsとseleniumを使ってスクレイピングでデータ取得を行っているんですが、そのサイトは日本国内からのアクセスじゃないとダメらしいんですよね from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup # ブラウザをheadlessモード(バックグラウンドで動くモード)で立ち上げてwebsiteを表示、生成されたhtmlを取得し、BeautifulSoupで綺麗にする。 options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome('chromedriver',options=options) driver.implicitly_wait(10) driver.get("https:// スクレイピングしたいサイトのURL") html = driver.page_source.encode('utf-8') soup = BeautifulSoup(html, "html.parser") print(soup.prettify()) これになんとか国内のプロキシ噛ませられないでしょうか? 「selenium プロキシ Python」でぐぐれかす >>485 >>486 速度ってcolabと無料枠のec2どっちが速いんですかね? できれば速いほうでやりたいです >>491 スクレイピングはIOがボトルネックだから関係ない >>490 当然だがプリップリフレッシュな櫛をちゃんとどこかから拾ってきて設定してるんだろうな? 見本コードまんまコピペだと、櫛の具体的数値が指定されてないんだが。 てか単に開発したいだけならスクレイピングの部分は手元にJupyter入れて作っていったらいいだけなんじゃないの? pythonで10年ぶりにプログラム作ってるけど この型のデータはこの命令では処理できないとか わかりやすくする手段ないのかな もしかして実行して止まったときのメッセージしかない? プログラミングは全くの初心者なんですが、どう勉強するべきでしょう? とりあえず一通りの書き方の型を勉強するべきですか? >>496 type関数で型をチェックしながら書くことはできると思うけど、 それが色んなところで必要だったら静的型付け言語で書いたほうが良いと思う。 >>497 ライブラリは無視して、一通りの文法と書き方を勉強するべき lgbやcatのカテゴリ型を指定する時に、 頭がこんがらがって、型チェックが恋しくなったバカは俺だけかな >>498 ひたすら基本文法を覚えて、それをどうアプリ開発に使えるんでしょうか? 文法の書き方は書いてあるサイトが沢山ありますが、その文法をどう応用できるのかがわかりません… web アプリのひな形は、Ruby on Rails です! Spring Boot, CakePHP など皆、Rails のコピーですから さらに、Node.js も、Ruby のコピーです! >>500 その著しく低い質問力では欲しい回答を引き出すことはできないので まずプログラミングは無視して、基本的な勉強の方法を勉強するべき railライクなライブラリが増えたな Djangoでいいよね >>503 ごもっともです(泣) 聞き方変えます…基本文法覚えたら次はどうすればいいですか? >>500 まず、文法覚えないことにはインタプリタにちゃんと解釈されないコードを書くことができないので必須 >>505 ネット上にいっぱい転がってるチュートリアルを何個かこなす。わかってきたと思ったら 身の回りにある簡単だけどアルゴリズムで生成できそうなもの(カレンダーとか)を作ってみるとか、 システムで処理できそうなもの(家計簿とか)を超簡単で良いから作ってみる そもそも、アプリといっても色々種類があるけどどういうアプリを作りたいの? 何か作れ。ツイッターやSlackとかのAPIを叩くのがお手軽でいい。 Webに向かっても良いし、ツール作っても良いし、機械学習やってみるのもいい。 本読んだだけだと、分からない事が一杯あることに気づく。 >>506 インタプリタにちゃんと解釈されない→インタプリタにちゃんと解釈される、だ >>506 例えば勤務表アプリみたいのを作れますか? 1〜10まで順番に勤務パターンがあって、調べたい日時入れると自分の勤務はどれか教えてくれるやつです >>510 かなり簡単だと思うよ。 文法の他にも基礎的なデータ構造の応用例は知っとかなきゃだめかもな。 配列、辞書がなにを意味するか程度で十分だけど。 >>511 ありがとうございます。 基礎的なデータ構造の応用例を知る必要があるとの事ですけど、その文法の基本をひたすら勉強して、それをどう応用してアプリにするのかが私の調べ方が悪いのかネットでは探せなかったです。 >>508 インタプリタちゃんに解釈される、でも問題ない 検索なら普通は、sqlite3 みたいなデータベースを使う Excel, CSV ファイルとか >>516 プログラムの勉強をするのに、最初からsqlをやらなくてもよくない? >>505 基本文法を覚えるより前に まず目的を明確にしてそれを達成するために必要となるだろうパーツを 分からないなりに自分で考えて調べてリストアップすることからはじめるといい 目的から逆算して何を学ぶ必要があるのかを考えていれば 質問の中身も変わるし学習効率も上がる それと、何事もまず自分で選択肢を考えること 次に調べたり試したりして、人に聞くのはそのあと 考えたり調べたりするのは5~10分とかの短い時間でも構わない 自分なりの考え・意見・仮説を形成しようという思考の営みが大切 (説教臭くてごめんよ) >>505 なんらかの目標があるのなら最初からそれをやっていけばいい 機械学習、統計、ウェブサイト、デスクトップアプリ、科学計算…… pythonにはだいたいの分野に無料でライブラリは揃ってるから 基本文法の他にそれぞれの専門のライブラリの使い方を学んでいけばいい 特に目標がなくプログラミングの知識をつけたいってことなら「アルゴリズムとデータ構造」系の本で勉強するとか オブジェクト志向関連の知識をつけるのがいいんじゃないか? そのうえでAtCoderとかの競技プログラミングサイトで実力試ししてみるのもいいぞ 実務プログラミングとは勝手が違うけど採用の参考にするっていう企業もあるらしいしな 他にはpyxelっていうレトロゲームエンジンが個人的に今は熱いな pythonで簡単にシンプルなドット絵ゲームが作れて楽しいからとりあえずの目標としてはオススメ 例えば、CSV なら、 person_id, date, pattern 1,2019-03-10,2 2,2019-03-10,3 1,2019-03-14,3 1番の人は、2019-03-10 に、パターン2 で働く 機能設計が出来ないのはパソコンの前に座って解決する問題ではない 505です 皆様ご丁寧にありがとうございます! まずは基本の文法を徹底的に覚えようと思います。 ここの皆様はプログラミングは独学で勉強されたんですか? 基本文法を覚えてから次のステップに進むのがハードル高そうだなと感じています。 Don't think, FEEEEEEEEEEEEEEEEEEEEEEEEEEL! >>528 あとは今年からの日本の空気的には Don't think, feel. Think about eel!!! ってかんじかも、しんない。 鰻ってバグ多すぎじゃね 基本的には無視出来るけど、たまに歯茎等のハードに影響出て致命的なシステム障害おこす >>523 基本文法を覚えながら、例文を片っ端から動かしていくんだよ。 >>532 例文はネットに転がってる勉強サイトみたいな所のをやれば大丈夫ですか? Progateというプログラミング学習サイトでPythonを学んだのだが いかんせん学習量が浅すぎた if文、for文、配列、辞書、クラス、親子継承くらいまでしかやらなかった 打ち切るようにすぐ終わってしまい残念だ 初級者レベルを脱してここから先が覚えたいところなのに どうやって中上級者や実務レベルまで引き上げるのでしょうか? なにかプログラミング学習に適した書籍やサイトがあれば教えてください >>534 どういう実務がしたいんだ 画像処理ドカタ SQL奴隷 ひたすら文字列処理 いま流行wのAI(機械学習) などなど いろいろありまんがな >>531 それ「致命傷」になるんかwやばいなwww > 歯茎に影響 喉の奥の方に小骨が刺さって耳鼻咽喉科 が 一番起きうることなんじゃね? 次がビタミンAの過剰摂取か 加熱不十分による毒素あたり(生の状態だと有毒魚) >>534 > if文、for文、配列、辞書、クラス、親子継承くらいまでしかやらなかった それだけやれば充分じゃね? それ以降は>>535 の言うように何をしたいかによるし >>534 Udemyの酒井潤って人の講座オススメ。 >>534 実務レベルのスキルを身に着けるなら実務に就くしかない 机上の自己学習なんてお遊戯みたいなもんだ あともし仕事にしたくて勉強しているのならやめた方がいい この国ではプログラマは土方としてITゼネコンにボロボロになるまでこき使われ搾取される フリーランスになっても足元見られて安く買い叩かれ雑用を押し付けられる なーんもいいことないから >>539 さすがにこの流れでそういうこと言い出すのは病気。 これからの時代にはプログラミング、特にこういう軽量言語でのプログラミングなんてものは日曜大工と同じくらい誰でもやることになるべきなのに こういう職業としてやることを前提にして無駄に厳しくあたる輩が普及を妨げている >>534 Youtubeで「narupoのPython入門」で検索! ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる