X

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

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

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

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

【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
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

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

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
2021/02/01(月) 21:01:59.77ID:DEyQGLil
>>259
第二引数にglobals()
2021/02/01(月) 21:11:19.61ID:f5CB6Ii8
>>267
ありがとうございます。
2021/02/01(月) 21:59:34.59ID:DEyQGLil
>>266
3.8$ pip freeze > requirement.txt
requirement.txtの中身を編集して
3.9$ pip install -r requirement.txt

使ってるバージョンマネージャによっては
新しいバージョン入れたら必ず入れるパッケージを指定できるようなのもある
270デフォルトの名無しさん
垢版 |
2021/02/01(月) 22:00:33.26ID:HqX9nviR
>>266
>わりとぶち当たる問題ですよね。
そんなことはないです

一つだけ確認なんですけど
>仕方ないので pip で再インストールした。
とりあえずはこれで解決できたということですか?
2021/02/01(月) 22:06:44.00ID:hLj49IWK
>>252さん
ありがとうございました。
できました、ボタンを押した際にgetが実行されるのですね、バッチリです
2021/02/01(月) 22:07:12.42ID:WmhSgTw5
>>266
OS付属のPythonをpipで弄るのはOSがおかしくなるかもしれないからやめた方がいいよ
OSはOSの都合でPythonや付属ライブラリのバージョンを決めてるから、ユーザーが開発に使うのはpyenvでインストールしたバージョンが固定されたPythonの方がいいし、
そもそもプロジェクトごとに使いたいパッケージのバージョンが違ったりするからPoetry, pipenvなどの仮想環境を使った方がいい
2021/02/01(月) 22:48:17.19ID:KcF6/QTu
OS にプリインストールされているものを変えたの?
すべてのアプリが想定しているものと異なるから、動かなくなる

漏れは、日本人が作った、バージョンマネージャーのanyenv で、
rbenv, nodenv を使って、ruby 2.6.6, node 12.16.2 を入れた

こういうので、pyenv で、プロジェクト毎にバージョンを切り替える
2021/02/02(火) 00:52:49.29ID:D6RFLw+E
そう、で、す、か、
2021/02/02(火) 09:18:07.44ID:JzH47QT8
Docker は微妙だから VirtualBox でいいや。
2021/02/02(火) 13:40:26.61
pythonをGUIで操作したいならdockerは微妙だけど、それ以外ならdockerの方がいい
webアプリ化すればほとんどはシェル併用でどうにもなるし
どうしてもpython以外(かつGUIで)のソフトを使いたいって場合くらいじゃないのVirtualBoxの仕用途
2021/02/02(火) 18:18:25.76ID:Bbt0Bton
PythonをGUIで操作とかもう訳わかんねーな
2021/02/02(火) 18:20:09.25ID:ozkAVgNF
Jupyter Notebook...
2021/02/02(火) 18:31:30.06ID:Bbt0Bton
それアプリケーションじゃん
2021/02/02(火) 18:44:22.05ID:PI7tMABu
PyQtとEricでVSのwinformみたいに組めるよ。
ラズパイでGUIやれるようになって幸せ。
2021/02/02(火) 18:47:28.41ID:ERs0GZwW
まぁ初心者スレだし
2021/02/02(火) 18:53:45.22ID:SgZfZ3QH
Pythonってなに作るのに向いてるの?
2021/02/02(火) 19:00:48.91ID:u/HK1Pt5
>>279
Python を GUI で操作じゃないのか?
GUI を作りたいんかね。
2021/02/02(火) 19:07:55.98ID:SgZfZ3QH
C#でGUI作って
特定の処理だけPythonの方が普通なのか?
2021/02/02(火) 19:17:49.05ID:OU1WloPY
別に無理してPython使わなくても
2021/02/02(火) 19:17:56.73ID:DklR/gYA
GUIで操作ってOpenCVのimshowみたいなのをインタラクティブに操作したいってことでは?
2021/02/02(火) 19:30:44.46ID:cdl6o0Fq
Lua
2021/02/02(火) 19:48:05.52ID:Bbt0Bton
>>283
Python製のアプリケーションをGUIで操作ってことなら意味わかる
2021/02/02(火) 20:39:12.65ID:kp7FgpQM
今ではGUIが必要になったら、FlaskとVueを組み合わせて作ることが多くなった
2021/02/02(火) 20:55:55.73ID:NtuoF5yn
>>284
GUIを必要としないものは実は沢山ある
君がそういうものを思いつかないなら、おそらく君にPythonは適していない
2021/02/02(火) 21:13:01.59ID:PI7tMABu
>>282
ラズパイではこれが便利なんだよ。
2021/02/02(火) 21:14:50.83ID:PI7tMABu
ラズパイで色んな装置と通信するコンソールをGUIでやってみて、楽勝だった。
2021/02/03(水) 01:09:27.08ID:uyKGjePK
with文について質問です
withブロック内で新しく宣言した変数をブロックの外で使っても
エラーが発生しないのはなぜでしょうか?

