Pythonのお勉強 Part67

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ aa97-ncNf)
垢版 |
2022/05/26(木) 13:45:15.95ID:veL/wiLO0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇 Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
42デフォルトの名無しさん (JP 0Hd3-glao)
垢版 |
2022/05/28(土) 20:42:29.02ID:t9I4tP9kH
>>41
そういう人間はそこでおしまい
2022/05/28(土) 21:01:08.64ID:+HgSvHyYH
こういうことできないかなー、って思ったらそれがやりたいことになるんじゃないの
それがないなら進化する意味がない
2022/05/28(土) 21:11:46.20ID:hZokRc+F0
AtCoderみたいなのでもやってれば
2022/05/28(土) 21:12:27.13ID:0GsbTYu7M
俺もやりたいことないからバイト始めたけどスクレイピングおすすめ
2022/05/28(土) 22:16:49.17ID:I3uIL+k90
小説でも良いし音楽でも良い
自分が書きたいと思ったものを見つける事だ
人に教えてもらうものではない
47デフォルトの名無しさん (ワッチョイ 512c-glao)
垢版 |
2022/05/28(土) 22:49:04.74ID:BDCTKJeU0
pythonに限らんけど
別に何がしたいわけではなくて
pythonを勉強してるんですっていうやつおるけど
ガッコーの勉強の延長線上なんだろうな
俺は時間のムダだと思う
48デフォルトの名無しさん (テテンテンテン MMf3-pUQD)
垢版 |
2022/05/28(土) 22:54:59.28ID:AXe4zJa2M
o2popperのコマンドラインでの使い方を教えてくれませんか?
2022/05/28(土) 22:56:09.06ID:EmXYdsgj0
ヲタクの答えだろそれは
普通の人は仕事なんて嫌々やるもんだよ
2022/05/28(土) 22:57:22.45ID:sPLhNmnVM
>>41
日頃何かにイライラしないならプログラマには向いてないから他の仕事考えた方がいいよ
51デフォルトの名無しさん (ワッチョイ 2197-jyCk)
垢版 |
2022/05/28(土) 23:08:23.51ID:BwCRI8LG0
>>41
なんかプログラミングのバイトみたいなのを見つけちゃうと早いけど、
それが叶わない場合は、一旦Pythonの勉強から離れて色々なソフトウェア技術を見て回るのがいいんじゃないかな。
Pythonで始めるなんとか、みたいな本を検索してやってみたいものを探す、でもいいけど
他の趣味と結びつけてみる、という手もある。
もし無趣味な場合、趣味をどうやって見つけるかというのは、多趣味ですぐいろいろなことに興味を持つ自分には簡単なんだが、人によっては難しいらしいねー
52デフォルトの名無しさん (ワッチョイ f101-c3cz)
垢版 |
2022/05/28(土) 23:08:35.76ID:m8noV3wp0
function annotationsって
関数に-> つけるやつ。
一般的なんかな。俺は最近知った
2022/05/28(土) 23:15:48.77ID:EmXYdsgj0
あまりぐじゃぐじゃ書かないのがパイソニックだと思ってるけど共通ライブラリーとかだと書いてあったほうが使い方が分かりやすいとは思う
54デフォルトの名無しさん (テテンテンテン MMf3-pUQD)
垢版 |
2022/05/29(日) 01:50:12.38ID:QKgJcbosM
oauthは初心者スレでは荷が重い?
55デフォルトの名無しさん (ワントンキン MMd3-ddm6)
垢版 |
2022/05/29(日) 12:04:25.91ID:TJxXQVo8M
質問です。
pip install virtualenv --user
を実行したら、

ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.
というエラーメッセージが表示されました。
ネットで検索しますとwgetでダウンロードして、
ダウンロードしたファィル名を指定して
pip install [ファィル名]
で、インストールすれば良いと書いてあるのですが、
ハッシュがアンマッチになるのに、この対応で良いのでしょうか?
56デフォルトの名無しさん (アウアウウー Sac5-2OYr)
垢版 |
2022/05/29(日) 12:04:40.01ID:au8Lw3/Ma
FastAPI
OCID
2022/05/29(日) 12:06:27.51ID:XdbmYBSw0
>>54
oauthそのものの話ならそもそもスレチ
58デフォルトの名無しさん (ワントンキン MMd3-ddm6)
垢版 |
2022/05/29(日) 12:51:21.31ID:TJxXQVo8M
>>55
補足です。
少なくとも、
この対応で良い場合があるみたいなのですが、
だとすると、何の為のハッシュチェックなのか?
問題ないのに何故エラーにするのか?
PIPのバグなのか?
思うのですが…
2022/05/29(日) 13:15:32.43ID:I2Wd9ruS0
printで進捗率を表示したいと思っているのですが、
たとえば1%ごとに普通に表示すると、100行になってしまいます
tensorflowのモデルフィッティングなどでは同じ位置にlossやaccuracyが上書きされるような形で表示されますが、
そういう表示の仕方を普通の人が利用できるしくみはないでしょうか?
2022/05/29(日) 13:33:48.92ID:ZHIVO+Y+
DB操作の非同期処理で疑問が。

