X



くだすれPython(超初心者用) その42【Ruby禁止】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
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/ ログイン必須になりやがった(゚Д゚#)
−−−−天麩羅ここまで−−−−
0002デフォルトの名無しさん
垢版 |
2019/03/18(月) 18:27:30.56ID:SDOLD3fb
>>984
pygame
pyopengl
glut
0003デフォルトの名無しさん
垢版 |
2019/03/18(月) 19:58:50.54ID:FHDCRg6t
exe化で出来る限り「静か」なバイナリ作れる方法が無いかな

py2exeは3.7に対応してないかライブラリの方が対応してなくて、試したけど作れなかった
pyinstallerはexe実行時にtempにフォルダ作って、終了時にフォルダだけ残るのが気になる
exeのある場所とか任意の場所にフォルダ作ってフォルダだけ残るのは別に構わないんだが、システム側にゴミを残したくない
0004デフォルトの名無しさん
垢版 |
2019/03/18(月) 20:20:54.45ID:jiPExRTx
>>3
pyinstallerしおえたらいらないフォルダを消すバッチ作れ
0005デフォルトの名無しさん
垢版 |
2019/03/18(月) 21:37:51.04ID:C9BGuQ42
<__main__.sample object at 0x00DF1D30>
selfをprintしたらこれが出てきたのですが、00DFみたいなのはメモリの場所なんですか?
0006デフォルトの名無しさん
垢版 |
2019/03/18(月) 21:48:01.96ID:C9BGuQ42
結局selfはどういう用途に使うんですか

class myclass:
def myfunc(self,name):
self.name=name

↑これのself.nameの部分の意味と、使い方がわかりません
0007デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:00:55.16ID:tRH350wW
>>1
乙パイソン
0009デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:10:00.76ID:jiPExRTx
>>5
       ,-┐
 ,ィ─、ri´^-─- 、 .┌f^f^f^f^f^f^f^f^f^┐
く  / , ,'   ヽ ヽ| ~ ~ ~ ~ ~ ~ ~ ~ ~│
 `<' / ,'レイ+tVvヽ!ヽト 知ってるが  │
  !/ ,' i |' {] , [}|ヽリ  お前の態度が |
  `!_{ iハト、__iフ,ノリ,n   気に入らない |
   // (^~ ̄ ̄∃_ア____n_____|
 _r''‐〈  `´ア/トr──!,.--'
<_>─}、  `」レ
'ヽ、   ,.ヘーァtイ
   Y、.,___/  |.|
    |  i `ー'i´
0010デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:18:09.43ID:FHDCRg6t
>>4
「exe化」をしたらフォルダが作られるのではなく
「exeを実行」したら毎回フォルダが作られるから困ってます
0012デフォルトの名無しさん
垢版 |
2019/03/18(月) 23:12:34.21ID:IuFF1Fl8
最近勉強始めたんだけどWEBに干渉するようなプログラムってまず何を書けばいいんだ?
0013デフォルトの名無しさん
垢版 |
2019/03/18(月) 23:14:08.18ID:jiPExRTx
>>12
まずなにがしたいんだ?
ブラウザを自動化したいのか
鯖をアタックしたいのか
まともに鯖をいじる作業を自動化したいのか
001610
垢版 |
2019/03/19(火) 00:45:49.37ID:XVrNrTVD
>>11
前者
0017デフォルトの名無しさん
垢版 |
2019/03/19(火) 05:36:06.26ID:sliXT30Z
>>15
ですからなんの用途に使うんですか selfというのは場所を表すのですか?
printしてみるとメモリの場所らしきメッセージが出ます
0018 ◆QZaw55cn4c
垢版 |
2019/03/19(火) 05:48:25.05ID:45LJYysD
>>17
myfunc は オブジェクトオリエンティド でいうところのメソッド
self.name は オブジェクトオリエンティド でいうところのプロパティ
self.X と書けば X はプロパティを示し、self はクラスのインスタンスを示す
以上に現れるキーワード「オブジェクトオリエンティド」「メソッド」「プロパティ」「クラス」「インスタンス」に心当たりがなければ、まずそれから調べてみてください.
0019デフォルトの名無しさん
垢版 |
2019/03/19(火) 05:49:15.22ID:Z5Hgz40o
Pythonと言うよりオブジェクト志向では親クラスのメソッドを呼ぶ時super.xx()みたいにするから、
それ使った時に子クラス(現在のクラス)の同名のメソッドだと明示するためにthis.xx()とかself.xx()とかするね。


あとは >>15 みたいにフィールド(クラス変数)と同名のメソッド引数と分けるためにも使われる。
0021デフォルトの名無しさん
垢版 |
2019/03/19(火) 07:41:01.76ID:Gcgazy3G
>>6
YouTubeでProgramingWoopenのPython入門講座第16~21回の動画を見ろ。
0022デフォルトの名無しさん
垢版 |
2019/03/19(火) 08:57:41.33ID:Z5Hgz40o
つーかPythonは動的言語だからself.name = で代入する事で宣言無しでフィールド生成されるんだった。
静的言語ばっかりだとうっかり忘れがち。。。
0023デフォルトの名無しさん
垢版 |
2019/03/19(火) 09:23:51.33ID:7p2/yAlP
Jupyter notebookで大きなループを一つのセルで回すのって無謀でしょうか?
大きなループを回したい時、便利な環境って何がありますでしょうか?
0024デフォルトの名無しさん
垢版 |
2019/03/19(火) 10:12:32.34ID:cL/iV8oU
>>6
スコープとかnamespace は理解してる?
0028デフォルトの名無しさん
垢版 |
2019/03/19(火) 11:28:42.76ID:sliXT30Z
>>24
スコープは変数の有効範囲で
名前空間はクラスやモジュール(python.pyみたいなファイル)のことですよね
>>21
見てみました
selfを関数の引数に指定することでクラス内の関数をインスタンスの持ち物に出来るということですね
別にselfでなくともいいみたいですが、なぜそうなるのか意味がわかりません
そういう決まりなんだと言われればそれまでですが
0029デフォルトの名無しさん
垢版 |
2019/03/19(火) 12:40:41.62ID:I3ez8Qch
……ここまで分からんとすると、文学的な問題じゃあなかろうか
他者が自分自身を自称するときの一人称がselfだ
0030デフォルトの名無しさん
垢版 |
2019/03/19(火) 12:51:35.83ID:Z5Hgz40o
>>28

class myclass:
def myfunc(my,str):
my.name = str

my.name = で初めてnameフィールドが作成される。
my無しだとただのローカル変数になり、myfuncを抜けたら消滅する。
(もちろん、フィールドnameは存在しないので、a = myclassしたあとa.nameとしたらエラーになる)
0031デフォルトの名無しさん
垢版 |
2019/03/19(火) 13:20:43.07ID:SqXQzXb0
pythonってインスタンス作成時にプロパティは作成されないの?
プロパティにアクセスした時に初めてメモリが確保されるの?
0032デフォルトの名無しさん
垢版 |
2019/03/19(火) 13:34:21.37ID:Z5Hgz40o
そう言う事。

そして、もう少し調べたら__init__定義したら、メソッド呼出ではself省略できるっぽい。
(それだけでなく、nameの扱い自体もクラスフィールドとインスタンスフィールドという動作の違いも確認できた)

プロパティはフィールドとメソッドを関連ずけて、フィールドっぽい扱いで安全に運用するものなので別物。
私もPython初心者なのに、何であんたより詳しくなってるんだ。。。

class Myclass:
def __init__(my):
pass
def myfunc(my,str):
my.name = str

a = Myclass()
a.myfunc("taro")
b = Myclass()
b.myfunc("jiro")
print(a.name)
print(b.name)
0033デフォルトの名無しさん
垢版 |
2019/03/19(火) 13:59:12.91ID:SqXQzXb0
>>32
マジか、ありがとう
vbaみたいだぁ・・・
(vbaはもうちょい変で、インスタンス作成時ではなくプロパティにアクセスした時に初めてメモリが確保される)
0039デフォルトの名無しさん
垢版 |
2019/03/19(火) 14:34:55.30ID:A58YbFZJ
_init_ 復活させても駄目なものは駄目

「__init__定義したら、メソッド呼出ではself省略できるっぽい。」

は大嘘


https://i.imgur.com/Ss7xM4i.jpg
0041デフォルトの名無しさん
垢版 |
2019/03/19(火) 14:42:10.59ID:A58YbFZJ
当然、self でも無駄

「__init__定義したら、メソッド呼出ではself省略できるっぽい。」

は大嘘。
__init__定義しようが、メソッドでself 省略したらエラーですわ。

https://i.imgur.com/EAj5SUq.jpg
0042デフォルトの名無しさん
垢版 |
2019/03/19(火) 14:53:47.13ID:Z5Hgz40o
>>41
「呼出では」って書いてるだろ。
定義の方は書かないとダメ。
0043デフォルトの名無しさん
垢版 |
2019/03/19(火) 15:15:18.87ID:A58YbFZJ
呼び出しでself 書いたらエラーですが

「__init__定義したら、メソッド呼出ではself省略できるっぽい。」

は大嘘。
むしろ、省略しなければならない。

https://i.imgur.com/VnURXPt.jpg
0045デフォルトの名無しさん
垢版 |
2019/03/19(火) 15:42:44.11ID:Z5Hgz40o
初心者いじめ楽しい?

>>32 の通り、私も初心者なんですが。
逆に__init__でa.myfunc(a,"taro")がエラーになる理由を教えて欲しいくらいだ。
(別に知らなくても書く上で困らないが)
0046デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:01:05.13ID:vriWYZh/
>>26

それは失礼した

pyinstallerでonefileおぷしょんつかわないでexe等を生成→配るときは何か別のインストーラ使う
でやるしかないのかー
0048デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:05:16.66ID:26aHKGbn
>>45

君の場合、Python初心者とかの問題じゃなくて、日本語初心者なんだよね…

変な日本語使わなくていいから、コードだけで語ってくれ
0049デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:17:56.81ID:Z5Hgz40o
検証不足なだけなのを日本語初心者扱い。。。
0050デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:27:12.81ID:XMTv5SE6
>>49
検証なら他所でやってくれ
迷惑でしかない
0051デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:34:33.33ID:Z5Hgz40o
それは悪かったけど、訂正を求めるなら他にやりようあったよね。
__init__付けるとa.myfunc(a,"taro")はエラーになるから、省略じゃ無いって指摘すれば「ごめん」で済んだのに。

エラーが出るエラーが出るって病的に繰り返すだけってのもどうかと思うよ?

スレの無駄だからロムるね。
じゃあの。
0052デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:48:51.60ID:+2Cq/+iw
覗いてみたら一問一答どころか初心者虐めしてて闇感じた
学校教師かよw
0053デフォルトの名無しさん
垢版 |
2019/03/19(火) 16:54:08.63ID:xdTah2Z6
>>32
>私もPython初心者なのに、何であんたより詳しくなってるんだ。。。




鼻膨らませてこんなこと書くから
0054デフォルトの名無しさん
垢版 |
2019/03/19(火) 17:59:14.56ID:7p2/yAlP
>>47
メモリはそんなに食わないと思いますが、

現在:セル100個くらいに書いている
やりたいこと:現在のセル100個をセル1個に入れて、forで回す

やりたいことが増えてネストが深くなるたびに、毎回この作業が必要になるのかなと
0055デフォルトの名無しさん
垢版 |
2019/03/19(火) 18:08:45.31ID:vriWYZh/
>>54
まず
Python全般の考え方として
深すぎるネストがあるソースはうんこスパゲティである
「python ネスト 減らす」でggr

いろんなことをやるときは
1作業グループ(自然言語で言う章づけと段落づけに似ている)毎に1つのクラスにまとめれこのへん↓嫁
tps://myenigma.hatenablog.com/entry/2017/10/23/091932
0056デフォルトの名無しさん
垢版 |
2019/03/19(火) 18:11:13.54ID:sliXT30Z
pythonって12345みたいなループ表示はできないんですか?
別にリストを作らないとだめなんですか?
0057デフォルトの名無しさん
垢版 |
2019/03/19(火) 18:17:41.24ID:sliXT30Z
ごめんぬさい解決です
0058デフォルトの名無しさん
垢版 |
2019/03/19(火) 18:20:12.22ID:vriWYZh/
>>55
推敲途中で書き込まれてしまった
最後から2行目の語順がカオスになってるが
まあうまいこと察してチャン
0059デフォルトの名無しさん
垢版 |
2019/03/19(火) 18:29:04.69ID:sliXT30Z
sample.pyみたいなファイルがモジュールと考えていいのですか?
0062デフォルトの名無しさん
垢版 |
2019/03/19(火) 19:13:43.69ID:sliXT30Z
メンバ変数に
self.nameみたいにつけるのは、単なるルールってことですか?
メンバ変数作るときのルール?
0064デフォルトの名無しさん
垢版 |
2019/03/19(火) 19:28:54.41ID:oLwbVC8A
>>62
付けなきゃローカル変数になってメソッド抜けると消える
0065デフォルトの名無しさん
垢版 |
2019/03/19(火) 19:40:40.10ID:sliXT30Z
>>63
>>64
ありがとうごじあます
リンク先よみます
0066デフォルトの名無しさん
垢版 |
2019/03/19(火) 20:15:28.53ID:sliXT30Z
>>63
インスタンス自身がself引数に渡されるといいますが、
instance変数の部分がインスタンス自身と考えていいんでしょうか
確認方法がわかりませんでした
http://codepad.org/qut7yC7c
0067デフォルトの名無しさん
垢版 |
2019/03/19(火) 20:15:40.20ID:sliXT30Z
class Test():
def __init__(self,var):
self.var=var
def func(self):
print(self.var)
instance = Test("aaa")
instance.func()
0070デフォルトの名無しさん
垢版 |
2019/03/19(火) 21:49:37.60ID:A/UmZGKk
指定桁の整数部分で切り捨てるにはどうすればいいですか?
roundの四捨五入じゃなくて、切り捨てです。
n = 456.789
round(n, -1)
>>460
1の位を切り捨てて、450にしたいです。
0071デフォルトの名無しさん
垢版 |
2019/03/19(火) 22:13:26.97ID:A/UmZGKk
re.subの正規表現で置き換えしたらできたんですが、
切り捨てのようななモジュールはないでしょうか?
0072デフォルトの名無しさん
垢版 |
2019/03/19(火) 22:16:01.91ID:oLwbVC8A
>>70
import math
math.floor(n/10)*10
0073デフォルトの名無しさん
垢版 |
2019/03/19(火) 22:44:30.22ID:KlvkKTYB
Ruby ではクラス直下では、self(this)は、クラスを指す。
一方、initialize 内では、new で呼ばれた各インスタンスを指す

class Cat
p self #=> Cat クラス

def initialize( name, weight )
@name = name
@weight = weight
p self #=> 各インスタンス
end
end

bob = Cat.new( "bob", 5 )
alice = Cat.new( "alice", 4 )

出力
Cat
#<Cat: @name="bob", @weight=5>
#<Cat: @name="alice", @weight=4>

オブジェクト指向をわかっていない人には、Python は無理

まず、Rubyでオブジェクト指向・関数型を学んでから、
Python, JavaScript, Kotlin などをやらないと無理
0074デフォルトの名無しさん
垢版 |
2019/03/19(火) 22:53:59.42ID:A/UmZGKk
>>72
おぉー、ありがとう
floorが検索に出てきても少数切捨ての話だけで整数の話はなかったのに、
10で割って掛ける。すごい全然思いつかなかった
0076デフォルトの名無しさん
垢版 |
2019/03/20(水) 00:13:24.71ID:6ln9W50J
>73
rubyは言語の発想としては悪くないんだけど、今やもう未来がなさすぎる
最近はもうオブジェクト指向を無理にやらんでも良いって流れにもなってきてるしな
007773
垢版 |
2019/03/20(水) 00:49:00.11ID:RdYQnT9u
Pythonの文法を学ぶというのと、
オブジェクト指向・関数型を学ぶというのは、まったく次元が違う話

アルゴリズムなどもそう。
Pythonの文法とは無関係だから、Rubyで学ぶ

だから初心者は、Rubyから始めろって言われるわけ

Ruby以外の言語では、JavaScriptのprototype など、
その言語特有のトリックに惑わされるために、まともに学べない

Pythonでは、アンダーバー(_)で始まる変数名などの、トリックを使っているし、ややこしい

Rubyはオワコンと言われているけど、人気がすごい!
図書館でも、すべての本が貸出中
0078デフォルトの名無しさん
垢版 |
2019/03/20(水) 00:51:59.36ID:D6kxNzj1
>>72 int(n//10)*10
0079デフォルトの名無しさん
垢版 |
2019/03/20(水) 01:43:22.87ID:6ln9W50J
>>77
>初心者は、Rubyから始めろって言われるわけ
昔言われてたな。誰もやってなかった
あれがステマだったと最近気づいた
0080デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:13:49.59ID:oK7gZRvl
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )

ちなみにPython:
def add(a, b):
return a + b

def opTwo(a, b, func):
return func(a, b)

print(opTwo(1, 2, add))
=> 3

ちなみにJavascript:
function add(a, b) {
return a + b;
}
function opTwo(a, b, func) {
return func(a, b);
}
console.log(opTwo(1, 2, add))
=> 3
0081デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:18:32.13ID:oK7gZRvl
def、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww
0082デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:19:24.94ID:oK7gZRvl
Ruby 初心者スレッド Part 64
http://mevius.5ch.net/test/read.cgi/tech/1535797516/658
658 デフォルトの名無しさん sage 2018/10/15(月) 10:09:06.69 ID:r7U1tD/N
擬似コードがそのまま動くのはPythonじゃね
関数型言語なら演算子がそのまま第一級関数であることとカリー化を使って data |> select ((>) 0) みたいに書けたりするね
ガチ関数型でなくてもまともなラムダがある言語なら select(x => x > 0) と遥かに見通し良く書ける
Rubyの &:: は極めて驚きが大きく醜悪な機能の一つだね
0083デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:19:58.52ID:oK7gZRvl
クロージャって何がいいの?
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が

> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。

と語っているね


http://www.atmarkit.co.jp/news/200907/24/ruby.html
0084デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:20:31.17ID:oK7gZRvl
Pythonが2018年も人気ナンバーワン言語に - Rubyは13位へ
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/

>日本生まれのプログラミング言語Rubyの順位は昨年の12位から13位へと一つ順位を落としています。


https://findy-code.io/engineer-lab/github-programming-language-ranking
↑「衰退するかもしれない言語」のRubyのグラフ凄すぎwww
0085デフォルトの名無しさん
垢版 |
2019/03/20(水) 02:51:31.38ID:oK7gZRvl
大人気言語るっピぃが実践する驚き最大の勝利の大法則!!!
お前らションベンチビんなよ!?

Python:
def double(x):
return x * 2

double(3) #=> 6
同等ラムダ
(lambda x: x * 2)(3) #=> 6

JavaScript:
function double(x) {
return x * 2;
}
double(3); //=> 6
同等ラムダ
(x => x * 2)(3); //=> 6

Rubz(笑)ころん
def double(x)
x * 2
end
double 3
#=> 6
同等?ラムダ?www
(lambda {|x| x * 2}) 3 #=> エラー(笑)
(lambda {|x| x * 2})(3) #=> エラー()
(lambda {|x| x * 2}).call(3) #=> 6
うわぁ〜さすがるっびすごくわかりやすいですぅ〜wwww
008673
垢版 |
2019/03/20(水) 03:00:25.17ID:RdYQnT9u
KENTA / 雑食系エンジニアTV と言う人が、
YouTube で、初心者は、Ruby から勉強するように勧めている

多くの人が、初心者には、Rubyを勧めている

Dir.glob( 'C:/Users/Owner/Documents/test/*.txt' ) do |file|
end

Rubyでは、Windows/Linux の両方で、パス区切りに、/ が使えるから、\ を使わなくてもよい

Python では、\, \\ を使っているから、ややこしくてたまらん!
0089デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:14:48.95ID:oK7gZRvl
Ruby のココがダメ
https://qiita.com/scivola/items/17470c52641d3ffa1650
・メソッド名の別名がありすぎ
・何かにつけて「nil にそんなメソッドねえよ」
・ローカル変数なのかメソッド呼び出しなのか
・ブロックなのかハッシュなのか
遅い
・ドキュメントが不十分
・用語集が無いよ
・Windows ユーザーがいつも置き去り
・既定の文字コード
・フリップフロップ ワケわかめ
0091デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:22:38.74ID:oK7gZRvl
「Railsは終わった」と言われる理由
https://qiita.com/klriutsa/items/86ac5e94ec99c0d95b61#5-rubyという柔軟性の高い言語によって開発することができる

> Rubyは以下のような弱点があり、コードに問題のあるRailsプロダクトが多く生まれてしまいました。

・読みにくい
・Rubyしか触っていないエンジニアはある一定レベルで成長が止まる
・美しく書くという文化でしか質を担保する仕組みが無い
・Rubyの将来性
0092デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:24:19.47ID:oK7gZRvl
1. 読みにくい
Rubyのコードは引数や返り値の定義がないため、実際に読んでみないと何が帰ってくるのかわからないです。
なのでコードリーディングに時間がかかりますし、バグの混入確率も高いです。
0093デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:25:58.59ID:oK7gZRvl
2. Rubyしか触っていないエンジニアはある一定レベルで成長が止まる

Rubyという言語は型を全く定義しなくても動きますが、型を意識して書かなければ簡単に崩壊してしまいます。
しかし、型を意識する書き方というのはRubyでは学ぶことはできません。(一応学べるかもしれませんが、Rubyの型は他言語に比べて挙動の把握が難しいです)
このパラドックスにより、質の悪いRailsプロジェクトが生まれやすくなっています。
そのためRubyしか触っていないエンジニアは一定のレベルで成長が止まると考えています。

その他、クラスの継承、インターフェース、ビルダーパターン、リアクティブプログラミング、ジェネリクス、ラムダなどのパラダイムはRubyでは学ぶことはできません。
0094デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:27:13.16ID:oK7gZRvl
3.美しく書くという文化でしか質を担保する仕組みが無い
Rubyは他人が書いたコードを読むのにエネルギーが要る言語だと思います。
型定義がある言語では入力と出力の形式がある程度定まっているので、比較的読みやすいです。
Rubyは返り値がどのような型になるかわからないので、メソッド名が妥当であるか?であったり、美しくわかりやすく書かれているかもしくは、テストを書いているか?が重要になってきます。

熟練者のコードは非常に読みやすいかもしれませんが、そうでない場合、コードリーディングが大変です。
こうしたコールドリーディングを簡単にするために、美しく書く文化やテストを書くという文化があるのですが、
どこまで美しく書くか、どの程度テストを書くかは属人的であるので、質が担保しにくいです。
追い打ちをかけるようにRubyは様々な書き方ができてしまうので、よりコードリーディングが難しくなります。
ダメなプログラミング言語の代名詞としてPHPが挙げられますが、それがRubyに置き換わる時が来るかもしれません
0095デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:28:06.49ID:oK7gZRvl
4. Rubyの将来性
これは個人的な愚痴に近いのですが、Rubyの開発の方向性と現場で必要なものがだんだんと違ってきているのではないかと最近は感じています。

Ruby3では速く動作することが頻繁に取り上げられますが、実際にそれでいまエンジニアが抱えている問題が解決するのか・・・?と思ってしまいます。

Rubyでチーム開発しやすいように、型宣言などの開発者を支援するような機能もほしいなという声もあるのではないでしょうか。
0097デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:37:06.36ID:oK7gZRvl
Rubyが今のPythonの地位にいない理由
http://shinh.skr.jp/m/?date=20160616
さて、本来PHPを学ぶべきだった人たちが、Railsファンになり、Rubyのカンファレンスに行き、エモい発表を聞いて二世三世になったのである。
こういう人達の中には残念ながら、技術的な背景が足りない人もいて、そういう人達が人類がコンピュータサイエンスとして培ってきた歴史とかをある程度把握しないままに、なんだか適当な発言をするのである。例えば「テストファーストはRuby発祥」的な。

そういう人達はどこの世界にもいるものだけど……Rails界隈には許容量を越える量で発生してしまった。で技術がわかるRails関係ない人の感想は残念ながら、「Ruby?あれなんかキモい。
Pythonで十分だし」みたいな感じになってしまったのであった。Hacker Newsから一例をひいてみよう。

https://news.ycombinator.com/item?id=5157886

"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」

"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」

いやあ……ひどい言われようである。こんな謎宗教みたいな扱いを受けてれば、ある程度規模の大きい企業、まぁデカいのではマイクロソフトとか、の人が採用しよう、って感じにはならない。
Webアプリフレームワークならともかく、他の分野ではPythonという十分に強い代替があるならなおさら。というわけで、Rubyが今のPython地位を確立できてない理由は「なんかキモそうだから」なのである。

一方で、Railsの勃興とエモい人の流入みたいなのが無ければRubyが今ほど流行ってたかというと……それもあやしいと思う。
この文章の前半部分でムダに書いた通り、Rails以前は知名度ゼロに近かったので、むしろRailsのおかげでRubyは本来集める予定だった以上の注目を集めている、という感もある。
0099デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:42:42.67ID:oK7gZRvl
Rubyの死?開発者はどの言語を学ぶべきか?
http://www.softantenna.com/wp/software/death-of-ruby/
Rubyの人気が低下している現在、開発者は別のプログラミング言語を習得したほうが良いという趣旨の考察を展開しています。

同記事はRubyの人気低下の証拠として、Indeedによる求人数でRubyの人気が9番目にまで低下しているとのこと、
IEEE Spectrumのプログラミング言語ランキングで、Rubyの順位が2014年の8位から2017年の12位まで低下していること、さらにCoding DojoでRubyコースが終了したことなど、幾つかの事実を挙げています。

またコンピューターサイエンス分野で関心が低いことや、Twitterを始めとした巨大企業がRailsの採用をやめたこと、Stack Overflowで関心が低下していることなども、Ruby人気が低下している具体例としてリストアップしています。

同記事では「Python」と「JavaScript」を学ぶべき言語として推奨しています。

Pythonは、Web開発やデータサイエンス、その他分野でここ数年急激に広まっており、Rubyと似たシンタックスを採用している部分もあるため、Ruby開発者にとっても習得しやすいプログラミング言語であると説明されています。

またJavaScriptは、全世界で最も使用されている言語であり、Node.js、AngularやReactといった強力なフレームワークによって、
バックエンドからフロントエンドまで幅広くカバーした、価値のあるプログラミング言語であるとされています。

IEEE Spectrumの2017年ランキングでもPython言語は1位となっていてこの主張はある程度納得できるところかもしれません。

同様に、JavaScriptの応用範囲の広さも、誰もが認めるところだと思います。
0100デフォルトの名無しさん
垢版 |
2019/03/20(水) 03:44:38.64ID:oK7gZRvl
RubyはPerlのようになる?
Rubyの今後に関しては、2008年頃から人気が低下したPerlを例にとって、人気は低下していくものの、完全になくなることはないと結論づけられています。
0101デフォルトの名無しさん
垢版 |
2019/03/20(水) 09:01:56.76ID:nJGjaI7U
Rubyどうでもいいよ。Pythonの話しようよ。
0103デフォルトの名無しさん
垢版 |
2019/03/20(水) 09:21:48.45ID:KzgtImdp
pythonの人気に嫉妬しながらも摺寄り、騙し、利用して宣伝しなければ生きていけない死にかけクソ言語とそれにハエ信者
0107デフォルトの名無しさん
垢版 |
2019/03/20(水) 12:26:41.18ID:LJEBRQCY
>>55
ありがとうございます!
パラメータを少しずつ変化させながら繰り返そうとしたら大変でしたので、
1つのクラスにまとめます
(まずPythonがネストを増やすたびにインテントを増やさなきゃいけないのは、そもそも深くするなってことでしょうし)
0108デフォルトの名無しさん
垢版 |
2019/03/20(水) 12:42:35.11ID:OI8TGBSL
selfに何が出力されているのか確認できる超簡単なコードはないですか
アホですみません、、、
インスタンス自身と言われてもわからない

testclass()
↑これがインスタンス自身?
0111デフォルトの名無しさん
垢版 |
2019/03/20(水) 15:43:52.30ID:jMIYtB7h
>81
rubyってperlやC++の糞なところに嫌気が差して造り始めた(Matz)のに
perlやC++以上の糞なものが出来てしまった感
0112デフォルトの名無しさん
垢版 |
2019/03/20(水) 15:45:39.55ID:jMIYtB7h
>>84
「かもしれない」
じゃなくて
衰退する
断言する
0113デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:00:12.64ID:xpDuuMJR
今勉強している参考書に
return;
って書いてあったんだけどこれってオカシイかな?
0114デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:02:32.78ID:KzgtImdp
それだいぶ古い記事だから。
結果は出たじゃん。衰退した。
だから人気言語のスレで初心者騙して衰退世界に引擦り込もうと詐欺行為を働いてるわけ。
0115デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:02:42.89ID:jMIYtB7h
python系の野良ブログとかのサンプルは
余計な;ついてるコード多いよ
0116デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:27:14.92ID:xpDuuMJR
>>115
ありがとう。じゃあやっぱりこの ; は要らないんだね
この12歳からはじめる、、、って本記述ミスが多いんだよなぁ
0117デフォルトの名無しさん
垢版 |
2019/03/20(水) 16:38:42.98ID:jMIYtB7h
間違いの全く無い教科書より
間違ってる教科書の方が勉強になる
と言ってた先輩が居たな
0119デフォルトの名無しさん
垢版 |
2019/03/20(水) 17:45:30.18ID:mjOwP74k
おかしいかどうかは自分でコード描いて実行してみれば良い

エラーが出れば、間違い(有害的記載事項)
エラーが出なければ、それでもOK
;があってもなくても動くのならOK(無害的記載事項)
;がないと動かないのなら必要的記載事項
;があるとないとで異なる動きをするのなら、その;には独自の意味があるのだから、有益的記載事項


つまり、ここで聞かなくても自分でコード描いて実行してみれば答えが得られる
0120デフォルトの名無しさん
垢版 |
2019/03/20(水) 18:30:13.87ID:OI8TGBSL
>>110
python の場合は
Class()
などとしたものがインスタンスですよね?
インスタンス自身がselfに入るというのが理解できないのですが、どういった状態がselfにインスタンス自身が入るということなんでしょうか
0122デフォルトの名無しさん
垢版 |
2019/03/20(水) 18:34:31.94ID:Y7BJ+cKS
>>120
ちょっとずれてないか

クラスはクラス
クラスを召喚してきたものがインスタンス

これもよめ
ttps://qiita.com/msk02/items/60ea1bd5824fca134323
0123デフォルトの名無しさん
垢版 |
2019/03/20(水) 18:36:23.30ID:OI8TGBSL
>>120
class = Class()
などとしてインスタンス化したものと同じものが入っていることがわかりましたが、それによってどういう効果があるのかイメージできませ
0124デフォルトの名無しさん
垢版 |
2019/03/20(水) 18:39:04.93ID:6ln9W50J
>>120
逆にselfが無い場合を考えてみれば良い
自分のメソッドやプロパティにアクセスできなくなり、
利便性が極端に落ちる

で、これを聞けば無くても書くことはできるって思うんだろう
そう、書くことはできるが不便
利便性のために存在する
selfがない言語とかクソ過ぎて使う気にならん

とにかく気にせずに使えば良い。そのうち分かる
0125デフォルトの名無しさん
垢版 |
2019/03/20(水) 18:43:07.68ID:Y7BJ+cKS
>>123
アンカー間違ってるぞ

124がイイ!!(・∀・)こと言ってるが

具体的にプログラム書いてみて、
ないと困る実感が生じない限り
イメージできないとか
わかんねー感覚は消えないんだろう。

とにかく何かプログラムをかけ。クラスがいくつかあるようなやつだ。
かいてみそ。
かけばわかるようになる、かもしれない。
書いてみない限りはイメージできないままだ。
0126デフォルトの名無しさん
垢版 |
2019/03/20(水) 19:41:58.67ID:OI8TGBSL
↑ありがとうございました
とりあえず1つ用途がわかりました
他の関数からメンバ関数(initはメンバ関数とよんでいいんですよね?)にアクセスするために使うんですね
class MyClass:
def __init__(self):
#メンバ変数
n = 1111
def get_self_id(self):
print(n)

mc = MyClass()
0127デフォルトの名無しさん
垢版 |
2019/03/20(水) 19:46:19.10ID:Y7BJ+cKS
わかってなにより
だがしかし
5ちゃんにおけるインデントについては
まだ理解してないんだな
0128デフォルトの名無しさん
垢版 |
2019/03/20(水) 20:06:20.00ID:PLP6AfKj
>>126
self.nにしないとmc.get_self_id()でエラー
0130デフォルトの名無しさん
垢版 |
2019/03/20(水) 22:01:41.47ID:SonzdXCJ
楽天って英語公用語化に続いてプログラミングを社員に強制するそうじゃん
しかも今更Javaとか
せめてPythonにしとけよ
https://web.smartnews.com/articles/fJhMxPYC7Sv
退職させたい人にアンドロイドアプリを作らせて
できなかったら退職するよう仕向ける気じゃないだろうな。
0132デフォルトの名無しさん
垢版 |
2019/03/21(木) 03:03:01.22ID:7H/hg7Lf
世界レベルで業界に影響力を持つ企業が存在しないのだから作っても意味ない
0135デフォルトの名無しさん
垢版 |
2019/03/21(木) 10:50:49.61ID:yLWBHIB/
なんだforで回すだけですか
vs codeで謎のエラーが出てました
0136デフォルトの名無しさん
垢版 |
2019/03/21(木) 11:33:30.84ID:tu8B3kqR
>>134
そう
0137デフォルトの名無しさん
垢版 |
2019/03/21(木) 12:04:52.08ID:jEHADO0u
>>134
そのサイト参考にしないほうがいいよ
0139デフォルトの名無しさん
垢版 |
2019/03/21(木) 16:35:02.89ID:yLWBHIB/
はい
0141デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:26:49.76ID:yLWBHIB/
http://codepad.org/hBiVOKpg
self野郎なんですが、インスタンス自身がselfに渡されることで変数が同じクラス内で共有出来るってことだと思うんですが、インスタンス自身が渡されることでなぜ共有できるようになるんですか?
なんかわかりやすい例えないですかね?

a = tes("aaa")がインスタンス
このインスタンスがどういう形で渡されているのか調べる方法はありませんか?
0144デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:29:34.33ID:yLWBHIB/
ちなみにこのaをprintしても場所っぽいメッセージが出てくるだけです
0145デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:32:20.40ID:3b986hBs
インスタンスはね、a と言うんだ本当はね
だけど小ちゃいから自分のことself って呼ぶんだよ
可笑しいな selfちゃん
0147デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:34:31.84ID:yLWBHIB/
<__main__.tes object at 0x01071D30>
といった場所?が渡されていることで、なぜクラス内で変数を共有できるようになるのかわからないのです

>>145
そっちがインスタンスということで理解します
0148デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:37:23.77ID:cyLDjoYG
でもクラス外から呼ぶときは、self なんて子供が使うような呼び名を使ってはいけないぞ
ちゃんと苗字a 、関数名前 で呼べ

それが社会常識ってもんよ
0150デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:42:42.24ID:susRoq6I
そこまで考え出すと、逆にかなり難しくなるんじゃないかな
pythonはCのラッパーだから、あまり低級な事を考えるとラッパーとしてどうなっているかも考える必要が出てくる
俺もラッパーとしてどう動いてるかなんて考えない。学習コストとリターンが全く見合ってない
0152デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:43:48.37ID:eKH7lBgF
Pythonで説明してくれてるとこあったぞぬ
ttps://crimnut.hateblo.jp/entry/2018/09/05/070000

self野郎くんはもうコテハン「self野郎」って名乗っちゃっておkだとおもうの
0154デフォルトの名無しさん
垢版 |
2019/03/21(木) 19:57:56.42ID:pNXTHJSM
どうしてリストなどには属性をくっつけられないんだろう
a = []
a.x = 1
AttributeError: 'list' object has no attribute ‘x’
0156デフォルトの名無しさん
垢版 |
2019/03/21(木) 20:16:30.57ID:fbHrFGME
kivyを使う時にjupyter notebookだと画面が乱れてしまって上手く動きません
pyファイルを作ってコマンドからならちゃんと動くんだけど効率が悪いです。
jupyter notebookのような代替ソフトを知りませんか?m(_ _)m
0158デフォルトの名無しさん
垢版 |
2019/03/21(木) 20:23:39.72ID:yLWBHIB/
ありがとう
勉強してきます
0162デフォルトの名無しさん
垢版 |
2019/03/21(木) 21:04:49.41ID:yLWBHIB/
selfに参照渡しされるアドレスってのはインスタンスといいますが、インスタンスの引数のアドレスことではないのですか?
0163デフォルトの名無しさん
垢版 |
2019/03/22(金) 04:34:23.47ID:4np0yjmV
[100,200,-50,150,-100]

こんな感じで一日毎のFXの収支が入った配列があった時
要素を順番に足して収支が積み上がるような配列を作りたいんだけど。。。

0+100=100
100+200=300
300+(-50)=250
250+150=400
400+(-100)=300

こんな計算をして

[100,300,250,400,300]

こんな配列を作りたいんだけどいい方法教えてエロい人
forとか使わないでシンプルなので頼んます><
0164デフォルトの名無しさん
垢版 |
2019/03/22(金) 05:21:41.85ID:jRDRMKF2
cumsum
0165デフォルトの名無しさん
垢版 |
2019/03/22(金) 05:29:25.13ID:4np0yjmV
>>164
うわぁ、ありがとう
僕がイメージしてた通りの関数でした!!
ぜひ使わせていただきます
0166デフォルトの名無しさん
垢版 |
2019/03/22(金) 05:30:39.63ID:khPW0F9t
>>163
普通にnumpyで加算すれば良いだけでは?
0168デフォルトの名無しさん
垢版 |
2019/03/22(金) 11:46:18.44ID:ZTaR0qbl
前にも書き込ませていただいたものですが、
gtk3+python+webkit2でepubビューアを作っているのですが、現在のスクロール位置を取得したいのですが、

y_pos_js ="var x; x=document.body.scrollTop"
def js_run(self, js_name, js_return=True):

run_js_finish = self._js_finish if js_return else None
self.viewer.view.run_javascript(js_name, None, run_js_finish, None);

def _js_finish(self, webview, result, user_data=None):
js_result = self.viewer.view.run_javascript_finish(result)
if js_result is not None:

value = js_result.get_js_value()
self.js_value = value.to_double()

print((self.js_value))

と書いても、0.0となってしまい、値を取得できません。
ひょっとすると、
https://havelog.ayumusato.com/develop/javascript/e332-android_scrolltop_refresh_delay.html
ここのページにあるようにdocument.body.scrollTopは即座に反映されないのかもしれませんが(情報が古い?)、
javascirptがわからずどうすることもできません。
pythonのtimeで遅延させても無駄なようで、javascirptの方で遅延させるしかないのでしょうか?
どなたかお知恵を拝借できると幸甚です。

https://stackoverflow.com/questions/52870923/webkit2-and-domdocument-javascriptcore-python3
上のpythonスクリプトの元ネタはここです。
0172デフォルトの名無しさん
垢版 |
2019/03/22(金) 13:21:26.19ID:g5h3mGP7
Ruby で、Selenium WebDriver なら、
execute_script で直接、JavaScript の命令文を実行できる

TOPまでスクロール
execute_script('window.scroll(0,1);')

BOTTOMまでスクロール
execute_script('window.scroll(0,10000);')
0175デフォルトの名無しさん
垢版 |
2019/03/22(金) 14:04:08.80ID:aiMUayIq
>>173
seleniumはjava製ソフトで各種言語にドライバーが出てる。
pythonやnode向けドライバーのほうがよっぽど利用者多くてよくメンテされてる。
クソ言語信者は他人のフンドシで相撲とってるだけ。
java製ソフトにjavascript実行させてるのを誇るというギャグw
0176172
垢版 |
2019/03/22(金) 15:07:59.51ID:g5h3mGP7
Ruby で、Nokogiri, Selenium WebDriver なら、
execute_script で直接、JavaScript の命令文を実行できる

jQuery も実行できるから、CSS Selector で検索もできる。
複雑な検索は、Nokogiri で、Xpath でも良いし

jsCode = <<"EOT"
var text = $( "#btn1" ).text( );
$( "#parent" ).append( text );
EOT

# JavaScript を実行
driver.execute_script jsCode
0178デフォルトの名無しさん
垢版 |
2019/03/22(金) 15:19:14.86ID:aiMUayIq
driver.execute_script jsCode
 ↑javaのコードに  ↑jsコード文字列

渡してるだけwwwww
もちろんこんなのPython用ドライバーもnode用ドライバーもあって、
当然できることも同じ。
どころか不人気クソ言語用ドライバーよりよっぽどよくメンテされており使用者も多いw
0179デフォルトの名無しさん
垢版 |
2019/03/22(金) 15:54:48.11ID:t/nkQ3ne
Pythonにも言えるだろうけど、JavaScriptはwebのアセンブラみたいな地位だから変えられないけど、
型がないからデバッグが大変という事でTypeScriptとかelmとか出てるご時世に生のJavaScript動かせるって言うのも逆に危険じゃね?
TypeScript動かせますとか、生JavaScriptの型検査出来ますとかでも無ければ、むしろ嫌われ機能じゃ。。。
0180デフォルトの名無しさん
垢版 |
2019/03/22(金) 16:19:38.63ID:lvSXHllC
文字通りの布教活動してないで、pycallのメンテでもしてて欲しいんだけど
サナダ虫言語くん
0181デフォルトの名無しさん
垢版 |
2019/03/22(金) 18:25:24.02ID:ZTaR0qbl
質問ばかりで申し訳ないのですが、
webkit2からjavascriptを呼んで値を取得するまではできたのですが、
その値を今度は別のjavascriptに渡して
window.scrollto(0, self.js_value),)
とやりたいのですが、どうすればpythonの値(self.js_value)をjavascriptに渡せるのでしょうか?
0183181
垢版 |
2019/03/22(金) 18:49:26.10ID:ZTaR0qbl
>>182
失礼しました。コピペを間違えました。
0185デフォルトの名無しさん
垢版 |
2019/03/23(土) 03:50:03.33ID:oN2Crbw2
import pandas as pd
abc =[["a", 1, 2], ["b", 3, 4], ["a", 5, 6], ["b", 7, 8]]
df = pd.DataFrame(abc)

このデータフレームから、query関数を使って、
aを含む行だけを抽出したいのですが、エラーが出てしまいます。。。

df.query("0=='a'")

どなたかお助けください。
0186172
垢版 |
2019/03/23(土) 06:05:42.92ID:4V4ijAbJ
>>181
参考までに、Ruby で、Selenium WebDriver なら、
>>172
に書いたように、execute_script で直接、JavaScript の命令文(文字列)を実行できる

execute_script( 文字列 )

TOPまでスクロール
execute_script('window.scroll(0,1);')

BOTTOMまでスクロール
execute_script('window.scroll(0,10000);')
0187デフォルトの名無しさん
垢版 |
2019/03/23(土) 07:43:05.24ID:ydnViaEq
selfにはインスタンスが渡されるといいますが、インスタンスの何が渡されているんですか?selfを出力すると場所ということになりますが、場所にあるデータを渡しているのでしょうか?だとしたらそのデータはなんですか?
selfによってクラス内で変数が共有される仕組みがわからない

http://codepad.org/Cpl7EKpb
class test():
def __init__(self,var):
self.v= var
def func(self):
print(self.v)
print(self)
print(vars(self))
a = test("aaa")
a.func()
0189デフォルトの名無しさん
垢版 |
2019/03/23(土) 08:33:26.98ID:ZeoqDrwt
こういうタイプはアセンブリ言語から順に勉強していった方がいいんじゃないかと思う
0192デフォルトの名無しさん
垢版 |
2019/03/23(土) 09:42:24.98ID:ydnViaEq
>>188
もちろん見たのですが、どういう形で渡されているかわからないのです

クラス自身が渡されているとしたら
class.class.v = var
という構造になっているということですか?
0193デフォルトの名無しさん
垢版 |
2019/03/23(土) 10:26:17.73ID:ZeoqDrwt
>>192
関数はある程度理解してて自分で書くことができる?
0194デフォルトの名無しさん
垢版 |
2019/03/23(土) 10:40:50.71ID:I3Pj7rcK
「python クラス変数 インスタンス変数」とかでググれば説明サイトが大量にあるけど、
プログラミングそのものが理解できてない感じだよね
0195デフォルトの名無しさん
垢版 |
2019/03/23(土) 10:50:20.39ID:ydnViaEq
>>193
簡単な関数ならもちろんかけます

def func(hikisuu):
print(hikisuu)

func("引数")
0196デフォルトの名無しさん
垢版 |
2019/03/23(土) 10:50:59.12ID:ydnViaEq
>>194
概念はなんとなくわかりますが、どういう形で渡されているかがわからないのです
0198デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:03:23.41ID:hJSauuzM
>>192
selfはtestクラスのインスタンスを指してる
func()の第一引数にそのselfがあるんだから、そのメソッド内でselfのインスタンス変数にアクセス出来るのはなんにもおかしくないと思うんだけど
0199デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:10:08.58ID:ydnViaEq
>>198
なんとなくわかってきました
ただ、selfがtestクラスのインスタンスということであれば、testクラスの中にさらにクラスのインスタンスがあるという状態はおかしくないでしょうか?
0203デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:22:14.02ID:ZeoqDrwt
>>195
じゃ仮に変数をまとめて入れられる変数があるとする(変数の中に変数が入っている)

a = {
  hensu1 = "ABC"
  hensu2 = 22
}
b = {
  hensu1 = "DEF"
  hensu2 = 55
}

変数にアクセスするためにはこうやるとする
print(a.hensu1) // ABCが出力される
b.hensu2 = 44 // bの中のhensu2に44が入る

もう一つ仮に、関数をまとめられる変数があるとする(変数の中に関数が入っている)
funcs = {
  def func1(hikisu):
    print(hikisu.hensu1)
  
  def func2(hikisu, var):
    hikisu.hensu2 = var
}
中の関数を呼び出すにはこうやるとする

funcs.func1(a) // ABCが出力される
funcs.func2(b, 87) // b.hensu2 に87が入る
0204デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:29:25.52ID:7srBUnhE
>>192
>クラス自身が渡されているとしたら
誰がクラス自身なんて言った
渡されるのはクラス自身じゃない

もう自分でソース読んでみるのもいいんじゃないですかね
0205デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:34:13.97ID:hJSauuzM
>>199
"testクラスの中にさらにクラスのインスタンスがあるという状態"という考えはどこから出てくるんや

>>202
エラーを貼ったほうがいい
0206デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:34:24.50ID:7srBUnhE
どう実装されていますかっていう質問でしょ
ソース見るのが一番早いよ
C分からなくてソース読めないっていうなら、これ以上の説明も理解できないよ
0207デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:41:58.39ID:VYeUbhBG
>>199
引数として渡されているだけなんだから何らおかしくない

> testクラスの中にさらにクラスのインスタンスがあるという状態はおかしくないでしょうか?

自分の中で「こうあるべき」って感情的に決めつけてない?
それの何がどうおかしいのか論理的に説明してみて
0208デフォルトの名無しさん
垢版 |
2019/03/23(土) 11:48:53.36ID:oN2Crbw2
>>205
import pandas as pd
abc =[["a", 1, 2], ["b", 3, 4], ["a", 5, 6], ["b", 7, 8]]
df = pd.DataFrame(abc)
df.query("0=='a'")

pandasで上記コードを実行すると
KeyError: False
というエラーが出てしまいます。
0209デフォルトの名無しさん
垢版 |
2019/03/23(土) 12:24:51.07ID:ydnViaEq
>>204
渡されるのはインスタンスですよね
クラスの中のselfではなくて、生成されたインスタンスの中にあるselfに渡されているということでしょうか?
0210デフォルトの名無しさん
垢版 |
2019/03/23(土) 12:28:48.09ID:ydnViaEq
>>203
ありがとうございます
これは例えばのコードですよね?
この波括弧(コレクション?)を使うとエラーが出るのですが
0211デフォルトの名無しさん
垢版 |
2019/03/23(土) 12:33:20.28ID:jhd39dfA
>>209
クラスとインスタンスの違いが分かっていなかったのか

>クラスの中のselfではなくて、生成されたインスタンスの中にあるselfに渡されているということでしょうか?
そう
クラスはあくまで設計図
実体を作って何かを行うのは全てインスタンス
0212デフォルトの名無しさん
垢版 |
2019/03/23(土) 12:41:08.01ID:7srBUnhE
クラスにも実体はあるし、クラス内の関数を呼び出したりもするけどね
0214デフォルトの名無しさん
垢版 |
2019/03/23(土) 13:55:46.82ID:f3qHSm8q
>>212
超初心者にあれこれ詰め込んでも混乱するだけだろうし、多少の嘘は許容してまずは本当に基本的なことを大雑把に理解させないと一歩も先に進まないんじゃないかな。
0216デフォルトの名無しさん
垢版 |
2019/03/23(土) 15:55:15.05ID:VsaUG60l
説明はもう済んでるよ、理解出来てないだけ。
それも当然で、基礎知識が無いからどうしようもない
このまま行けばC言語に手を出すことになるのだろう
0217デフォルトの名無しさん
垢版 |
2019/03/23(土) 15:59:25.81ID:hJSauuzM
>>209
それでいい
クラスから実体化しまインスタンスはクラスとは別のメモリ領域にある
そのインスタンスの中に、selfというそのインスタンス自身をさすインスタンス変数があるということ

頼むからか>>149の1章から3章まで読んでくれ
あんたの知りたいことがすべて書いてある
そのサイト以上に簡単に説明してるところを俺はしらん(´・ω・`)
0219デフォルトの名無しさん
垢版 |
2019/03/23(土) 17:31:55.04ID:ydnViaEq
↑ありがとうございます
最後に一つ

self.n= name
とあったらself側が変数名で、nは属性という扱いでいいんですか?
0222デフォルトの名無しさん
垢版 |
2019/03/23(土) 18:15:49.99ID:ydnViaEq
道標とは?
self.nで
インスタンス化されたクラス/その中にある変数n
というフォルダのような構造になっているという意味でしょうか?
0223デフォルトの名無しさん
垢版 |
2019/03/23(土) 18:22:35.82ID:ydnViaEq
インスタンスの構造を出力してくれる関数とかないでしょうか?
これがあれば理解できるかも
0224デフォルトの名無しさん
垢版 |
2019/03/23(土) 19:16:34.22ID:iMO+WCpL
ppront
pydoc
0225デフォルトの名無しさん
垢版 |
2019/03/23(土) 20:15:49.89ID:abrpiqJH
>>185
Python詳しく無いけど、Haskellで言うfilter関数見たいのが有るんじゃ無いのか?
自作しても良いと思うけど。

def filter(f,lst):
newlst = []
for i in lst:
if f(i) then:
newlst.append(i)
return newlst

Haskellとの比較用にしか使ってないから、クラスとか知らんで悪いけど。
0226デフォルトの名無しさん
垢版 |
2019/03/23(土) 20:30:07.59ID:abrpiqJH
>>187

>>53で文句言われたpython初心者が別の言語での知見からの推測で良ければ?
selfに入ってるのは__init__付けてない時はclass定義そのもののアドレス(参照)が入るみたい。(各インスタンスで別々の値を持てなかった)
__init__付けるとインスタンスのアドレスが入るみたいね。
クラスによって(インスタンスの)先頭アドレスから何バイト先がメソッドのアドレスとか分かるから(その為のクラス定義)。
0227デフォルトの名無しさん
垢版 |
2019/03/23(土) 20:31:20.91ID:ydnViaEq
instance = test("hge")
pprint.pprint(instance)
pprintしてもメモリの場所しか表示されないのですが、何か設定が必要でしょうか
0228デフォルトの名無しさん
垢版 |
2019/03/23(土) 20:43:03.84ID:ydnViaEq
もしかしてクラスを設計図としたインスタンス(の構造)には、クラスの宣言部分は含まれていないのですか?
class testclass():
def __init__(self,hoge):
self.h = hoge
def func(self):
print(self.h)
instance = testclass("output")
instance.func()
とあったら、instance部分の構造は
def __init__(self,hoge):
self.h = hoge
def func(self):
print(self.h)
となってるわけですか?
0229デフォルトの名無しさん
垢版 |
2019/03/23(土) 20:50:14.72ID:A1HHpCkB
>>222

ご明察のとおり
だから、メモリ空間上に実体として存在するのは、

変数名.n

なので、外部からアクセスするときには、

変数名.n

でアクセスする。

self.n

で朝とできるのは、同じ変数名インスタンス内部からだけという仕掛け
0232デフォルトの名無しさん
垢版 |
2019/03/23(土) 21:18:50.51ID:I3Pj7rcK
>>228
難しく考えすぎ

self(正確には第1仮引数名).変数名があると、下記の順番で処理されるだけ

1. インスタンス変数が定義されていれば、それにアクセス
2. クラス変数が定義されていれば、それにアクセス
3. どちらも無ければインスタンス変数を作成 (参照だったら例外発生)

Pythonインタープリタは、そう実装されているってだけ
だから概念とか考えてもしょうがない
はっきり言って、「selfに意味はない」
0233デフォルトの名無しさん
垢版 |
2019/03/23(土) 21:21:25.01ID:lUpPBvQP
>>227-228
どーでもよくないことだが
またインデント崩壊してるわ
タイポが散見されるわで
どうにもはや

pprontはpprintじゃないとおもうぞ
0234デフォルトの名無しさん
垢版 |
2019/03/23(土) 21:22:53.90ID:lUpPBvQP
>>232が すごくイイ!!(・∀・)こといった
selfをselfとかいとくことに
意味がないところでつっかかってんだ、
self野郎くんは
0236デフォルトの名無しさん
垢版 |
2019/03/23(土) 22:04:22.60ID:abrpiqJH
>>232
selfはローカル変数かフィールド(クラス変数)かを見分けると言う意味はある。
メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)

