TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
バージョン管理システムについて語るスレ10
【日本語不自由】Eclipse Pleiades プラグイン
日本語プログラミング言語Mind
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part19
Java 高速GUI SWT 3
動的言語で大規模開発
VB.NET質問スレ(Part44)
C言語の設計ミスった危険な関数トップ10決めようぜ
Julia Juno Jupyter part1
WPF(.NET4.x, .NET Core) GUIプログラミング Part23

くだすれPython(超初心者用) その47【Ruby禁止】


1 :2020/03/07 〜 最終レス :2020/04/20
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
★Pythonのソースコードはそのまま2ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。
◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/
〇前スレ〇
くだすれPython(超初心者用) その46【Ruby禁止】
https://mevius.2ch.sc/test/read.cgi/tech/1577948214/

2 :
>前スレ996 >>1
超乙!
前スレ972はウルトラ無能

3 :
粘着w

4 :
test

5 :
・          ,,..--―-、
         /, -----、.ヽ,      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
         |  i_,,,,_  __゙l |     /  世界、糞スレ発見!
         ,!、i'゙-‐-: '-、|/    |    >>1はボッシュート!
        /'') ..., '‐-‐、.j    /  __________
        / ,‐!::...`'''''''`ノ     ̄ ̄
      _,,,l ;! ::|ヽ、二 イ
   , -‐'゙゛ i::..  | .ヽ/;ヽj!`‐-、_
   l     ノ::. .:|、 .ヽ,:ヽ|  <゛~ヽ、
  ,:''`` ''"゙.|;;:‐''゙|.ヽ、 ヽ;::|  /  .|゙l
  ,:     ヽ::il;;!  ヽ、ヽ| /   | :|
  i    o゚ :`;''゙     ヽ| /   | .|
  i   ..:::::,:::'::::: .      |゚    |,,;:->、
  `.、__;;/:::::::::: :     |    !''"  |
     i  ::.:::: :       |    |   .|  
       ⌒ ⌒ ⌒ シュルルル
     __⌒ ⌒ ⌒__
    /::::::::::Λ_Λ::::::::::::::::::/
    /::::::::::(∩;´Д`)∩:::::::/  チャラッチャラッチャーン
   /::::::::::::(  >>1 /:::::/

6 :
スマートpythonプログラミングの、著者である モミジアメ先生の新刊キター
TCP IP本
python関係ないけど
Kindle unlimited入ってる奴は読んどけよ
スマートpythonプログラミングは2についてけっこう尺取られてちょっと古くなった感はあるけど良書

7 :
もみじあめ先生の新作が読めるのはアマゾンだけ!

8 :
めっちゃ長い文をfor文使って書いた場合と使わずにベタ書きで書いた場合でどれくらい速度比出ますか?

9 :
>>8
自分で計測しろよ
とりあえず%timeitで十分だろ

10 :
今どきFor文のベタ書きとか考えなくていい
適切なライブラリを使う方がよほど早くなる
とくにライブラリが速いCで書かれてる場合

11 :
>>9
timeitの使い方がよくわからないんですよね…
%timeitっていうのは、Jupyterを使った場合の処理ですか?
>>10
そうなんですか?
とにかく今はめっちゃ遅いので何とかしたいです
リスト内包表記を試したり、ネットで拾える情報は結構試したんですが速くならないです

12 :
>>11
先に疑うべきことはたくさんある
無駄なループを作ってないかとか
機械学習とか重い処理をする場合
ハードを増設する必要があるとか

13 :
O(N^2)の処理 をO(NlogN)にするとか
https://qiita.com/asksaito/items/59e0d48408f1eab081b5

14 :
>>11
%timeitはIPythonの簡易マイクロベンチマーク用のコマンド
https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-timeit
標準のtimeitモジュールを直接使ってもいいけど少し面倒
https://docs.python.org/3/library/timeit.html#examples

15 :
ケースバイケースなんで
その質問では解決する前にお前の寿命が来るかプログラムに飽きる

16 :
>>11
Pythonを使ってる時点でループのアンロールとかほとんど意味がないと思う
オブジェクトやライブラリをあれこれしてないようなコードなら、Cythonにするとかで100倍ぐらい速くなる場合はあるけれど、
Pythonオブジェクト、ライブラリを結局は呼んでるのだったらそこが律速で速くならないかも

17 :
線形探索してるとか?
例えば、百万件の中に無いデータを線形探索すると、すべてを見るまで分からないので、百万回。
O(N)
一方、検索インデックス・辞書を使うと、百万件の中に無いデータが、瞬時に分かる。
O(1)
SQL では、B+tree で2分探索。O(logN)
2 ^ 10 = 千
2 ^ 20 = 百万
つまり、20回で分かる

18 :
言語やアルゴリズム等で短縮できる
計算時間の方が圧倒的に大きいから
Forのベタ書きは考えなくていいぞ

19 :
とはいえPythonはC, Java, C#あたりの速い言語グループと比較して2桁遅いので、
アルゴリズムの改善をいくら頑張っても速い言語の何も考えてないバカループにすら勝てないケースが多い
コアでない箇所でアルゴリズムを工夫することを頻繁に迫られるようなら、Pythonを使うこと自体を考え直したほうがいいかも

20 :
競技プログラミングみるとc++使ってる人多い
c++と比べたらjavaは遅い部類

21 :
機械語じゃないから当然

22 :
C言語ゆらいの怪しげなマクロを使えるから

23 :
競技プログラミングってプログラミングの速度を競うのかと思ってたけど、プログラムの速度か

24 :
>>23
両方
問題ごとにプログラムの実行時間に制限がある
その時間に収まるように他の人より速くプログラム作れたらポイント高くなる

25 :
リスト内表記について質問なんですが
こういう代入はリスト内表記はあきらめて普通のforにしないといけないんでしょうか?
それともほかにリスト内表記する方法があったら教えてください
v=[1,2,3]
[c=c+1 for c in v if c==1]

26 :
ないだろ。
副作用欲しいなら、for文か無理やり関数でやるしかない。
def func(x): global y; y = x + 1; return y
[func(c) for c in v if c==1]

27 :
>>26
ありがとうございます
無いんですね
副作用は怖いので普通に書き下しします

28 :
v= [1, 2, 3]
v = [c+1 if c == 1 else c for c in v]
思っていたのと違うかもしれんが

29 :
filterを繋げて多段にすりゃいいんだよ

30 :
numpyとかpandas使えばもう少し気持ち良い描き方がある

31 :
そもそもc=c+1の部分が内包表記の表現として書けない

32 :
>>27
>副作用は怖いので普通に書き下しします
プログラミングにおける副作用の意味をググったほうがいいかも

リスト内包表記に書けるのはexpressionのみ
代入はstatementなのでエラーになる (3.8で導入されたassignment expression(:=)は可)
副作用のための処理は内包表記ではなくfor文を使うのが原則

無理やりやればできなくもないがデメリットしかない
v = [1,2,3]
[globals()['v'].__setitem__(i, x+1) for i, x in enumerate(v) if x == 1]
print(v) #=> [2,2,3]

33 :
>>25
これってもともとのやりたい事は
特定の値の個数を求めること?

34 :
pip install A で実行できるようになるコマンドA
pip install B で実行できるようになるコマンドB
があって、パッケージAの依存パッケージがprogressbar、パッケージBがprogressbar2のため(どちらもimport progressbarなので)progressbar2をimportしたい方のパッケージBがprogressbarをインポートしてしまってコマンドBがエラーになってしまいます

こういう場合はコマンドA用とコマンドB用で仮想環境を分けて使うものなのでしょうか?
いちいちコマンドを実行するごとに仮想環境を切り替えるのは面倒な気がするのですが、例えば、コマンドA用とB用それぞれにバッチファイル等を作って、仮想環境の切り替えとコマンドの実行を一つのコマンドで実行できるようにしたりするのが一般的ですか?
オススメのやり方があれば教えてください

35 :
>>34
おらはバッチ切替派だが
その前におまえ1嫁や
Windowsだけがせかいのすべてだとおもうなよ

36 :
シェアが5%以下が何言っているんだ?

37 :
そのシェアってAtom使った奴も入っているの?

38 :
macでtkinterがimportエラーでて解決できなくて泣きそうやわ
ウェブで解決策が色々あるがどれもうまくいかへん
tkinter以外のGUIパッケージでフォルダダイアログだけ呼び出せるのある?
wxはウィンドウ用のクラス作らんとあかんしQtやsimpleはtkinter依存やし
Eelめっちゃええやん!からのpythonのGUI環境はマジクソ!←いまここ

39 :
>>37
Atomって何だ?おもちゃか?

40 :
MacならMS製なのがネックで未だにVSCodeに移行してない根強いAtom使いも一部いるかもしれないが、
WindowsならもうAtom使ってる奴なんてほぼいないんじゃね

41 :
いや逆やろ
WindowsはVSという最強かつ世界最高のデバッガを搭載したIDEがあるからわざわざVSCode使う必要性がない
逆にMacやLinuxはまともなモダンエディタがSublimeやAtomくらいしかないからVSCodeが圧倒的
今時SublimeやAtom使ってるのなんて意固地で勘違いしたやつくらいやな

42 :
あん?このAtomってエディタの話だったのか?
OSのシェアがどうたらの文脈だからプロセッサの話だと思った

43 :
素人はともかくプロ開発者におけるOSシェアは
Mac+Linux > Windows
デスクトップOSシェア(StackOverflow Developer Survey 2019)
プロ開発者: Windows 45%, Mac 30%, Linux 25%
素人開発者: Windows 58%, Mac 15%, Linux 27%
開発環境のOSシェア(Python Developer Survey 2018:複数回答可)
Linux 69%, Windows 47%, MacOS 32%, BSD 1%

44 :
LinuxやMacで開発している現場なんて見たことない
開発用PCはWindowsがデフォでしょ

45 :
俺は受託オンリーやけど元請けの素人どもはWindowsやけど実際に開発してるチームメンバーは全員Macやなー
ウェブやアプリの場合やけど.NET環境の業務システムはVS必須やからWindowsやけどそらそうよ

46 :
Ruby でも、Windows 版Docker ではバグるから、仮想OS でLinux で開発する。
本番環境に一番近いのが、Linux
今までは、Windowsでは、MSYS2/MINGW だが、日本語でバグるから皆、Mac を使っていた
ようやく最近、Windows 10, WSL, Linux で、VSCode の拡張機能、Remote WSLが出たから、
Windows 10, WSL, Linux でも出来るようになった。
WSLでは、日本語でもバグらない
これで次第に、Macから、Windowsへ戻ってくるはず。
でも、完全な互換性は、直接Linuxを使う

47 :
普通にmac少ないやんけ

48 :
サーバーに合わせてLinuxにするのは分かるがMacはマジで意味わからん。副業でiOSアプリ作るからか?

49 :
Ruby では、Windows の開発者は、WSL が出るまでは、いなかった。
Windows, MSYS2/MINGW だと、日本語でバグるから皆、Mac を使っていた
さらに、Windows版Docker でもバグるから、
Windowsでは、仮想OS でLinux しか出来なかった

50 :
macはtcl/tkをそのまま使えば早いんじゃね?

51 :
Rubyくんお友達居なそう…

52 :
Windows使うと文字コードで苦労する
苦労してからまたMacに戻ってくる

53 :
お友達本意の開発なのか。

54 :
Docker のコンテナ名がコンフリクトする時はどうすればいいですか?
$docker container ps
しても動いてるコンテナないんですけど

55 :
やっぱり具体的に作りたいものがないのに0から勉強するのは脳が拒否反応を起こすなぁ
VBAをやってる時は実利に直結するからあれこれやるのも苦ではなかったが……

56 :
>>48
>>50な理由とか
2系までだったころは、Macにデフォルトで入ってるからとか
デフォルトフォントがMacのほうがきれいだとか
予算余ってるからとか
カコイイからとか
かこいいからとか
本体価格が高級だからとか
そんな理由
あとおまけで52も言ってる文字コードの都合

57 :
>>55
学生時代勉強不得手だったんけ

58 :
>>55
自宅プログラミングしない奴の言い訳まんまで草www
そもそもプログラミング好きじゃない奴がプログラマーしてることが数ある不幸なプロジェクトの原因なんよね
学習も研鑽もしないから同じ環境でしか開発できないVBAおじを量産してしまう
俺のように楽に結果が得られるならなんでもいいからもっとええのないんか?と楽しみつつ学習してるといつの間にかC++、C#からTypeScript、Pythonまでフロントもバックエンドもなんでもござれのフルスタックの完成なんよ

59 :
>>35
ありがとう&ごめんなさい
OS関係ない話かと思って...てへぺろ

60 :
>>46
>本番環境に一番近いのが、Linux
そうそう

サーバが圧倒的にLinuxだからね
でもWindows10のことも書いてて
わりと良いレスだと思う

61 :
>>55
>具体的に作りたいもの
実感としてそれは大事だね!

今のPythonブームで言えばAIや機械学習が
したいから学ぶっていう人が一番多いかな?

62 :
スクレイピングとエロ画像の自動収集くらいしかやってね―わ
それが一番プライベートの時間の節約に役立つしな

63 :
楽に結果を得る方法を求めて他人より何倍も苦労する訳ですね

64 :
苦労なんて発想しかできない脳みそだから低レベルなままなんだって判断できない時点で終わってるってわかんね
好きなら努力が努力じゃないんだからそりゃ差が生まれるに決まってますわ

65 :

好きでも努力は努力だぞ?
好きこそものの上手なれ とはいうが。

66 :
苦労というよりは、単純作業を繰り返したくないから単純作業と自動化で同じくらいの時間がかかるなら自動化していくうちに勝手に覚えるって感じだな
まあ自動化しやすいものを偶々日常的に扱っていることが多いというのが有利に働いていると思うが

67 :
質問です
a=[
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]]

b=[100,200,300]
があるとして(中身の数字は適当です)
a[0,3]=b[0]
a[1,3]=b[1]
a[2,3]=b[2]
というように縦に一部だけ変数を入力するのに
カッコいい方法を教えてください

68 :
>>67
a[0,3]=b[0]
TypeError: list indices must be integers or slices, not tuple

zip使え

69 :
>>68
間違えました、すいませんorz
a[0][3]ですorz
zip使います
ありがとうございます

70 :
>>69
>>> a=[
... [1,2,3],
... [4,5,6],
... [7,8,9],
... [10,11,12]]
>>> a[0][3]=100
IndexError: list assignment index out of range

71 :
深いリストをフラットにするのは何?
[1, [2, 3], 4]

[3, 4, 2, 1] # 結果の順番はどうでもいい

72 :
numpy使わないなら普通にfor文使うケース
縦(column wise)にデータを取り出したいだけならlist comprehension
zip(*list)はtransposeしたい場合に使う
#numpy
a = np.array(np.arange(1, 13)).reshape([4,3])
b = [100, 200, 300, 400]
a[:,2] = b

73 :
>>71
その例だとまったく深くないんだがw
「リスト フラット Python」あたりでぐぐれ
ちな
「リストをフラットにする作業」を英語で「flatten」っていうっぽいので
日本語使った検索で気に入る結果が出ないなら
「flatten python」みたいにしてぐぐれ

74 :
(追記)
unnestも、キーワードとして使えるのではないだろうか。

75 :
>>71
from more_itertools import collapse
list(collapse([1, [2, 3, [4, 5]], 6]))
#=> [1, 2, 3, 4, 5, 6]

76 :
>>71
a=[1, [2, [3]], 4]
b=[int(x.strip('[ ]')) for x in str(a).split(',')]
print(b)

77 :
>>75
横レスだけど
こんな便利なもの(pip install more-itertools)あるのぬ!

78 :
for n, m in zip(a, b): n[2] = m

79 :
>>67
import numpy as np
a=np.array(a)
b=np.array(b)
a[:,2]=b

80 :
スレ失礼させていただきます
学生です。
ScratchというサイトでしかプログラミングをしたことがないのでそろそろPythonを勉強しようかと思いました。
Python勉強するための良いサイト、ソフト、勉強法を教えてください
ちなみにScratchはマスターしてます
scratch.mit.edu

81 :
↑のサイトはscratchに飛べます
言い忘れていましたがMacです

82 :
plt.subplot(1, 2, 1)
plt.title('test1 score')
plt.subplot(1, 2, 2)
plt.title('test2 score')
みたいにサブプロットのグラフ毎にタイトルをつけたあとに
サブプロット1,2共通のタイトルNameを最上段、真ん中に表示させたいんですが、
なにかいい方法無いでしょうか?
       Name
test1 score test2 score
graph1 graph2
みたいな感じです。

83 :
       Name
test1 score    test2 score
  graph1      graph2

84 :
>>83
みたいな感じです。

85 :
ねぎ式? タンブラー@ohtsuka
パートナーさんとの面談で、同僚が「ぴとんも出来るの?
ぴとん」とか言っていたのでなんだそりゃと思っていたらPythonだった。
恥ずかしのでやめて欲しい。

86 :
>>82-84
上の方か前スレに、誰かが任意の場所に文字列入れる方法書いてくれてた

87 :
https://qiita.com/nkay/items/d1eb91e33b9d6469ef51

88 :
plt.gcf().text()

89 :
matplotlibは直観的じゃないよね
https://python.atelierkobato.com/text/

90 :
オブジェクト指向の勉強してるのですが、外部から新規プロパティ作れるのって何に使うんですか?
class Test:
__def __init__(self):
____self.x=1
____self.y=2
__def calc(self):
____print(self.x+self.y)
test = Tset()
test.z = 3
とかできますが、クラス作成時に言及されてない新規プロパティを使うのはどういう時ですか?

91 :
>>90
使わない、というか基本的に使ってはいけない
Pythonのオブジェクトシステムの実装上たまたま可能なだけで、あえて可能にしてある訳ではない

92 :
なるほど、そうですよね
ありがとうございます

93 :
え、やったらあかんかったんか。こんなん出来て便利やわ、とずっと使ってたわ……
import socket
socket.socket.is_alive = lambda self: not select.select([self], [], [], 0)[0]

94 :
別に使っちゃいけない理由なんてないでしょ

95 :
そゆことしたいなら元のクラスを継承したMyClassを作るべきでは?

96 :
>>90
Pythonは他と言語と違いゆとり用言語だからゆとりのための機能は活用したほうが良いだろ
派生で新規プロパティ追加するのめんどーくさい、で、その場でサクッと追加できるってゆとりには超便利だろ

97 :
"There's Only One Way To Do It"(草)

98 :
dataclass便利だよな

99 :
rubyも出来るな
むしろ推奨されてる

100 :
もちろんjsでもできる

101 :
jsは出来るってより出来ないと使い物にならない

102 :
>>95
分かってる、それが正当なのは分かってる。将来socketやsslが改版される度に衝突してない確認しにゃきゃならんのも分かってる
けど、socket.socketに追加すればそれだけでssl.SSLSocketでも使えるし、ssl.wrap_socketやssl.create_default_contextみたいな便利関数もそのまま使えるし
派生クラスを作るとこのあたりが圧倒的に不便
もちろん引数にsocket.socket / ssl.SSLSocketをとる独立した関数を作ってもいいけど、あるオブジェクトの状態を問い合わせる機能はそのオブジェクトにメソッドとして持たせるほうが自然だし

103 :
えーと、ごちゃごちゃ続けて済まない
要は、「正当でない」「元のクラスの改版で衝突するかも」以外に、なんか実装の仕組みとか言語の根本思想とかに関わる「やったら駄目な理由」があるんなら知りたいんだ

104 :
用語を教えてもらいたいです
./comand.sh [-a] [-b 999] start

の場合
-a : 「オプション引数」
-b : 「オプション引数」
start: 「コマンドライン引数」
という用語だと思うけど、999はなんてよぶのでしょう

105 :
正当である理由も知りたいんだけど。いったい何の正当?

106 :
衝突するかもが一番の理由だろ
使い捨てスクリプトなら好きにすればいいんじゃね

107 :
近代的なPythonプログラミングにおける一番の問題は静的型検査の能力が損なわれることだろう
VSCodeで補完できないし型チェッカー使ったらエラーになる

108 :
型チェッカーに詳しくないけど、ダックタイプなのに拡張プロパティが付いただけでエラーになるの?

109 :
そりゃ型に存在しないメンバにアクセスしようとしてんだから正真正銘エラーだよ

110 :
凄い長いループ文の最後に取得したい値があるとして
ループの最初にp=[]するんですが最後のと距離が離れすぎてて
忘れそうor間違えて消しそうですが
p = []なしで値を集める方法ってありますか?
p = []
for v in vals:
____この間凄い長い
___p.append(s)

111 :
p = [ hage(v) for v in vals ]

def hage(v):
____# この間すごい長い処理
____return s

これはだめなの?

112 :
p = vals.apply(hage)

113 :
p = list(map(hage, vals))
または
p = map(hage, vals)

114 :
p = list(map(hage, vals))
または
p = map(hage, vals)

115 :
p = list(f(vals))

def f(vals):
____for v in vals:
________この間凄い長い
_______yield s

116 :
>>111
これが内包表記というやつかー!

117 :
“There should be one-- and preferably only one --obvious way to do it.”じゃないのー?

118 :
C言語を触ってて今日からPythonを見始めたけど、クラスだメソッドだインスタンスだ横文字だらけで説明されてさっぱりだ🤔

119 :
>>118
Cができるなら新たな言語を学ぶ必要はないぞ
特にオブジェクト指向は学習コストに比して実効果が割に合わないしな

120 :
>>118
オブジェクト指向を覚えるのは
(Cでの構造化)プログラミングを覚えるのと
同じかそれ以上に時間かかるが
学んだだけの効果は出るはず
正しく学べればだけど

121 :
>>120
正しく学べなかった奴の一例が>>119というわけだな

122 :
【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!?
https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/
HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは?
https://youtuberhyouron.com/hikakinnensyu/
ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証!
https://mitarashi-highland.com/blog/fun/hikakin
ヒカキンはuuumの役員で株だけで資産27億円?新居への引越代が4000万?
https://barutosuserver.com/1895.html
ヒカキンの年収(最新2018年)は軽く10億超え!? はじめ社長や他のYouTuberとも比較!
https://usaponn.com/archives/7346
UUUM上場でヒカキンらメンバーの住所や本名が公開に!資産もスゴイ!
https://pikacore.com/news/uuum-honmyo/
UUUMの時価総額1000億円超え、ヒカキン保有の45万株は27億円に
http://kabumatome.doorblog.jp/archives/65934275.html

123 :
>>118
きょうびオブシコ機能がない言語の方が少なくない?
勉強して損はないと思うけど

124 :
>>118
Pythonをやる前にC++をやった方が良いな
Cできる奴はすごい奴が普通だからC++はたいして難儀しないで習得できるだろ
で、C++後、Pythonをやるとあっという間に覚えられるだろ

125 :
C++よりJavaの方がかんたんじゃあない?

126 :
Javaは論外
C++はやりたければやっても良いが
おすすめは C → C# → Python

127 :
皆さんありがとうございます
そもそもdefにすべきだったんですね
せいとんして頑張ってみます

128 :
>>88
しばらくログインできず、今日書き込みみて解決しました
ありがとうございます

129 :
仕事で目にするPythonコードってただ一本調子でデータを加工するだけで
オブシコどころか階層化プログラミングすら怪しいのが多いわ
コピペも多いし、ぶっちゃけCOBOLレベル

130 :
Ruby を1 とすると、

Python : 3
JavaScript : 5
C++ : 10

131 :
今からC++やるくらいならRustでいいって

132 :
>>125
そう簡単だよ
そしてたいていの言語はC++よりは簡単
>>126
JavaはC#より開発現場で使われてるからな
言語仕様は後発のC#の方がモダンだが
C → C# → Python
その言語の中ではPythonが一番易しいから
Pythonから始めるのがオススメ

133 :
>>129
どんな言語も使う人しだい

134 :
>>133
それはその通り
でPythonはメジャーな言語の中では比較的コード自体に興味がなくて目的を達成できさえすればよいと考えるタイプの人が多い
まあ、だからこそ収入も高い傾向があるんだけどね

135 :
>>129
これは同感
良くも悪くもそういう用途にフィットした言語
オブジェクト指向をpythonで勉強しましたってやつにはロクなのがいない

136 :
>>129
一本調子でデータを加工するだけの処理だからpythonでササっと書いてるのでは?
単に目的に合った選択をしているだけの様に思えるが

137 :
コボル人(こぼるど)ばかにすんなよw
そろそろコボルのXデー近づいてるから
CやPythonに書き換えるお仕事わいてきてるはずなんだからー

138 :
matplotlib pyplot とか使うとオブジェクト指向に出来なくて(出来なくはないけど)
適当に描いてるうちにダラダラしてしまうことが多いのは事実
だが意識他界系の人なら綺麗なコードになる

139 :
あと Blender の python も気付くとダラダラしてしまってる
気を付けないとな

140 :
バッチ処理みたいなものをわざわざオブジェクト指向丸出しで書く奴のがあほだわ。
関数型にこだわる方がまだマシ。(どっちも度が過ぎるとあほだが)

141 :
関数型っていまいち理解できないんだけど、どーゆう考え方なんですか?

142 :
ITの巨大掲示板群 ttp://x0000.net
(アルファ・ラボ|学術掲示板群)

143 :
つーかその場でササッと書いて動かしてナンボのやっすい言語で
いちいちクラス設計するのは本末転倒だわ
Pythonにはオブジェクト指向は似合わない

144 :
>>143
オブジェクト思考が解らん言い訳はやめろ
そんなに難しいものじゃないぞ

145 :
Pythonが昔のPHPみたいになってるな

146 :
>>140
いうても関数型プログラミングのサポートしょぼいからな
結局昔ながらの手続き型がもっともPythonに合ってる

147 :
関数型って何だろうと思ってHaskellいじってみたけど、頑張って再帰関数で処理する事を考えるプレイとまでしか思えなかった

148 :
大抵の再帰処理はlispの時代に出尽くした
あとはそれの応用、というか真似るだけ

正規表現だって人類に必要なやつの80%はperlの時代に出尽くした
あとは考える必要はない、探して真似るだけ

149 :
>>147
変に複雑に考えんでも、参照透過性、副作用させないってことを意識したプログラムって
考えればええわ。(そもそも lisp, erlang, haskell, その他色々でも捉え方は違うし)
それによってデバッグしやすくなったりパイプライン処理やブロードキャスト処理が
しやすくなるってことくらい押さえとけばよし。

150 :
すごくアホな質問だとおもうのですが

def df=input_data()
def df1=analyze1(df)
def df2=analyze2(df1)
.
.
.
def df10=analyze10(df9)

def draw_graph(df10)

みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写

みたいなプログラムを書きました。

151 :
df0からdf10まで11個あるんだろ
次はdf100までちゃんと書くんだぞ
コピペすれば早く終わるからな

152 :
146間違えました
すいません

153 :
すごくアホな質問だとおもうのですが

df=input_data()
df1=analyze1(df)
df2=analyze2(df1)
.
.
.
df10=analyze10(df9)

draw_graph(df10)

みたいにテキストファイルからdfにデータ読み込み
10個ぐらい解析処理
df10でグラフを描写

みたいなプログラムを書きました。
ここまではうまく行ったのですが、
データ決定→グラフ描写
を1回だけでなく2回行い並べて表示させたくなりました。

154 :
この場合先程の
analyze1〜analyze10
までを一つのクラスProcessDataにして2つのインスタンスABを生成して実行すればいいかと考えたのですが、
process_dataA=ProcessData
dfA=process_dataA.input_data()
.
.
.
df10A=process_dataA.analyze10(df9A)
process_dataA.draw_graph(df10A)
process_dataB=ProcessData
dfB=process_dataB.input_data()
.
.
.
df10B=process_dataB.analyze10(df9B)
process_dataA.draw_graph(df10B)
とインスタンスAとインスタンスBに対して全く同じ処理を行うルーチンを2度書くのがあまりに冗長な気がするのですが、なにか良い方法ないでしょうか?

155 :
関数として処理を切り出せばいいんじゃないんですかね。。

156 :
>>154
途中のdfが不要なら上書きしていけばいい
Pandas使うときはよくやる
df = input_data()
df = analyze1(df)
df = analyze2(df)

それを関数に抽出
def analyze_data(df):
____df = analyze1(df)
____df = analyze2(df)

____return df
df = analyze_data(input_data())
draw_graph(df)
関数のリストを作ってそれを適用する方法もいろいろとあるけど
今の段階なら上の方法からやるのがいいかと

157 :
>>156
>途中のdfが不要なら上書きしていけばいい
自分で書いといてなんだが
df = df.apply(analyze1)とかでapplyできる形でなく
全く異なる別のDataFrameを生成してるんであれば変数名は変えたほうがいいかも

158 :
Categories > Tech > Languages (Python)
https://duckduckgo.com/bang?c=Tech&sc=Languages+(Python)
ドキュメントの探し方
https://news.mynavi.jp/itsearch/article/devsoft/4859
>任意の機能を持った対話システムを自分で開発する場合にはどうしたらよいのでしょうか。
当然ながら、必要なモジュールは自分で探す必要があります。しかし、プログラミングを始めて間もない方の多くは、
どうやって調べたらいいかわからないのではないでしょうか?
そこで今回は、「カレンダーを表示する対話システム」の開発を想定し、
カレンダー機能の実装方法を調べていくプロセスを紹介したいと思います。

159 :
再帰関数に慣れると今度は逆にループが面倒になる

160 :
>>156
なるほど
クラスにするとインスタンス生成して、ポインタ指定しなければいけないから、冗長になるけど、
あえてクラスにしないで関数にするとシンプルになりますね。
オブジェクト指向でクラスにしなければいけないと思ってたけどあまり黄にしなくていいのかなぁ。

161 :
df自体がDataflameオブジェクトのインスタンスなんだけどそんなこともわかってないのかな

162 :
関数型プログラミング HOWTO
https://docs.python.org/ja/3/howto/functional.html

163 :
>>150
「df10」みたいに
変数名や関数名、クラス名などに
数字がつく時点で間違ってる
Pythonのまともな本の
サンプルコードでは
まずそうなってないはず

164 :
>>160
Ruby では普通は、モジュール内にはクラスを定義するけど、
単にモジュール関数も定義できる。
例えば、my_utility.rb 内に、モジュールを定義する
module MyUtility
def my_func( 引数 )
end
module_function :my_func # 外部へ公開する
end
別のファイルで、上のモジュールを読み込んで、関数を呼び出す
require_relative "my_utility.rb"
MyUtility.my_func( 引数 )

165 :
>>160
あえて一言でポイントだけ言うと
クラスを作るかどうかは
状態を管理したいかどうか

166 :
Pythonって文字列部分にダブルクオートを使わずに
シングルクオートを使って書かれてるコードの方が多い気がするんですけど何か意味あるんですか?
シングルクオートのキーボードの位置って結構押しづらい位置にあるからあんまり使いたくないんですけど

167 :
>>163
すいません。
実際の名前を書くと長くなりすぎるかと思って適当な名前をつけてしまいました。
ちなみに実験条件1、実験条件2データを
experimental_condition1
experimental_condition2
というのもあまり良くないのでしょうか?

168 :
>>165
状態を管理するってどういう意味でしょうか?
本とかでゲームを題材に敵を量産するためにクラスを作るのはわかりやすいのですが、
数値計算とかだと、どこでクラスを使うべきかよくわからなくなります

169 :
>>166
USキーボードはダブルよりシングルの方が押しやすいから

170 :
>>162
なるほど
関数型プログラミングとは聞いたことがありましたが、こちらの方が数値計算とかだとしっくりくるような気がしますね

171 :
>>168
単純な数値計算は関数だけでもいい
むしろその方がスッキリする
三角関数とかに状態とかないから
ゲームの場合は状態遷移の塊で
状態を保存しておきたいから
クラスを作りインスタンスを生成する

172 :
>>169
ありがとうございます
そういう理由なんですね

173 :
>>166
US-ASCII キーボード使え

174 :
>>167
dfA とか dfB とか dfZ とか使ってる人もいる
どっちにしろ素人丸出しコードになるのでお薦めはしない

175 :
>>166
なんでだろう(´・ω・`)

