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

■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

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

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードう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

〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2021/03/21(日) 15:01:23.60ID:rOmbGrT+
はいはい。病院でお医者さんにはなしてあげてね
2021/03/21(日) 15:08:07.65ID:ba25SXqE
つまらん煽りは他所でやってくれ
と、俺が言ってみる
2021/03/21(日) 17:19:57.60ID:LD2dmgE2
>>58
print関数は引数のオブジェクトの文字列表現を出力する関数で
range(3)の文字列表現は'0 1 2'じゃなく'range(0, 3)'
なのでprint(range(3))を実行するとrange(0, 3)と表示される

ちなみにlistなら'[0, 1, 2]'みたいな表現になるから'0 1 2'と表示したいなら自分で加工する必要がある
例えばprint(' '.join(str(x) for x in range(3)))
62デフォルトの名無しさん
垢版 |
2021/03/21(日) 17:51:46.12ID:sFWHtMDC
>>> print(*range(3))
0 1 2
2021/03/21(日) 19:05:58.83ID:7CdIp7EP
>>62
優勝!
2021/03/21(日) 19:14:50.12
処理Aが同じで
無限ループしたいときと、任意回数ループしたいときを分けたいんだけど

n = 10 if 条件 else 99999999
i=0
while i < n:
_print('処理A')
_time.sleep(1)
_i += 1

無限ではないにしろこれでいいんだけど
n=99999999がなんかかっこ悪い・・
別の書き方ありませんか
6564
垢版 |
2021/03/21(日) 19:22:48.42
自己解決・・かどうかわからないけど
でいけた
でも
for i in range(float('inf')):
は無理だった・・
2021/03/21(日) 19:30:08.83ID:g0m1T9az
n = 10
a = 1 if 条件 else 0
i = 0
while i < n
_print('処理A')
_time.sleep(1)
_i += a
2021/03/21(日) 19:46:13.27ID:Duyg5pmm
[*iter]
68デフォルトの名無しさん
垢版 |
2021/03/21(日) 20:27:26.58ID:c1Fm1qtl
>>61
その「文字列表現」を決定するのが__repr__では?
__repr__の実装に言及せずとも説明できると言うのは?
単に名前を出さないだけで言及していないことにはなってないな
2021/03/21(日) 20:28:41.92
>>66
変数増えるけどスッキリしてこっちのがいいですね
ありがとうございました
2021/03/21(日) 20:41:49.95ID:Duyg5pmm
numberを継承したoo.__lt__にreturn falseをブチ込む
71デフォルトの名無しさん
垢版 |
2021/03/21(日) 22:32:14.97ID:OQZaxlrU
よろしくお願いいたします。
aList = [[1,2]for j in range(3)]
aList = [[1,2]]*3

2つとも[[1, 2], [1, 2], [1, 2]]の多重リストが作られたのですが、なぜ下の文で多重リストができるのか教えてほしいです。
2021/03/21(日) 22:53:21.54ID:mInw6BRh
>>68
>いきなり__repr__の実装に言及しても訳分からんだろ

__repr__の実装に言及する必要なんてない
__repr__が果たしてる役割を超初心者にも分かる言葉で説明すればいいだけ

それができないと感じるのは自分がその事柄を理解してないから
理解してれば「オブジェクトだから」とか「アロケーションされてないから」みたいな嘘を教えたりしない
2021/03/21(日) 22:56:09.50ID:mInw6BRh
文字列表現がどう決まるのか、どういうついでに言っておくとprint()で使われるのは__repr__じゃなくまず__str__な
__str__が定義されてない場合だけfallbackして__repr__が使われる

公式チュートリアルに書いてるので勉強してね
2021/03/21(日) 23:00:23.62ID:mqfsmAhv
>>71
クラスの操作だからクラスをそういうふうに
作ればそうなる
何故とか本質がどうとかは設計した人の考え
便利だなと思えば使えばいい
75デフォルトの名無しさん
垢版 |
2021/03/21(日) 23:09:36.59ID:OQZaxlrU
>>74
ありがとうございました!
気にせず使っていきます
2021/03/21(日) 23:22:30.25ID:ztnIU7M3
>>71
listやtupleやstrなどのシーケンスと呼ばれる型に対する*演算子は
シーケンスの中身の要素を指定した回数分繰り返した新しいシーケンスを返すように定義されてる
2021/03/22(月) 04:49:29.76ID:FrFq7CFg
>>71
FAQ中のFAQだから余計な世話かもしれんが、見た目が同じでも同じリストでは無いことに気をつけてね