class Myclass:
def func(str):
name = str #nameはローカル変数かフィールドか見分けられない。

そこでrubyは@nameとし、pythonはself.nameにした。


静的型言語だとクラス定義の時点でメソッドよりフィールドを先に定義するから、クラスで何個のフィールドが有るのか分かるけど、
動的型言語だと全メソッド見ないとフィールドが何個あるのか把握出来ない。
同じ使われ方してるフィールドが複数あっても気付きにくい。
__init__にフィールドの宣言と初期化を集約するとか、セオリー頼り。

class Myclass:
def func1(self,str):
self.name = str

def func2(self,str):
self.myname = str
0237デフォルトの名無しさん
垢版 |
2019/03/24(日) 00:18:34.34ID:9O9Vp0iS
>>236
>メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)



それな
開発者は、次回には直しとけよ
0238デフォルトの名無しさん
垢版 |
2019/03/24(日) 00:26:51.70ID:aL5blMH8
>>236>>237
開発者からの言葉

・self不要論は死ぬほど聞いている
・以下が大きい理由
'foo'が 'C'のインスタンスであることを考えると、
パラメータリストで明示的な 'self'を必要とすることは、メソッドを呼び出すこれら2つの方法の間の理論的等価性を強化することになります。
foo.meth(arg)== C.meth(foo、arg)