同期処理の場合
書き込みAの処理中に、読み込みAと(順に)読み込みBの処理が合った場合
書き込みAが終わったら、読み込みA→読み込みBを同期的に処理する

非同期処理の場合
書き込みAが処理中であっても、(書き込みAにより編集される前のデータから)
読み込みA、読み込みB(処理の早い順)で非同期的に処理する

これって書き込みAなどのCRUD処理が秒単位で重くないと非同期処理にするメリットってそんなに無いような気がするのですが違いますか?
あと同時接続何百何万人規模ではなく、個人1人の使用目的の場合とか
同期処理で良いと思うのですが、そもそも非同期・同期の設定がある時点で
同期処理にも何らかのメリットがあるのかな、と思いました
2022/05/29(日) 14:29:12.27ID:1MH1mBHPM
書き込み一回10msだったとしても100人同時接続なら1秒待たされる可能性があるけど、全ては要件仕様次第としか言えぬ
62デフォルトの名無しさん (ワッチョイ 512c-glao)
垢版 |
2022/05/29(日) 14:31:33.54ID:EXZXz4rv0
>>59
ググればいくらでも出てくるでしょ
ちょっとは調べようで

print(f'\r{i}', end='')
でもいいし
tqdmでもいいしcursesでもいいし

もしvscode使ってんなら出力じゃなくターミナルに表示しないと上手くいかないと思う
2022/05/29(日) 15:22:34.87ID:Syfd9jj8a
>>60
> 同期処理にも何らかのメリットがあるのかな、と思いました
ボンクラでも問題が起きにくいと言う多大なメリットがあるので君は当分同期処理使ってなさい
てか同期処理で問題ないならわざわざ非同期にする必要はない
2022/05/29(日) 15:29:24.32ID:t5iXjroi0
なんか嫌な奴湧いてんな
2022/05/29(日) 15:55:38.12ID:5IzeDC4a0
お勉強するところだから無知な奴がいるのは当然なのに、
そういうの相手にマウント取る悲しい自称上級者w
2022/05/29(日) 16:02:14.09ID:JO5+5GtDM
単芝
2022/05/29(日) 16:03:07.23ID:aE6JHMpI0
>>60
非同期処理はI/O待ちの間に他の処理をしたい場合に使う
同期処理はI/O待ちの間にプログラムがブロッキングしてもいい場合に使う
同期処理のほうがコードを書くのは簡単
2022/05/29(日) 17:42:48.97ID:NybAhe+H0
お前にはお似合いだと
69デフォルトの名無しさん (テテンテンテン MMf3-pUQD)
垢版 |
2022/05/29(日) 17:54:02.58ID:3yFikEsSM
ごめん、実戦的すぎたね。
2022/05/30(月) 09:11:35.52ID:5oYvN3s60
VSCodeで作ったPythonプログラムって、exe化して配布または販売しても問題ないのかな?
マイクロソフトの許可いる?
2022/05/30(月) 10:09:33.27ID:qo78whZ80
どこの共産主義世界だよ
2022/05/30(月) 10:10:43.76ID:Ws+6yq+g0
販売自体は問題ないけど、exe化するとgplなコードもくっついてきたりするから、使用するライブラリ次第でコード公開も必要だよ
2022/05/30(月) 10:33:46.18ID:lNh5h5A4M
exe化って中身のコード普通に見れるよね?
2022/05/30(月) 13:13:03.39ID:Ws+6yq+g0
法律家じゃないからそれでOKかは分からん。
GPL3だと差し替え手段も要求されるから難しいかもしれんね。dll付きのライブラリとかはないのかな?
2022/05/30(月) 15:33:56.97ID:P+6uAT0v0
うるせー馬鹿
2022/05/30(月) 16:17:27.30ID:ys4YnaqgM
なんでTensorflowのPython3.10版がいつまで経っても出ないんですtか?
2022/05/30(月) 16:19:17.43ID:yxbyBGGF0
if 'aaa' in str or 'bbb' in str or 'ccc' in str:
をもう少しすっきり書けないものか
2022/05/30(月) 16:46:27.83ID:Ws+6yq+g0
any((ss in s) for ss in ('aaa', 'bbb', 'ccc'))
全然スッキリじゃないな…
2022/05/30(月) 17:08:37.30ID:Ws+6yq+g0
if re.search('aaa|bbb|ccc', s):とか
2022/05/30(月) 17:17:56.59ID:x2PH8vu3H
スレチかもしれんが業務用のexe作成とかってどうしてるんだろうな
2022/05/30(月) 17:29:00.47ID:yxbyBGGF0
endswithみたいに、str.contains(('aaa', 'bbb', 'ccc'))
みたいに書けるといいのに
2022/05/30(月) 18:14:17.88ID:4ToCs4sv0
if 'aaa' == str or 'bbb' == str or 'ccc' == str:

