Pythonのお勉強 Part63

■ このスレッドは過去ログ倉庫に格納されています
2020/02/24(月) 10:31:51.39ID:vb10EdOX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに増やすこと。

★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

★エラーを解決したいときはエラー文(勝手に省略禁止、スクショうp等の横着も禁止)と
 環境(Pythonのバージョン+OS名IDE名と夫々のバージョン)をシッカリ書くこと

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

◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その46【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1577948214/

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

次スレの建立は>>985あたりが挑戦する。  [EOF]
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2020/08/27(木) 23:03:49.11ID:ZiRvWQpY0
業務システムは
DBからデータ抽出 → 加工 → 他のシステム向けに出力
とかそんなのばかり。ETL処理と呼んだりするらしい。
2020/08/27(木) 23:15:49.80ID:UpSHqj0+0
>>792
テキスト処理というか、正規表現とか使うならPerlの方が楽だね
ただ、あとからソース見返すならPython一択だなw
2020/08/27(木) 23:17:05.28ID:iGy+0keba
ポーティングという言葉は、プログラムの移植に対して使う言葉でデータ移行には使わないみたいですね。失礼しました。
2020/08/27(木) 23:30:35.95ID:3fMID2tq0
>>801
Perl使えると玄人っぽくって良いんだけど
そういう人がいなくなってる気がする
2020/08/27(木) 23:56:48.51ID:eJo+Z2Ml0
>>803
玄人っぽいことは生産性に何も寄与しないからな
2020/08/28(金) 00:00:32.15ID:CdpscLRDd
>>800
ETL Extract/Transform/Load
世の中の全てが、ひとつの巨大データベースの中に入っていたらETLなんて不要だけどね
806デフォルトの名無しさん (ワッチョイ 7901-8QnA)
垢版 |
2020/08/28(金) 00:23:03.58ID:NP4hrv2S0
>>802
データはマイグレーションかな?
2020/08/28(金) 00:25:24.64ID:j+CbQcxFa
>>805
そのDBがどんなやり方でアクセスされても、常に最高の性能で応答してくれればねー
2020/08/28(金) 00:35:59.61ID:odNmleXM0
Djangoだとモデル設計変えたらデータベースをマイグレーションしないといけないから
マイグレーションを「データベース更新」みたいな意味に捉えてた。

マイグレーションは旧データベースから新データベースへのデータ移行ってことか。
2020/08/28(金) 00:36:24.12ID:odNmleXM0
Django
2020/08/28(金) 00:38:58.75ID:odNmleXM0
Djangoのマイグレーションはカラム名変えてもnull可否変えてもちゃんと対応するからすごい。
他のwebフレームワーク知らんけど。
2020/08/28(金) 00:56:33.61ID:+qN0cwJG0
>>781
簡単な代数の計算したり、行列計算したり、
ログ解析したり、AWSとかのAPIを叩くのに使ってたり。
デジカメ写真のEXIFからデータ抜き出して位置情報とくっつけて加工とかもあるし、
100行ぐらいの繰り返しのスクリプトやプログラムを自動生成したり。
アルゴリズムやプロシージャ考えたら自動化出来そうなことで、
速度やリッチな描画やUIが必要ないものは全部Pythonでやってる。
2020/08/28(金) 01:00:07.11ID:IRRC70To0
>>808
元の英語のmigrationは移転とか移民って意味だから
今の環境から別の環境にデータを移し替えるみたいなニュアンスやね
2020/08/28(金) 02:00:57.76ID:mncAMHVCr
>>781
音律の計算
2020/08/28(金) 08:04:21.91ID:MpoQTDLf0
PySimpleGUIってのを使ってみたけど、めちゃくちゃ使いやすいね
TK/Qt/WX/Webといろんなバインディングあるし、
もうちょい流行ってもいいと思うんだけど・・
PythonだとGUIはあんまり必要とされてないのかな?
2020/08/28(金) 08:32:30.94ID:j+CbQcxFa
>>814
たしかにかなりお手軽にアプリが組めるね
ただ、UIで細かいことが気になり改造を続けていくと、すぐ行き詰まってしまう
これはシンプルさの代償で仕方がないのかもしれない
816デフォルトの名無しさん (ワッチョイ 4d61-ifKp)
垢版 |
2020/08/28(金) 08:57:21.83ID:ssiLLbAr0
PyQtやwxPythonからどれほど進歩しているか?
一方デメリットは、
・新たに別の書き方を覚えなければならない
・ラッパーのラッパーになっているので、問題起きたときに追跡がめんどくさくなる
などなど。
2020/08/28(金) 10:34:44.97ID:LLs1s+XQF
python の list って挿入のコストめっちゃ高い?
818デフォルトの名無しさん (アウウィフ FF85-yGMV)
垢版 |
2020/08/28(金) 10:36:26.77ID:LLs1s+XQF
>>800
云々観える化mapとかも
DBからデータ抽出 → 加工 → GoogleMapsにマーカー表示
とかだよな
2020/08/28(金) 10:46:38.45ID:3elbU7X10
>>817
dis.disで内部処理を見られるよ。

