Pythonのお勉強 Part65
■ このスレッドは過去ログ倉庫に格納されています
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
〇前スレ〇 Pythonのお勉強 Part64
https://mevius.5ch.net/test/read.cgi/tech/1600035173/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured >>73
# str.replace (Python method, in Built-in Types)
# Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.
# 文字列をコピーし、現れる部分文字列 old 全てを new に置換して返します。オプション引数 count が与えられている場合、先頭から count 個の old だけを置換します。
# 3つのJavaのうち左端から2つ目までのJavaをRubyにreplace
print( 'パイソン/Java/パイソン/Java/パイソン/Java'.replace('Java', 'Ruby', 2) ) # パイソン/Ruby/パイソン/Ruby/パイソン/Java
# print( 'Python2'[::-1] ) # 2nohtyP
# 3つのJavaのうち右端から2つ目までのJavaをRubyにreplace
print( 'パイソン/Java/パイソン/Java/パイソン/Java'[::-1].replace('Java'[::-1], 'Ruby'[::-1], 2)[::-1] ) # パイソン/Java/パイソン/Ruby/パイソン/Ruby
print( 'パイソン/Java/パイソン/Java/パイソン/Java'[::-1].replace('avaJ', 'ybuR', 2)[::-1] ) # こっちでもOK str.replace(old, new[, count])
>>73
str.split(sep=None, maxsplit=-1)
文字列を sep をデリミタ文字列として区切った単語のリストを返します。maxsplit が与えられていれば、最大で maxsplit 回分割されます (つまり、リストは最大 maxsplit+1 要素になります)。 maxsplit が与えられないか -1 なら、分割の回数に制限はありません (可能なだけ分割されます)。
sep が与えられた場合、連続した区切り文字はまとめられず、空の文字列を区切っていると判断されます(例えば '1,,2'.split(',') は ['1', '', '2'] を返します)。引数 sep は複数の文字にもできます (例えば '1<>2<>3'.split('<>') は ['1', '2', '3'] を返します)。区切り文字を指定して空の文字列を分割すると、 [''] を返します。
sep が指定されていないか None の場合、異なる分割アルゴリズムが適用されます。連続する空白文字はひとつのデリミタとみなされます。また、文字列の先頭や末尾に空白があっても、結果の最初や最後に空文字列は含まれません。よって、空文字列や空白だけの文字列を None デリミタで分割すると [] が返されます。
print( 'Python Java Ruby'.split() ) # ['Python', 'Java', 'Ruby']
print( 'Python Java Ruby'.split()[::-1] ) # ['Ruby', 'Java', 'Python']
print( 'Python,Chon,Ruby'.split(',', maxsplit=1) ) # ['Python', 'Chon,Ruby']
lst = 'C:\\Users\\a12021-06-03.jpg'.split('\\') # ['C:', 'Users', 'a12021-06-03.jpg']
print( lst[0] + '/' + lst[1] + '/' + lst[2] ) # C:/Users/a12021-06-03.jpg http://up-img.net/img.php?mode=JPG&id=22075
画像で失礼します
factorial関数の引数に空のリストaを初期値として渡していて
なぜか再帰呼び出しのときに自動的にaを更新してくれているのですが
どうなってるのですか?
6行目を
return n * factorial(n - 1, a)
としたときの結果と同じ挙動だったので質問しました すみません、解決しました
デフォルト値として設定した
空のリスト[]が保管された場所を変数aが参照するのでデフォルト値は始めの1回のみ代入されるみたいでした Pythonでの描画の保存について質問です。
白地の窓の中にマウスで描画した図形をPNG形式で保存するアプリを作成したいです。
TkinterのCanvas Widgetで描画しましたが、ポストスクリプト形式でしか保存できないようです。
@TkinterのCanvas Widget以外で、描画した図形をPNG形式で保存できるWidgetはありますか?
Aもしくは、GhostScriptなどを使わずにポストスクリプト形式をPNG形式に変換する方法はありますか?
どちらか簡単そうな方を教えて下さい。 PSならPILみたいなので画像変換出来そうだけどね
スッタクホバースロローに書いてそう スッタカバースロローから拾ってきた
import PIL
canvas.postscript(file="canvas.ps")
PIL.Image.open("canvas.ps").save("canvas.png", "png") pythonでword扱いたいのですが、word本文中の指定範囲に入力されたlatex形式の数式をwordの数式にしてword形式で出力することはできませんか? >>109
入力形式はwordでもテキストでも大丈夫です >>108
外部実装無し?psインタプリタ実装ってすごいね、結構複雑な言語なのに pythonを勉強し始めたんですけど、コードを写してコメントでどういう処理をして
いるのかを書くという勉強方法でも問題ないですか?
またprogateの無料のところは終わらせたんですけど、課金する価値はありますか? 2chねらの平均年齢を察するにprogateやったことある奴はいない
なので「価値あった!やるべき!」という答えが欲しいか
「価値無い 本読め」「やらなくても出来る」という答えが欲しいか >>112
progeteとっかかりだけやってやめたけど
課金する価値はあると思うよ 勉強する目的によるね
趣味なら好きにすればいいし
機械学習エンジニアを目指すなら統計学の勉強した方がいい気がする 月額で1000円ちょいか
短期集中して学べる性格と環境なら課金してもいいんじゃない
だらだらと1ヶ月以上かかりそうなら本買ったほうがいい気がする
あとやるにしてもpythonコースだけやとそんな量ないから課金したらいくつか別コースやらんと損やよ
課金する前に他に何コースやるかざっとリストアップしたほうがいい >>107
ありがとうございます。
Skia-pythonは手書き(フリーハンド)での描画の例がなかったので諦めました。 >>106 >>108
実はその例が正にGhostscriptを使う例なのですが、
Ghostscriptを無理矢理インストールして画像変換できました。
ありがとうございました。 Pythonで24bppのPNG画像を8bppに変換する方法を教えて下さい。
ある関数にPNG画像を入力したいのですが、
その関数が期待している入力は8bpp(画像のプロパティで見ると「ビットの深さ」が「8」)のPNG画像で、
自分が画像を生成すると24bppになってしまいます。
そこでPythonで8bppに変換したいのですが、検索しても見つかりません。
生成した画像がカラーになっていたので、グレースケールに変えたのですが、まだ24bppのままです。
どうかヒントだけでもお願いします。 >>118
やはりか
gsはクロスプラットフォームだしGPL版もあるしそんなデカくないし、避ける理由が気になる
ps吐けるライブラリは、大体内部的に最も精緻に描画できるpsコード生成で処理してるはずなので
自動生成コードを手直ししたり、
pythonの充実した文字列処理や補完(f文字列等)はpsコード生成と相性がよい
マルチパラダイムを謳うpythonで唯一カバー出来ないパラダイムの言語だし、とてもエレガントなので、pythonの次に学ぶべきプログラミング言語としてイチ推し あ、cpythonに含まれてるtclとsql(ite3)に次いでね >>119
Pillowで.convert("P")や.convert("L") >>123
その通りでした!
.convert("L")で行けました。
ありがとうございました。
>>120
減色だけでは駄目でした。 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw 入門python3の第2版購入しようか迷うな、初版持ってるけど 入門書自体に興味あるなら翻訳プロジェクトに参加してみて! 貢献者に先進的(笑)なコミュニティから来た人が増えたからか
言語仕様に対するスタンスが全く保守的ではなくなったね そうか、残念だな
pythonの保守的なところが好きだったんだが python4kで構文マクロとりいれて失敗した機能はぜんぶマクロ実装
パフォーマンス低くて誰も新規では使わなくなる
この線で ✖︎python遅い
⭕pythonは言語ではない
◎pythonは他言語で書かれたモジュールを統合的に呼び出すインターフェースとしてのDSLであり、「たまたま」チューリング完全になってしまった為、完全性を悪用してpythonで計算をしようとする不届き者が後を絶たない
https://mobile.twitter.com/4th_no_fon/status/1203593444595122176
https://twitter.com/5chan_nel (5ch newer account) Perlの教訓を生かしてクソ化はしないと思うけど分からんな アノテーションとか型ヒントって使ってる?
これらが必要な大規模プロジェクトではPython使わないだろうし >>136
Perlってクソ化したの?
なんでそうなったの? python と Qt は相性がいいので、なんの問題もありません。 >>137
まあまあ使ってるけどTypeScript並に型推論効いてくれないと今一歩なぁって感じ
あと構文がキモい あ、型推論は言語じゃなくてタイプチェッカー側の問題だってのは分かってて言ってますよ >>143-144
あア、ナルほど!
ユーザーがパー(ル)だったわけですね!!!!!!!!!!! 3.8.11ってバイナリは提供されないんだな
3.10がまだなのに、もう切り捨てかよ Python使ってAPIで予めエクセルに記載した証券コードの現在の株価をエクセルで吐き出す
ってのをやりたいけど、yahoo finance API を使ってできる?
また、その場合の難易度ってどのくらい?初級者でもできそう? できるけどあんまり当たらないよ
ものすごく当たるんだったら
みんな既に使っていて
みんな大金持ちになっているよね え?
API使って現在の株価を吐き出すのに外れるの?
Yahoo finance APIがポンコツってこと? ほとんどの人が負けるのは、
下がる時に買って、上がる時に売るから
勝つには、上がる時に買って、下がる時に売らないといけない。
このアルゴリズムを見つけるのが困難
最も簡単に勝つ方法は、ダウ。
下がる幅が小さい割に、上がる幅が大きいから。
長期間やると、どの指標よりも特になる
例えば、100 → 70 → 120
一旦下がっても、結局上がって、元よりも増える
これがダウ以外だと、
100 → 50 → 110
みたいな感じで、ダウよりも戻り方が小さい 下がってから買って上がってから売ればいい。つまりドルコスト平均法。 株で儲けたいなんて書いてないのに
ちゃんと読もうね 結局儲け話になる事を想定して釘を刺したのか
勝手に思いを巡らせて暴走して書いたのか
脈絡からすると後者なんだろうな マジレスすると
>下がってから買って上がってから売ればいい
長期なら利益出るかも知れないが動くまで何年もかかる
短期なら薄利多売で回す必要があるが手数料もそれだけ増えて損する 国語で思い出した
表記ゆれをルールで修正するのではなく
機械学習で修正してる人居ます?
参考にされたドキュメントがあれば教えてほしい 表記ゆれの修正とかtextlintしか知らなかったわ
機械学習のやつとかあるんだな >>162
機械学習といえるかどうかわからないがSudachiPyには代表表記を取り出す機能がある pythonを学び始めようと思っている高校生です。
webサイトでの支払いができないので、書籍を使い学習しようと考えているのですが、初心者には厳しいでしょうか?
また、将来は機械学習に触れたいのですが、そのための学習の進め方や、得た知識をアウトプットする手段、
機械学習に手を出すのに最低限必要となるスキルがどの程度なのか教えていただけると幸いです。 なかなか良い釣り質問だ
上から目線のレスが山のように付くと予想 釣りではないです。知識不足で情報の選別が大変なので、ただただご教示頂きたいと思っています。 >>167
別にprogateみたいなWebサービス使わなくても書籍で十分やれる
まずはPythonの入門書を1つ終わらせてながら、ついでにGitの辺り覚えれば良い
分からない事あったら5chで聞いてもいいし
DiscordにPythonコミュニティもあるからそこで聞くのも良い Googleアカウントがあるなら colab無料分だけで
結構いけるよね >>168,169,170,171
ご回答ありがとうございます。非常に参考になります。 気になる点があるので、重ね重ね質問失礼します。
・pytonの後にGitというアドバイスがありますが、機械学習をする上でGitを学ぶメリットは
どの程度あるのでしょうか?学習できる時間が限られているので優先順位や有用性を知りたいです。
・colabについて調べてみたところ機械学習の教育や研究用の開発環境と出てきたのですが、
pythonの基礎知識が不足している人間が触っていいものなのでしょうか?
・pytorchの資料無料が公開されていると書かれていますが、プログラミングにおける「資料」というのは
どのような意味があり、どのようにしてそれを学習に役立てれば良いのでしょうか?
素人質問で申し訳ございませんが、ご教示いただけると幸いです。 >>173
colabはローカル環境作らなくて良いから
良いぞ
vscode経由でもいけるし >>174
ご回答ありがとうございます。
Colabについて調べてみたところ、有用性が理解でき疑問は解消されました。 学習する時間が限られてるなら、尚更とりあえず手を動かすのが良いよ 線形代数、微分積分、統計学も勉強しておくといいよ
機械学習の仕事に就くと使うから >>173
>・pytonの後にGitというアドバイスがありますが、機械学習をする上でGitを学ぶメリットは
>どの程度あるのでしょうか?学習できる時間が限られているので優先順位や有用性を知りたいです。
Gitはバージョン管理ツールで、機械学習というよりプログラミング全般でよく使われる
ぶっちゃけ基本的なコマンドとかよく使うコマンドだけなら1〜2時間で学習できるから
Pythonと一緒に覚えていくと今後が格段に楽になる
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
基本情報技術者資格、Ruby on Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
今までは、Docker Compose までが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript なども必要
だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!
git はここには書いていないけど、これらの技術よりも、はるかに常識。
すべての言語・プロジェクトで使うものは、
基本情報技術者資格、プログラミング言語、Linux, Docker, AWS, VSCode, git。
すべての言語で、Docker Compose までが初心者用コース たくさんのご回答ありがとうございます。
とりあえず手を動かしてみて、数学にも力を入れようと思います。 たくさんのご回答ありがとうございます。
とりあえず手を動かしてみて、数学にも力を入れようと思います。 >>179
非常に分かりやすい説明ありがとうございます。
pythonの学習がある程度進んだら追々取り組もうと思います。 一通り調べてみましたが、webのみでは難易度が高いと思ったので書籍中心に学習を進め
ネット上の情報も+αとして活用してみようと思います。
また、最近ではyoutubeでプログラミングを教えている方も多いですが、あのようなコンテンツも
教材として信頼できるのかアドバイスを頂きたいです。 効率的に学ぶなら講習会なり書籍通して、の方が統一性があるから良いかと。
つべとかwebのノウハウ集は分からないところが出てきたときに再度検索からする労力が必要。あと、頭の中で順不同の情報を整理出来るか。 Ruby on Rails なら、YouTube で有名な、雑食系エンジニア・KENTA のサロン。
日本6位の2千人が入っている、超有名人
Python では、キノコード。
AWS なら、くろかわこうへいのサロン。
PHP なら、たにぐちまこと
Udemy の山浦 清透
Git の動画なら確か、たにぐちまことなど、上の何人かが作っている >>184
Web教材は体系的に整理されてるか微妙な所があるな
ある程度書籍で覚えてから、参考程度に見る分には良いかもね
(説明してるライブラリのバージョンによっては最新版だと上手く動かない、ってのも全然ありうるし) ご回答ありがとうございます。
皆さんの意見から、基本的には書籍中心に学習し必要があればweb教材で知識を補填する方向性に決めました。
最後に書籍で学んだ知識を効果的にアウトプットする為の方法やアドバイスが欲しいです。
やはり、とにかく手を動かして色々と試してみるのが一番でしょうか… >>188
実際に何か作るのが良いけど、多分最初は色々と厳しいから
AtCoderとかの競技プログラミングみたいなやつを齧るのもあり
(簡単な問題なら基本構文を覚えてれば十分挑戦できる)
アウトプットの練習にもなるし、プログラミングの考え方も覚えられるから個人的にはオススメ
(同時に「プログラミングの仕方は人それぞれ」っていうのも実感出来ると思う、人の答えを確認した時とか) プログラミングは手段でしかないから
作りたいものがないと長続きしないよ 競プロは良い選択肢
pythonなら標準入出力で困ることもほぼないだろうし
C問題が解けるようになる頃には何かしら作れるようになってるよ >>191
いや、pythonで重要なのはクラスを使う力だからアルゴリズムよりもそっちだな
Pythonicなコーディングを守る方がよっぽど大事だわ 競プロ自体は前から少し興味があったので触れてみようと思うのですが、
機械学習を目標とした場合遠回りになってしまう可能性があるのか気になります…
理解を深めるため一応触れてみて、ある程度のラインまで到達したら一旦手を引く感じがいいですかね?
クラスについては名前しか知らないので追々学ぼうと思います。 >>194
とにかく手を動かすんだ
今日中に1つプログラムを書くように
なんでもいい ぶひゃー
勉強したそばから忘れてく
俺はにわとりなのか Python3入門ノート→python2年生→python クローリング&スクレイピングって本の順に写経進めて来たけど、python クローリング&スクレイピングがいまいち理解できなくて中々進まない
htmlとcssとJavaScriptも学んだほうが理解が進みそうや >>198
そりゃそうだ
クローリングなんて初学者のするもんじゃない
プロバイダからの警告は普通にありえるし、海外では訴訟もある 図書館に、毎秒アクセスしていた香具師が、業務妨害で逮捕された!
逮捕されたくなければ、サーバーへのアクセスは、1日1回までにしておく事
基本、5ch みたいにサイトと契約して、サイトのAPI を使う。
スクレイピングできる条件は、サイトのrobots.txt に書いてある ■ このスレッドは過去ログ倉庫に格納されています