だとしても雑多だし関数化する
2022/05/30(月) 18:33:44.99ID:yxbyBGGF0
それはinで書ける
2022/05/30(月) 18:51:26.01ID:4ToCs4sv0
それはわかるよ
in相当のことを自前でせんとってこと
2022/05/30(月) 19:04:54.87ID:p2Xa6iEo0
#背景:歌詞データベースがGoogleに歌詞データを抜かれていると思い、英語の2種類のアポストロフイ(’‘)を駆使してモールス信号で歌詞内に
# REDHANDED(現行犯)とコーディングした珍事件。ちなみにgoogle は裁判で負けてるはず。
# https://japan.cnet.com/article/35138686/
#これを再現したい。

#モールス信号(REDHANDED)のトン、ツーを二つのアポストロフィで置換
morse = '.-..-.......--.-...-..'.replace(".", "’").replace("-", "‘")

#歌詞文字列(シナトラの「あなたはしっかり私のもの」を100回リピート)
lyrics = """
I've got you under my skin
I've got you deep in the heart of me
""" * 100

new_lyric = ""
#モールス信号のプレースホルダ
place = 0

for letter in lyrics:
if letter == "'":
letter = morse[place]
place += 1
if place >= len(morse) -1:
place = 0
new_lyric += letter
#もっとPythonぽくしたいですね。。。
2022/05/30(月) 19:08:06.27ID:dlCXa2NnM
意図としてはanyを使うのがいいんだろうけど
違う意味のinが似たような形で出てくるから異常に読みにくくなるよね

このケースは何を使うにしても関数化は必ずやる
2022/05/30(月) 22:31:40.00ID:U5Ze+/Ia0
>>80
nuitka一択じゃろ
2022/05/31(火) 09:00:56.25ID:GrG3Jwc2H
>>87
こんなのあるんだ
おしえてくれてありがとう
89デフォルトの名無しさん (ワッチョイ d9f6-2OYr)
垢版 |
2022/05/31(火) 10:29:06.88ID:aYJaA5wp0
>>85
place = (place + 1) % len(morse)
で後の if は不要
2022/05/31(火) 10:43:43.43ID:EHPnPCKa0
モールスなら文字と文字の区切りは要らんのだろうか
91567 (スップ Sdb3-pTra)
垢版 |
2022/05/31(火) 11:17:31.24ID:OPRRJe0Od
tempsum //= 10

