くだすれPython(超初心者用) その39

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2018/08/24(金) 07:50:35.97ID:VD4/++xS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/
812デフォルトの名無しさん
垢版 |
2018/11/09(金) 12:04:45.46ID:mwKVhTqG
どっちも間違い

だが少なくとも
random.rand() > .5
では偏りが生じる
2018/11/09(金) 12:40:54.60ID:0q7AG6jo
>>811
0×1の配列?
814デフォルトの名無しさん
垢版 |
2018/11/09(金) 12:41:31.35ID:ZavMgXDP
Openpyxlでエクセルシートをリスト化した後
シート名を条件に抽出することはできますか?
すみません、調べてもわかりませんでした。
2018/11/09(金) 13:11:43.28ID:XhL65g6u
>>811俺だったらこうする
if random.randrange(2):

「一定回数抽選すると、AとBの出現率が必ず1:1になる」ことを求めているならシャッフルを使う
a=[0]*50+[1]*50
random.shuffle(a)
2018/11/09(金) 13:44:15.88ID:lOOqdq/Y
deapのbase.Fitnssでweightsの動き方がよくわからないんですが
仕様を説明したサイトはありますか?
2018/11/09(金) 13:47:08.53ID:iep8j/69
>>814
シート名は .get_sheet_names()でリストでとってこれるから
とってきたあと
1つ1つのシート名でifすればいいだろ
2018/11/09(金) 13:49:25.70ID:iep8j/69
>>816
https://deap.readthedocs.io/en/master/api/base.html はもう読んでる?
2018/11/09(金) 14:27:01.20ID:D1KL18mO
python2.7 pandasのto_csvでの出力、文字コードについてです
utf8のdfがありコレをsjis(sjisで表現出来ない文字は無視や?置き換えで良い)にしてcsvにしたいです
調べると
with codecs.openでencoding='cp932' errors='ignore'で出力ファイルを開き
df.to_csv(ファイルオブジェクト, encoding='cp932')
で出来ると書いてあったのですが普通にUnicodeエラー出ます
何が原因でうまくいかないんでしょうか、また他の解決法なにかありませんかね
2018/11/09(金) 15:23:15.00ID:iep8j/69
>>819
ソースコードの文字コードは何で書いてる
OSは何よ

Unicodeエラーの内容は略さず書いて
821デフォルトの名無しさん
垢版 |
2018/11/09(金) 16:18:25.51ID:aAkZVDrn
PythonがWEBで覇権取れば最強のスクリプト言語になるのにな
Djangoとかいうゴミはいいから早くRailsとかLaravel並みにいいフレームワーク作ってくんね?
822デフォルトの名無しさん
垢版 |
2018/11/09(金) 17:36:50.37ID:rwK1ciOK
GoogleってWEB開発にPython使ってるらしいけどフレームワークはDjangoなのかな?
社内で別のフレームワーク使ってんだったら公開してほしいな
2018/11/09(金) 19:22:48.23ID:lOOqdq/Y
>>818
それは読んだんですが多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのかが書いていなかったので
2018/11/09(金) 19:31:33.70ID:iep8j/69
>>823
weights って重み付けだから、
いっぱいのときも逐一自分で指定するもんじゃないの

