【まず1嫁】くだすれPython(超初心者用) その57

■ このスレッドは過去ログ倉庫に格納されています
2022/05/22(日) 22:25:08.74ID:/hGmbW/Z
当スレに★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 ###
2022/08/11(木) 15:27:49.52ID:JwgkCgjA
めちゃ無駄だけど1024x768以外の画像は捨てちゃうぐらいしか思いつかん...
2022/08/11(木) 16:47:42.06ID:X31RE6bn
>>798
できました、min_sizeとmax_sizeも指定する必要があるみたいです
Python3.10でやりました、TypeErrorにはなりませんでした

google_crawler = GoogleImageCrawler(storage={'root_dir': '流星フォルダ'})
filters = dict(size='=1024x768')
google_crawler.crawl(keyword='流星', filters=filters, max_num=10, min_size=(1024, 768), max_size=(1024, 768))
801デフォルトの名無しさん
垢版 |
2022/08/11(木) 18:48:40.17ID:fKEJQx+N
>>800
ありがとうございます。早速、試してみましたが、
バージョン違いのためかNameError となりました。
現在、Python 3.9.12 のバージョンなのですが、
ColabでPython3.10にするにはどうすればいいですか?
2022/08/11(木) 18:56:22.30ID:X31RE6bn
エラーもコピペしてくれよ...
2022/08/11(木) 19:26:39.81ID:L6VcpDZr
バージョン違いって断定してるんだからそれでいいだろ
他の可能性を検討しようとするなよ
2022/08/11(木) 19:33:40.56ID:RPSv5K1g
そんな能力あるのになんでColabのバージョンは変えられないの?
2022/08/11(木) 19:36:46.54ID:X31RE6bn
>>801
Python 3.9.7が残っていたからicrawlerインストールして>>800実行したら
問題無くできたのでPython3.9.12でもできるハズ
Colabが悪いのではないでしょうか?
2022/08/11(木) 19:38:03.60ID:m6fa3uRQ
windowsの3.9.13でも問題ないな
ちゃんとgoogleの検索結果取得できてないか、htmlパースに使ってるbeautifulsoup4かlxmlがおかしいかかな
2022/08/11(木) 20:01:15.15ID:X31RE6bn
>>801
まさかだけどNameErrorって、NameError: name 'GoogleImageCrawler' is not defined じゃないよね?
>>800の前にfrom icrawler.builtin import GoogleImageCrawler してるよね?
808デフォルトの名無しさん
垢版 |
2022/08/11(木) 20:18:34.40ID:fKEJQx+N
>>807
ありがとうございます。早速、試してみましたが、
見事に解決しました。
>>800
改めてありがとうございます。
お陰さまで、1024×768のサイズの画像のみを収集することができるようになりました。
2022/08/11(木) 20:24:18.19ID:7cUH/Z7I
>>807
せめて>>794ぐらいは見てから書きなよ...
まあエラーのコピペ待ちでいいかと
2022/08/11(木) 20:25:02.29ID:7cUH/Z7I
>>808
えっ、まじで>>807だったの?...
2022/08/12(金) 05:55:29.63ID:vrgQH6RZ
(超初心者用)
812デフォルトの名無しさん
垢版 |
2022/08/12(金) 11:12:46.10ID:OS8SYcAO
jupyternotebookでセル内のコードが長くなるため,
defで定義した関数を同一ディレクトリ内のmy_func.pyに保存し
メインのコードmain.py 内でimportすることにしました.

my_func.pyに保存した関数内では,numpyを使っているのですが,numpyが認識されません.
main.py でnumpyをインポートしていますが,その効果をmy_func.py内に待避した関数に及ばせるためには
どうすればよいでしょうか.
813デフォルトの名無しさん
垢版 |
2022/08/12(金) 11:54:38.42ID:V16IFZ6j
my_func.pyでnumpyをインポート
2022/08/12(金) 13:39:22.16ID:f9Pn84YJ
>>813
ありがとうございます。早速、記入してみたのですが、
my_func.pyでnumpyが認識されました。
main.py内にインポートしているnumpyどうすればいいですか?
815デフォルトの名無しさん
垢版 |
2022/08/12(金) 14:10:01.68ID:AKRIAlbQ
main.pyでnumpyを使っていなければいらない
816デフォルトの名無しさん
垢版 |
2022/08/12(金) 15:01:37.64ID:P/MIlql5
そのライブラリを直接呼ぶコードがあるファイル毎にimportする。直接呼ばないなら不要

main.py
__import funcs