俺には分からんかった
以下ソース
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
https://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay/
0243デフォルトの名無しさん
垢版 |
2019/03/24(日) 05:01:07.62ID:XxZqoAge
>>237
いあ、個人的にはメソッドの引数からフィールドを生成または使用してるのが分かって便利だから残してて欲しいが。
0244デフォルトの名無しさん
垢版 |
2019/03/24(日) 05:39:07.49ID:NAaHZN6A
pythonのC-APIは
CallObjectとか
CallFuncとか
CallMethodとか
使い分けてるよな
0245デフォルトの名無しさん
垢版 |
2019/03/24(日) 08:33:50.69ID:XvYqXbWf
dive into python3を読んでIterator作ってみたら少し理解が進んだ気がする
dive into python3を何とか理解したレベルで次に読むべきものって何なんやろ
0246デフォルトの名無しさん
垢版 |
2019/03/24(日) 09:23:31.67ID:1qlluyio
つくれ
0248デフォルトの名無しさん
垢版 |
2019/03/24(日) 10:49:21.59ID:0uhW8miJ
anacondaで個別に環境作ってsqlite3入れたがそれらを個別にイジるにはどうすればいい?コマンドプロンプトでsqlite3と叩いても違うバージョンのsqlite3が表示される
0250デフォルトの名無しさん
垢版 |
2019/03/24(日) 11:22:47.21ID:0uhW8miJ
>>249
ありがとうできた

PowerShellでactivate出来なかったから調べてみると使えるようにするにはconda install -n root -c pscondaenvs pscondaenvsで使えるように出来た
0251デフォルトの名無しさん
垢版 |
2019/03/24(日) 11:37:43.08ID:0uhW8miJ
ごめんvscodeのmicrosoft.python.languagesserver.exeってのが13gbくらいメモリ食っててメモリ使用率とディスクが99%なんだけどこれウィルス?
0253デフォルトの名無しさん
垢版 |
2019/03/24(日) 12:04:20.29ID:byELi1J1
1人みたら100人いるとの格言の通り
self概念を理解できない人間はそれくらいいる
pythonに限らず他の言語でも
0254デフォルトの名無しさん
垢版 |
2019/03/24(日) 12:45:59.87ID:6XL2+Wvk
実装がどうなってようが俺の要求する通りの出力結果が得られれば
細かいことはどうでもいい
0258デフォルトの名無しさん
垢版 |
2019/03/24(日) 14:19:15.63ID:m/EdUsLf
.sort()がマージソートだろうがクイックソートだろうが気にしないって事やろ
0259デフォルトの名無しさん
垢版 |
2019/03/24(日) 14:51:12.18ID:9O9Vp0iS
そうそうそーとしてくれりゃいいのよ
アルゴの違いなんて、CPU命令セットの違いで成績は簡単に逆転しちゃうんだから
0260デフォルトの名無しさん
垢版 |
2019/03/24(日) 15:03:55.28ID:aL5blMH8
>>258
そうそう
それで速度が足りないとか不具合起きるとかアリえんし、例え速度に多少問題あってもそんなもん改善しない
0261デフォルトの名無しさん
垢版 |
2019/03/24(日) 16:24:16.54ID:w1PFw/Sy
webkit2+gtk3でimport threadingで子プロセスからwebkit2.webview.run_javascriptでjavascriptを呼ぶと下記のようなエラーが出てしまうのですが、
仕様なんでしょうか?

1 0x7f4853d050f9 /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x9) [0x7f4853d050f9]
2 0x7f4860cdfeda /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(+0x792eda) [0x7f4860cdfeda]
3 0x7f4860cbc8a4 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(+0x76f8a4) [0x7f4860cbc8a4]
4 0x7f4860d68cf3 /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37(webkit_web_view_run_javascript+0xc3) [0x7f4860d68cf3]
0262デフォルトの名無しさん
垢版 |
2019/03/24(日) 16:27:03.66ID:w1PFw/Sy
multiprocessingだと、javascriptだけ読み込まれないようです。(printや他の関数呼び出しなどは機能します)
これだと常時子プロセスでページのスクロール位置を記録するスクリプトが組めないので困っています。
どなたか原因がわかる方、お助けください。
0263デフォルトの名無しさん
垢版 |
2019/03/24(日) 16:34:22.71ID:C+SYacul
>>262
なんでマルチプロセスしてるかわかんないけど
一旦全部のプロセスの足並みそろうまで待つ命令入れたらどうなるのん
0264262
垢版 |
2019/03/24(日) 16:59:44.36ID:w1PFw/Sy
>>263
レスありがとうございます。
本来はアプリ終了時にページの既読位置を記録したかったので、gtk windowのdestroy
シグナルからjavascriptを書いたコールバック関数を呼ぼうと思ったのですが、
gtk windowがdestroyされるとwebviewも消えてしまって、値が取得できなかったので、
常時スクロール位置を記録する無限ループを作り、その中でjavascriptを呼ぶ子プロセスを作ろうと思ったのです。
マルチプロセスにせずクラスのdef __init__()にループの関数を書くと無限ループなのでwebviewが読み込まれず、
仕方がなくマルチプロセスにしました。子プロセスから親プロセスの変数を書き換えられないなどの基本的なことは
検索してわかったのですが、なぜ子プロセスから親プロセスのdefに書いてあるjavascriptを呼べないかがわからんのです。
普通の関数なら呼べるようですが。
0265デフォルトの名無しさん
垢版 |
2019/03/24(日) 17:47:09.22ID:C+SYacul
>>264
よべないものは呼べないんだろうから
なんか別の攻略法を考えるしかなさそうだなそれ。。。

スクロール位置の記録は
パイプに書いてるの?
その他の方法でやってる?
0266262
垢版 |
2019/03/24(日) 17:59:04.80ID:w1PFw/Sy
>>265
スクロール位置の記録はjavascript(y_pos_js ="var y; y = window.scrollY;")
とそれのresultを保管する変数でやっています。
変数の共有は
from multiprocessing import Value
のshared_double = Value('d', 0.0)などとやっています。
0268デフォルトの名無しさん
垢版 |
2019/03/24(日) 18:17:51.34ID:TV2Tiiuq
self野郎です
とりあえずありがとうございます
0269デフォルトの名無しさん
垢版 |
2019/03/24(日) 18:29:35.04ID:TV2Tiiuq
>>232
クラス変数にselfは使えないですよね?
0270デフォルトの名無しさん
垢版 |
2019/03/24(日) 18:32:34.26ID:TV2Tiiuq
self.nはだたのurlと考えることにしました
http://self/n
0272デフォルトの名無しさん
垢版 |
2019/03/24(日) 20:26:00.05ID:TV2Tiiuq
要はselfに自分自身を入れると、class.nみたいな感じで変数だとかにアクセス出来るってだけのことじゃないですか
0273262
垢版 |
2019/03/24(日) 20:36:20.90ID:w1PFw/Sy
>>267
Process(target=self.js_run(y_pos_js))
としたら今度はスクリプトを読み込んでくれました。
別プロセスにしたのが原因ではないようです。
もうちょっと考えてみます。レスありがとうございました。
0276デフォルトの名無しさん
垢版 |
2019/03/24(日) 21:15:19.44ID:Pci4stVg
>>272
もう完璧やん
0278232
垢版 |
2019/03/24(日) 21:45:45.89ID:LjSh6l07
>>269
だから>>232の通りなんだから、クラス変数にアクセスできるってば
>>238みたいな事を言っておいて、あんまりな仕様

そういうわけで、クラスメソッドの第1仮引数は"self"じゃなくて慣例的に"cls"にする
実際は"self"にしちゃう人もいるけど

Python3にする時にxrange→rangeとかつまらん事を病的なまで変更しておいて、
肝心な事は何も手を付けなかったから、いろいろ言われているんだよね
素直に"self"と"cls"を予約後にして、それぞれインスタンスとクラスを指すべきだったのに

あ、でもせっかく納得したみたいだから、別に気にしなくてもいいよ
0279デフォルトの名無しさん
垢版 |
2019/03/24(日) 23:12:03.48ID:3fqiTHWE
>>236
Python, JavaScript は、クロージャが関数スコープだから、
スコープ外の変数を取り込んでしまう。
第1級関数の欠点

一方、Ruby は、C と同じ。
関数スコープの内側に、クロージャのブロックスコープがある

関数は外側の変数を取り込まないで、
ブロックスコープは、関数内の変数を通す

第1級関数にしなかったことで、スコープが強固!
だから、this がwindow を指したり、non local とか、ややこしい問題がない

第1級関数を使っている言語は、バグりやすい
0282デフォルトの名無しさん
垢版 |
2019/03/25(月) 00:04:18.17ID:3q1td1jR
クロージャって何がいいの?
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が

> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。

と語っているね


http://www.atmarkit.co.jp/news/200907/24/ruby.html
0285デフォルトの名無しさん
垢版 |
2019/03/25(月) 01:26:03.22ID:25q5twYk
>>237

> >>236
> >メソッドの引数にする意味はないと思うけど。(他の引数と一貫性を保つ為?)
>
>
>
> それな
> 開発者は、次回には直しとけよ

>>243

> >>237
> いあ、個人的にはメソッドの引数からフィールドを生成または使用してるのが分かって便利だから残してて欲しいが。
0287デフォルトの名無しさん
垢版 |
2019/03/25(月) 03:12:34.36ID:SOhENsRU
>>279
Cにはクロージャの概念は無いよ。
毎度毎度、rubyしか分からない(それすらちゃんと分かってるか怪しい)のに他の言語のスレにわざわざ出てきて無理矢理ruby推ししては、頓珍漢なことしか言えないのだから二度と書き込むな。
0289デフォルトの名無しさん
垢版 |
2019/03/25(月) 05:03:23.28ID:M3aMg8kF
pandasのread_csvで列名「size」のデータを読み込んで利用したいのですが、うまく行きません。
usecols=['size']と指定しても
df.sizeだと要素数が出てきてしまうし
df.rename(colms=['size':'_size'])とした上で
df._sizeを見ようとしても
object has not attribute '_size' のエラーになってしまいます。

size列は位置が変わる可能性があるので、
できれば列番号ではなく列名sizeを指定して読み込みたいです。
良い方法はないでしょうか。
0290289
垢版 |
2019/03/25(月) 05:38:00.91ID:0OHWqjaj
自己解決しました。
https://teratail.com/questions/149045
上記ページを参考に
col = df.columns.values
col[size列を読み込んだ場所] = '_size'
df.columns = col
とした上でdf._sizeを見たらOKでした。
0291デフォルトの名無しさん
垢版 |
2019/03/25(月) 05:43:57.44ID:M0EtypdC
結局、インスタンス変数にselfをつけると、クラス内で共有できるよという
そういう仕組なんだよってことどすか?
0292デフォルトの名無しさん
垢版 |
2019/03/25(月) 06:51:32.25ID:SOhENsRU
>>288
そのリンク先にも書かれている通りCには文法的にクロージャは無くて、クロージャもどきを実装するやり方が書かれているね。
だから>>279でクロージャとスコープの関係の議論にCを持ち出すのは頓珍漢だと思うよ。
0293デフォルトの名無しさん
垢版 |
2019/03/25(月) 08:05:46.84ID:25q5twYk
>>286
rubyだと、どのメソッドでフィールドが使われてるかはクラスの全メソッドチェックしないと分からないけど、
pythonは引数にselfがあるか無いかで判断出来るんだから、立派な優位点だと思うけど。。。
規模大きくなってツール作った時、省けるチェックがある分、速度的にも優位だし。
0294デフォルトの名無しさん
垢版 |
2019/03/25(月) 08:59:23.51ID:Y6FhyNNn
トランプじゃなくても
this is a country where we speak about python not rubyyyy
って言いたくなるわ
0295デフォルトの名無しさん
垢版 |
2019/03/25(月) 12:02:16.14ID:WvC7Th65
>>284
Djangoもそうだけど、基本的に自分でSQL文を叩く必要はないよ
端末2つ開いて片方Pythonシェルでモデル操作しつつ、もう片方でSQL文でデータベースに行われる操作を確認すると良い

Flask+SQLAlchemyならここのblogを順を追って行くのが良いと思う。その拡張版であるオライリー本に行くのも良い
https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
https://www.amazon.co.jp/dp/1491991739/
0297デフォルトの名無しさん
垢版 |
2019/03/25(月) 15:09:33.90ID:limoBn15
multiprocessingで子プロセスを作成しています
子プロセスでエラーが起きた場合に親と子の両方を終了するにはどうしたらいいのでしょうか?
0298デフォルトの名無しさん
垢版 |
2019/03/25(月) 16:06:05.01ID:OMoEyPHb
>>297
kill children あたりのキーワードで スタックオーバーフローとか検索
たぶん誰かが書いてくれたそーすみっかる
0299デフォルトの名無しさん
垢版 |
2019/03/25(月) 17:51:52.14ID:HtPR7z5p
webkit2+gtk3でepubビューアを作ってるものですが、

javascriptでのスクロール量計測は諦めて、webkit2webextensionを使おうと思って、

WebKit2WebExtension.WebExtensionInitializeFunction(WebKit2WebExtension.WebExtension)

とやったのですが、
raise NotImplementedError(info)
NotImplementedError: gi.CallbackInfo(WebExtensionInitializeFunction)

と出てしまいました。pygobjectにはWebKit2WebExtension.WebExtensionInitializeFunctionはまだ実装されていないのでしょうか・・・
https://lazka.github.io/pgi-docs/index.html#WebKit2WebExtension-4.0/callbacks.html#WebKit2WebExtension.WebExtensionInitializeFunction
ここにはこの関数がありそうなことが書いてあったのですが。
これも使えないんじゃ現在スクロール位置を記録することができなくて詰んでます。
0302299
垢版 |
2019/03/25(月) 18:15:05.51ID:HtPR7z5p
>>300
レスありがとうございます。tkinterのページがたくさん引っかかったのですが、
最大の問題はwebkit2がスクロールを自分で管理していて、webkit1のように
gtk.scrolledWindowで管理できない点にあるんです。
こちらのプログラムを参考(というか改竄している)にしているのが、この作者の方も
webkit2でのスクロール量の計測ができずにwebkit2にマイグレートできずにいるようです。
ここのサイトにリンクがあるC言語の場合の解決方法を参考にpythonで書いてみたのですが、
https://github.com/michaldaniel/ebook-viewer/issues/34
(ここの4つ目のレスのmarkerというソフトの作者の方の例です。)
299のエラーに遭遇してしまいました。大人しくCで作ったほうがいいのかもしれませんが。。。
0303デフォルトの名無しさん
垢版 |
2019/03/25(月) 18:33:28.75ID:OMoEyPHb
>>302
どこからかぞえて4つめのレスかちょっと迷ったw
このひとはCでやってんね。。。 > Markerの中の人
0304デフォルトの名無しさん
垢版 |
2019/03/25(月) 18:36:40.66ID:OMoEyPHb
>>301
キーワードに python とか pyとか足した方が
より絞られていいとおもった

どうしてもみつからなかったらまたレス頂戴
0306172
垢版 |
2019/03/25(月) 23:30:26.62ID:mW0SiMKO
参考までに、Ruby で、Selenium WebDriver なら、
>>172-186
に書いたように、execute_script で直接、JavaScript の命令文(文字列)も実行できる

ある要素までスクロールしたいとき
driver.find_element(:id, "ID").location_once_scrolled_into_view

jQueryでスクロール位置を取得・設定する:scrollTop()
https://uxmilk.jp/44962
0308デフォルトの名無しさん
垢版 |
2019/03/26(火) 03:14:40.29ID:1kIcDK5U
>>306
javascriptすげー
java製のseleniumすげー
呼び出すだけのキツネpubyダセーwww
呼び出すだけのドライバーですらシェア・メンテ更新頻度python, nodeに負けてるオワコン言語クセーwwwww
0309デフォルトの名無しさん
垢版 |
2019/03/26(火) 07:33:35.84ID:J/Egb0cy
pip install で語尾に --user を打ち込まなければエラーになってしまうのですが、何が原因でしょうか?
0310デフォルトの名無しさん
垢版 |
2019/03/26(火) 09:52:11.59ID:eH+Jt2CY
Pythonのタートルグラフィックスについて質問です
描画する時に亀や矢印のアイコンを消す方法ってありませんか?
0317デフォルトの名無しさん
垢版 |
2019/03/26(火) 10:25:06.95ID:UfRqjq8x
>>309
エラーになるときはそのエラー貼ったほうがいい

pip install --userでエラーが起きなくて、pip installでエラーが起きるなら、管理者権限が無いってのがよくあるパターン
0320デフォルトの名無しさん
垢版 |
2019/03/26(火) 11:28:16.84ID:nByXF8Wp
スライドパズルゲームでマスを入れ替える仕組みの概念を教えてください
まず、マスは2次元配列だと思います



黒いマスがプレイヤーだとして、上を押したときに上のマスと場所を入れ替えたい場合、単に配列の場所をイジイジしてやればいいだけですか?
セオリーがあったらおしえてくだひゃい
godot野郎です
0322デフォルトの名無しさん
垢版 |
2019/03/26(火) 17:26:56.08ID:nByXF8Wp
はい
0324デフォルトの名無しさん
垢版 |
2019/03/26(火) 18:37:32.42ID:nVClNZVc
input_cards = ["0","10"]
if input_cards.index("0"):
print("True")
else:
print("False")
if "0" in input_cards:
print("True")
else:
print("False")
if input_cards.index("10"):
print("True")
else:
print("False")

質問 最初のifのみTrueのハズなのにFalseが出力されます 使い方間違ってますかね?
0325デフォルトの名無しさん
垢版 |
2019/03/26(火) 18:57:37.30ID:zQ/2ZPon
>>324
インデントが崩れてるから>>1読んで

