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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/03/18(月) 13:42:55.36ID:+MPRGO7m
★当スレにRubyのソースコード類を書くことを禁ず
☆Ruby等、Pythonではないプログラミング言語での回答類を書くことも禁ず

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDEまたはcommand line/OS)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その41【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1549282930/


◆PythonのHome Page
http://www.python.org/

◆まとめwiki
ttp://python.rdy.jp/

◆Pythonのソースコードをそのまま5ちゃんにコピペすると
  インデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数を長めに指定しる。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
2019/04/03(水) 20:18:05.43ID:Kr7AuJYU
>>581
会社に勤めてプルリクして貰えば?
というか動けば良くない?
つまらないコーディング規約に縛られてプログラミングするなんてつまんないぼ
2019/04/03(水) 20:28:41.38ID:EjkP21xl
>>581
探せば他にもあるよ
https://techacademy.jp/magazine/15455
2019/04/03(水) 20:33:33.26ID:0FHlYbf3
>>581
世の中にはデバッガというしごとがあってだな
つまり
かねはらえ
585デフォルトの名無しさん
垢版 |
2019/04/03(水) 20:42:11.74ID:5Stw3nSC
フリーソフトとして公開すればバグ報告もらえるよ
2019/04/03(水) 20:53:20.32ID:YPQocgCC
>>582
学生時代プログラミングやってましたで就職して派遣先で働いてるんですが現場の開発者が自分だけなのでレビューとかが無いんです
動くものは作れるんですが設計の際にクラス間の責任をどうするかとかこの場合どう実装するのが可読性や再利用性が良いのかとか、ある程度気にして書いてるつもりなんですが井の中の蛙のような気がしてストレス貯まるんですよね…
2019/04/03(水) 21:21:03.18ID:P49ekyQy
>>586
大丈夫
世の中のSIの平均的な開発は君が思ってるより遥かに低レベルだ
2019/04/03(水) 23:30:06.62ID:4XO/CSdW
文法チェックなら、各言語に、Lint みたいなツールがあるはず

アプリ開発のデザインパターンは、Ruby on Rails みたいなフレームワークで学ぶ。
基本は、SASS のPartial File みたいな、各部品(コンポーネント)ごとにファイルを分割して作る

そうすると、各コンポーネントが初期化される順番が難しくなるので、
設定ファイルなどで、依存性注入などを行う

各ライブラリを自分で組み立てる方法では、
全体の組み立て方がわからないため、次第に、スパゲッティ・泥団子へと発展していく

一方、フレームワークで学ぶと、先に全体像があって、そこに各部品をはめ込むため、
非常にわかりやすいし、個人による骨組みの違いがないので、プロ向き

ほとんどのフレームワークが、Rails を基礎としているのは、そういう理由
2019/04/03(水) 23:34:13.19ID:mjGt9zO6
>>588
毎度毎度、お前は人の話を聞いてないんだから二度と書き込むな。消えろ。
2019/04/04(木) 00:07:46.46ID:iClvVPMc
なんとなくだけど、>>588が荒らしだしてからrubyの案件が目に見えて減少している
2019/04/04(木) 00:41:27.74ID:Pph5q3Tv
>>590 何よりやつ自身が没落を身にしみて感じてるからだろう。最後は美しく死んで欲しいね。
592デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:03:07.17ID:evLvGSW5
a=[1,2,3]
a.append([4,5])
これでアペンドできますが、リストにアペンドできるものって数字のリストだけなんですか?
どういった種類があるか教えてください。
ゲームエンジンを使ってるんですが、シーンのインスタンスをアペンド出来るです。
2019/04/04(木) 12:08:20.48ID:o65Xx8ND
まずは試してみなきゃ
594デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:17:11.31ID:ujCmteOm
ドキュメントも読まなきゃ
595デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:28:33.01ID:evLvGSW5
あい
596デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:28:49.81ID:evLvGSW5
15パズルのロジックを超簡単に教えてください
概念的なものです
2019/04/04(木) 13:22:34.49ID:1Q0DXPVq
まぁクソ単純な配列操作じゃね
要するに4x4の配列に1〜16までの数列割り振って16番を操作キャラとして考えて
16番を上下左右に移動させようとした時、移動先の配列が存在するかを判定
盤からはみ出さないなら移動先の配列に書かれた数字と16番を入れ替えるってのを繰り返すだけじゃね?