処理の詳細はcevalあたりを参照
https://github.com/python/cpython/blob/master/Python/ceval.c
820デフォルトの名無しさん (アウウィフ FF85-yGMV)
垢版 |
2020/08/28(金) 11:06:43.67ID:LLs1s+XQF
>>819
thx
https://wiki.python.org/moin/TimeComplexity
821デフォルトの名無しさん (ワッチョイ fd6a-YNDL)
垢版 |
2020/08/28(金) 19:29:56.16ID:FLkSQLsm0
>>815
PyQtならQtの機能をフルに使えるし、C++/Qtで書くのと遜色ないよ。
スピードの問題もPCの性能向上で、そこそのPC持ってれば気にならないしね。

あえてC++で書こうとも思えない。
2020/08/28(金) 20:02:02.85ID:uQOAsR200
>>815-816 ほむ
2020/08/29(土) 19:12:52.40ID:2dZ24osY0
>>821
GPLになってもいいならいいかもね。
2020/08/29(土) 20:42:22.53ID:cYzYg2Ox0
寧ろC++でできることを敢えてPythonで書こうとは思えない
2020/08/29(土) 21:22:26.46ID:RSVY0WMn0
>>824
正気かよ
2020/08/29(土) 21:25:17.08ID:IhiP1imOd
C++で「容易に」できること
だったわ
流石にできるできないで語ったらC++にできないこととか存在しないに等しいし
2020/08/29(土) 21:27:33.29ID:Mr7Pnq5f0
何しにここにいるのか
2020/08/29(土) 21:37:50.67ID:IhiP1imOd
Pythonでやるのが最適だ(と思える)からPythonを使うんであって
Pythonを使うのが目的ではないからな
2020/08/29(土) 22:06:00.22ID:vdfuX+h60
>>825
一言一句同じことを思った
2020/08/29(土) 22:23:14.68ID:dz1QqfS00
まあでもGUI化するってことは大抵配布目的だろ?
そう考えると、Qtに限定すればC++選ぶわ
2020/08/29(土) 22:40:40.84ID:Mr7Pnq5f0
普通の人は、何を使うかよりも、結果が欲しいんじゃない?
832デフォルトの名無しさん (ワッチョイ fd6a-ZE4T)
垢版 |
2020/08/29(土) 23:01:46.64ID:oJwfMveH0
C++だとコンパイルって作業が面倒になる。
pythonならそのまま起動できるからね。
ヘッダーファイルを書くのも意外に面倒だし。

C++/Qt、Perl/Qt、PyQtを使ったがpythonが一番作りやすいぞ。
2020/08/29(土) 23:02:56.70ID:iBRD4e0ka
Qtってライセンスの問題があるの?
834デフォルトの名無しさん (ワッチョイ fd6a-YNDL)
垢版 |
2020/08/29(土) 23:20:29.09ID:oJwfMveH0
配布目的となるとな、pythonはコンパイルが上手くできるかわからんからソース渡しか。それはチョットな。
まあ、そうなるとC++になるか。

でも配布目的でプログラム書いてる人っているの?現実問題?
2020/08/29(土) 23:27:00.37ID:MdzewRs10
>>833
https://www.sra.co.jp/qt/inquiry/tabid76.html
Qtのライセンスモデルに関する FAQ
2020/08/29(土) 23:33:16.58ID:nphZHze20
その胡散臭い会社なんなの?
2020/08/29(土) 23:49:06.60ID:iBRD4e0ka
>>835
何か面倒くさそうだなあ…
2020/08/30(日) 00:18:04.07ID:E5nfNsLr0
>自分のソースコードを公開したくないのです。どうすればいいですか。
>Qt の LGPL ライセンスを遵守して LGPL 版を使用するか、商用版ライセンスを購入しなければなりません。