これ //= なんなのか全然わからない

途中の

if l1: tempsum += l1.val; l1 = l1.next

の ; とか .val とかも全然わからん
こういうのググっても出てこないんだよなあ

ゼロから始めるLeetCode Day42「2. Add Two Numbers」
https://qiita.com/KueharX/items/4c2734a5d0b5db87f1b3
2022/05/31(火) 11:39:57.90ID:EHPnPCKa0
/= とだいたい同じ
答えが整数になる割り算
2022/05/31(火) 11:52:52.65ID:SloIHam50
https://docs.python.org/ja/3/reference/simple_stmts.html#augmented-assignment-statements
https://docs.python.org/ja/3/reference/expressions.html#binary-arithmetic-operations
クイック検索不可だから他言語知らないとここまで読んでないとわからんのかーと思ったが
インタラクティブシェルで調べられるね
>>> help('//=')
94デフォルトの名無しさん (ワッチョイ b95f-2OYr)
垢版 |
2022/05/31(火) 13:47:33.38ID:0AmUKgF70
>>90
もちろん要る訳だが今回の趣旨は一見ばれないウォーターマークを入れることだから
そういうのは気にしなくても良いのでは
9555 (ワントンキン MMa5-ddm6)
垢版 |
2022/05/31(火) 17:04:23.43ID:d/XuXT1YM
>>55
関連の質問です。

wget 「virtualenvダウンロード先URL」
を入力したら
-bash: wget: command not found
になりました。

それで
brew install wget
を実行したら、
途中で
「"javac"コマンドラインツール使用するには、JDKをインストールする必要があります。
このJava Developer KitのダウかロードWebサイトにアクセスするには、"詳しい情報…"をクリックしてください。」
というダイアローグメッセージが表示されました。

それで
[詳しい情報…]ボタンをクリックすると、
ブラウザに「http://get.adobe.com/flashplayer/」のホームページが表示され
Access Denied
You don't have permission to access "http://get.adobe.com/flashplayer/"; on this server.
と表示されました。


どうしたら良いのでしょうか?
最終的にやりたいことは、vartualenvのインストールです。
そのためにwgetが必要であれば、まずwgetをインストールしたいのですが…

OSはMacOS 10.12.6です。
2022/05/31(火) 17:26:20.02ID:SloIHam50
>>95
OSが古すぎていろいろ他にも困ること多いだろうから
自分で解決できないならOS更新した方がいい
アポもユーザコミュニティも基本最新の2世代前までしかサポートしない
2022/05/31(火) 17:34:21.44ID:4uNWVkcD0
>>89
勉強になりました、ありがとうございました
2022/05/31(火) 19:30:15.24ID:6U4qyTDdM
>>95
wgetはjava不要だよ
wgetが依存しているその他のライブラリに引きつられて余計なパッケージまで更新しようとしてるんじゃないかな
brew install openjdk
で解決するかも
9995 (ワンミングク MM25-ddm6)
垢版 |
2022/06/01(水) 11:49:52.13ID:xH2t/PYEM
>>96
>>98
レスありがとうございます。

brew install openjdk
をやってみましたら、
OSバージョンが古すぎるって怒られました(^^);;