リストの中身は要素への参照だから、それを複製した後者は同じオブジェクトを3回参照してる(cでいえば、同じポインタx3)
見た目が同じオブジェクトを判別するためにid関数が用意されているから試してみて
前者をl1, 後者をl2として
map(id, l1), map(id, l2)
前者のidは全て同じ、後者は新たに作った[1,2]を3つ並べてるので3つとも違うはず

参照の概念をややこしいと思いlistを避けたいと思うのなら、型の同じ要素を入れる場合は常にarrayを使う事を推奨する(標準型の範囲では)
具体的な値の配列なので、型チェックも入り、効率もよい
2021/03/22(月) 05:17:24.56ID:FrFq7CFg
i for rangeイディオムは不要な添字iが気持ち悪いよな…
ロジック通りに、ビルトイン関数のみでミニマルにやるには
memoryview([1, 2]).cast('b', shape=(3, 2)).tolist()
[[1, 2]
[1, 2]
[1, 2]]
でいいだろう
tolistはリスト表示するためなのでお好みで
数字が小さいからbyte配列にしたけど、普段使いならlongにしといた方が気楽かも
2021/03/22(月) 05:25:09.41ID:FrFq7CFg
byteって言ってるのにbyte抜けてたごめん
memoryview(bytes([1, 2])).cast('b', shape=(3, 2)).tolist()
[[1, 2]
[1, 2]
[1, 2]]
です、試してないけど多分動くだろ
実用にはbytesはarray('l', seq)へ差し替えてね
2021/03/22(月) 12:40:31.58ID:uAAKNqiZ
while True:
_a = 1
_break
print(a)

インデント下がって定義した変数をwhileの外でも使うのは普通なのでしょうか
スコープの判断で可読性が落ちるかなと個人的に思ったのですが慣れですかね
2021/03/22(月) 12:53:03.86ID:bzTgC/HJ
>>80
それしきの深さならえんでねーの

それにしてもパイセンいわく
while True:で安易に無限ループ作るのはイクナイ(・A・)らしいが
2021/03/22(月) 14:08:43.53ID:Rzf9eLtl
>>80
python的には普通らしい
ただ見通しが悪くなる場合が多いのと
勘違いによる不具合を起こさないために自分は極力避けてる
2021/03/22(月) 15:33:16.54ID:uAAKNqiZ
>>81,82
なるほど
とりあえずは現状維持にしときます ありやした
2021/03/22(月) 21:09:47.56ID:cezDTGq+
>>81
Cなら for(;;) とか出来たけど
itertools.count() とかダサいねん。
2021/03/22(月) 21:32:57.72ID:H+rnlZW/
whileTrueって使ったらあかんの?
2021/03/22(月) 21:38:05.40ID:bzTgC/HJ
良くはない、らしい
有能なパイセン談
2021/03/22(月) 21:45:46.85ID:OQmrOVJK
while str:
2021/03/22(月) 21:52:49.95ID:10Qa0fDO
するな
コールバックがあるから
2021/03/22(月) 23:07:52.41ID:g8se3Ggw
Python公式リポジトリ検索してみたらほんと腐るほど見つかって嫌になった。
全部挙げきれないので一例:
https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Tools/ccbench/ccbench.py#L163
https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/test/test_shlex.py#L265
https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/concurrent/futures/thread.py#L74
https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/concurrent/futures/thread.py#L202