176 :
"..." より '...' の方が見やすいから

177 :
ぺっぷってやつにどっちが推奨とか書いてないの(´・ω・`)

178 :
"""hogehoge"""
↓よりも見易いのは
↓こっちやろ
'''hogehoge'''

179 :
blackがダブルクォーテーション推してるからダブルクォーテーション使え

180 :
>>167
(とくに二桁以上に増える可能性があるものは)
後で複雑化して大変になるから
たとえば配列を使ったりして
番号を振らないで済むようにする方が推奨できる

181 :
>>179
> black
とは何?

182 :
>>167
なげーよ、短く且つなんのデータフレームかわかる命名しな。センスが問われる。

183 :
>>166
C#ではダブコ使うからダブコに合わせる

184 :
>>181
pythonのほぼ公式formatter

185 :
>>167
テストが2つしかないと明確に決まってるなら〜one,〜twoでいいと思うけど
それがいくつになるのか解らない、もしくは多いのならリストを使って
〜[x]としたほうがスマートというか扱いやすい
変数名、関数名、クラス名に数字を使わないというのは
プログラムの作法(?)として言語を問わず普通というか当たり前

186 :
あと、なんか知らんけどこのスレ、プログラミング自体が初めてな
感じの奴多い気がするんだけど、学生なのかね?
なんかpython選択しちゃってどうしたらいいか解らない的な
質問が多い気がする

187 :
>>186
PythonのPHP化だよ
すそ野が広がれば初心者も増える

188 :
超初心者ってのはプログラミング自体初めてっていうヤツのことなんじゃないの
初心者に輪を掛けて超がついてんだよ
それ以外に何かいるの

189 :
>>184
まだベータのくせに

190 :
>>187
ユーザー層的にはPHP化というよりExcel化だな

191 :
>>187
やめろよ、Ruby野郎が来るだろうが

192 :
わいRuby厨、いまからプログラミング始める学生に勧めるならもうRubyよりPythonかなって思ってたけど、お前らは最初の言語は何がいいと思ってんの?

193 :
C

194 :
Java

195 :
最初ならアセンブリ。冗談じゃなく。
ほんのちょっと齧っておくだけでいい。

196 :
>>192
目的次第

197 :
>>195
Cとどっち書くか悩んだw

198 :
>>186
本屋いってみ?
スクラッチとパイソンだらけだ
あの状況はちょっとやばい気がするぞ

199 :
供給過多で単価が下がるのはプロパー的にはありがたい
Pythonはコーディングスタイルを統制しやすいから低スキル層を束にして使うには向いてる

200 :
なんかJavaに似てきたな

201 :
>>171
なるほどわかりやすいです
自分はゲームとか作ることはないので、
クラスにする必要性はなかったのか・・・
C#の初心者本とか見てるとクラスにしないといけないような脅迫観念があった

202 :
>>185
配列は自分も考えたのですが、
今回は2つまでなの確定なんですよね

before, afterの頭文字とって
DF_B, DF_A
とかしたら訳わかんなくなるんだろうな
名前決めるのって難しい

203 :
plt.plotで2つのグラフを順番に表示させると、
1名目のグラフのウインドウを閉じないと、2枚目のグラフのウインドウが表示されないのですが、
同時に表示させる方法ってないでしょうか?

204 :
>>199
>低スキル層
で、超ゆとり教育を激受けて脳が未発達で実質知的障碍者に近いレベルの奴が
たむろしているのが俺らのこのスレだからな。

205 :
>>192
Ruby

だと本当は思ってるが
今はPythonなんだろうな

206 :
>>203
https://qiita.com/gaku8/items/90167693f142ebb55a7d

207 :
Pythonはプロの開発に使われることはまずない
開発以外に主眼が置かれている人工知能などは別として
プログラマの主戦場である業務系やWEB系ではまず使われない
自分自身でアイデアも実装も出すとこならPythonも可能性があるが
他者の依頼によって開発する場合にPythonが採用されることはない

208 :
うそは遺憾

209 :
Google「…」

210 :
>>207
プwww
典型的な日本のPGですね、君www

211 :
>>210
> PG
とは何?

212 :
GoogleやNetflixやDropboxはプロでもWEB系でもはなかった…?

213 :
>>212
WEB系とはWEB技術を使って業務システムを作ること
オープン系の対義語
またそれらの企業は「他者の依頼によって開発」ではなくて自社開発
>>210
日本だったらこれが常識だよね
COBOL、VB、Javaが職業プログラマの基本
さらに言うならOracle、SQLServer、DB2も習得していると望ましい
Pythonって要するに日本でいうBASICと同じ立ち位置
例えば最も普及しているBASICであるExcelVBAがいくら便利でもそれで基幹システムつくらないよねって話
GoogleだってPythonはタスク管理程度にしか使ってない
大事なところは別言語(時代によって採用言語は変わるがPythonではない)
あと、よく言われるけどPepperもPythonじゃないからな
あれはユーザー側が簡易に制御できる言語としてPythonを採用してるだけだ

214 :
>例えば最も普及しているBASICであるExcelVBAがいくら便利でもそれで基幹システムつくらないよねって話
これでド素人ということが分かった

215 :
基幹システムといえるかどうか微妙だが
情報システム部門で日報作るのにExcelマクロ必須だったな

216 :
ExcelVBAで基幹システムって
作らないのではなく作れないし

217 :
>>216
お前も210から見ればただのド素人
実は僕もなんですけど

218 :
>>213
>Oracle、SQLServer、DB2も習得していると望ましい
ちょっと古いのでは?
今は postgreSQL

219 :
>>216
作れない?
高くつくから作らないだけだろ
コストと日程くれるなら作るよ

220 :
ガチればストアドプロシージャだけでも基幹システムは作れるゾ

221 :
12345678みたいな入力を\x78\x56\x34\x12に変換するライブラリってありませんか?

もしくは今そんな感じの自作モジュールを作ろうとしてて、
/usr/bin/mymodule/
以下にchange.py、その中に入れる関数の方のchange(s)まではできたんですが
from mymodule import change
change.change(s)
と毎回関数changeを呼び出す為に2回書かなきゃいけないのが気に入らないので
この関数changeを一発でimportする方法を教えてください
ワンライナーでも多用する予定なので、できる限りタイピングする文字数を小さくしたいんです

222 :
>>215
全然微妙じゃなくて吹いたわw
Excel VBAで基幹システムって言ってるやつは
UI部分にExcelとVBAを使ってるって話だろ

223 :
>>221
#include <time.h>
t = time();
などと2行書くものだと信じていたので、質問に驚きました。

224 :
>>223
あ、すみません後半のchange.change(s)みたいにファイル名と関数名を
一々書かなきゃいけない方が嫌なだけで、一行目のimportは当然OKです
python -c "import change(もしくはfrom 〇〇 import change);change(s)"
みたいな感じの物を実現したいです。

225 :
いまやPythonは基幹システムに使われるメジャー言語になっているから
職業プログラマが必死にPythonをやっているからな

226 :
>>221
$ touch /usr/bin/mymodule/__init__.py
from mymodule.change import change
https://docs.python.org/3/tutorial/modules.html#packages

227 :
>>226
ありがとうございます!
importのやり方普通のやつとfrom ~ import ~しか分かってませんでした、反省します

228 :
自分の周りでは少なくとも、治自体関係、医療関係(レセプト、電子カルテ等)、
運送・運輸関係の基幹システムをPythonで構築しているという話は聞いた事
がない。コールセンター(CTI、IVR等)関係のシステムをPythonで構築している
という話も聞いた事がない。

基幹システムをPythonで構築ではなく、基幹システムの一部の機能にPythonが
使われている場合があるという事なのか。

それとも情報系システムと勘違いしているのか。

229 :
基幹系システムと情報系システムの違い
https://www.hitachi-solutions-create.co.jp/column/core-system/basic-information.html

230 :
フレッシュなニンニクジュースを飲めばコロナ菌は死滅する!

231 :
スレ違いの上エビデンスなしはNG

232 :
ニンニクジュースの話はスレチだな

233 :
COBOL、VB、Javaが、多重請負構造・奴隷土方プログラマの基本w
銀行側が払う料金
時給5千円 * 180時間 = 1人月90万円
その内、本人は20〜30万円ぐらいもらう。
その差額、60万円分で、数社の会社が成立できる仕組み
その60万円を多重請負構造で分ける
例えば、元請けのIBM(5大ITer)が30万円とって、
1次受けの上場企業が20万円とって、
2次受けの中小企業が10万円とって、みたいな土建業と同じの多重請負構造
就職面接へ行くと、1〜3次受けの会社員が皆来てるw
1次受けが雇うというと、2次も雇う、3次も雇うとなるw
奴隷売買業w
女衒みたいなものw
GitHub・Ruby みたいな自社サービス系とは全く違う!
学校で教えるのは、就職率が高い、Ruby ばっかりw
自社サービス系の方が、会社の倒産リスクは高いけど、
中間会社に抜かれないから、給料が高い

234 :
それに銀行系は、システム更新時期が過ぎたから、仕事が無くなったw

235 :
プロは複数言語使えるのが当たり前なんだからPythonが基幹システムに使われようが使われなかろうがどうでもいいだろ。
言語の特性上向いてない目的を挙げて特定の言語をdisすることになんの意味があるのかわからん。
他言語のコード書いてるときでも、データ変換やある程度決まりきったコードなんかはPythonで生成したりしてるが便利だよ。他言語で書いたアルゴリズムが間違ってないかの検証なんかにも使えるし。

236 :
生成や検証ってpython以外のP言語でも出来るんじゃねえの

237 :
Haxe は、JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash に変換できる

238 :
>>221

>>> binascii.a2b_hex('12345678')
b'\x124Vx'
>>> list(reversed(binascii.a2b_hex('12345678')))
[120, 86, 52, 18]
>>> bytes(reversed(binascii.a2b_hex('12345678')))
b'xV4\x12'

239 :
>>221
structパッケージかな
from struct import pack
pack('<I', int('12345678', 16))
長いというならラムダ式でも使って
change = lambda s: pack('<I', int(s, 16))
と定義すれば
change('12345678')
で使える

240 :
>>238
>>239
ありがとうございます、ただやりたいのは入力数値をそのまま\x78\x56……
みたいな方式に変えたいことで16進数に変換されるとちょっと不都合が
セキュリティ本のシェルコード挿入でそういう入力多かったので作ろうと思ったんですが
もしかして普通は上みたいな入力使う機会ないんですかね?

241 :
ごめん何言ってるか判らないω

242 :
>>240
\x78
は16進数で78のことを表している

16進数であることを明確にするにはH'78と記述する
プログラムでは0x78と書く

\x78\x56...みたいな16進バイト列を作りたいんだけど、16進数にされるとちょっと困る、と言われても、こっちも困る

243 :
要するにchange.change(s)って毎回書くのだるいからchange(s)って書くにはどうすればいいかってこと?

244 :
https://dotup.org/uploda/dotup.org2096094.png.html
画像はbashですがこんな感じでAAAA\x78\x56……という文字列を出力したいんです。
って言おうとしてたんですがすみません、これの出力が
AAAAAAAAAA\x78\x56\x34\x12
になるとずっと思っていたんですが、嫌な予感がしたので今確かめたら
AAAAAAAAAAxV4
になってました
つまり>>238の方と>>239の方のやり方が求めていた者です、ありがとうございます。
初心者の勘違いでお騒がせをしてスレを汚してしまい申し訳ありませんでした……orz

245 :
>>244
プログラムに組み込んでパイプで渡したいだけなら何もする必要はない

python -c "import sys; sys.stdout.write('AA\x12\x34')" | hexdump -C
結果
00000000 41 41 12 34 |AA.4|

コマンドライン引数でこの文字列を受け取った上で別のプログラムに渡す場合は、自分で作らないとない

python -c "import sys; sys.stdout.write(sys.argv[1])" "AA\x12\x34" | hexdump -C
結果
00000000 41 41 5c 78 31 32 5c 78 33 34 |AA\x12\x34|

\x12がH'12の1バイトではなく、H'5c783132の4バイトとして評価される

246 :
def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
def main():
a=input()
if a!='1':
file_open()
を実行すると、VS CODEのウインドウの下に非アクティブでファイル選択ウインドウが立ち上がります。
ファイル選択ウインドウを再前側でアクティブウインドウとして立ち上げたいのですがどうすればいいのでしょう?

247 :
if文ぬいて
def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
def main():
file_open()
とするとファイル選択ウインドウが最前面にきてアクティブになるんですよね
なんでだろう

248 :
ああ、なんとなくわかってきました
input()
を使うと、VS CODEが最前面でアクティブのままロックされて、
そのウインドウの裏でファイル選択ウインドウが開くみたい
input()を使ってこの現象をさける方法ってありませんか?

249 :
連投すいません
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
でファイルを開くときに、選択ウインドウを常にアクティブにする設定があれば教えて下さい
というのが、正しい質問でした
ご存知の方いらっしゃいましたら教えて下さい

250 :
>>249
fd ってのが from tkinter import filedialog as fd なら
tkinter で topmost を指定してあげれば良いんじゃないかな?
https://teratail.com/questions/145112

251 :
>>250
解決しました!!!
ありがとうございます
もうわからないから、
print('この画面を最小化してね’)
とでもしようかと思ってたw

252 :
初歩的な質問ですみません。Colaboratory を使ってスクレイピング行っておりURLのみを表示させたいので
get使ったのですがAttributeErrorになってしまいます。
getを使わずa_tagsだけ入力するとエラーにならずに表示されます。
getが使えないのは何が原因なのでしょうか?

import requests
from bs4 import BeautifulSoup

page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)

soup = BeautifulSoup(r.text, features="html.parser")


a_tags = soup.find_all("a", class_="newsFeed_item_link")

a_tags.get("href")

253 :
>>252
a_tagsはlistだから
listの各要素に対してget(‘href’)する必要がある

254 :
>>252
Ruby, selenium-webdriver, nokogiri で作ったが、href を取得しようとすると、エラーになる。
sleep 15 して待っても、エラーのまま
要素は存在するけど、JavaScript で動的に、href を作っているのかも。
他から取得するか、クリックするなど、何かアクションを起こせば、作られるのかも
require "selenium-webdriver"
require "nokogiri"
options = Selenium::WebDriver::Chrome::Options.new
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks"
doc = Nokogiri::HTML( driver.page_source )
css_selector = "a.newsFeed_item_link"
elements = driver.find_elements( :css, css_selector )
results = elements.map { |elem| elem.attr( "href" ) }
puts results
driver.quit

255 :
>>254
は、nokogiri を使わず(doc という変数を使っていなかった)、
selenium-webdriver から取得していたので、
それを、20秒スリープして、nokogiriから取得するように変えたら、25個のhref を取得できた!
require "selenium-webdriver"
require "nokogiri"
options = Selenium::WebDriver::Chrome::Options.new
driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks"
sleep 20
doc = Nokogiri::HTML( driver.page_source )
css_selector = "a.newsFeed_item_link"
elements = doc.css( css_selector )
results = elements.map { |elem| elem.attr( "href" ) }
puts results.length, results
出力、以下が25個
https://news.yahoo.co.jp/pickup/6355533
https://news.yahoo.co.jp/pickup/6355534

256 :
すいません、ちょっと教えてもらいたいのですが
for x in ...
とかで文字を使っちゃうとまた次のforのときに
またx使うか迷うんですけどどうしてますか?
iみたいに毎回同じ文字使ってますか???
特に短いforがいくつもあるときに悩みます

257 :
>>256
入れ子になってる等やむをえない事情がないのなら、
新たな文字など使わずに
むしろ
どんどんxなりiなりを再利用したまへ。

「どーでもいい?forループ回すときはいつもiな!」みたいな
俺ルールの徹底は
後日メリットばっかりだぞ。

258 :
>>256
ループ変数としてしか使わない前提なら可
ループ変数を他の用途に使い回すのは不可

259 :
ループ内のネストなら昔からi,j,kやな

260 :
>>258
そのルールでチェックできるlinterってない?

ループの外では使うのは気持ち悪いからやらないけど
セーフガードは持っておきたい

261 :
特に用が無いなら for _ in list:

262 :
>>261
おおお なるほどなっとく!

263 :
私も普通にi、j、k、m、l、nかな

264 :
>>263
m、lの順序が敢えて逆なのに意味はあるんけ?

265 :
nとmが紛らわしいとか?

266 :
i, ii, iii, iiii
とかやっちゃうな

267 :
何だこのスレ?bad know how の集合知や〜

268 :
いいことジャマイカ

269 :
特定種類のファイルとかはtext, image, folderとか
それ以外で二重以上だと分かっている時はx,y,z,w
4重ループより複雑な時は実装がおかしい

270 :
pythonでも高階関数使いまくったらいい感じにスッキリできるんかな
内包表記でええやんってなりそうだな

271 :
>>269
> 特定種類のファイルとかはtext, image, folder
これもアリでんな

>>266
目が滑るからやめとこうぜ

>>270
ハッシュ・ド・カレーだっけ?www

272 :
目が滑るとかいうワードセンス

273 :
pythonやるために格安ノートPC買いたいんやけど必要スペックとかある?

274 :
>>273
一番の問題はHDD容量だとおも。
俺のネットブックはHDDが64GBしかないから
あっぷあっぷしている。
無論CPUは速いほうがいいし、メモリも多いほうがいいのだが。
>>272
んじゃあ
老眼にキツイし、
そも、人間の指は同じキーを何度も打つのは苦手にできてるんだからやめとこうぜ

275 :
>>269
x,y使うのは座標と分かっているときだけだなぁ。そのときは外側からt,z,y,x,(wかc)

276 :
>>266
それやるぐらいならi1, i2, i3, …にするわ

277 :
>>253
ありがとうございます。使い方が間違っていたんですね。再度調べてみます。
>>254
>>255
ありがとうございます。seleniumでも試す際に参考にさせていただきますね。

278 :
>>274
アザス

279 :
>>256です
ありがとうございます
自分なりにルールを決めたものを使っていくことにします。
forに変数いらないのあるなんて知らなかったです
助かります

280 :
>>273
> pythonやるために格安ノートPC買いたいんやけど必要スペックとかある?
格安ノートはわりとすぐに使えなくなる。
無駄遣いになる危険性があるぞ?
PCには金を使え。
もしプログラマやデータサイエンティストになりたいなら。

281 :
別にクライアントサイドでプログラミングしなくてもいいんでないかい

282 :
>>280
いまはやり?のビッグデータ解析とか
自然言語だの画像だのをみて、判別してくれるAIにちゃーれんじするなら、
自分のノートのスペックなんかより
ぶっちゃけ、契約するスパコンのスペックががが

283 :
>>280
Colaboratory
https://colab.research.google.com/notebooks/intro.ipynb
Azure Notebooks
https://docs.microsoft.com/ja-jp/azure/notebooks/azure-notebooks-overview
オンラインでプログラミングして実行できるサイト
https://qiita.com/tttamaki/items/2b009aa957cfa4895d50
現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門
https://www.udemy.com/course/python-blockchain/
¥1,380 元の価格¥17,400 割引率92%OFF
この価格で購入できるのはあと1日!

284 :
>>262
pythonにもperlの$_変数を導入しようって話か?
やっぱり変数宣言なんて不必要で、みんながみんな決められた記号を使えば、誰にも分かるコードが出来上がるじゃないか

285 :
無論prologにも無名変数として_が用意されてる
ttp://karel.tsuda.ac.jp/lec/prolog/intro2/
ならもう変数命名自体を排除した方がいいのでは

286 :
ここってプログラム以前の問題もありですか?
私はターミナルを使うのにあまり慣れていません。
python2.7.3を使わなければならない用事ができました。
macでpyqt4を使おうと思いましたがインストールがうまくいっていないようです。
https://qiita.com/aical/items/2d066801a7464a676994の通りにしました。
ターミナル↓
hogenoMacBook-puro:~ hoge$ pyuic4
Traceback (most recent call last):
File "/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/PyQt4/uic/pyuic.py", line 26, in <module>
from PyQt4 import QtCore
ImportError: No module named PyQt4
pyuic4を使うとインストールができたかどうか確かめられるとのことで使いましたが、
どうやらpythonが認識していないようです。
pyqt4がありそうに見えるのにno moduleと言われるので困っています。
これが現在の様子です
hogenoMacBook-puro:~ hoge$ python
Python 2.7.13 |Anaconda 4.0.0 (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

287 :
mojave 10.14.6です

288 :
>>286
PyQt4がインストールされていない

conda install pyqt=4

それでも出るようなら環境変数PYTHONPATHを設定してパスを通す

export PYTHONPATH=$HOME/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages

289 :
>>288
ありがとうございます。解決しました。
conda install pyqt=4 はつい先ほどマニュアルを読んで実行したはずが
なぜか追加要素がたくさんあって驚きました。
それでも解決しませんでしたが、次にパスを通すことでうまくいきました。

290 :
一昨日こちらでスクレイピングの質問し回答を参考にさせていただいたものです。
エラーが起きなければ25件titleとURLが取得できると思うのですが、5件しか表示させず
IndexError: list index out of rangeとなってしまいます。
指定しているインデックスの問題だと思い番号をかえたりしてみましたが改善されません。何が原因なんでしょうか?
import requests
from bs4 import BeautifulSoup
page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)
soup = BeautifulSoup(r.text, features="html.parser")
a_tags = soup.find_all("li", class_="newsFeed_item")
data = []
for h1_tag in a_tags:
tmp_article_a_tag = h1_tag.find_all("a")[0]
title = tmp_article_a_tag.text
url = tmp_article_a_tag.get("href")
print("title:{} url:{}".format(title, url))
data.append([title, url])

291 :
今日日anacondaって使うメリットあるか?

292 :
>>291
Anacondaはシステムのライブラリが足りない場合でも動くので、そういう環境の人は使えると思うよ
例えばCentOS系でDockerが使えない場合、ライブラリが古い場合でも必要なライブラリはAnacondaがインストールするので新しいpythonが使える
他には機械学習関係でcudaやcudnn等のNvidia環境を構築するのは圧倒的に楽
バージョンの干渉で迷う事はほぼない
.bashrcや.zshrcにデフォルトでAnacondaを設定するとデフォルトのPythonと環境が違うのでトラブルの元になるけど、毎回sourceコマンドを叩くのも面倒なので利便性とのトレードオフかな

293 :
venvみたいなめんどくさいことするならanaconda入れる方がよっぽど楽だけどね。
PATH設定くらいだからそこまで問題がわからなくなることが多いとも思わん。

294 :
condaに入ってないライブラリをpipで持ってきて地獄を見たことがあるから、最近はpoetry使ってる
今の主流はpipenvなのかな?

295 :
conda使ってるのにpipで入れてる上になんか入らないやつ手動でsite-packageフォルダにコピーしてるけどダメなの?

296 :
>>294
それさらに地獄みるやつやん。。

297 :
いい加減、ライブラリ・パッケージ管理ツールを統一して欲しいもんだが
次々と新しいものが出てくるばかりでどうにもならんな

298 :
追加で質問です
$conda install -c dan_blanchard pyenchant でインストールしようとしていますが、
10分経っても終わりません。なにかいい方法はないでしょうか。
Collecting package metadata (repodata.json): \  ←この棒がずっと回っている

299 :
anacondaを使った理由はたまたまネットで見つけたページにそう書いてあったからです。
私はとあるソフトを使いたいだけでプログラミングについてはよくわかりません。

300 :
>>290
ブラウザの開発ツールでページ構造よく見てみ
5個ごとに入ってる広告がliの直下はaタグではなくdivになってるから

301 :
ちょ、python最新版にしたらkerasが対応ついてきてなくて積んだww

302 :
keras, ras, whatever will be will be.

303 :
>>290
Ruby で作ったけど、最初の部分は省くけど、( >>255 を参照)

li.newsFeed_item の子孫のa は、29件で、li.newsFeed_item の直下のa は、25件。
Python のfind_all("a")[0] は、子孫も含めるのじゃないか?

出力は、こういう感じ
title:富士フ、アビガン治験開始へ3/30(月) 22:52 url:https://news.yahoo.co.jp/pickup/6355698
title:大連市 北九州にマスク20万枚3/30(月) 22:40 url:https://news.yahoo.co.jp/pickup/6355699

doc = Nokogiri::HTML( driver.page_source )

elements = doc.css( "li.newsFeed_item" )

# li.newsFeed_item の子孫のa は、29件
results = elements.map { |elem| elem.at_css( "a" ) }
puts results.length
results.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" }
puts "------------------------------------"

# li.newsFeed_item の直下のa は、25件
ary = elements.each.each_with_object( [ ] ) do |elem, ary|
elem.children.each do |child|
if child.node_name == "a"
ary.push child
break
end
end
end

puts ary.length
ary.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" }

304 :
昨日から学習始めました。
pandasで質問なんですが、このようなDataFrameがあるとして、

日付    スコア
2020-03-01   20
2020-03-02   15
2020-03-03   25
 ︙
↑これにカラムを追加して累積のスコアを取得したいです。

日付    スコア  累積
2020-03-01   20   20
2020-03-02   15   35
2020-03-03   25   60
 ︙

カラムの追加は出来ています。
データは長いものなんですが、forを使うんですかね?
それともちょうどいいメソッドみたいなものがあるんでしょうか?
くだ質ですけどよろしくお願いします。

305 :
このスレの上の方に答えあるぞ

306 :
この辺組み合わせろ
cumsum
Series
concat

307 :
>>305
>>306
ヒントありがとうございます!

308 :
https://qiita.com/kyoro1/items/b7f9b26e93df85984f51

309 :
何度もすいません 環境書いてなかったので
mac mojave10.14.6 python2.7.3 anaconda で pyenchantを入れようとして
conda install -c dan_blanchard pyenchant を使ったものの
Collecting package metadata (repodata.json): / が数時間ほど出続けて一向に終わりません。
conda install pyenchantも試しましたが同じような結果でした。
IDEは多分xcordだと思います。

310 :
>>306
出来ました!ありがとうございます!
嬉しい!

311 :
>>309
それはlinux用だからmac用の探してインストールしたら?
https://anaconda.org/search?q=pyenchant
https://anaconda.org/natx/pyenchant とか
conda install -c natx pyenchant

312 :
やってみましたが特に変わらないです。10分ほど待ちましたがまだ同じ文章が出て回ってます

313 :
ありがとうございます。再度構造を確認したら間違っていることに気がつきました。
>>303
参考になりました。ありがとうございます。findの使い方、ページの構造を理解しきれてなかったので基本から見直してみます。

314 :
>>313
いまこそ、新しい知識を身につけよう!インプレスの人気書籍ムックを3月31日まで全文無料公開
https://book.impress.co.jp/items/tameshiyomi
AndroidでもPythonが使いたい - Termuxを始めよう
https://news.mynavi.jp/article/zeropython-59/
JavaScriptで動かそうobniz S
https://obniz.io/ja/products/starterkit

315 :
>>312
アンカーを省略するんじゃない

権限は足りてるか?

最近のMacOSなら、ルートレスが悪さをしてるかもしれないので
一時的にでも切ってやってみそ

316 :
>>312
ゴメン linux用のパッケージ入れようとしてたのが原因なら、無反応じゃなくてエラーになってたはずだね

condaのバグでそういう症状が報告されてるから、そっちかな
(Anaconda 4.0.0なら関係ないかもだけど、condaをアップデートしてたらありえそう)
https://github.com/conda/conda/issues/9221
mmoisseさんのコメントに従ってsubdir_data.pyを編集しないとダメなんだけど、無理そうならpython3で試すとか
この修正はcondaに取り込まれないので( https://github.com/conda/conda/pull/9600 )、もしこれが原因なら、待ってても(python2では)直らないと思う

317 :
【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、
「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html

コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね

318 :
>>315
・アンカー省略して申し訳ないです
・私はこのmacの管理者です。それ以上のことはわかりません
・切りましたが変化ないです
>>316
・python2を使う必要があります
・anaconda4.0.0 でconda 4.8.3 py27_0 のようです(conda listで出しました)
・そのプログラムを==から<にすればいいのはわかりましたが方法がわかりません
そもそも場所もわかりません

319 :
┐(´д`)┌ 現状をまだパンデミックだと認めてないのはただの政治判断ッショ