なんだLGPLでも使えるんやんけ
これならほぼ問題ないじゃん
2020/08/30(日) 00:35:49.55ID:0oA5JZy60
LGBT?
2020/08/30(日) 00:53:16.89ID:n1tUc21x0
>>838
pyqtはLGPLないらしいよ。、
2020/08/30(日) 02:55:51.91ID:1rEq7F1v0
おまいら、C#を忘れてないか?
2020/08/30(日) 03:31:49.14ID:FCWAeXb6d
LGBTならpyside2でええやろ
2020/08/30(日) 07:52:33.09ID:vV5rvbTf0
今はPyQtとPySide2って機能的な差はないよね

PySimpleGUIもPySide2にしか対応していないし、
実質PySide2が標準なんじゃない
2020/08/30(日) 10:08:12.19ID:JvumXXed0
少なくともqt側からはpyside2が標準だな
845デフォルトの名無しさん (アウウィフ FF85-yRqa)
垢版 |
2020/08/30(日) 16:11:12.33ID:GgAZZaQaF
>>832
正気か?
846デフォルトの名無しさん (アウウィフ FF85-yRqa)
垢版 |
2020/08/30(日) 16:12:29.81ID:GgAZZaQaF
>>836
SRAは胡散臭い会社ではないが
知らない人が観るとめっちゃ胡散臭いのは同意せざるを得ない
847デフォルトの名無しさん (ワッチョイ 7901-8QnA)
垢版 |
2020/08/30(日) 16:23:35.94ID:TQR9+ula0
胡散臭いとか言われてかわいそう(笑)
2020/08/30(日) 17:07:00.60ID:Lx5nDfT/M
>>838
LGPL"3"な。
問題ありまくりだから多くの企業は同ライセンスのソフトウェアを禁止しているし納品も受け付けない。
849デフォルトの名無しさん (アウアウウー Sa85-8BP0)
垢版 |
2020/08/30(日) 17:37:23.66ID:Esil2d+qa
>>846
やっぱ普通のSIerとはちがうの?
PostgreSQLとかもやってるよな
あと配当も良い
2020/08/30(日) 18:10:01.42ID:/n+w2ksB0
>>848
組み込みとかじゃない普通のアプリケーションでもそんなに問題になるんだっけ
2020/08/30(日) 18:39:39.42ID:dtwoQukE0
ソースとrequirements.txtの納品でも問題になるか?
852デフォルトの名無しさん (ワッチョイ fd6a-YNDL)
垢版 |
2020/08/30(日) 22:00:34.77ID:jvFdtQbx0
>>845
pyQtが一番つくりやすいって。
emit に独特の癖があるけど、まま許容範囲。

solotsやsiginalを列挙しなくていいんだからpythonは。
ヘッダーファイルが無くいいってのが楽だよ。
853デフォルトの名無しさん (ワッチョイ 82ad-rTX0)
垢版 |
2020/08/31(月) 00:36:02.78ID:qofV3zSx0
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw

Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw

日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw
2020/08/31(月) 09:24:50.48ID:K6m8Cbcl0
>>836
大企業しか知らなさそうだな
pythonより前に社会を覚えた方がいいんじゃないのか
855デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
垢版 |
2020/09/01(火) 09:13:03.33ID:Cq95xRhYa
5chよりnoteのほうが人気があるらしいよ
https://note.com/search?context=hashtag&;q=python
2020/09/01(火) 13:36:22.34ID:ol8JRpjA0
>>855
> note