input_cards.index("0") すると 0がかえってくるので
そいつをifするとFalseだ
なにもおかしくはない
0329デフォルトの名無しさん
垢版 |
2019/03/26(火) 19:57:22.89ID:zQ/2ZPon
>>328
327のURLが怖くて踏めないチキンなんだ (´・ω・`)

はてブのどこになんて報告したらいいのかkwsk

はてブのガイドラインの広告については↓
ttp://help.hatenablog.com/entry/guideline#%E5%BA%83%E5%91%8A%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E7%A6%81%E6%AD%A2%E4%BA%8B%E9%A0%85
はてな自体のガイドラインは↓(6条めが禁止事項)
http://www.hatena.ne.jp/rule/rule
0330デフォルトの名無しさん
垢版 |
2019/03/26(火) 20:08:38.35ID:nVClNZVc
>>325-326
0番地に存在が有りなのでifがTrueを返すと勘違いしてました
逆に存在がない場合エラーになるのでindexが使えないことが分かりました
ありがとうございます
0331デフォルトの名無しさん
垢版 |
2019/03/26(火) 20:14:05.50ID:5xjl/lcy
mypyなどより5倍以上高速:
Microsoft、Pythonの静的型チェック機能を提供する「VS Code」プラグイン「Pyright」を公開
https://www.atmarkit.co.jp/ait/spv/1903/26/news103.html
Microsoftは、Pythonの静的型チェック機能を提供する「Visual Studio Code」(VS Code)のプラグイン「Pyright」をオープンソースのMITライセンスで公開した。
 Microsoftは2019年3月21日(米国時間)、Pythonの静的型チェック機能を提供する「Visual Studio Code」(VS Code)プラグイン「Pyright 1.0.0」をオープンソースのMITライセンスで公開した。同23日には多数のバグを修正した「Pyright 1.0.1」を公開している。
 Pyrightは、「mypy」のような既存のPython型チェッカに存在する難点に対処する目的で開発された。特徴は次の通り。
(会員記事につき略)

リポジトリ
https://github.com/Microsoft/pyright
0332デフォルトの名無しさん
垢版 |
2019/03/26(火) 20:16:09.75ID:UfRqjq8x
型アノテーションってみんな使ってるのかね
関数とかメソッドの引数と戻り値だけは、docstringに書くようにはしてるけど
0334デフォルトの名無しさん
垢版 |
2019/03/26(火) 22:05:18.14ID:uoYW3oSf
>>329
仮想PC、シークレットモード、携帯、携帯のシークレットモード
幾らでも踏めるぞ

広告は適当に報告刷れば良い
効果があるかどうかじゃなく、どれだけムカついたかを報告するんだ
俺は本気で腹が経ったら採用情報からでも報告する
0335デフォルトの名無しさん
垢版 |
2019/03/26(火) 22:12:31.53ID:zQ/2ZPon
>>334
>仮想PC、シークレットモード、携帯、携帯のシークレットモード
事前に匿名串とおしておかねばならないではなりませんのー :((´゙゚'ω゚')):

>てきとうにほうこく
なるほど
不快でした で おkなのね
0336デフォルトの名無しさん
垢版 |
2019/03/27(水) 00:44:32.46ID:rrMaR+Vk
おまいら、GUIライブラリはなに使ってますか?
おすすめがあったら教えてちょんまげ
0339デフォルトの名無しさん
垢版 |
2019/03/27(水) 08:48:24.38ID:o7BNT+Yv
とりあえず動けばいいならtkInter
普通のアプリ並みの見た目が必要でWinで動けばいいならC#とかで書いて裏でPythonを呼ぶ
綺麗な見た目が必要でクロスプラットフォーム、かつ非商用ならPyside、商用ならPyqt、ただしどっちもデプロイは面倒
デプロイが楽でクロスプラットフォームならGUIはブラウザでやるのがいいけど、フロント系の知識がいる

Pygameは一枚のカンバスにぐりぐり描く用途なら今でも使える、ただしGUI部品はないしイベントの扱いが原始的なので、用途は限られるかな

wxPythonは立ち位置的に使いどころがない
0340デフォルトの名無しさん
垢版 |
2019/03/27(水) 09:05:22.74ID:rrMaR+Vk
そうかトンクス!!

一番簡単なのはtkInterかな?
とりあえず動けばいいのでtkInterやってみっかな

C#でGUI作って裏でPythonなんてこともできるんだ!?
IronPythonとか使うって事?

KivyとwxPythonを勧めてるサイトがあるけどあかんのか〜
wxPythonはなんであかんの?
0341デフォルトの名無しさん
垢版 |
2019/03/27(水) 09:20:35.05ID:o7BNT+Yv
tkInterはいいぞ、最初から入ってるのが大きい。
C#云々は単にC#でGUI描いて、ボタン押したらPython呼び出すとかそんな感じ。
wxPythonは機能的にtkInterと差がない。そして最近は触ってないけど以前は環境によって描画が崩れやすかった。あえて使う理由が見当たらない。
0343デフォルトの名無しさん
垢版 |
2019/03/27(水) 10:15:24.09ID:EKdxkz2E
wxPythonいまもつかっててtkつかえない俺が通ります

wxPythonは今も
Windows10やMacだと、それ以外のOSでちょうどよく作った表示がはみ出まっす
0345デフォルトの名無しさん
垢版 |
2019/03/27(水) 11:21:56.96ID:fGhoQOHP
pythonではクラスはメインルーチン外でインスタンス化しないといけないのですか?
http://codepad.org/CNN6VlQ5
var speed = 10
var vel=Vector2()

func _ready():
set_process(true)

func _process(delta):
vel = Vector2(speed,0)
if Input.is_key_pressed(KEY_RIGHT):
translate(vel * delta)

2行目のVector2というのはクラスなんですが(座標を移動させる)、クラスはメインルーチンの外で宣言しないといけないのですか?これはゲームエンジンのpython のような言語です
0347デフォルトの名無しさん
垢版 |
2019/03/27(水) 11:38:48.19ID:fGhoQOHP
ごめんなさい(´;ω
0348デフォルトの名無しさん
垢版 |
2019/03/27(水) 14:56:40.76ID:eZgXpjKy
Brython + WebGL
0349デフォルトの名無しさん
垢版 |
2019/03/27(水) 16:14:12.53ID:iNDLeoBR
pythonの需要が高まるぞ。
政府、AI人材年25万人育成へ 全大学生に初級教育
http://r.nikkei.com/article/DGXMZO42932250W9A320C1SHA000
政府が策定する「AI戦略」の全容が分かった。人工知能(AI)を使いこなす人材を年間25万人育てる新目標を掲げる。文系や理系を問わず全大学生がAIの初級教育を受けるよう大学に要請し、社会人向けの専門課程も大学に設置する。
ビッグデータやロボットなど先端技術の急速な発達で、AI人材の不足が深刻化している。日本の競争力強化に向け、政府が旗振り役を担う。
目玉に据えるのが高等教育へのAI教育の導入だ。年間約50万人いる全ての大学生や高等専門学校生(高専)に初級水準のAI教育を課す。
最低限のプログラミングの仕組みを知り、AIの倫理を理解することを求める。受講した学生には水準に応じた修了証を発行し、就職活動などに生かしやすくする。
そのうち25万人は、さらに専門的な知識を持つAI人材として育成する。初級水準の習得に加え「ディープラーニング」を体系的に学び、機械学習のアルゴリズムの理解ができることを想定する。
「AIと経済学」や「データサイエンスと心理学」など、文系と理系の垣根を問わず、AIを活用できるよう教育を進める。
0350デフォルトの名無しさん
垢版 |
2019/03/27(水) 16:26:16.17ID:sFhHh7mn
ふつうに数学教えれば良いのに
0352デフォルトの名無しさん
垢版 |
2019/03/27(水) 16:58:38.10ID:fGhoQOHP
http://codepad.org/ANRwbEFz
global hensu
def func():
hensu = 2
print(hensu)
func()

hensu = 0
def func():
hensu = 2
print(hensu)
func()

変数にglobalをつける意味はなんでしょうか?
名前だけ宣言する場合はつけなければいけないようですが、なんの意味があるのですか?
最初から2番目のコードのように代入しておけばいいだけなのでは?と思うんですが。それだけでfunc関数から見ればグローバルなのでは?
0353デフォルトの名無しさん
垢版 |
2019/03/27(水) 17:26:22.66ID:nXg/JGzJ
いやなら消して見ろ
0354デフォルトの名無しさん
垢版 |
2019/03/27(水) 17:52:10.42ID:gvQGT8Gj
>>350


文部科学省・経済産業省では、第四次産業革命の進行に伴い、産業界において数学(※1)
のニーズが高まっている現状を受け、「理数系人材の産業界での活躍に向けた意見交換会」を開催しました。
本意見交換会では、数学の産業応用に関する現状や課題を明らかにするとともに、課題の解決や今後の方向性に関する意見交換を行い、
『数理資本主義の時代〜数学パワーが世界を変える〜』として報告書を取りまとめました。

※1ここで言う「数学」は、純粋数学、応用数学、統計学、確率論、さらには数学的な表現を必要とする量子論、素粒子物理学、宇宙物理学なども含む広範な概念。
0355デフォルトの名無しさん
垢版 |
2019/03/27(水) 19:24:17.44ID:fGhoQOHP
グローバル宣言は必要はないのですか?
代入を伴わない変数の宣言はどうするのでしょうか
0356デフォルトの名無しさん
垢版 |
2019/03/27(水) 19:37:48.22ID:c2Vq7PyH
>>355
pythonでは変数の宣言は普通しない

グローバル宣言は関数内でローカル扱いされたくない変数に対してする

x=0
def func():
____global x
____x=2
func()
print(x)

global xを消すとfunc内のxはローカル変数になるので0がprintされる
0357デフォルトの名無しさん
垢版 |
2019/03/27(水) 19:39:02.64ID:fGhoQOHP
↑そういう使い方するんですね ありがとう
0362デフォルトの名無しさん
垢版 |
2019/03/28(木) 01:51:57.12ID:IvEebbBd
お引き取り下さい
0363デフォルトの名無しさん
垢版 |
2019/03/28(木) 09:06:03.66ID:ZvpjPPFU
ディクショナリのキーはイミュータブルのオブジェクトでなくてはならない

これはキーをミューダブルなオブジェクトにしてしまうと、途中でキーのオブジェクトが変わる可能性が出てくるので、ハッシュ関数でキーに対応する値が取り出せなくなるからという理解でええのかね
0364デフォルトの名無しさん
垢版 |
2019/03/28(木) 09:27:18.30ID:BGhBm4PE
>>363
__hash__と__eq__を実装していないか、それらの返す結果に影響のない変化であれば問題はない
Pythonでわざわざそれらを実装するのは稀だからあまり気にしなくていいよ
それより、そんなことが問題になるような複雑なデータ構造を作らないことの方が大事
せいぜいタプルまでだな
0365デフォルトの名無しさん
垢版 |
2019/03/28(木) 17:12:02.48ID:0VXjIdRR
>>336
儂はPyQt使ってるよ。
wxPython→tkinterときて結局、PyQtに落ち着いた。
よくライセンスがGPLでうんぬん言われてるみたいだけど、個人で趣味でツール類作る分には問題ないみたいだから愛用してる。
pyGTKやpyFLTKやKivyは使ってないな。

結局、GUIデザイナーが一番使いやすいからQtに落ち着いたような気がしまっす。
0366デフォルトの名無しさん
垢版 |
2019/03/28(木) 17:16:28.21ID:0VXjIdRR
追伸:tkinter用の使いやすいGUIデザイナあったらtkinterにちょっと戻ってみたい気もするナリ...。
  Komodo's GUI Builder使ってたけど、いまひとつWYSWYGじゃない感じ...

  何か良いGUIデザイナある?
0368デフォルトの名無しさん
垢版 |
2019/03/28(木) 19:18:33.17ID:CIFa9OxT
たとえば(a-pが全部数字として)

[[a, b, c, d, e, f, g, h],
[i, j, k, l, m, n, o, p]]
という並びの行列から
[[[a, b], [i, j]],
[[b, c], [j, k]],
[[c, d], [k, l]],
[[d, e], [l, m]],
[[e, f], [m, n]],
[[f, g], [n, o]],
[[g, h], [o, p]]]
という行列の配列が欲しい時
どういうコードがスマートでしょう?
0371デフォルトの名無しさん
垢版 |
2019/03/28(木) 19:25:09.68ID:hFIlXcK0
>>369-370
世の中にはロゼッタ・ストーンと呼ばれてる石板があってだな
ttps://ja.wikipedia.org/wiki/%E3%83%AD%E3%82%BC%E3%83%83%E3%82%BF%E3%83%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%83%B3

それのプログラム言語バージョン作ろうぜ!ってサイトなので
Pythonのページだけ見ててもあんまり意味ないかもしれない
0372デフォルトの名無しさん
垢版 |
2019/03/28(木) 19:36:49.72ID:b+NMCVwW
>>371
なるほど、ありがとうございます。
コードが大量にあるので写経するにはよさそうでしたが、イメージしていたものと違っていました
0373デフォルトの名無しさん
垢版 |
2019/03/28(木) 22:12:14.50ID:Wtvk2F5L
>>368
Ruby で、N個ずつの重複ありのグルーピングの繰り返しは、

[1, 2, 3, 4].each_cons( 3 ){ |a| p a }

出力
[1, 2, 3]
[2, 3, 4]
0374デフォルトの名無しさん
垢版 |
2019/03/28(木) 22:25:19.56ID:hFIlXcK0
>>368
泥臭いやり方しか思いつかない...

もとの行列をthe_listとすると

the_len = len(the_list[0])
hoge=[[]*(the_len-1)]
for i in (the_len-1):
____hoge[i] = [the_list[0][i], the_list[0][i+1]][the_list[1][i], the_list[1][i+1]]
0375デフォルトの名無しさん
垢版 |
2019/03/28(木) 23:04:59.11ID:LmQzlARy
>>368
|: 2 <\"1 i. 2 8
0378デフォルトの名無しさん
垢版 |
2019/03/28(木) 23:58:20.33ID:P01BWnMB
>>368
>>> def f(x,y):return[[a,b] for a,b in zip(x,y)]

>>> def g(x,y):return f(f(x,x[1:len(x)]),f(y,y[1:len(y)]))

>>> g([1,2,3,4,5],[6,7,8,9])
[[[1, 2], [6, 7]], [[2, 3], [7, 8]], [[3, 4], [8, 9]]]
>>>
0379デフォルトの名無しさん
垢版 |
2019/03/29(金) 00:21:30.28ID:mSt09fG/
>>368
import numpy as np
a = np.array(件の配列)
y = np.repeat(a, 2, axis=1)[:, 1:-1]
y = np.stack(np.split(y, 7, axis=1))
0380デフォルトの名無しさん
垢版 |
2019/03/29(金) 00:26:41.60ID:mSt09fG/
最後の行の7をy.shape[1]//2にした方が一般性あるな
0381デフォルトの名無しさん
垢版 |
2019/03/29(金) 00:50:12.59ID:IpKUA4t/
[(2, 3), (1, 2), 2, 1]を
sorted(lst)で
[1, 2, (1, 2), (2, 3)]
にしたくて調べたところ、tuple、intの継承クラスでltメソッドを定義しろとありますがやってもうまく行かないので完動するソースお願いします。
あ、python3です。
0383デフォルトの名無しさん
垢版 |
2019/03/29(金) 01:05:02.70ID:Vcbtlc+7
1. int・tuple を分離する
2. それぞれをソートする
3. ソート済みのint・tuple を連結する
0384デフォルトの名無しさん
垢版 |
2019/03/29(金) 01:24:31.36ID:IlyYpcx8
>>381
import sys
lst = [(2, 3), (1, 2), 2, 1]
sorted(lst, key = lambda v: v if type(v) == tuple else (-sys.maxsize - 1, v))
#=> [1, 2, (1, 2), (2, 3)]

要件によるけどこれじゃダメか?
0385デフォルトの名無しさん
垢版 |
2019/03/29(金) 11:14:00.02ID:QqxpOyVg
>>379
ありがとうございます
np.split のところだけ np.array_split の方が良さそうです
0386デフォルトの名無しさん
垢版 |
2019/03/29(金) 11:51:53.89ID:HmBCV24x
【速報】金券500円分タダでもらえる   
https://pbs.twimg.com/media/D2yncHWVYAI7F-8.jpg   
    
@タイムバンクをインストール 
iOS: https://itunes.apple.com/jp/app/%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%90%E3%83%B3%E3%82%AF/id1253351424?mt=8   
Android: https://play.google.com/store/apps/details?id=jp.timebank    
A会員登録   
Bマイページへ移動する。     
C招待コード→招待コードを入力する [RirzTu]    

紹介者と紹介された方共に600円もらえます 
今なら更に500円ギフト券を貰った残高からただで買えます。 
貰ったギフティプレモはAmazonギフト券(チャージタイプ)に交換できます(電子マネー払いにて)      
  
数分で出来るので是非ご利用下さい     
0387デフォルトの名無しさん
垢版 |
2019/03/29(金) 18:04:24.53ID:NYOzkE7a
>>386
早速買い物したわ   
0394デフォルトの名無しさん
垢版 |
2019/03/29(金) 20:00:41.67ID:muOdYZOc
過疎地なので、、、(´;ω
0402デフォルトの名無しさん
垢版 |
2019/03/30(土) 13:38:27.55ID:wamXfnLw
>>385
>>379
>>967-968
ありがとうございました
0403デフォルトの名無しさん
垢版 |
2019/03/30(土) 13:43:51.28ID:wamXfnLw
967-968 はアンチRubyスレの番号です
0404デフォルトの名無しさん
垢版 |
2019/03/30(土) 20:33:00.33ID:ysAji/jl
matplotlibで軸がsymlogの時にaspectを変えようとすると
UnboundLocalError: local variable ‘aspect_scale_mode’ referenced before assignment
ってでるけど、これmatplotlibのバグじゃないでしょうか?
0406デフォルトの名無しさん
垢版 |
2019/03/31(日) 00:07:59.29ID:DXRz5cfD
盲目
referenced before assignment
0408デフォルトの名無しさん
垢版 |
2019/03/31(日) 03:07:11.54ID:iz1vdcLS
怖くてPython3をインストールすら出来ていない
プログラミング言語ってコマンドプロンプトから起動したり操作するんだよね?うっかり変なことしてPCの設定が変わったりしないか心配
挫折したらアンインストールしたいけどアンインストールの方法調べてもMacばかりでWindowsのこと書いてないしちゃんとインストール前と同じ環境に戻るか心配
超初心者以前の問題でつまずいているよ
0411デフォルトの名無しさん
垢版 |
2019/03/31(日) 03:49:57.06ID:mUt6la4P
Ruby Installer にはインストールしない、MSYS2 コンパイラ無しのポータブル版もある。
ただし、インストールしていないから、アンインストールもできないので、自分で削除する必要がある。
つまり、システム管理外のアプリとなる

Ruby 2.4 なら、それをダウンロード・解凍して、C:\Ruby24-x64 に置いて、
ruby.exe のある、C:\Ruby24-x64\bin をユーザー環境変数PATH に、自分で追加する

コマンドプロンプトで、where ruby と入力すると、そのパスが表示される。
C:\Ruby24-x64\bin\ruby.exe

これで絶対パスじゃなくても、ruby というコマンド名だけで、ruby.exe が起動できる

PowerShell を起動して、$env:Path.split(";") と入力しても、
環境変数PATHを、; で区切って表示できる

コマンドの実行ファイルは、この表示順で、上から検索される!
0413411
垢版 |
2019/03/31(日) 04:01:39.80ID:mUt6la4P
インストールしたアプリは、システムが把握しているので、アンインストールすべき!
手作業で削除してはいけない!

一方、ポータブル版のように、勝手にダウンロード・解凍して、
どこかのフォルダに自分で置いたアプリは、システム管理外となる

これは、インストールしていないのでアンインストールもできないから、自分で削除する必要がある

ユーザー環境変数PATH にも、自分で追加して、自分で削除する必要がある

インストールする時には、インストーラーが、ユーザー環境変数PATH に追加してくれる場合もある。
アプリによっては、システム環境変数PATH に追加するものもある

ユーザー環境変数なら、そのユーザーだけ。
システム環境変数なら、全ユーザー共通となるので、普通はユーザー環境変数に追加する

インストール前に、PowerShell を起動して、$env:Path.split(";") と入力して、
環境変数PATHを、見ておくのが良い。
それから、ユーザー環境変数PATH に追加後にもう一度見ると、新しく追加されているはず!
0414411
垢版 |
2019/03/31(日) 04:08:12.62ID:mUt6la4P
>>413
修正

>インストール前に、PowerShell を起動して、$env:Path.split(";") と入力して、
環境変数PATHを、見ておくのが良い。

インストール前に、PowerShell を起動して、$env:Path.split(";") と入力して、
環境変数PATHを見て、保存しておくのが良い

見比べるために、一応ファイルに保存しておくのが良い
0416デフォルトの名無しさん
垢版 |
2019/03/31(日) 07:21:28.88ID:faKW9qz1
>>406
自分のソースではなくてMatplotlib のソースコードからエラーが出る
0417デフォルトの名無しさん
垢版 |
2019/03/31(日) 08:19:39.19ID:mUt6la4P
jQuery でも、自分が書いたコードが間違っていれば、
jQuery のライブラリから、エラーが出るよ

自分が書いたコードが、ライブラリのルールに従っていない場合
0418417
垢版 |
2019/03/31(日) 08:24:35.52ID:mUt6la4P
自分が書いたコードの場所では、エラーが出ないが、
それを読み込んだライブラリのどこかで、エラーが起きる

そういう事もある。
間違ったソースコードと、エラーが出る場所の不一致が起きる

この場合、エラーが出る場所よりも前の、自分が書いたコードに間違いがある
0419デフォルトの名無しさん
垢版 |
2019/03/31(日) 08:48:52.97ID:v2pBMWRF
お願いします

現在、Python公式のサイトからインストールしたPython3がWindows入りのPCに入っていて、
それと共にライブラリとして

cycler==0.10.0
kiwisolver==1.0.1
matplotlib==3.0.1
numpy==1.15.3+mkl
Pillow==5.3.0
pyparsing==2.2.2
python-dateutil==2.7.4
scikit-learn==0.20.0
scipy==1.1.0
six==1.11.0

が入っております

これからanacondaをインストールしたいのですが、
anacondaを入れる前に公式サイトからインストールした、あるいはpipでインストールしたものは
全て捨てるように、と注意書きを見付けました

それでこれらのライブラリを捨てる時、
ttps://www.lifewithpython.com/2014/11/python-uninstall-multiple-libraries.html
というサイトを見ると、$ pip uninstall -r uninstall.txt
というコマンド(テキストファイル名は自分で付けたもの)で削除しろとありますが、
このようなファイルはPythonの入っているフォルダに入れるべきでしょうか

それとも、べつのフォルダに入っていてもそこに到るルートも明記する事で
ちゃんと動いてくれるでしょうか

返答をお願いします
0420デフォルトの名無しさん
垢版 |
2019/03/31(日) 08:59:26.93ID:KUHIQC/W
>>408 Python はそんなに怖くないよ。多分君のPCの中にもいくつか知らない間にPython が入っていて何かのアプリで動いてるよ。
0421デフォルトの名無しさん
垢版 |
2019/03/31(日) 09:01:07.51ID:SQp6xgxy
> Pythonの入っているフォルダに入れるべきでしょうか
No

> それとも、べつのフォルダに入っていてもそこに到るルートも明記する事で
> ちゃんと動いてくれるでしょうか
Yes
0423デフォルトの名無しさん
垢版 |
2019/03/31(日) 09:25:01.79ID:mUt6la4P
$ pip uninstall -r uninstall.txt

これは相対パスだろ

絶対パスにすれば?
まあ、相対パスでも表現できるけど、絶対パスなら間違いない
0424デフォルトの名無しさん
垢版 |
2019/03/31(日) 10:06:21.56ID:hLnMjByF
>>> np.linspace(0, 10, 11)
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.linspace(0, 10, 11) * .5
array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
>>> int(np.linspace(0, 10, 11) * .5)
TypeError: only length-1 arrays can be converted to Python scalars
>>> np.int(np.linspace(0, 10, 11) * .5)
TypeError: only length-1 arrays can be converted to Python scalars
>>> list(map(int, np.linspace(0, 10, 11) * .5))
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5]
>>> np.array(list(map(int, np.linspace(0, 10, 11) * .5)))
array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5])

これは map 使わないとだめ?
なんかもっと良い方法ある気がする 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0426デフォルトの名無しさん
垢版 |
2019/03/31(日) 10:54:03.25ID:7TPTbBo7
>>424
a= np.linspace(0, 10, 11) * .5
a=a.astype(np.int32)
0428デフォルトの名無しさん
垢版 |
2019/03/31(日) 12:19:18.53ID:XVK1vXEz
>>418
公式にあるsymlogのサンプルコードにaspectの設定一行足しただけなんです
0429デフォルトの名無しさん
垢版 |
2019/03/31(日) 12:21:24.51ID:v2pBMWRF
419です

お陰様で現在、six以外の全てのライブラリが削除されたようで
pip show 〜 でも見つからなくなりました

ところで、ここからが怖いのです

pip list
で見ると、残っているのは
pipとsetuptoolsとsixなのですが、
sixを捨てることでライブラリ間のバージョン違いを吸収できなくなるのも怖いですが、

pip uninstall pipなんて出来るんでしょうか?

更に pipはsetuptoolsがないと動かないというので本来はsetuptoolsを先にインストールするものだったそうですが、
setuptoolsもどうやってアンインストールするのか分かりません

ここから先は入っているディレクトリから直接消していく、あるいは環境変数から消して行くしかないのでしょうか
お願いします
0430デフォルトの名無しさん
垢版 |
2019/03/31(日) 12:52:32.27ID:pKsv1rxM
その辺はpythonをアンインストールすれば消えるはずだが
site-packagesの下に入ってる奴だろ
0431デフォルトの名無しさん
垢版 |
2019/03/31(日) 12:54:51.98ID:pKsv1rxM
Anacondaを入れようとしているのにsixを捨ててバージョン差異云々も意味不明だ
何を目指してるんだか分からん

Anacondaと公式のPython3を同時にインストールしておきたいのか?
それこそ10年早いからやめとけ
どっちかにしろ
0432デフォルトの名無しさん
垢版 |
2019/03/31(日) 13:38:01.10ID:lDkEr+Aw
>>429 何を恐れてるのか知らないが、OS は何?
多分純正Python をインストールしたフォルダとanaconda がインストールされたフォルダは違うと思うけど?
だったら何も混在することはない。
PATH さえ混在しないようにしておけば、純正Pythonが残ってても何の問題もない。 uninstall の必要すらない。
0433デフォルトの名無しさん
垢版 |
2019/03/31(日) 16:01:31.38ID:iz1vdcLS
Pythonのインストールもといプログラミング言語のインストールはPCのシステムの根幹に影響するものなの?
その辺のフリーソフトをインストールするのとはイメージが違う?
ZIPを解凍して実行ファイルをクリックしたらプログラミングのウィンドウが出て作業開始とはいかないよね
調べれば調べるほど不安になる
0434デフォルトの名無しさん
垢版 |
2019/03/31(日) 16:04:23.82ID:SQp6xgxy
>>433
その辺のフリーソフトでも
インストーラ(exe)使うタイプなんて普通にぼろぼろあるで?

>PCのシステムの根幹に影響するものなの?
Macとかみたいに、システムに予めPython入ってるOSだと、場合によってはね。
0435デフォルトの名無しさん
垢版 |
2019/03/31(日) 16:05:46.96ID:SQp6xgxy
そんなわけなので
ID:iz1vdcLS は
これからPythonしようとしているパソコンなりなんなりのOSの種類とバージョンをまずかけ
0437デフォルトの名無しさん
垢版 |
2019/03/31(日) 17:08:35.73ID:SQp6xgxy
>>436
なら大丈夫だ、
Python3のインストーラをダウソしてきて、
普通のフリーソフトみたいにインストールして、
使って、
挫折したらアンインストールおk
0438デフォルトの名無しさん
垢版 |
2019/03/31(日) 17:12:58.90ID:bSAabfLN
>>408
Visual Studioとかと比べると環境汚さないよ
デフォルト設定だとユーザー配下にインストールされるから他に影響しないし

ただWindows版はライブラリのインストールでハマること多いから
Anacondaの方がオススメかも
0439デフォルトの名無しさん
垢版 |
2019/03/31(日) 17:15:15.80ID:SQp6xgxy
WindowsでAnacondaで何かさらに入れるのはマゾかよほど必要かだろ
Anacondaにするかどうかは、何がしてみたいかによる
0440デフォルトの名無しさん
垢版 |
2019/03/31(日) 17:49:14.21ID:iz1vdcLS
>>437
ありがとうございます
これでようやく超初心者未満から超初心者へ一歩前進出来そうです
>>438
環境汚さないと聞いて安心しました
ありがとう、ライブラリのインストール(pip?)は一先ず自己解決を目指して調べてみます
>>409>>410>>420もありがとう
0441デフォルトの名無しさん
垢版 |
2019/03/31(日) 17:58:58.76ID:SQp6xgxy
>>440
Python3系ならpipは最初からついてくるよ
インストール時に「PATHを通す」オプション(※英語)にチェックいれとけば
コマンドプロンプトから簡単にpipし放題
0442デフォルトの名無しさん
垢版 |
2019/03/31(日) 18:07:17.87ID:v2pBMWRF
>>430-432
お陰様で、anacondaをインストールしてから
condaのパス及びpythonのパスも通して、無事にVS codeから実行したり
qtから実行するのも出来るようになりました

ありがとうございました
0444デフォルトの名無しさん
垢版 |
2019/03/31(日) 18:20:35.35ID:v2pBMWRF
ところで自分が使っている別のPCにはJAVAが入っていて
そこではJython形式のPythonスクリプトが動く某画像処理アプリも入っています

このPCにanacondaなんて絶対に入れない方が良いですよね?
0447デフォルトの名無しさん
垢版 |
2019/03/31(日) 18:47:06.40
>>386
ツイでよく見かけるわ
3月はボロい話が多いな  
0448デフォルトの名無しさん
垢版 |
2019/03/31(日) 19:21:11.30ID:lDkEr+Aw
>>446 そんなもの誰がキックするんだよ。 アプリなんて動かさなければ動くかんよ。
呆れて開いた口が塞がらん。
0450デフォルトの名無しさん
垢版 |
2019/03/31(日) 19:51:01.55ID:SQp6xgxy
誤解の余地がありそうだから...

拡張子が一緒だからJythonと、 Anaconda / Python の共存はめんどくせーとおもうけど、
(たとえばPaintShopProとかAnimator3みたいな)
中身にPython使ってるってだけのexe(アプリ)なら衝突しないのでおk。
0452デフォルトの名無しさん
垢版 |
2019/03/31(日) 23:18:37.27ID:y6i7x1om
そもそも、何故windowsで環境汚してまで、
python使いたいのかが理解できん。
Linuxでやれば、難しい事考える事なく、
Python扱えるのに。
0453411
垢版 |
2019/03/31(日) 23:26:09.75ID:mUt6la4P
例えば「みんなのPython」の前提条件は、
Windows で、今までPython を入れた事がない場合に限り、Anaconda を入れられる!
既に、Python が入っている場合には、出来ません!

この本は初心者用の本だから、環境変数PATH とか、仮想環境とか、
初心者に説明するのは無理なんだよ

Pythonの文法じゃなくて、OSのシステムの話だから、全く違う
0454411
垢版 |
2019/03/31(日) 23:26:44.16ID:mUt6la4P
>>411-414
にも書いておいたが、

まず、Windows には、ユーザー環境変数・システム環境変数の違いがあるので、まずこれを調べる

次には、インストールとポータブル版の違いを調べる。
インストールとはシステムが管理しているものだが、ポータブル版はシステム管理外

次に、コマンドが実行ファイルを探す方法(探索パス)を理解する。
端末で、ruby とか、パス無しのコマンド名が、なぜ実行ファイルを探せるのか

コマンドプロンプトで、where ruby と入力すると、そのパスが表示される。
つまり、ruby というコマンド名で、実行ファイルを探し当てている。
C:\Ruby24-x64\bin\ruby.exe

PowerShell を起動して、$env:Path.split(";") と入力して、環境変数PATHを見る。
これは、ユーザー環境変数PATH・システム環境変数PATH が合成された探索パス

この順番が重要!
この順番で、上から順に、コマンド名の実行ファイルが探される!
「コマンド名 + .exe」のファイル名を探す。
ruby なら、ruby.exe

だから、既にPythonをインストールしている人は、後から探索パスに追加しても、
上にある方の実行ファイルが起動されてしまうわけ

こういうOS のシステムを説明するのが、非常に難しいため、
「みんなのPython」では、既にPythonが入っている環境では、
初心者には、Anaconda は使えないとしている
0456デフォルトの名無しさん
垢版 |
2019/03/31(日) 23:43:27.48ID:y6i7x1om
>>453
申し訳ない。
パッと見て、Python使う前からトラブっている印象
を受けての発言です。
自分としては、使いたいパッケージをpipでちまちま入れて、理解できる範囲で扱う方が良いと考えている
ので、理解できてませんでした。
0457411
垢版 |
2019/03/31(日) 23:44:26.93ID:mUt6la4P
例えば、DB のsqlite3 をダウンロード・解凍して、C:\sqlite3 に置く。
つまりインストールせず、自力で設置する。
これはポータブル版と同じ

そして、ユーザー環境変数PATH に、C:\sqlite3 を追加すると、
端末で、sqlite3 というコマンド名を、パス無しで使えるようになる

コマンドプロンプトで、where sqlite3 と入力すると、その実行ファイルのパスが表示される。
C:\sqlite3\sqlite3.exe

また、PowerShell を起動して、$env:Path.split(";") と入力して、環境変数PATHを見ると、
一番下に、C:\sqlite3 も表示される

これはインストールしていないからアンインストールできないので、
削除する時も、自分で削除しなければならない。
システム管理外のアプリとなる
0458デフォルトの名無しさん
垢版 |
2019/03/31(日) 23:46:25.61ID:qnazkb5e
FXの自動売買ツールを無料で配布しています。
http://hbgvf.blog.jp
0459411
垢版 |
2019/03/31(日) 23:55:13.22ID:mUt6la4P
ほとんどの会社で、システム環境を変えるのを嫌がるわけは、
コマンドの探索パスの順序が変わるかも知れないから

ユーザー環境変数PATH・システム環境変数PATH の説明が難しいから

また、一番下に追加しても、それよりも上で、そのコマンド名が見つかると、
先に見つかった方の実行ファイルが起動されてしまうため

こういう探索パスの順序を説明した本は、ほとんどない
0460デフォルトの名無しさん
垢版 |
2019/04/01(月) 00:56:04.30ID:PICzK0N0
>>456 >>453 みたいな奴の言うことを間に受けるなよ。奴はRuby しか知らないくせにPython スレで荒らしまわってるアラシだからな。

全然怖くないからやって見なはれ。 ただし、インストールするときは、みんなで使える環境にインストールする事。
怖がって自分だけとするとかえって面倒なことになる。
インストールする先は自分で指定しない事。
0462デフォルトの名無しさん
垢版 |
2019/04/01(月) 01:17:59.76ID:xu4jUkcZ
PythonをZIPでDLしてライブラリもpipではなくGitHubからZIPでDLした場合、Pythonにライブラリをインストールするにはどうしたら良い?
とんでもない遠回りをしてる自覚はあります
0463デフォルトの名無しさん
垢版 |
2019/04/01(月) 02:17:11.17ID:WwdHkKwz
Pythonでベクター画像を描くことって出来ませんか?
良い方法があったら教えてエロい人
0464デフォルトの名無しさん
垢版 |
2019/04/01(月) 04:37:42.57ID:lfLraWDr
>>462
そのpythonにpipがついてるならそれ使ってpip install zipすればいい
そうでないならzipを展開してsetup.pyをpythonから実行
0466デフォルトの名無しさん
垢版 |
2019/04/01(月) 09:08:57.41ID:WwdHkKwz
Pythonのランダムって完全ランダムですか?
完全ランダムの作り方教えてエロい人
0468デフォルトの名無しさん
垢版 |
2019/04/01(月) 09:20:05.47ID:ymg/4x83
Windows 10・WSL・Ubuntu 16.04 では、

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

/usr/bin$ file python3
python3: symbolic link to python3.5

pip コマンドが無いけど、どうなってるの?
0469デフォルトの名無しさん
垢版 |
2019/04/01(月) 09:21:57.20ID:NrMbn99G
>>466
全部疑似ランダム。

コンピューターの「ランダム」は本当にランダムなのか?
https://www.zenken.co.jp/blog/engineer/30255
予測ができない、本物のランダムを作るには、以下の方法があります。

@システムのインタラプト信号を利用した/dev/random
(デバイスドライバなどの情報源から集めた環境ノイズを利用して、真の乱数性を得る)

A従来のコンピューターではなく、量子コンピューターを用いた量子乱数
(量子物理学を用いる)

これらを利用すれば、暗号学的に完全な乱数が作られるので安心して使えます。
0471デフォルトの名無しさん
垢版 |
2019/04/01(月) 09:30:12.80ID:WwdHkKwz
>>469
ありがとうございます。
僕が考えたのは乱数を生成する度にtime関数でシードを与えるという方法なんですが
まだ甘いですか?完全ランダムとは言えませんか?
優秀なハッカーにかかればこの方法で作ったパスワードは破られますかね。。。
0473デフォルトの名無しさん
垢版 |
2019/04/01(月) 09:57:33.06ID:WwdHkKwz
>>472
量子コンピュータなんて個人で使えませんやん

>デバイスドライバなどの情報源から集めた環境ノイズを利用して、真の乱数性を得る
これを簡単に実現する方法ってありますか?
0475デフォルトの名無しさん
垢版 |
2019/04/01(月) 10:03:35.98ID:82uuXA8G
>>466
pythonでもCでも多分、疑似乱数。
タネの値からxorなんかを繰り返して乱数を作ってるはず。
完全乱数を手軽に作るのってみんなどうしてるのかね?
俺が8bit PICマイコンで乱数作る実験した時にはダイオード使ってやってみたかな?
FMラジオのホワイトノイズなんかも利用できそう。
ノイズ源→カウンタ→インターフェイス(USARTなど)→Python(pyserialなど)で
マイコン使えばできるかな?

【参考】
ttp://www.hitachihyoron.com/jp/pdf/1972/10/1972_10_09.pdf
0477デフォルトの名無しさん
垢版 |
2019/04/01(月) 10:20:21.90ID:82uuXA8G
>>476
下らないことだったり、技術的に製品化されてるようなものでも『自分で作ってみよう』というのは結構面白いですよね。

もし、ハード系が苦手なようでしたら、
FMラジオをマイク端子につなげる→ラジオを「ザー」になるようにチューニングする→音声を取り込んでデータ化する
→一定時間に何回録音レベルが閾値を超えたか数える→欲しい乱数の最大値の数+1で割って余りを採用する。
こんなかんじでしょうか?

私はソフトで信号解析プログラムを作るより、ちょっとしたマイコン回路を作るほうが得意なので、オペアンプとPICマイコン
あたりを組み合わせてシリアル通信でパイソン側に読ませちゃいますね。
0478デフォルトの名無しさん
垢版 |
2019/04/01(月) 10:45:11.53ID:WwdHkKwz
>>477
ありがとうございます。
大変勉強になります。
ハード系は全然知識ないっす。
ラジオとマイクで実験してみたいと思います。
0479デフォルトの名無しさん
垢版 |
2019/04/01(月) 11:00:33.96ID:82uuXA8G
>>478
リアルタイム性を求めないのであれば一度WAVファイルに録音して解析するのが簡単そうです。
ちょっとぐぐってみましたが、waveモジュールというのがあるみたいです。
【参考】
ttps://algorithm.joho.info/programming/python/wave-plot/

FMラジオのホワイトノイズを録音してこのサンプルソースのdata変数(多分整数のリスト型?)を
値を整数値に足したり割ったり剰余してみて整形して乱数のリストにする でどうでしょうか?

変法で偶数なら0,奇数なら1として二進数化して、8bitづつ取り出すという方法もできそうです。

自分で実験してないので無責任ですみません。
個人的にはつらつらとリアルタイムに乱数を吐き出す方がロマンありそうですが....
0480デフォルトの名無しさん
垢版 |
2019/04/01(月) 11:11:55.18ID:WwdHkKwz
ありがとうございます。
標準モジュールでできるんですね!!
まずは録音したwavで頑張ってみます。
0481デフォルトの名無しさん
垢版 |
2019/04/01(月) 11:15:30.23ID:82uuXA8G
追伸です
他にもPyAudioっていうライブラリもあるみたいです。
こっちの方がリアルタイム性が高そうです。
0483デフォルトの名無しさん
垢版 |
2019/04/01(月) 14:08:43.84ID:QUlyRw/u
>>463
matplotlib
0484デフォルトの名無しさん
垢版 |
2019/04/01(月) 14:59:26.00ID:I7CS/MIX
https://python-graph-gallery.com/370-3d-scatterplot/

上記の様な図で、
重みを視覚化したいです。正方形や長方形の様な形に変更するには
どうしたら良いでしょうか?

教えて下さい
0488デフォルトの名無しさん
垢版 |
2019/04/01(月) 15:55:44.85ID:IS1vKK/H
ウィンドウをアクティブにはできますが最前面にできません。
例えば下のやり方でfirefoxがアクティブになりますが、あらかじめその上にメモ帳を開いておくとメモ帳が手前に表示されたままです。
どうしたら最前面にできますか?
AHKしか使ったことがないので端折らないで説明してもらえるとありがたいです。

import pyautogui
import win32gui
import ctypes
from time import sleep


def activate():
hWnd = win32gui.FindWindow("MozillaWindowClass",None)
print(hWnd)
if hWnd is not 0:
win32gui.BringWindowToTop(hWnd)
sleep(0.5)
win32gui.IsWindowEnabled(hWnd)
sleep(0.5)
win32gui.SetActiveWindow(hWnd)
sleep(0.5)
win32gui.SetForegroundWindow(hWnd)
sleep(0.5)
ctypes.windll.user32.SetForegroundWindow("MozillaWindowClass",None)
sleep(0.5)
ctypes.windll.user32.SetActiveWindow("MozillaWindowClass",None)
sleep(0.5)
pyautogui.hotkey("ctrl","tab") #右のタブに移動(firefoxがアクティブになってるかの確認用)
else:
print("firefoxがないよ")
a=activate()
0489デフォルトの名無しさん
垢版 |
2019/04/01(月) 15:58:22.33ID:IS1vKK/H
あれ?インデントがなくなったので張りなおしてみます!

import pyautogui
import win32gui
import ctypes
from time import sleep


def activate():
hWnd = win32gui.FindWindow("MozillaWindowClass",None)
print(hWnd)
if hWnd is not 0:
win32gui.BringWindowToTop(hWnd)
sleep(0.5)
win32gui.IsWindowEnabled(hWnd)
sleep(0.5)
win32gui.SetActiveWindow(hWnd)
sleep(0.5)
win32gui.SetForegroundWindow(hWnd)
sleep(0.5)
ctypes.windll.user32.SetForegroundWindow("MozillaWindowClass",None)
sleep(0.5)
ctypes.windll.user32.SetActiveWindow("MozillaWindowClass",None)
sleep(0.5)
pyautogui.hotkey("ctrl","tab") #右のタブに移動(firefoxがアクティブになってるかの確認用)
else:
print("firefoxがないよ")

a=activate()
0491デフォルトの名無しさん
垢版 |
2019/04/01(月) 16:17:35.96ID:bzrp4n7u
SetForegroundWindow
SetActiveWindow

この二つは使わない

MoveWindow
0492デフォルトの名無しさん
垢版 |
2019/04/01(月) 16:21:01.18ID:bzrp4n7u
ごみん
SetWindowPos
HWND_TOPMOST
0494デフォルトの名無しさん
垢版 |
2019/04/01(月) 17:21:36.67ID:8IW2Ec9K
完全なる初心者なのですが、上達の近道としてまずは自分のサイト??を作ってカスタマイズして行くのが手っ取り早いでしょうか
一応、xserverとは契約してありますので、flaskやdjangoなどで始めようかと考えています
0496デフォルトの名無しさん
垢版 |
2019/04/01(月) 17:41:31.90ID:A39OWd1J
>>494
そもそも何を作りたいのか、なんでpythonを覚えたいのか
webサイト作りたいならphpの方が楽だよ

webサイト覚えつつpython・・・は正直止めたほうが良い。学習コストが高くなるだけ
0497488
垢版 |
2019/04/01(月) 17:50:37.46ID:IS1vKK/H
>>492
ありがとうございます。


最初に↓を追加
import win32con

If文の下に↓を追加しました
win32gui.SetWindowPos(hWnd,win32con.HWND_TOPMOST,0,0,0,0,win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)


エラーも出ませんが最前面にもなりません。
どこか間違ってるでしょうか?
0499デフォルトの名無しさん
垢版 |
2019/04/01(月) 18:56:46.11ID:WwdHkKwz
>>483
ありがとうございます。
matplotlibでSVGとかのベクター画像に書き出しってできるのですか?

>>485
ありがとうございます。
os.urandom
調べて見たらPythonの乱数は標準でこれを使ってて
対応してない場合はtimeを使うと書いてるサイトがありました
Pythonって優秀なんですね!!
0500デフォルトの名無しさん
垢版 |
2019/04/01(月) 20:22:56.00ID:mO7Iiqmy
なんか根本的に分かって無いんじゃないか?
擬似じゃない、こういうマジモンのデバイスも開発中だよ

原子核崩壊を用いた乱数発生器、IoT時代の必須デバイスに | 日経 xTECH(クロステック)
ttps://tech.nikkeibp.co.jp/dm/atcl/column/15/120100084/120200004/
0503デフォルトの名無しさん
垢版 |
2019/04/01(月) 21:50:23.97ID:vHH72vdW
>>466
擬似乱数だがメルセンヌツイスターなので擬似乱数の中では悪く無い方
0504デフォルトの名無しさん
垢版 |
2019/04/01(月) 22:05:13.82ID:WwdHkKwz
>>503
そのようですね。
メルセンヌツイスターのアルゴリズムは僕には理解できませんでしたがw

numpyとかの乱数アルゴリズムも同じものなんでしょうか?
0505デフォルトの名無しさん
垢版 |
2019/04/01(月) 22:08:51.56ID:NO9OwW0c
1,1,1,1,1
とか出ても泣くなよ
完全な乱数だからこそ起こり得る

だからみんな擬似乱数に頼ってる訳でね
0508デフォルトの名無しさん
垢版 |
2019/04/02(火) 05:54:52.30ID:gBvXhrn2
配列があります
a=[1,2,3,4,5]
こいつを
12345
という数値にしたいのです

いい方法があったら教えてください。
0510デフォルトの名無しさん
垢版 |
2019/04/02(火) 06:58:38.20ID:CvY8tC6O
from functools import *
from math import log10

a=[1,2,3,4,5]
b=reduce(lambda x,y:y+x*10**(int(log10(y))+1),reversed(a))

もっといいやり方がいくらでもありそう
0511デフォルトの名無しさん
垢版 |
2019/04/02(火) 07:02:28.38ID:vnq7A+eD
>>508
int(‘’.join(map(str, a)))
0512デフォルトの名無しさん
垢版 |
2019/04/02(火) 07:33:10.79ID:gBvXhrn2
>>511
おお、シンプルですばらしい。
ありがとうございます。
処理もforやifを使わないので早いですね。

>>510さんもありがとうございます。
難しそうなライブラリ使ってますね。
配列の要素毎に10を掛けて桁を調整して合計してるのかな?
難しい。。。
0514デフォルトの名無しさん
垢版 |
2019/04/02(火) 08:03:00.15ID:ktdvkELe
文字列にしてから整数にすれば良いと思う。

b=''
a=[1,2,3,4,5]
for i in a:b+=str(i)
print(int(b))
0515デフォルトの名無しさん
垢版 |
2019/04/02(火) 08:23:27.64ID:gBvXhrn2
>>513
wwwww
if文ってこういう表記のしかたもできるんですねw
こういう表記ってなんて言うんですか?

>>514
おお、ありがとうございます!!
こちらもシンプルですね。
>>511さんのコードと比較しましたが
速度はまったく同じでした。
forを使っても遅くならないのですね。
0516デフォルトの名無しさん
垢版 |
2019/04/02(火) 08:32:46.28ID:Vs75GbqA
b=0
a=[1,2,3,4,5]
for i in a:b=b*10+i
print(b)
0517デフォルトの名無しさん
垢版 |
2019/04/02(火) 08:33:24.41ID:/q81pfPO
後置ifで、perlで初めて見た
forも後置できるようなふいんきもあったがperlではそれは出来なかった
0518デフォルトの名無しさん
垢版 |
2019/04/02(火) 08:40:52.84ID:gBvXhrn2
>>516
うぉおおお
ありがとうございます。
速度計測したら一番早かったっす!!

>>517
後置ifって言うんですか!
勉強になりました。

内包表記の様に速度が速くなったりはしないみたいですね。
0519デフォルトの名無しさん
垢版 |
2019/04/02(火) 10:07:58.36ID:USFH8Mum
C系言語で言う三項演算子だね。
condition ? A : B
がPythonでは、
A if condition else B
となる。
conditionが真のときA、偽のときBになる式(Expression)
0521デフォルトの名無しさん
垢版 |
2019/04/02(火) 12:24:56.41ID:5+C+zQyU
疑似乱数だと 1,1,1,1 とかは出ないよな
0%
本物の乱数なら 0% ではない
この違いは大きい
0522デフォルトの名無しさん
垢版 |
2019/04/02(火) 12:31:23.80ID:5+C+zQyU
> 516
functools.reduce(lambda a, b: 10*a+b, [1,2,3,4,5])
0523デフォルトの名無しさん
垢版 |
2019/04/02(火) 14:23:55.35ID:uhL2EIxw
cannot import name "xx" となった場合には同じ名前のファイル名を変更するとエラーがきえるようなのですが、相変わらずエラーをはいてしまいます

考えられる原因は分かりますか
0527デフォルトの名無しさん
垢版 |
2019/04/02(火) 14:58:56.35ID:5h6Mpqem
>>523
ジッサイノimport文とフォルダ構成書いて
あと、__init.py__はありますか
0528デフォルトの名無しさん
垢版 |
2019/04/02(火) 17:04:02.29ID:v4Q8SbqT
youtubeのチュート見ながらコード入力してるんですが、1画面だと行ったり来たりが大変です。どうしたらいいですやろうか
0529デフォルトの名無しさん
垢版 |
2019/04/02(火) 17:15:53.04ID:DUIYqp7M
より安全のためには、secrets を使いなさいと書かれてるぞ。
https://docs.python.org/ja/3/library/secrets.html?highlight=secret#module-secrets

secrets --- 機密を扱うために安全な乱数を生成する
バージョン 3.6 で追加.

乱数
secrets モジュールは OS が提供する最も安全な乱雑性のソースへのアクセスを提供します。

class secrets.SystemRandom
0530デフォルトの名無しさん
垢版 |
2019/04/02(火) 17:21:30.90ID:DUIYqp7M
>>494 なんでサイトを作る必要性があるんだよ。 何を勉強したいの?
python の勉強をしたいんだろ?
初心者用の本でも読んだら? UI もやりたければ kivy とかUI が記述されてるものを読む。
サーバーサイドのアプリを作るつもり?
0532デフォルトの名無しさん
垢版 |
2019/04/02(火) 18:48:53.15ID:2czOBGaZ
ハードウェア乱数は回路特性や個体差による偏りを避けるのが非常に難しいので質はよくないのが一般的
暗号に使うような乱数は普通のアルゴリズムでは容易に解析されるので駄目
DESなどの暗号化アルゴリズムを通し、通す前のデータも推測が困難なものを用意しないと駄目
0533デフォルトの名無しさん
垢版 |
2019/04/02(火) 19:11:48.00ID:zdX00lQq
なんでPython の公式ドキュメントを読まないんだろ。
https://docs.python.org/ja/3/library/random.html

random は、わざわざ赤字枠で

警告 このモジュールの擬似乱数生成器をセキュリティ目的に使用してはいけません。セキュリティや暗号学的な用途については secrets モジュールを参照してください。

とはっきり書かれてるのに、
0534デフォルトの名無しさん
垢版 |
2019/04/02(火) 19:41:05.05ID:v4Q8SbqT
15パズルの作り方おしえてくだちい
0537デフォルトの名無しさん
垢版 |
2019/04/02(火) 21:20:06.33ID:Vs75GbqA
1234
5678
9ABC
DEF_
動かしたい文字を指定して_と入れ替える
0538デフォルトの名無しさん
垢版 |
2019/04/02(火) 21:37:38.48ID:wAuLgRoA
Tkinterで画像や図形を回転させるにはどうしたらいいの?
困ってます。誰かお助けを〜
0539デフォルトの名無しさん
垢版 |
2019/04/02(火) 21:38:53.33ID:wAuLgRoA
Tkinterで画像や図形を回転させるにはどうしたらいいの?
困ってます。誰かお助けを〜
0541デフォルトの名無しさん
垢版 |
2019/04/02(火) 23:49:35.36ID:erJYBDt6
誰か教えて
0542デフォルトの名無しさん
垢版 |
2019/04/03(水) 00:21:31.77ID:5VkdCwYU
>>528
ちゃんとやる気があるなら、はした金をけちらずに入門書の一冊くらい買った方がいいぞ。
0547デフォルトの名無しさん
垢版 |
2019/04/03(水) 05:55:51.06ID:X0z4NnXI
>>510
成金プログラミング
0548デフォルトの名無しさん
垢版 |
2019/04/03(水) 06:27:41.79ID:5Stw3nSC
Pythonからwindowsの電源を落としたり、スリープさせたり、復帰させる方法教えてエロい人
0550デフォルトの名無しさん
垢版 |
2019/04/03(水) 07:21:22.65ID:5Stw3nSC
>>549
スリープからの復帰はできませんか?
0552デフォルトの名無しさん
垢版 |
2019/04/03(水) 07:47:00.37ID:xJgAab/L
>>547
510だけど正直log10は頭悪いと思った
522さんのようなことがしたかった

ただ、文字列連結してint化するとか、forを回すほうが富豪的発想だと思うよ…

今朝の脳みそでやるなら
sum([10**x[0]*x[1] for x in enumerate(reversed(a))])
かなあ
0555デフォルトの名無しさん
垢版 |
2019/04/03(水) 08:28:25.21ID:5Stw3nSC
復帰しません。。。
0556デフォルトの名無しさん
垢版 |
2019/04/03(水) 08:38:28.45ID:0FHlYbf3
>>555
そりゃわるかったなハゲ
ctypes.windll.kernel32.SetThreadExecutionState(0x800000)
でどうだハゲ
でもスリープしてたらいつまでたっても↑のコマンド実行されないとおもうんぞwwwwハゲwwwww
0557デフォルトの名無しさん
垢版 |
2019/04/03(水) 08:40:14.44ID:5Stw3nSC
だめですが。。。
0558デフォルトの名無しさん
垢版 |
2019/04/03(水) 08:51:21.84ID:0FHlYbf3
スリープしたら処理が全部止まるから、
time.sleepとかつかって一定時間後復帰させようとしても
そもそもPythonがとまってるっていうwww
だから復帰は(普通)手動しかないっていうwww

遠隔復帰させたいなら、
ポート開けておいて
マジックパケット送ったらサスペンドやめるように設定しておくとかが一般的らしいっていうwww
0560デフォルトの名無しさん
垢版 |
2019/04/03(水) 08:56:21.74ID:5Stw3nSC
私の使ってるフリーソフトは復帰可能です。。。
どうすればPythonでも可能になるのですか?
0561デフォルトの名無しさん
垢版 |
2019/04/03(水) 09:27:47.11ID:0FHlYbf3
フリーソフトとやらでできるのなら、BIOSは問題ないようだな

pypi32をインスコ

win32service
win32serviceutil
win32event
の使い方を覚える

で、復帰できるようになるぞ。たぶんな。

SetWaitableTimerとかCancelWaitableTimerの使い方覚えるのは最低限必要
あと
ctypes.windll.PowerProf系のどこか
0562デフォルトの名無しさん
垢版 |
2019/04/03(水) 09:35:06.12ID:5Stw3nSC
ありがとうございます。
たかが復帰するだけなのに面倒くさいのですね。。。
マイコンの勉強をして指定の時間にキーボードのキーを押して復帰させるほうが簡単そうですね。。。
0563デフォルトの名無しさん
垢版 |
2019/04/03(水) 09:40:29.34ID:5Stw3nSC
調べてみたらマイクロボットプッシュという商品がありました。。。
0565デフォルトの名無しさん
垢版 |
2019/04/03(水) 09:49:07.32ID:0FHlYbf3
スリープ移行を抑制したいだけなら
ctypes.windll.kernel32.SetThreadExecutionState(0x80000001)
でできるんだがな
0566デフォルトの名無しさん
垢版 |
2019/04/03(水) 09:52:45.86ID:5Stw3nSC
PC作業の自動化を考えてるのですが
節電のためにスリープにしたいのです。。。
決まった時間に復帰したいと考えてます。
0567デフォルトの名無しさん
垢版 |
2019/04/03(水) 11:21:27.91ID:5oFsk66Q
tkinterなら教えるが
0568デフォルトの名無しさん
垢版 |
2019/04/03(水) 11:37:13.03ID:5Stw3nSC
教えてくだしゃあ
tkinterって画像や図形を回転する事ってできます?
Pillowとか使わないとできないですかね?

あと、図形や画像を半透明にしたり、図形を描画する時にジャギーがかかるんですけど
アンチエイリアス掛けたりできませんか?

Pythonで簡単なアニメーションを作りたいと考えてるんです。。。
別のライブラリの方が適してますか?
0569デフォルトの名無しさん
垢版 |
2019/04/03(水) 11:40:34.07ID:5oFsk66Q
まるちんこしてるみたいだから教えるのやめるわ
0570デフォルトの名無しさん
垢版 |
2019/04/03(水) 11:53:00.68ID:5Stw3nSC
ん?何言ってるのかわからん
0571デフォルトの名無しさん
垢版 |
2019/04/03(水) 12:33:37.28ID:/cw++oNj
マルチポストのことじゃないかな。
回答者は答えたのがバカみたいなので嫌う傾向がある。
0572デフォルトの名無しさん
垢版 |
2019/04/03(水) 12:53:51.44ID:5Stw3nSC
マルチポストなんてしてませんがw
ID:5oFsk66Qは荒らしだと思われます。
そもそも、Pythonスレなんてここともう一つくらいしかないですよ
0575デフォルトの名無しさん
垢版 |
2019/04/03(水) 15:45:23.80ID:vDvCcXyC
572
自分を顧みることすらせず
相手を荒らしと決めつけ
逆に激しく攻撃する
これこそ火病
朝鮮人かこいつ
0577デフォルトの名無しさん
垢版 |
2019/04/03(水) 16:39:25.94ID:gMHQEYxM
本当に困ってますのでどなたか助けていただけますと幸いです。
0578デフォルトの名無しさん
垢版 |
2019/04/03(水) 16:58:42.87ID:Bn86U5ll
tkinterでフォントファイルのパスを使ってフォント指定する事はできますか?
システムにフォントをインストールして使うのは嫌です!
0579デフォルトの名無しさん
垢版 |
2019/04/03(水) 17:10:39.22ID:Bn86U5ll
578
mac,windows間で使いたかったけど、調べたらできないって出てきたからやっぱりいいです!ありがとう
0580デフォルトの名無しさん
垢版 |
2019/04/03(水) 19:36:25.11ID:5Stw3nSC
>>575
荒らしじゃないと言い張るなら
マルチした証拠をだせよバーカ
URL貼りなさい
0581デフォルトの名無しさん
垢版 |
2019/04/03(水) 20:10:48.02ID:YPQocgCC
自分の書いてるコードに不安があるんですがコード晒してレビュー貰うみたいなことできるとこどこかないでしょうか
0582デフォルトの名無しさん
垢版 |
2019/04/03(水) 20:18:05.43ID:Kr7AuJYU
>>581
会社に勤めてプルリクして貰えば?
というか動けば良くない?
つまらないコーディング規約に縛られてプログラミングするなんてつまんないぼ
0585デフォルトの名無しさん
垢版 |
2019/04/03(水) 20:42:11.74ID:5Stw3nSC
フリーソフトとして公開すればバグ報告もらえるよ
0586デフォルトの名無しさん
垢版 |
2019/04/03(水) 20:53:20.32ID:YPQocgCC
>>582
学生時代プログラミングやってましたで就職して派遣先で働いてるんですが現場の開発者が自分だけなのでレビューとかが無いんです
動くものは作れるんですが設計の際にクラス間の責任をどうするかとかこの場合どう実装するのが可読性や再利用性が良いのかとか、ある程度気にして書いてるつもりなんですが井の中の蛙のような気がしてストレス貯まるんですよね…
0588デフォルトの名無しさん
垢版 |
2019/04/03(水) 23:30:06.62ID:4XO/CSdW
文法チェックなら、各言語に、Lint みたいなツールがあるはず

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

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

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

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

ほとんどのフレームワークが、Rails を基礎としているのは、そういう理由
0592デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:03:07.17ID:evLvGSW5
a=[1,2,3]
a.append([4,5])
これでアペンドできますが、リストにアペンドできるものって数字のリストだけなんですか?
どういった種類があるか教えてください。
ゲームエンジンを使ってるんですが、シーンのインスタンスをアペンド出来るです。
0594デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:17:11.31ID:ujCmteOm
ドキュメントも読まなきゃ
0595デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:28:33.01ID:evLvGSW5
あい
0596デフォルトの名無しさん
垢版 |
2019/04/04(木) 12:28:49.81ID:evLvGSW5
15パズルのロジックを超簡単に教えてください
概念的なものです
0597デフォルトの名無しさん
垢版 |
2019/04/04(木) 13:22:34.49ID:1Q0DXPVq
まぁクソ単純な配列操作じゃね
要するに4x4の配列に1〜16までの数列割り振って16番を操作キャラとして考えて
16番を上下左右に移動させようとした時、移動先の配列が存在するかを判定
盤からはみ出さないなら移動先の配列に書かれた数字と16番を入れ替えるってのを繰り返すだけじゃね?

最初のシャッフルは16番を乱数移動で1000回くらい移動させれば破綻なく混ざると思う
0598デフォルトの名無しさん
垢版 |
2019/04/04(木) 14:24:13.52ID:ly6XgvBu
適当にシャッフルすると解けないパターンあるから
あくまで移動をランダムにする
0599デフォルトの名無しさん
垢版 |
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)
0600デフォルトの名無しさん
垢版 |
2019/04/04(木) 15:04:30.61ID:WSmaK6Af
soup.select('a.hogeclass')
0602デフォルトの名無しさん
垢版 |
2019/04/04(木) 15:27:51.48ID:I9XLKTGd
お、解決いたした
参考までに書くと
aタグ自体は既に抽出できているのでその後のhref値を取り出せば良く
それはhref=class_list[i].attrs['href']でいけた
実はそのURLも見てはいたんだが頭が働いてなかったみたいで今見返して理解した感じ
本当に助かったありがとうございます
0603デフォルトの名無しさん
垢版 |
2019/04/04(木) 16:42:46.14ID:evLvGSW5
>>597
わからぬい
0604デフォルトの名無しさん
垢版 |
2019/04/04(木) 17:15:21.70ID:ddTv14P9
質問なのですが、tkinterでコンボボックスをつくり、そのボックスにある選択肢をapple, beef, chickenとし、appleを選べば1、beefを選べば2、chickenを選べば3と表示するプログラムを書きたいのですが、どういったイベントを規定するコードを書けばいいか教えてもらえますか?
0605デフォルトの名無しさん
垢版 |
2019/04/04(木) 17:51:36.17ID:AS0nQCUM
>>592
なんでもappend出来るがそれだと[1,2,3,[4,5]]になる
もし[1,2,3,4,5]にしたいならa.extend([4,5])
0606デフォルトの名無しさん
垢版 |
2019/04/04(木) 19:32:05.03ID:evLvGSW5
idleって一画面に統合できないのですか?
0613デフォルトの名無しさん
垢版 |
2019/04/05(金) 07:00:28.59ID:7aJ6EfcK
pycharmはコミュニティ版があるのがいいね
あれだけ高機能なIDEがただで使えるのはええわ
0614デフォルトの名無しさん
垢版 |
2019/04/05(金) 08:15:49.82ID:NlhXm2eb
言うほど高機能か?
Web開発ができなかったりとか機能削られまくってるしプラグインも使えない
所詮は客寄せの評価版だぞ
professional買うならともかく、community使うくらいなら断然vscodeのほうが上や
0619デフォルトの名無しさん
垢版 |
2019/04/05(金) 13:29:53.79ID:Cy9dd+PS
987654って数値があった時、特定の位の数値のみを取り出したいんだけど
文字に変換しないよい方法ってありませんか?
0620デフォルトの名無しさん
垢版 |
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を一つにまとめたい
0630デフォルトの名無しさん
垢版 |
2019/04/05(金) 17:06:55.98ID:fBA+S4b3
>>621 そもそも ^ はPythonでは論理積だぞ。 べき乗なら ** 。 mod やfloor だって標準関数じゃないし。何言語を想定してるんだよ。 Python も動かせない奴が回答するなよ。
0631デフォルトの名無しさん
垢版 |
2019/04/05(金) 17:40:25.90ID:G2NqkZ6v
てか、>>619程度の算数がわからんようではプログラミングなんてとても無理じゃないか?w
0633デフォルトの名無しさん
垢版 |
2019/04/05(金) 18:30:16.81ID:fBA+S4b3
>>622 お礼を言う方も言う方だよ。 どんな場所にいたか知らないが、このくらいは自分で確認すれば動かない事くらい解っただろうに。
世の中には詐欺師が沢山いるんだから、自分で確認したこと以外は信用するなよ。 特にプログラマーだったら。

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

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

ところで何歳でどんな経験があって今Python をやろうとしてるんだ?
適性と言うのもあるから、やってることが正しいかどうか人の意見を聞いてみるのもいいかもよ。
0644デフォルトの名無しさん
垢版 |
2019/04/05(金) 20:16:25.49ID:MEdBpv++
>>638
速くはないよ。
ただ、その差異が問題にならない箇所で、コードの意図を自然に明記に記述するためにあえて遅い方を選択することもある。
ケースバイケースだよ。
0646デフォルトの名無しさん
垢版 |
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 になり、全く解答になっていない。
0647デフォルトの名無しさん
垢版 |
2019/04/06(土) 01:16:15.72ID:yyDZS6P1
>>621は正しいアルゴリズムを示した
>>626はそのPythonでの正しい実装を示した
質問者の疑問は解消した
他の連中は難癖付けて喚き散らしながら糞を垂れた
0649デフォルトの名無しさん
垢版 |
2019/04/06(土) 05:46:08.51ID:1pyrGwe+
変数とプロパティは同じと思っていいんですか
プロパティ=メンバ変数?
あ?
0650デフォルトの名無しさん
垢版 |
2019/04/06(土) 09:26:56.16ID:9IkbKopt
>>649
>プロパティ=メンバ変数?
そう

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

>あ?
な?
0652デフォルトの名無しさん
垢版 |
2019/04/06(土) 11:16:32.35ID:ABRVPIaD
あくまで数式を書いたまでだよ
どうPythonで実装するかは好きにしたらいい(震え声)
0653デフォルトの名無しさん
垢版 |
2019/04/06(土) 11:25:37.81ID:FcZeCs1O
>>652 アルゴリズムとしても間違ってるだろ。 プログラム板で、整数と浮動小数の区別もつけないアルゴリズムなんて全く存在価値はない。

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

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

この辺りは定義の問題だから瑣末な問題かと思うよ
0664デフォルトの名無しさん
垢版 |
2019/04/06(土) 15:45:37.23ID:t4iABxtY
まぁでも自分の課題で勝手に右端を0桁目とかたわけた定義してきたら怒るな
間違いなくw
0666デフォルトの名無しさん
垢版 |
2019/04/06(土) 16:18:51.83ID:7tGee9uO
>>664 そうか? >>626 でわざわざ誤解を招かないように、0〜9までの桁を作り回答まで出してて誰が誤解するんだろ? それが理解できなければ知らん。

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

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

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

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

opencvインストールしてこれを書いても別ウインドウ開かなかったんですが、何がだめなんでしょうか?
vscode使用です
実行すると自動的に起動するのかなとおもったんですが
0672デフォルトの名無しさん
垢版 |
2019/04/06(土) 17:54:24.45ID:Mn11yHOy
>>619
「位の数」で桁の位置を指定すればいいんじゃないの
0673デフォルトの名無しさん
垢版 |
2019/04/06(土) 18:40:24.67ID:V8TVt+EN
>>669
グラフの表示や .ipynb のインポート/エクスポートだってできるぞ
今月のSoftware Design買って読むといい
0674デフォルトの名無しさん
垢版 |
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のみを抽出したいです。
どなたかお助け下さい
0677デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:29:26.69ID:HvitwzZ2
>>619です。
皆さん、ありがとうございます。
Pythonを熟知した方でも見解が分かれるほど難しい問題なのですね。
速度を自分で計測したら文字に変換した方が早いという意外な結果になってしまいました。
0678デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:31:14.07ID:1pyrGwe+
>>671
一瞬しか表示されないですが、なんとなくできました
0679デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:38:20.55ID:O+y/8osN
>>676
ありがとうございます。
findでclass_を指定する方法とかは見つかるんですがnameを指定する方法が見つからなくて困っている状況です。
hoge=soup.find('name="hoge1"')みたいに書いてname="hoge1"という文字列で判定させる感じなのでしょうか・・・
本当に分からないです、URLでもいいので教えてくれませんか
本当にごめんなさい
0680デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:41:58.94ID:LtpcIU8C
>>674
input = soup.select("input[name = 'hoge1']")
value = input.attrs['value']

pythonは実はよく分からないのでこれで動くか自信がないけど、
要するに input タグで name = hoge1 という属性を持つ要素を特定し、その要素から value の値を取得。
0682デフォルトの名無しさん
垢版 |
2019/04/06(土) 19:54:50.79ID:O+y/8osN
>>680
1行目のコードで
[<input name="hoge1" value="value1"/>]
の抽出には成功しました。ありがとうございます。
2行目は
AttributeError: 'list' object has no attribute 'attrs'
でエラーでした。
リスト型がattrs使えない(?)ってことでしょうか
0683デフォルトの名無しさん
垢版 |
2019/04/06(土) 20:01:46.80ID:LtpcIU8C
>>682
select が返すのはリスト型なんだね。
for 文を使えばいいのかな。例示のhtmlコードだとリストの中身が一つだけになる。
0684デフォルトの名無しさん
垢版 |
2019/04/06(土) 20:04:17.62ID:O+y/8osN
>>680
何度も質問すみません・・・
1行目の文なのですが、"input"のみでinputタグの指定を意味していて
その中にある[name='hoge1']で更に範囲を狭めているってことなんでしょうか
これは他の場合(例えば、type="hidden")でも同じような書き方が出来るってことですか?

さっきから連投でごめんなさい
0685デフォルトの名無しさん
垢版 |
2019/04/06(土) 20:07:53.52ID:O+y/8osN
よっしゃあああああああああああああああああああああああああ
できましたs
さっきのコードでリストの何番目なのか([0])を指定してやっただけでいけました
本当にありがとうございます!!
0689デフォルトの名無しさん
垢版 |
2019/04/07(日) 00:17:29.91ID:mKsxK2JJ
Ruby, Nokogiri, Selenium WebDriver では、

doc = Nokogiri::HTML( driver.page_source )

element = doc.at_css 'input[name="hoge1"]'
puts element.get_attribute "value" # 属性
#=> value1

CSS Selector では、input[name="hoge1"]。
name 属性が"hoge1" である、input 要素

doc.at_css は、最初に見つかった、1つの要素で、
doc.css なら、配列が返ってくるように使い分けるため、要注意!

jQuery では、1つの要素の場合でも、常に配列が返るので、間違える事がない!

最初に、jQuery などで、CSS Selector を学ぶ必要がある。
それよりも複雑な指定は、XPath を使う
0691デフォルトの名無しさん
垢版 |
2019/04/07(日) 01:57:00.36ID:n+v7EzQs
while True:
....A()
....B()
....C()
....D()

自作関数ABCDがあります。
whileで無限ループしてるのですが
関数C内部で条件を満たした時のみ関数Bに戻りたいのですが
簡単に解決する方法ってありませんか?
0692デフォルトの名無しさん
垢版 |
2019/04/07(日) 02:07:18.80ID:n+v7EzQs
変数を用意して各関数が動作する条件をIF与える方法も考えたのですが、
一度作った関数を別の並び順で何度も再利用したいのでそれでは不都合が生じます。
0693デフォルトの名無しさん
垢版 |
2019/04/07(日) 04:53:49.79ID:b5J7R/uS
>>691
> 関数C内部で条件を満たした時のみ関数Bに戻りたい

「関数Cから関数Bに戻る」っていうのが分からない
例示のコードだと(条件云々以前にそもそも)そういうコール関係にはなっていないよね?

逆に、条件がどうあれ「関数Cから関数Bに戻る」って基本の動作をするように書いてみるところから始めてみては?
0694デフォルトの名無しさん
垢版 |
2019/04/07(日) 05:53:47.28ID:n+v7EzQs
>>693
関数ABCDは順番に繰り返され、無限ループします。
例えば関数ABCDの関数はランダムで1から100の乱数を生成します。
関数Cでた生成された乱数が90以上だった場合のみ
BにもどってBCD→Aと再び無限ループしたいのです。
そして、またCで生成された乱数が90以上だった場合はBに戻ってという感じでループしたいのです。
0695デフォルトの名無しさん
垢版 |
2019/04/07(日) 06:05:32.48ID:7vKlXtYN
何が言いたいのかよく分からんけど
普通にBCをループ文で囲って条件を満たしてる間はフラグ立て続けてDに進めないようにすればいいんじゃないの
0696デフォルトの名無しさん
垢版 |
2019/04/07(日) 06:18:57.36ID:sScivHGl
C()が真偽値を返すとして
こういうこと?
while True:
....A()
....B()
....while C()
........B()
....D()
0697デフォルトの名無しさん
垢版 |
2019/04/07(日) 06:45:01.57ID:n+v7EzQs
ありがとうございます。
そんな感じのことがやりたかったのです。

これを発展させてABCDそれぞれの関数が条件を満たした時に
指定の関数からスタートする場合は簡単にはできないですかね。
0699デフォルトの名無しさん
垢版 |
2019/04/07(日) 07:04:27.59ID:n+v7EzQs
関数ABCD順で無限ループしてるなかで

Aに飛んでA→B→C→Dループ
Bに飛んでB→C→D→Aループ
Cに飛んでC→D→A→Bループ

という感じです
0700デフォルトの名無しさん
垢版 |
2019/04/07(日) 07:28:08.82ID:n+v7EzQs
import.random
def A():
....a=random.randint(1,100)
....return A
def B():
....B=random.randint(1,100)
....return B
def C():
....c=random.randint(1,100)
....return C
def.D():
....d=random.randint(1,100)
....return D

while True:
....A()
....B()
....C()
....D()

関数ABCDをループするコードがある時に
Aが90を超えたらAに戻って再びループ
Bが90を超えたらAに戻って再びループ
Cが90を超えたらBに戻って再びループ
Dが90を超えたらCに戻って再びループ
これを無限に繰り返したいということです
0701デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:12:43.08ID:aPMrZc41
説明へたくそがあらゆるスレに大量に沸いてるけど何かのキャンペーンなのか?
0702デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:32:40.00ID:JkriCKoc
乱数の生成とそれ以外の部分を分ければいい
それが嫌なら各関数から次に実行する関数を返すようにすればいい
0703デフォルトの名無しさん
垢版 |
2019/04/07(日) 08:36:59.02ID:mKsxK2JJ
基本的に、次に実行する関数がコロコロ変わる場合には、決まった構造を取れないから、
次に実行する関数を、一旦、キューにでも入れた方が良いかも

OS のプロセススケジューラーは、まさにそう。
赤黒木で、次に実行するプロセスの順番を管理している
0709デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:10:57.50ID:h90p5IeD
>>708
gotoの存在を知っておくのはいいけど、安易に使うものではないことも知っておいて。
もし使うなら、gotoに関する議論をしっかり調べてメリットデメリットを理解してから使うようにした方がいい。
0710デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:14:58.01ID:n+v7EzQs
そうなんですか。
とても便利そうで感動していたのですが...
基本プログラムは戻るという概念はないと考えるべきなんですかね。
gotoについて調べてみます。
0711デフォルトの名無しさん
垢版 |
2019/04/07(日) 09:54:42.44ID:KWJ+xksL
goto はできるだけ使わずに、continue ( break) を使う。

continue
continue文は、for文やwhile文のブロック処理中に使用します。
continue文を使用すると、それ以降の処理を行わず、for文やwhile文のブロックの先頭に戻ります。

break
break文は、for文やwhile文のブロック処理中に使用します。
break文を使用すると、それ以降の処理を行わず、for文やwhile文の繰り返し処理自体が終了します。
0714デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:03:58.83ID:G6UDrmXI
こんなかんじじゃね?(rotateは未定義)

funcs = [A, B, C, D]

while True:
. for f in funcs:
. n = f()
. if n > 90:
. funcs = rotate(funcs)
0715デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:40:28.10ID:d52YJryc
後藤?
0716デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:51:04.89ID:n+v7EzQs
>>713
まじですか!?
そんなやばいもんだったのですね。。。

>>714
>>703さんの言うキューに入れるとはこういう事だったんですね。
勉強になります。
0717デフォルトの名無しさん
垢版 |
2019/04/07(日) 11:54:00.18ID:d52YJryc
appendって2次元配列になっちゃうのでしょうか?
kara=[]
kara.append([1,2,3,4])
これだと2次元配列になる
kara.append(1,2,3,4)
ではエラー?
0719デフォルトの名無しさん
垢版 |
2019/04/07(日) 12:10:46.72ID:d52YJryc
array=[1,2,3,4]
for n in range(4):
print(array[n])

これだとnに0から3までのインデックスが入るわけですよね
なぜ自動的にそうなるんですか?そういう決まりなんですか?


>>718
存在忘れてました
0720デフォルトの名無しさん
垢版 |
2019/04/07(日) 12:38:35.16ID:0uIk07A1
そうだお
パイソン作った人が決めたんだよ
0721デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:01:56.35ID:d52YJryc
ありがとうです
0722デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:02:14.01ID:d52YJryc
vs codeがメモリ使いすぎなんですが、いいエディタないですか?
idleはありますです
0723デフォルトの名無しさん
垢版 |
2019/04/07(日) 13:15:07.96ID:HG+SSO0q
エディタは探し続けるしかない
俺はVSCODE使ってるわ。メモリ24GB積んでたらそれほど気にならん
0724デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:03:31.99ID:pahFUo3A
ちょこちょこした事ならSublime でも良いと思うけど、IDE ならEclipse なんかどうだろう。 インストール途中で引っかかって進んでいないけど。
Pycharm も一度は試そうかと思ってたけど有料なんだろ?
0725デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:08:36.55ID:pahFUo3A
eclipse + PyDev

この組み合わせで出来ること。
・コード補完
・コードドキュメントの表示
・インタラクティブコンソールでデバッグ
・実行時に変数の値を更新
・条件付きブレークポイント
・例外ブレークポイント
・ブレークポイントでストップ中に、コンテキスト切り替え
・ソースコード自動フォーマット
・コードカバレッジ計測
・コード評価(PyLint)
・プロファイリング(cProfile)
・Gitでソースコード管理(Git)
0727デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:14:20.85ID:pahFUo3A
eclipe は、長い間 java 系 の開発に使ってきたから使い続けたい。
プログラムが巨大になればなるほどありがたさがわかってくる。
0728デフォルトの名無しさん
垢版 |
2019/04/07(日) 14:19:17.52ID:opmlQB67
eclipseはプラグイン増やすとワークスペースや本体がすぐに壊れるから、結局言語別に全て分離するのが最善であることに気付く
だから統合環境としてのeclipseに固執する意味はゼロに近い
代わりにVSCodeが真にextensibleかつオープンな統合環境を実現した
0731デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:08:17.66ID:d52YJryc
find的な関数はあるんすか?ループで使うやつです
0733デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:34:47.97ID:d52YJryc
何がやりたいのかはわかりません
ゲームエンジンにはあった関数なんですが
0734デフォルトの名無しさん
垢版 |
2019/04/07(日) 16:42:14.41ID:Uqhse/UH
>>733
その関数の仕様を示すか、せめてそのエンジンの名前と関数名を挙げないことにはエスパー以外誰も回答できないと思うぞ。
0736デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:22:43.11ID:d52YJryc
なんちゅーか、リストの中に特定の文字が含まれるか みたいなものだと思います
find関数あるんすね
0737デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:30:11.79ID:MpkRE5L0
>>736
inのこと?
x = [‘hoge’, ‘foo’, ‘bar’]
if ‘hoge’ in x: print(‘yay’)
0738デフォルトの名無しさん
垢版 |
2019/04/07(日) 17:51:37.81ID:pahFUo3A
>>736 思いますって何やねん。 兎に角Python ではほとんどできない事はないからしっかり勉強すれば?
何も勉強していないで何のために質問してるの?

# ‘Python’ の中に ‘Py’ が有るか?

if ‘Py’ in ‘Python’ : print(‘有ったぞ’)
# 有ったぞ
0739デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:08:57.67ID:d52YJryc
list=[1,2,3,4,5]
result = list.find("1")
print(result)

>>737
.find
みたいな形で使うものですね
↑だとエラーになりますが
もらったinのコードもなぜかリスト部分がエラーになりますが
0740デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:24:23.16ID:d52YJryc
ああ、ループか
ごめんなさい
0741デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:33:24.66ID:d52YJryc
list=[1,2,3,4,5]
for i in range(5):
if list[i].find(1):
print("hoge")
これでもエラーになりますね
listには属性がないというエラーです
0743デフォルトの名無しさん
垢版 |
2019/04/07(日) 18:53:02.03ID:IvHbp9J/
>>737をよくみると、「’」であるべきところに
「’」じゃないのが入ってるので、そのままコピペだとうごかない。
0744デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:00:23.66ID:AvqFg232
>>741
> listには属性がないというエラーです
ちゃんとエラーメッセージ読めてる?
こう出てるはずだが…

Traceback (most recent call last):
File "./prog.py", line 3, in <module>
AttributeError: 'int' object has no attribute 'find'

https://ideone.com/GZdjoF
0745デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:03:40.75ID:d52YJryc
>>742
リストが表示されますが。。。
0746デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:05:44.94ID:d52YJryc
ああ、確かにリストiはリスト全体ではにゃいですね、、、
0748デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:06:35.80ID:zc2PfqGU
お願いだから日本語くらいは正確に読みとってくれ
落ち着いて読め
落ち着け
0749デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:07:57.21ID:d52YJryc
でも、リストで回さないと検索出来ないですよね
0750デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:11:53.27ID:d52YJryc
>>744
そうですね findという属性がリスト(intオブジェクト)にはないということですよね
.findみたいな形のメソッドはないんでしょうか?
0752デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:30:18.54ID:pahFUo3A
>>749 ちょっと待てや、先ず何をやりたいのかはっきりさせろ。 お前の頭の中がしっちゃかめっちゃかだから
先ず自分が何を知りたいのか整理しておかないと人が書いたことも理解できないだろ。

[1,2,3,4,5] この中から、1とか2を探したいのか?
0755デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:36:07.43ID:d52YJryc
>>752
したいことはリストの中に1が存在するかどうかの判定です
.findという形で出来るのでしょうか?
0760デフォルトの名無しさん
垢版 |
2019/04/07(日) 19:57:30.69ID:d52YJryc
for y in range(4):

print(map[y].find(n))

if map[y].find(n) != -1:
img[n].set_position(Vector2(map[y].find(n)*100, y*100))

ゲームエンジンにこういうのがあったんですが、このfindってpythonで言うなんですかね?後は調べます
0763デフォルトの名無しさん
垢版 |
2019/04/07(日) 21:11:17.19ID:KWJ+xksL
>>760 map に何が入ってるのかわからないから何とも言えんな、 find でも出来そうだし、そんなもの使わなくても出来そうだし。 そもそもそのゲームエンジンって何だよ。

map[] が、bytearray なら、多分 find(n) だろうな。 この場合はnが含まれる位置を取り出すと言う意味。
0764デフォルトの名無しさん
垢版 |
2019/04/08(月) 00:15:32.59ID:LsTkaBrV
こんにちは
platformio-ide-terminalを導入してshell override
0765デフォルトの名無しさん
垢版 |
2019/04/08(月) 00:16:52.73ID:LsTkaBrV
>>764 すみませんとぎれました
も設定変更したのですが、左下の+をクリックしても相変わらず何も入力できない画面が出てきます
input関数を使いたいのですがどうしたら良いでしょうか?
0766デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:47:43.74ID:Xgx7hCRv
>>763
そうですか どうもです
0767デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:49:30.32ID:Xgx7hCRv
idleってトグルのコメントアウトありますか?
0768デフォルトの名無しさん
垢版 |
2019/04/08(月) 05:52:22.51ID:Xgx7hCRv
list関数の目的ってなんですか?
普通のリストでいいんじゃありません?
0769デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:04:01.76ID:ijdHUaIX
import glob
f=glob.glob(".\aaa\*")

助けて下さい。。。
上のコードでaaaというフォルダ内のファイル名を取得したいのですがうまくいきません。
フォルダ名を変えるとうまく取得できます。。。
フォルダ名の先頭が「a」だと上手くいかないのですがバグですか?
それともなにか決まりがあるのでしょうか?

windows環境っす。
0770デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:33:58.62ID:2+Nk20gv
>>769
\がエスケープされてる
glob.glob(r".\aaa\*")
0773デフォルトの名無しさん
垢版 |
2019/04/08(月) 06:37:41.84ID:ijdHUaIX
コードの修正をしたところちゃんと取得できました。
本当にありがとうございます。
0777デフォルトの名無しさん
垢版 |
2019/04/08(月) 11:23:43.24ID:r5MC5DWh
pyautoguiを使ってPCにある画像が表示されたらクリックするというプログラムを作ったのですが
やたらとCPU使用率が高くなります。90%以上に…
SikuliXなどを使った場合はCPU使用率は20%程度におさまります。
CPU使用率を下げるにはどうすればいいのでしょうか?

https://ideone.com/T4aEJc
0782デフォルトの名無しさん
垢版 |
2019/04/08(月) 14:39:17.16ID:LKdogrbE
while True:
....A()
....while True:
........B()
........if not C() break
....D()
0783デフォルトの名無しさん
垢版 |
2019/04/09(火) 01:04:20.45ID:UmDHwXHw
【12日まで】500円を貰える春のばらまきキャンペーン開催中です

@ スマホのApp Storeから「プリン(pring)」をインストールする
A 会員登録を済ませる     
B 下図の通りに進む  
https://pbs.twimg.com/media/D3o7rx3UYAA6jzJ.jpg 
C コードを登録 [5gAYSz] 
     
これで五百円を貰えます     
スマホでセブンATMからお金を下ろせたり(キャッシュカード不要)便利なアプリですのでよろしければお試し下さい。     
0784デフォルトの名無しさん
垢版 |
2019/04/09(火) 08:57:21.72ID:2RX/lqpj
import random
from numba import jit
@jit
def test():
____n=10000000
____count=0
____for i in range(n):
________a=random.randint(1,100000000)
________b=a*2
________cl=[]
________cl.append(a),cl.append(b)
________ch=random.sample(cl,2)
________if ch[0]<ch[1]:
____________count+=1
____print(count)
test()

封筒のパラドックスをシミュレーションしてみました。
numbaは@jitつけるだけでPythonを高速化できると聞いたんですが全然早くなりません。
私の使い方の何がいけないのでしょうか?
たまに早くなるときもあるのですが、早くなる時とならない時の規則が全くわかりません。
誰が教えて〜
0785デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:29:14.06ID:bV70K2EI
pygameってインテリセンスあるんすか
0786デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:31:35.45ID:bV70K2EI
最初から入ってますやね ごめん
0787デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:41:17.37ID:bV70K2EI
やっぱ出ないのがある
pygame.display.set_caption
のset_captionの部分は出ないのですか?
0788デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:43:09.50ID:bV70K2EI
pygame_snippeterで出たわ
ごめんぬ
0789デフォルトの名無しさん
垢版 |
2019/04/09(火) 19:50:39.11ID:bV70K2EI
pygame.draw.rect
のrectが出ない
どうやったら出るの
0791デフォルトの名無しさん
垢版 |
2019/04/09(火) 23:25:23.18ID:ADLzGaMc
>>700
ft=[A,B,C,D]
fn=len(ft)
pc=0
while True:
....if ft[pc]()>90:
........pc=max(0,pc-1)
....else:
........pc=(pc+1)%fn
0792デフォルトの名無しさん
垢版 |
2019/04/10(水) 05:46:36.34ID:mQh/DMfO
pygameのインテリセンスは何の環境で出ます?
0793デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:23:04.34ID:mQh/DMfO
if __name__ == "__main__"をサルでもわかるように教えてみてください
0794デフォルトの名無しさん
垢版 |
2019/04/10(水) 07:25:29.47ID:mQh/DMfO
要はメンバ関数的なものは他からインポートしただけで実行されちゃうので、それを防ぐってことですか?
0795デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:03:46.63ID:abuMoS36
>>793
まずはその質問であなたが聞きたいことがどういうことか相手に正確に伝わるのか、客観的に考えてみてください。
次に、そんな聞き方で相手があなたに答えようという気になるかどうか、考えてみてください。
0796デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:41:40.10ID:TbFSlD63
今pytestでテストを勉強してる。

とりあえず、fizzbuzzについてテストを書いてみた。
https://pastebin.com/eVb5zW6D

でも、どこまでテストを書けばいいのかよく分からん。
コードカバレッジが100%になればOKとしていいのかね
0797デフォルトの名無しさん
垢版 |
2019/04/10(水) 08:45:30.83ID:ctVOU6iK
if __FILE__ == $0
# メイン処理
end

Ruby で、このイディオムを使う理由は、
$0 は、Ruby コマンドで指定したファイル名(メインファイル)。
「ruby a.rb」と実行した際の、a.rb で、これは変化しない

一方、__FILE__ は、現在評価中のファイル名。
require, load で、別のファイル(ライブラリ)を読み込んだ際、そのファイル名に変わる

これにより、そのファイルをテストする際に、
ライブラリ・メインファイルとして、機能を切り替えてテストできる

つまり、他のファイルから、ライブラリとして読み込まれた場合は、
「__FILE__ == $0」が偽になるので、if 〜 end で囲まれた部分は、実行されない
0798デフォルトの名無しさん
垢版 |
2019/04/10(水) 10:45:14.37ID:g9h2j5fz
がんばれまつもと
いけいけまつもと
なんださかこんなさか

生命保険のCMだと思ってたわ
0799デフォルトの名無しさん
垢版 |
2019/04/10(水) 12:37:06.25ID:w9tzkVKB
クソ言語rubyは*nix文化に依存しているので初心者に取って意味が分からない記号$0などが唐突に出てきたりする。
え?知ってて当然でしょ?といった態度なのである。
また同様の理由で*nix依存のプロセスフォークコードが初心者用教材に出てきたりでwindowsユーザーから総スカンを食らって今の体たらくとなった。
rubyではpython以上にwindowsユーザーに人権はない。
rubyの凋落は約束されていたのである。
0801デフォルトの名無しさん
垢版 |
2019/04/10(水) 14:25:26.23ID:3J6MW5VC
宗教的な話をするのは止めろ
避ける理由なんて *ガイジが多い* だけで十分だろ
0804デフォルトの名無しさん
垢版 |
2019/04/10(水) 19:15:57.40ID:xcPdAU38
>>799
そういう暗黙のルールみたいなのが少ないのがpythonの良さだったが最近はpythonもそうではない。
0806デフォルトの名無しさん
垢版 |
2019/04/10(水) 19:43:43.97ID:rYIIY36D
pandasデータフレームのindex自体に特定文字が含まれていた場合、該当index列だけヒストグラムを描くにはどうしたらよいでしょうか
0810デフォルトの名無しさん
垢版 |
2019/04/11(木) 00:47:16.46ID:gJnDKBxk
>>809
規則に関しては全く分からんが
784の癌はrandom.sampleだ

探し方は普通にコメントアウトしたり戻したりして探しただけだ
ほんの10分だ
0811デフォルトの名無しさん
垢版 |
2019/04/11(木) 04:39:22.40ID:NMbmtCQc
>>810
実際にnumbaを使ってコメントアウトを繰り返して自分なりの使い方を見つけるしかないのですね。
ありがとうございます。
0812デフォルトの名無しさん
垢版 |
2019/04/11(木) 05:31:35.70ID:wTPWcZPk
keys = pygame.keys.get.pressed()
if keys[pygame.K_LEFT]:
これってなんでカギかっこになってるんでしょうか
またなぜpygameとついているのでしょうか
pressed関数から何か呼び出すのであればkeys.k_left
とかでいいと思うんですが
0813デフォルトの名無しさん
垢版 |
2019/04/11(木) 06:03:33.52ID:SMdbPkuM
知らないけど、pygame.K_LEFT は、単純な整数定数とかじゃないの?

例えば、pygame.K_LEFT が、10 なら、keys[ 10 ] になる
0814デフォルトの名無しさん
垢版 |
2019/04/11(木) 07:20:29.32ID:wTPWcZPk
整数定数ってのを使うときにブラケットを使うんですか?
0815デフォルトの名無しさん
垢版 |
2019/04/11(木) 07:38:33.52ID:aem/1zLy
内部ではただの整数だけどそれだと扱いにくいから
その整数に別名をつけて辞書のキーとしてアクセスしている
つまり辞書アクセスのブラケット
0818デフォルトの名無しさん
垢版 |
2019/04/11(木) 11:40:43.08ID:wTPWcZPk
>>815
どうも 
0819デフォルトの名無しさん
垢版 |
2019/04/11(木) 18:45:56.86ID:wTPWcZPk
vs codeでpythonインタープリターが出てこないんですが、ただwindowsにpythonとvs codeをインストールしただけではダメなんでしょうか
0820デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:03:34.81ID:wTPWcZPk
失礼
こんなかんじになります
普通はpython3.7みたいなのが出ると思うんですが
http://or2.mobi/index.php?mode=image&;file=232963.jpg
0821デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:48:39.13ID:YXnFgkew
その画面のselect interpreterを実行すれば、インストールされてるpythonが表示されてそれを選択すればいい
pythonが表示されてないなら、おそらくpathにpythonのインタプリタへのパスかわ入ってない
0822デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:56:18.22ID:wTPWcZPk
ありがとうございます
表示されました
0823デフォルトの名無しさん
垢版 |
2019/04/11(木) 19:57:04.68ID:wTPWcZPk
ちなみにインタープリターの設定とpythonエクステンションの違いは何ですか?
エクステンションだけでもターミナルでの実行はできますね
0824デフォルトの名無しさん
垢版 |
2019/04/11(木) 21:01:26.25ID:YXnFgkew
ターミナルで実行出来るのはvscodeのextensionとは全く関係なし
vscode上でインタープリタを設定する必要があるのは、バージョン違いの複数のインタープリタを使い分けるため

windowsは知らんけど、macとlinuxなら仮想環境を作ってそれを有効化してからコマンドラインでvscodeを起動すれば自動でインタプリタの設定をしてくれるからおすすめ
0825デフォルトの名無しさん
垢版 |
2019/04/12(金) 01:09:36.08ID:sGBe8Pmp
 ├ main.py
 ├ dir
 │ ├ sub1.py
 │ └ sub2.py

上記のような階層で
main.pyとsub1.pyとsub2.pyに同じ外部ライブラリを複数個importしています。

importするライブラリを変更する場合
main.pyとsub1.pyとsub2.pyのそれぞれのimport文を書き換えなければならず手間がかかります。
これを1つのファイルだけ書き換えればいいようにする方法はありますか?
0826デフォルトの名無しさん
垢版 |
2019/04/12(金) 01:20:32.23ID:wLs4Sov9
1つのファイルにimportするファイルを書いて、それをimportするようにすれば良いだけだよ
0827デフォルトの名無しさん
垢版 |
2019/04/12(金) 07:32:53.20ID:65SYOe81
>>824
pygameなんですが、その仮想環境?のインタープリターを設定したら、インテリセンスが機能するようになりました
この(仮想環境)とついてるpythonとついていないパイソンの違いはなんですか?
0828デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:10:26.88ID:65SYOe81
やっぱ機能してないですね
0829デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:57:27.71ID:acwwceBV
状況は正確に書いてくれないと考えてる途中で前提が覆ってうんざりする
もう止めた
0830デフォルトの名無しさん
垢版 |
2019/04/12(金) 08:59:32.68ID:WO5SLys3
Windows10・WSL・Ubuntu 16.04 では、

which python3
/usr/bin/python3

file /usr/bin/python3
/usr/bin/python3: symbolic link to python3.5

つまり、python3 というコマンドの実体は、python3.5。
例えばこれを、python3.6 に切り替えたい場合、仮想環境を使う

Ruby の仮想環境のrbenv(anyenv)が有名

anyenv には、pyenv(python), nodenv(node)などもあるけど、
python には標準で、venv が入っている
0831デフォルトの名無しさん
垢版 |
2019/04/12(金) 09:07:05.29ID:D41kXTgJ
>>830
嘘書くなよ
違うバージョン使うなら別に実行環境構築しないとだめ
venvはそこからの話で使いたいバージョンをベースに仮想環境をつくる
0836デフォルトの名無しさん
垢版 |
2019/04/12(金) 15:35:00.11ID:VR9mZ4dF
>>829
Rubyで解答してgoingmyway
0837デフォルトの名無しさん
垢版 |
2019/04/12(金) 19:57:15.49ID:65SYOe81
import datetime
print(datetime.datetime.now().year)

これは

モジュール.クラス.関数.?
という構造だと思いますが、それぞれがどの種類であるかどうやって見分けるんですか?
見た目だけだと判断がつきにくいです

またyearはなんですか?関数?
0842デフォルトの名無しさん
垢版 |
2019/04/12(金) 23:35:59.94ID:gTuZAPil
datetime.datetime.now()が返すのはdatetime.datetimeオブジェクトで、yearはその返されたdatetimeオブジェクトのプロパティです
0844デフォルトの名無しさん
垢版 |
2019/04/13(土) 05:47:43.46ID:teGJwvBO
ロリコンの何が悪いの?
人間なんて15歳くらいで出産していた歴史の方がはるかに長い
0845デフォルトの名無しさん
垢版 |
2019/04/13(土) 05:53:17.39ID:teGJwvBO
>>838
見た目からは判断つかないんですね
0846デフォルトの名無しさん
垢版 |
2019/04/13(土) 05:56:48.11ID:teGJwvBO
>>839
yearはメソッド以下にあるのにクラス属性になるんですか?
メソッドの持ち物ではないのですか?
0848デフォルトの名無しさん
垢版 |
2019/04/13(土) 08:01:09.69ID:yFKK8pTi
>>842
この説明でわからないならオブジェクト指向プログラミングがわかってない証拠やな

selfくんは何度も同じ事を聞いて、レスをもらったりドキュメントを提示されてるのに、それらをきちんと読まないから、もう誰も答えてくれなくなる(´・ω・`)
0849デフォルトの名無しさん
垢版 |
2019/04/13(土) 08:29:36.25ID:teGJwvBO
ごめんなさい
0850デフォルトの名無しさん
垢版 |
2019/04/13(土) 09:22:20.65ID:blG/UTRx
Ruby では、class で型を表示する