320 :
>>319>>317宛な

自分でアンカー省略するなといっといてコレとはなさけなや (´・ω・`)トボーン

321 :
>>318
312氏の投稿のほうが当たりっぽく
かつ
Python2系縛りがあるとなると、
308のナウのパウァーでは
どーにもならないっぽいな・・・
condaがばぐっててむりでした。どーしましょ ってさっさと上に相談してみる に1票。

322 :
>>304
df = df.assign(累積=np.cumsum(df['スコア']))
で1行で出来ますよ

323 :
sys.stdout.buffer.write(b"\x41"*10)
ってやると「AAAAAAAAAA10」って表示されるんですけどこの最後の10ってなんですか?
これの取り方を知りたいです

324 :
>>323
byte型とstr型まぜるな危険ちゅーか混ぜれないぜイラァ!が、Python3あるあるらしいぜ。
hoge=b'\x41'
hoge=hoge.decode()
sys.stdout.buffer.write(hoge*10)

325 :
>>318
>conda 4.8.3
4.7.11以降だから、やっぱり該当するね
>・そのプログラムを==から<にすればいいのはわかりました
お、それが分かるんならもうちょっと
その続きの部分でmmoisseさんがashleymaeconardに教えてる↓のコマンドで見つかるはず

dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"

「which conda」でcondaがインストールされてる場所がわかるので、そのディレクトリ下からsubdir_dataっていうファイルを探すって感じ
おそらく ../lib/python2.7/site-packages/conda/core/subdir_data.py みたいな場所にあるんじゃないかな?

でも、python2も使おうとしてるpyenchantも古い(最近のはpython2対応してない)ので、今後も問題が起きた時に対応策を調べるのが結構大変だと思うよ(最新の環境の方が情報が見つけやすい)

326 :
>>322
df['累積'] = np.cumsum(df['スコア'])

327 :
>>324
そいつもエラーだ

>>323
最期の10 は単に戻り値が画面に出て来るだけ
>>> _ = sys.stdout.buffer.write(b"\x41"*10)

これで消える

328 :
>>324
馬鹿は黙ってろ

329 :
>>324
sys.stdout.buffer.write()だとstr型は表示できません
ですが一応答えてくださってありがとうございます…

>>327
ありがとうございます!
print()のbyteをデコードして出力する感じのものだと思ってたんですが動作違うんですね…勉強になりました

330 :
>>325
dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"
を使ったら
usage: dirname path
find: /../lib: No such file or directory
と言われてしまいました
>>321
チームメイトは日本語ほぼ通じないし私の英語も足りないので難しいことを喋るのはきついです
ちなみに会社ではないし賃金もないです

331 :
>>329
sys.stdoutするところまで確認しないで書き込んですまんそ。

言い訳すると、朝だからバタバタしていた。

>>327横レスだけどなるほどなっとく

332 :
>>330
which condaの結果が取れてないのかな?
ターミナルで使うシェルのコマンドの使い方とか意味がわかってないなら、「mac ターミナル 入門」とかで検索して適当な入門記事とか読んでみると、何をしているか(わからない時の調べ方とかも)わかるようになるよ

やってることは
which condaでcondaがインストールされてる場所を調べる
dirnameコマンドでその場所のディレクトリを取得する
変数dirに結果を格納
その中(下の階層)にある名前がsubdir_data始まりのファイルをfindコマンドで探す
っていう流れなので、個別に分けて実行してみるとわかりやすいと思う

あとは、別にターミナル使わなくても、ファイル検索の機能やツールでsubdir_data.pyを探してもいいと思うよ
もし複数見つかったとしても、condaのファイルかどうかはファイルパスからわかるんじゃないかな?

333 :
>>332
あああ微妙にわかった気がしてきました
なるほどだから一行に$が何回も出てきたのかと納得しました
確かにwhich condaを試すと回答が出てこず何事もなかったかのように
hogenoMacBook-puro:~ hoge$ が出てくる状況になっていました。
ウインドウを閉じてまた開くと普通の回答が戻ってきて不気味です
今度はfind: /Users/hoge/.pyenv/shims/../lib: No such file or directory
になって多少進歩しましたが見つからないですね
mdfind subdir_data*は何も出ません。
find / -name subdir_data*は末尾にPermission deniedのついた大量のデータが出てきましたが
condaという文字が見当たらないです
と書き込もうとしてfindの回答したデータに気づきました
/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/conda/core/subdir_data.py
これだ
なぜか/Users/hoge/.pyenv/versions/anaconda-4.0.0/系統の回答には
頭のfind: も末尾の: Permission deniedもついていなくて目が滑っていたようです
早速finderにパスを打ち込んで直接書き換えることで変更し、バグが直ったようです
現在のバージョンはpython3.4を要求してきたので古いのにします
ttps://pypi.org/project/pyenchant/1.2.0/#history
2.0.0を入れればいい感じですか?

334 :
>>333
本家もメンテナンスしないような古いバージョンのAnacondaと戦うのは辞めた方がいい
Anacondaはconda installを使った場合はパッケージの干渉を細かくチェックしてるけども、pipを使ってはいけない訳でもない
pip install --upgrade pip
pip install pyenchant
Mojaveにpyenvでanaconda-4.0.0をインストールして上記コマンドを試してみたが普通インストールできて適当なサンプルも動いた

335 :
やっぱpoetryが最強なんだって

336 :
>>333
あーそっかnatxはpy34なんだねゴメン
https://anaconda.org/search?q=platform%3Aosx-64+pyenchant
xrysoflis の方がpy27だから、そっちを使えば良いんじゃないかな?Filesタブで確認できるよ
>>334 も言ってるし、朝も書いたけど古すぎて後々かえって困ると思うのでオススメできないけど、python2使わなくちゃいけないならpyenchantもv2以下になるね
一応conda skeleton使ってPyPIパッケージもインストールできるよ
https://qiita.com/itsumonotakumi/items/f0273c2a3a04ef808dbd

337 :
>>333
>ウインドウを閉じてまた開くと、普通の回答が戻ってきて不気味です
Mac では端末の設定ファイルに、~/.bashrc を使うか知らないけど、
たぶん端末の設定ファイルに、設定を書き込んだから、
端末を再起動(閉じて開き直す)すると、設定ファイルを再読み込みするから、状態が変わる!
だから設定ファイルに書き込んだら、常に端末を再起動すればよい

例えば、Windows 10, WSL, Ubuntu 18.04 で、Ruby のバージョンマネージャー・rbenv を使うと、

~/.bashrc に、以下の2行を追加するように言われる。
内容は、環境変数PATH の先頭に、rbenv のパスを追加して、rbenv init を実行する

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

2行を追加してから、source ~/.bashrc と入力して、~/.bashrc を再読み込みするか、
端末を再起動すると、更新された、~/.bashrc を読み込むので、

echo $PATH
と入力すると、確かに先頭に、~/.rbenv/bin が追加されているので、
which rbenv
と入力すると、~/.rbenv/bin/rbenv が表示される。
これで、rbenv コマンドをグローバルで使える

以下、rbenv install 2.6.5, rehash, global で、好きなバージョンを使えるようになる

rbenv which ruby
と入力すると、確かに、versions の下に、インストールされている!
~/.rbenv/versions/2.6.5/bin/ruby

338 :
最近はMacのデフォルトシェルはzshになってるからそれで嵌るやつは嵌る

339 :
>>338
何…だと…

340 :
obj.sort(str) みたいなのがあって、引数がリストなど受け付けないとき
obj.sort(str_1).sort(str_2)みたいに書いてるんですがバカっぽいです
なにかいい書き方はありませんか?

341 :
バカっぽい以前に何をしたいのかよくわからん
安定ソート前提なの?

342 :
>>340
objとstrがどういうものかによる
built-inのsort()/sorted()を使ってDictionaryを複数キーでソートしたい場合は
sorted(obj, key=lambda x: (x[‘str_2’], x[‘str_1’]))
obj.sort()が独自の比較ロジックを実装してるなら
それを比較関数として切り出してsort()/sorted()に渡す

343 :
チームメイト(そのソフト作成者)に相談したら返事もらえたのでまずそのとおりにしました
python -m pip install pyenchantで 3.0.1 が無事インストールできました
>>334
ERROR: Package 'pyenchant' requires a different Python: 2.7.13 not in '>=3.5'と言われました
>>336
conda install -c xrysoflis pyenchant==1.6.6しましたが
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistenc-

- https://repo.continuum.io/pkgs/free/osx-64::ipython==4.1.2=py27_1
(同じようなものが何行も)
failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -
でこれ以上進まなくなりました
>>337
残念ながら今の私には理解できません
>>338
私のはbashのままのようです

早速インストールした環境を使ってそのソフトを動かしたところ、
SyntaxError: invalid syntaxと言われました。
チームメイトによるとそのソフトはmacで起動確認してないので動かないのかもしれないそうです
ええ…
幸いwindows ならその人が全部やってくれそうです

質問に答えてくださったみなさんありがとうございます
勉強になりました。特に==を<に書き換えるあたりは興奮しました
もし補足やうまくいきそうな方法があればまだ見てますのでお願いします

344 :
いつもありがとうございます。こちらで回答をいただきながらスクレイピングを行っている者です。
個別でURL、タイトルなど取得し無事に出力することができたのでページ内の全URLを出力してみたところ、
予定では別々な25件のURLが出力されると思ったのですが、
同じURLが220件出力されてしまいました。原因はenumerateの使い方が間違っている。
取得する場所が間違っているからだったりするのでしょうか?
import requests
import re
from bs4 import BeautifulSoup
page_url ="https://news.yahoo.co.jp/topics/top-picks"
r = requests.get(page_url)
soup = BeautifulSoup(r.text, features="html.parser")
item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
for num,item in enumerate(item_list):
news_url = news.find(class_="newsFeed_item_link").get("href")
print("num:", num)
print("url", news_url)
print("*" * 100)

345 :
>item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
それは正規表現か?
そりゃ、完全一致じゃないから、かなり多くのclass が該当するはず

346 :
>>344
とりあえずIPythonとかのREPLで確認しながらやれ
item_list = soup.find_all(class_=re.compile(r"newsFeed*"))
の後にREPLにitem_listとタイプしたり、len(item_list)とタイプしたり、item_list[24]とかタイプすれば
中に何が入ってるか、何件取得できてるか、思ったものが取得できてるかを確認できる
試行錯誤しながらいいけど
CSSセレクター勉強して欲しいものを取得できるようにならないとスクレイピングとか無理よ
item_list = soup.select('li.newsFeed_item > a.newsFeed_item_link')

347 :
スクレイピングは、他人が作ったソースコードを解析するから、かなり難しい。
なぜかと言うと、作者は仕様を知っているけど、解析する方は知らないから。
答えを知ってる者には簡単だけど、知らないとかなりの時間を損する!
初心者は、やめておいた方がよい
作者の仕様を予想するのと試行錯誤で、かなりの時間を損するだけで、
全くプログラミングが上達しないから!
自分で、練習用のサイトを作った方がよい
スクレイピングは、プロでも無料ではやらない。
他人の滅茶苦茶なソースコードを見ても、何も学ぶことが無いからw
単純に時間の無駄

348 :
Web技術はこまごましてて難しすぎるんだよな
CSSセレクターって何だろうと思って調べてみたが理解できなかった

349 :
Yahooってapi用意されてたりしないの

350 :
CSS セレクター
https://developer.mozilla.org/ja/docs/Learn/CSS/Building_blocks/Selectors
CSS #02 セレクタを使ってみよう@
https://www.youtube.com/watch?v=0cux-JL7c1g

351 :
>>345
正規表現です。該当してる中から取得するやり方ではいけないんですね。
>>346
わかりました。セレクターも入力してみて何が取得できるのかなど一通りやってみます。
>>347
基礎学習の後にスクレイピングがおすすめと記載されていることもあるので簡単な方だと思っていました。
よく見るサイトやフリマ系など必要なデータを取れるようになれば時間の時間の短縮になると思いましたがそのレベルになるのは難しそうですね…
皆さまご丁寧にありがとうございます。参考にさせていただきます。

352 :
自分で書いた、HTML をスクレイピングすればよい。
そうすれば自分が仕様を知っていて、色々いじくれるし、
自分のPC 内で、何回でもテストできる
他人の作ったページは、いじくれないし、ほとんどが無駄な部分。
しかも、作者だけが知っている仕様を解析・予想するのに、かなりの時間が掛かる
普通は仕様書・設計書から、実装を作るけど、
逆に、実装から仕様を予想しちゃいけない!
これは、自然とは逆方向に向かうから、非常に難しい。
だから、リバースエンジニアリングは、無料ではやらないわけ
それに、かなり時間を掛けて、作者だけが知ってる答えを見つけても、何にもならないw
他人のアプリの仕様なんて、人それぞれだから、参考・勉強にならない。
自分が作る仕様と無関係

353 :
最終的には他人の作ったサイトから情報を抜き出せるようにならなければ意味がないけどね。

354 :
スクレイピングは試行錯誤してれば急にサクッとできるようになるから
パズルみたいなものだと思って楽しめばいいよ

355 :
utf-8でpythonから出力したファイルをExcelで開くと文字化けします
確かExcelはBom付きで保存しなおせばいいと思って、

メモ帳で開く→utf-8Bom付きで保存→Excelで開く

をしても相変わらず文字化け
前は同じ出力ファイルを開けたのですが、なにか抜けているのかなぁ?

356 :
>>355
1嫁
> ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
>   実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

+うまくいかないファイルとやらにだけ日本語含まれてたりしないか?

357 :
>>356
すいません
自己解決しました
Pyhotn側のコードを何度かバージョンアップするうちに、
ヘッダーが壊れていました
大変失礼しました

358 :
java遅くて嫌いなのにnode.js仕方なく入れたら旧式Python入れられてパスまで通されたわ

359 :
encoding='utf_8_sig'
とすればBOM付きになってそのままExcelで開けるんですね

今までの苦労はなんだったんだろう・・・

360 :
だからなんなんだよ

361 :
>>351
基礎の後に実践としてスクレイピングがオススメなのは間違いないよ
コレクション処理、テキスト処理、ネットワークI/O, ファイルI/O等
アプリケーションプログラミングにおいてコアとなる概念を学べる
それにYahooは比較的スクレイピングフレンドリーな作りだからいいチョイスだと思うよ

CSSセレクターみたいに1~2日で学べるような知識は
必要になったその都度身につけていけばいいんだけど
問題なのは何が間違ってるかを自分で調べる方法をほぼ持ってない事

まともにプログラミングできるようになるには
何が間違ってるかだけじゃなく
何が間違ってるかをどうやって調べればいいのかを知ろうとするマインドが決定的に重要

362 :
>>343
condaでinstallする前にpipで(サポート外の)3.0.1を入れたからじゃない?(でもよく入ったね?)
エラーメッセージ読めばわかると思うけど、環境の不整合が起きてるんだと思う
>SyntaxError: invalid syntaxと言われました。
pyenchantは3.0.0からpython2のサポートしてないのでpython2.7ではpyenchant 3.0.1入れても不具合でるんじゃないかな
https://github.com/pyenchant/pyenchant/releases/tag/v3.0.0
例えばpython3から導入された(python2に対応してない)構文で書かれているコードをpython2で動かすと、対応してないのでSyntaxError(構文エラー)が出るということはありうるよ
もちろん、チームメートの人が言うようにOSの問題かもしれないけど
とりあえず、環境構築の質問はそのチームメイトにした方が確実だよ

363 :
condaはこれがあるから嫌なんだよな

364 :
HTMLのスクレイピングは簡単だが
JavaScriptだと一気に難しくなる

365 :
なんのスレッドなのかわからない

366 :
Ruby

367 :
コロナの自粛期間を利用してPythonを勉強し始めました。
下記のCのコードをPythonに変換しようと思ったのだが
いきなりforループの書き方でハマってます。
ご教授お願いします

#include <stdio.h>

long combi(int,int);

int main()
{
int n,r;
for(n=0; n<=5; n++){
for(r=0; r<=n; r++)
printf("%d C %d=%ld",n,r,combi(n,r));
printf("\n");
}
}

long combi(int n, int r)
{
int i;
long p=1;
for(i=1; i<=r; i++)
p=p*(n+i+1)/i;

return p;
}

368 :
def combi(n,r):
__p = 1
__for i in range(1,r+1):
____p = p * (n-i+1) // i
__else: return p

for n in range(1,6):
__for r in range(n+1):
__print(f"{n} C {r} = {combi(n,r)}")

どうでもいいが元のコードのcombiは式が間違ってると思う

369 :
for n in range(1,6):
__for r in range(n+1):
____print(f"{n} C {r} = {combi(n,r)}")
のミス

370 :
>>367
Cって、forearchないんだっけ?あれと一緒よ

371 :
CできるのにわざわざPythonを学ぶ意味がわかんねえ
PythonにできてCにできないことはないだろ

372 :
>>371
> Cにできないこと
コンパイラ要らずの安易さ。
Cの他に何でもいいから適当なスクリプトは出来るといいと思う。

373 :
>>371
できればいいって言うわけじゃないだろ
「簡単に」できるとか「安全に」できるとか「わかりやすく」書けるとかも重要だし

374 :
Cにできて機械語にできないことはない

375 :
>>362
今pyenchant3をアンインストールしてから
pip install pyenchant==1.6.6してそのソフト実行したらsyntaxerror 出なくなりました
そして.dll: unknown file typeと言われました
ソフト作成者に言ったら「気づかなかった」と言われました
以上です。本当にありがとうございました

376 :
>>372
それは IDE にそういう機能を付ければいいだけの話
Java とかコンパイラが必要だが、eclipse を使えば
特にコンパイラのわずらわしさはない

377 :
>>367 >>368
ご教授ありがとうございます。
Pythonのforループの書き方がちょっと独特ですね。
ご指摘いただきましたcombiの式、確かに間違ってました(笑)
正:p=p*(n-i+1)/i;

378 :
3.8からmath.combが使えるよ

379 :
>>340
class my_obj:

 def sort(self,tgt):
  if type(tgt) is list:
   for i in tgt:
     〜〜〜
  elif type(tgt) is str:
      〜〜〜

こんな感じでどうっすか?

380 :
やはりその形ですかー
同じメソッドならチェーンでない方法で連打できないかなと思ったのです。引数に無理やりイテレータぶち込むみたいな

381 :
>>358
javaとNode.jsに何の関係が

382 :
>>379
何をしたいコードなのかよく分からないがエスパー力すごいな

383 :
こーゆうエスパーが勝手に要件勘違いしてバグ仕込むんだよなー

384 :
プログラム言語のPythonを大学でやることになりました
Pythonの一般的な言語に対しての欠点を教えてください
また文法が簡単に書けるのは豊富なライブラリがバックにあるためだと聞きました
何でもかんでもライブラリ頼りになることはなんか弱点というか危険なこととかはありませんか?
すいませんが教えてください

385 :
型の宣言をしないから型というものの意識が非常に弱いプログラマーとなる。
C#などでjson受ける為のclassなど書けるレベルにならないと駄目。

386 :
・相対的に遅い(ライブラリ使ったら大抵はそこそこ〜かなり速い)
・コンパイラ型の言語に比べて型システムがゆるいので移行するのが面倒くさい(必ずしもする必要はない)
・exeファイルに固めるのが苦行(これは本当に欠点)
職業プログラマを目指さないならどれも全くどうでもいい問題

387 :
ライブラリ頼りなのはどの言語でも同じどんどん使え

388 :
ありがとうございます
Pythonは特段優れた言語ではなく
現在評価されているのはライブラリがたまたま現在需要がある
AI関連のヤツが充実してるからと聞きました
Pythonは廃れる危険性は薄いですか?
C言語やJavaと仮に一本でやるにはどれがいいですか?

389 :
重視したいのは速度と安定性です

390 :
>>388
本職目指すなら一本に絞ること自体ナンセンスだから取っつき易いのから始めて全部やれ。
研究の道具とかで何らかプログラミングができるようになりたいというなら、具体的な用途を示さないとどれが適切かは分からない。
言語本体だけで見ればその中でpythonは遅い方だが用途によっては全く問題ない速度が出たり、他の言語で作るより速いものが作りやすいこともある。

391 :
>>389
オープンソースソフトの未来は誰にもわからない
開発コミュニティがやる気を失ったりケンカ別れしたらそれでおしまい
これから言語はたくさん経験するんだから、とっかかりとして気楽にやればいいよ

392 :
質問スレ頼りになるのは弱点というか危険だな

393 :
速度なんてアルゴリズムによって大幅に変わるから

394 :
得意分野違ったり何やるかにもよる
javaとかループする計算早い!とかいいながらGUIクソ遅いし

395 :
教えてもらえませんか?

任意の場所に多角形があって
多角形の辺を3cm、4cm、3cm、4cm.....と多角形を大きくする感じにしたいのですが
多角形の頂点を角度に合わせて計算して膨張させたつもりが
図形が移動するだけになってしまいました
vertはそれぞれの頂点座標です
移動する長さの計算は合っているんですが
元の座標がマイナスになったときにうまくいきません
どうしたら膨張させる様に頂点の座標を計算できますか

↓自分が作ったのはこれです
from mathutils import Vector
for v in vert:
___p=v+Vector((3,4))
___print("新しい座標は",p)

396 :
掛け算しろ

397 :
>>396
ありがとうございます!
割合で計算し直してみます
たすかりました!

398 :
>>384
基本的に欠点が少ないから普及してる
型付けについては長所短所は裏表で
動的言語と静的言語は一長一短になる
ただ両方使えるに越したことはない
しいて言えば内包表記とか表記がやや煩雑で
Rubyの方が書きやすいと個人的には思うが
AIライブラリが充実してるからみんな使ってる
>何でもかんでもライブラリ頼りになることはなんか弱点
そりゃ何でもライブラリ頼りなら
プログラミングが上達しないことが弱点なんじゃないの?
一方で車輪の再発明すると時間を浪費するのも事実だけど

399 :
Intel Distribution for Python
って実際どれぐらい速いんですか?

400 :
>>388
>AI関連のヤツが充実してるから
流行したのはそれが大きいだろうけど
>Pythonは特段優れた言語ではなく
いやそこそこ優れてるとは思うけどね?
他の言語と比べればわりと書きやすい方
同じ動的言語でもPerlやPHPやJavaScript
より書きやすいんじゃない?(Rubyが一番だけど)
>Pythonは廃れる危険性は薄いですか?
薄い
もし将来廃れるとしても
十年、二十年は持つだろう
>C言語やJavaと仮に一本でやるにはどれがいいですか?
PythonやってればCやJavaもそこそこ書けるはず
CのポインタやJavaの静的型付けでつまずく
かもしれないが多くの基本は共通している
まず易しい言語のPythonを
ちゃんと読み書きできるようになろう!

401 :
Pythonは何で短い行で他の言語と同じ命令ができるのですか?
(例えばプリントメソッドなど)

402 :
裏で妖精さんたちが頑張ってくれてるから
それと引き換えに妖精さんにわかる言葉でお話する時間だけ処理速度が遅い

403 :
>>402
妖精とは?
ライブラリとはまた違うんですよね?

404 :
>>401
一言で言うとPythonの中に命令が書いてあるから

405 :
妖精は心がきれいな人にしか見えないんだよ
ライブラリは心が汚い人でも見える

406 :
>>404
そうなのですか
でもじゃあなんで他の言語じゃそういう仕組みがないんでしょうか

407 :
>>406
それはPythonがわりと若い言語だから
同期のRubyも同等の短い命令で書ける

408 :
Goもやってみたいけどライブラリが少ないからなぁ、kivyみたいな便利なものが欲しい

409 :
>>407
短い命令で書ける代償に何か遅いとかある?

410 :
あるよ
妖精さんのMPが尽きたら動かなくなっちゃう

411 :
メモリポイント(MP)

412 :
>>401
プリントなんてどの言語も大差ないと思うけど
どんなコードを見ていっているの?

413 :
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
}

414 :
Javaはいちいち大げさすぎる
Pythonとは文化が全く違うのでこのスレ民には用無し

415 :
Javaは大規模開発に向いている
小規模でちょこちょこやりたいなら、Pythonで十分

416 :
しかしpythonのself地獄はいかんともし難い
となるとpythonはそれ用には作られてないのではと思ってしまう

417 :
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0

学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net

418 :
>>416
そらそうよ
Pythonのオブジェクト指向機能は後付けだからな
最初から純粋なオブジェクト指向言語として作られたJavaとはモノが違う

419 :
>>409
Pythonは遅い言語だよ?
部分的にトレードオフがある
型を書いた方が早いとか

420 :
>>418
JavaよりRubyの方がより純粋なOOP言語だよ

421 :
後付けというかJavaScriptと同じプロトタイプだからな。
JavaScriptのthisとPythonのselfどっちがマシか?

422 :
>>419
でも主要な所はライブラリでCで書かれたのを使うから
実質は速いから問題ないっていう声も聞くんですが

423 :
グダグダ言ってないで書いてpythonのできる範囲内ではどうやって遅いと思うなら他の言語に移植すればいい
その程度のスピードは出る
最初から世界最速目指さないと死ぬっていうなら別の言語のほうがいいが

424 :
>>401
> 短い行で他の言語と同じ命令ができる
そうとは限らない。

425 :
>>422
高速なライブラリがあるから、それを使う処理は高速にできる。
pythonという言語自体は他の言語に比べて相対的に遅いから、pythonで記述した処理は相対的に遅いから遅い。ただその遅さが許容できる範囲内かどうかは要件次第。
何も矛盾はしてないぞ。
要はケースバイケースなんだから、単に遅いとか速いとかバカな理解のしかたをしないで、正しく使い分ければいいだろ。

426 :
遅いから遅い、は遅いの間違い。

427 :
プログラミングせずに口だけ動かしてたら妖精さん逃げちゃうよ!

428 :
Java 系と python 系では思想が違う
Java はなんでもちゃんと書くという思想
python はなるべく書かないという思想
それだけのこと
長所、短所は何とも言えない

429 :
んな思想はない
Explicit is better than implicit.

430 :
>Explicit is better than implicit.
この考え方も後付けなんだよね

431 :
Enumと辞書ってどう違うんですか?

432 :
遅い早いとかおまえらのレベルじゃ気にするレヴェルじゃねーだろ

433 :
>>431
全くの別物だけど、どういうところが紛らわしいと思うの?

434 :
>>433
スルーしてたけど全く別物でワロタwww

435 :
>>433
keyとvalueがある

436 :
ありがとうございます。こちらで教えていただいたおかげで無事に1ページ目のURLやタイトルを取得し出力することができました。
今はページを遷移して全ページのタイトル、URLを取得しようとして、次へのURLは取得することができたのですが
最後のページは次がない為苦戦してます。get_htmlメソッドで別のページのhtmlを解析している動画があったので私も使ってみたのですが、
なぜか使えずNameErrorになってしまいました。何が原因なのでしょうか?get_htmlメソッド以外にもラストページのhtmlを解析できる方法がありましたら教えていただければ幸いです。
質問がわかりにくく申し訳ございませんが、宜しくお願いします。

437 :
>>436
1.htmlを解析する
2.次のURLがある場合取得して1に戻る ない場合、終了する

だけなんだけど、エラー時の対処方法が分かりませんということかな

if文で分岐するか、try ~ exceptで囲んでしまうかなんだけども

438 :
>>435
enumは後から値を書き換えられない&キーを追加できないかわりに、読みやすい、キーがシンボルなのでtypoしてもすぐに見つかる、値からキーを引けるのが大きな違いかなあ

439 :
ブログで成果が出るまでの期間は「100記事」です【魔法はありません】
https://www.youtube.com/watch?v=-iVkNRvTuPw
月収800万円ブロガーの「1日ルーティン」を公開します【怪しい】
https://www.youtube.com/watch?v=CqD89NXyl0U
【朗報】ブログで「350日」の毎日更新をしたら、生活費は稼げますよ
https://www.youtube.com/watch?v=A_CAOCAQSs8
【最高】ブログで200記事を書くと、月5万円くらい稼げる話【実例あり】
https://www.youtube.com/watch?v=SdtRAEGOcyE
【報告】ブログで「月収1,000万」を達成できました【方法を解説する】
https://www.youtube.com/watch?v=pgjcuLp8wt0

440 :
>>436
ようわからんからサンプルソース
https://ideone.com/0KvMNh
ideoneに貼っつけたらURL部分が変わってしまったので、
main()の最初のnext_urlにはtopのURLを入れたら動くはず

441 :
>>438
違いはイミュータブルとみやすさってことですかね
値からキーなら辞書でもitems()と内包表記でできますね
キーがシンボルというのはどういう意味でしょうか

442 :
>>431
元々は数十個の連番の定数を定義するためにC言語で使われた
enumなんかは存在せず、全てdefineでやっていた
それが40年ほど掛かって進歩して、今日のenumになった
なので直感的に理解しやすいのはC言語のenumで、それ以降のenumは抽象度が上がってるので理解し難くなっている
そして現代プログラミングではそもそも連番の定数というものは使わない
連番の定数による状態の区分けと、OOPでの状態の区分けは、機能が相反する

443 :
月の名前
4月 と April
とかは、一度定義すれば変わることはないので、一度定義したら変更不可にしておいた方が安全だというのが enum の有効な使い方

444 :
>>436
ありがとうございます。エラーの対処がわかりませんでした。if文で作ってみますね。


>>440
不十分ですみません。コードありがとうございます。参考にさせていただきます。

445 :
>>441
enumと辞書は根本的に用途が違うよ。
enumは固定の値として使うもの。一連のグループとして括られるある定数の集まりに、分かりやすく名前とその値を決めてあらかじめ定義しておくためのもの。
辞書は入れ物。プログラムの処理の中で、必要に応じて中身を追加したり変更したり取り出したり削除するための箱。

446 :
tkinter.ttkってtkinterのサブモジュールだからfrom tkinter import * でロードされないのですか?
また
from tkinter import *
from tkinter import ttk
だと丁寧でないので
import tkinter as tk
import tkinter.ttk as ttk
としたいのですが、なにか(二重ロードなど?の)問題がありますか?

447 :
Pythonのインデント強制って結構欠陥じゃないか?
コピペが安定的にできんし見た目で何個空いてるのかも分からん

448 :
俺も強制インデント好きじゃないな
括弧の方が好き

> コピペが安定的にできんし見た目で何個空いてるのかも分からん
不可視文字表示のプラグインを入れればいい

449 :
コピペしないからどうでもいい

450 :
インデントがバラバラだと
イラつくから統一してるんだろ?

でもオレもRubyみたいに
整形の自由度高い方が好きだが

451 :
そんなに嫌いではないけれど、やっぱ長い関数やクラスだと見づらいわな。
tensorflowとか長ったらしい関数使う割にインデント2って最悪だわ。

452 :
pythonでguiアプリとかギャグやろ?

453 :
関数名や変数名で単語の区切りに大文字を使うことはしないの?

454 :
kivyのcanvasにctypesでがっつり描いてGUIやってる

455 :
>>452
そうでもない
>>453
のぞましくない という。
少なくとも、先頭には使っちゃいやーん。
  (クラスかなにかと、まぎらわしくなるからだとかなんとか)
ただし、
不変な値の名前に、ならば、
全部大文字ならおk...らしい。
例) URL_TUPLE=("http://2ch.sc", "https://2ch.sc")

456 :
>>452
なんで?
Tkinterとかあるだろ

457 :
>>452
じゃあ何で書いたら楽なの?
Ruby on Rails ぐらいしか選択肢がないが

458 :
FW

459 :
guiアプリならC#だろ

460 :
今どきはElectronとか使うのかと思ってた

461 :
くだすれってなに?

462 :
くだれすやめろ

463 :
GTK+3使う。便利じゃん

464 :
偉大な言語には接頭語を付けて「おPython」と呼ぼう

465 :
>>461
「(上級者wwwからしたら)くだらない(かもしれない)質問を書くスレ」の略語らしいぞ

466 :
くだをまくスレ
だろ?

467 :
Python, Markdown, Yaml などは、

VSCode の有名な拡張機能、indent-rainbow でカラー表示できる!

468 :
vscode入れ直したらクラスは2行開けとか、カンマの後はちゃんとスペース入れるとか、空の空白入ってるとかで警告出てたの出なくなっちゃった
どこいじったのか覚えてないや

469 :
>>468
多分select interpritatorでpython実行環境を設定してないのが原因

470 :
python.pythonPath 設定してないんだろな

471 :
pyautoguiでも何でもいいのですが、
別の仮装デスクトップ上に画面とか展開して自動で動かす方法はないですか?
メインのデスクトップ上では他の作業をしてるので、自動化作業は、別の仮装デスクトップ上で不可視の状態で進んでいて欲しいです。

472 :
適当なVMでも使えば?

473 :
>>471
無理
俺も前似たようなことやろうと思ったけど、仮想デクストップ系の制御はあんまり融通が効かない

474 :
出来ないこともないけど最初から仮想の方で動かせば完結してない?

475 :
>>471
画面・マウス・キーボード切り替え器for2台用を購入して
パソコン本体を2台にしる

476 :
作業内容にもよるけどブラウザで完結するならselenium使えばいける

477 :
Pythonでグラフィック使ったゲーム作りたいんですがGUIライブラリ入れたらできますか?
方法があれば教えて下さい。試しにKivyての入れようとしたら難しすぎて無理でした。

478 :
anacondaは入れてます

479 :
>>477-478
「ハサミを買っても使い方が難しくて分からない」と言ってるやつは
永遠に「ハサミで紙を切る」ことができないままだ。

アナコンダはGUIアプリを作るためのものではないので
へのつっぱりにもならん。

480 :
ゲーム作るならPythonを今すぐ投げ捨ててUnityを使おう
Pythonに拘って今どれだけ苦労しようともいずれ必ず他へ移行することになるんだし、Unityなら初心者向けの本などは腐るほどある

481 :
kivy慣れるとめっちゃ便利なんだよな
しかも覚えるとUnityやSwiftまで簡単に見えてくる

482 :
>>479 Kivyは使ったことすら無くてインストールでつまずいてます。
>>480 調べたらUnityはゲームエンジンで言語はC#ですね。C#用の無料IDEがあるかどうか。
>>481 そうですかインストール頑張ってみようかな。簡単に越したことはないし

483 :
Unityはそれ自体IDEだし、個人ならVisualStudioも無料

484 :
GUIアプリってのもまた微妙な言葉だな。
ゲーム、ブラウザ、デスクトップアプリ、スマホアプリ
でも取り扱いが全然違うだろ。

485 :
わかりやすい解説見つけたからやってみたらKivyインストール出来た
せっかく環境作って途中まで勉強したしPython + Kivyで作ってみます。ありがとうございました

486 :
>>485
ここまでスレ使ったんだから
その
「わかりやすい解説」とやらのページに行くための検索単語か
「h」をとったttp以降のアドレス書いてけよダボハゼ

487 :
いやせっかくUnity教えてもらったし迷ったけどKivyの方が簡単て聞いたからだけど
結局Kivy入れるならもっとKivyのインストール調べてから聞くべきでした。失礼しました
参考にしたブログは
ttps://algorithm.joho.info/programming/python/kivy-install/

488 :
>>477
pygame

489 :
pythonとはライブラリである
実際のプログラムはjuliaで書く
pycallで呼び出せばいいのだ

490 :
これのインストールのどこが難しすぎるんや???
煽り抜きでがちで解せぬ
zip解凍してexe叩くのに比べて難しいってこと?何と比較して難しいの?え?

491 :
質問です
100万個くらいの点があって、それぞれ名前、X座標、Y座標を持っていて、
その中で2点間の距離が、ある範囲にある点の組を抽出したいのですが、
速度が速いのは、どういう方法になりますか?

いまは全然Pythonっぽくなく、単に各点の名前、座標でリストにして、
X、Y座標のforループ2つで、距離はmathで三平方の定理…です

ただ、100万×100万÷2も回すのはさすがに辛いので、
一応時短のため、先にリストはX座標でソートしておいて、Xの小さい方から評価して、
X座標の差が、距離の範囲のmaxを超えたらbreakでXのループ抜ける…ってのだけしてます

492 :
>>491
距離をもとめる計算の部分を
numpy.linalg.norm でも使ってみたらどうだろう

493 :
>>491
https://ja.wikipedia.org/wiki/%E6%9C%80%E8%BF%91%E5%82%8D%E6%8E%A2%E7%B4%A2
これじゃね

494 :
とりあえずマンハッタン距離で評価してマンハッタン距離>=ユークリッド距離は自明だからそれでフィルタする

495 :
空間を適当なサイズのメッシュで分割して、互いに近くにあるセルのペアに含まれる点だけで距離を計算すればいい
俺も全く同じことをやったことがあるんだが、見も蓋もないことを言えば
ぶっちゃけ手間暇かけてそういう工夫するよりCで普通に二重ループぶん回した方が結局手っ取り早くて遥かに速いよ

496 :
>>491
一回しかやらない処理ならpythonでいいけど、毎回計算処理入るようなシステムに組み込むならコンパイル言語でやった方がいいわ。

497 :
>>495
>互いに近くにあるセル
この判定がめんどくさそうだな

498 :
1兆回のループで何分くらい?

499 :
>>491
理論的なことは他の人が答えているので実践的なことを一つ

モジュールscipy.spatialにKDTreeってのがあるからそれで解決

500 :
>>492-499
回答ありがとうございました!
いろいろヒント貰ったので、それぞれ試してみます

>>498
さすがに1兆回やりきったことはなくて、
>>491で、データによるけど100億のオーダーくらいには減らして、
6時間〜半日くらいかかってます(遅いノートPCだからってのもありますが)

501 :
class Base():
__def __init__(self):
____self.a()
____self.c()

__def a(self):
____def b():
________pass
__def c(self):
____pass

self.c 内の処理でself.a内関数bを呼び出したいんですが、なんと書けばいいのでしょうか

502 :
>>501
def a(self)の戻り値にreturn bとして関数を返す
そうするとself.a()で関数bが帰ってくるから
b2=self.a()
b2()
で呼び出せる
一行でかくならself.a()()となる

503 :
おー。なるほど。ありがとうございます

504 :
マルチスレッド・プロセスでやるとリークの温床になりそう。
Baseオブジェクトがbオブジェクトに依存するという関係が。

505 :
マルチプロセス入れたら軽くなった
global使いまわしてるとこエラー出まくってたけどTryで解決した

506 :
座標系aで表された3次元の点群の組と
座標系bで表された3次元の点群の組があって
座標系a→bに変換する行列をsolveするライブラリはありますか
aとbはどちらも直行座標系で、回転と並行移動で変換できることは既知です
そして各座標における点の対応関係も全て既知なので、pnpみたいにsolveして欲しいイメージなのですが

507 :
ちなみに何をしたいかというと
座標系aでは点群は全てz軸上に乗っていてx,yは全て0なので
座標系a上で、別の2次元点群をx,yに配置して(zは等間隔に適当に配置)
a→bの変換によって座標系b上で点群に沿ってこの2次元点群を投影したい

508 :
未経験から半年でフリーエンジニアになれる人の特徴
https://www.youtube.com/watch?v=YCxu0jn52Qw
フリーランスか会社員かどっちが簡単かについての最終回答
https://www.youtube.com/watch?v=JA4JNSmIdxI
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
月収1000万円オンラインサロンオーナーの日常【飲み過ぎ】
https://www.youtube.com/watch?v=lPfWZLatYus&t=107s
借金400万円から人生逆転するまでの軌跡
https://www.youtube.com/watch?v=fXdHlFFUjGY
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&t=506s
新人叩きしてる古参勢がすぐ儲からなくなる理由
https://www.youtube.com/watch?v=Ch9Ir8O-iqU&t=332s

509 :
>>508
グロ

510 :
>506
>回転と並行移動で変換できることは既知
そこまで判ってるなら逆行列で終わり

511 :
>>507
それって逆行列が無いパターンかもな

512 :
>>506
https://www.slideshare.net/mobile/ttamaki/20090924

513 :
Pythonはどうして同じ命令を他の言語と比較して簡素に記述できるのですか?

514 :
>>513
他の言語の何を知ってるの?

515 :
>>513
簡素なことを書いたら
いっぱいある暗黙の作業な部分はPythonアプリ側が勝手にやってくれてるから

516 :
中カッコを書かないとか
型宣言をしないとか
文の終わりに記号がないとか
そのへん?

517 :
デジャブな質問…
何処かに書いてあったん?

518 :
>>517
デジャヴなんだ
じゃあ大学か専門あたりの追試に出てるんジャネーノ

519 :
>>513
前にも言ったが言語(環境)の中に
より詳細な命令が書いてあるから
ただしその分実行速度が遅くなるが

520 :
型無し言語だからに尽きるんじゃないの?
ライブラリの充実具合ならjavaやc#に及ばないし

521 :
この質問別のスレでも見たな
>>513
・比較しているのは具体的にどの言語か
・具体的にどのようなコードか
この二点を明確にしてくれ

522 :
>>519
どうして遅くなるのにPythonはそのような仕組みを採用したのですか?

523 :
はやさがすべてじゃないから。おk? >>522

524 :
from XYZ import XY as Z でパッケージを読み込み自作クラスA内でz=Z()とインスタンスを作成しています
このインスタンスzがエラー吐いたとき、exceptになんと書けば捕捉できるのかおしえてください
エラー内容は
raise RegexMatchError(caller="get_config", pattern="config_patterns")
XYZ.exceptions.RegexMatchError: get_config: could not find match for config_patterns
です
z.exceptions.RegexMatchError や z.RegexMatchError ではno attributeと言われてしまいました

525 :
>>522
人間が読み書きする速度が早くなるからだよ
実行速度より開発速度を取るのが動的型言語

526 :
なるほど…
遅い遅いって具体的に何が遅いんですか?

527 :
>>524
caller="get_config"
たとえば↑これだと、callerにはただの文字列「get_config」が渡ってるんだけど
それでいいのか?
もっと上の方で変数名get_configとかに何かリストなり文字列なりをあててて、
それを引数として渡したいのなら書き方違うぞ。
あと
raise RegexMatchErrorで検索するとpytubeなるものしかHitしない件。
そして
それんなかのpatternには
通常たぶんre.pattern(なんや正規表現な指示)で
コンパイル済みの文字列が入っている件。

528 :
>>526
 520のレスを おうちのひとに よんで もらってね!

529 :
>>527
AtomのRunnerのコピペだと上記のような感じ
e.type すると class `XYZ.exceptions.RegexMatchError`>
e.aegs すると `get_config:could not find match for config_patterns`
です。インスタンスはz=Z(文字列)で、例外処理を書きたくてわざとアンマッチな文字列投げてるんですが
どうキャッチしたらいいのかわからないのです

530 :
おっと
except Exception as e : str(type(e))とstr(e.args)ですね

531 :
>>524
RegexMatchErrorを定義してるpytube.exceptionsモジュールをimportしてればexcept RegexMatchError:
import pytubeしてれば except pytube.exceptions.RegexMatchError:

532 :
あーなるほど
どうもありがとうございました

533 :
メインクラスがあって、メンバとして別クラス(仮にA)のインスタンスを持っているとき、
Aの中のメソッドからメインクラスのメンバやメソッドにアクセスするにはどうすれば良いですか。

534 :
え、普通に
メインクラスのself.クラスAのインスタンス.メンバ
でアクセスできないですか?

535 :
おいーす 俺Python初心者
Pythonはインデントが必須らしいけどコピペするときとか困るんじゃないの?あとめんどくさくない?
この言語ってええの?

536 :
>>533
Aのコンストラクタにメインクラスのインスタンス渡してA側でメインクラスのインスタンス保持させておいてそれ経由でアクセスする

537 :
>>534
有難うございます。
メインクラスからAのインスタンスのメンバにアクセスしたいのではなく、
Aのメソッド中からメインクラス(のインスタンス)を参照したいのです。

もうすこし具体的にやりたいことは、メインクラスでウィンドウやUI処理させて、
Aクラスは裏で通信やデータ処理をして、結果をUIに返すみたいなことです。
データ処理の結果を、メインのUIでメッセージボックスやログウィンドウに出力するのに、
メインクラスのメソッドを呼ぶにはどういうクラス構成にしたら良いのかなという疑問でした。

>>536
やっぱりどこかでメインクラスのインスタンスへの参照を渡さなきゃいけないのですね。
ありがとうございました。

538 :
普通にreturnで返すだけじゃないの?

539 :
>>535
初心者以前じゃね?
こまんないよ めんどくさいかどうかは、入力補助アプリ使うかどうかとかによる
いいかどうかは目的次第だが、流行ではある。

540 :
>>535
コピペミスなら見た目で判断できるから問題ない
きれいに書くクセがついてない人を矯正する言語と考えれば初心者向けではある

541 :
>>540
いちいち目視でチェックすんのか?
数百行に及んでたらどうすんだ?

542 :
>>541
直せばいいと思う
あなたはプログラミング上のミスをどうやって修正してる?
数百行書いてる時点でその他のミスもでてるはずだけど、それと同じように直せるはずだよ

543 :
数百行に及ぶインデントエラーの出るコードなんて捨てちゃえ。

544 :
>>541
かの秀丸エディタ様には
範囲選択して右クリック→インデントを増やす・減らす機能があるぞよ。

545 :
で、でた秀丸おじさん

546 :
>>541
Pythonはコピペに対して脆弱なのは間違いない
そこは諦めて使うかミスが発生しそうなコピペはやめるか
対象範囲のみdiffとったりしてリスクを許容範囲まで下げる
>>542
「目視でチェックするのか?」って聞かれて
「直せばいいと思う」ってなんやねんw
>>543
エラーが発生するケースはまだマシ

547 :
そもそも
インデントエラーがスーパー出まくるような
くそ長いorむやみに深いネストを作るな。
538が言う通りである。

548 :
こいつらpycharmもしらんのか?
使ってたらインドンテがずれるとか一発でわかるんだけど

549 :
インドアンタエウス

550 :
インデントを右に

551 :
>>547
出まくるとかじゃなくて一ヵ所でもあったら動作しないだろうに

552 :
>>546
エラーに行数出るんだから簡単に直せるじゃん
数百行はどうすんの? なんて言ってる奴はインデント以外のミスはどうすんだよ?って話

553 :
どうすんの?って書いてる奴は別に今困ってるわけじゃないんだよな?

将来の杞憂をここに書かれてもな
嫌ならpythonやめて他の言語覚えてもいいんだよ?

554 :
>コピペミスなら見た目で判断できる
どうやって見た目で判断するの?

>直せばいいと思う
は?

>エラーに行数出るんだから簡単に直せる

見た目で判断できるから問題ないというのは
エラーで行番号がわかるから修正可能って意味だったのかー
エラーになってくれるといいね

555 :
すみません>>535ですが、メモ帳でしかプログラミングしたことないですのでツールの話はやめてください

pythonはやめてScalaにします

556 :
ヲタはすぐにツールとかでマウント取りたがる
別に自分で開発したわけでもないくせに
ツールに頼るとコードを書く能力が落ちるぞ

557 :
包丁使うと手で肉を裂く能力が落ちるぞレベル

558 :
PythonよりScalaの方が難しいし
メモ帳しか使えないのに
使いこなせるとはとても思えない

559 :
普通に釣りだろ

560 :
まぁ包丁が無いと為す術無く餓死するようでは困る。

561 :
むしろツールを使いまくってコードをできるだけ書かないのが最近のトレンドだろ

目的がコードを書くことになっちゃあかんぞ
と、コードを書くことが好きな人が多い板で言ってみる

562 :
Software Design 2月号の、Python 特集に、

VSCode で、Microsoft 製のPythonの拡張機能を入れて、
Python.jp の手順通りに、venv で仮想環境を構築すると書いてある

Windows 10, WSL, Ubuntu 18.04 なら、最初からPythonが入っている。
VSCodeの拡張機能・Remote WSL で、Linux にアクセスできる

file `which python`
/usr/bin/python: symbolic link to python2.7

file `which python2`
/usr/bin/python2: symbolic link to python2.7

file `which python3`
/usr/bin/python3: symbolic link to python3.6

563 :
>>561
うまく表現できないが、補完機能を使って書いたコードには魂が入っていないから
書いた本人もコードの内容を三日で忘れてメンテできなくなると思うんだ

564 :
補完機能を使ったらコード内にコメント書かないとか
あふぉといったらあふぉに失礼なレベルだぞwww

565 :
software design ってネラーの暇人が小遣い稼ぎに記事描いてるイメージ

566 :
コロナで暇だからって超初心者スレで釣りしないでください!最低ですよ!

567 :
a = 1
"a" + str(a)
型無しスクリプト言語なのに変換必要な意味ってある?
ここらへんの思想どっかに載ってないかな

568 :
お前はPHPやってろ

569 :
>>567
Rubyも暗黙の型変換は(標準で)しない
なお型が無いのではなくて動的型付け言語だ

それでなぜ自動で型変換しないかといえば
バグの原因になりやすいから

個人的にもしなくていいと思ってる
ほんのちょっとの型変換を省く手間より
デバッグの労力が大変になる方が大きいから

570 :
型がないというより、型がなんなのかを考えてくれる機能が付いている
その機能がカバーしてない部分は型を宣言しないといけない

571 :
ぶっちゃけ現場によってはセキュリティによって
ツールのインストールがくっそ面倒な所があるから、何となく気持ちは分かる
例えば秀丸のみ使用可の所とVSCode+使用可プラグイン(特にflake8とBlack)が使える所で
同じPythonプログラムの開発やらせたら絶対に印象が変わる

572 :
Python使う現場でVSCodeが許されないとか聞いたことない

573 :
お前の経験値が低いだけ

574 :
いやだいぶ異常な現場だぞそれ。金融系か?

575 :
ある無しと異常かどうかは別の話
混同する人はプログラマーに向いてない

576 :
いわゆる「人権が確保されてない」スペックしかない
クソなPCしか置いてない現場も世の中にはごまんとあるんですよ!

577 :
秀丸が好きでそればっか使うとかならわかるけど、それしかダメな理由がわからん

578 :
>>567
数値の加算と文字列連結は全く意味の異なる演算であり、それらを同一のものとして扱いたい場面は現実にはほぼ全く無い
関数の引数に渡した値の型によって関数中の+が数値加算になったり文字列連結になったりすると、おそらくどちらか一方の挙動はバグでしかない
だから、文字列となるケースを限定ことでバグの可能性を(完全ではないが)抑えている
Rubyも同じだが、静的型付けでないからこそ型による制約を強める必要がある代表的な例だ
一方で例えばJavaやC#では数値+文字列は暗黙的に文字列連結になるが、これは静的型付けならどっちの挙動になるかは文脈から間違いなく明らかだから問題ないんだよ

579 :
Javaでも暗黙の型変換はゴミですけど?

https://note.com/ryohji/n/n1b5ab7dcd9c1

580 :
まともなセキュリティ規範を持っている組織なら、IT環境へのフリーソフトのインストールや
ネット接続は厳しく制限されているのが普通なわけでして
特別に認められたソフトしか入れられないというのは当たり前で、ましてネット接続を前提とした
VSCodeのようなプラグイン拡張を売りにしているツールの導入は至難の業でございます

581 :
sierはアホみたいな縛り具合だよな

582 :
>>580-581
はげどう

583 :
つーかこの板にいるほど知的好奇心高い人たちがなんでSIerで働いてるんだよ

客先常駐じゃリモートワークできるところも少ないだろ

584 :
質問です

Cython?とやらを使えばC言語に変換できて高速化できるのなら
どうしてPythonが低速なのが欠点みたいに言われてるのですか?
全部毎回Cythonに変換すればいいじゃないですか 実質C言語と同等なんですよね?

585 :
SIerはたいてい「客先のセキュリティ要件に準じる」だよ
で結果的にユーザー企業のITリテラシーのない一般社員達のための基準に従うことになる
SIer自身はOSSの導入などに理解のあるところも多いのだが、それについて客に対して物を言えずにペコペコしてしまうことに問題がある
SIerからすれば、工数で金取ってるから不便なほど儲かるしね

586 :
>>583が意識高い()系なのはよくわかった

587 :
>>584
Cython使わないとはやくならない
Cythonを適用するのに時間がかかる
さらに
579はあふぉ
↓でもよんでおk
ttps://qiita.com/pashango2/items/45cb85390193d97523ca

588 :
>>587
いったんC言語に変換したらもうそのままC言語として使えるんじゃないんですか?

589 :
>>588
  >>587と しょうかいされてるqiitaのぺーじを
おうちのひとに いっしょに よんで もらってね!

590 :
cで書けば書き方に関係なく早くなるわけではない
早くする書き方がある。かなりコンパイラががんばるけど
どうにもならないことはある

591 :
>>590
でもベストを尽くすデメリットはないですよね?
なら常にベストを尽くすようにすればいいんじゃないんですか?

592 :
>>584
マジレスするとnumpyとかで充分

593 :
>>591
> ベストを尽くすデメリットはないですよね?
> なら常にベストを尽くすようにすればいいんじゃないんですか?
       ヽ|/
     / ̄ ̄ ̄`ヽ、
    /         ヽ   こっ これが 世にいう
   /  \,, ,,/    |   「銃殺刑がふさわしい」レベル・・・!
   | (●) (●)|||  |
   |  / ̄⌒ ̄ヽ U.|   ・・・・・・・・ゴクリ。
   |  | .l~ ̄~ヽ |   |
   |U ヽ  ̄~ ̄ ノ   |
   |    ̄ ̄ ̄    |

594 :
>>580
なるほどGAFAは「まともなセキュリティ規範」とやらを持ってないわけですね。
勉強になります。

595 :
>>592
プログラムもしたことないのにそんなこと言われても知らないよ

596 :
ノートPC上でPythonを使って簡単な機械学習アプリを作成しようと思ってます

あまり予算がない場合、
CPUとメモリどちらに予算を割くべきでしょうか?

最高級CPU メモリ8G

そこそこのCPU メモリ16G

だったらどっちが良いですか?

597 :
偏らせる意味が分からないし両方そこそこでいいじゃん

598 :
後者
リソース足りないならクラウド上で動かせばいいだけ

599 :
>>596
OSくらい書けよダボハゼが

600 :
話聞けよ

601 :
>簡単な機械学習アプリ

この解釈が難しい

602 :
>>600
   >>600 + >>589 + ひまわりがっきゅうの せんせいに あした いっしょに よんで もらってね!

603 :
>>595
まずやってみてから質問しろな

604 :
客先常駐セキュリティ規範マンくんさぁ、明日も満員電車に揺られるのかい?

605 :
このご時勢で満員電車があると思ってる自宅警備員はチゴイネ!(・∀・)

606 :
まあSIerのカスどもは自分の責任になるようなことは禁止させるからな。
結局それだけしか見てねーんだわ。あとはお客に対する土下座が仕事内容になってる。
このご時世ならさすがにリモートさせるだろう。どんなに仕事が滞ろうとも。

607 :
質問です。例えば[名前、身長、体重、ウエスト]を並べた2次元リストで、
 #こんなリスト→ [['鈴木',173,68,85], ['佐藤',168,59,80], ………]
身長、体重、ウエストで何か計算をした結果で、リストを並び変えたり条件抽出をしたい
で、計算が複雑だったり、人数が多かったりするときの、時間短縮をしたい
numpyだとかの使い方の説明をググると、文字列と数値の混在の例が探せない
そして、↓みたいに数名の例で、名前の部分をprint分に直接記載して表示……とか
 print(' 鈴木 佐藤 高橋 田中 伊藤')
 print(keisan_kekka)
これは人数が多いと無理なので、ざっくりな質問で恐縮ですが、何かいい方法ありませんか?
計算のために数値だけのリストが必要なら、名前を除いた別のリストを作っても良いかとは思うのですが、
最終的に名前と紐付けないといけないし……

608 :
>>596
CPUもメモリも程々
GPUに金かけろ

609 :
名前を数字にしろ

610 :
>>602
質問者おちょくってんなよ

611 :
>>601
まだフワフワなんですけど、SVMで分類とかしようかなと

612 :
>>596
機械学習の種類によるけど
そこそこCPU+メモリ8GB+そこそこGPU
基本はこれ一択
GPU無しは有り得ないwww

613 :
>>608
ノートPCに取り付けれるAI用ユニットとかありましたっけ?
Jetsonnanoみたいな

614 :
よく知らんで発言するけど
numpyって数値計算のライブラリだから混在はダメなんじゃない?

615 :
すまん、svmくらいなら何でもいいわw
セルロン4GBとかでいいんじゃね(鼻ほじ)

616 :
>>607
>身長、体重、ウエストで何か計算をした結果で、リストを並び変えたり条件抽出をしたい
>で、計算が複雑だったり、人数が多かったりするときの、時間短縮をしたい
したいなら、したらいいじゃない

> numpyだとかの使い方の説明をググると、文字列と数値の混在の例が探せない
numpy知らないけど、Pythonでできるぞ

>これは人数が多いと無理
なんで?

617 :
>>607
https://docs.python.org/ja/3/howto/sorting.html

618 :
>>591
Cの処理(コンパイラの仕組みか?)をわかって書かないといくらでも処理は遅くなるよ

619 :
あと、ケースによってはdbにぶち込んだ方が早い場合もある

620 :
>>618
え?翻訳機みたいなのが勝手にコンパイルみたいにチャッチャッとしてくれるんじゃないんですか?

621 :
>>607
pamdas使えばソートも平均 分散 標準偏差 何でも余裕

622 :
>>620
あーこの口調、いつもの質問のふりしてつっかかってくる荒らしだろ
暇だからって荒らすんじゃないよ
即刻NGで

623 :
>>621
ありがとう
pamdas使ってみます

624 :
Javaしか経験なくて、
どんなデータ型扱ってるのかもわからなくなるのですが
簡単にわかる方法があるんですか?

625 :
Type

626 :
>>624
type()

メソッドやアトリビュートが見たかったらdir()

627 :
学術の巨大掲示板群 - アルファ・ラボ
ttp://x0000.net

数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

628 :
機械学習系の案件のゴールって何なの?
アプリ系ならアプリ作って終わりなことが多いけど機械学習系のものは運用しながら手探りでやっていく感じ?

629 :
>>628
偉い人に「やりました」と報告することがゴール
ほとんどの案件はPoCで終わる
ぶっちゃけ異常な持ち上げられ方だったから、コロナショックが明けたらAIブームは一気に収束するんじゃないかな

630 :
>>628
最適解を導き報告

631 :
Pythonistaスレで質問してもレス無いんでここで質問してもいいですか?

632 :
>>631
だめ

633 :
>>628
案件によるだろ
データに適用して結果報告して終わりなのもあったし
学習したモデルをシステムに組み込んで運用してるのもあるよ

634 :
>>631
ええんちゃうの
自分は使ったこと無いから答えられんだろうが

635 :
とりあえず貼ってみます
標準入力から文字列を読み込もうとするとエラーになるんですけど、どうしたらいいでしょうか
1 import sys
2 for line in sys.stdin.readlines():
  〜
てやると行2でStdin.Catcher object has no attribute 'readlines'て言われます。

636 :
>>635
自分の都合のいいレスしかよまない
おめでたいうんこつまってる頭の持ち主だから
理解できないかもしれないが
まず↓を締め切ってこい
http://mevius.2ch.sc/test/read.cgi/tech/1540724553/456

637 :
Pythonistaだからやろなぁ

638 :
>>636
いいから答えろ
俺様の質問だぞ?

639 :
クラス定義の外でグローバル宣言?した変数の
スコープはファイルのなかだけですか。

640 :
モジュールインポートすればモジュール名経由でアクセス出来る

641 :
matplotlibのaxes3dグラフで、左手系で描画するにはどうすればよいですか

642 :
>>641
invert_zaxis()使えば出来そう

643 :
not null はなんて書けばいいですか

644 :
>> 638
難しい質問だなぁ
何がしたいのかもう少し説明が欲しい

そのものズバリの回答ではないけど、比較演算なら以下のように行える

1. 何もない
JavaScriptのnullに相当するのはPythonではNone
Noneでないかどうかはif val is not Noneでチェック

2. 未定義である
JavaScriptの undefined に相当する定義はPythonにはない
未定義でないことを確認するにはlocals()やglobals()を使って
if ‘val’ not in locals() あるいは if ‘val’ not in globals()

3. 空文字
長さが0の文字列を表すのは””や’’
空文字でないかどうかの判定はif val != ‘’ やif not val

4. 空のリスト・タプル・辞書
空のリスト val=[] の判定は if val == [] あるいはif not val
前者はリスト型かどうかをチェック、後者は型チェックなし
空のタプル、空の辞書も同様

5. 文字列の最後
C言語で言う所のNULL文字の概念はないので否定の概念もない
文字列が終わりかどうかは文字列の長さで行う

6. ヌルポインタ
C言語で言う所の(void*)0をそのまま書くならc_void_p(0)
何と比較しても一致するものがない

645 :
たんに1.だったんですけどすごく勉強になりますありがとうございます。

Javaしかしたことなくて型が明確じゃないと自動補完が効かなくて不便な気がするのですが
どうしたら便利ですか。

646 :
クラスメンバの宣言ってどこでしたらいいですか。

647 :
どこでしたらいいですかって基本的にクラス内でしかできんやろ
チュートリアルくらいやったか?

648 :
ガイジの相手をするな

649 :
>>646
R

650 :
>>645
幸せになるにはVScodeやJupyterを使うことかな、それで補完はOK
Noneとか入れてしまうと流石に補完は効かないけど、普通にインスタンス作ったときは補完されるよ
>> 641
ここでチマチマ聞くよりも公式ページのチュートリアルをやる方が早いと思う
https://docs.python.org/ja/3/
の9.3.5.クラスとインスタンス変数に書いてある

651 :
>>647
Javaのstatic宣言みたいな宣言じゃないのに
メソッドやコンストラクタの外だとクラス変数になるのがよくわかりませんでした。
チュートリアルやります。ありがとうございます。
>>650
PyCharmでやってました。ほかのも試してみます。ありがとうございます。
チュートリアルやります

652 :
Noneの判定を is でやるのは御法度じゃなかったっけ
それとも御法度は is True/Falseだったか?

653 :
isじゃなくて、==がダメ

654 :
>>652
NoneもTrue/Falseの判定も is を使う
isを使う場合の御法度はnumpy.bool_型と普通のbool型の比較かな
○ np.True_ == True
× np.True_ is True
例えば変数aがnp.bool_型の場合には
if a == True:
とする必要があるが、linterが入っていると「a is Trueという記法のが良いよ」と言われて直すとバグになる

655 :
>>642
神さまありがとう

656 :
https://ideone.com/e.js/Fq5Yrt
tkinter内で作成したプログレスバーを並列動作させるところまでできたのですが、これを閉じるのはどうしたらいいのでしょうか?check関数で確認すると3本生きたままっぽいです
最終的に、先に終了するth1をカウントダウンタイマーとして使い、th1を閉じるのと同時に遅いth2を強制終了したいのです

657 :
https://stackoverflow.com/questions/110923/how-do-i-close-a-tkinter-window
https://qiita.com/mushroominger/items/db4e6bf0a5f2abd9cf5f

658 :
わからないなら黙ってろよ…

659 :
まったくのプログラム初学者です。
実際に使用されるプログラムにおいてprint()って関数は使用することあるんでしょうか?
どうも実際に動いてるイメージが掴めなくて困っています。

660 :
デバッグ
CGI出力
ログ
テキストベースのアプリ

661 :
デバッグはprint(変数)で何が出力されるか確認するクセ付けといた方がいいよ
print(type(変数))で型も分かるし
これはどの言語でも共通すること

662 :
>>659
それはCUIのアプリを
使わない(作らない)から

663 :
まだprintでデバッグして消耗してるの?
logger使おうな

664 :
デバッグはprintで十分
何かするたびに新しいツールやライブラリに頼るのはPython使いの悪い癖

665 :
自動2chまとめ記事投稿のプラグインを買って、色んなサイトに複製したりしてるんだが
これがpythonなのかどうかとかの判断方法ってあるんですかね?
クローラーとかが書いてあったらpython?

666 :
拡張子がpyのファイルがあったらpython

667 :
ありがとうございます。
拡張子はphpのものしかないのでphpっていう言語ですかね。

668 :
PY=パラグアイ

669 :
>>660-662
なるほど、使うんですね!
ありがとうございます。

670 :
printで充分間に合うときはそうするけど
副作用もあるし実際困るときはファイルに書き出すし
それならloggerの方が便利だぜってなるのは自然な流れだと思う

671 :
>>667
せやね

672 :
>>644
横からすいません
すごく勉強になります。
感謝いたします。

673 :
すいません、教えてもらえませんか?
a = [[1,2],[3,4],[5,6],[7,8]........]
という感じの配列があるとして(中の数字は適当ですが二個ずつ入ってます)
1,3,5,7の最大と最小
2、4,6,8の最大と最小
を出すにはどうしたらいいですか?
普通だったらmax(a)とかで出来るんですが
行列がふえると分からないです

674 :
>>673
import numpy as np
a=np.array(a)
max1357=a[:,0].max()
max2468=a[:,1].max()
numpy無しなら
max1357=max(b[0] for b in a)
max2468=max(b[1] for b in a)

675 :
テスト

676 :
テスト

677 :
>>674
ありがとうございます
めっちゃ短いですね、助かります!!

678 :
Jupyter Notebookを使ってスクレイピングをしています。
soup.find_all(class_="bcs_l")
[<li class="bcs_l"><span>< 前へ</span></li>,
<li class="bcs_l"><a href="/bc/category/?q=%83T%81%5B%83t%83F%83X+%83%89%83b%83v%83g%83b%83v&;sg=%83T%81%5B%83t%83F%83X%81%40%83%89%83b%83v&;rowPerPage=100&;p=2#bcs_resultTxt">次へ ></a></li>]

ここから次のページのurlを取得するために
soup.find_all(class_="bcs_l").get("href")を使用しましたがAttributeErrorになりました。
違うサイトではこのような状況で取得できるようなことがあるのですが、この場合はなぜ取得できないのでしょうか?教えていただければ幸いです。宜しくお願いします。

679 :
soup.find_all(class_="bcs_l")[0].get("href")

680 :
>>679
ありがとうございます。試してみましたが何も取得できませんでした。
lenで確認したところ2でしたので
for link in soup.find_all(class_="bcs_l"):
print(link.get("href"))で確認しましたが
Noneが2つ返ってきただけなので…違う方法も試してみます

681 :
アクセスしてからsoup.find_allするまでに
何秒か待ったらどうなるの >>680

682 :
>>680
for link in soup.select(".bcs_l > a"):
print(link.get("href"))

hrefがあるのはaタグ

683 :
>>680
すみません、初心者で用語を理解していないからなのか
どういう意味なのかわからないです。

>>680
取得できました。ありがとうございます。aタグから
soup.find_all(class_="bcs_l").find("a").get("href")で取得できないのは
soup.select(".bcs_l > a")と何が違うのでしょうか?

684 :
>>683
アンカー番号間違ってるぞ
正せ

685 :
>>681
すみません、初心者で用語を理解していないからなのか
どういう意味なのかわからないです。

>>682
取得できました。ありがとうございます。aタグから
soup.find_all(class_="bcs_l").find("a").get("href")で取得できないのは
soup.select(".bcs_l > a")と何が違うのでしょうか?


>>684
ご指摘ありがとうございます。気をつけます。

686 :
>>685
find_all(class_="bcs_l")した各要素について個々にそのaタグからhrefを取得しないとだめかな。

687 :
超初心者です。教えてください。
VSCodeの方が使いやすいと見たので、インストール後に動作確認の為にTkinterでウィンドウを表示させるだけのソースを実行してみたのですが、表示されません。("HelloWorld"は問題なく動作します。)
同ソースをPythonのIDLEで実行すると問題なく表示されるのですが、VSCodeで実行できるようにするにはどうすればよいのでしょうか?
確認方法を教えていただけませんか?

688 :
682です。
自己解決しました。
テストだったのでTkinter.pyと適当にファイル名をつけていたのですが、違う名前にすると動きました。

689 :
>>685
find_all は単数形、つまり単なる要素か、
または複数形、つまり配列のどちらを返すのか?
そういうのを使う関数の文書で調べる
単数形なら、そのまま、要素.get("href")
で取得できるけど
配列なら、配列[インデックス].get("href")
とインデックスで、どの要素か指定しないとダメ!
つまり各要素は、配列内に複数あるから

690 :
tkinterでmultiprocessing使うとき
if__name__=='_main_'しないとトップレベルがもう一枚出てくるんですが、ガイドの説明がわかりません

新たな Python インタプリタによるメインモジュールのインポートが、意図しない副作用 (新たなプロセスを開始する等) を起こさずできるようにしてください
代わりに、次のように if __name__ == '__main__': を使用してプログラムの "エントリポイント" を保護すべきです
これは新たに生成された Python インタープリターがそのモジュールを安全にインポートして、モジュールの foo() 関数を実行します。

新たなプロセスが開始されてしまってトップレベルの二枚目が出てきてるのでしょうが、エントリポイントとか、もう少しわかりやすく教えていただけませぬか?

691 :
spyder4使用中に
カーソルが変なのになっちゃったんですが、どうやって直せばいいでしょうか?
通常はアルファベットなどの間に縦線点滅するんですが、ある特定のファイルの時だけアルファベット1文字を塗りつぶすように白く点滅してしまい
何かを入力するとカーソル合わせてるアルファベットが置き換わってしまいます。
なんか説明下手ですいません。

692 :
キーボードのインサートキー押してみ。

693 :
>>692
ありがとうございます。
解決しました!

694 :2020/04/20
インサートあるある

pythonがこの先生きのこるには
SQLなら俺に訊け
関数型プログラミング言語Haskell Part29
【消しゴム】MONOを使ってみるスレ4【じゃない】
C言語相談室(上級者専用)
画像処理 15枚目
ATL/WTL Part7
C言語なら俺に聞け 153
Excel VBA 質問スレ Part66
ふらっと C#,C♯,C#(初心者用) Part148
--------------------
あまちゃんってミュージカルになると思いませんか
Jざつ 2451
ポール日本公演 407
辻希美のYOUTUBEがアップフロント介入で見事に終了!
アルカノイド
にゃんの日記 9
【新型コロナ】コロナ以外で入院予定の患者、PCR検査した結果、約6%が陽性 慶大病院
☆【婚活男性へ】結婚するなら女看護師 3
ゲーム音源を落とせる海外のサイト4
【スマイル】キム・ハヌル【クイーン】その8
【防弾少年団】韓流スター・K-POPを語ろう55【TWICE・BLACK PINK】
【キラキラ美容垢】エルメスヲチスレ★2【上から目線ライター】
【防音】マンションにGP【迷惑?】
【スマブラX】救われた【おきらくリンチ】
( ^ω^)えんげいたのしいお part3
ファントムオブキル キャラ萌スレ【ファンキル】 Part.17
男子校で後悔した大人達
武道道場に不良がいてコーチが突き飛ばした話
【南北】朝鮮戦争勃発68年 対北不安消えた韓国 「終戦」に期待、開戦責任不問に[06/24]
Fire(2015) / Fire7(2017)/Fire7(2019)Part12
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