with open('./example.txt', 'r', encoding='UTF-8') as file:
____data = file.read()
print(data) # ←この文です
2021/02/03(水) 01:24:18.13ID:NRhVzOUI
>>293
Pythonのローカルスコープは、関数内およびクラスのメソッド内でのみ作られる…はず
withは関数ではないから、dataはグローバル変数
2021/02/03(水) 02:16:42.71ID:FJQE1f2p
ブロック=スコープではなく制御文同様スコープ作りません
あとはPython3で内包表記が密かに作るようになったかな?
296293
垢版 |
2021/02/03(水) 02:22:26.48ID:uyKGjePK
>>294
>>295
ありがとうございました

Pythonややこしい…
2021/02/03(水) 19:53:20.90ID:dO5q2ySB
すみません、openpyxlの質問はここでよろしかったでしょうか。
取り込んだエクセルから、指定のセルの文字サイズを得たいのですが、どなたかアドバイス下さい。
2021/02/03(水) 20:02:34.55ID:0a0VMm7q
>>297
>文字サイズ
文字数じゃなくてフォントのポイント数のことけ?それともまさかそれ以外(セルの高さとか)?
2021/02/03(水) 20:18:59.44ID:dO5q2ySB
ポイント数です。
print(cell.font)で、一覧としては出てきたのですが、
他のセルに貼り付けるために取得たいのですが、上手くいきません。
2021/02/03(水) 20:22:30.18ID:0a0VMm7q
>>299
「openpyxl フォント 設定」でまずぐぐり
気に入らない/理解できないならば
次に「openpyxl フォント サイズ」でぐぐる
2021/02/03(水) 20:30:33.12ID:dO5q2ySB
>>300
設定方法は、ネット上で見つけて何とかなったのですが、取得方法がうまくいきません。
だいぶ検索もしたのですが、、
2021/02/04(木) 06:10:52.03ID:Rmua4RGj
>>301のprint(cell.font)ってしてる
cellにナニぶっこんでるのかresして
結果の一覧とやらを>>1にのってるろだとかにのせたら
もちょい進める、かも
2021/02/04(木) 06:42:15.09ID:8ASdjdRY
とりあえず
簡単な画像比較作るか
2021/02/04(木) 07:17:40.73ID:V53VIWYq
(function (x, y) {
  ここに処理を書く
})(a, b);

JavaScript では上記のように擬似的なスコープを作って
上位スコープから変数を渡すことができますが
これと似たようなことをPythonで実現可能ですか?

グローバルの変数汚染を避けるのが目的です
以下のような無名関数として呼び出せればと思うのですが。。。