なにそれ。
和製サービス? それならセキュリティ的に不安なので利用しない。
2020/09/01(火) 14:13:02.21ID:mtDD8R8s0
>>855
ブログと何が違うのこれ
新しい物好きが群がってるだけ?
2020/09/01(火) 14:41:32.26ID:f2afn8sC0
>>855
こないだ投稿者のipアドレス全部流出させたばかりじゃん……。
2020/09/01(火) 18:07:52.09ID:lI7gtWn/a
5chは不平不満を言うことしか能のない老害がいるから
若い人は離れていくらしいよ
2020/09/01(火) 18:12:15.74ID:e7GRkQAF0
5chは不平不満を言う場だよ
2020/09/01(火) 18:36:34.11ID:0krTAzNX0
匿名だから暴言吐き放題のうんこ5ch
昔とあるものを無料配布してたが試験的なものでバグ報告が欲しかっただけなのに(そういう説明もしてあった)くそ女に叩かれて以来5chというか2chの無能共が嫌いになった良い思い出
2020/09/01(火) 19:49:29.27ID:rEOC0YRzd
新しいものに付いて行けなくなったらさっさと引退しろ
インターネット老害とかキツいわ
どうせコードもレガシーなウンコなんだろ?
2020/09/01(火) 20:40:28.80ID:d23LCAzr0
今頃note初めて知ったとか縄文時代から来たんか
使わなくても目にするだろ普通
864デフォルトの名無しさん (ラクッペペ MM66-e5MG)
垢版 |
2020/09/01(火) 20:43:23.02ID:gxFObUsRM
意識高い系しか使ってないからな
2020/09/01(火) 20:44:37.57ID:ZfPGOnHz0
>>863
そーしゃるはっかー()に大人気ですものぬ!
2020/09/01(火) 20:47:48.49ID:d23LCAzr0
>>862
ほんとそれ
いまだにCGIとか口にしてそう
2020/09/01(火) 20:57:42.41ID:mc6AsLWwM
Python で訪問者カウンター設置してやる!
2020/09/01(火) 21:01:27.23ID:SaH8KYhTM
>>859
さっさと迷惑かけた関係各所に土下座行脚してこいよ。
あとID変えて自演するな
2020/09/01(火) 22:23:57.15ID:Ka5/iJ9f0
bbs.cgi
870デフォルトの名無しさん (アウアウウー Sa85-5Jwh)
垢版 |
2020/09/01(火) 22:35:26.84ID:zxCkXFSra
>>857
新し物好きって…
かなり前からあるやろ
2020/09/01(火) 23:01:36.75ID:94pw9qeg0
https://ja.wikipedia.org/wiki/Note_(%E9%85%8D%E4%BF%A1%E3%82%B5%E3%82%A4%E3%83%88)
2014年(平成26年)4月7日、サービスを開始。
2020/09/01(火) 23:18:29.94ID:BjR3KpsKa
なぞのQt推し
2020/09/01(火) 23:33:46.06ID:CTKjlTfz0
トロルテック時代にリナザウで遊んでた
2020/09/01(火) 23:37:45.87ID:nDE3vKsy0
ン十年ぶりにKENT-WEBを思い出してしまった。まだサイトがあった。ナツカシス
875デフォルトの名無しさん (ブーイモ MMcf-svb1)
垢版 |
2020/09/02(水) 08:58:02.09ID:cf3sTGi+M
朝鮮人にpythonのお勉強は無理ゲーw
2020/09/02(水) 09:53:48.24ID:87hnDRfK0
>>875
https://www.meetup.com/ja-JP/Korea-Python-User-Group/
877デフォルトの名無しさん (ワッチョイ bf8c-th+2)
垢版 |
2020/09/04(金) 13:27:43.28ID:gLEobkXD0
utf-8で書かれたファイルを標準入力にあたえてタブで区切ってリストにしたいんですが文字化けしてしまいます。
ステップバイステップで色々試していくとどうもリストに入れると化けるみたいなんですが、なんでですか??
↓最終的にこんなプログラムで文字化けする/しないの差が出ます。
# -*- coding: utf-8 -*-
import sys
# stdin = "住所CD 都道府県CD 市区町村CD 町域CD 郵便番号 事業所フラグ 廃止フラグ 都道府県 都道府県カナ 市区町村 市区町村カナ 町域 町域カナ 町域補足 京都通り名 字丁目 字丁目カナ 補足 事業所名 事業所名カナ 事業所住所 新住所CD"

a = input().encode('unicode-escape').decode('utf-8').split("\\t")
[print(x.encode().decode('unicode-escape')) for x in a] #化けない
print([x.encode().decode('unicode-escape') for x in a]) #化ける
2020/09/04(金) 14:04:13.24ID:jvrr6lZ70
>>877
OSの種類とバージョンを書け
879デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/04(金) 14:25:26.02ID:l2EHvy2iF
list の __repr__() の問題やろ
880デフォルトの名無しさん (ワッチョイ bf8c-th+2)
垢版 |
2020/09/04(金) 14:42:48.83ID:gLEobkXD0
>>878
その通りでした。OSはWin10で、pyは3.8.5です。
DOSプロンプトから実行していてcp=932です。でも、>result.txtみたいにして出力していてutf-8で出力されてます。
あと、元々はinput().split('\t')をしたかっただけなんですが、文字化けしてしまって色々と調べてました。
文字化けの具合は>>877に書いた化けっぷりと同じです。
s = input()
print(s) # 正常
print(s.split('\t')) #化ける
という感じです。
881デフォルトの名無しさん (ワッチョイ bf8c-th+2)
垢版 |
2020/09/04(金) 14:51:51.80ID:gLEobkXD0
>>879
__repr__というのがあるんですね。調べてみます
882デフォルトの名無しさん (ワッチョイ e77c-th+2)
垢版 |
2020/09/04(金) 14:54:03.92ID:iQJx+OkT0
化けてないものを化けたって執拗に主張すると馬鹿にされるぞ
2020/09/04(金) 15:21:08.01ID:Wl7qFIBb0
これは、どちらが正しいのか?