__funcs.test()


funcs.py
__import numpy

__def test():
____print(numpy.random.randint(0, 10))
2022/08/12(金) 15:14:18.69ID:f9Pn84YJ
>>815
>>816
ありがとうございます。早速、試してみましたが、
見事に解決しました。
818101
垢版 |
2022/08/12(金) 16:36:29.89ID:SBMPsz73
普通、FunctionalをFucって略すか?


幻塔というゲームのテスト用のサーバーネームが
JP Fuc Test Server
だったらしく炎上してた
2022/08/13(土) 03:28:02.47ID:nuG2c1c/
mypyでエラーにならないように pathlib.Path の型を示したいんだが、これはどうすりゃいいのかね?
type()でチェックすると
<class 'pathlib.WindowsPath'>
となるんだが pathlib.WindowsPath と指定してもエラー出るし
2022/08/13(土) 03:32:04.91ID:nuG2c1c/
動的な基底クラスはmypyでチェックできないって言ってる人がいたわ
そういうことなのか?
821デフォルトの名無しさん
垢版 |
2022/08/13(土) 03:54:53.99ID:xLCZiP8v
pylanceだとpathlib.Pathでいけるけどmypyあかんか?
2022/08/13(土) 07:30:43.65ID:nuG2c1c/
>>821
お、いけたわ
さんくす
823デフォルトの名無しさん
垢版 |
2022/08/14(日) 04:23:42.79ID:aYzApZcG
pythonでcuda使いたいが、お勧めのサイトありますか?
ちなみにcudaは3090とかの方がいいですか?
2022/08/14(日) 09:47:31.64ID:7VRuM4Xa
にほんごでおk
825デフォルトの名無しさん
垢版 |
2022/08/14(日) 10:12:56.20ID:A6qxvdf0
[python cuda]🔍
2022/08/14(日) 11:25:05.75ID:Gnb69e0i
Noneの比較はis を使うべきで==を使うべき"でない"なんて記述を見かけるのですが、

if dictData.get('key') == 'hogehoge':
__echo 'OK'

例として辞書のgetメソッドのようにキーが無ければNoneを返すような場合で上記のような判定もすべき"でない"のでしょうか?
この場合dictData.get('key', '')のように、キーが見つからない場合の値を明示的に書くべき?
(ただdict.get()のようにコントロールできないのもありますよね)
2022/08/14(日) 12:06:39.34ID:KzxSNF0d
if hoge is None:
こんな風に定数Noneと比較する場合の話だよ
828デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:18:23.17ID:T9w5rPHY
Noneを==すると稀にNone==None ->Falseあるから避けよう。バグのもと。これはググれば解説あるから読んで

で、普通は
if dic.get('key') == 'foo':
__func()
だけでしょう。あればする、なければ終わり

if dic.get('key') == 'foo':
__func()
else:
__func_b()
でもいいけど。

基本的にNoneやFalseを判定しにいかない。まずTrue判定をして、その反対をelse (if)で受ける

ただまあNone / Falseだけを知りたい場合があって
そのときは
if dic.get('key') is None:
__func()
などと書く。英文として読みやすいからよい

つか辞書から無い可能性あるkeyのgetは避けたい
db検索的に書きたいならget使わずtry節書いてKeyError専用処理作ろう
2022/08/14(日) 12:29:39.79ID:Gnb69e0i
>>827,828
なるほど、明示的にNoneであることの比較の場合はということですね。ありがとうございます。
>>828さんの最後の件も承知しました。
2022/08/14(日) 12:34:40.20ID:Gnb69e0i
>>828
あ、やっぱりすみません、最後のget使うべきでない理由って簡単に教えていただけますか?
今回、API等の応答で、辞書の目的のキーがあったりなかったりするような応答で、キーがあれば拾う、無ければ無視、という単純なものなのですが、それでもgetは使わないほうが良かったりしますか?
831デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:41:52.12ID:VI2zLni0
>>682
1000%同意する
832デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:45:09.72ID:Xz0meKRj
>>830
dict['key']が存在してvalueがNoneの場合にTrueになっちゃうから、キーの不存在判定だけしたいなら'key' in dictの方がいいんじゃないかな
833デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:50:22.70ID:T9w5rPHY
>>830
エラーは出ていいんよ
逆に握りつぶしちゃいけない
というかgetってなんのためにあるんだ?

try:
__dic[input()]:
____print('ある')

except KeyError:
__print('ねえわ')

except Exception as e:
__print(e.__class__.__name__)