(def (x, y):
  ここに処理を書く
)(a, b)
305デフォルトの名無しさん
垢版 |
2021/02/04(木) 09:26:22.09ID:c560f9Nc
>>304
lambdaでどーぞ
2021/02/04(木) 09:29:06.70ID:yNPj7IC/
>>304
普通は気にしない
Pythonのグローバル変数はモジュール(ファイル)の名前空間に属するから、グローバル名前空間を汚染しない
本当に局所的な変数が欲しいなら普通に関数を定義してローカル変数にして普通に呼ぶ
トリッキーなことはしないで素直に普通に書くのがPython流
2021/02/04(木) 10:47:48.68ID:ETtm6pXr
Pythonて関数の引数が参照渡しなんだな
値渡しだと思って今まで使ってたから調べてびっくりしたわ
リストなんかを変数で渡した場合は関数内で書き換えできてしまうから注意が必要だね
308デフォルトの名無しさん
垢版 |
2021/02/04(木) 11:12:44.25ID:ZzRKCYY/
>>294
with の中を通らなかったときの data の値は必ず None で OK?
2021/02/04(木) 11:15:39.42ID:0AhC+pkm
>>307
引数が(変数の)参照渡しな訳ではないよ、元々が実体へのオブジェクト参照(PyObject*ポインタ)
値渡しはC的に言えばスタックに載せるという事であり、それは大抵のシステムで既定上限が数MB以下
2021/02/04(木) 12:21:19.44ID:fv2NAPkU
ナムパイとナンパイ、どっちですか?
2021/02/04(木) 13:42:24.63ID:eiMq+3qj
>>306
コーティングの是非を聞きたいのではなく
仕様として可能なのかを聞いています
単にそこに興味があるだけです
2021/02/04(木) 13:44:27.86ID:eiMq+3qj
>>305
もちろん考えましたが
何行にも渡るコードをlambdaでローカルスコープにするのは
実用的でないと思ってます
偉そうな書き方になってたら申し訳ない
2021/02/04(木) 13:45:16.38ID:4oTwDo+v
(lambda x,y:x+y)(1,2) -> 3
みたいな書き方はできる
2021/02/04(木) 14:21:08.73ID:8DiqYeP0
PILで読み込んだ画像とOPENCVで読み込んだ画像は、それぞれで扱うことはできないのでしょうか?
また、画像がどっちの形式で変数に入っているかを判断することはできないでしょか?
2021/02/04(木) 14:58:09.72ID:qhstqCrC
>>311
括弧を使ってスコープを切れるか? => 切れない
JSのIIFEを模倣できるか? => lambdaなら可
グローバル汚染を避けられるか? => そもそもグローバル汚染しない
2021/02/04(木) 15:06:35.15ID:qhstqCrC
>>311
lambda以外に無名関数を定義する方法があるか? => ない
2021/02/04(木) 16:13:42.50ID:Rmua4RGj
>>310
前者
318デフォルトの名無しさん
垢版 |
2021/02/04(木) 16:54:20.60ID:4/57iig+
>>314
https://note.nkmk.me/python-image-processing-pillow-numpy-opencv/
https://qiita.com/derodero24/items/f22c22b22451609908ee
https://wonderfuru.com/opencv%E3%81%A8pil%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/
http://tatabox.はてなぶろ.com/entry/2013/07/21/231751
2021/02/04(木) 17:00:58.28ID:dB2jWvbu
netの情報はいい加減なのが多い
320デフォルトの名無しさん
垢版 |
2021/02/04(木) 19:10:10.39ID:KK0mSk54
>>314
numpy.array(pil_image)でおーぷんしーぶいで扱える
321デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:04:09.36ID:c560f9Nc
python界隈は、ピップだのピップエンブだのパイパイだのパイエンブだの、固有名詞がダサすぎないかい。
2021/02/04(木) 21:06:02.85ID:Rmua4RGj
そもがモンティパイソンだからしゃーない
323デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:16:08.40ID:WFDJ+byI
並列で実行しておきたい関数があって
ある条件に一致したら終了する関数なのですが
終了して、まだキューになく並列実行してなかったら再度並列実行したいと思ってます

下記で同時実行しているタスク数や実行しているか確認することはできるのでしょうか
実行中はTrueが入っていると思ったらちがいました

executor = concurrent.futures.ThreadPoolExecutor(max_workers=1)
f = executor.submit(test_sub,1)

if f=True:
f = executor.submit(test_sub,1)
324デフォルトの名無しさん
垢版 |
2021/02/04(木) 21:30:50.18ID:xGlwnT6u
競プロかなんかで時間ギリギリまで問題解きたいのか?
325デフォルトの名無しさん
垢版 |
2021/02/04(木) 23:46:00.85ID:WzBF5t1f
>>321
ぱいぱい!!
326デフォルトの名無しさん
垢版 |
2021/02/05(金) 07:49:10.98ID:PjtyCIQW
>>323
fはFutureオブジェクト
2021/02/05(金) 09:11:59.04ID:aDktR5P1
pythonのエラーの対応について教えて下さい
環境は3.6でエディタはAtomを使っています。