最初のシャッフルは16番を乱数移動で1000回くらい移動させれば破綻なく混ざると思う
598デフォルトの名無しさん
垢版 |
2019/04/04(木) 14:24:13.52ID:ly6XgvBu
適当にシャッフルすると解けないパターンあるから
あくまで移動をランダムにする
599デフォルトの名無しさん
垢版 |
2019/04/04(木) 14:36:37.23ID:I9XLKTGd
BeautifulSoupでのスクレイピングプログラムを書いています。
classがhogeclassになっているaタグの中のhref値をリストに入れたいのですが、
途中で躓いているので指導してくださるとうれしいです
以下のコードを実行するとaタグの抽出までは上手くできているのですがhrefが抽出できておらず
[]0<class 'list'>しか返ってきません。。。
改善コードを提示していただけると助かります

hogeclass_list=soup.select('.hogeclass')
for i in range(len(hogeclass_list):
href=hogeclass_list[i].select('a')
print(href,type(href),len(href)
600デフォルトの名無しさん
垢版 |
2019/04/04(木) 15:04:30.61ID:WSmaK6Af
soup.select('a.hogeclass')
2019/04/04(木) 15:06:10.09ID:96SYsPoC
>>599
これかな。
https://teratail.com/questions/145527
602デフォルトの名無しさん
垢版 |
2019/04/04(木) 15:27:51.48ID:I9XLKTGd
お、解決いたした
参考までに書くと
aタグ自体は既に抽出できているのでその後のhref値を取り出せば良く
それはhref=class_list[i].attrs['href']でいけた
実はそのURLも見てはいたんだが頭が働いてなかったみたいで今見返して理解した感じ
本当に助かったありがとうございます
603デフォルトの名無しさん
垢版 |
2019/04/04(木) 16:42:46.14ID:evLvGSW5
>>597
わからぬい
2019/04/04(木) 17:15:21.70ID:ddTv14P9
質問なのですが、tkinterでコンボボックスをつくり、そのボックスにある選択肢をapple, beef, chickenとし、appleを選べば1、beefを選べば2、chickenを選べば3と表示するプログラムを書きたいのですが、どういったイベントを規定するコードを書けばいいか教えてもらえますか?
605デフォルトの名無しさん
垢版 |
2019/04/04(木) 17:51:36.17ID:AS0nQCUM
>>592
なんでもappend出来るがそれだと[1,2,3,[4,5]]になる
もし[1,2,3,4,5]にしたいならa.extend([4,5])
606デフォルトの名無しさん
垢版 |
2019/04/04(木) 19:32:05.03ID:evLvGSW5
idleって一画面に統合できないのですか?
2019/04/04(木) 19:54:03.78ID:WWWXQk49
>>606
idleはお遊び用のおまけ
不満を感じたらお前はもうVSCodeへ移行する時期だ
2019/04/04(木) 19:56:26.10ID:c7BBV/yp
pycharmだろ
2019/04/04(木) 20:13:41.38ID:4Of4T8i/
Jupyterだろ
2019/04/04(木) 21:17:59.94ID:bM0dXWpT
pyscripterだろ
2019/04/04(木) 21:52:32.61ID:1Q0DXPVq
pyscripterが一番好み
2019/04/05(金) 05:18:10.52ID:A+FAf1kt
実は俺も!
2019/04/05(金) 07:00:28.59ID:7aJ6EfcK
pycharmはコミュニティ版があるのがいいね
あれだけ高機能なIDEがただで使えるのはええわ
2019/04/05(金) 08:15:49.82ID:NlhXm2eb
言うほど高機能か?
Web開発ができなかったりとか機能削られまくってるしプラグインも使えない
所詮は客寄せの評価版だぞ
professional買うならともかく、community使うくらいなら断然vscodeのほうが上や
2019/04/05(金) 09:16:54.33ID:8ooHbZPM
anacondaの方がいいやろ
2019/04/05(金) 09:23:09.84ID:ZiUfxS77
は?
2019/04/05(金) 09:26:35.35ID:3zzzpIKb
Anacondaは互換環境にすぎないからな
2019/04/05(金) 10:02:15.88ID:oSs39RQY
ちなAnacondaはVSCode推奨
2019/04/05(金) 13:29:53.79ID:Cy9dd+PS
987654って数値があった時、特定の位の数値のみを取り出したいんだけど
文字に変換しないよい方法ってありませんか?
2019/04/05(金) 13:29:54.68ID:/JgPqvyr
globalでいっぱい宣言する時に長過ぎるから2行にするとエラーが出るんだけどどう直せばいいですか?

global a, b, c,
x, y, z

c,←コイツがsyntaxエラー
global a, b, c
global x, y, z
にするとダサい気がするから、globalを一つにまとめたい
2019/04/05(金) 13:42:25.86ID:oSs39RQY
>>619
右からn桁目を取り出したいなら
mod(floor(x/(10^(n-1))), 10)
2019/04/05(金) 13:46:28.27ID:Cy9dd+PS
>>621
ありがとうございます。
使わせていただきます。
2019/04/05(金) 14:08:23.58ID:/q9oyI1L
>>620
global a, b, c,¥
x, y, z
2019/04/05(金) 14:09:14.01ID:/q9oyI1L
↑文字化けしてるけど¥はバックスラッシュね
2019/04/05(金) 14:53:10.55ID:/JgPqvyr
>>624
ありがとう!
バックスラッシュの改行ってそんな使い方もできるのか
2019/04/05(金) 15:20:02.87ID:gjpR2cvs
>>621 なんか時間がかかりそうだな。
こっちの方がマシだろ。

a=9876543210
n=5
print(a//10**n%10)
# 5
2019/04/05(金) 15:24:50.63ID:oSs39RQY
>>626
あくまで数式を書いたまでだよ
どうPythonで実装するかは好きにしたらいい
2019/04/05(金) 16:53:57.54ID:2flhsj5Q
>>627

それを書くのがお前の仕事だろ
2019/04/05(金) 16:58:30.50ID:fBA+S4b3
>>621 それじゃフロートになってしまうだろ。 数字1桁を取り出したことにならない。
2019/04/05(金) 17:06:55.98ID:fBA+S4b3
>>621 そもそも ^ はPythonでは論理積だぞ。 べき乗なら ** 。 mod やfloor だって標準関数じゃないし。何言語を想定してるんだよ。 Python も動かせない奴が回答するなよ。
631デフォルトの名無しさん
垢版 |
2019/04/05(金) 17:40:25.90ID:G2NqkZ6v
てか、>>619程度の算数がわからんようではプログラミングなんてとても無理じゃないか?w
2019/04/05(金) 18:26:28.97ID:qQEc9QbG
>>631
そこはまあ超初心者用スレだから仕方ないんでない?
2019/04/05(金) 18:30:16.81ID:fBA+S4b3
>>622 お礼を言う方も言う方だよ。 どんな場所にいたか知らないが、このくらいは自分で確認すれば動かない事くらい解っただろうに。
世の中には詐欺師が沢山いるんだから、自分で確認したこと以外は信用するなよ。 特にプログラマーだったら。

出先の電車の中だってこんなのWebで確認できるんだから、そのくらいはいつもテスト出来るようにしてないと上達しないぞ。
2019/04/05(金) 18:53:56.17ID:GL7Lveyj
>>621

動かないんだが

https://i.imgur.com/iN599Jk.jpg
2019/04/05(金) 19:03:10.71ID:Cy9dd+PS
皆さん、アドバイスありがとうございます。

>>626こちらを使わせていただきます。
2019/04/05(金) 19:35:45.55ID:iDnb4MC+
intを文字列に変換する処理はCのレベルで走るだろうから
素直に文字列にしてインデックスでとったほうがいいんでない?
2019/04/05(金) 19:38:25.53ID:hemeotiD
Windows8.1にインストールしましたが
管理者権限じゃないとなぜかエディタが起動してくれません・・・
2019/04/05(金) 19:43:30.76ID:Cy9dd+PS
>>636
そうなんですか。文字に変換したほうが早いんですね。
2019/04/05(金) 19:51:53.85ID:TdKnQq4/
>>637
インストールはちゃんと管理者権限でやったんか
allusersあてにインストールできてるんか
記憶があいまいなら、一旦アンインストールして再インストール
2019/04/05(金) 19:53:58.14ID:fBA+S4b3
>>>>638 お前はアホか。 人の言う事を信じる前に何で自分で確認しないんだよ。
詐欺師を信用するな。
2019/04/05(金) 19:59:08.00ID:fBA+S4b3
>>638 プログラムで最も危険なことは、こう書けば動くだろうと言う先入観でプログラムを書き進めていくこと。

まずは疑問に思う事は一つ一つ自分で確認していくようにしないと何も作れないぞ。 大火事になる。

ところで何歳でどんな経験があって今Python をやろうとしてるんだ?
適性と言うのもあるから、やってることが正しいかどうか人の意見を聞いてみるのもいいかもよ。
2019/04/05(金) 20:00:49.55ID:Cy9dd+PS
ありがとうございます。
確認してみます。
2019/04/05(金) 20:03:48.88ID:zbJZTl/M
>>625
C言語由来の作法じゃないのかコレ
2019/04/05(金) 20:16:25.49ID:MEdBpv++
>>638
速くはないよ。
ただ、その差異が問題にならない箇所で、コードの意図を自然に明記に記述するためにあえて遅い方を選択することもある。
ケースバイケースだよ。
2019/04/05(金) 20:58:37.59ID:UI2qU3qP
>>643
C言語使ったことないから知らなかったよ
2019/04/06(土) 00:53:08.44ID:FcZeCs1O
>>634 >>621 の沢山の間違い。

1. mod , floor は、numpy をimport しなければならない。
import numpy as np
np.mod みたいに。

2. ^ は、**
3. n-1 は、n だろ。 Python ( 他の言語でも0から始まる) 流なら 0から始めるべき。
4. 全て修正しても結果が浮動小数点になり、 5.0 とか、9.0 になり、全く解答になっていない。
2019/04/06(土) 01:16:15.72ID:yyDZS6P1
>>621は正しいアルゴリズムを示した
>>626はそのPythonでの正しい実装を示した
質問者の疑問は解消した
他の連中は難癖付けて喚き散らしながら糞を垂れた
2019/04/06(土) 03:10:37.87ID:1moq2C1C
新しい糞をありがとう
649デフォルトの名無しさん
垢版 |
2019/04/06(土) 05:46:08.51ID:1pyrGwe+
変数とプロパティは同じと思っていいんですか
プロパティ=メンバ変数?
あ?
2019/04/06(土) 09:26:56.16ID:9IkbKopt
>>649
>プロパティ=メンバ変数?
そう

>変数とプロパティは同じと思っていいんですか
違う
クラス外の変数はただの変数
クラスの内部にあるのがメンバ変数

>あ?
な?
2019/04/06(土) 09:44:38.93ID:zBsOQwj6
@propertyってメソッドだよな
2019/04/06(土) 11:16:32.35ID:ABRVPIaD
あくまで数式を書いたまでだよ
どうPythonで実装するかは好きにしたらいい(震え声)
2019/04/06(土) 11:25:37.81ID:FcZeCs1O
>>652 アルゴリズムとしても間違ってるだろ。 プログラム板で、整数と浮動小数の区別もつけないアルゴリズムなんて全く存在価値はない。

問題はある桁を取り出せなんだから、整数1桁そのものでなければならない。 そもそもPython 板で動かない数式を示しても何の意味もない。
2019/04/06(土) 11:40:39.98ID:FcZeCs1O
print(str(100/10)+'1')
#10.01
655デフォルトの名無しさん
垢版 |
2019/04/06(土) 12:04:08.83ID:3J+kczjM
>>653
log10()を使って実装出来ませんかね
656デフォルトの名無しさん
垢版 |
2019/04/06(土) 12:10:21.22ID:1pyrGwe+
>>650
tonkatsu
2019/04/06(土) 12:58:46.94ID:hBfZV6UD
>>655 色んな方法でできるだろうけど、質問者は文字列操作をしないでやりたいと言う事はある程度スピードを意識してるんだろうから、関数なんて使ったら遅くなる。
文字列操作でも桁数が大きくなればそれほど遅くないと思うけどな。
2019/04/06(土) 13:42:02.27ID:2yA38LSH
>>626
これ(n-1)じゃなくてnそのまま使ってるせいで5桁目出そうとして6桁目出してないか?
2019/04/06(土) 13:56:01.15ID:hBfZV6UD
>>658 右端を0桁目としてるんだよ。 数字の通り。
大抵の言語では0からカウントするから妥当。 Python なら当たり前。
1桁目と言うのは10の位。 0桁目が1の位。
660デフォルトの名無しさん
垢版 |
2019/04/06(土) 14:04:35.86ID:LTLRiaot
スピードを意識するのにPythonなのか…
2019/04/06(土) 14:10:09.19ID:zww3IW8D
>>658
試してからレスしたら?
2019/04/06(土) 14:15:03.42ID:2yA38LSH
>>659
冗談だよね・・・?
2019/04/06(土) 15:39:31.28ID:t4iABxtY
>>662
右端を0桁目という言い方は日本語では誤解を生むから使いたくないがPythonらしい引数なら右端か左端を取り出す指定は0じゃないかね

hoge='abc'でhoge.__getitem__(0)がaなんだから

この辺りは定義の問題だから瑣末な問題かと思うよ
2019/04/06(土) 15:45:37.23ID:t4iABxtY
まぁでも自分の課題で勝手に右端を0桁目とかたわけた定義してきたら怒るな
間違いなくw
2019/04/06(土) 16:18:17.11ID:pqIY+ulC
自然言語が不自由な連中
2019/04/06(土) 16:18:51.83ID:7tGee9uO
>>664 そうか? >>626 でわざわざ誤解を招かないように、0〜9までの桁を作り回答まで出してて誰が誤解するんだろ? それが理解できなければ知らん。

ま、誤解した人もいた事実は認めるが。

日常言語とブログラム言語の世界は若干違いがある事は理解しながら話さないと折り合わないよ。 あやふやな日常言語で問題解決しようとしても、バグだらけになるのが落ち。
667デフォルトの名無しさん
垢版 |
2019/04/06(土) 16:23:38.52ID:1pyrGwe+
pythonで画像表示ッテできますか?
vs code使ってるんですが、コンソールでは表示できませんよね
2019/04/06(土) 16:39:24.00ID:t4iABxtY
>>667
画像ファイルの表示ならPillow, OpenCV, scikit-imageのどれかを使う
データの画像化とかならmatplotlib
動的に動かすとかならPyGame

VSCodeは単なるエディタでしかないので、別ウインドウが立ち上がる
669デフォルトの名無しさん
垢版 |
2019/04/06(土) 16:57:12.53ID:1pyrGwe+
↑なるほど vscodeに拡張でもないかとおもってましたが、別のソフトと関連付けるってことですかね
670デフォルトの名無しさん
垢版 |
2019/04/06(土) 17:21:49.20ID:1pyrGwe+
import numpy as np
import cv2

#画像の読み込み
img = imread('gimp_kun.png', cv2.IMREAD_GRAYSCALE)

opencvインストールしてこれを書いても別ウインドウ開かなかったんですが、何がだめなんでしょうか?
vscode使用です
実行すると自動的に起動するのかなとおもったんですが
2019/04/06(土) 17:34:48.67ID:qxcHWWFz
cv2.imshowとかで表示しないとだめ
672デフォルトの名無しさん
垢版 |
2019/04/06(土) 17:54:24.45ID:Mn11yHOy
>>619
「位の数」で桁の位置を指定すればいいんじゃないの
2019/04/06(土) 18:40:24.67ID:V8TVt+EN
>>669
グラフの表示や .ipynb のインポート/エクスポートだってできるぞ
今月のSoftware Design買って読むといい
674デフォルトの名無しさん
垢版 |
2019/04/06(土) 18:49:14.71ID:O+y/8osN
beautifulsoupスクレイピングで詰まったので質問です。
現在、フォーム内の複数のinputタグ(name=で区別されている)のvalueを取得するコードを書いているのですが
どのようにしてvalue値を取得すればいいのか分かりません
今抽出できているのはformのみで
<input name="hoge1" value="value1"/>
<input name="hoge2" value="value2"/>みたいな感じになっています。
これのvalue1のみを抽出したいです。
どなたかお助け下さい
2019/04/06(土) 19:01:38.28ID:H9qvhtnQ
>>669
別のソフトではない
Pythonのライブラリ
2019/04/06(土) 19:11:02.54ID:nnViyGGt
>>674
nameを条件に検索する場合はfindまたはfind_allのattrs引数を使え
2019/04/06(土) 19:29:26.69ID:HvitwzZ2
>>619です。
皆さん、ありがとうございます。
Pythonを熟知した方でも見解が分かれるほど難しい問題なのですね。
速度を自分で計測したら文字に変換した方が早いという意外な結果になってしまいました。
678デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:31:14.07ID:1pyrGwe+
>>671
一瞬しか表示されないですが、なんとなくできました
679デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:38:20.55ID:O+y/8osN
>>676
ありがとうございます。
findでclass_を指定する方法とかは見つかるんですがnameを指定する方法が見つからなくて困っている状況です。
hoge=soup.find('name="hoge1"')みたいに書いてname="hoge1"という文字列で判定させる感じなのでしょうか・・・
本当に分からないです、URLでもいいので教えてくれませんか
本当にごめんなさい
2019/04/06(土) 19:41:58.94ID:LtpcIU8C
>>674
input = soup.select("input[name = 'hoge1']")
value = input.attrs['value']

pythonは実はよく分からないのでこれで動くか自信がないけど、
要するに input タグで name = hoge1 という属性を持つ要素を特定し、その要素から value の値を取得。
681デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:44:59.04ID:O+y/8osN
一応ここは見ましたがさっぱりでした
https://tdoc.info/beautifulsoup/
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況