外部入力受け付けるのって鬼門なんでこういう感じで書きたい
keyerrorは想定できるし、別の意図してないエラーも拾いたいだしょ
834デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:51:39.01ID:T9w5rPHY
>>833
しつれい
try:
dic[input()]
print(1)
835デフォルトの名無しさん
垢版 |
2022/08/14(日) 12:53:45.52ID:A6qxvdf0
>>830
その用途なら、getでもいいんじゃない?
>>832が言う様な違いはあるけれど、キーが不存在でNoneが返る場合と、キーが存在するが値がNoneの場合とを、区別する必要があるかどうか、考えて決めれば良いよ
2022/08/14(日) 15:22:06.37ID:nJs5efs8
キーに階層があって、途中のキーがなかったりすることがある場合なんかだと、
区別する実益はあるかもしれんね
一応、.get('key', {}) なんて方法もあるけど
2022/08/14(日) 15:22:39.42ID:Gnb69e0i
>>832
失礼しました。最初の例ですとおっしゃるとおりですね。内容まで取得するケースも想定してました。

>>833-835
ありがとうございます。要件などふまえ考えてみます
838デフォルトの名無しさん
垢版 |
2022/08/14(日) 16:52:51.09ID:T9w5rPHY
ああわかった

db['key1': 0, 'key2':0,,,]
if key1:
__print('ある')
else:
__print('ない')

こんときgetじゃないといかんのだな
あるいは

try:
__value = db[a'']
__print('ある')
except KeyError:
__print('ない')
except:
__print('未定義エラー')
2022/08/14(日) 22:47:50.08ID:549c+n4K
Ruby の偽は、nil, false だけ。
これ以外は真

でも、Python, PHP, JavaScript などは、
各型に偽値がある。空文字列・空配列・空辞書など

だから、とんでもなくバグるし難しい。
すべての型の可能性を考えないといけない

文字列型・配列型・辞書型ならとか。
だから、TypeScript みたいな型チェックツールが作られた
840デフォルトの名無しさん
垢版 |
2022/08/14(日) 22:57:22.86ID:I2sSNpX6
>>839
死ね
841デフォルトの名無しさん
垢版 |
2022/08/15(月) 09:22:07.96ID:c1YCm0IS
>>838
どういうこと?
842デフォルトの名無しさん
垢版 |
2022/08/15(月) 13:07:09.65ID:RvdaGkLE
>>841

dict['key'] = value

dict.get('key') = value

取得したvalueがFalseになるとき、つまり0とかNoneとか空白のとき
if dict['key'] is not True になる。値はあるにも関わらず
一方
if dict.get('key') is Ture なので、期待する挙動としてはgetのが正しい

値がダミー(0など)の辞書の用意とかありうるので
843デフォルトの名無しさん
垢版 |
2022/08/15(月) 14:06:42.23ID:0GtlIRwB
ああそういうことか
re.matchとかre.searchみたいなことをやりたいのか

辞書のキーがあるかないかbooleanの判定と値への処理は別の方がいいと思う
if 'key' in dでもKeyError処理はどっちでもいいけど
2022/08/15(月) 15:15:52.94ID:gMKahu5b
>>842
keyに対するvalueが0やNoneの時に
dict.get(key) is Trueにはならんやろ

dict.get(key, [default])を使うのは
keyに対応する値がデフォルト値の場合と
keyに対応する値が無くてデフォルト値が返される場合を同じように処理したい時だけ

bool判定したいならin演算子
KeyError使うのはkeyが存在しない状況が例外的な場合
845デフォルトの名無しさん
垢版 |
2022/08/15(月) 15:38:01.56ID:RvdaGkLE
>>844
ありゃならんな
これはすまん。なんか勘違いしとった。