VBAとかだとどこでエラーが起きてもエラメッセージが帰ってくる思うのですが、
pythonだと関数から呼び出した関数で起きたエラーは、コンソールウィンドウに表示されず
メッセージ無しで止まってしまいます。
エラー対応で検索すると、Tryを使うとのことなのですが、
関数の始まりからtryで囲うやり方がベストなのでしょか?
全関数を以下の通り対応するのはスマートではないなと・・

def test():
try:
関数の中の全部の処理

except ****:
2021/02/05(金) 09:44:19.31ID:j/7809a/
普通に出力されるが
2021/02/05(金) 12:49:18.87ID:T/OPgv07
>>327
関数使うときにtryしたほうが良くね?
2021/02/05(金) 13:03:15.92ID:mRakDWTP
>>327
try使うときは
エラーがおきるかもしれない最小範囲のみをくくるべし
2021/02/05(金) 15:18:46.74ID:f8nqzbTK
最初にやった方法からさらにいい方法思いついてデータ量や実行時間が大幅に減らせたときの快感がたまらん
2021/02/05(金) 16:02:31.28ID:zkrcBcSu
それで、コードの可読性を損ねて、
後でどこを直せばいいかわからなくなることもしばしば
2021/02/05(金) 16:08:30.83
try:
 エラーでそうな処理
except:
2021/02/05(金) 16:11:08.41
途中で送信してしまいました
def
try:
 エラーでそうな処理
 return 11
except:
 エラー出たときの処理
 return 22

このエラー出たときに、エラー以外の処理を返すようなやり方はやめた方がいいですか?
エラーのときはExceptionなりでエラーをそのまま返す
みたいな
335デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:19:11.95ID:oYpVlEXM
>>334
「エラー出たときの処理」でエラーから復旧したと言えるならそれでいいんじゃないか
呼び出し側で対応が必要ならExceptionを返すべき
336デフォルトの名無しさん
垢版 |
2021/02/05(金) 17:21:11.97ID:oYpVlEXM
× Exceptionを返す
○ Exceptionをraiseする
337デフォルトの名無しさん
垢版 |
2021/02/05(金) 21:02:16.92ID:N5jEb7lV
Jsonファイルのリストの中から、
価格の情報だけを比べて、
一番大きい価格を取り出す方法が分かりません。