require 'date'

p dt = DateTime.now # <DateTime: 2019-04-13T09:12:33+09:00>
p dt.class # DateTime

p dt.year # 2019
p dt.year.class # Fixnum
0851デフォルトの名無しさん
垢版 |
2019/04/13(土) 09:55:11.44ID:teGJwvBO
datetime.datetime.now().year
たとえばこういった構造を自分で書くとしたら
モジュール.pyを作って、
その中にdatetimeクラスとnow関数とイヤー属性があるわけでしょね

module.py
class datetime:
def now():

この属性はどのように記述するんでしょうか?
変数?
0853デフォルトの名無しさん
垢版 |
2019/04/13(土) 10:17:46.19ID:teGJwvBO
いえ、pythonのことです
0854デフォルトの名無しさん
垢版 |
2019/04/13(土) 10:42:16.19ID:teGJwvBO
idleはauto complete非対応なんでしょうか
0855デフォルトの名無しさん
垢版 |
2019/04/13(土) 10:46:10.76ID:teGJwvBO
使えるんですね 自動で出ないだけで
0856デフォルトの名無しさん
垢版 |
2019/04/13(土) 10:48:55.64ID:Nlkj8SLT
>>851
now()がdateオブジェクトを返す
dateがyear属性を持つ
0857デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:35:20.33ID:a4r2Gpw4
このプログラム言語を学んでみようかと思ったが、実行速度が遅いと聞いて、その気をなくした。
0858デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:36:24.38ID:teGJwvBO
>>856
属性とはつまりどのような定義をするのですか?
変数?
0859デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:45:23.12ID:a4r2Gpw4
この板には、このプログラム言語のスレが22もある。
遅いうえに、Windowsに初めから入ってるわけではないので、会社では使えない。
それなのになぜこの言語を選ぶのか疑問。
0861デフォルトの名無しさん
垢版 |
2019/04/13(土) 11:49:32.00ID:7xH7fDbL
>>859 あほか、入っていなくてもWebで実行できるし勉強できることも知らないのか?
そもそもWindowsに標準で入っていないから使えないだなんて事務屋さんか? そんな奴がスピードだなんていうのは百年早い。
超遅いExcelやVBは平気で使ってるくせに。
0863デフォルトの名無しさん
垢版 |
2019/04/13(土) 12:01:23.06ID:vzJQEXVg
>>859
なんでこんなスレ見てるんだ?
C#, VB.NET, PowerShellでも使ってなよ
あと会社ならOffice入ってるだろうからVBAでもいい
0865デフォルトの名無しさん
垢版 |
2019/04/13(土) 12:34:18.90ID:7xH7fDbL
>>859 矛盾してるな。 会社では使えないってお前個人のことをみんなそうだというように当てはめるのは根本的な間違いを犯している。
お前が知らないだけでお前がいつも使っているWindows の中でもpythonが動いていることも知らないんだろうな。
0866デフォルトの名無しさん
垢版 |
2019/04/13(土) 12:47:00.13ID:a4r2Gpw4
何で喧嘩腰なのかね。
普通に、遅いうえに、会社の環境の制限の問題があるのに、それでもなぜこの言語なのか理由を単純に示せばいいだけなのに。
感情的になる必要は存在しない。
0869デフォルトの名無しさん
垢版 |
2019/04/13(土) 13:14:32.59ID:a4r2Gpw4
この言語を学ぶ価値や目的を見い出すための質問の成果は得られなかった。
863が示す言語もあるのに、それでもpythonだけが持つ高い価値が何かあると思ったのに。
0870デフォルトの名無しさん
垢版 |
2019/04/13(土) 13:30:05.53ID:vzJQEXVg
そりゃいきなり実行速度が遅いとか言い出す人に理由示してもなんだかんだ言われるだけって容易に想像できるからな
0871デフォルトの名無しさん
垢版 |
2019/04/13(土) 13:45:43.14ID:cVtrqwkn
「遅いうえに、Windowsに初めから入ってるわけではないので、会社では使えない。」
じゃあ別の言語スレに行けばいいじゃん
0874デフォルトの名無しさん
垢版 |
2019/04/13(土) 14:26:01.49ID:lP9eu6U9
>>869
お前さんみたいな人間の質問に答えてお前さんを納得させるような回答をすることに価値や目的を見い出せなかった
0875デフォルトの名無しさん
垢版 |
2019/04/13(土) 14:45:49.56ID:qC7LW8Gr
>>869 簡単に言うとAI 他の言語では使えない。
そもそも会社の中で使えない言語の意義がわかっても意味ないでしょ。
つまり君は否定する理由を見つけたいだけの話で使うための理由が欲しいわけではないからこのスレを覗く意味はない。