OSをバージョンアップして再トライします。
2022/06/01(水) 14:30:22.92ID:/wnAbUvUd
>>85
from itertools import chain
#(略)
ar_lyrics = lyrics.split("'")
morse *= (len(ar_lyrics) + len(morse)) // len(morse)
new_lyric = ''.join(chain(*zip(ar_lyrics, morse)))
メモリ使用効率や速度等ちょっとマシなはず
2022/06/01(水) 15:09:03.38ID:M4Zk1qxga
>>85
p = 0
new_lyric = ctypes.create_unicode_buffer(lyrics)
for n in range(len(new_lyric)):
if new_lyric[n] == "'":
new_lyric[n] = morse[p]
p = (p + 1) % len(morse)
print(new_lyric.value)
2022/06/01(水) 17:49:58.45ID:ZNxcjxh30
>>100,101
itertoolsのchain,*アンパック、c関数ライブラリーも含めて大きな気付きになりました、ありがとうございます。
予め歌詞をアポストロフィでsplitして、必要な分だけ連結したモールスと
zipする方法は思い付きませんでした。
zipの要素数の長さを「短い方に合わせる」という特性も効果的に使えるのは特に、
勉強になりました。m(_ _)m
103デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/01(水) 17:56:43.58ID:+trdaPAta
str とか bytes とかが immutable ?
hoge = 'abc'
hoge[1] = 'x' ← エラー
fuga = b'\x00\x01\x02'
fuga[1] = '\x11' ← エラー
これ回避する方法は原則的に無いのかな
ポインタでごにょごにょしたら怒られる?
2022/06/01(水) 18:24:42.49ID:ABgrvWo90
トリッキーにやると後で何したか判らなくなるので、自分が思う素直な実装が一番
1. アポストロフィの位置のインデックスを作る
2. コード順インデックス順にアポストロフィを置換する
基本方針はこれで、インデックスの作り方、置換の方法をpythonっぽくする
105デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/01(水) 18:36:14.24ID:+trdaPAta
pythonで
1文字=4byteとか(str)
1文字=1byteとか(bytes)
を前提として良いのかなといつも不安になる
2022/06/01(水) 18:50:52.98ID:yMcvFbQD0
bytearrayとしてなら任意に操作してもいいよね
でないとバイナリな通信やファイルフォーマット扱えないし
strとの変換はしないか失敗する前提にするだけ
107デフォルトの名無しさん (ワッチョイ 915f-/2p7)
垢版 |
2022/06/01(水) 18:53:53.06ID:7vDzwUWw0
>>103
普通の文字列なら
一回配列に変換してから、指定箇所の文字を変えて再度結合すれば回避できる
(少し回りくどいけど)
https://ideone.com/45RBfs
2022/06/01(水) 19:44:37.04ID:ABgrvWo90
'abcd'.encode() -> b'abcd'
b'abcd'.decode() -> 'abcd'

strは内部形式でバイト数とかは考えない
bytesという具体的な型にエンコードして操作する
終わったらデコードしてstrに戻す
109デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/01(水) 19:45:30.64ID:+trdaPAta
ctypes使うときに比べてパフォーマンス落ちる気がするんですよね
ctypesが速いという保証もなさそうだけど
110デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/01(水) 19:46:51.82ID:+trdaPAta
>>108
strの内部表現はUCS4では?
2022/06/01(水) 20:00:10.36ID:ABgrvWo90
それは処理系に依存するのでは
2022/06/01(水) 21:16:39.21ID:4Ni34VMTa
UCS-2 は衰退しました
2022/06/01(水) 21:54:57.69ID:pQ1QbGOaM
EUC時代到来
2022/06/01(水) 22:14:55.33ID:7/TQKK/g0
KPS 9566を使いたまえ
115デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/02(木) 12:36:08.09ID:MPFVtYTLa
勉強になりました
https://tech.mntsq.co.jp/entry/2021/05/21/140736
ほんとうにありがとうございました
116デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
垢版 |
2022/06/02(木) 12:39:25.70ID:MPFVtYTLa
こちらも参考になりました
https://www.youtube.com/watch?v=PQjdqQbjnLU
ほんとうにありがとうございました
117567 (ワッチョイ 2190-jzNG)
垢版 |
2022/06/02(木) 13:28:22.47ID:33kfmotx0
連結リストという概念を初めて知ったんだけど
pythonには標準でくみこまれてないんだよね?
2022/06/02(木) 14:05:46.85ID:3ZZlbCpS0
ないね
標準化しても汎用性が低いし、仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かったってのはあるあるなので、用意されなかったのかも
2022/06/02(木) 16:13:09.28ID:FBnHLBnp0
file1.py file2.py
とあり、file3.pyで、
import file1
もしくは
import file2
とします