それならまだしもwhile 1:とかもある↓
https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Lib/idlelib/hyperparser.py#L240
2021/03/22(月) 23:19:25.97ID:xEZrbDTS
>>85
無限ループ自体が処理によってはCPU負荷が上がったりするし
break条件をミスってると不具合があった時にループから抜けずに変な所でエラーになる可能性も出てくる
だから最初から有限回ループして確実に止まるループ設計の方が安全だよね、っていう考えはある
(まあwhile True breakの方が書きやすい場面も多いけどね)
2021/03/23(火) 00:43:05.32ID:ch/yi3Wo
無限ループは無限ループが必要だから使うのであって、
有限のイテレータのループで書き換えられるときには当然使わないのでは?
有限と無限を同列に並べて比較すること自体がなんか違和感あるけど。
2021/03/23(火) 00:48:20.02ID:BKCKGFNi
while自体の処理が重いから使うなってならわかるけどミスったら困るから使うなって、理由になってなくない
使いどころも無視してとにかく使うなって、先人の下手なトラウマが一人歩きしてるだけじゃねーの
2021/03/23(火) 02:55:45.64ID:71b8io/J
まあループの有限性が事前にわかるようならそれを表現するためにwhile 1: 使うのは適切じゃないって話だろ。
実際ループ変数ぽいの使ってなぜか while 1使ってるコードは新人にはよくある。
2021/03/23(火) 02:59:15.82ID:QbxOC6mC
>>81
ポンコツかよ
他に無条件ループ作るコンストラクトがあるなら教えてほしいわ
上の方のレスにある9999999決め打ちでもするのか?
他にもハック挙がってるけどどう考えてもwhile True:より筋が悪いよね?
先輩が言ってたから正しい?自分の意見を持とうよ?
2021/03/23(火) 03:26:27.50ID:ND3VvCO4
while yes=sir:
2021/03/23(火) 03:33:34.75ID:QbxOC6mC
…と偉そうなこと言った手前、俺の習慣を紹介しておく
while True や1は仕様上そうするのが筋なので、確かに冗長と批判できる
truthyならwhile "comment":でも、while ...:でもよい
何の情報も含まないwhile True/1:よりは良い習慣
後者は…それが思いつかなかった時だな、コメントがbreakの傍に付いている方が合理的なケースもあるので