そんな君にオススメのスレ

Pythonについて(アンチ専用)
https://mevius.2ch.net/test/read.cgi/tech/1203557046/
0876デフォルトの名無しさん
垢版 |
2019/04/13(土) 14:47:36.24ID:VdGcv5ba
C♯とPythonで概ね集約やな。
個人WebでTSとPHPを浅く、
組込ぐらいは出来るようC ++多少。
以上でPCからモバイルから全カバーで充分やわ。
0877デフォルトの名無しさん
垢版 |
2019/04/13(土) 14:53:52.54ID:yFKK8pTi
人が美味しく食べてるものをわざわざ嫌いだと言いに来る人がいるという漫画があったな(´・ω・`)
0879デフォルトの名無しさん
垢版 |
2019/04/13(土) 14:57:05.10ID:MR2MCft4
1時間かけてPythonで書いて10時間計算させると人件費は1時間分
10時間かけてCで書いて一分で計算が終わると人件費は10時間分
ニートじゃない限り前者を取る
エリートは両方できるようにしておく
0882デフォルトの名無しさん
垢版 |
2019/04/13(土) 15:40:09.83ID:qC7LW8Gr
>>878 そりゃかなり前からdeep learning ライブラリは色々あったからそれらを使い続けてる企業も多いだろう。
しかし最新の技術を利用しようとしたらPython しか選択肢がないという事。 技術の進化が早いから昔の手法では間に合わない。
0885デフォルトの名無しさん
垢版 |
2019/04/13(土) 16:04:11.67ID:qC7LW8Gr
例えば、極端な話になるが、最近 NVIDIA が、99ドルの AI 開発キットを売り出した。
ラズベリーパイと同じ位のサイズ(IO除く)でAI の機械学習ができる。

これが用意してる開発ツールがPython だけという事でもよくわかる。
昔だったら大々的に売り出す時には、何種類かの言語に対応しますとやったものだが、今はPythonだけで受け入れられるし、他でやっても非効率。
0887デフォルトの名無しさん
垢版 |
2019/04/13(土) 16:43:38.09ID:Nlkj8SLT
>>858
class datetime:
@classmethod
___def now(cls):
________return cls(現在の時刻)

def __init__(self, 時刻)
____self.yearを設定

実際にdatetimeモジュールがこうなってるかは分からんが
0889デフォルトの名無しさん
垢版 |
2019/04/13(土) 18:40:28.83ID:zdu2XuR8
google colab意味わかんね
読み込むためのファイル見つからないとか言いやがる
どうにもならんわ
0890デフォルトの名無しさん
垢版 |
2019/04/13(土) 18:45:00.04ID:U599Z1h6
google colab、既存のプロジェクトをそのまま使うだけならアホみたいに楽だけど、
別データを使う場合はgoogleドライブとの連携がめちゃくちゃ厄介
0891デフォルトの名無しさん
垢版 |
2019/04/13(土) 18:53:40.18ID:zdu2XuR8
別データとかよく分かんないけど、本に書いてある通りに夏目漱石のこころをword2vecで処理させようとしたらこころのファイルをどう頑張っても見つけてくれない
0892デフォルトの名無しさん
垢版 |
2019/04/13(土) 20:48:08.46ID:teGJwvBO
ロジックはどの言語でも似たようなものですか
チュートリアルがとある言語では少ないので、別の言語でロジックを学んだり
0895デフォルトの名無しさん
垢版 |
2019/04/13(土) 22:30:51.76ID:ykQef0zo
Pythonでホームページを作りたいと考えてます
HTMLを覚えようと思ったのですが挫折しました。今流行りのディープランニングで機械学習させて
自動的にHTMLを吐き出させたいのですがやり方がわかりません
おすすめのライブラリとか教えてください
0898デフォルトの名無しさん
垢版 |
2019/04/14(日) 01:01:50.69ID:HNz/PUE2
>>895 ホームページを作るのにHTML 位は使えないとどうしようもないぞ。
全部覚えようとするから挫折するんだよ。
Hello World 程度で最初は十分。 自分が作りたいものが見えてきたらおいおい調べれば良い。
0900デフォルトの名無しさん
垢版 |
2019/04/14(日) 05:15:43.57ID:ABk5/JOf
>>898
他サイトのHTMLをディープランニングさせて
イラストレーターなどでレイアウト画像を作ったらそのとおりのhtmlとcssを
自動生成したいと思ってます

Pythonもまだ初心者なのでご指導お願いします
0902デフォルトの名無しさん
垢版 |
2019/04/14(日) 07:28:56.89ID:/sR0LrTu
>>900
そんな途方もないもの作る間にHTMLとCSS覚える方が1,000倍速いぞ
ってかHTMLを覚えるのに挫折した奴に作れるとは思えん
0903デフォルトの名無しさん
垢版 |
2019/04/14(日) 08:23:39.86ID:UDnauAFh
>>900
ディープラーニングは自分の願ったことを何でも簡単に実現してくれる魔法の箱(またはドラえもん)じゃないぞ。
0904デフォルトの名無しさん
垢版 |
2019/04/14(日) 08:31:30.74ID:ABk5/JOf
ディープランニングはデータが沢山あれば何でもできるとききました
それは間違いですか?
0906デフォルトの名無しさん
垢版 |
2019/04/14(日) 08:50:02.32ID:R7QE13wf
なんでもできると言っても早さで言ったらHTML覚えてサイト作るほうが確実に早いと思う
1兆ページ作るなら話は別かも知れないけど
0907デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:00:48.35ID:jCkW4E9O
>>904
> ディープランニングはデータが沢山あれば何でもできるとききました
> それは間違いですか?
何でもできると言った奴に聞けよ
0908デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:36:31.72ID:AIBmgQB+
>>900
発想はいいね
機械学習向けの良い課題だ

一方でIllustratorのデザインからHTMLとCSSを作成するのはMac限定で有料だけども既に存在するので仕事ならそれを買うべし

趣味や研究なら、まず入力となるデザイン画像と出力となるHTMLとCSSをひたすら集めて、次に機械学習のモデルを開発して機械学習をする

肝心なモデル開発は専門家にお願いした方がいいと思うけど、一から自分でやりたいなら数年は勉強する覚悟が必要かな
0909デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:48:51.43ID:HNz/PUE2
>>900 他サイトのデータを集めてディープラーニングさせるのが目的だったら、まずはそれだけに集中すること。
最初から何もかもやろうとしたら多分自分の頭がパニックに陥る。

まずはデータ集めだな。Web スクレイピング python で検索
0911デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:53:32.92ID:ABk5/JOf
なんともうすでにやってる人がいるんですね
趣味と仕事両方を兼ねてやりたいですね、自分で
機械学習のモデルっすか!?既存のライブラリじゃできないのでしょうか?
サイキットラーンとかケラスとかいろいろあるじゃないっすか。。。
0912デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:54:56.91ID:HNz/PUE2
>>910 言ってる意味がわからん、質問者の機械学習が画像だと思ってるの? 本人にしかわからん話だろ。
0913デフォルトの名無しさん
垢版 |
2019/04/14(日) 09:55:27.20ID:ABk5/JOf
スクレイピングは難しそうなので手動で1000サイトくらい集めようと思ってます
0915デフォルトの名無しさん
垢版 |
2019/04/14(日) 11:00:44.14ID:AIBmgQB+
>>911
scikit-learnやkerasは作るための道具という位置付けで、作りたいなら使いこなすことが必要

調べてみると既にpix2codeというアルゴリズムがあって、それをkerasを使って実装したScreenshot-to-codeというオープンソースがgithubにあった

おめでとう、あなたのやりたい事はちょっとしたpythonの知識とgithubの知識で実現できるようです
0917デフォルトの名無しさん
垢版 |
2019/04/14(日) 11:26:32.06ID:ABk5/JOf
そうなんですね
Screenshot-to-codeを使えばHTMLのスキルは不要になるんですね
これで念願のホームページがもてる
0918デフォルトの名無しさん
垢版 |
2019/04/14(日) 11:37:28.74ID:lziHCBYL
どうだ、俺がpythonで書いたAI釣り師は?
ディープラーニングでお前らの質問・反応・煽りパーターンは学習済みだ
0921デフォルトの名無しさん
垢版 |
2019/04/14(日) 12:30:51.54ID:TMB2OWGM
言語の違いは大した問題ではないですか?
pythonだとチュートが少ないものがあります
0922デフォルトの名無しさん
垢版 |
2019/04/14(日) 12:56:27.92ID:UCAANEse
Pythonでチュートリアルすくないってwwww
英語アレルギーで 1バイト文字見かけると死ぬ病気にでもかかってんのかwww
0924デフォルトの名無しさん
垢版 |
2019/04/14(日) 13:34:03.31ID:EMpiFVZg
>>917 あのさ、プログラムを志すんだったら、HTML なんて初歩の初歩だから知ってて当然なんだぞ。
全てを覚えようとしなくて良いから毛嫌いしないこと、使えばわかる。
0925デフォルトの名無しさん
垢版 |
2019/04/14(日) 14:05:06.84ID:TCgTzlhm
心配しなくても
「(クレンジングもできてない)データを学習器に突っ込んでフィッティングしてみた。
よく分からないけど望んだ結果が出ていないことは分かる。
ここからどうすればいいか見当がつかない」
で終わるから好きにやるといい
ここまでは素人でもできるが、この先は素人には不可能
0926 ◆QZaw55cn4c
垢版 |
2019/04/14(日) 14:07:12.90ID:AVvjfIV7
>>924
html って初歩の初歩なのですか?クライアントからいただいたパスに書いてある内容を、まったくパースせずに丸投げしているだけで動いていることになるだなんて、なんか変じゃないですか?
0927デフォルトの名無しさん
垢版 |
2019/04/14(日) 14:08:30.33ID:TCgTzlhm
ここでいう素人は情報系の4大を出てない人を言っている
素人でもやれる奴はいるが、まあ稀
ジャンボ宝くじで1000万円引くより希少だろう
0929デフォルトの名無しさん
垢版 |
2019/04/14(日) 14:45:25.40ID:UCAANEse
ホムペ持ちたいだけなら
Jimdoでググレカス
今なら日本語で写真(スクリーンショット)たっぷりのハウツー本も出ている
0935デフォルトの名無しさん
垢版 |
2019/04/14(日) 15:20:17.06ID:hwd9tenx
削除の心配してるあたりアダルト系だと思うけど
自分でサイト構築した場合はホスティング業者の規約で削除をくらうわけで、ホムペ作成サービスに比べて有利ってこともない
ほとんどのホスティングサービスはアダルトデータ公開禁止だから
0937デフォルトの名無しさん
垢版 |
2019/04/14(日) 15:47:53.28ID:2oedoA+a
>>926 なんか思い込みが激しいな。 HTML が初歩の初歩というのは、自分でHTML 位書けて当たり前という意味なんだけど、どこから丸投げだなんて話になるのわからん。
その辺のおばちゃんでも直ぐにHTMLくらい書けるようになるぞ。
0938デフォルトの名無しさん
垢版 |
2019/04/14(日) 16:04:06.41ID:TMB2OWGM
>>922
英語だと結局ロジックの理解が出来ないのです
0939デフォルトの名無しさん
垢版 |
2019/04/14(日) 16:15:54.90ID:rw472Lmx
たぶん日本語でも理解出来ないんだろうと思う
0941デフォルトの名無しさん
垢版 |
2019/04/14(日) 16:45:36.84ID:EMpiFVZg
>>940 ペラペーラジャ無くても、読めないと進まないよ。
プログラムやるなら覚悟しないとな。

でも単なる専門用語だけだし、簡潔なものが多いから難しく無い。 専門用語は日本語でも英語でも同じ。
わからないと言ってるやつは多分日本語の説明を見てもわからない。
0942デフォルトの名無しさん
垢版 |
2019/04/14(日) 16:56:10.35ID:IovzG98E
>>940
日本人の特徴なのか、完璧に読めないと。。。って人多いかもだけど、プログラミング自体言語のキーワードが英語が多いし、
変数や関数の名前を英語辞書引きながら英単語で書いていけば、単語だけは一般的な日本人より相当覚えてるわけで、
洋書に書かれてる単語から、自分の知ってる単語をピックアップして意味を考えて(専門書であることも加味して)考えればニュアンスは読み取れるもんよ。
完全に理解は出来なくても、少しでも情報を得られるし、得ようとする気持ちが大事なのかも知れん。
0943デフォルトの名無しさん
垢版 |
2019/04/14(日) 16:58:16.68ID:UCAANEse
雑談と観光案内しかできない程度のスピーチ力だが
読むのはぐぐれるからもそっといけるぞ
0944デフォルトの名無しさん
垢版 |
2019/04/14(日) 17:08:59.92ID:ABk5/JOf
英語もできてイケメンでプログラミングもできるお前らが羨ましいよ
俺はPythonでやっとハローワールドを表示させられるようになったレベルだから…
0945デフォルトの名無しさん
垢版 |
2019/04/14(日) 17:12:47.43ID:IovzG98E
最初は誰でも初心者。
頑張れ。
0947デフォルトの名無しさん
垢版 |
2019/04/14(日) 17:54:17.47ID:/sR0LrTu
>>942
> プログラミング自体言語のキーワードが英語が多いし、
プログラミングって言うかIT系の英単語って結構一般的に使われる意味と違う意味で使われてるから逆に面倒だったりする
install が就任するとか思い付かんしネットワークで使われるpromiscuous modeなんて普通の意味だと人前で使えないしw
0948デフォルトの名無しさん
垢版 |
2019/04/14(日) 18:14:44.89ID:IovzG98E
>>947
それはある。
最初ググル翻訳使ってたけど、かえって分かりにくかった。
0949 ◆QZaw55cn4c
垢版 |
2019/04/14(日) 18:17:00.77ID:AVvjfIV7
>>947
ある送信元から出た H/L レベルは、それが物理的につながっているのならどの受信部でも全部見えちゃいますからね…でも今は SSL を咬ましているのが普通だから接続先しかわからないんじゃないかな…
0951デフォルトの名無しさん
垢版 |
2019/04/14(日) 18:40:58.78ID:XgRuwrtZ
そういやプログラム覚えたての頃は
forで引っかかったな
「〜のために」
何のために僕はプログラムを・・・と頭によぎっていた
0952デフォルトの名無しさん
垢版 |
2019/04/14(日) 18:41:41.13ID:atAYzqEe
この問題文をChrome翻訳してみたんだけど・・・意味分からんから実行結果からコード書いた
こういの文書も英語分かれば大したことないのかな

https://codingbat.com/prob/p195669
リスがパーティーに集まるとき、彼らは葉巻を持ちたいです。葉巻の数が40と60の間であれば、
リスパーティーは成功します。週末でない限り、その場合、葉巻の数に上限はありません。
与えられた値を持つパーティが成功した場合はTrueを返し、そうでなければFalseを返します。
0953デフォルトの名無しさん
垢版 |
2019/04/14(日) 18:52:50.61ID:UCAANEse
>>952
問題文がリスのシガーパーティなのはあっちの笑い?のセンスだからどうにもならんので
実行結果例を先に見てみるのはただしいことだとおも
0954デフォルトの名無しさん
垢版 |
2019/04/14(日) 19:31:11.23ID:AIBmgQB+
>>952
英語の意味を正しく理解しないとコードも正しく書けなさそう

Chromeの翻訳では
between 40 and 60, inclusive
を40以上60以下と訳してくれていないし

Unless it is the weekend, in which case there is no upper bound
週末以外は上限がなくなるような日本語訳だが、whichはweekendを指してin weekend case になる
つまり週末には上限がなくなる、と言いたいんだ
意味が反対になってしまっている…
0955デフォルトの名無しさん
垢版 |
2019/04/14(日) 20:27:40.98ID:atAYzqEe
文学的な文章なら解釈も千差万別なんだろうけど
プログラムの仕様って理論的に書いてるだろうから機械翻訳も簡単だと思いこんでたわ 
0956デフォルトの名無しさん
垢版 |
2019/04/15(月) 00:48:29.05ID:hce9CeGK
スクレイピングは、Ruby, Nokogiri, Selenium WebDriver が定番

Ruby on Rails, Sinatra でも、Node.js は必須。
webpack, babel とか

Ruby にはGUI が無いから、GUI として、
HTML, SASS/CSS, JavaScript(JS), jQuery は基礎

今のJSは、ES2015 とか、Vue.js とか

CSS Selector は、Nokogiri, jQuery で学ぶ
0958デフォルトの名無しさん
垢版 |
2019/04/15(月) 02:17:58.91ID:noJXwcB8
perlでやっていた置換を、Pythonのワンライナーでやってみた
まぁ、常用するにはimportがめんどくさいな
0959デフォルトの名無しさん
垢版 |
2019/04/15(月) 07:09:45.39ID:IQEYapkI
実際にプログラム作ったとしてそれをWEBアプリにする方法が分からない
分かりやすく解説してるサイトとかない?
0963デフォルトの名無しさん
垢版 |
2019/04/16(火) 01:51:02.78ID:WfxisTJA
pythonia終了のお知らせwwww
所詮pythoniaはライブラリを使う側の人間ですからwww


Clojure 9万ドル
F# 8万ドル
Go 8万ドル
Scala 7.8万ドル
Elxir 7.6万ドル
Ruby 7.5万ドル
WebAssembly 7.3万ドル
Rust 7.2万ドル
Erlang 7.1万ドル
Bash/Shell/PowerShell 6.9万ドル

https://insights.stackoverflow.com/survey/2019#technology-_-what-languages-are-associated-with-the-highest-salaries-worldwide
0966デフォルトの名無しさん
垢版 |
2019/04/16(火) 07:14:41.03ID:0q08IuyQ
すません。Python初心者です。
変数"a1"から変数"a1000"までの変数を作りたいんだけど、
一つ一つ宣言する以外に方法はないのでしょうか?
初歩的な質問で申し訳ない。
教えてください。
0967デフォルトの名無しさん
垢版 |
2019/04/16(火) 07:19:36.85ID:Lq6NSZtA
>>966
for i in range(1, 1001):
____exec(‘a{:d}=0’.format(i))
0970デフォルトの名無しさん
垢版 |
2019/04/16(火) 07:52:03.05ID:toh458JW
>>966
そんな実装になる時点でなにかおかしい
0971デフォルトの名無しさん
垢版 |
2019/04/16(火) 08:10:41.84ID:S7eq1ncA
>>966
リストじゃあかんの?
0972デフォルトの名無しさん
垢版 |
2019/04/16(火) 08:28:42.77ID:0q08IuyQ
>>970
アドバイスありがとうございます。

>>971
sklearnの学習モデルを1〜1000の変数に当てはめたいと考えております。
1000個のモデルで多数決を取りたく考えてます。
リストで実現する事は可能でしょうか?
0974デフォルトの名無しさん
垢版 |
2019/04/16(火) 08:46:05.16ID:S7eq1ncA
>>972
出来ますよ。
むしろ、そう言うことするためのリストですし。
0975デフォルトの名無しさん
垢版 |
2019/04/16(火) 08:47:44.48ID:0q08IuyQ
>>974
そうなのですね。
リストの使い方を理解していなかったようです。
ありがとうございます。
0976デフォルトの名無しさん
垢版 |
2019/04/16(火) 09:54:41.84ID:jMhdT2ep
MSDNこそC++である リストこそプログラミングである という格言があるのでメモ帳にメモっとくと良いです
0977デフォルトの名無しさん
垢版 |
2019/04/16(火) 12:49:41.47ID:vZl8q5zB
joy stick がちんこだったりする
0982デフォルトの名無しさん
垢版 |
2019/04/17(水) 16:54:26.76ID:1x+gGP6K
7行目ですが、エラーの内容はほぼ同じです。
管理画面には入れるけど、サイトが閲覧できない状態です

Error during template rendering
In template /storage/emulated/0/mysite/blog/templates/blog/post_list.html, error at line 7

Reverse for 'create_article' not found. 'create_article' is not a valid view function or pattern name.
1 <html>
2 <head>
3 <title>my blog</title>
4 </head>
5
6 <body>
7 <a href="{% url 'blog:create_article' %}">記事の作成</a>
8 {% for post in posts %}
9 <div>
10 <p>date: {{ post.created_date }}</p>
11 <h1><a href="{% url 'blog:article' post.id %}">title: {{ post.title }}</a></h1>
12 <p>{{ post.text|linebreaksbr }}</p>
13 <hr>
14 </div>
15 {% endfor %}
16 </body>
0983デフォルトの名無しさん
垢版 |
2019/04/17(水) 17:17:05.86ID:A46SPhLY
create_articleがないとエラーで言われてるじゃん
その名前の関数がないんじゃないの
0984デフォルトの名無しさん
垢版 |
2019/04/17(水) 17:22:23.34ID:FzkCnorp
そのままだね。エラーメッセージも読まないで質問するのはダメだろ。 エラーメッセージを考えたそぶりすら見えないし。
0986デフォルトの名無しさん
垢版 |
2019/04/17(水) 19:46:40.43ID:dz2HqwMB
やっぱし英語力なんじゃねえの
マジなに書いてあっか分かってねえじゃん
英検四級とかそれくらいは最低限必要って言ってやれよ
0989デフォルトの名無しさん
垢版 |
2019/04/17(水) 21:29:31.60ID:+kbR1/nI
           YES → 【ヒットした?】 ─ YES → なら聞くなカス
         /                \
【検索した?】                     NO → なら、諦めろカス
         \
            NO → ふざけんなカス
0990デフォルトの名無しさん
垢版 |
2019/04/17(水) 22:34:00.60ID:o6t++Kqu
Rails とか、フレームワークの質問は、WebProg 板だろ

こんな超初心者用のスレではない!
0994デフォルトの名無しさん
垢版 |
2019/04/19(金) 11:28:32.43ID:MyoO9UV6
PandasでCSVファイルを読み込んだ時、
Columnsで使えない文字って何がありますか?
0995デフォルトの名無しさん
垢版 |
2019/04/19(金) 11:42:20.52ID:ymX8VCBl
エンコに適合してれば問題なし
0996デフォルトの名無しさん
垢版 |
2019/04/19(金) 12:10:22.05ID:MyoO9UV6
どのエンコーダでしょう?
いくつか試してみたところ、下記の通りになりました

使える文字:()/-
使えない文字:全角文字
0997デフォルトの名無しさん
垢版 |
2019/04/19(金) 17:39:56.60ID:iZHLNq5z
read_csvの引数でエンコード指定すれば全角もいける
0998デフォルトの名無しさん
垢版 |
2019/04/20(土) 01:44:51.55ID:mQ5OjgTa
ごみ
0999デフォルトの名無しさん
垢版 |
2019/04/20(土) 01:45:12.28ID:mQ5OjgTa
1000デフォルトの名無しさん
垢版 |
2019/04/20(土) 01:50:23.73ID:mQ5OjgTa
ちょん
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 32日 12時間 7分 28秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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