stackoverflow why dict.get(key) instead of dict[key]?
参照
846デフォルトの名無しさん
垢版 |
2022/08/15(月) 19:52:08.21ID:KlKo2Eqq
わざわざメソッドとして用意されるほどの価値がないんだよなあ
2時代は重宝したのかな
2022/08/15(月) 20:37:42.59ID:Xxg2cjph
if (val := dic.get(key)) is not None:
は使うけどな
2022/08/16(火) 04:15:40.22ID:MkpTU7zo
次のコードがあります
h=[[[]]]*10
h[0].append([0,0])
理想としては
>[[[], [0, 0]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]]]
となってほしいのですが、現実は
>[[[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]]]
となってしまいます
どうしたら理想の形になるでしょうか?
2022/08/16(火) 07:26:37.30ID:GKkpSlmU
内包表記使って初期化
850デフォルトの名無しさん
垢版 |
2022/08/16(火) 08:04:39.39ID:9vnyTUy7
[[[], [0, 0]] if i == 0 else [[]] for i in range(10)]
851デフォルトの名無しさん
垢版 |
2022/08/16(火) 08:06:35.47ID:9vnyTUy7
h=[[[]] for i in range(10)]
h[0].append([0,0])
852デフォルトの名無しさん
垢版 |
2022/08/16(火) 11:31:22.44ID:2x3mrzZQ
要件後出しまくりとか
ゴールポスト移動させまくりとか
チョンメンタルの香具師とは付き合いたくないな
2022/08/17(水) 13:20:06.97ID:5W303LUa
差別主義者で今どき香具師とか使ってるジジイとか逆に誰も付き合いたくないだろ
854デフォルトの名無しさん
垢版 |
2022/08/17(水) 16:37:01.73ID:tMNGLQPx
pandas のread_excelで式が入っている箇所の値を計算値ではなく、
整形されたテキスト値の方を取りたい場合はどうしたら良いのでしょうか?

数値で6.6がテキスト値として”7”として表示されている”7”の方の値をとりたいです。
2022/08/17(水) 18:19:41.22ID:8E4xUz8+
>>854
Excelファイル内のデータとしてあるのは数値の6.6だけで
文字列の7という値はデータとしてファイルには存在しないので
直接読み取るのは無理

read_excelでdtypeやconverterを指定して数値の6.6を文字列の7に変換するか
一旦dfに読んでから変換するか
2022/08/18(木) 04:13:52.58ID:OEqoy/Kx
0.00000001から10000.xxxxくらいまで取り得るfloatの変数を、数字の表記で文字列に変えたいのですが、
str()だと、0.0001未満の値が"1e-05"のような指数表記になってしまいます
一方f-string(format)だと、".8f"等で全桁表記はできますが、小数点以下が常に8桁で0で埋められてしまいます
(例 0.00001→0.00001000)
末尾には余計なゼロは付けず、かつ指数表記にならない形でfloatを文字列にする簡単な方法はありますか?
rstrip('0')など使って余計なゼロを処理するしかないでしょうか?(この場合、100.0などのゼロは削除できないので判定が必要そうで単純にはいかなそうですが)
2022/08/18(木) 08:18:05.71ID:cEC5FUVy
>>856
numpy.format_float_positional
ググったらすぐ出て来た
2022/08/18(木) 08:58:00.71ID:8X5QyRnM
>>855
ありがとうございます。やはりできないのですね。
オプション探してみましたがそれらしいものがなかったので。
場所ごとに与えられた式が同じとは限らないので、
エクセル側で読み込み用の文字列を作成することにしました。
2022/08/18(木) 16:36:53.18ID:Sofq2Da+
条件分岐について質問です
3の倍数であるかどうかを判定する関数func1()とfunc2()を書いたのですが、
どちらの書き方のほうが良いでしょうか?
https://paiza.io/projects/mbEoYGp5wy7cU2oqpoTLbA
2022/08/18(木) 16:40:44.96ID:s/eA3jUD
当然1
2022/08/18(木) 16:48:56.73ID:X/mZUHYK
>>859
3の倍数が例外的な事象と言う事を表現したいならワンチャン2の可能性もあるかも
862859
垢版 |
2022/08/18(木) 17:00:51.08ID:Sofq2Da+
回答ありがとうございます

なぜfunc2()の書き方はあまり良くないのでしょうか?
よろしければ理由も教えて貰えるとありがたいです
863デフォルトの名無しさん
垢版 |
2022/08/18(木) 17:56:26.08ID:GYRCxwaB
すべてのnumは3の倍数かそうでないかのどちらかである、つまり必ずどちらかの処理が実行される事が一目で理解できる点ではfunc1がベター
一方で3の倍数の時は処理を行わず早期リターン、3の倍数でない時は長い処理を行う、といった場合はfunc2
2022/08/18(木) 18:55:31.69ID:Rcho8+Nh
いや、return入れるならelseのときもreturnしろよ
両方入ってるなら2でもいいと思うけど、片方だけ終わらせるために入れるなら関数なのかサブルーチンなのかわからんからダメだろ
865859
垢版 |
2022/08/18(木) 19:10:48.59ID:Sofq2Da+
>>863
なのでこの場合はfunc1()なんですね
ありがとうございました
866859
垢版 |
2022/08/18(木) 19:15:55.23ID:Sofq2Da+
>>864
コードはなるべく短い方がいいと思ったので使わなくて済むところでは使いませんでした
関数なのかサブルーチンなのか分からないと駄目とはどういうことですか?
867デフォルトの名無しさん
垢版 |
2022/08/18(木) 20:03:27.19ID:Ly249j22
こっちのが好き