....は1, 2, 3, ...という一般に認知されている表記なので、trueを表現するtruthy(5シンボルとしては、1/Trueより優れている事は明らかだろう
97デフォルトの名無しさん
垢版 |
2021/03/23(火) 03:49:20.93ID:zpYNNqZr
>>64
if not cond:
__while True:
____print('処理A')
____time.sleep(1)
for i in range(10):
__print('処理A')
__time.sleep(1)

この部分だけ書けていわれたらこうするわ
2021/03/23(火) 06:54:35.77ID:ZYJLDniu
>>97
無限ループいつ抜けるの?

それと条件によって無限ループか有限ループかという2つの処理分岐が並列に書かれてないから意図が伝わりにくいよ
2021/03/23(火) 06:55:42.42ID:ZYJLDniu
>>96
ちょっと何言ってるかわからない
100デフォルトの名無しさん
垢版 |
2021/03/23(火) 10:05:15.95ID:HSGkWRhe
GOTO文のように無限ループ文を作れば解決する
2021/03/23(火) 14:54:00.54ID:CY92qFOb
while Trueするのはdo~whileしたい場合
そうじゃないなら書き直したほうがいいかもね
2021/03/23(火) 15:46:37.69ID:mu30Ep9P
ちょっとしたデバッグのときに
lst = [
__{"a":0,"b":1}
__'''
__,{
___"a":2,
___"b":3
__}
__'''
]
シンタックスエラー
'''は#の複数版かと思ったら単なる文字列だったんですね。
こういうときは、ショートカットキーで複数行に#入れたり消したりする人の方が多いのかな
2021/03/23(火) 16:21:30.22ID:ch/yi3Wo
>>102
さすがにコメントアウトショートカットで出来ないエディタを使うことはないな。
絶対に何も入れちゃいけない環境以外ではVSCodeいれちゃう。

何も入れちゃいけない環境でデバッグしなくちゃいけなくて、
lstに入れるだけいいんだったら、複数バージョンの代入文を作っておいて、if Trueとかでどれを実際に実行するかは決める、ぐらいはやるかなあ。
あとはなるべく改行を入れないで#一つでコメントアウトできるようにするって手も考えるかな。
2021/03/23(火) 17:12:08.45ID:q1xbaFi+
Octaveだと正方行列とその逆行列の乗法で単位行列が得られる。
GNU Octave, version 4.4.1
octave:1> a = ([4,5,7;-4,1,5;-10,3,8])
octave:2> b = inv(a)
octave:3> a * b
ans =
1.00000 0.00000 0.00000
0.00000 1.00000 0.00000
0.00000 0.00000 1.00000

でもPython3だと単位行列が得られたのかよく分からない。
これで正しいの?

Python 3.7.3
>>> import numpy as np
>>> a = np.array([[4,6,7],[-4,1,5],[-10,3,8]])
>>> np.linalg.inv(a)
array([[ 0.04666667, 0.18 , -0.15333333],
[ 0.12 , -0.68 , 0.32 ],
[ 0.01333333, 0.48 , -0.18666667]])
>>> b = np.linalg.inv(a)
>>> a @ b
array([[ 1.00000000e+00, -4.44089210e-16, 0.00000000e+00],
[ 2.77555756e-17, 1.00000000e+00, 0.00000000e+00],
[ 1.38777878e-17, 0.00000000e+00, 1.00000000e+00]])
105デフォルトの名無しさん
垢版 |
2021/03/23(火) 17:43:46.60ID:SeSscUQI
>>101
どうして?
106デフォルトの名無しさん
垢版 |
2021/03/23(火) 18:30:46.10ID:f4Z9PwYH
>>104
計算誤差でしょ
非対角成分は0にかなり近い
2021/03/23(火) 18:47:26.71ID:WuxMgk/9
行列が違うのはおいといてOctaveもnumpyも基本は浮動小数点数の演算だから丸め誤差などによりピッタリゼロになるとは限らない

Octaveで
format long e
を実行した後に確認すると多分ゼロになってないと思うよ

表示形式でゼロに見えてるだけだと思う

うちの環境だと0.00000じゃなくて-0.00000になる成分あるし
108デフォルトの名無しさん
垢版 |
2021/03/24(水) 19:57:42.51ID:8oiSJv/j
例えば、Pythonを用いたプログラミングの本を読んでいるとします。
その本の著者のサイトにPythonコードが「.pyファイル」としてダウンロードできるようになっているとします。

ある読者は、普段からIDEではなく、Jupyter Notebookを愛用しているとします。

そのため、この読者は、Jupyter Notebookのセルに著者の「.pyファイル」をロードして、コードを読んだり、変更したり、実行したりしたいと考えています。

この読者はどうすればこれを実現できるのでしょうか?
2021/03/24(水) 20:00:25.38ID:jO3PWgho
この読者って自分のこと?
2021/03/24(水) 20:04:40.15ID:QbxZqHqJ
>>108
IDE使おうが同じことすると思うのだけど
なぞなぞに思える
jupyter notebookは知らないがセルじゃなくてシェルなのだろうな
2021/03/24(水) 20:19:50.51ID:8oiSJv/j
>>109-110
ありがとうございます。

>>109
自分のことです。

%load sample.py

とセルに入力すればいいようです。
112デフォルトの名無しさん
垢版 |
2021/03/24(水) 20:23:27.54ID:8oiSJv/j
JupyterLab上でグラフを表示するには、

%matplotlib inline

というコマンドをセルに入力して実行しないといけないということで、実際今までそうしてきました。

今日、このコマンドを入れずに、

# %load matplotlibexample.py
import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(-3, 3, 1000)
plt.plot(t, np.exp(-t**2)*np.sin(20*t))
plt.title('sample graph $x(t)=e^{-t^2}\sin(20t)$')
plt.xlabel('t')
plt.ylabel('x')
plt.show()


を実行したところ、ちゃんとノートブック上にグラフが表示されました。

%matplotlib inline

はもう入力しなくてもよくなったのでしょうか?
2021/03/24(水) 20:48:55.22ID:SWND22zP
>>110
横からだけどセル。
notebook用語なのでpython以外のカーネルにしてもセル。
実行単位なんだけどあるセルで算出してる結果に依存してる別のセルを実行する際に依存先のセル未実行だとエラーとかいろいろめんどい。

一世を風靡したスライド
I Don't Like Notebooks
https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/mobilepresent?slide=id.g362da58057_0_1
2018年のjupyterconでの発表でした
https://conferences.oreilly.com/jupyter/jup-ny/public/schedule/detail/68282.html
当時の反応(英語)
https://www.reddit.com/r/Python/comments/9aoi35/i_dont_like_notebooks_joel_grus_jupytercon_2018/
2021/03/25(木) 01:57:39.05ID:5Yw77v05
もしかして.pyファイルをjupyter notebookで実行する方法聞いてるだけか
何でそんな長々と意味不明なこと書いてるの?
2021/03/25(木) 02:19:54.21ID:Lv/3T6MK
回りくどくて草
2021/03/25(木) 04:13:00.19ID:TW8zAfP8
統失の特徴
2021/03/25(木) 08:02:26.68ID:np4EPf1w
コピペで大体実行できるかな

別にサクラエディタでもVSCodeでもいいから.pyファイルを開きコピペ
ただしsjisとUTF-8とか
あとインデントに気を付ける
コピペでインデントがずれて動かないことがあるので
そこは丹念に直す
2021/03/25(木) 08:21:24.72ID:ITDRmOAn
tkinterで
200*100じゃなくて
200x100と小文字のエックスするの何故なのか教えてほしいです……
2021/03/25(木) 08:39:22.55ID:3ixfSSYA
乗算じゃなくて
ピクセルで領域指定だからジャネーノ
とエスパーしてみる
120デフォルトの名無しさん
垢版 |
2021/03/25(木) 14:26:26.89ID:B8lnjfbN
以下のコードを実行すると、グラフがf(x) = 0のグラフになってしまい、意図したものと異なってしまいます。
どう修正すれば意図通りの結果が得られますでしょうか?
ベクトル化についてよく分かっていないので、そのあたりがあやしいと思っています。

import numpy as np
import matplotlib.pyplot as plt

PI = np.pi

def func_x(t):
if 0 <= t:
return np.sin(t)
else:
return 0

npfunc_x = np.vectorize(func_x)

t = np.linspace(-PI, PI, 10000)
x = npfunc_x(t)

plt.plot(t, x)
plt.show()
2021/03/25(木) 14:28:00.54ID:Nsykn7+b
>>120
そう言う時はxの値を見てみましょう
やり方は「python デバッグ」でググったら出てきます
2021/03/25(木) 14:33:03.93ID:B8lnjfbN
>>121
xは全部0の配列になっています。
2021/03/25(木) 14:37:18.67ID:3ixfSSYA
0ベクトルにナニかけても0やぞ
算数やりなおせ
2021/03/25(木) 14:53:03.27ID:B8lnjfbN
>>123
意味が分かりません。

xは関数の戻り値です。
xに0などかけていません。
2021/03/25(木) 14:57:17.24ID:8wVz7C90
出力は一番目の値で決定されるから、return 0.0とするかotypeを指定しろ

不等号逆向きにすると動作するけど、そのコードが動作しないのは出力が整数型に固定されて切り捨てでゼロ扱いされるから
126デフォルトの名無しさん
垢版 |
2021/03/25(木) 15:03:02.76ID:B8lnjfbN
>>125
return 0.0
に変更したら、動作しました。
ありがとうございました。
2021/03/25(木) 15:26:22.39ID:vHK7Evso
今まではプログラミングの経験はなく、
教養としてpythonを勉強し始めました。
ただ仕事で使う機会もなく、いまいち勉強に身が入らない感じです。

皆さんはどうされているんですか?
ここのスレだと仕事で使う人が多いんでしょうか。
2021/03/25(木) 15:39:56.92ID:3ixfSSYA
>>127
完全に趣味
だがしかし
使いこなせれば仕事でも楽ができる
2021/03/25(木) 15:43:34.06ID:3ixfSSYA
>>124
インデントが崩壊していたからてきとーに見てた
正直すまんかった

>>125横じゃが
>return0.0
こんな手があるんだ!


小数まで計算するとコンピュータがついてけないからって
都度都度四捨五入処理をするよう組まれてた
ン十年前のプログラムを
Pythonで書き直すときにハマったのをおもいだした
2021/03/25(木) 16:49:02.78ID:Q40pz2EP
>>127
ブラゲーのbot運用
その次がエロサイトのスクレイピングと自動分類
たまに業務データの解析で使うときもある
2021/03/25(木) 16:54:43.80ID:5Yw77v05
>>127
こういうのは何か目標がないと続かないと思います
仕事で使うとか〇〇を作りたいとか
2021/03/25(木) 17:24:40.64ID:XNAp3E0g
>>127
相場売買のAIを作ろうと思ってます
2021/03/25(木) 18:19:37.27ID:3ixfSSYA
>>132
Pythonのノウハウよりだいじなことをおしえてやろう


相場をヲチって
よしんば正確に予想できるアルゴリズムが完成したとしても
自分が混ざった時点でそのぱーふぇくと理論は崩れる

覚えとけよw
2021/03/25(木) 18:21:37.93ID:GJzYUDdl
自分もスクレイピングやファイルの分類
ほぼエロ目的
だからそれのために情報を得るしそれに応用できないテクニックや知識は全部無駄
プログラミングを仕事にしてるわけでもないからpython自体の勉強なんかしないしやる気も出るわけない
135127
垢版 |
2021/03/25(木) 18:43:38.10ID:2VOe+7hV
やっぱり、そうなんですよね。
一通り基礎は理解したものの、その後のモチベーションが…

ヒューマンリソースマシーンのような、
プログラミング的なゲームでもやっておいた方が良い気もしてきました(笑)
2021/03/25(木) 20:05:46.21ID:nCOBs6jg
モチベーション無いなら無理に続けなくても
2021/03/25(木) 20:10:08.44ID:KmpgWBAt
ヒューマンリソースマシンはあれアセンブラだぞ
使える命令とかマシン語まんま
実用的なプログラムの勉強にはならない
頭の体操だね
2021/03/25(木) 20:55:15.36ID:2VOe+7hV
>>137
プログラミングの勉強になると思ってプレイしてました(笑)

あんな感じでプログラミングの勉強になるアプリとかゲームはありますかね?
2021/03/25(木) 21:49:59.94ID:KmpgWBAt
>>138
カルネージハートですね。
https://ja.m.wikipedia.org/wiki/%E3%82%AB%E3%83%AB%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%8F%E3%83%BC%E3%83%88
本家はもう10年前だけど外人製のフォロワーゲームとか探せばある
2021/03/26(金) 00:00:46.47ID:0ubO4ros
こういうやつか
https://www.gamespark.jp/article/2019/06/08/90338.html
> その後、実際に本作の開発を開始する際、ゲームプレイの面でリサーチをし、2つのシステムがとても気に入りました。
> 『ファイナルファンタジーXII』のガンビットシステムと『カルネージハート』のプログラミングインターフェースです。
> 私の本作における目標は、ガンビットのシンプルさと『カルネージハート』の戦術的奥深さの間の妥協点を見つけることでした。
2021/03/26(金) 19:02:57.03ID:v+/VCeWZ
>>127
金盾へのハッキングが面白くて、熱い
2021/03/26(金) 22:05:49.82ID:ndqtKa4D
>>141
そんなもんひたすらそっち系検索エンジンに特定のクエリ送り続けるだけやん
143デフォルトの名無しさん
垢版 |
2021/03/27(土) 11:59:14.14ID:tPWOTzAz
以下の辞書内包表記がエラーになります。
どうすればいいでしょうか?

import math
def normalize_coefficients(n, D):
return {(s, i):0.5*math.sqrt(n/s) if s != 0 else (s, i):math.sqrt(n) for (s, i) in D.keys()}
2021/03/27(土) 14:43:44.30ID:cpUHfD3R
エラーに間違ってるとこを示す矢印っぽいのが出てるでしょ
elseの後の`(s, i):`を削除して
145デフォルトの名無しさん
垢版 |
2021/03/27(土) 16:38:19.00ID:56gcLvkb
>>143
この手の質問はエラーメッセージと、本当はどんな動作を期待していたのか書いた方が答えてもらいやすい
2021/03/27(土) 19:35:40.12ID:sxUgZiKM
面倒な質問だと「窓から投げ捨てろ」と言う
2021/03/28(日) 02:30:55.99ID:AdvYUXyR
普通Dとnに何入れたらそうなったかくらいは書くだろ。
2021/03/28(日) 02:59:44.68ID:XX3dha92
urllib.parse.urlencode()で辞書を渡す場合、値にリストを含む場合の変換結果について教えてください。

例えば以下のようなリスト値を含む辞書データを与えた場合
{'a': [123,456]}
a=[123, 456]
という風にリスト内の値の区切りに空白が入った文字列としてエンコードされてしまいます。(123, と456の間)
(実際には記号や空白は%xxや+でエンコードされます)

a=[123,456]
のようにリスト内の値の区切りに空白を含めない文字列としてエンコードする方法はありますか?
2021/03/28(日) 04:32:58.94ID:3NgZ3Zxf
bytesでないdictのvalueはstrが呼ばれてstrにされる実装だから単純な方法では無理やな
https://github.com/python/cpython/blob/master/Lib/urllib/parse.py#L950

* 文字列化したlistの空白を消すquote_plusを作ってurlencodeのquote_viaに渡す
* dictのvalueにlistでなく文字列を渡す
* dictのvalueに渡すlistを、空白が入らないように文字列化する__str__を実装したクラスでラップする

どれかをどうぞ
2021/03/28(日) 06:10:39.39ID:XX3dha92
ありがとうございます。
やはり単純にはいかないんですね。
素直にリストではなく、初めから文字列で格納するようにします。
2021/03/28(日) 20:49:47.97ID:JC3QvQ/6
すっごいしょーもない質問なんですけど
0から始めるならおすすめの初心者向けサイトってありますか?
2021/03/28(日) 21:02:38.12ID:2n/niDAm
うちProgateでhtmlとかPythonとか自分が使いそうなやつ1ヶ月くらいやってあとはひたすらググって必要なやつだけかいつばんでいった
phpとかもやったけど結局使ってない
2021/03/28(日) 21:45:28.92ID:AdvYUXyR
サイト見てやるくらいならオライリーの初めてのpythonでも買って全部読む方がよっぽどマシだぞ
2021/03/28(日) 21:58:48.98ID:zZ3ybzIq
いきなり本なんか買ったって続かないよ
サイトから入るのはいいと思うけどね
2021/03/28(日) 22:01:08.75ID:Wfs5bmxs
俺はやりたいことが決まってからpythonやりだしたのと
別の言語はできたから一通りfizzbuzzとか書いてから
必要なライブラリ検索して作るっていう工程を繰り返したけど
いきなり無からやり出すんだったら本あったほうがいいと思う
2021/03/29(月) 01:58:30.08ID:WE/JZmPT
ありがとうございます。本買うことにします。
2021/03/29(月) 12:17:33.31ID:np5gG6ll
初めてのPythonはGoogleブックスで150ページぐらい読めるから、買う前に目を通してみて解るなら購入したらいいよ
俺にはとてもゼロから始める人に勧めるものとは思えない
158デフォルトの名無しさん
垢版 |
2021/03/30(火) 16:15:46.49ID:/x/CBTP/
Python で連鎖律を解きたいです。
微分には「SymPy」といったライブラリが適していると、解説サイトにありました。

y = u^3
u = x^3 + 2x^2 + 3x + 4

この y の微分を求めたいです。
上記の答えは、

3(x^3 + 2x^2 + 3x + 4)^2 (3x^2 + 4x + 3)

になるそうなんですが、うまくゆきません。
以下に試したコードを書きます。

diff((x**3 + 2*x**2 + 3*x + 4)**3)
→ ×

a = diff((u**3) * (x**3 + 2*x**2 + 3*x + 4), u, x)
a.subs(u, x**3 + 2*x**2 + 3*x + 4)
→ ×

どなたかお知恵をお貸しください。よろしくお願いします<(_ _)>
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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