{
"status": 0,
"data": {
"list": [
{
"price": "4172840",
"symbol": "BTC",
},
{
"price": "4104400",
"symbol": "BTC",
}
}
こんなようなJSONがあって、
リストの中の、priceだけを比較して、
一番大きい、priceを取り出す方法が分かりません、
上の例だと、max( "price": "4172840" "price": "4104400")
となると思うのですが、
どうやってリストの中の価格だけを取り出して、
一番大きい値を取り出せばいいか分からないです。
338デフォルトの名無しさん
垢版 |
2021/02/05(金) 22:23:34.72ID:6/zDXCCK
item = max(json_obj["list"], lambda i: i["price"])
2021/02/05(金) 22:36:41.20ID:ltTaykUg
ジェイソン!
2021/02/05(金) 22:57:54.64ID:T/OPgv07
410万ビットコインって幾らになるんだろう?17億円くらいかな?
341デフォルトの名無しさん
垢版 |
2021/02/05(金) 23:29:03.53ID:N5jEb7lV
>>338
ありがとうございます!
string indices must be integers
とエラーがでてまだ取れてないけど、、
もう少し調べて頑張ってみます。
342デフォルトの名無しさん
垢版 |
2021/02/06(土) 08:39:05.31ID:UyfeHPoO
今までpcで動かしてた機能をandroidで動かしたい
apkを作るにはkivy とbuildozerを使うらしい
こっちの環境作るのにも詰まってるけどそもそも今動いてる.py をそのまま使えるのかも分からない
何か書き換えとか必要?
そして環境構築方法詳しく載ってるサイトがあったら教えてください。
343デフォルトの名無しさん
垢版 |
2021/02/06(土) 10:54:46.58ID:PohEB++t
sl4a
344デフォルトの名無しさん
垢版 |
2021/02/06(土) 11:42:13.31ID:IR3wWC2w
sl4aは見つけたけどapkにしたいんだ....
2021/02/06(土) 13:29:12.16ID:ROiZJzWf
python のメソッドって
def hoge(x,y):
以下中身
まではわかるんだけど
終わりの区切りはどうなってるの?
空行できたらそこで終わり?
returnとかあればいいの?
2021/02/06(土) 13:40:24.90ID:FU+/gIxh
>>345
カラ行は無視で
なんか書いてある行のインデントの深さが変わったらそのブロックはおしまい
2021/02/06(土) 13:54:35.07ID:ROiZJzWf
>>346
インデントか
なるほど
ありがとうございます

勉強になりました
2021/02/06(土) 14:24:19.00ID:FU+/gIxh
>>347
体系化ずみのサイトなりテキストなりを一冊読んだ方が
遠回りにみえるかもしらんが
一番早道だぉ
ノシ
2021/02/06(土) 15:12:36.40ID:6eQmSTNr
>>337
Ruby では、文字列の値を、数値へ変換すればよい。
と言うか、変換するのが面倒なので、最初から数値で、やり取りすれば良いだけ

require 'json'

# 値が数値
json_1 = <<'JSON'
{ "a":1, "b":2 }
JSON

p JSON.load( json_1 ) #=> {"a"=>1, "b"=>2}

# 値が文字列
json_2 = <<'JSON'
{ "a":"1", "b":"2" }
JSON

p hash = JSON.load( json_2 ) #=> {"a"=>"1", "b"=>"2"}

# 文字列の値を、数値へ変換する
hash.each { |key, val| hash[ key ] = val.to_i }
p hash #=> {"a"=>1, "b"=>2}
2021/02/06(土) 15:26:54.07ID:sxvkqNg5
NG推奨ワード: Ruby
2021/02/06(土) 22:21:18.88ID:WYrAP15n
for num in range(5):
print(num)
if num==3:
num=num-1

ていうのを動かすと
0,1,2,3,4
ていう結果になる。

0,1,2,3,3,3,......
ていう結果にしたいんだけどどうすればい?
下のような動きにしたい。
for i=0 to 5
print i
if i=3 then i=i-1
next
2021/02/06(土) 23:05:26.75ID:l1Q4fjMo
https://ideone.com/IjrjUd
353デフォルトの名無しさん
垢版 |
2021/02/06(土) 23:08:53.63ID:s8ZQn1/T
その例のコードで 0,1,2,3,3,3,...... って出力されるの?
やべーねその言語
2021/02/06(土) 23:10:49.88ID:B5gVBJsh
forじゃなくてwhileを使うのでは…
2021/02/06(土) 23:11:47.83ID:Ye4r/rjw
for i in range(5):
print (min(i, 3))
2021/02/06(土) 23:12:43.26ID:9BgHZVUo
for i in range(5):
____if i > 3 : i=3
____print(i)
2021/02/06(土) 23:15:55.88ID:1hxtRDLK
やりたいことはジェネレーターで無限ストリームっぽい気がする
2021/02/07(日) 00:16:21.39ID:jpmL2+yv
こういうこと?

i = 0
while True:
x = i
if i > 2:
x = 3
i = i + 1
print(x)
2021/02/07(日) 02:02:20.67ID:QRtsbk1z
[i if i < 3 else 3 for i in range(5)]
2021/02/07(日) 04:46:16.11ID:9cKdY56s
printせえよ
2021/02/07(日) 08:50:24.56ID:JR5bkMUq
>>351
まじほんと>>353だは…
351は偽Pythonをつかまされているのでは
2021/02/07(日) 09:10:55.34ID:FFuFCGQD
sorted関数はwindowsの名前順と同じようにソートするんですか?
natsort?
2021/02/07(日) 10:44:13.68ID:KNf11SZT
dictの型ヒント書こうとしているんだけど、TypeScriptみたいにキー毎に
値の型を指定するような芸当は無理だよね?
2021/02/07(日) 10:57:54.98ID:7XkuYEp+
>>363
typeddictとかいうの無かったっけ
tsと同じようなことできた気がする
2021/02/07(日) 11:24:42.44ID:KNf11SZT
すげぇ。ありがとう。
2021/02/07(日) 11:44:28.72ID:kn8KLgWd
>>362
Windowsのソート順は分からないけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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