1と2を切り替えるのは3のファイルの中身を書き換えることになりますが、
これをfile4.pyで行い、file3.pyでは
import file4
としたいです

file4.pyに
import file1
と書くだけではfile3.pyにfile1.pyが読み込まれません
どのように記述したらいいでしょうか
2022/06/02(木) 16:40:24.26ID:2bJMdcf90
>>119
それぞれに名前空間があってimportでどうなるか考える
https://docs.python.org/ja/3/tutorial/modules.html#packages

# file4
from file1 import *

ただfile3からはfile4.xxxでアクセスすることになるから
import file1と同一ではない
2022/06/02(木) 17:19:29.03ID:svdPFYkt
>>119
__init__.pyとか使ってやった方が管理しやすそうだけど
文字通りやるならこうかなたぶん

【file1.py】
var="File 1"

【file2.py】
var="File 2"

【file3.py】
from file4 import fn
print(fn.var)

【file4.py】
import file1 as fn

>> import file3
#-> "File 1"
https://colab.research.google.com/drive/1D4AKjHtj_KVasJ_nwjZ1OAp-kDY7iYuH
122567 (スップ Sdf3-jzNG)
垢版 |
2022/06/02(木) 18:03:37.66ID:aVRHc6YOd
>>118
調べたらこういうのがあったんだが
https://towardsdatascience.com/python-linked-lists-c3622205da81

ページの一番最後にコードがまとめてあるけど
66行目の return self って、流れ見ると、return self.tail が正しい気がするんだがどうだろう?

初心者だから正直良くわからん
2022/06/02(木) 18:33:52.64ID:3ZZlbCpS0
ミスだと思う。
コメント欄があるみたいだから教えてあげたら
2022/06/02(木) 18:35:52.69ID:aZCO8NlO0
>>118
>仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かった
そりゃ、配列の大きさが 1 万程度の比較的小規模な場合なんでしょ?そんな性能比較なんて意味ないですよね…
2022/06/02(木) 20:39:38.41ID:3ZZlbCpS0
意味ないかどうかは、一万未満で早くしたいのか、100万件以上のときだけ早くしたいのか、開発者次第だから分からんね
2022/06/02(木) 20:50:37.67ID:qTxX7xKb0
こんな無関係なスレでハノン氏を見かけるとはw
2022/06/03(金) 04:18:19.22ID:liVAJzUK0
私の環境ではtensorflow.python.keras.layersにBatchNormalizationが入っていないのですが、どうやったら入れられますか?
2022/06/03(金) 18:05:45.59ID:jly4Bs+DH
WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
これ意味わかりますか?
2022/06/03(金) 19:40:59.19ID:md39NJ8LM
あるシーケンシャルデータが
0
1000
1000
1000
10
1000
1000
5
4
1000
1000
1000
って配列があったときに10以下を切れ目にグルーピングして二次元配列作りたいんだけど、ワンライナーで書く方法ある?
2022/06/03(金) 20:27:17.91ID:mmKum4Qj0
>>129
https://more-itertools.readthedocs.io/en/stable/api.html#more_itertools.split_before
2022/06/03(金) 20:31:37.82ID:SNgr59AR0
何故かMemoryErrorになる
もう一度やるとならなかったりする
メモリなんか有り余ってるのに
2022/06/03(金) 21:26:21.75ID:A/r7iGb40
#背景:南北戦争の時代に使われていた暗号円盤(Cypher Disk)を再現したい。
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# https://ja.wikipedia.org/wiki/%E5%8D%97%E5%8C%97%E6%88%A6%E4%BA%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%8F%B8%E4%BB%A4%E9%83%A8#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:UnionCipherDisk.nsa.jpg
import string, random
#内側の車輪を大文字のアルファベットで生成
inner_alph = list(string.ascii_uppercase)
#画像の通り、文字列tionとingの入力の手間を省くキー(他のキーと長さが異なるので注意したい)。スペース追加。
inner_alph += ["TION","ING"," "]
#外部の数値車輪の定義
outer_num = []
while len(outer_num) <= len(inner_alph):
#外部の車輪は紙に書きやすい、1と8のランダムな羅列。桁数は1から四桁で生成。
number = "".join((random.sample(["1","8"]*5, random.choice(range(1,5)))))
if number not in outer_num:
outer_num.append(number)
# 次に車輪を回転させて、可変性を持たせたい。外部の車輪の数字をランダムに選ぶ(昔の黒電話のダイヤルのイメージ)。
index_letter = random.choice(outer_num)
#外部の車輪を回転。時計の針がずれるように、インデックス文字以降が後半にappendされる形にしたい。
#イメージ:http://inventwithpython.com/cipherwheel/
shiftnum = outer_num.index(index_letter)
outer_num = outer_num[shiftnum:] + outer_num[0:shiftnum]
#極秘暗号表と早見表を保存
crypt_dict = (dict(zip(inner_alph,outer_num)))
crypt_cheatsheet = (dict(zip(outer_num,inner_alph)))
#print(crypt_dict)