>多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのか
俺にはちょっとなにいってるのかよくわかんない(´・ω・`)

各重みの最適値さがしなら
プロジェクト・しらみつぶし が たぶん一番いい・・・
2018/11/10(土) 12:15:02.20ID:seRmY1tJ
https://stackoverflow.com/questions/42866743/lambda-function-explanation/42867119

repeating_data = reduce(lambda l, x:
l.append(x) or l if x not in l else l,
columns['Hello'], [])

Columns["Hello"] has [1,1,2,3,4,5,6,6,7,8,9,9,10,0]


このlambda式のl.appned(x) or lの"or l"と
if x nor in l else lの"else l"がよくわからないんですが、
つけないとエラーになるので必要なのでしょうが、どのような意味なのでしょうか?
826825
垢版 |
2018/11/10(土) 12:26:13.87ID:seRmY1tJ
質問ばかりで申し訳ないのですが、なぜこの式でreduceを使っているのかもよくわかりません。
reduceでぐぐるとすべて畳み込んで計算すると書いてあるところが多いのですが、関数がl.append(x) or lなので違うのでしょうか?
2018/11/10(土) 13:07:05.83ID:u9Es1usX
>>825-826
条件式(他言語のいわゆる三項演算子や条件演算子と呼ばれる物の代替)
https://docs.python.org/ja/3/reference/expressions.html#conditional-expressions
そしてlist.appendの戻り値はNoneなので常にorの右辺が評価され返される

つまり新しいリストに含まれていなければ追加し、さもなければそのまま
あとは先方のレスにもset使えと書かれてると思うけど。reduceの動作は以下
https://docs.python.org/ja/3/library/functools.html#functools.reduce
828826
垢版 |
2018/11/10(土) 13:46:44.78ID:seRmY1tJ
>>827
丁寧なレスありがとうございます。list.appendの戻り値がNoneだなんて意識しないで使ってました。
破壊的メソッドだからなんだそうですが、自分でもうちょっと勉強してみます。
829826
垢版 |
2018/11/10(土) 15:23:32.40ID:seRmY1tJ
if x not in l else lの"else l"を省略すると
SyntaxError: invalid syntax
が出るんですが、通常のif文の場合はelse以下がなくても問題ないと思うのですが、
なぜこの場合はだめなのでしょうか?
2018/11/10(土) 15:39:38.87ID:hLxIIZfE
>>829
それは
> if x not in l else l
じゃなくて
> l if x not in l else l
なの
>>827が言う条件式って奴
式1 if 条件 else 式2
で、条件が真と評価されるなら 式1
条件が偽に評価されるなら 式2
を返す
なので else 式2 がないと困っちゃう
(None を返すという選択肢もあったとは思うけど)
2018/11/10(土) 15:48:08.55ID:seRmY1tJ
>>830
else lのlをNoneにしてみたら、
TypeError: argument of type 'NoneType' is not iterable
とでてしまいました。
でもなんとなく前よりはこの式がわかったような気がします。
どうもレスありがとうございました。
2018/11/10(土) 17:30:59.29ID:16GnFLu/
>>829
>>827が条件式(他言語に倣って三項演算子と呼ばれることも)だって教えてくれてるじゃん

値1 if 条件 else 値2
条件が真と評価されたら値1を、偽と評価されたら値2を返す
2018/11/10(土) 18:12:02.74ID:hLxIIZfE
>>825
そもそもこのラムダ式がちょっとトリッキーなんだよね
lambda l, x: l.append(x) or l if x not in l else l
俺なら
def f(l,x):
__if x not in l:
____l.append(x)
__return l
を定義して
repeating_data = reduce(f, columns['Hello'], [])
ってやると思う
834デフォルトの名無しさん
垢版 |
2018/11/10(土) 18:14:37.23ID:GvdPZ72d
>>831
lをNoneにするってのは830の間違い
2018/11/10(土) 18:59:26.03ID:8RKiULCU
>>830
偽の時は空値返す二項版条件演算子みたいな糞を実装してる言語って何?
有効な使い道が思いつかん
2018/11/10(土) 19:30:23.53ID:hLxIIZfE
>>835
もっと用途限定だけどC#のnull条件演算子が近いかな
2018/11/10(土) 19:41:48.00ID:LcpJu9SU
>>836
用途限定どころか目的からして完全に別物
2018/11/10(土) 20:21:45.94ID:hLxIIZfE
はいはい w
2018/11/10(土) 20:55:57.38ID:2vwbQ9QW
恥ずかしい奴だな
2018/11/10(土) 21:43:36.94ID:Kjka4QLz
やっかいなnullを扱いやすくする為に実装された演算子と
偽を受け取ったぐらいで無駄にNoneを返す>>830がかんがえたさいきょうのじょうけんしきなんて別物どころか真逆だよな
実際、Noneを返したんじゃ>>831こうなるだけだし
2018/11/10(土) 21:48:48.39ID:zCsM6it1
理解できないお前のことだなww
2018/11/10(土) 21:52:55.81ID:hLxIIZfE
>>840
> やっかいなnullを扱いやすくする為に実装された演算子と
実装の目的と

> 偽を受け取ったぐらいで無駄にNoneを返す>>830
演算子の機能の区別もつかないアホだったのか…

> 実際、Noneを返したんじゃ>>831こうなるだけだし
マジでアホなの?
リスト要求される所にNone与えただけの話だぞ、それ w
2018/11/10(土) 21:55:57.70ID:nSd/jMeD
Nane「私のためにケンカしないで!!」
2018/11/10(土) 22:00:38.04ID:jxhvzDRc
>>843
誰だお前は
2018/11/10(土) 22:04:59.17ID:4gO6mVIc
>>844
ウンコ「おならです」
2018/11/10(土) 22:06:25.70ID:hPdKPv7V
肛門「よし通れ!」
2018/11/10(土) 22:10:53.93ID:aFLDlH5i
くだすれ貫禄のくだらなさで不覚にも吹いた
848デフォルトの名無しさん
垢版 |
2018/11/10(土) 22:11:20.00ID:7gTt1pZ+
まだまだ
2018/11/10(土) 22:19:58.98ID:WPq8ZeKj
判定を失敗すると恐ろしいことになるんだなあ…
2018/11/10(土) 22:55:34.73ID:jXgJ1KMY
早まってnull条件演算子とかエルビス演算子って言わなくて良かったわ
2018/11/10(土) 23:22:42.45ID:sSiPAoa8
>>850
そういうのは需要があるから実装されてるんだよ
Noneなんて返されても無駄なチェックコードが増えるだけ
単にelseで適切な値を返すだけでいい
2018/11/10(土) 23:50:26.34ID:hLxIIZfE
>>851
> 単にelseで適切な値を返すだけでいい
仮定の話しができない低能乙 w
2018/11/11(日) 08:48:46.33ID:rNrNUiDF
真っ赤っかですな
単芝も紅葉するんだ
2018/11/11(日) 08:57:40.67ID:cKV3qXJe
低能先生は低能連呼から最終的に殺人に走ったので気をつけてね。
2018/11/11(日) 10:16:25.06ID:3JRsWB+V
>>854
ソースよろしくww
2018/11/11(日) 10:30:49.61ID:ZIQY97Xr
ttps://ja.wikipedia.org/wiki/%E7%A6%8F%E5%B2%A1IT%E8%AC%9B%E5%B8%AB%E6%AE%BA%E5%AE%B3%E4%BA%8B%E4%BB%B6
2018/11/11(日) 11:34:11.51ID:LFgZgESJ
へーっ、こんな事件があったんだな
フルボッコされての犯行か
ならまともな反論もできなくなった>>853とか言ってやれよww
2018/11/11(日) 12:06:11.66ID:uw9PiA4L
この自己愛
同種だな
2018/11/11(日) 13:13:23.27ID:3JRsWB+V
謎の一体感w
一般人には理解不能
860デフォルトの名無しさん
垢版 |
2018/11/11(日) 13:36:01.34ID:96wp+TZd
>>828
まさか普段ruby使ってる?
2018/11/11(日) 14:18:08.94ID:SClia95W
ルビバレする用語:
破壊的・非破壊的
クラスメソッド
特異メソッド
862デフォルトの名無しさん
垢版 |
2018/11/11(日) 16:41:23.18ID:kuiXddTN
ファイルに定義されている関数名を知る方法ありますか?
関数名だけです。
863デフォルトの名無しさん
垢版 |
2018/11/11(日) 17:56:29.41ID:96wp+TZd
globals()
locals()
2018/11/11(日) 23:32:22.24ID:ARqR0CiK
>>828
Ruby ではメソッド名に、! がつく、破壊的メソッドが、nil を返すことがある。
破壊的メソッドとは、レシーバ自身を変更するもの

line.chomp! # 末尾の改行を削除する
line.empty? # 空行かどうか?

chomp! は、末尾に改行が無くて、削除しなかった場合に、nil を返す

line.chomp!.empty?

上記のようにメソッドチェーンすると、nil から、empty? メソッドを呼び出そうとして、
エラーになるから、メソッドチェーンできない

ただし、最近のバージョンでは、nil 許容演算子が追加されて、
メソッドチェーンしてもエラーが起きなくなった

jQuery では、メソッドチェーンしてもエラーが起きない
2018/11/12(月) 01:26:40.44ID:BcZUmovG
「Ruby」をNGワード登録するのが簡単・便利
2018/11/12(月) 21:09:17.74ID:XFjJOyuw
pd.read_html(url)で読み込んだテーブルのある列をtable.sort(by= )でソートしたんだけどその結果が
0
1
2
3
4
1
2
3
みたいに微妙な並び替えになっちゃうのはデータにどんな原因があるの?
867デフォルトの名無しさん
垢版 |
2018/11/12(月) 22:43:29.16ID:ku9n7fSu
#シート名取得
all_sh = book.sheetnames

#シート名が「ss」で終わるものを抽出
all_sh_ss = [s for s in all_sh if s.endswith('ss')]
print(all_sh_ss)

・・この後、シート名が「ss」で終わるシートだけから
特定セルA1の値を抽出したいんですが・・・行き詰まりました。
わかる方いたらご助言をお願いします。
868デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:10:34.73ID:JEwLf6Zk
>>867
じゃあ次はその抽出した文字列のリストでWorksheetオブジェクトを取得してみようか
869デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:21:23.98ID:JEwLf6Zk
>>866
read_html(url)で返ってきたリストにそのままソートかけてそう
まずはどんなリストが返ってきてるかそのまま表示してみたら?
2018/11/13(火) 11:11:30.00ID:dBAvKT8b
829さんじゃありませんが、横レスで関連する質問があります。

https://stackoverflow.com/questions/38417677/why-am-i-getting-a-syntax-error-for-this-conditional-statement

You're getting the SyntaxError because you're using a conditional expression without supplying the else clause which is mandatory.

The grammar for conditional expressions (i.e if statements in an expression form) always includes an else clause:

と書かれていますが、lambda文以外の普通のif statementsの場合、elseがなくても問題がない場合が多々あると思うのですが、
なぜ>>829の例がやこのリンク先の例だとelse以下がないとだめなのでしょうか?
2018/11/13(火) 11:16:50.29ID:ULH3fPUf
>>870
散々出てるがif文じゃなくて条件式だから
872870
垢版 |
2018/11/13(火) 11:17:02.91ID:dBAvKT8b
大事なこと書き忘れました。
リンク先読むとこのスレでも指摘されているように三項演算子なのでelseが必要とのことですが、
普通のif文と三項演算子ってどう区別すれば良いのですか?
873870
垢版 |
2018/11/13(火) 11:42:02.89ID:dBAvKT8b
>>871
どうも失礼しました。公式ページ見たらやっとわかりました。
https://docs.python.org/ja/3/reference/compound_stmts.html#if
if文
https://docs.python.org/ja/3/reference/expressions.html#index-83
条件式
って明確に区別されてるみたいですね。
判別するにはif文の最後に":"があるかないかで判定するのでしょうか?
2018/11/13(火) 11:49:03.16ID:dBAvKT8b
https://realpython.com/python-conditional-statements/#conditional-expressions

ここにif文と条件式の区別について詳しく書いてありました。これで疑問が氷解しました。
どうもくだらない投稿してすみませんでした。
2018/11/13(火) 12:11:42.35ID:p27/Ddjo
>>873
まぁそれで区別…できなくもないけどPythonに後置if文はないし役割が違う
というより明確に区別されるのは式と文で、式の中に文を書く事は出来ない
>>825みたいなlambda中の条件式はor含めなんとか値を返すための苦肉の策
2018/11/13(火) 12:36:07.85ID:X1xMRsix
ワンライナー()のために、処理を行うかの切り替えに条件式を悪用してるだけだからすこぶる行儀悪いわな
877874
垢版 |
2018/11/13(火) 12:49:01.67ID:dBAvKT8b
>>875-876
レスありがとうございます。メモとっときます。
878デフォルトの名無しさん
垢版 |
2018/11/13(火) 18:24:15.89ID:90McxFB4
さすがくだすれ
879デフォルトの名無しさん
垢版 |
2018/11/14(水) 08:37:42.04ID:7XHx6tPI
本当に初歩的な質問で申し訳ないのですが
Openpyxlで読み込んだファイル名を出力することはできますか?
シート名、セル値はわかるのですが、ファイル名のやり方がわからなくて、、
2018/11/14(水) 08:56:30.82ID:1aZXQx3x
>>879
ファイル名のわからないファイルをどうやって読み込んでいるの?
881デフォルトの名無しさん
垢版 |
2018/11/14(水) 09:08:29.36ID:7XHx6tPI
>>880
ファイル名はもちろんわかるんですが
それをセルに出力したいのです。
2018/11/14(水) 09:08:38.14ID:yrvGShGp
念力
2018/11/14(水) 09:22:21.28ID:1aZXQx3x
>>881
Openpyxlは触った事ないけど、
調べた感じでは基本は↓でできるんじゃないの?
sheet = openpyxl.Workbook().active
sheet['A1'] = ‘ファイル名’
2018/11/14(水) 23:27:59.57ID:2v/yZNsE
ドキュメントのsubprocessのところをみると
似たような機能で
getoutput レガシーなシェル呼び出し関数
check_output 古い高水準 API
os.systemよりsubprocessを推奨
となっていて基本runが推奨で
他は使わないほうがいいとかあるんですか?
例えばいずれなくなるからとか。
それとも単にお勧めというだけなのか?
その辺の読み解き方がよくわからないです。
2018/11/15(木) 00:01:12.02ID:biHRXo8w
安心が欲しいのなら推奨API以外を使うべきではない
2018/11/15(木) 00:06:22.84ID:biHRXo8w
まあこれは一般論で
os.systemが廃止されることはないと思うし
これまでの経験からしてDeprecatedとマークされてから2バージョンくらい移行期間があるから
仮に無くなるとしても3年くらいは大丈夫だろう

その前にプログラミングに飽きている可能性の方が高い
2018/11/15(木) 00:52:47.72ID:1MY0pWfp
>>886
ありがとうございました!
888デフォルトの名無しさん
垢版 |
2018/11/15(木) 13:46:36.75ID:djL3d80k
pythonでgui アプリ作るには、tkinterってやつでいいんでしょうか
そもそも作れますか?
2018/11/15(木) 14:04:46.04ID:MeEMSEca
Qtとかwxpythonとかほかにもあるでよ

できるよ
890デフォルトの名無しさん
垢版 |
2018/11/15(木) 17:29:06.18ID:djL3d80k
ありがとー
3dとかも扱えますかね?
891デフォルトの名無しさん
垢版 |
2018/11/15(木) 18:07:36.78ID:/yCJioVE
>>888
matplotlibはGUIがtkでボタンもメニューも作れる
3Dも完璧
892デフォルトの名無しさん
垢版 |
2018/11/15(木) 18:40:25.34ID:n3jFLh1o
完璧というからには、GPU支援とかも完璧なんだろうな。
2018/11/15(木) 19:15:13.23ID:MeEMSEca
>>892
あるぉ
894デフォルトの名無しさん
垢版 |
2018/11/15(木) 19:44:19.96ID:djL3d80k
-m tkinter
でtkinterのバージョンを確認できるそうですが、chdirしないとだめなんでしょうか
デフォルトの場所だとinvalid syntaxエラーになります
2018/11/15(木) 20:08:14.97ID:MeEMSEca
>>894
pythonのバージョンが3系なら
python -m tkinterじゃなくて
py -m tkinterのはずはず
896デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:42:33.52ID:IxhrRMJp
↑ありがとうございました
897デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:42:49.00ID:IxhrRMJp
idleだけで開発できますか?
不十分な点ってどこでしょうか
898デフォルトの名無しさん
垢版 |
2018/11/16(金) 17:43:28.31ID:IxhrRMJp
あと、どういった環境使ってるか教えてください
pycharmというのはおもすぎてきつかったです
とりあえずatomにpython入れてやってます
899デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:30:29.81ID:no85NK4X
起動時間はpycharmの方が掛かるけど、
起動後はatomとかvscodeの方が描画周りとかまったりしてて重いと感じる。
拡張機能もたくさん入れることになるし。
900デフォルトの名無しさん
垢版 |
2018/11/16(金) 19:55:41.74ID:IxhrRMJp
とりあえずidleでやってきます(´・ω
2018/11/16(金) 20:10:36.27ID:arJZkCZY
おれidleだけでgui開発やってるよ
902デフォルトの名無しさん
垢版 |
2018/11/16(金) 20:15:48.44ID:IxhrRMJp
tkinterってリファレンスないんすか(´;ω
公式がないですがすでに
2018/11/16(金) 20:23:20.55ID:arJZkCZY
ttps://docs.python.org/ja/3/library/tkinter.html
904デフォルトの名無しさん
垢版 |
2018/11/17(土) 09:50:58.58ID:eS8uuMhZ
pythonとopneglでblenderみたいなソフト作れますか
植物を自動生成したいだけですが
2018/11/17(土) 10:03:17.92ID:FOsw7ObJ
ソフトを作らなくてもblenderがpythonに対応している。
906デフォルトの名無しさん
垢版 |
2018/11/17(土) 10:20:48.12ID:eS8uuMhZ
それはそうなんですが、勉強として
907デフォルトの名無しさん
垢版 |
2018/11/17(土) 11:01:18.90ID:B4GISbTr
>>906
できるけど初心者なら
pygameの方が楽
908デフォルトの名無しさん
垢版 |
2018/11/17(土) 12:26:38.54ID:z9owpr8+
>>522 ぺちぷ
<?php
function solve(int $n):int{
$a=0;
for($i=5;$i<=$n;$i*=5)$a+=intdiv($n,$i);
return $a;
}

foreach([1,5,10,1e2,1e6,1e16] as $i)printf("%d -> %d\n",$i,solve($i));
?>

1 -> 0
5 -> 1
10 -> 2
100 -> 24
1000000 -> 249998
10000000000000000 -> 2499999999999996
909デフォルトの名無しさん
垢版 |
2018/11/17(土) 12:27:25.80ID:z9owpr8+
誤爆すまん
2018/11/17(土) 12:52:15.90ID:+Lh4qwu/
https://hoge.com/3/1330.jpg
https://hoge.com/3/1622.jpg

1330から1622までの連番の作り方教えて欲しいです

https://hoge.com/3/1330.jpg
https://hoge.com/4/5.jpg

もし、2000を超えたら一つ上の階層に1を足してjpgはまた0から数えたいです

やり方教えて下さい!
2018/11/17(土) 14:26:54.02ID:xcAZYE+8
>>910
糞クローラー作るな
逝ってよし
レス数が900を超えています。1000を超えると表示できなくなるよ。