>>877
split("\\t")

>>880
split('\t')

コマンドプロンプトの文字コードの設定かな?
PowerShell で、やってみれば?

UTF-8 のBOM の有無とか?
2020/09/04(金) 15:28:53.17ID:jvrr6lZ70
>>880
DOS窓のデフォルトがcp932なんだから
DOS窓をUTF-8にしてから.pyを呼ばないと、その手の不具合起きるのは当たり前田ぞ
885デフォルトの名無しさん (ワッチョイ bf8c-th+2)
垢版 |
2020/09/04(金) 15:30:13.83ID:gLEobkXD0
>>880
>>882
そういうことか。わかりました。リストの中は化けてなんかないでし。forで中を覗くと正しかったです。つまり、listのtoStringまわりでおかしいということですね。
__str__なのか__repr__なのか、まだわかってませんが。でも、これがデフォルトの挙動だとすると使いづらくないんですか?
>>883
split("\\t")はunicode_escapeした状態でタブ区切りしたのでそうなってます。本来はsplit("\t")
886デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/04(金) 15:44:37.91ID:l2EHvy2iF
print(repr([x.encode().decode('unicode-escape') for x in a]).encode('unicode-escape'))
887デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/04(金) 16:09:13.06ID:l2EHvy2iF
こうか
print(repr(a).encode('unicode-escape').decode())

ちなみに何か間違ってるから根本から考え治した方が良い
888デフォルトの名無しさん (アウウィフ FF8b-th+2)
垢版 |
2020/09/04(金) 16:12:29.47ID:l2EHvy2iF
>これがデフォルトの挙動だとすると使いづらくないんですか?

少なくともpython3は使いづらくはない

pythonの問題じゃなくて
コマンドプロンプトのリダイレクト >result.txt の問題だから

多分コマンドプロンプトの仕様について思い込みとか思い違いとかがあるはず
889デフォルトの名無しさん (ワッチョイ bf8c-th+2)
垢版 |
2020/09/04(金) 16:19:28.31ID:gLEobkXD0
みなさんのコメントでそんなわけないと自分のコードを見直し
pythonのデフォルトがutf-8で、コマンドプロンプトのchcpを65001にすればいい、
という思い込みがありました。
print(sys.stdin.encoding)やprint(sys.stdout.encoding)をしたらcp932のままでした。
ので、
sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
とすることで、全てがうまくいきました。

みなさん、ありがとうございました!
2020/09/04(金) 16:21:13.11ID:qmRdjjef0
sys.setdefaultencoding() 禁止

https://qiita.com/methane/items/6e294ef5a1fad4afa843
https://docs.python.org/ja/3/library/locale.html
891デフォルトの名無しさん (ワッチョイ 676a-vZ9I)
垢版 |
2020/09/04(金) 18:05:37.75ID:4QR5o/NS0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

パイソンでプログラム組むとき、おまじないのように↑の行を入れてるんだけど、これって漢字コードに関係あるんだよね?
パイソンで文字化けってほとんど経験がないんだよ。
2020/09/04(金) 18:26:39.79ID:zd548qQ8M
python2「俺優秀だから」
2020/09/04(金) 18:28:07.32ID:bQ9X4kFap
>>891 もうPython3では標準なんだからおまじないは必要ない。 2.7は無くなるしなおさら。
2020/09/04(金) 18:29:07.34ID:8nGvnazN0
>>891
一行目はなくていい
二行目はpython3ならなくていい
その二行見た瞬間、原始人だと思われる
2020/09/04(金) 18:47:28.45ID:c2hUtqb2M
ウホウホウッホ
ウホウホホーイ
2020/09/04(金) 18:55:46.65ID:bCSTvj9I0
なくても動く ≠ なくてもいい
2020/09/04(金) 19:41:51.75ID:UWcWDjXS0
無いと動かない場合もある ≠ なくてもいい
2020/09/04(金) 21:41:02.41ID:3K6ISx4z0
yieldと関数内関数って同時に使えないんですか?
2020/09/04(金) 22:04:49.74ID:iEv5UTAi0
yield使ったらそれは関数じゃないしな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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