##メッセージは以下の通り
message = "ENEMY INCOMING FROM NORTH"
cryptedmessage = []
place = 0
2022/06/03(金) 21:26:36.82ID:A/r7iGb40
#暗号生成開始
while place <= len(message)-1:
#tionとingに対応するため、文字列を4文字先読み
future_string = message[place:place+5]
#あまりスマートではない暗号化処理と先送り処理
if future_string.startswith(("TION")):
cryptedmessage.append(crypt_dict["TION"])
place += len("TION")
elif future_string.startswith(("ING")):
cryptedmessage.append(crypt_dict["ING"])
place += len("ING")
#一文字づつ暗号化
else:
cryptedmessage.append(crypt_dict[message[place]])
place += 1
#暗号と早見表を送付
print(cryptedmessage)

for crypted_num in cryptedmessage:
print(crypted_num + ":"+ crypt_cheatsheet[crypted_num])
2022/06/04(土) 08:21:30.69ID:XaXAMuD50
>>128
エクセルファイル壊したなw
135デフォルトの名無しさん (ワッチョイ a9f6-fRoS)
垢版 |
2022/06/04(土) 10:39:04.46ID:vvbHqYcO0
>>132
https://upload.wikimedia.org/wikipedia/commons/a/a1/UnionCipherDisk.nsa.jpg
内側の円盤に 7 とか & とかあるけど何なん?
2022/06/04(土) 12:23:28.16ID:lbS14JzhH
>>134
壊れてるんですか?
壊したつもりないのにorz
2022/06/04(土) 13:57:47.67ID:fS6UzCwCH
tensorflowでload_modelのあとの.compileって要りますか?
最初にモデル構築したときにコンパイルしてたら要りませんか?
2022/06/04(土) 14:11:05.42ID:wbzuouUH0
sys.argv[1] があればそれを返してなければ別に決めたdefaultの値を返す
というのをtryを使わずにシンプルに書くには?
2022/06/04(土) 14:18:13.51ID:DNUj2Sn5M
sys.argv[1] if len(sys.argv) > 1 else あ
2022/06/04(土) 14:29:26.90ID:wbzuouUH0
if条件を後付けできたっけ? と一瞬見えたけどpythonの三項演算子か
文章として読めるくらい自然
誰だ最初に cond ? true val : false val の書き順を考えた奴は
141デフォルトの名無しさん (ワッチョイ a9f6-fRoS)
垢版 |
2022/06/04(土) 17:13:13.78ID:vvbHqYcO0
>>138
(sys.argv.__getitem__(slice(1, 2, None))+['default value'])[0]
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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