くだすれ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 ### グイって必要なん?
自分用なら動作してることが確認できればじゅうぶんだけど >>749
C#はUnityにも使えるし良さげだけど、将来性はどうなんやろうな。
PythonとJavaScriptは20年後も現役な気がするけど。。。
C#は消えてそうで怖いなw >>752
Windowsが使われなくなるか、MSがC#以外の言語を数年以内に発表してそっちが主流になればあるかもしれないけど、
C#はWindowsでは盤石の地位を築いてるのでなかなかないと思うよ
ちょっと冗長なくらいでコンパイル言語の中ではかなりの優等生だし
そもそも、5年後の話ならともかく20年後の状況なんて考えても仕方ないだろう
言語とは関係のない破壊的イノベーションが起きてても全くおかしくない >>753
そうか。PythonのGUIとしてC#使ってみようかな。 YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむので非効率。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
C/C++ などのポインタ系や、ハードウェアの仕組みなども、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
ただし、Unity は、AWS でも採用しているように、スマホアプリで使う。
今後、iOS, Android のネイティブ開発と、Unity のシェアがどうなるか?
ウェブアプリは、Rails の1強。
単機能なら、サーバーレスのAWS Lambda が流行る >>747
そこまでするぐらいなら他の言語使うべきかも beautifulsoupでaタグかつurlがhoge.comのものを抜き出したいです
find_all('a', href='hoge.com')
みたいに指定することってできませんかね? Ruby, Nokogiri で、
CSS セレクター、a[href="abc.com"] で検索すると、
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html><body>
<a href="abc.com">abc</a>
<a href="xyz.com">xyz</a>
</body></html>
EOT
elems = doc.css( 'a[href="abc.com"]' )
puts elems[ 0 ].text #=> abc >>755
ケンタは古いタイプのエンジニアでGUIやフロントはまったくできないから参考にならんよ
ユーザーが使う側の開発できない奴はそっちはデザイナーがどうのこうのとか見向きもしないからな
デザイナーがReactとかやるのかよ 全部pythonでやりたければブックマークが保存されてるテーブルをsqliteで読む >>757
import requests
from bs4 import BeautifulSoup as _soup
import re
res = requests.get("http://httpbin.org/")
bs = _soup(res.text, "html.parser")
href = bs.find_all(href=re.compile(r'github\.com'))
print(href) 訂正 bs.find_all("a",href=re.compile(r'github\.com')) beautifulsoupの質問する人のCSSセレクター使わなさ加減はもはや異常だね
ドキュメントがクソ過ぎるのかな find_allにしてるのが何か意味あるのかなと思ったわ
正規表現使い回ししたいとか a = bs.select('a[href*="github.com"]')
デメリットあるのだろうか あのドキュメントはリファレンスでなくクックブック的すぎる スクレイピングしたいなんかの目的だけ先にあって、
そのための最短の勉強しかしてないからCSSセレクタの利便性、確実性がわからん、ってなってるんじゃないの?
Webのコーディングしたことある人なら結局人間の見た目に関わることはほとんどCSSセレクタで実現してると
経験してるからCSSセレクタが確実と理解できるのだろうけど。
自分もbeautifulsoupやってから仕事でデザインデータからHTML/CSS書くようになったから、
所詮CSSなんて飾りでしょみたいに軽く考えてた人の気持ちはよくわかる。 自分の目的に必要ないものって興味わかないんだよな
Pythonはじめる前は本買って全部マスターしてやろうと思ってたけど、結局必要な知識以外覚える気なくなった
何かコードがあっても自分の目的のものに使えるかどうかでしか見ない。それ以外はただの豆知識としてスルー >>763
ありがとうございます
無事できました
CSSセレクタは普段はFirefoxの開発者ツールで算出したものをそのまま使っているのですが,今回はHTMLの仕様が特殊?なのか分かりませんが
うまくtextを抽出することができなかった(return が None)ので,findで無理やり抽出しました
こういった場合はどうすれば上手くいくんですかね?
Python
pastebin.com/7D70dGUk
対象のHTML
pastebin.com/M7k2wffz HTMLのスクレイピングにCSSセレクターの基礎知識は必須でしょ
だけどbeautifulsoupの質問してくる人の大半がCSSセレクターの存在すら把握してなさそうな印象を受ける
他の言語では見られないパターンだからbeautifulsoup固有の問題だと思う >>772
猫も杓子もPythonと言ってて、プログラミング始めた人たちがまず始めに触るのが
Pythonだという状況もあるんじゃないか
スクレイピングならbeautifulsoupを使いましょうとだけ言ってめちゃくちゃ簡単な例だけ示してる適当な本が多いとかもなんとなくありそうな気がする
CSSセレクタの知識は必須だというのには同意なんだけど、初心者は「なんで余計なことが色々書いてあるんだろう、この本はわかりにくい」とか判断して買わずにそういう適当な本を買いそうだし いくつか質問があります
教えていただければ幸いです
機械学習のためにAnacondaをインストールして使っています
IDE環境は何がおすすめでしょうか?
Pyhon3ではprintに()が必要とのことですが省略する方法は無いものでしょうか?
()を毎回打つのが思いの外苦痛ですがみんな気になりませんか?
エディタについてスペースが多いようですがタブではダメですか?
タブだとカーソル移動、例えば→1回でネスト後の文に移動できますが、
スペースだと4回も押す必要があり
更にネストがあると移動するだけで8回も押す必要があり使いづらく思っています
更に7スペース目で文を書くとエラーが出るなどタブと異なりスペースは使いづらく思うのです
エディタは一応昔からなので秀丸ですが設定次第でしょうか?
ヒア文?について、"文字" よりも '文字' をよく見かけますが'って打ちにくくないですか? >>769
CSSセレクター?DOM?
よくわからないけど、HTMLをタグで解析する方法じゃダメなの?
HTMLに問題があっても取得できることが多いし(エラーを吐いて止まらない)
何よりHPの更新があっても一度書けば意外と動き続けるイメージがある
例えば現在値XXX円</tag>
こんな感じだと現在値 と 円</で挟めばHTMLが変わっても使い続けられるイメージ 構造がある文書に、正規表現を使うのは、おかしい
普通、パーサー・CSS セレクターを使う。
例外的に、XPath もある
Python の香具師は、jQuery, Ruby のNokogiri をやっていない香具師が多すぎる NokogiriってQiitaに「インストールする方法」が大量に書かれてるアレ?
ゴミクズはまずまともなパッケージングできるようになってから一丁前の口を利くべきだね ノコギリはlibxml2ベースと書いてある。
これは結構ハックが多そうだけどな。 ハックとかハッカーとか、いまどきの若者はカッコいいとか高度とか良いイメージ持つようだけど、正規ではない方法で小手先の継ぎ接ぎを行うことで、イマイチな方法論だからな。
たとえば、ノコギリが○○タグを認識してくれないというとき、規格に沿うようlibxml2を修正するのが正規の方法。
※とはいえ、libxml2を規格に沿うよう修正するのは無理です。
libxml2に渡す前に文字列を正規表現で加工し、libxml2の出力を再加工して○○タグを認識したように見せかけるのがハック。 Hack ← わかる。
Hacker ← わかる。
Hackest ← わからない。 libxml2 は、Linux で、どの言語でも使っているのでは?
Ruby on Rails をインストールすると、build-essential が入っていれば、
自動的に、Nokogiri もコンパイルされる
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています >>774
()省略したいと思うけどprintのintは省略したいとは思わないのかな
タブの件はエディタの使い方をググりなさいな dominatn_arm side
右 右
というdfがあって右だけを変数に切り出したいのですが、
side=df['side]
prind(side)
とすると
0 右
と出力されseriesになっているようです。
side列、2行目を指定して''右’という文字だけを切り出すにはどうすればいいのでしょう? >>771
from bs4 import BeautifulSoup
import urllib.request
r = urllib.request.urlopen('https://pastebin.com/raw/M7k2wffz')
b = r.read()
soup = BeautifulSoup(b)
for _ in soup.find_all('a'): print(f'{_.string} {_.attrs["href"]}') >>777
1.11.0からキッズ向けにプリコンパイル配布されるようになるよ!
これで「Nokogiriのインストール方法」みたいなバカみたいな新規記事が減るね
ただしWindowsはハブられた
まあ、Windowsでプログラミングとか、ぴゅう太で商用アプリを作ろうとするようなもんだから、その辺はWSLで我慢しとくべきだ >>782
レスありがとうございますm(_ _)m
print のintは考えても見なかったです
意味がわからなくなるのでそのままでも良いかも
でも省略になれるとそっちのほうが良さそうですね >>774
カッコ入力するのが面倒ならプログラミングなんかやめたほうがいいよいろんな記号入力するんだから
カッコ書かなくていい利便性なんか、 Python2でUnicodeテキストを処理するときの面倒臭さを考えると消し飛んでしまう。
まともなエディタ使ってたらタブを勝手にスペースにしてくれる。
てかVSCodeとか使ったほうがいい。
' は、US配列とかDvorak配列ならshift押さなくても打てるから楽なんで ' で打ってる人が多いのではないかな。
Pythonに限っては、打ちやすい方でいい、単なる好み。
キーボードの配列も好み。 >>775
HTMLのパースに正規表現を使うのは、ガチでアンチパターン
どうしようもないときに仕方なくそれを選ぶぐらいのもの
"円</div>"が突然、
"<span class="currency">円</span></div>"とかにマイナーチェンジするかもしれないし、
必要な部分を親子関係考慮して適切に抜き出すのも正規表現ではとても難しいので、
書くのに時間がかかるくせに柔軟性がないから避けるべき >>790
Python3から入ったんだけどなんだかカッコに慣れなくて・・・shift毎回押すのが嫌なのかも ()なくても分かるし
エディタは秀丸を昔から使ってる
VSCodeっIDE?Anacondaに適してる?
IDEは大昔Java使ってたときにEclipse使ってたカッコなど補完してくれて助かってたからまた使いたくなってる
ただ言語との相性が結構あった気がするからどんなのが適してるか気になってる
自動でスペースにしてくれても何かでカーソルが移動したときに何度も矢印キータイプするの面倒じゃない?タブよりもやたらとスペースが普及してるけど・・・
’はUS配列で楽だからなのか・・・Unicodeもそうだけど日本語ってだけでハンデあるな >>792 () を自動的に入れてくれるのを使えば良いじゃん >>792
そんな書き込みするよりカッコ1000回入力するほうが楽、慣れるが一番
カッコなんて他のところで一杯出てくるんだから気にするだけ無駄
そんなに記号打ちたくないなら本当にプログラミングやめたほうが良いと思う
VSCodeはAnacondaに適してるよ
キータイプなんか別に面倒ではない、押し続ければカーソルは動くのだから。
好みもあると思うが、個人的にはタブのところだけ加速するほうが気を遣うから面倒臭い
カーソルが思ったところにやってくるまでの時間なんか、次にどんなコードを書けばいいか考えているうちにすぐ過ぎ去ってしまう
これも好みだけど、タブとスペースが混在していてそれを気にしなきゃいけない状態のほうが面倒
日本語入力だってUS配列やDvorak配列で出来るんだから、ハンデだと思うなら
キーボードの配列変更ツールとか使って変更すればいいだけの話、'を簡単に入力できる前に、
配列の違いに慣れるのにそれなりに苦労するのを我慢できればの話だが
自分はDvorak派だけど、仕事ではJISもUSも打つことがあるので全部打てる、要は慣れ
面倒とかハンデとかいって秀丸使ったりダラダラ5chに書き込んだりしてる前に、
もっと調べて、さっさと色んなツールを試せばいいんだよ
プログラミングなんて、ベテランになったって結局、延々と調べる、試すの繰り返しだから、
いちいち面倒くさがる奴は本当に適性ないと思うよ。
一回試すのに1ヶ月かかるなら面倒だと思うのもわかるが、10分とかで試せるんだから。
printが面倒くさいならJupyter Notebookを使ってプログラミングするという手もあるけどね。
1 + 2とInセルに入力して実行したら、
Outに3と出てくる。いちいちprintしなくていい。 VSCode の拡張機能、Code Runner がおすすめ。
ファイル全体か、選択したコード片を、右クリックメニューから実行できる
これで、REPL もいらない
>>787
Windows のRuby Installer では確か、Nokogiri もプリコンパイルされていた。
ただ、Web Socket がプリコンパイルされていないので、
MSYS2 みたいなコンパイル環境が必要で面倒だから、
漏れは、Windows 10, WSL, Ubuntu 18.04 へ移った classの中で自分自身のclassを実行できないの・・?
class hoge:
_def __init__(self,f=None):
__print('hoge.__init__')
__self.f=f
__if f==None:
___return hoge("hoge")
__return self
h = hoge(None)
print(h.f) >>792
真面目にタイピングの練習でもした方がいいんでないの?
頭の中で考えたコードを手で入力する際に、思考を遮らない程度には素早く滑らかに、息をするかのように入力できるようになっておいた方がストレスがたまらなくていいぞ。 >>792
なんでPythonで秀丸っていう縛りプレイしてるねん
VSCode使ってアドイン入れたら自動補完が出るからそれやっとけ
(IDEならPyCharmもあるけど、無料版だと機能制限的に途中で詰まる所が出てくるから機械学習目的ならVSCodeの方が楽)
ちなみにPythonはPEP8の規約でスペース4つって規定されてるから、スペースで統一されてる
というかエディタの機能でCtrl+左右キーで区切りの所に一気に飛ぶから
そんな事気にした事無かった >>797
__init__じゃなく__new__使って カッコがいやとか言うと begin .. end にされちうぞ。 最近のvscodeのjupyter統合の力の入れ具合すごいで >>> 5 % 2
1
>>> '123%d567' % 4
'1234567' 横から
pyautogui使ってスクショを連続して保存したいんだけど、
画像の形式って選べないの?
pngで保存したんだがjpgと画質変わらん >>794
適正がなくても面倒くさがりでもプログラムってのは面倒を自動でやってくれるから可能な限り楽に使いたいと思ってる
というか面倒くさがりな人だからプログラムに頼るんじゃないの?
主に証券の自動売買とデータ解析、Arduinoの操作に使ってるけどやってることは人力でもできる
でも1分に1回価格を調べるとか手作業じゃ面倒すぎる。結局めんどくさがりなんだよ。
秀丸ディスられてるけど一度覚えたら癖みたいなものも分かるから面倒がないと思ってね
良いエディタ見つけたら最低でも10年は使い続けたい
少し前に友達が秀丸以外のエディタで編集してプログラムがバグった
調べたら自動で文字コード変わってたりBOMつけたり一つ環境変えるだけで想定外のエラーが出てその間プログラムが正常に動かないとか困った
もっと言えばWindows10を使ってるけどUIはWin98に近づけて使ってる
慣れるのが大変だから環境の方を親しんだものに変えてる
とはいえ限界はあるからどこかの時点でリープフロッグするようにしてる
あと、気軽にインストール言ってくれるけど今のPC環境壊れると困るから結構怖い
他のプログラムのDLLが関連ファイルとして変更されたりソケット通信やCAがおかしくなってエラーが出たりPythonのインストールだけで何度かすでにトラブってる VScode,Jupyter Notebookについては人気みたいなので使ってみようと思う
アドバイス助かる
>>798
タイプそのものはかなり早い方
Realforceの全30g使ってる
ただ腱鞘炎になってから少しでも文字数少なくしたいと思ってる
音声入力も試したけど文章はいいけどプログラムでは全く使えないわ
printについては本当に頻繁に使うし以前使ってた言語で不要だったからイライラするというのが大きい 慣れるわ・・・ >>809
60代とかなのか?
めんどくさがりでも、新しいもの好きじゃない人はとマジで適性ないよ。
瞬間的な集中力はあって、新しいものは試せるけど、ずっと同じことやるのは無理って人が向いてる。
あなたは未だに22年前のUIを使ってることに疑問を抱かないことからして、
面倒くさがりというよりは何事もやる意欲が湧かないタイプなだけで、なにかとやらない理由を探してるだけ。
環境壊れて困るならVMとかに開発環境作る方法もあるわけだし。
やらないことには知識も身につかないんだから意識変えなきゃずっとそのままだよ。 >>809-810
Pythonとかのプログラミングはやめとけ
VBA@エクセルどまりがお似合い >>812
そうしたいのは山々だけどバックグラウンドで自動でArduinoの制御や株式の自動売買とWebとの連携(実際にはVPSで動かしてる)ができないと思う
ExcelのVBAは使ったこと無いから知らないけどできなさそうなイメージが有る >>813
前使ってた言語はなんなの?
それに近いおすすめの言語教えてあげるよ。 >>812
Pythonが現代のVBAだぞ
考え方も使われ方も同じ ストレートに言ってやるけど
面倒くせえ奴っぽいから理由つけて追い払いたいだけ >>794
>>809
禿同
つか長文でここまで書いてあげるって性格良すぎだろ
グダグダ言い訳ばかりで変わろうとしない老人の相手より自分のメンターになってほしいわ >>811
OS変わる度に1週間位は試しているけど、どうにも慣れないんだわ
特にWin10とか例えば使いたいプログラムがすぐに見つからないとかでイライラしてしまった
よくみんな気にせず使えるなと思ってしまう
VMは試したことあるけど重たくなるから断念した
前に使ってた言語はPerl(32bit)シリアル通信に解決できない問題が生じてPythonを始めた
あと、TensorFlow使うにはPythonが良いらしく始めたところ スコープの問題で変数を前もって制限しなきゃいけないときってNoneでやればいいのですか?
hoge = None
if fuga==1:
hoge='maguro'
if fuga==2
hoge='neko'
print(hoge)
みたいな場合です。None以外で〇〇で初期化して宣言するのがお約束みたいのがあったら教えて下さい。 >>821
それ1行目のhoge=Noneはなくても別によくない? 別に初期化する必要ない
fugaが1or2以外のケースを定義する必要があるかどうかでしょ
if fuga == 1: hoge = 'maguro'
elif fuga ==2: hoge = 'neko'
else: hoge = None おそらく、可視性なんかで
あるべき、あったほうがいい
を聞きたいのでは? >>820
Windows 10, WSL, Linux もある
ベンチャー企業は、AWS, CircleCI, Ruby on Rails ばかり採用する。
唯一の例外が、TensorFlow で、GCP を使う場合
Azure は、採用する理由がない >>820
ubuntuを使ってるんなら
同じようにWindowsでも使いたいアプリって
Winキー押して検索窓で打って使いませんか? >>820
いずれは古いOSは使えなくなるんだし、皆移行していくんだから、
昔のほうがつかいやすかったとか愚痴言ってないで
1年ぐらい経って落ち着いた、仕事に影響が出てもクリティカルじゃないタイミングで最新OSにすべき
新しいOSへの移行は既定事項だから、自分は使えるからと先延ばしするのは、未来の自分の首をどんどん絞めてるのと一緒だよ
みんな(とくに職業プログラマー)は仕方のないことだから無理やりなれてるだけなんだよ >>808
pyautoguiのスクショ関係はPILのラッパーなのでPILを直接叩くのが正解 webkit2gtk+python3で簡単なepubビューアを作っていて、
ブックマーク機能を実装しようと思っているのですが、
現在表示されている画面左上の文字列を取得するにはどのようにすればいいのでしょうか?
おそらくjavascriptを使うのかもしれないかもしれませんが、検索してもなかなか引っかりません。
ぜひお教えください。 ちょっと言葉足らずでした。
左上の文字列を取得して、ブックマークを「xhtmlファイル何枚目の文字列〜」で登録後、
ブックマークに飛ぶ時はバックグラウンドで検索してブックマークの文字列に飛ぶようなのを考えています。
これならウィンドウサイズが変わってもブックマークは同じ位置なので有用だと思うのですが、
肝心の最初の文字列〜を取得する方法がわかりません。 guiに関してはpythonで全てやることは諦めてflask+javascriptでもやった方がいいんでないの。 >>822
スコープの問題でif分の中で宣言した変数はif分の中でしかつかえないのでは・・・ >>832
pythonはクラス・関数単位のスコープで、ifやforではスコープ変わらないよ
明示的に初期化しておきたいならNoneがいい場合もあれば空文字列の方が向いてる場合もあるしケースバイケース calibreのソースコード見ていたらepubcfiなる索引規格があるようです。
これを使ったほうが早そうです。どうもお騒がせしました。 import re
s = 'aiue o ka ki'
m = re.search('*', s)
print(m)
'*'で、sがなんであってもマッチすると思ったのですがエラーでました
'.?'だといけたっぽいですがこれは”なんでもマッチ”と同等でしょうか? *は「直前の文字が0文字以上続く」であって
それ単体だと何ともマッチしない >>836
そもそも''に正規表現が使える?みたいなので*単体でもいけるのかと思っていました
とりあえず''は何もない文字として、'.*'としたところうまく?いきました
ありがとうございます 下記のようなバーチャートで1つ目の項目だけ赤色にするにはどうすればいいのでしょう?
# Write bar chart
left = [1, 2, 3, 4]
height = [object_dependent_uns_index,
selective_attention_disorder_index, late_response_index, persistence_index]
labels = ['object_uns', 'selective', 'late', 'persistence']
plt.bar(left, height, color='blue', width=width,
tick_label=labels, align='center') >>838
ぐぐり足りませんでした。
colorlist=['red','blue','blue','blue']
plt.bar(left, height, color=colorlist, width=width,
tick_label=labels, align='center')
で自己解決しました。
スレ汚し申し訳有りません。 >>831
PythonでGUIをやるならEEL一度
これが最強 >>841
クラスとDBとHTTPがわかってたら難しくない
至って普通の作り >>842
自称エンジニアの何割が知ってますかねぇ… >>841 と >>843 が同一人物かどうかは知らんが
知名度と選択基準は分けて考えた方が良いぞ
特に初心者なら猶更 >>842
通りすがりのものですが
PHPをやった事あったら挑戦しやすいかな? >>845
「PHP で何をやったか」だ
>>846
どっちでもいいよ >>847
7年ほど前にPHPで在庫管理のwebアプリをXAMPPで構築してみた事がある程度の初心者です
Pythonに興味あるんですがwebアプリとの連携
(妄想ですが、MySQLのデータで機械学習等)
が出来るかどうか気になりふらっと
このスレをのぞいてみました 帰りにまた、ふらっと立ち寄って見るかもしれません。ではまた。 Oracleのチュートリアルで機械学習がある
わざわざPython覚える必要すらない ■ このスレッドは過去ログ倉庫に格納されています