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
2022/05/27(金) 19:15:24.02ID:jqbkm0c50
Google Colabでアニメーションを見るためのソースコードがあります。

from matplotlib import animation
from IPython.display import HTML
anim=animation.FuncAnimation(fig, animate, frames=len(s_a_history), interval=200, repeat=False)
HTML(anim.tp_jshtml())

これ、当然PCローカル環境では見れないんですが、ローカルでアニメーション見たいときにはどう記述すればいいでしょうか?
2022/05/27(金) 19:16:43.38ID:jqbkm0c50
最後の行、タイプミス、正しくは
HTML(anim.to_jshtml())
です。
2022/05/27(金) 19:29:16.40ID:LnlX87BZH
plt.show()
18デフォルトの名無しさん (ワッチョイ 8b01-hX2U)
垢版 |
2022/05/27(金) 19:30:04.68ID:hv6nsduM0
gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか?
19デフォルトの名無しさん (ワッチョイ 8b01-hX2U)
垢版 |
2022/05/27(金) 19:48:57.09ID:hv6nsduM0
gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか?
2022/05/27(金) 20:23:59.32ID:vflblMVYH
ちょっと調べたけど、データベースソフト使うようなことは簡単なことならPandasで処理するのが普通っぽい
それで合ってる?
2022/05/27(金) 22:28:17.60ID:uIOjUPeFM
データベースはデータの永続化が主目的では?
2022/05/27(金) 22:34:04.67ID:j0sbCc+N0
任意の項目でソートするのに一時テーブル使った事があるな
2022/05/27(金) 23:22:52.06ID:ljm69V8Ma
>>21
まあ主目的はそうかも知れんがソートや集計でDB使うのは別に変じゃない
import sqlite3
connection = sqlite3.connect(':memory:')
とかしてインメモリーでDB作れるし
24デフォルトの名無しさん (ワッチョイ 2197-jyCk)
垢版 |
2022/05/28(土) 00:56:13.65ID:BwCRI8LG0
出来るのはわかるけど、Pandasで済むことをわざわざSQLでやりたい理由がわかんないな。
大量データだったりしてPandasでやると遅過ぎるとかそういう特殊ケースはわかるけど。
25デフォルトの名無しさん (ワッチョイ 2197-jyCk)
垢版 |
2022/05/28(土) 01:07:49.15ID:BwCRI8LG0
>>14
Listにリストを代入したらListという名前のものが、type hintsのList(typing._GenericAlias型のオブジェクトだそうだ)から、単なる普通のリストになってしまう(上書きされる)から、
l = [1,2,3]
l[int]としているのといっしょでおかしくなってしまう。
素直にnumsとtargetに代入してsolution.twoSum(nums, target)で実行してみ。
というかあなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。
2022/05/28(土) 08:59:15.96ID:hJZUTFMkH
Pandasでgroupbyしたあとにそのままcsv_writer.writerowsすると、

"                         dt
id
112893131  2022-05-28 01:14:17.959048
117235633  2022-05-28 04:44:25.937787
117595341  2022-05-28 08:44:33.609629
124985419  2022-05-28 04:44:25.937787
126672345  2022-05-28 01:14:17.959048
...                         ...
969901237  2022-05-28 01:14:17.959048
978855671  2022-05-28 07:44:31.638705
979053384  2022-05-28 01:14:17.959048
989614658  2022-05-28 05:44:27.929561
998605384  2022-05-28 00:44:16.960893

[138 rows x 1 columns]"

と出力されてしまいます。

.iloc[i]をwriterowすると、

"dt  2022-05-28 01:14:17.959048
Name: (112893131), dtype: object"

となってしまいます。

どうしたらCSVのきれいな表として出力されるでしょうか?
27デフォルトの名無しさん (ワッチョイ 2190-NISa)
垢版 |
2022/05/28(土) 09:09:00.03ID:8siWyhD60
>>25
なんとなくわかった

>あなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。
自分ももっと勉強したいんだけど、ネット上の初心者コース終わったあとの先がわからないんだよね
どこで学べばいいんだ?
2022/05/28(土) 09:28:46.82ID:x+x8TMTiH
import csvじゃなくてto_csv使ったらうまくいきました
お騒がせしてすみませんでした
29デフォルトの名無しさん (ワッチョイ 512c-glao)
垢版 |
2022/05/28(土) 09:56:52.64ID:BDCTKJeU0
>>27
普通は書きたいもの書きながら自己進化していく
道具は最低限の使い方さえ覚えれば、あとは使うだけ
30デフォルトの名無しさん (ワントンキン MMd3-ddm6)
垢版 |
2022/05/28(土) 14:14:30.81ID:rqCjl4M3M
>>12
レスありがとうございます。
pyenv調べてみます。
2022/05/28(土) 14:29:08.07ID:/tBn2fMh0
え?調べるってまだ配布元のREADMEよんでないのかよw
2022/05/28(土) 15:50:25.17ID:hZokRc+F0
READMEってどういう意味?
2022/05/28(土) 16:05:38.48ID:oEEaOXMd0
私を読め
2022/05/28(土) 16:10:06.49ID:zh4+aziR0
私の嫁
35デフォルトの名無しさん (ワッチョイ 915f-/2p7)
垢版 |
2022/05/28(土) 16:13:18.99ID:zElwYawI0
どの言語にも限らずに公式ドキュメントを全く読まないマンがたまに出てくるな
英語で分かりづらいかもしれんけど、Chromeの日本語翻訳でだいたい雰囲気分かるぞ
36デフォルトの名無しさん (ワッチョイ 2bbb-GfsR)
垢版 |
2022/05/28(土) 17:57:33.67ID:qfL9tViN0
昔と違って説明書一切付けないガジェット増えたしな。CHEATSEET.PNGとか付けたら読んでくれるかも
37デフォルトの名無しさん (ワッチョイ f101-2OYr)
垢版 |
2022/05/28(土) 18:01:20.13ID:DrsyU/Zk0
日本で言う楽々携帯が海外におけるアイフォンの立ち位置なんですが。
日本では中高生の間でアイフォンが人気なんですよ。
ITなんて全く向いていない国。
2022/05/28(土) 18:19:10.55ID:EmXYdsgj0
kotlinの公式は読みやすいけどJavaは本当にカオス
2022/05/28(土) 18:51:08.01ID:6Sv+ENTH0
・塩野義製薬が週休3日制導入へ 来年4月、副業も解禁
・塩野義製薬が「週休3日」選択可能に 給与は『週休2日の8割』副業や学び直しを支援
・【フォーカス】サタケ/週休3日制 通年導入めざし夏季のみ試行中 交代制で水曜を休日に
・旅館なのに週休3日!?陣屋・若女将の常識を覆した組織改革
・“時代錯誤”から残業ゼロ、週休3日に! 鳥取の不動産会社が
 レガシー企業からDX先進企業になれたワケ
・ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
・日本初「週休4日制度」で、優秀な人材を採用するしくみとは? ?
 ナレッジソサエティ久田社長に聞いてみた
40デフォルトの名無しさん (ワッチョイ d901-2OYr)
垢版 |
2022/05/28(土) 18:51:40.80ID:6Sv+ENTH0
・サイボウズ青野社長、「本業に集中しないから副業禁止」はあり得ない
・サイボウズでは、100人100通りの働き方が可能「多様過ぎるワークスタイル」が生まれた背景
・訪看、ケアマネ自宅で記録 IT活用で在宅ワーク・フレックス勤務
・パナソニックの社内ベンチャー「ゲームチェンジャー・カタパルト」で
 事業化されるかもしれない注目の新規ビジネス
・ゼネコン鹿島、DX化で狙う建設業界の地殻変動
・NTTドコモ、建設業向けDXの新会社 コマツ、野村総合研究所などと共同で
41567 (スップ Sdf3-pTra)
垢版 |
2022/05/28(土) 19:13:58.18ID:SqtageG+d
>>29
書きたいものがない人が進化するためになにかないですかね?
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を使いたまえ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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