def is_multiple(num): return num%3 == 0
2022/08/18(木) 21:14:57.76ID:uWlfhjm8
>>864
アラカン先輩ちぃーすっ
2022/08/18(木) 21:32:20.64ID:49aIw1a5
>>867
判定処理と判定結果を表示する処理を分離しましょうという意味では同意する

けどis_multipleという関数名で3の倍数かどうか判定されるのは違和感しかない

じゃどういう名前にするのがいいかと考えると判定処理をわざわざ関数化するほどではないんじゃないかという気がする
870デフォルトの名無しさん
垢版 |
2022/08/19(金) 03:09:01.80ID:FK1lT4BX
def b_is_multiple_of_a(a: int, b:int): return bool(b % a == 0)

if b_is_multiple_of_a(a=5, b=10):
__print('可読性低すぎる')
871デフォルトの名無しさん
垢版 |
2022/08/19(金) 11:27:50.19ID:scgMDta4
アーリーリターンは何も珍しいこと時や無い
872デフォルトの名無しさん
垢版 |
2022/08/19(金) 11:28:55.77ID:scgMDta4
>>870
関数改行すんならifも改行すんなよ
873デフォルトの名無しさん
垢版 |
2022/08/19(金) 11:30:34.29ID:scgMDta4
しないなら
2022/08/19(金) 18:24:24.93ID:opjWCie4
def func3(n):
p = 0
while n > 0:
p += n % 10
n //= 10
return not (p % 3)
2022/08/20(土) 10:11:04.26ID:FuR2a/w3
>>710
https://github.com/opencv/opencv/issues/22088

4.6.xは色々ダメポ
2022/08/20(土) 23:28:18.84ID:89Fpjor3
a = [1,2,3,4,5]
b = [2,3,4,5,6]
c = []

for i in range(5):
c.append(a[i] + 2*b[i])

こういうのをリスト内包表記で書くのは無理でしょうか
2022/08/20(土) 23:35:43.31ID:mymTDVML
aとbの要素数が同じだったら[i+2*j for i,j in zip(a,b)]でいけね?
878デフォルトの名無しさん
垢版 |
2022/08/20(土) 23:38:46.37ID:cHNXWuBU
c=[x+2*y for x,y in zip(a,b)]
2022/08/20(土) 23:39:36.80ID:mymTDVML
普通にrangeでも
c=[a[i]+b[i] in i for range(5)]でできるかな
880デフォルトの名無しさん
垢版 |
2022/08/21(日) 01:03:28.95ID:uqbZs7r8
どうでもいいけど
c = [i + (j * 2) for i, j in zip(a, b)]
と書きたいな俺は
# (1*i) + (2*j) のようなときのみ(2*j)でも可
# 計算スタックは()でくくる
初心者のうちは特に気をつけたい。動けばいいやんは動かなくなる原因になる
881デフォルトの名無しさん
垢版 |
2022/08/21(日) 01:23:15.12ID:m1bd5huk
>>876
好きなのを選び多摩へ
c = [(a+1) + (b+2)*2 for a,b in enumerate([i for i in range(5)])]
c = [(a+1) + b*2 for a,b in enumerate([i for i in range(2, 7)])]
c = [a + 2*b for a,b in zip([i for i in range(1,6)],[j for j in range(2,7)])]
2022/08/21(日) 01:38:11.30ID:X34OpE8X
ありがとうございます!
2022/08/21(日) 06:47:07.90ID:SCvvVl9f
def main(argv: Sequence[str]) -> None:


これってどういう意味というか、なにがやりたいんですか?

