当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その56
http://mevius.5ch.net/test/read.cgi/tech/1640536690/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その57
■ このスレッドは過去ログ倉庫に格納されています
2022/05/22(日) 22:25:08.74ID:/hGmbW/Z
2022/05/22(日) 22:37:38.56ID:jNpDIIz5
立て乙
3デフォルトの名無しさん
2022/05/24(火) 13:49:28.09ID:cQhl8P2i かわいい女の子に上目遣いで拗ねたように「いじわる」と言われると興奮するんです
4デフォルトの名無しさん
2022/06/05(日) 08:46:24.02ID:Sg+yaBaV pandasについての質問です。
"PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)"の順にデータが入ってるとします。
下記みたいな感じです。
@[0,0,2470,0,0,27] ○
A[0,0,1570,0,0,0] ☓
B[0,1580,1440,0,35,31] ○
C[0,1290,2878,0,0,31] ☓
D[2522,885,940,31,0,0] ☓
E[1527,1057,1639,28,5,31] ☓
F[1527,1457,1639,28,26,31] ○
○をつけたデータが残したいデータになります。
@AのようにPRICE>0のPRICEデータが1つの場合は、該当するP(%)データが25より大きい場合に残したいです。
BCのようにPRICE>0のPRICEデータが2つの場合は、該当するP(%)データがどちらも20より大きい場合に残したいです。
DEFのようにPRICE>0のPRICEデータが3つの場合は、該当するP(%)データがどちらも15より大きい場合に残したいです。
調べたら下記のような感じでやっていくことがわかったのですが、思うように整理できません。
df = pd.read_sql(sql=f'SELECT "PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)" FROM {schema}."{get_table}";', con=conn)
df = df[(df["PRICE1"]>0) | (df["PRICE2"]>0) | (df["PRICE3"]>0) | (df["P1(%)"]>25) | (df["P1(%)"]>25) | (df["P1(%)"]>25)]
df = [tuple(x) for x in df.values]
誰か助けてくだしあ
"PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)"の順にデータが入ってるとします。
下記みたいな感じです。
@[0,0,2470,0,0,27] ○
A[0,0,1570,0,0,0] ☓
B[0,1580,1440,0,35,31] ○
C[0,1290,2878,0,0,31] ☓
D[2522,885,940,31,0,0] ☓
E[1527,1057,1639,28,5,31] ☓
F[1527,1457,1639,28,26,31] ○
○をつけたデータが残したいデータになります。
@AのようにPRICE>0のPRICEデータが1つの場合は、該当するP(%)データが25より大きい場合に残したいです。
BCのようにPRICE>0のPRICEデータが2つの場合は、該当するP(%)データがどちらも20より大きい場合に残したいです。
DEFのようにPRICE>0のPRICEデータが3つの場合は、該当するP(%)データがどちらも15より大きい場合に残したいです。
調べたら下記のような感じでやっていくことがわかったのですが、思うように整理できません。
df = pd.read_sql(sql=f'SELECT "PRICE1","PRICE2","PRICE3","P1(%)","P2(%)","P3(%)" FROM {schema}."{get_table}";', con=conn)
df = df[(df["PRICE1"]>0) | (df["PRICE2"]>0) | (df["PRICE3"]>0) | (df["P1(%)"]>25) | (df["P1(%)"]>25) | (df["P1(%)"]>25)]
df = [tuple(x) for x in df.values]
誰か助けてくだしあ
5デフォルトの名無しさん
2022/06/05(日) 11:40:11.32ID:ocueg4o5 よーしらんが、論理回路の問題なんだろ?
なら一時的にif(if(if))みたいなネストの深いクソコード書いて、細かくデバック通すか
関数宣言をさぼらずに、(df["PRICE1"]>0)や(df["P1(%)"]>25)に分かりやすい関数名付けたほうがいいんじゃねえかな
なら一時的にif(if(if))みたいなネストの深いクソコード書いて、細かくデバック通すか
関数宣言をさぼらずに、(df["PRICE1"]>0)や(df["P1(%)"]>25)に分かりやすい関数名付けたほうがいいんじゃねえかな
2022/06/05(日) 12:23:41.62ID:NOI2DZIw
datetime.datetimeクラスの順序比較に手を加えたくなって、モジュールのソースをみたら_cmp()メソッドが比較の本体だったので
ttps://techiedelight.com/compiler/?zbRJ というコードで試したのですが、そもそも_cmp()が呼ばれません
これって、私は何を間違えているのでしょう? (なお、当初やりたかったこと自体は__eq__, __gt__, __ge__, __le__, __lt__, __ne__を直接オーバーライドすることで達成できました)
ttps://techiedelight.com/compiler/?zbRJ というコードで試したのですが、そもそも_cmp()が呼ばれません
これって、私は何を間違えているのでしょう? (なお、当初やりたかったこと自体は__eq__, __gt__, __ge__, __le__, __lt__, __ne__を直接オーバーライドすることで達成できました)
7デフォルトの名無しさん
2022/06/05(日) 12:40:05.08ID:u0j22vIZ 条件に合うものを残すより
条件に合わないものを消していく方が効率が良い
条件に合わないものを消していく方が効率が良い
8デフォルトの名無しさん
2022/06/05(日) 12:44:51.80ID:u0j22vIZ2022/06/05(日) 14:26:03.02ID:NOI2DZIw
>>8
お返事ありがとうございます
しかし、_cmpのアンダースコアは一つですし、AttributeErrorが発生したりせず単に呼ばれないだけ(比較自体は出来ているので親クラスの_cmp()が呼ばれているはず)です
マングル化に関するページをご紹介いただいた意味がよく分かりません
お返事ありがとうございます
しかし、_cmpのアンダースコアは一つですし、AttributeErrorが発生したりせず単に呼ばれないだけ(比較自体は出来ているので親クラスの_cmp()が呼ばれているはず)です
マングル化に関するページをご紹介いただいた意味がよく分かりません
10デフォルトの名無しさん
2022/06/05(日) 14:57:15.34ID:ocueg4o5 def もれそう(arg1, arg2, arg3, arg4, arg5, arg6):
__うんこ = [arg1, arg2, arg3]
__おもさ = [arg4, arg5, arg6]
__def 内容量(element):
____return len(list(filter(lambda x: x > 0, element)))
__def 耐久力(element, n):
____return list(filter(lambda x: x > n, element))
__if 内容量(うんこ) == 1:
____return 耐久力(おもさ, 25)
__elif 内容量(うんこ) == 2:
____return 耐久力(おもさ, 20)
__elif 内容量(うんこ) == 3:
____return 耐久力(おもさ, 15)
df = もれそう(茶色1,茶色2,茶色3,重量1, 重量2, 重量3)
pandasのことよー知らんから>>5で適当なこと書いちゃったけど、こういうことだよな
どっかで関数一覧に目を通すなりして、array関数とかcallback関数の使い方覚えたほうがいいぞ
__うんこ = [arg1, arg2, arg3]
__おもさ = [arg4, arg5, arg6]
__def 内容量(element):
____return len(list(filter(lambda x: x > 0, element)))
__def 耐久力(element, n):
____return list(filter(lambda x: x > n, element))
__if 内容量(うんこ) == 1:
____return 耐久力(おもさ, 25)
__elif 内容量(うんこ) == 2:
____return 耐久力(おもさ, 20)
__elif 内容量(うんこ) == 3:
____return 耐久力(おもさ, 15)
df = もれそう(茶色1,茶色2,茶色3,重量1, 重量2, 重量3)
pandasのことよー知らんから>>5で適当なこと書いちゃったけど、こういうことだよな
どっかで関数一覧に目を通すなりして、array関数とかcallback関数の使い方覚えたほうがいいぞ
2022/06/05(日) 15:01:54.57ID:v/p+BagL
>>4
sqlでの抽出は知らんけど、他の方法で抽出でけた
import pandas as pd
data=[
[0,0,2470,0,0,27],
[0,0,1570,0,0,0],
[0,1580,1440,0,35,31],
[0,1290,2878,0,0,31],
[2522,885,940,31,0,0],
[1527,1057,1639,28,5,31],
[1527,1457,1639,28,26,31]]
df = pd.DataFrame(data)
def check(row):
d = {1:25, 2:20, 3:15}
return all(i[1] > d[len(row)] for i in row)
# 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック
[check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]]
[True, False, True, False, False, False, True] # ブールインデックス作成
df2 = df[_] # ブールインデックスで抽出
df2.values.tolist()
[[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
sqlでの抽出は知らんけど、他の方法で抽出でけた
import pandas as pd
data=[
[0,0,2470,0,0,27],
[0,0,1570,0,0,0],
[0,1580,1440,0,35,31],
[0,1290,2878,0,0,31],
[2522,885,940,31,0,0],
[1527,1057,1639,28,5,31],
[1527,1457,1639,28,26,31]]
df = pd.DataFrame(data)
def check(row):
d = {1:25, 2:20, 3:15}
return all(i[1] > d[len(row)] for i in row)
# 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック
[check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]]
[True, False, True, False, False, False, True] # ブールインデックス作成
df2 = df[_] # ブールインデックスで抽出
df2.values.tolist()
[[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
2022/06/05(日) 15:18:41.40ID:v/p+BagL
プロンプトが無くて入力と出力が分かりにくかったので、プロンプト追加
>>>import pandas as pd
>>>data=[
・・・ [0,0,2470,0,0,27],
・・・ [0,0,1570,0,0,0],
・・・ [0,1580,1440,0,35,31],
・・・ [0,1290,2878,0,0,31],
・・・ [2522,885,940,31,0,0],
・・・ [1527,1057,1639,28,5,31],
・・・ [1527,1457,1639,28,26,31]]
>>>df = pd.DataFrame(data)
>>>def check(row):
・・・ d = {1:25, 2:20, 3:15}
・・・ return all(i[1] > d[len(row)] for i in row)
# 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック
>>>[check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]]
[True, False, True, False, False, False, True] # ブールインデックス作成
>>>df2 = df[_] # ブールインデックスで抽出
>>>df2.values.tolist()
[[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
>>>import pandas as pd
>>>data=[
・・・ [0,0,2470,0,0,27],
・・・ [0,0,1570,0,0,0],
・・・ [0,1580,1440,0,35,31],
・・・ [0,1290,2878,0,0,31],
・・・ [2522,885,940,31,0,0],
・・・ [1527,1057,1639,28,5,31],
・・・ [1527,1457,1639,28,26,31]]
>>>df = pd.DataFrame(data)
>>>def check(row):
・・・ d = {1:25, 2:20, 3:15}
・・・ return all(i[1] > d[len(row)] for i in row)
# 各PRICEと各P(%)の組をzipで作って、その中からPRICEがゼロのものを削除したものをcheck関数でチェック
>>>[check([k for k in j if k[0]>0]) for j in [list(zip(i[:3], i[3:])) for i in df.values.tolist()]]
[True, False, True, False, False, False, True] # ブールインデックス作成
>>>df2 = df[_] # ブールインデックスで抽出
>>>df2.values.tolist()
[[0, 0, 2470, 0, 0, 27], [0, 1580, 1440, 0, 35, 31], [1527, 1457, 1639, 28, 26, 31]]
2022/06/05(日) 15:20:27.82ID:joAjo/JZ
2022/06/05(日) 15:21:54.55ID:joAjo/JZ
15デフォルトの名無しさん
2022/06/05(日) 15:24:04.14ID:udiiYXiV2022/06/05(日) 15:33:26.33ID:NOI2DZIw
>>15
お返事ありがとうございます。親クラスのメソッドが呼び出されていることを実際にどう確認すればいいのか思いつけないレベルです(デバッガ? トレース?)
ただ単に、例外が送出されずに比較結果が表示されたので、何らかの比較するメソッドが呼ばれたのだろうと想像しただけです
例えば、foo <= datetime.datetime.max が評価されるとき
1) foo.__le__(datetime.datetime.max) が呼ばれる
2) fooには__le__メソッドが定義されていないので親クラスに遡って datetime.datetime.__le__(self=foo, other=datetime.datetime.max) が呼ばれる
3) ttps://github.com/python/cpython/blob/main/Lib/datetime.py の2110行 self._cmp(other) へ進む
ここでself=foo, other=datetime.datetime.max なので、 foo._cmp(other=datetime.datetime.max) と、 ttps://techiedelight.com/compiler/?zbRJ の4行目で定義したメソッドが呼ばれる
と考えていたのですが……継承に関する理解がどっかで間違っているのでしょうね
お返事ありがとうございます。親クラスのメソッドが呼び出されていることを実際にどう確認すればいいのか思いつけないレベルです(デバッガ? トレース?)
ただ単に、例外が送出されずに比較結果が表示されたので、何らかの比較するメソッドが呼ばれたのだろうと想像しただけです
例えば、foo <= datetime.datetime.max が評価されるとき
1) foo.__le__(datetime.datetime.max) が呼ばれる
2) fooには__le__メソッドが定義されていないので親クラスに遡って datetime.datetime.__le__(self=foo, other=datetime.datetime.max) が呼ばれる
3) ttps://github.com/python/cpython/blob/main/Lib/datetime.py の2110行 self._cmp(other) へ進む
ここでself=foo, other=datetime.datetime.max なので、 foo._cmp(other=datetime.datetime.max) と、 ttps://techiedelight.com/compiler/?zbRJ の4行目で定義したメソッドが呼ばれる
と考えていたのですが……継承に関する理解がどっかで間違っているのでしょうね
2022/06/05(日) 15:56:02.34ID:U0Dsg58D
俺も気になる。何で_cmp呼ばれんの?
18デフォルトの名無しさん
2022/06/05(日) 18:26:33.72ID:NPpCVuaP foo を造ってるのが now() なので
foo の型が datetime のままなんじゃね
foo の型が datetime のままなんじゃね
2022/06/05(日) 19:36:27.49ID:NPpCVuaP
print(super(DatetimeTest, self)._cmp)
↓
AttributeError: 'super' object has no attribute '_cmp'
↓
AttributeError: 'super' object has no attribute '_cmp'
20デフォルトの名無しさん
2022/06/05(日) 19:37:47.11ID:NPpCVuaP2022/06/05(日) 19:39:44.56ID:v/p+BagL
>>12
allの引数が空の場合(全てのPRICEがゼロの場合)にTrueを返すのでcheck関数修正
def check(row):
d = {1:25, 2:20, 3:15}
return all(i[1] > d[len(row)] for i in row) if row else False
allの引数が空の場合(全てのPRICEがゼロの場合)にTrueを返すのでcheck関数修正
def check(row):
d = {1:25, 2:20, 3:15}
return all(i[1] > d[len(row)] for i in row) if row else False
2022/06/05(日) 20:20:03.24ID:x6+Exssm
ジェネレーター式まで学習が進んだが
ちゃんと慣れないと突然でてきたとき「なんだこれ!?」ってなるとおもうわ
見やすくするためのものだからそんな複雑な構造で出てくることはないと思うが
ちゃんと慣れないと突然でてきたとき「なんだこれ!?」ってなるとおもうわ
見やすくするためのものだからそんな複雑な構造で出てくることはないと思うが
2022/06/05(日) 21:55:46.01ID:NOI2DZIw
ID:NPpCVuaPさん、ありがとうございます
> foo を造ってるのが now() なので
> foo の型が datetime のままなんじゃね
type(foo)はちゃんと"<class '__main__.DatetimeTest'>"になっていましたので、その線は無さそうです
で、試していただいた ttps://techiedelight.com/compiler/?Jmnq ですと、>>16で私が考えたとおりの動作をしているように見えますね
となると、datetime.datetimeとHogeで何が違うのか……ちょっと脳味噌が煮えてきたので、一旦専ブラを閉じて頭を冷やします
> foo を造ってるのが now() なので
> foo の型が datetime のままなんじゃね
type(foo)はちゃんと"<class '__main__.DatetimeTest'>"になっていましたので、その線は無さそうです
で、試していただいた ttps://techiedelight.com/compiler/?Jmnq ですと、>>16で私が考えたとおりの動作をしているように見えますね
となると、datetime.datetimeとHogeで何が違うのか……ちょっと脳味噌が煮えてきたので、一旦専ブラを閉じて頭を冷やします
2022/06/05(日) 23:10:11.97ID:v/p+BagL
2022/06/06(月) 08:54:18.93ID:9r9DwyjN
見えないのはわかったけどその挙動を実現するための言語仕様ってあるんだっけ?
26デフォルトの名無しさん
2022/06/06(月) 09:18:43.10ID:Ug3DHjCK27デフォルトの名無しさん
2022/06/06(月) 09:23:35.02ID:Ug3DHjCK まずやるべきことは >15 だろ
2022/06/06(月) 09:43:37.49ID:zYl8ARh2
やりましたみなさん、分かりました!
datetime.pyの最後のにfrom _datetime import *をtryする記述があり
成功したら_cmpなどを消す処理が書いてあるんですが、この_datetimeをimportする関連個所を
ごっそりコメントアウトして
import datetime
dir(datetime.datetime.now())
したら_cmpが表示されましたよ、つまりdatetimeの本体は_datetimeで>>26のヤツじゃないでしょうか
datetime.pyの最後のにfrom _datetime import *をtryする記述があり
成功したら_cmpなどを消す処理が書いてあるんですが、この_datetimeをimportする関連個所を
ごっそりコメントアウトして
import datetime
dir(datetime.datetime.now())
したら_cmpが表示されましたよ、つまりdatetimeの本体は_datetimeで>>26のヤツじゃないでしょうか
2022/06/06(月) 09:50:52.59ID:PsDk58Y7
>>24
お返事ありがとうございます
呼べないのはDatetimeTest._cmp()であってdatetime.datetime._cmp()は呼べている(ように見える)わけですから
datetime.datetime._cmpが見えないことに意味があるのかどうか……一晩経っても脳が煮えたままです
ちなみにdir(foo)だと_cmpが見えてますね……
>>26-28
とりあえず知識もスキルもないなりに手を動かそうと思って、 ttps://techiedelight.com/compiler/?zbRJ のimport datetimeの位置に
datetimeモジュールのソースをそのまま全部貼り付けてあれこれ試したところ(そのコードはでかいしTECHIE DELIGHTの利用規約的にクリアかどうか分からないのでアップしません)
ttps://github.com/python/cpython/blob/main/Lib/datetime.py の最後、2614行目以降が無ければ>>16で私が考えたとおりの動作になる、つまりfoo._cmp()が呼ばれますが、2614行目以降がそのままだと呼ばれませんでした
ということで、遅ればせながら>>28さんと同じ結果に辿り着けました
Cで書かれたモジュールを読み込んで、未使用の名前を削除して、という工程の中になにかありそう、というあたりが今のところ私の限界です
お返事ありがとうございます
呼べないのはDatetimeTest._cmp()であってdatetime.datetime._cmp()は呼べている(ように見える)わけですから
datetime.datetime._cmpが見えないことに意味があるのかどうか……一晩経っても脳が煮えたままです
ちなみにdir(foo)だと_cmpが見えてますね……
>>26-28
とりあえず知識もスキルもないなりに手を動かそうと思って、 ttps://techiedelight.com/compiler/?zbRJ のimport datetimeの位置に
datetimeモジュールのソースをそのまま全部貼り付けてあれこれ試したところ(そのコードはでかいしTECHIE DELIGHTの利用規約的にクリアかどうか分からないのでアップしません)
ttps://github.com/python/cpython/blob/main/Lib/datetime.py の最後、2614行目以降が無ければ>>16で私が考えたとおりの動作になる、つまりfoo._cmp()が呼ばれますが、2614行目以降がそのままだと呼ばれませんでした
ということで、遅ればせながら>>28さんと同じ結果に辿り着けました
Cで書かれたモジュールを読み込んで、未使用の名前を削除して、という工程の中になにかありそう、というあたりが今のところ私の限界です
2022/06/06(月) 09:54:12.32ID:Ug3DHjCK
なるほど _cmp は存在しなかったで FA
2022/06/06(月) 09:54:13.01ID:PsDk58Y7
2022/06/06(月) 09:56:28.25ID:9r9DwyjN
33デフォルトの名無しさん
2022/06/06(月) 10:03:42.68ID:Ug3DHjCK34デフォルトの名無しさん
2022/06/06(月) 10:05:27.81ID:Ug3DHjCK2022/06/06(月) 10:13:54.31ID:zYl8ARh2
>>32
グローバルの_cmpを消す処理で合ってると思いますよ
通常は _datetime (たぶん本体がC言語)をimportする、この中にはself._cmpが無いのでdirで見えないし
グローバルの_cmpを消す処理でグローバルの方も見えない
_datetimeのimportに失敗したらdatetime.pyに書かれているdatetimeクラスが使われるし
グローバルの_cmpを消す処理が実行されないので
dir(datetime)でグローバルの_cmpが見えるし、dir(datetime.datetime)でself._cmpが見える
グローバルの_cmpを消す処理で合ってると思いますよ
通常は _datetime (たぶん本体がC言語)をimportする、この中にはself._cmpが無いのでdirで見えないし
グローバルの_cmpを消す処理でグローバルの方も見えない
_datetimeのimportに失敗したらdatetime.pyに書かれているdatetimeクラスが使われるし
グローバルの_cmpを消す処理が実行されないので
dir(datetime)でグローバルの_cmpが見えるし、dir(datetime.datetime)でself._cmpが見える
36デフォルトの名無しさん
2022/06/07(火) 17:25:02.03ID:NE4LVa9l なんのための fake
2022/06/08(水) 06:15:05.14ID:8a3xVi5I
python 2.x 系の環境です。
file_path を関連付けで実行させるために下記コードを記述しました。
目的としては引数の文字列を unicode として渡したいです。
subprocess.Popen(「'start', file_path], shell=True)
この際、引数は cp932 として扱われるようで、
file_path を cp932 にencode しないと失敗します。
unicode にしかない文字が含まれる場合があるので
unicode のまま渡したいのですが
Popen 側で引数を unicode として受け取れる方法はありますか?
encoding= は Python 2.x は未対応、
またパイプを使って chcp 65001 を先に実行させてもダメでした。
file_path を関連付けで実行させるために下記コードを記述しました。
目的としては引数の文字列を unicode として渡したいです。
subprocess.Popen(「'start', file_path], shell=True)
この際、引数は cp932 として扱われるようで、
file_path を cp932 にencode しないと失敗します。
unicode にしかない文字が含まれる場合があるので
unicode のまま渡したいのですが
Popen 側で引数を unicode として受け取れる方法はありますか?
encoding= は Python 2.x は未対応、
またパイプを使って chcp 65001 を先に実行させてもダメでした。
3837
2022/06/08(水) 07:56:30.16ID:Ty02xZw9 win環境なのですが2.x系では内部で
ANSI版のCreateProcessAを呼び出しているとのことで
そもそもダメということが分かりました
ctypesなど使ってCreateProcessWを直接呼び出すなどするしかないみたいです
ANSI版のCreateProcessAを呼び出しているとのことで
そもそもダメということが分かりました
ctypesなど使ってCreateProcessWを直接呼び出すなどするしかないみたいです
39デフォルトの名無しさん
2022/06/08(水) 12:41:12.70ID:P10Nnex8 今のWindowsおすすめpython環境はなんですか?
教育用?にWindowsでのpython環境を作りたいです。
無印python、anaconda、PyCharmはどれがいいでしょうか。
エディタはVSCodeの利用を考えてます。
自分は普段、LinuxやWSL2でemacsを使っているオールドタイプです。
教えて下さい
教育用?にWindowsでのpython環境を作りたいです。
無印python、anaconda、PyCharmはどれがいいでしょうか。
エディタはVSCodeの利用を考えてます。
自分は普段、LinuxやWSL2でemacsを使っているオールドタイプです。
教えて下さい
2022/06/08(水) 13:17:16.31ID:Ylodbyzl
google colaboratry で十分
41デフォルトの名無しさん
2022/06/08(水) 13:42:31.40ID:rPUwIz8x たとえば以下のようなリストが即興で欲しくなった場合ってどうしてます?
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]…………]
(下の例では0~12まで)
ググった結果numpyで配列を作ってtolistでリスト化する方法は見つけたんですけど
もっとぱっと書けないですかね?
import as numpy np
arr_2d = np.arange(12).reshape((4, 3))
print(arr_2d.tolist())
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]…………]
(下の例では0~12まで)
ググった結果numpyで配列を作ってtolistでリスト化する方法は見つけたんですけど
もっとぱっと書けないですかね?
import as numpy np
arr_2d = np.arange(12).reshape((4, 3))
print(arr_2d.tolist())
42デフォルトの名無しさん
2022/06/08(水) 13:43:05.22ID:rPUwIz8x 0~12じゃねえわ11だった
43デフォルトの名無しさん
2022/06/08(水) 15:41:41.08ID:Mk/J73jd44デフォルトの名無しさん
2022/06/08(水) 15:45:15.80ID:Mk/J73jd np.arange(12).reshape((4, 3)).tolist()
[[y * 3 + x for x in range(3)] for y in range(4)]
[[y * 3 + x for x in range(3)] for y in range(4)]
2022/06/08(水) 15:50:39.30ID:WqwdOMp+
>>41
[list(range(i, i+3)) for i in range(12)[::3]]
[list(range(i, i+3)) for i in range(12)[::3]]
2022/06/08(水) 15:55:39.94ID:SMHvnx3K
import more_itertools
list(more_itertools.chunked(range(12), 3))
list(more_itertools.chunked(range(12), 3))
47デフォルトの名無しさん
2022/06/08(水) 16:25:32.81ID:KT22GtKj [np.array([0, 1, 2]) + 3*_ for _ in range(4)]
2022/06/08(水) 18:22:00.06ID:WqwdOMp+
>>41 さらに短くできた
[list(range(i, i+3)) for i in range(0,12,3)]
もう出尽くしたやろ、ワイのが一番やな、組み込みのみだし直感的だし
応用もきくし、ワイが一番やろw
[list(range(i, i+3)) for i in range(0,12,3)]
もう出尽くしたやろ、ワイのが一番やな、組み込みのみだし直感的だし
応用もきくし、ワイが一番やろw
2022/06/08(水) 18:40:08.42ID:3lPgPXCP
>>39
WinPython+VScodeが正解だぞ
anacondaは、Pythonを習得し、Pythonと外部ライブラリの境界を把握できるように
なった人のうち、anacondaを必要とする人だけが使うものだ
WinPython+VScodeが正解だぞ
anacondaは、Pythonを習得し、Pythonと外部ライブラリの境界を把握できるように
なった人のうち、anacondaを必要とする人だけが使うものだ
2022/06/08(水) 19:34:37.02ID:nVdli+zf
2022/06/08(水) 19:37:13.76ID:d7/kuIlk
dockerはdockerの勉強になるしwindowsだと安定しないから要らんな
52デフォルトの名無しさん
2022/06/08(水) 23:45:53.43ID:rPUwIz8x >>44-48
ありがとう、勉強になった!
ありがとう、勉強になった!
53デフォルトの名無しさん
2022/06/09(木) 03:35:46.64ID:aPNi5OBU pythonのライブラリを調べているのですが
C言語で書かれている部分(cソースコード)には
どうやってたどり着けばいいのでしょうか?
例としてrandom.random()が0.0以上1.0未満の浮動小数点数を
かえしますが、どうゆう仕組みで返すのかを調べたいのです
C言語で書かれている部分(cソースコード)には
どうやってたどり着けばいいのでしょうか?
例としてrandom.random()が0.0以上1.0未満の浮動小数点数を
かえしますが、どうゆう仕組みで返すのかを調べたいのです
2022/06/09(木) 04:32:16.69ID:FzQACe2i
2022/06/09(木) 05:11:23.67ID:aPNi5OBU
2022/06/09(木) 05:17:33.48ID:FzQACe2i
>>55
蛇足かもですがpython の乱数はメルセンヌツイスタというアルゴリズムなので調べてみるといいかもしれません
蛇足かもですがpython の乱数はメルセンヌツイスタというアルゴリズムなので調べてみるといいかもしれません
2022/06/09(木) 05:44:46.90ID:aPNi5OBU
2022/06/09(木) 18:02:41.85ID:i3H8tE1L
>>39
公式Python+PyCharmが便利
公式Python+PyCharmが便利
2022/06/09(木) 18:22:37.05ID:8SlPB6O/
教育用なら圧倒的シェアを獲得しているVSCodeの方が良いと思うよ
2022/06/09(木) 18:36:52.52ID:ZOUr8HN/
pycharmはなぁ…
61デフォルトの名無しさん
2022/06/09(木) 22:20:46.40ID:KIKA+I2C >>39
教育に、環境構築の手間を含められるかどうかによるかな。
純粋にプログラムとは何かを知ってもらうだけだったらcolab
Pythonスクリプトをちゃんと動かせるようになることが目標だったらWindows用のPythonかなぁ。
教育に、環境構築の手間を含められるかどうかによるかな。
純粋にプログラムとは何かを知ってもらうだけだったらcolab
Pythonスクリプトをちゃんと動かせるようになることが目標だったらWindows用のPythonかなぁ。
2022/06/09(木) 22:22:21.55ID:1X1IjXim
ideoneでいいじゃん。
colabより高性能だよ。
公開されてしまうが。
colabより高性能だよ。
公開されてしまうが。
2022/06/09(木) 23:14:03.21ID:gzzbtW8N
そいや親戚のとこの子供が学校でPythonのプログラムやっているというのだが、
ああいうのって、どういう仕様の実行環境なんだ?
グラフや絵を描けたり、画面上のピアノの鍵盤叩くと音が出せるとか、
なにやら色々とできるようなのだが
というかpipであれこれ山盛りにされてる環境にも思える
Scratchだと思ってた
ああいうのって、どういう仕様の実行環境なんだ?
グラフや絵を描けたり、画面上のピアノの鍵盤叩くと音が出せるとか、
なにやら色々とできるようなのだが
というかpipであれこれ山盛りにされてる環境にも思える
Scratchだと思ってた
2022/06/09(木) 23:16:22.96ID:1tSt6fQl
ideoneとColab(Jupyter)だと機能がダンチだから土俵がちがう
2022/06/09(木) 23:20:50.91ID:1tSt6fQl
66デフォルトの名無しさん
2022/06/10(金) 03:26:54.12ID:v7zmV4Lt vscodeって途中のコードいじってると下記の折り畳み全部開いちゃうじゃん。あれ超鬱陶しい
2022/06/10(金) 12:08:03.84ID:sFhUkWJJ
関数の引数型説明(アノテーション?)をつけるとき、intやstr等の組込み型ではなく、クラスのインスタンスの場合どのように書けばよいでしょうか
2022/06/10(金) 12:38:18.30ID:Lq4KcKs2
https://docs.djangoproject.com/ja/3.2/intro/tutorial05/
このページの最初のコードをshellモードでやってもtimezone has no 'now'って出るんだけどなんでだよ
ついでにいうとsettings.pyでuse_tz = Falseにすると逆に日本時間になってTrueにするとUTCになる
このページの最初のコードをshellモードでやってもtimezone has no 'now'って出るんだけどなんでだよ
ついでにいうとsettings.pyでuse_tz = Falseにすると逆に日本時間になってTrueにするとUTCになる
2022/06/10(金) 14:22:36.04ID:Lq4KcKs2
解決
from django.utils import timezone
じゃなくて from datetime import timezoneって書いてた
from django.utils import timezone
じゃなくて from datetime import timezoneって書いてた
2022/06/11(土) 10:31:55.75ID:yOzdOwl+
超初心者です!古いMacでも出来ますか?
2022/06/11(土) 11:18:37.09ID:85fUpHB3
>>70
https://homepages.cwi.nl/~jack/macpython/index.html
これだとバージョン古いからMac-on-Linux化してLinux側で動かすか
リモートでもいいならWebブラウザのGoogle Colabやクラウド上のLinuxでやれる
https://homepages.cwi.nl/~jack/macpython/index.html
これだとバージョン古いからMac-on-Linux化してLinux側で動かすか
リモートでもいいならWebブラウザのGoogle Colabやクラウド上のLinuxでやれる
2022/06/11(土) 11:20:32.01ID:IHQzlSUe
>>67
例えばpandas(pd)のデータフレーム(df)なら
import pandas as pd
def some_func(df: pd.DataFrame, some_num: int = 42) -> pd.DataFrame:
df2 = df.cooy()
# 処理
return df2
例えばpandas(pd)のデータフレーム(df)なら
import pandas as pd
def some_func(df: pd.DataFrame, some_num: int = 42) -> pd.DataFrame:
df2 = df.cooy()
# 処理
return df2
74デフォルトの名無しさん
2022/06/12(日) 08:55:03.32ID:LQ+2P+LS サポート期限すぎたMac使ってそう
2022/06/12(日) 18:06:38.20ID:9B8stwi/
leetcodeの問題解いてるんだけどさ
コードをvscodeとかのエディタ上で再現しようとしてもinputはleetcode側がやってるから、コードコピペしてもうまく動かないってことか?
Input: strs = ["flower","flow","flight"]
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
# 回答をここに書いた
こういうクラスを実行する場合って
solu = Solution()
solu.longestCommonPrefix()
こんな感じにすると思うんだが、エラーが
NameError: name 'List' is not defined
とかになるんだよね
コードをvscodeとかのエディタ上で再現しようとしてもinputはleetcode側がやってるから、コードコピペしてもうまく動かないってことか?
Input: strs = ["flower","flow","flight"]
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
# 回答をここに書いた
こういうクラスを実行する場合って
solu = Solution()
solu.longestCommonPrefix()
こんな感じにすると思うんだが、エラーが
NameError: name 'List' is not defined
とかになるんだよね
2022/06/12(日) 18:18:33.18ID:d5yVlq+K
そのくらいはimportしろよ
77デフォルトの名無しさん
2022/06/12(日) 18:22:48.72ID:V8Tt9ICP エラー文も読めないのか
新しいpythonならlist[str]だバカタレ
新しいpythonならlist[str]だバカタレ
2022/06/12(日) 18:23:08.52ID:fSdhUbKc
79デフォルトの名無しさん
2022/06/12(日) 18:42:58.91ID:w/rq6Our nameErrorとかattributeErrorと最低限のエラーぐらい読めるようになろう
問題といてる場合じゃない
問題といてる場合じゃない
2022/06/12(日) 19:23:48.95ID:9B8stwi/
2022/06/17(金) 03:56:57.46ID:i0EppADi
>>1
def reverse(url): return url[::-1]
lst = [ ['=v?hc','taw/','moc.e'], ['.www','//:sp','tth'], ['but','uoy'] ]
yt = ''.join( lst[0] + lst[2] + lst[1] )
id_lst = ['MOYukLAWwkK', 'A4c_Lbwf-Jw', '0glgH5rR_po']
for id in id_lst: print( reverse( id + yt ) )
"".join("ht_t_ps://ja_.wiki_pedia.o_rg/_wiki/朝鮮神宮".split("_"))
def reverse(url): return url[::-1]
lst = [ ['=v?hc','taw/','moc.e'], ['.www','//:sp','tth'], ['but','uoy'] ]
yt = ''.join( lst[0] + lst[2] + lst[1] )
id_lst = ['MOYukLAWwkK', 'A4c_Lbwf-Jw', '0glgH5rR_po']
for id in id_lst: print( reverse( id + yt ) )
"".join("ht_t_ps://ja_.wiki_pedia.o_rg/_wiki/朝鮮神宮".split("_"))
82デフォルトの名無しさん
2022/06/17(金) 05:22:40.60ID:eircCDFG >>1
reverse = lambda *argv: [ '//:sptth'[::-1] + url[::-1] for url in argv ]
lst_url = reverse('IPq5AyxxvpM=v?hctaw/moc.ebutuoy.www',
'0EgauYFUN8N=v?hctaw/moc.ebutuoy.www',
'48132/-/selcitra/pj.tnediserp',
'4456111984139806941/sutats/oobnolihsusta/moc.rettiwt',
'81605591320X602502201/txt/elpmis/pj.og.ldn.iakkok',
'1021=morf?15978662os/hctaw/pj.oedivocin.www',
'8xebddeeiYY=v?hctaw/moc.ebutuoy.www')
print(*lst_url, sep='\n')
reverse = lambda *argv: [ '//:sptth'[::-1] + url[::-1] for url in argv ]
lst_url = reverse('IPq5AyxxvpM=v?hctaw/moc.ebutuoy.www',
'0EgauYFUN8N=v?hctaw/moc.ebutuoy.www',
'48132/-/selcitra/pj.tnediserp',
'4456111984139806941/sutats/oobnolihsusta/moc.rettiwt',
'81605591320X602502201/txt/elpmis/pj.og.ldn.iakkok',
'1021=morf?15978662os/hctaw/pj.oedivocin.www',
'8xebddeeiYY=v?hctaw/moc.ebutuoy.www')
print(*lst_url, sep='\n')
83デフォルトの名無しさん
2022/06/17(金) 08:29:57.19ID:doPvN/Dz これを三項演算子で書くことってできますかね?
if a:
if b or c:
print("1")
else:
pring("2")
if a:
if b or c:
print("1")
else:
pring("2")
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★5 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- 自分、馬鹿なのでおっしゃる意味がわかりません
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