def main(argv):
ならmainにargvを渡すだけで分かりやすいんですが
2022/08/21(日) 10:46:46.24ID:1U/+Hx4a
>>883
型ヒントっていうヤツでしょ
おじさんはもう新しいこと覚える気力ないから
どういう機能かは自分でググってくれ
2022/08/21(日) 10:59:40.26ID:LqJQ4HOS
>>883
argvの型がstrのシーケンスで戻り値の型がNoneってこと
シーケンスはlistやtupleのように長さが事前に分かってて各要素にインデックスで直接アクセスできるようなコレクションの総称
886デフォルトの名無しさん
垢版 |
2022/08/21(日) 13:04:30.41ID:j3ukytx2
そこまで型ゴリゴリにするならpythonじゃなくても(じゃない方がむしろ)良いと思うから
放置してる
2022/08/21(日) 13:07:09.50ID:JM/HSGoB
>>884
型ヒントでググりました
注釈だそうですね
要するにいらないんじゃないか!
888デフォルトの名無しさん
垢版 |
2022/08/21(日) 14:03:22.39ID:uqbZs7r8
型ヒント(と開発環境)があると作業効率がずっと上がる
https://imgur.com/jtSAuu4.png
型ヒントのない世界は無
https://imgur.com/BuL77EC.png

オジジでもない限り、初学者は型ヒントつけるクセつけてったほうが
大きいコード書くようになったときなんかに助かるで
889デフォルトの名無しさん
垢版 |
2022/08/21(日) 14:29:46.94ID:j3ukytx2
そこでハンガリアンですよωωω=2πf
890デフォルトの名無しさん
垢版 |
2022/08/21(日) 14:38:59.74ID:jAGl7lqb
実際使ってみると、版画リアンはものすごく楽。
名前というものは被るように出来てるものらしい。
とはいえ推奨はしない。
891デフォルトの名無しさん
垢版 |
2022/08/21(日) 14:45:29.71ID:HDFqY1eo
Pythonでローカルサーバーを立ててhtmlの確認をしたいのですが、SSIを使いたいため、以下のスクリプトを使用しています。
https://github.com/danvk/ssi-server/blob/master/ssi_server.py
GITからクローニングして、MacOS + python 3.10.5で動作確認させたところ問題なく動きました。
Windows10 + Python 3.10.5で実行すると、localhostへのアクセス時に文末のエラーが出て動きません。
同一のクラウド上のファイルを参照して実行しています。GITからはMacで落としましたが、改めてwindowsで落としても同じでした。
MacOSでは動いているのでWindowsの環境なのかと思いつつ、何が原因かわからずにいます。
アドバイスください。

------エラー文章--------
Exception occurred during processing of request from ('::1', 58693, 0, 0)
Traceback (most recent call last):
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 683, in process_request_thread
self.finish_request(request, client_address)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 37, in __init__
SimpleHTTPRequestHandler.__init__(self, request, client_address, server)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 651, in __init__
super().__init__(*args, **kwargs)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 747, in __init__
self.handle()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 425, in handle
self.handle_one_request()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 413, in handle_one_request
method()
本文長すぎの為続きは次に書きます
892デフォルトの名無しさん
垢版 |
2022/08/21(日) 14:46:16.53ID:HDFqY1eo
続きです。


File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 40, in do_GET
SimpleHTTPRequestHandler.do_GET(self)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 655, in do_GET
f = self.send_head()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 679, in send_head
path = self.translate_path(self.path)
File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 57, in translate_path
content = ssi.InlineIncludes(fs_path, path)
File "C:\Users\UserName\iCloudDrive\web\ssi.py", line 31, in InlineIncludes
content = open(path).read()
UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 1163: illegal multibyte sequence
----------------------------------------
2022/08/21(日) 15:29:25.25ID:hzy7Wudw
GITって何て読むの?
じっと?ぎっと?
2022/08/21(日) 15:41:28.40ID:gzL+j7A8
kit
git
895デフォルトの名無しさん
垢版 |
2022/08/21(日) 15:50:29.96ID:Tt3lkFsn
>>888
え、上が当たり前の感覚なんだけど
昔の人は下の状況でどうやってコード書いてたの? 引数とかオプションとかメソッドとか
ソースあたったりdir連打?
2022/08/21(日) 15:50:38.42ID:tAy7F/Zf
>>892
たぶんこれでいけるんじゃね
content = open(path, encoding = "utf-8").read()
2022/08/21(日) 16:17:28.38ID:EVXa4h0m
>>888
その比較は型ヒント関係ないやろ
898デフォルトの名無しさん
垢版 |
2022/08/21(日) 16:25:35.41ID:S3KIc3UD
>>895
help
899デフォルトの名無しさん
垢版 |
2022/08/21(日) 16:28:13.56ID:HDFqY1eo
>>896
ありがとうございます。
まだ上手く直せていないのですが、試していたらindex.htmlに日本語があるとWindowsではエラーが出ることがわかりました。
ssi_server.py、ssi.pyで正しく日本語を読むようにすればいいということでしょうか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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