◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:くだすれPython(超初心者用) その51【まず1嫁】 YouTube動画>8本 ->画像>5枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1602896738/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 派生言語はそれぞれ専スレがあるのでそっち池。 「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合は、 表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。 【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意! Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので ↓等の、いわゆるコードうp用サイトに貼ってこいください。 https://techiedelight.com/compiler/ Run Code機能あり。最近流行中? http://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 http://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 http://pastebin.com/ まずまずシンプル。 http://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式サイト◇ http://www.python.org/ ◇まとめwiki◇ http://python.rdy.jp/wiki.cgi 〇前スレ〇 くだすれPython(超初心者用) その50【まず1嫁】 http://2chb.net/r/tech/1598527450/ 次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい) ### END OF TEMPLATE ### >>1 a="うとがりあ"
print(a[::-1])
可読性を犠牲にして実行速度を得られるPythonのコードってどういう例がありますか?
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw
何があったか知らんけど、7みたいな中学生をコテンパンに言い負かしたやつが悪い
list_a = ['a', 'b', 'c'] list_list = [] (リストのリスト) list_aの末尾に要素を追加してから、そのリストを丸ごとlist_listへ追加したい。(list_aの中身はどうなってもいい) (1) list_list.append(list_a.append('d')) →戻り値で評価されて、Noneがappendされてしまう (2) list_a.append('d') list_list.append(list_a) →ならlist_listは想定の結果となる (list_aは更新される) (3) list_list.append(list_a + ['d']) →も想定の結果となる(カッコ内がリストの戻り値だから) (list_aは更新されない) (1)のような書き方みたいに、そのオブジェクトが更新されるメソッドを実行した後のオブジェクトとしてappendの引数に入れるような書き方というのはできないですか?
つlist_list.append(list_a+['d'])
listを継承して、append後にselfを返すメソッドでも実装しなはれ
class MyList(list): __def append(self,a): ____super().append(a) ____return self list_a=MyList([‘a’,’b’,’c’]) list_list=[] list_list.append(list_a.append(d))
>>10 list_list = [*list_a, 'd']
>>10 オブジェクトを直接変更するメソッドは変更後のオブジェクトを返さないのが
Pythonの基本的な考え方なので
(2)の動作を求めてるならそのまま2行で書くやり方に慣れたほうがいい
>>10 そう言うのは関数型言語的な発想。
もしくは同じオブジェクト指向でもメッセージパッシング主体のSmalltalkやRubyの発想。
Pythonのオブジェクト指向はC++的。
美しきHaskell畑へようこそ。
c++でも自身を返す関数は多いけどな。 streamとか
他の言語知ってても python 初心者の頃は仕方ない sort() sorted() でも混乱するし len() はナニコレって思う
むかし無印C そしてアセンブラをちょっとやってPythonに来たんだけど len()便利!って思ったおもひで
Windows版 Anacondaでenv配下のpython exeを直叩きするとライブラリのエラーを吐く(baseが起動されてる?)んですがこれって仕様ですか? Ubuntuで使ってたときはpython直叩きで普通に動いてたのですが…
>>11-16 遅くなりすみませんが、ありがとうございました。
そういうもの、ということでpythonに慣れていきたいと思います。
[{"a":1},{"a":2}] みたいなネストされた複数辞書をjson.loadで読み込むことに成功はしたのですが なぜか相対パスだと成功して絶対パスだと dictionary update sequence element #0 has length 1; 2 is required なエラーがでて失敗します なんでですか
>>23 エスパーすると
フルパスの中の
半角スペースか
2バイト文字が
悪事を働いている
あるいは
ダメ文字
ユーザー名全角文字半角スペースとか入れるやつはあほ
楽天三木谷もkoboアカウントの件でそんなことを言っていたな
実はPHPだったに一票 1も読まない質問者だからありえる
今どき全角だから受け付けないとか許されんわ。 うっかり世界中に絵文字を流行らせてしまった責任取れ
ソースのエンコード テキストデータのエンコード ファイルシステムのエンコード 把握しとけよ
>>30 表示の問題でスペースに見える文字がたくさんある
これらを認めることにするのかしないのか決めないといけない
簡単な検索サイトみたいなの作りたく5月に初プログラミングでPythonはじめて、1ヶ月くらいで原型はできてきたけど そこからMysqlの速度改善、いろんなケースの対応とか修正改良に何ヶ月もかかってしまった… まだHTMLとCSSもほとんどできてないし、ウェブサイト作成の道のりがこんなに長いとは思わなかった 最初に完成形を思い描いておいて正解だった。目標が見えてなかったらとっくに挫折してる
class A: _def __init__(self): __self.data = [1,2,3] a = A() for d in a.data: _print(d) forで回すときだけ、for d in a:と書くだけで 実際はa.data返してくれる特殊メソッド的なやつはないのでしょうか
>>35 ないからって
絶対作るなよ!
なんでそんなところをはしょろうとするんだよ
import itertools
import time
class A:
_def __init__(self):
__self.data = [4,6,5]
_def __iter__(self):
__return itertools.cycle(self.data)
_def __next__(self):
__return next()
a = A()
for d in a:
_print(d)
_time.sleep(1)
>>37 ,38
self.dataを汚すかどうかは置いといて
できました ありがとうございました
>>36 ないのでしょうか?
一応それっぽいというか、まさにってものができたのですが
やらないほうがいい理由を後学のため教えてください
>>41 むやみにクラス化すんなや
「とりあえずでクラスにするのやめよう」
だめだ会話が成り立たない クラスにするかどうかってここで関係あるのかなぁ… >ないからって というのはどういう意図で言ったのか聞きたかっただけなのに
自分は逆に、こういうのでもクラスを使うほうがいいのかと思ってしまった いまだに自作のクラスを使わないといけない状況にあったことがないので だから全然クラスの知識が増えない
pandasでカラム1~カラム10まであるとして、 axis=1の方向でソートして3番目の値を新たにカラム11とする場合の書き方を教えてください。 カラム1~10はすべて数値です。
勉強始めてまだ3日目。まだアンダーバーの意味すらわからん。 カメに捕まってしまいましたし。
import random import pandas as pd df = pd.DataFrame([[random.randint(1,10) for _ in range(10)] for _ in range(5)]) df['No3'] = df.apply(lambda x: sorted(x)[2], axis=1) print(df)
>>44 おれこっち
>>43 ID隠しうんこ野郎だったのかよ
質問するときもちゃんとうんこはつけておけよ!
確かにID隠しはカスが多いイメージなので自分も無視しよう
先週からPythonを始めた初心者です 手書きの数字を書いた画像ファイルからその数字を予測させるプログラ厶を作っているのですが、作ったプログラムファイルと画像ファイルを同一フォルダ内に入れるにはどうすればいいでしょうか? 画像ファイルはペイント3Dで作成したものです コード以前の質問で申し訳ありません
>>51 ペイント3Dで画像を保存する時にプログラムファイルと同じフォルダを指定して保存すれば良いんじゃないの?
処理の手順とか書いてくれたら何がしたいのか分かるかも
>>52 回答ありがとうございます
Python IDLEでプログラムファイルを作成し、次にペイント3Dで作った画像ファイルを同じ場所に保存しようとしたのですが、作成したプログラムファイルが見つかりませんでした
Python IDLEのメニューからだと見つけられるのですが、ペイント3Dからだと同じ場所を探してもありませんでした
仕方なくPython IDLEのメニューからフォルダを新規作成し、そこにプログラムファイルと画像ファイルをコピペしたのですが、それを実行してもRESTARTと表示されるだけで何も起こりませんでした
PC自体に疎く、説明が上手くできず申し訳ありません
OSの種類とバージョンがわからないとどうともいえない
OSはwindows10で、Pythonのバージョンは3.8です
何bitかなんかより、画像ファイルの拡張子合ってますか?
>>64 名前を付けて保存を選択したら.pingという拡張子になったのですがこれではいけないでしょうか…
>>65 いけない子ですねー、バチが当たります。
>>51 > "数字を予測させるプログラ厶"
はそんな.ping子を呼びだしとるんかね?
javascriptでいうところのブロック{}で囲んで複数行のコードを書けるような無名関数と同等のものって pythonだとラムダ式で \ を使う方法しかないっぽいですね? (lamba:[,,,]みたいな書き方だと変数を外におけば大抵はいけそうですけど)
>>67 Pythonはlambdaで実現できないもの(文)はdefで名前つける必要がある、というルールだから、厳密に同じことはできないのではないかな
見た目は多少ごちゃごちゃするけど、関数内defで困ることはない感じ
>>58 ペイント3Dからpythonのプログラムファイルを見つけようとしたの?
通常ペイント3Dから見えるのはペイント3Dで開ける画像形式だけだよ。
エクスプローラーから両方のファイルが見えるなら正常動作
リスト内の検索で教えて下さい。 [0, 1, 2, 3, 4] [0, 1, 2, 4, 6] [1, 2, 3, 4, 6] : このようなリストを10000行含むテキストがあります。テキストの中に重複はありません。 sf = open('Search.txt', 'r') S_list = sf.readlines() for i in range(20): print(S_list[i], end='') として確認すると、ちゃんと読み込まれています。 プログラムの中で、新しい [1, 3, 3, 4, 9] というリストをつくり、これが読み込んだ S_list に含まれるかという 判定をしたいのですが、すでにある[0, 1, 2, 3, 4]を '[0, 1, 2, 3, 4]' in S_list とかを試しても、Falseとなってしまいます。 これでTrueを返すにはどうしたら良いでしょうか。 データの比較は1行そのものにマッチするかという感じです。 関係ないかもしれませんが、データ形式を確認すると print (type(S_list[0])) <class 'str'> となり、読み込まれた行データはstrとなっているようです。 どうか、よろしくおねがいします。
S_listに入ってるのは '[0, 1, 2, 3, 4]'という文字列 でもあんたが欲しいのはきっとリストの集合でしょ printすりゃリストのように見えるのも当然
だから「新しい [1, 3, 3, 4, 9]というリスト」じゃなくて 「『新しい [1, 3, 3, 4, 9]というリスト』を文字列にした、'[1, 3, 3, 4, 9]'という文字列」をS_listに入れる リスト[1, 3, 3, 4, 9]をprintとしたときの見映えと、'[1, 3, 3, 4, 9]'という文字列をprintした時の見映え、一緒になるでしょ だから見ても分らない
> すでにある[0, 1, 2, 3, 4]を > > '[0, 1, 2, 3, 4]' in S_list > とかを試しても、Falseとなってしまいます。 先にこれに答えてあげたら?
>>71 改行コードが含まれてるからだよ
デバッグすればS_list[0]に何が入ってるか確認できるでしょ
コメントとありがとうございます。 確かにおっしゃるとおり[0,1,2,3,4]をある組み合わせの数値リストとして 利用しています。例は5個の組み合わせですが、実際は10個の数値リスト を一つの組み合わせとしています。 そのため、一つの組み合わせを調べるのにもそれなりに時間がかかるため、 すでに調べた組み合わせのリスト化し(それがs_listです。)、新しい 組み合わせがそのリストの中にあれば、再調査する必要がないので 「リストの中を検索して同じ組み合わせがあるか」を調べたいと考えたわけ です。 そのため、目的は文字列として一致していれば良いので、(type(S_list[0]) がstrでも問題はないかと思っています。 python自体が今回はじめてなので、的外れでしたらすみません。
回答者は型としてのリストと勘違いしてるようだけど、質問でいうリストって単なる文字列のことだよね。 文字列比較がうまくいかないって聞いてるんだと思うけど。
Ruby なら配列同士を、<=> で比較するだけ p [ 1, 2, 3 ] <=> [ 1, 2, 3 ] #=> 0 自身と other の各要素をそれぞれ順に、<=> で比較していき、 結果が 0 でなかった場合に、その値を返します 各要素が等しく、配列の長さも等しい場合には 0 を返します
print(True) if '' else raise Exception('err') 参考演算子の中でraiseって使えないのですか?
71です。 いろいろお騒がせしましたが解決しましたのでご報告いたします。 原因は75さんのおっしゃるとおり改行コードでした。 いろいろ試しているうちに、 S_list[0] in S_list ならTrueを返すことに気がつきました。 そこで [0,1,2,3,4] +'\n' in S_listとやったら 無事、Trueが帰ってきてくれました。 これを解決するのに4時間ほど要しましたが(汗) 苦しいけれどプログラミングは面白いですね。 まだまだ勉強が足りません。 みなさん、ご協力ありがとうございました。
Ruby で作った require "json" json = <<'JSON' [0, 1, 2, 3, 4] [0, 1, 2, 4, 6] [1, 2, 3, 4, 6] JSON json.each_line.with_index( 1 ) do | line, idx | # 各行・添字 ary = JSON.parse( line ) if ( ary <=> [ 0, 1, 2, 4, 6 ] ) == 0 # 同一なら puts "#{ idx }行目と一致しました!" break end end 出力 2行目と一致しました!
関数にして実行することにしました def _inter(msg): _raise Exception(msg) print(True) if '' else _inter('err')
>>79 三項式は”<式> if <条件式> else <式>”の形
式のところに文を書くことはできない
raiseは文
以下のGitHubのコードで
https://github.com/jstasiak/python-zeroconf/blob/master/examples/browser.py 「def on_service_state_change(....) -> None:」
という箇所があるのですが、 「-> None」というのはどういう意味・どういう処理ですか?
初めて見たのですが、検索に引っかかりにくそうな文字列なので教えてください。
戻り値がないことを明示するような何かでしょうか?
ググれば普通に出てくるけど 返り値がないことを明示するもの 実行時の影響はない、人間が読みやすくするため
モジュール等の関数の引数で、単体の文字列でも、文字列のリスト型でも渡せるようなものがありますが、あれは関数内でリストかどうか判別して処理してるんでしょうか。 たとえば↓こんな処理があるとして for str in str_list: ___ print(str) str_list = ['abc', 'def'] str_list = 'abc' のどちらでも、'abc'はひとかたまりに'abc'と扱うようなシンプルな書き方はありますか? if type(str_list) != list: ___ str_list = [str_list] のように1個だけのリストに置き換えてあげないとダメですかね
>>88 エスパーしてみると、
どっちがこようが、中身を1つずつfor文ブン回して処理してて
その中でさらにlen()を使ったりして中身の中身が1文字になるまでfor文ブン回してるなら
リストがこようがstrがこようが問題ない
>>71 def func(*args):
if len(args) == 1 and isinstance(args[0], (list, tuple)):
return func(*args[0])
for s in args:
print(s)
書いては見たものの、普通に分岐して処理を分けたほうが効率も可読性も上がると思う
>>88 一般的にはリストかどうかを判定するんじゃなく
渡されたiterableがstrかどうかを判定して分岐させる
>>88 >モジュール等の関数の引数で、単体の文字列でも、文字列のリスト型でも渡せるようなものがありますが
ものがあるならそれを見ろよ
見てもわからないならそのリンクを貼れよ
何で馬鹿正直にここでコードを書いてるんだ
main.py から hoge.py をimportするとき、 hoge.py が main.py と同じディレクトリにあることを 明示的に示したい場合はimportをどのように書くのが正しいんでしょうか。 import hoge で一応実行はできますが、vscode(Pylance)から認識できなくて警告が出ます。 from . import hoge とするとvscodeで認識されるようになるのですがpythonの実行がエラーになります。 もしかしたらvscodeがおかしいのかもしれませんが。
from . import hoge でももちろん OK sys.path.append('.') の反対で sys.path の先頭に '.' が来るようにすれば良いんじゃね
あと main.py のディレクトリに __init__.py を造る
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw
ありがとうございます。 どうも from . の相対指定は __main__ からは使えないようですね。 なんでvscodeは import hoge だと見つけてくれないんだろう。
配列を回転させるにはどういうロジックを使うんでしょうか? テトリミノです これを var mino = [ [1,0,0,0], [1,1,1,0], [0,0,0,0] ] var mino = [ [0,0,0,1], [0,1,1,1], [0,0,0,0] ] こうしたいのですが、1つの目の配列のmino[1][2]番目にある配列を原点としたいので、並行移動も必要かとは思います あるいは配列のフィールドを大きくする必要がありますね var mino = [ [1,0,0,0,0,0], [1,1,1,0,0,0], [0,0,0,0,0,0] ] var mino = [ [0,0,0,0,0,1], [0,0,0,1,1,1], [0,0,0,0,0,0] ]
>>99 テトリミノごときでは、予め
リスト_ブロックの種類その1=[向きその1の座標リスト、同2,3,4]
みたいに
全種類のブロック、全向きの描画指示リストを作ってしまっておき、
右回転ボタンを押したら リスト_ブロックの種類その1[ここの中を1足せ!]
左回転なら リスト_ブロックの種類その1[ここの中を1引く!]
で、ブロックアイコン部分を処理し、
上下左右ボタン押下時は描画中央点の座標を移動させる
とやるのが定番らしいぞ。
>>100 上のミノの場合は上下左右全4パターンしかないでしょうか?
回転描画と移動は分けるわけですね
テトリスでもそのロジックでやるんでしょうか?
>>101 Yes普通は
そのようだ
そのようだ
テトリスで重要かつ難しいのは、
「考えれば詰まない」程度にブロックの出現比率を考えること
ありがとう もう少し調べてから来る とりあえずクラスにそれぞれの方向の配列を作ってみる でも、回転させる方法もあるにはあるんだよね
>>102 テトリスではブロックの出現率はすべて均等
もっと言えば7種類あるテトリミノは7回のツモで全て出るようになっている
これは最近のゲーム全てで採用している共通仕様(ガイドライン)
複数の配列を格納しておく場合、クラスを定義するのがいいんでしょうか?
classはなぜnewしないといけないのか(´・ω・`)、、、
あとテトリスの回転規則はすべて規定されてるから 軸ブロックの位置のデータと向き(4パターン)だけ持っといて 普通に回転できるならパターンだけ入れ替える 他のブロックや壁と干渉するなら合法な回転になるように補正する でいい
パターンを作るのと、普通に回転させる手法で、後者の手法はなんというかわかりますか?
名前が欲しいなら「単純回転法」とか自分で勝手に好きな名前を付けていい 何をどう呼ぼうが自分の自由
なので美人投票になり、多くの人が名付けそうな名前を当てればいい
自己レスだけど
ああ答え出たわ
>>112 thx
>>98 Ruby でも、require, require_relative は異なる
requireは、$LOAD_PATH に指定されているディレクトリから、
相対パスで該当のファイルを探しに行く。
$LOAD_PATHには、カレントディレクトリは入っていない
一方、require_relativeは、そのファイルがあるディレクトリからの相対パスで探す
すみません ネズミの血管が高血圧でどれだけ縮んだかを調べてほしいなんて言われたのだけど、 画像には縮んだ跡がはっきりわかるほど色の違いがでてるので、 色の閾値範囲内で面積を求めるようなサンプルが解説してあるようなホームページってどこかにあります?
血管が高血圧で縮んだのではなく、 血管が縮んだから高血圧になったのでは? スタートから間違えてる気がする。
テトリスで配列を回転させるやり方は一般的ではないのですか?
746 名前:デフォルトの名無しさん[sage] 投稿日:2019年12月18日(水) 14:05:40.87 ID:j0+9FDxC ていうかこのテトリス奴って一年くらい前にも同じレベルのレスしてなかったっけ?
そもそもテトリスなんて多言語含めりゃサンプル山ほど見つかるだろ
配列は回転アニメーション入れるのが面倒なので3dでやってみますです
https://note.com/thinknewproducts/n/n6db63a3dcc1e >▶Dockerを用いた開発手順
>③コンテナ内で開発を行う
ってあるけど
dockerって基本GUIは推奨じゃないよね
コンテナ端末上のviとかで開発すんの?
(さすがに、ホストにインストールした開発環境でコードをコピペして云々じゃないよね)
デバッグのときだけエディタでコンテナ使うならわかるけど
>>126 vscodeとか使ったらssh経由でリモートのファイルを触れるので(感触はローカルファイルと一緒)、編集はそれでして
ビルド、実行、デバッガはコンテナ上で行う
なんでmac標準で入ってるpythonは2なんだ?
>>119 ありがとうございます。参考にします。
>>117 ただの病院の事務です
医者に宿題を出されて、画像から面積計算なんてやったことないよと頭を抱えてるところなだけです
>>129 3系がうまれるまえに骨子ができたったから。
10系ろんぐらーいふ!
numpyのndarrayに時系列でのデータと計測時のタイムスタンプが保存してあるのですが これをcsvに書き出すにはどうすればいいですか? writecolsみたいなのがあればいいんですが…
>>132 「numpy 出力 ファイル」あたりでググって
あとはおこのみで
Ruby では、 require 'csv' CSV.open( 'out.csv', 'w' ) do |csv| csv << [ 1, "a,b" ] csv << [ 2, "あ\nい" ] end ファイル書き込みの結果 1,"a,b" 2,"あ い"
これ何の断りもなくrequire 'csv'でグローバルの「CSV」汚染するわけ??
require 'csv' は、標準モジュール Ruby は、便利な標準モジュール・電池付き言語。 Batteries included
>>136 それは Python も一緒じゃね。てか汚染しない言語あるの?
>>136 あっごめん、大文字小文字が違うということね。たしかにそれはきつい。
CSV = 'important string' require 'csv' こうするとエラーで止まるがエラーメッセージがTypeError (CSS is not a class) 相変わらずエラーメッセージ糞な言語だな。 CSV is already usedとか出せんのか。
>>140 >CSV is already usedとか出せんのか。
すでに使われてるというのがエラーの原因じゃないからね
間違ったエラーメッセージを出せっていうのは無理筋
「正しいエラーメッセージ」に従ってcsvモジュールの中調べに潜っちゃうんですよね分かります
>>143 require ‘csv’してるのに、それによってトップレベルに追加されるモジュール名/クラス名を把握してないなら調べるのは当然だよね
pythonみたいにasがあれば必要ないよね。 rubyではどう書くの?
import axios from 'axios'; JavaScript でも、ファイルパス・ファイル名も書いていないのに、 どこかにある、axios が読み込まれるw これは標準モジュールじゃない。 npm/yarn で、自分でインストールしたもの
>>148 pythonのimportもjsのimportもasがあるからアサインする変数名自由に決められるよね。nodeのrequireも=でできる。
で?rubyは?
>>140 の CSV = 'important string' を救う方法はあるの?ないの?
誤魔化さずに答えろよ!逃げんなよ?
>>148 どこかにあるって言うか、解決の順番はあるんだが。
rubyみたいにenvとかで逃げる必要すらない。
>>149 ないわけないでしょwww
調べてもわからなかったのかな?
>>151 誤魔化すな。逃げるな。
あるならなぜ示せないんだ?
まさか無いの?www
そんなわけないんだよな?
誤魔化すな!逃げるな!ルビチョン!
このスレって優しい人しかいないですよね テトリス教えて下さいね
>>155 nicovideo。jp
watch/sm8517855
おおもとのクラス内の関数内でrandomモジュールを使って指定した変数を、継承したGUIを作るclassに継承するにはどうすればいいですか?
https://ideone.com/CtT6qc クラスメソッドにして、継承先のクラス実行する
もしくは、クラス変数として継承元クラス定義時に定義してしまう
クラスの外(__init__.pyとか実行ファイル)で定義してそれを使うようにする
習慣化するには、結果よりもルーティーンにこだわったほうがいいですか? 何分出来たかではなく、既定の時間にとりかかれたかどうかす
>>162 嫌々やってるならどうやったって定着はしないだろう。
その勉強に価値がある、面白い、自分にとって必要だ、何でもいいから動機付けがあるなら一日の時間にとらわれず続けられるはず。
嫌嫌だと定着しないというのも良くわからないですが 筋トレは嫌ですけど、定着してますよ 目的は達成したいけど、プログラミング自体は英数字の羅列だし、拒絶反応が出るのですよ
>>164 筋トレは筋肉に負荷をかければそれで目的が達成されるから、嫌々でもやれば効果は出るだろう。
プログラミングはただ教材を読みました、何かをなぞって書きましただけでは身に付かない。
ぼくは勉強しました!がんばってます!っていう満足感と実績が欲しいだけなら、嫌々でも目的は達成されるだろうけど。
>>165 いえ、筋トレの勉強ですね
フォームとか結構シビアですよ
なんも反応ないと何か心許ないので、誰でもいいから意見ください 肯定でも否定でもなんでもいいです
>>171 はいはいみたみた
以上をお望みなら
ここは取り下げて、
御礼P弾んで知恵袋池
1から体系的に学び直したい(学び直させたい)んだけど、書籍としてはオライリーの「入門 python3」が良いんでしょうか? 他におすすめの書籍があったら教えていたはだけないでしょうか? 初~中級くらいに向けた書籍がありがたいです。
質問! PyCharmなんだけど自分のクラスのインスタンスを返すクラスメソッドの返り値の型ヒントはどう書けばいい? class MyClass: @classmethod def make_my_class(cls) -> MyClass: return cls() って書くとUnresolved reference ‘MyClass’となる
typing.ForwardRef('MyClass')
>>177 super(MyClass, self) ならどう?
>>174 悟空「くれるってんなら、もらってやんぞ」
そうなんだよな 公式のチュートリアルまじお勧め 分かりやすく間違いなく書いてある なんで金を出してマンガがいっぱいで 間違いの多い本をみんな買いたがるのか不思議だ
でもこういうチュートリアルにはDBとかクラウドとの連携についてはほとんど書いてないよね 文法を勉強したいなら良いけど実用的じゃない
そもそもプログラミングの漫画本なんてほとんど無くね? 自己啓発の世界じゃねーんだぞ
Python完全に理解した
>>183 それは言語仕様じゃなくてライブラリの使い方だから載ってないというか
それぞれ別の利用するDBライブラリの資料観ろとしか言いようが無い
>>184 マンガっていうか挿絵ね
あるいは無駄な茶番劇ね
それにかなりのお金を払っていることになる
>>174 パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6/1
漏れが、新しい版を出せと、ヤイヤイ言ったから出た!
改訂2版 パーフェクトRuby、2017
Ruby の方は、2017年に出てるから
ガイジはとうとう妄想までするようになったか。 人を殺めるなよ?
普通、改訂版は5年後に出す でも、パーフェクト Python は、なかなか出さないから、 漏れがグチグチと、文句を言い続けた
>>190 妄想乙
お前の独り言なんて誰も見ねーよ
追加でクレクレしてすみませんが、機械学習&ディープラーニング系の本と、画像認識系の本のおすすめも良かったらお願いします。
もしかして今から始めるなら3.9は避けた方が良いの? 取り敢えず新しいの入れろ的なブログばっかだったんだけど 拡張?みたいのがまだ追いついてないから避けろみたいなのも見て混乱してる
3.8でいいでしょ 3.9はビルドできないモジュールまだ多い
"xxx=yyy=ccc=ddd" という感じで、=で繋がれた4つの文字列があった場合 最後の4つ目のdddだけを、aaaに書き換えるにはどうすればいいですか? dddの部分は、dddで固定されているわけではなく、tttなど変化する場合があります。
>>200 a= "xxx=yyy=ccc=ddd"
a=a[:-3]+”aaa”
マジレスすると個々の文字列の長さが不定なら=でsplitしろ
右から探し始めて最初に見つかった=で以降置換出来る正規表現無かったっけ
本家のPythonの場合プロンプト画面を非表示にするには 拡張子py→pywにするでおkなんだが Anaconda付属のPythonでこれやるとプロンプト表示される 対策てある??
python.exeではなくpythonw.exeやで
>>209 .*だと=ともマッチするので
=.*$だと"=yyy=ccc=ddd"にマッチしてしまうぞ
>>200 >>209 import re
a= "xxx=yyy=ccc=ddd"
b=re.sub("...$", "aaa", a)
print(b)
c=re.sub("=.*$", "aaa", a)
print(c)
実行結果
xxx=yyy=ccc=aaa
xxxaaa
開発環境って、VScodeが最適? Eclipseとか、pycharmとどれば良いですか? おすすめを教えて欲しいな。
split は bowling の split や野球の split fingered fast ball strip は君らの好きなあれ
競技プログラミングで pypy は幅を利かせているように思えますが、 競技プログラミング以外での pypy はどうですか?
>>217 C拡張モジュールが遅いから使われていない
特に機械学習分野はCUDAの都合でCPython一択
>>217 CPythonでしか動かないパッケージを使ってなくてパフォーマンスに困ってるならいいんじゃない
でも、大抵CPython必須なパッケージを1つ以上使っているケースがほとんどだと思うけど。
競技プログラミングはアルゴリズム実装に特化してる競技だから、実用とはまた違うよね。
>>214 総合面で考えるとSCodeが楽
大まかに書くと
・Eclipse
昔からあるツールだけど、言い換えると古い
UIやフォーマット機能も考慮すると、正直選択肢には上がらない
・PyCharm
IDE使って開発するなら実質これ一択
Pythonだけなら無償版で十分だけど、機械学習やWeb(Django)とかを触るなら有料版が無いと辛い
・VSCode
必要な拡張機能をぶち込めばIDEと遜色なく使える
元がテキストエディタなので比較的軽いのも魅力
というか無料でやっていくなら大体これに落ち着く
VS Code用Python拡張機能に「debugpy 1.0」が搭載、2020年10月リリースより
https://codezine.jp/article/detail/13135 米Microsoftは、Visual Studio Code用Python拡張機能2020年10月リリースの提供を、10月28日(現地時間)に開始した。MarketplaceまたはVisual Studio Codeの拡張機能ギャラリーからインストールできる。
>>222 ありがとう。
結局、無料ならばvscode ってことになるのね。
とりあえず、つかってみるね。
助かりました
>>219 ,220
ありがとうございます
CPythonでいきます
pythonはよく遅いって言われるけどそんなに体感出来るほどのものなの? プログラミング自体pythonが初めてだからどういう使い方してる時に遅いって感じるんだろう
>>227 PythonとCに
1+1を10億回くらい計算させて
時間差を体験してみたらどうじゃろー
for i in range(1000000000): k= 1+1 出力しないと最適化されてなくなりそう。 出力すると print の速度に依存するし。
長さ10億の空配列(リスト)準備しておいて順番に入れてくとか 100萬行のファイル出力で競争するとか 工夫必要かー
処理に時間かかるなと思わないまでは遅いとか気にしなくて大丈夫
プロのpythonistともなると競技プログラム全問制覇は当然のこと、 それでは飽き足らずpythonそのもののソースコードを読んでその高速化に努めるようになる そうこうしてると動的計画法の難問をちょっとした片手間と戯れでpythonとc++の両方で解くこともしばしばだ するとC言語系に比べてpythonは遅いということを実感する
>>235 Pythonで適当に書いた計算コードの完了見積もりが10日とかになると、
流石にまずいなと思って1日ぐらいかけてC++で書いてみるんよ
それで10倍とか100倍速かったりすることがあるんよ
(速くないこともある)
そのときにPythonは遅いと実感する
だけど、実装までの時間は速いし、Pythonで試行錯誤してからC++で清書する方が初めからC++で試行錯誤するより早くできる場合も多いから、
遅いと感じたら最適化すればよい
「早すぎる最適化は諸悪の根源」ってやつよ。
コンセプトが正しいことを確認してから最適化するのが99%のケースにおいて良い進め方だと思う。
>>236 それにしても書き直すのはオーバーヘッドデカすぎ内
Cython,numba,Numpyを適切に使うんじゃだめなの
>>237 それでもいいよ。書き直すっていっても全部書き直す訳じゃないんだよ。
pybind11とかその辺のもの使って部分的に書き直す
>>237 言葉が足りなかったけど、CPythonはそのぐらいC/C++との親和性が高くて、
遅いところだけ書き直すオーバーヘッドがそれなりに低いということね。
やってみると結構簡単だよ。
この点が"CPython"ならびにPythonが大流行してる理由の一つだと思うよ。相互運用性が高い。
CUIでよければOS縛りから割と自由なメリットも大きい
文字列が整数かどうかのBool値ってどうやったら調べられますか?
python?聞いたことねーわ。 それより2000年問題どうするよ
>>244 そちらは今何年? うちは2031年。
三原じゅん子が都知事やってる。
今は正規表現を下記のように一度mにセットしてif文と2行で書いています。 for line in f: m = re.search(r"^ *[#\n]", line) if m: continue m = re.search(r"^ *(\S+) +(\S+)", line) if m: print("{} {}".format(m.group(1), m.group(1))) continue print("エラー") これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが 何かスマートな書き方はありますか? イメージは下記です。 if m = re.search(r"^ *[#\n]", line): pass if m = re.search(r"^ *(\S+) +(\S+)", line): print("{} {}".format(m.group(1), m.group(1))) else: print("エラー")
インデントが見づらかったので再投稿。 今は正規表現を下記のように一度mにセットしてif文と2行で書いています。 for line in f: m = re.search(r"^ *[#\n]", line) if m: # コメント行。何もしない continue m = re.search(r"^ *(\S+) +(\S+)", line) if m: print("{} {}".format(m.group(1), m.group(1))) continue print("エラー") これだとcontinueも含めてかなり冗長になってしまうので、mのセットと正規表現マッチのif文を一行でまとめたいのですが 何かスマートな書き方はありますか? イメージは下記です。 if m = re.search(r"^ *[#\n]", line): # コメント行。何もしない pass elif m = re.search(r"^ *(\S+) +(\S+)", line): print("{} {}".format(m.group(1), m.group(1))) else: print("エラー")
日本,2,セネガル,2 日本,1,ポーランド,0 日本,2,コロンビア,1 例えばこのようなデータをテキストでcsv形式のファイルに保存していたとして、 これを行ごとに読み込んでいったときに、”日本”がdata[0]として扱われない原因は どんなことが考えられますか?
>>248 3.8以上ならassignment expressionでif文やwhile文での代入ができる
それよりも先に同じ処理の繰り返しをループにまとめたほうがいいんじゃないかな
>>249 Pythonコードで表現してみせて
おk?
ここで関数を game(fname,"日本","セネガル")としても「試合なし」が返ってきます。
>>253 カンマ区切りのデータをタブ区切りでsplitしてるみたいだけど?
>>255 あ、split(',')にする必要があるってことですね。ありがとうございました。
>>247 チェリー本ってそれほどいい本だとは思わないけど
第3章の「テストの自動化」が珍しいだけで
MacBookでPythonの勉強したいんだけど アナコンダは非推奨なんですか ちなプログラミングのプもわかりません
>>258 Macの場合はAnacondaいらない
pyenvとpoetryで環境分けた方がいい
>>257 それでは初心者から一歩踏み出すのにお薦めの書籍はなんでしょうか?
Python代替実装「Pyston v2」がリリース、Python 3.8よりも20%高速化を実現
Pyston開発チームは、Pythonと互換性があり、より高速な「Pyston v2」を、10月28日(現地時間)にリリースした。
「Pyston v2」は、「Python 3.8」と比較して20%高速であり、chaos.pyやnbody.pyといったベンチマークを用いたテストでは、標準のPythonと比較して2倍の処理速度を実現している。
http://codezine.jp/article/detail/13152 pathlibでstr(Path('/dir/to/file/'))ってやると /dir/to/file ってなりますが ラストのスラッシュはつけないっていうのはそういう決まりなんですかね?
XLwingsで文字色を変える事は出来ないのでしょうか。 Openpyxlで保存するとシェイプが消えるので、、、 もしくはopenpyxlはxlwingsのようにエクセルを開いたままでも変更がはいりますでしょうか。 それならば保存だけエクセル上でやればよいかなーと
>>258 anacondaにしとけ。馬鹿に唆されてpoetryなんか使ってもどハマりするだけだ。
>>268 公式とは関係ない勝手なサイトなんだな。
anaconda勧めるとか、とりあえずインストールすらさせないとか、なんか恣意的過ぎてちょっと違う気がするわ。
colabでできる事なんか限られてるだろうに。
Macならhomebrewで適当に入れたらうまくやってくれるぞ
LinuxもLinuxbrewで ChromeOSもChromebrewで
まあ公式にこだわるのはわからんでもないが正直公式のvenvなんかよりanacondaのが動作が安定してる。 そもそもそこまでこだわるならdocker使った方がよっぽど安全だわ。
>>261 パーフェクト Python [改訂2版]、2020/6/1
パーフェクトシリーズは、Ruby の新版が出たのに、Python のが出ないから、
漏れが文句を言い続けたら、新版が出た!
改訂2版 パーフェクトRuby、2017
パーフェクト Ruby on Rails 【増補改訂版】、2020/7/25
データベースで管理するほどのもんでもないような辞書データって 何の形式で管理すればいいの? 今やってるのはjson全部開いて挿入して全部上書きってやってるけど なんか無駄が多そうな気がしてモヤモヤする
>>279 一通りやってみたけどdumpとloadしかできないっぽい?
データ更新したいとき
全部読み込んで解析して変更して全部保存
みたいな
jsonで扱うときとそう変わりないような
こういうのは問答無用でデータベース管理しとけばいいのかな
読み書きが多いならSQLiteかなにかにでもつっこんどき
もしよろしければ教えて下さい。 リストの要素単独に1を与えようとして、a[i][j]=1のときに a[i][j]=a[i][j]+1 とすると、 なぜかa[i][j]以外のa[i+1][j],a[i+2][j],a[i+3][j]・・・もすべて2となってしまします。 考え方間違ってますでしょうか?
>>282 もうこの際mysqlもsqliteも使い比べしてみる㌧
>>283 csvを操作するモジュールに、
範囲指定でいらない部分を削除したり、範囲部分だけ持ってきたりできるなら使ってみようかな
ブラウザなど、多くのアプリは、SQLite を内蔵してる。 ゲームエンジンでは、Lua, Squirrel 単純な構造なら、CSV。 複雑な構造なら、JSON, YAML, XML そのプログラミング言語特有の形式を使うと、別の言語で処理できない
>>278 pickel
yaml
json
msgpack
sqlite
>>287 ,288,289
ありがとうございました。
まさに289さんのリンク先の間違った書き方例をしてしまっていて、
書き換えたら行けました。
大変助かりました、ご親切にありがとうございました。
画像比較のライブラリみたいのってないの? メソッドに送ると相似率が返ってくるみたいな
Google Cloud VisionのAPIに画像投げてパラメーター比較すればできそう
JaneとかIrvineとかののステイタスバーの要素を読み込む方法がわからない
https://ideone.com/JaF7A2 配列を0の箇所に表示するにはどうしたらいいんでしょうか?0は壁でテトリス作成中です。
if文で条件指定していますが、うまくいきません。
こうなります。
0部分にだけ表示させる分岐を教えて下さい。
[1, 2, 3, 3, 0, 0, 0, 1]
[1, 2, 3, 3, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
Raspberry pi 4B でPytorchのtorchvisionパッケージ(0.8.0)をインストールしたいのですが、pip3でインストールしようとすると、0.2.2までしか無いってエラーメッセージが出て困ってます。みなさん自分でビルドしてるのでしょうか?もし良い方法があればよろしくお願いします。
漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 をコンパイルして入れた
なぜかと言うと、パッケージマネージャーに入っているのは、
古いバージョンが多いので使えない
build-essential とか使って、コンパイルする
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential 簡単なのは、DockerHub で、それ用のDockerを探す
winのpyaudioでwasapi排他モードを使いたいんですが デバイスには他のアプリケーションからアクセスできるので wasapi共有モードっぽいです 排他モードに切り替えるにはどうすれば良いですかね
ベトナム戦争で韓国軍に家族を虐殺されたベトナム人女性が
韓国政府に損害賠償を求める裁判を初めて起こした。
韓国では慰安婦問題などで日本批判が長年展開されているが、
「戦時の暴力」をめぐり今度は韓国政府が法的責任を問われる側に立たされた。
https://special.sankei.com/a/international/article/20201022/0003.html tkinterで教えて下さい ┏━━━━━━━━━━━━━┓ ┃ □□ ┃ ━ window ┃ □□ ┃ ─ Frame + ScrolledText ┃※───────────┐┃ □ Button ┃│ │┃ ┃│ │┃ ┃└───────────┘┃ ┗━━━━━━━━━━━━━┛ こんなウィンドウがあった時、※の座標を指定して右とか下にウィンドウを マウスで広げても追従するにはどうしたらよいでしょうか。 ↓は非常に理想に近いのですが、下に隙間が出来てしまっています。(左右下の隙間は5ピクセル程度) import tkinter as tk import tkinter.scrolledtext as tkst win = tk.Tk() frame1 = tk.Frame(master = win,bg = 'blue') frame1.pack(pady=50,fill='both', expand='yes') editArea = tkst.ScrolledText(master = frame1, wrap = tk.WORD,width = 50,height = 20) editArea.pack(padx=5, pady=5, fill=tk.BOTH, expand=True) editArea.insert(tk.INSERT,'abcdefg') win.mainloop()
コメントありがとうございます。 pady = 0 だと、上の余白が無くなってしまいます。 上の余白を保ったまま、左右下を動かして追従させたいという事です。 説明不足ですみません。 コメントありがとうございました。
ボタン四つを包んでる仮想フレームが伸縮自在になればいいんでねえの
┏━━━━━━━━━━━━━┓ ┃※───────────┐┃ ※目に見えないサイズ可変のフレーム ┃│ □□│┃ ┃│ □□│┃ ┃└───────────┘┃ ┃┌───────────┐┃ ┃│ │┃ ┃│ │┃ ┃└───────────┘┃ ┗━━━━━━━━━━━━━┛
>> 312
助言ありがとうございます。
https://daeudaeu.com/tkinter_place/ を参考に1から作ってみました。
import tkinter
import tkinter.scrolledtext as tkst
# メインウィンドウ作成
app = tkinter.Tk()
app.geometry("600x400")
frame1 = tkinter.Frame(app, width=200, height=200)
editArea = tkst.ScrolledText(app,wrap= tkinter.WORD, width=20,height = 10)
frame1.pack()
editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5)
# メインループ
app.mainloop()
最初のコメントの説明がわかりにくかったですが、こんな感じのを
イメージしていました。
ありがとうございました。
Tweepy分かる人いますか err.266 This request looks like it might be automated. ~ のメッセージなんだけどこれってどれくらいほっといたら解除されるんですかね アプリ切り替えても各key変えても出てくるのでアカウントに対しての制限だとは思うんですが3時間経っても変わらなかったので
普通にTwitter公式クライアントでもWebでもツイートrtフォローdm全部できるんですよ 何故かtweepy経由だとダメなんです
APIリクエスト数制限ではなくbotとみなされて制限されたんだから解除されるのはツイッター様の気分次第だろうな
PythonでMySQLを扱いたいときはSQLAlchemy使うのが無難?
無難を求めるなら変なレイヤを重ねない方がトラブルは少ないに決まってる pymysqlに一票
21時に試したけどダメでした 1週間くらい様子見ることにします
一番上にimportをまとめた方がいいみたいなベストプラクティスは無いですよね? import foo import bar 何らかの処理 import poo みたいに書きたいのですが
>>326 一応あるよ
pylintやflake8でチェックすれば分かる
>>328 そうなんですね
importとそのimportで読み込んだものを使うプログラムのセットで定型文として
冒頭にコピペしたいとき
必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
どうかなと思ったのですが
>>329 そのセットをモジュールとして扱えるようにして
冒頭でimportすればいいんじゃないの?
>>330 #!/usr/bin/env python
# -*- coding: utf-8 -*-
的なやつとか
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
してすぐ変数に代入したいときとか
(あくまでコピペする用途に関して)他のimportと干渉しないように書けるのかなぁと
ちなみに今は
>>331 みたいなのをエメットで出して
その下にそのプログラムで必要なimportを追記して
あとで整理(importだけ一番上でまとめる)しようかなと思っていますが
他のプログラムと比較したときにimportの差分がパットみ見づらく放置してしまっています
その程度の用途なら好きに書いても良さそうな気がしてきました
他にいい書き方、整理の仕方があるのかもしれません
>>329 >必要のないimportが混じってるといちいち消さなきゃいけない or 必要なものは挿入しないといけないので
前者はコードフォーマット機能で自動で消せるし
後者も自作ライブラリじゃなきゃインポート文を自動的に追加する機能があるから
これの作業をすること自体が少ない
ついでに言うとimport文を先頭にまとめるのはpep8でも決められてるから
その辺のコーディングルールに反する事になる
……というかimport文がまとまってないと必要なライブラリ/モジュールが一目で分からんくなるから
可読性がクソ落ちるぞ
>>322 ORマッパで楽したいか、SQL直接書きたいかで変わる
求めるパフォーマンス次第だよ、パフォーマンス必要ならSQL直書きのほうがいいし
>>332 importでgrepしてsortして一番上に入れ直せばいいんじゃない?
あとemmetでそれ入れたとしてもちゃんとカーソル動かしてimportの下に入れるんじゃダメなの?
>>323 >>324 ありがとう。それも見てみる
>>334 それは書くべきだった。ごめん
非同期バッチで軽めのクエリ投げるだけなので楽な方が良い
from おじさん import 汚いチンコ ass hole
>>334 自分はPythonとMysqlを同時に始めたからSQLのが便利だったな
ORMで検索すると一言目にはSQLを書かなくていい覚えなくていいって出るけど、メリットどころかなんでわざわざSQLをORMで書き直す必要があんのって感じだった
一度どっちかが便利だって思ったらそうそう変えられない。入り口によるのかもしれない
1秒後に空ファイルを作るコマンドをなげて、本処理はそこで止まらずに進みたいです。 空ファイルはとりあえず p=pathlib.Path('xxx') p.touch() で作ろうと思っていますが、time.sleepを使うと本処理自身もとまってしまうので使えませんでした。 何か方法はありますか?
いちおう os.system('sleep 1;touch xxx') でできますが、一度シェルに投げるのは気持ち悪いので、できればpython内で完結できればと思っています。
thread.run(pathlib.Path('xxx').touch) touch() じゃなくて touch を渡す
thread.run(lambda : pathlib.Path('xxx').touch) こっちかも知れん
>>339 空ファイルの用途と、一秒後という理由がわからないけど、
本処理の前に作ってしまってはダメなの?
意外とそういう処理で済んじゃう場合もあるし
>>342 ,343
このthread関数は
from threading import Thread
ではなく、python2系にある全部小文字の
import thread
でしょうか?
>>344 空ファイルはフラグ用で、別に動いてる処理と連携させるものです。
即ファイルが作成されるとその後の工程でまずいので制御したいと考えています。
Linux ではロック用途で、安全に一時ファイルを作る関数もある
Tkinterてwinで作ったのをmacで表示させると レイアウトぐちゃぐちゃだけど 他のGUIライブラリも一緒? Kivy、PyQt、wxPython、PySide辺りで試したことあるひと 教えてくり
絶対配置はどのライブラリもダメてことだよね OSごとのウインドウやフォントがそもそも違うから ウイジットを画面いっぱいに埋めるように配置指定すればいけるてことでおk? でもこれ不格好すぎるんだよね で空白のためpx単位で指定したらもうアウトてことか…
pythonでマルチプラットフォームのGUIアプリを作ろうとしてる時点で道具の選択を間違ってるよね
ピクセル単位で指定しても良いけど面倒臭いだろ それでもどうしてもというなら適当に余白造って OS変わっても大丈夫な様に造るしかない
autolayout機能のあるライブラリがないの?
>>354 オートレイアウト的なのだけ駆使してても
OSかえたらコレジャナーイ感が出ることは
まれどころじゃなく
よくある
>>352 んだ
初心者相手にデマ撒き散らすのが流行ってんのか? これも売電推しのマスゴミのせいだな
非同期?アプリを作りたいんだけど、async/awaitが難しすぎて理解できない 俺は無能なんでしょうか やりたいことは以下 ・PCの特定のフォルダを監視し、新規ファイル・更新ファイルがあるたびに SQLiteのテーブルにファイル名とタイムスタンプを格納・更新する これを単純なループで作るとPCが固まってしまうので 非同期アプリにする必要があると思った次第
asyncioの惨状なんだあれ リリース毎にDeprecatedだらけの迷走っぷり 折角async/awaitキーワードまで取り入れたのに名前が足りなくて関数名がおかしくなっとるやん
>>358 それは非同期にしなくてもsleep挟めばいいだけじゃないの?
自分はpyqt使ってマルチプラットフォームアプリ作ってます 自分はMacで,周りもMacの人が多いです 議論なされてるようにWinではレイアウトが微妙にズレてますが,大半の人が自分のレイアウトで使えてるから,まあいっかと思ってます 気にできるほど他の言語に明るくないので…
同階層のpyファイルを読み込むにはimport ○○とするらしいのですが ふと思いました ○○.pyと、すでにインストール済みのモジュール名がかぶったときはどうするのでしょうか あと、単に同階層の○○.pyをimportすることが明確な場合に、 とりあえず別のインストール済みのモジュールも総当りで?見つけようとするのは無駄な動きな気がしてしまうのですが問題はないのでしょうか
同階層のやつが優先されるのでお察しの通りエラーを吐く なのでモジュールと同じ名前は避ける必要がある
>>360 残念ながらWindowsにはsleepがない…
>>358 うちもパイソンはじめて1ヶ月くらいのときに同期やろうとしたけどわけわかんなくて挫折したw
別の方法で解決したけどいつか再挑戦したい
plt.subplot(2, 2, 4) plt.plot(ほにゃらら) pltshow() print('end') みたいにplt.subplot使ってplt.show()するとplt.show()でグラフ表示した後フリーズして print('end') が実行されないのですが・・・、どうすればいいでしょう? グラフ自体は望んだ通りのものが表示されているのですが、グラフウインドウを閉じてもprintが実行されません。
フリーズはしていない 戻って来て欲しい時は plt.draw()
ごめん間違った この手順でやってみ >>> from matplotlib import pyplot as plt >>> plt.subplot(2, 2, 4) >>> plt.plot([[1,2,3],[4,5,6]]) >>> plt.pause(0.1) # ここで表示されて 0.1 秒後に戻る >>> plt.plot([[1,2,3],[4,5,8]]) >>> plt.gcf().canvas.draw() # 更新
sleepの使いどころも知らない自称玄人さんジワるw
>>371 できました。ありがとうございます。m(_ _)m
でもなんでできたのか、わからない・・・???
plt.show()
でなんでフリーズして
plt.pause(0.1)
plt.gcf()canvas.draw()
だと戻ってくるんでしょう?
>>375 むむむ・・・
何が原因なんだろう・・・・・・
>>348 pyqt5でも乱れる。俺はだいたいウィンドウをリサイズなしの大きさ固定にしてるけど、
フォントの関係か、だいたい乱れる(大きくは乱れない)。
デザイナーで微調整が必要だな。
Pythonおじさんがマイクロソフトに入ったから、EXCELにPython同梱して操作できるようにしてくれ(´・ω・`)
普通にwatchdogモジュール使えばいいんじゃないの
>>382 watchdog使ったところでビジーループの問題は解決しない
ウェブアプリのレスポンスをjsonで返そうとして res = '{"status":"{status_code}","error":"{error}"}' return res.format(status="200",error="") みたいにすると変数res内の{とformatの{が干渉してエラーが出てしまいます なので res = '"status":"{status_code}","error":"{error}"' return '{'+res.format(status="200",error="")+'}' としたのですが、、なんかかっこ悪い気がしてもやもやします・・ もっといい方法はないでしょうか json.dumpsを使うと res['status'] = 200 res['error'] = '' の行が増えてしまうのでそのあたりが気になります
ちょっと何言ってるか分からないんだけど、 return json.dumps({“status":status_code,"error":error})って事ではないの?
>>387 ええ、関数化やモジュール化するまでもなければ簡潔に書ける方法はないかな
ということです
status_codeが200だけ出てくる場合なら別にそれでいいと思いますが
>>386 たぶん希望しているのはこういう事かな
res = '{{"status":"{status}","error":"{error}"}}'
https://docs.python.org/ja/3/library/string.html#formatstrings >>390 で、できました!
"\{"とかで出来きず他の方法がありそうな気がしていましたが
{{だとは・・
ありがとうございました!
res.format(status=500, error='Error: "foobar”’)とかするとバグらない? 素直に関数化するかクラス化したほうが良いと思うな def res(status_code, error): __return json.dumps({'status': status_code, 'error': error}) res(500, 'Error: "foobar"')
確かにJSONで返すなら、ちゃんとパーサーにお願いしたほうが確実だよね
ここに書いてある事がほとんど分からないんですが 本当に超初心者のスレですか?
簡単に説明←簡単じゃない 初心者向け←初心者向けじゃない(書いてる奴が初心者) よくあること
>>392 ,369
error以外のものを付加したいときとかは普通に関数化してますね
今回は例外処理含めstatsuとerrorがintとstrのみとわかっているので
よりスマートな書き方がないかなと模索してただけです
関数化するとプログラムを分けたときに
同じものを貼るのも、またはimportするのもあれだし、と思って。
その辺を気にしないうまい処理の仕方があるのかもしれませんが
>>394 Pythonにはいろんな機能があるから、質問も多岐にわたるわけで
理解できないものがあって当然
JSONなんて使わない人は一生使わない機能だし
>>272 Macならhomebrewでpyenvで管理するのが1番楽
anaconda使いたきゃpyenvの中で管理されてるわけだし、pyenvからanacondaの好きなバージョン入れりゃ良いだけ
>>386 >>396 status_code=200
error="error"
res = str({"status":status_code,"error":error})
>>399 それだとstr()が環境によるのか仕様かはわかりませんが
”が'で表示されてしまいますね
実際そのコードをサーバー立てた試験はしてませんが
以前、JSONをバックエンド側でシングルクオートで書くと
クライアント側でエラーが起きた記憶があります
あと、毎回status_codeとerrorを変数に置く必要もない気がします
もしstr()のシングルクエート化が問題なく
statusもerrorも固定であればもうこれでいいのでは
return str({"status":200,"error":"err"})
自分は簡単な場合はこんな感じです
res = '{{"status":{},"{}":"{}"}}'
#分岐
return res.format(200,"msg","ok")
>>400 >res = '{{"status":{},"{}":"{}"}}'
jsonシリアライザーを使わず文字列+format関数を使うメリットなくない?
それに
>>396 で言ってるプログラムを分けた時に
テンプレートになる文字列をコピペして回るくらいなら
関数化/モジュール化してimportしたほうが健全だよ
>>401 >文字列をコピペして回るくらいなら
そんなこといい出したらimport行もプログラム毎にコピペしてません・・?
関数もコピペしてますよね
親で読み込むならまだしもモジュール名に困りますし。
gitで管理するほどのものでもないし
そういう簡単な用途でない場合は
普通に関数化するしjson.dumpsも使っていますし
gitで管理するレベルのモジュール化も実際してしますけどね
質問です 「実用的でないPythonプログラミング」という本をやっているのですが Pylintのところで コマンドプロンプトに > pylint -rn --max-line-length=79 --generate-rcfile > myconfig.pylintrc という風に設定ファイルを作った後に > pylint --rcfile myconfig.pylintrc pseudonyms_main(評価したいプログラム名です) とすると Traceback (most recent call last): File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\owner\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\owner\AppData\Local\Programs\Python\Python39\Scripts\pylint.exe\__main__.py", line 7, in <module> File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\__init__.py", line 22, in run_pylint PylintRun(sys.argv[1:]) File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\lint\run.py", line 298, in __init__ linter.read_config_file(verbose=self.verbose) File "c:\users\owner\appdata\local\programs\python\python39\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file parser.read_file(fp) File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file self._read(f, source) File "c:\users\owner\appdata\local\programs\python\python39\lib\configparser.py", line 1017, in _read for lineno, line in enumerate(fp, start=1): つづきます
File "c:\users\owner\appdata\local\programs\python\python39\lib\codecs.py", line 322, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) File "c:\users\owner\appdata\local\programs\python\python39\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode return codecs.utf_8_decode(input, errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte となって評価してくれません
OSはindows10でPythonのバージョンは3.9です
>>405 > OSはindows10でPythonのバージョンは3.9です
indows→Windows
>>403-406 3.9なんて使うからじゃろ
3.8にしとけよ
あと
ターゲットの本文?に全角文字入ってないか?入ってたらそれをヤメレ
教えて下さい。 tkinterのテキストに処理の状況を表示していきたいのですが、処理終了後に 一気に再描画される感じになってしまいます。 printしてshellに出力されるような感じで、テキストに出力するにはどうしたら よいでしょうか。 サンプルです。 ------ import tkinter import tkinter.scrolledtext as tkst def click(): for i in range(10000000): # 10000回ループに1回テキスト出力 if (i / 10000 ) % 1 == 0: editArea.insert('end',str(i)+'回目\n') # 一気に描画される print(str(i)+'回目') # このようにしたい # メインウィンドウ作成 root = tkinter.Tk() root.geometry("600x400") Button1 = tkinter.Button(root,text='実行',command=click) Button1.pack() editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10) editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5) # メインループ root.mainloop() ------ どうかよろしくおねがいします。
>>408 flush()について調べてみるとハッピーになれるかもしれない
>>407 評価したいプログラムは
https://github.com/rlvaugh/Impractical_Python_Projects/blob/master/Chapter_1/pseudonyms_main.py です、たぶん全角は入ってないと思います
いま3.9から3.8.6に変えてみて同じことをやってみても
Traceback (most recent call last):
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\owner\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\owner\AppData\Local\Programs\Python\Python38\Scripts\pylint.exe\__main__.py", line 7, in <module>
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\__init__.py", line 22, in run_pylint
PylintRun(sys.argv[1:])
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\lint\run.py", line 298, in __init__
linter.read_config_file(verbose=self.verbose)
File "c:\users\owner\appdata\local\programs\python\python38\lib\site-packages\pylint\config\option_manager_mixin.py", line 290, in read_config_file
parser.read_file(fp)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 718, in read_file
self._read(f, source)
File "c:\users\owner\appdata\local\programs\python\python38\lib\configparser.py", line 1017, in _read
for lineno, line in enumerate(fp, start=1):
つづきます
File "c:\users\owner\appdata\local\programs\python\python38\lib\codecs.py", line 322, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) File "c:\users\owner\appdata\local\programs\python\python38\lib\encodings\utf_8_sig.py", line 69, in _buffer_decode return codecs.utf_8_decode(input, errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte というふうになって同じみたいです
>>403 文字コード変えてないか?
VSCODEとかのテキストエディタで該当ファイルを開いた時に
ちゃんとUTF-8になってるか?
>>410 その評価したいプログラムがUTF-16で保存されてるみたいだから
VS CodeかなにかでUTF-8で保存しなおせば大丈夫かも
>>412 >>413 Visual Studio Codeで開くと右下(ですよね?)には
UTF-8って表示されています
>>402 値をあちこちにコピペして使うことと
値を参照してる変数や関数をあちこちで使うことの違い
複数のファイルで同じようなimportを何度も繰り返しやってるなら
__init__.pyとかでまとめればいい
gitは何の関係が?
>>git 自分はそこそこできるんだぜアピールじゃないかなw よくいるよね。こういうタイプの人。
>>416 いるよね
質問者のくせにアドバイスに挑発的な返しをする人
>>415 >複数のファイルで同じようなimportを何度も繰り返しやってるなら
ええ、そういう用途のときはそうすればいいと思いますよ
>gitは何の関係が?
ホストPC以外で開発する場合、通常はクラウドでコンテナ作って云々すると思いますが
いちいち簡易レスポンスのためのimportをコピペするのが面倒なので
gitでリモートします
というかホストPCで開発するときも プロジェクト毎にcloneすると思うけど 毎回ファイルごとコピペしてる人が多いのかな
>>418 BOMっていうのは知らなかったですけど
https://qiita.com/JINr/items/255429d6174fad76b9b7 ここに書いてあることをやってみたのですが
BOM付きっていうところをにはチェックは入ってなかったです
あらためてチェックなし状態で上書き保存して同じことしても
同じようなエラーが出ました
>> 409 コメントありがとうございます。 flush() 色々と調べてみましたが、まだ有効に使えていませんが、 調べているうちに、update()とsee()というメソッドがあるのが わかり、組合せたら上手くいきました。 ヒントいただきありがとうございました。 一応、結果報告 import tkinter import tkinter.scrolledtext as tkst import sys def click(): for i in range(10000000): # 10000回ループに1回テキスト出力 if (i / 10000 ) % 1 == 0: editArea.insert('end',str(i)+'回目\n') # OK editArea.update() editArea.see('end') #sys.stdout.flush() print(str(i)+'回目') # このようにしたい # メインウィンドウ作成 root = tkinter.Tk() root.geometry("600x400") Button1 = tkinter.Button(root,text='実行',command=click) Button1.pack() editArea = tkst.ScrolledText(root,wrap= tkinter.WORD, width=20,height = 10) editArea.pack(expand=True,fill=tkinter.BOTH,padx=5, pady=5) root.mainloop()
>>421 myconfig.pylintrcの方がBOM付きUTF-16LEになってる予感
もしかしてpowershellでやった?
>>422 解決おめ+報告乙
>sys.stdout.flush()
おう、これ↑は標準出力(Win系ならDOS窓)への出力をいますぐやれよ という命令だから・・・
sysのimportもコメントアウトしちゃって大丈夫にみえる
>>421 今知れてよかったな>BOMの存在
(これからもまれに苦しんでいくことだろう)
>>423 横じゃが
なるほどなっとくありうる展開
>>423 !!!その通りでした!!!
myconfig.pylintrcがBOMつきUTF-16になっていました・・・
本にフォルダでShiftを押しながら右クリックで
「コマンドウィンドウをここで開く」か「PowerShellウィンドウをここで開く」を選べと書いてあったので
PowerShellで開いてやってました
すいません正確な情報じゃなくて・・・
myconfig.pylintrcをUTF-8にしたらうまくできました!!!
ありがとうございます!
>>419 クラウドでコンテナ云々とか別に普通じゃないと思うけど
場合によるでしょ
というか今どきはVSCodeのリモート開発がマジでローカルで開発してるみたいで便利でいいよ
あと、jsonモジュールはPython標準なのだから、よっぽど性能を出したいとかじゃなければ標準ライブラリ使った方がトラブらないと思う。自分のいい加減なコードより10万倍ぐらいテストされてるだろうから。
そもそも性能出したいときにPython使わないし、jsonモジュールを使わない方がいいケースがあまり思いつかないなあ。
>>427 いや普通に主にVSCodeでのリモート開発ですよ
>ローカルで開発してるみたいで
そのためのコンテナなんですけどね・・
場合によってVSCodeなり別だったりでgit管理、運用がコンテナってだけで。
普通は仮想環境下ならこれらはセットだと思いますよ・・
あと繰り返しになりますが
>intとstrのみとわかっている
みたいな単純な用途の場合ですよ
>>428 なるほど、ちゃんと読んでなかったけど
importを書きたくないからの主張なのか
なら、json.dumpsの1行上にimport jsonを書いて2行コピーするのはどうかな?
何回importがあっても問題ないし、文が書けるところならどこにでも書けるし、
式で完結させたければ
__import__('json').dumps(obj)
とすればいいみたい。(これにはちょっと驚いた)
自分はめちゃくちゃ簡単なはずのjsonでも固定のjsonを条件によって2個出し分ければいいとかじゃなければ、
たかだかjsonを出すのに、strに変な文字が入らないか考えたりintをstrに変換する方法を考えたりして、余計な判断が入るのが嫌だから、jsonモジュール任せだな。
まあ、楽な方法は人それぞれだと思うんでjsonモジュールを使わないのが楽と思う人もいるのは否定しないけど。
考え方は人それぞれなんでしょうけど、「スマートな書き方」という質問に対して、JSON形式で返すのならjson.dumps使ったほうが他人がコードを読んでも「あ、これはJSONで返すんだな」と意味が理解しやすいしスマートだと思うなぁ 自己満足的なスマートか、保守性も考えたスマートなのか、方向性の違いかしら。
import書きたくないから文字列コピペするとかちょっと意味わからん
>>429 >importを書きたくないからの主張
'{"status":200,"error":"hoge"}'
とか直接書いてもいいし
res(200,"hoge")とかでもしいし
json.dumps(res)とかでもいい
自作モジュールで管理するでもいいし
という前提があります
が今回は、関数に分けるまでもjsonモジュール使うまでもなさそうだな
という用途で、かつ汎用的に流用したい、かつ変数代入やimportの省略による行数の節約
などができないかと思ったときに
formatの使い勝手が良かったしかし、{の干渉があった
が、結果的にその干渉を除くことができました
ってだけの話です
書きたくないというより使うまでもないな
ということに尽きると思います
>>432 個人的な趣味だけど、まあC言語とかで書いてるなら言うことは同意できるよ。C言語で書いててそこからの移植とか。
個人的な趣味だけど、Python使ってて「使うまでもない」かどうか一々判断するのは面倒だなって思っちゃう。Pythonって、使えるものは何でも使ってやれの富豪プログラミングの精神に近いかなと。
まあ個人的な趣味でしかないんで、その判断をするのが異常だとは思わないよ。色々な理由があるのだろうし。
>>432 このケースで文字列のコピペでいいと思うのはたぶん君だけ
可読性/変更容易性/テスト容易性など他と比べて何一ついい点がなく明らかにマズい書き方
極論""返すだけだとしてもどんな場合でもチェックすべきだ
みたいな議論と同じでその主張はさすがに違和感あります
>>434 statusコードを成型して返すだけのモジュールは別のケースで使っていて 今回はそれを使わないケースだった、というだけの話なのですが もしかするとどんな場合でもformatを使った書き方でやっている と勘違いしてる人がいるのかもしれない
>>272 漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使う
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
Ruby on Rails では、API モードがあって、API 用のアプリも作れる 初心者は、そういう事を知らないから、 何でも時間をかけて、低品質なアプリを自分で作るw
>>411 >UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
これで、検索してみれば?
UTF-8 は以下のように、先頭ニブル・4ビットで、1~4バイト文字を判別しています
1バイト文字: 0000~0111: 0~7
多バイト文字の2バイト目以降
1000~1011: 8~11(8~B)
2バイト文字: 1100~1101: 12~13(C~D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)
0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
我流の人は、Git のプルリクを知らなそう。 就職では必須項目 上の人が見たら、一発で書き直し。 バグりやすいコードは、プルリクを受け付けられないだけ 議論するだけムダ チェックを通ったコードは、合法になるから、 皆が模範にしてコピペするから、我流はダメ!
>>432 > かつ変数代入やimportの省略による行数の節約などができないかと思った
いつの時代のおじいちゃんなんだよw
パイソンって書いた事ねーんだけっども、ブロックってインデントで 表現するんだべ?するってーと、100行のブロックにifに入れてぇ ときは、100行分インデントすんのけ?
>>443 せやけど
IDEがまともだったり、テキストエディタでもSakuraエディタみたいなPythonソースコードモードがあるエディタなら
自動でやってくれるべ?
でも範囲の指定は自分でやらんとならんよね。 他の言語ならブロックの開始と終了を書いてやればいいんだけど pythonは自分で範囲指定してインデントしてやる必要がある。
やっぱりそれなりのエディタや統合環境が前提なのかな(もちろん批判ではない)。 マジレスありがとう。
>>446 だがおれはいつもは秀丸でコードを書いている。
範囲指定→右クリメニュー「インデント」→おk!
行選択してtabキー押すだけじゃないの? 秀丸ってそうなの?
>>448 行番号選択ってこと?
できるかもしらんが、してないなぁ
回答者側と思しき立場でただのgit管理にすら怪訝する人が上の方でちらほらいたので正直驚いたけど 個人開発であってもgitはほぼ必須になってくる場面があるのでまとめて覚えておいて損はない
>>451 流れ軽く読んで来たけど
・実装の重複を防ぐためのクラス/メソッド抽出してモジュール化
⇒設計的な話
・Gitでモジュール化したものを管理する
⇒バージョン/ファイル管理的な話
この二つは本質的には別問題だけど、何故か混同された話になってて
よく分からん事になってるな
(実際の開発考えるとGit使ったやり方になるから分からん話でもないが)
Notepad++にPython Indentを入れれば同じことができる。
>>439 >4バイト文字: 1111: 15(F)
>0xff は、4バイト文字を示すけど、それで始まる文字が存在しないのかも?
1バイト文字は0xxx-xxxx
2バイト文字は110x-xxxx
3バイト文字は1110-xxxx
4バイト文字は1111-0xxx
↑この制限だけでも4バイト文字の先頭バイトは0xF0~0xF7の範囲
実際はUnicodeのコードポイントの上限がU+10FFFFまでなので0xF0~0xF4(1111-0100)
chromebookでも動くvscode(´・ω・`)
YouTube で有名な、雑食系エンジニア・KENTA が言ってる Git のプルリクは、転職に必須項目だと
パソコンor通信環境のスペック次第だが仮想環境であればvscodeに限らず大体使える スマホですら動く
>>451 git管理に怪訝してる人なんて一人もいないでしょ
むしろgitも理解してるから話が噛み合わない
gitを持ち出したのは
>>416 の指摘通りだろうけど、書いてる内容見るとpythonのモジュールを理解してなさそう
自分が知らなかったことや見落としてたことを絶対に認めずに (本人にとっての)俺はできるんだぞアピールで返す人はスルーに限る
>>458 プルリクっていろんな人が好き勝手にソースをいじるOSS開発で役立つ機能っしょ
転職に何ら関係ないと思うが
いやプルリクそのものじゃなく今までにプルリクした実績のことじゃないの GitHubアカウントを見せてこんなことしてきましたよと自己アピールする感じで そんなん実際にするのか知らんけど
>>464 そういうことね
あまり意味ないと思うなあ
プルリクって他人の作ったアプリに寄生する行為だし
こいつ採用してもOSSにかまけて仕事しないんじゃないかと思われるだけだろう
最初の質問が
>>386 だからな
こんなもんjsonモジュール使えで終わる話だろ
プルリクはOSSに限らないよ 転職の話はプルリクベースの開発スタイルに馴染みがあるかどうか もしくは適応できるかどうかっての話だと思う
あげるなよ、何かを信じてる方々の啓蒙活動なんだから。 背景雑音だっぺ。
モジュール化してimportするまでもない git管理するまでもない 関数化はしてもいいがするまでもない そういう用途下で、ただのformat関数をつかった文字列出力の小技の話なのに なぜかどんな場合にもimportすべきだjsonモジュール使ってチェックすべきだ みたいな勢力がいる違和感
>>472 違和感でも何でもない
技術者にはそれぞれ己の中に譲れないポリシーがある
「~するまでもない時はしないでいい」というのもポリシーだし
「どんな時も~するべきだ」というのもポリシーだ
それが匿名掲示板でぶつかり合うとこうなる
>>462 git持ち出したのは>簡単な用途でない場合
の一例ですよ
簡易的に仮想環境化で動作確認したい場合とか
statusを返すようなモジュール個別開発したりcloneしたりバージョン管理もする必要のない用途例として出しただけです
ここの人なら普通に使ってるものだと思っていたし
できる人のアピールになぜgit?という感じで正直謎でした
2行目で何をしてるのか教えて下さい s = input() print(max(map(len, s.split('S'))))
>>475 print、max、map、len、split
それぞれでggrks
続きは↓でな
http://2chb.net/r/tech/1258320456/ JSONで返しますって言ってるAPIがJSON風の自前の文字列返してくるとか嫌がらせ以外のなにものでもない 何のためにJSONが存在してると思っている
>>475 sに入力した文字列を'S'を境にして区切り、区切った文字列ごとに文字数を算出し
その中から最大の数を選んで表示する
これは難解
map関数は関数型言語からバクッてきた機能らしく、Pythonの文脈に馴染んでおらず
使うと大抵可読性が落ちる
プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
バージョン管理しない書き捨ての用途だとしてもjsonモジュール使う方が何も考えなくていいもの jupyterで適当なコード書くときだってjson numpy pandasあたりは大体始めに必要だとわかってimportしとくわ。 自分でフォーマットする合理性が理解できない。 「jsonモジュールを使うまでもない」というが、「jsonモジュールを敢えて使わない理由はない」と思ってしまう。 それこそ内包forを使うまでもないから使わない、みたいな話と同じように感じてしまう。 車輪の再発明はどうしても必要とされない限りは基本的に避けた方がいい行為、ということにも合意はなされない、のかな。
>>477 つまりパーサーを通したものこそ真のJSONである、と・・
しかし、そのパーサーの中身は・・?
これやってみては
if json.dumps({"status":200}) == '{"status": 200}':
_print(True)
>>475 >>478 print(max([len(st) for st in s.split('S')]))
だったら理解できるのかな?
特に478、こっちの書き方なら十分にPython流で明快とされると思うのだが
>>479 > 車輪の再発明
そういえば
去年あたり、このスレに
「エクスポーネンシャルの逆関数を発明した俺天才!」みたいな書き込みしにきたあふぉがいたなぁ・・・ (´ー`)
>>480 筋悪だな
json.dumps(json.loads('{"status": 200}')) == json.dumps({"status":200})
ぐらいにしないとFalseになる可能性は十分にある、今実験してTrueなったから未来永劫Trueだろう、というのは考えが甘いよ
それがTrueになるのはどのPythonの実装でなら担保されるのかな?
要は、いちいちJSONの仕様を100%確かめて、100%準拠した手書きJSONを書くというのは割りに合わないということ。
import jsonとかjson.dumpsと書くたったの10秒ぐらいの余計な時間で、
もし間違ったJSONを出力してパーサーの方でパースできない原因を究明することになったときに必要な何十分がなくなるんだから、
余計な10秒をかけない理由がない
変に手抜きすると結局その手抜きが原因で100倍ぐらい余計に時間がかかったりするのがプログラミングの常だもの
>>478 ,481
なるほど。ありがとうございます。
少ない行数で書ける人に憧れてましたけどそうなんですね…
>>484 少ない行数で書けることがカッコいい、わけではないが、このぐらいのmapは流石に読めたほうがいい
これを5行で書くほうが良いと言うのは、正直いって10年以上前にプログラミングを習ってそこから知識がアップデートされてない人種だと思ったほうが良い
勿論初心者なら、ちょっと読み解くのが難しいから自分には5行でしか書けない、5行のパターンじゃないと読むのが難しい、というのでも構わない
でも今どきJavascriptなんかでこんな書き方は当たり前なんだから、向上心があるなら慣れるべきだと思う
>>483 ただの書き方の解釈、開発環境での用途の話であって
Trueが担保されるかどうかは別の話
余計な10秒をかけたくないときに使えば良いだけ
ただの文字出力用途で100倍余計に時間がかかってしまう具体例を教えてほしい
>>486 え、「ちゃんとパース可能なJSON」を書き出したいんじゃなくて、「ただの文字出力」をしたいって話だったの?
ただ単純に「ちゃんとパース可能なJSON」を書き出すのが目的だとしたら、
1. JSONの規格を100%理解しているわけではないプログラマーがいい加減に書き出した文字列(テスト回数10回ぐらい)
2. Pythonの標準ライブラリとして用意されているjsonモジュールを使ってオブジェクトをJSON文字列に書き出した文字列(テスト回数100万回ぐらい)
のどっちが良いか、で、1が良いなんてことあるの?
1が良い場合もないとは言えないと思うけど、何かしら条件が必要だと思わない?
「いい加減に書き出した」せいで1時間デバッグに余計にかかったんだとしたら360倍時間かかってるわけで
そもそも{}がうまく出ないとか5chに質問してる時点で相当解決に時間かかってるのでは…?
pythonでmap, filterあたり使う理由ってほぼないだろ 内包表記に比べて遅いしgeneratorで返ってくるし
>>488 シーケンシャルに処理していくならgeneratorを連鎖させると速い
それでも generator内包表記で充分なのは確かだが
>>488 内包表記に比べて遅い、は最近のPythonだとFalseだよ
内包表記に比べて短く書けるわけではない、というのは場合によりTrue
map(lambda x: func(x, 2), arr)と書くよりは
[func(x, 2) for x in arr]と書くほうが短いが、
map(str, arr)とかだったら、
[str(x) for x in arr]より短いから意味がないということもないと思う
list付けてもこの場合はmapの方が短いしね
と言いつつ、関数の呼び出しの形の差でmapを使うか内包表記を使うかいちいち考えるのはめんどくさいので常に内包表記使ってるけど...
>>487 繰り返しになるけど、文字出力と同等の用途なだけ
個人的にフロントで「ちゃんとパース可能なJSON」を解釈できればいい、その程度の用途
あとはfomatの{回避にふと疑問を持ち質問を投げた、それだけこと
というか他でjson.dumpsは普通に使ってるので
こっち({回避の疑問)の方が主ではあります
繰り返しになりますが、何がなんでもformatを使って自己パーサーを作る、なんていう質問意図ではないです
個人用途で、キーや値の変更による成型を考える場合の変数代入や関数化する過程で発生する
json.dumps使用以外の過程を省きつつ
フロントで解釈できる程度の結果を得たい(得た)というだけの話
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
>>491 formatでつまづいた結果
5chで叩かれて悔しい思いして
100倍余計に時間かかったね
>>491 だからそれが正しいと思うならそうすればいい
ただそう考える人はあまりいないと言うだけの話
特に職業プログラマーはチームで作業してることが多いから個人が考える「かっこいい方法」は忌み嫌われて当然
ましてや
>>386 程度の質問をするレベルじゃあねw
>>491 「フロントで「ちゃんとパース可能なJSON」を解釈できればいい」のならjson.dumps(obj) 一択
1行でコピペできないという問題も__import__('json').dumps(obj)という書き方で解決された
なぜそこまで自分のコードが信頼できるのか疑問
jsonモジュール(別にjsonモジュールに限らず、他の言語も含む世の中にある名の知れたライブラリ)を書いたプログラマーのほうが
色んな人にソースコードの動作を検証してもらってるし、コード自体も査読してもらってるし、長い時間をかけてそのモジュールを書いているし、
そもそもオープンソースとして公開する時点で優秀なプログラマーの可能性が高い
あなたの言う「スマートなやり方」というのは、「言語/言語のエコシステムの補助を使わずになんとかする方法」なのかな?
「適当な文字出力」と「パース可能なJSONの出力」はハードルが違うからね。
あと、この場合あなたが書きたいのは「パーサ」じゃなくて「シリアライザ」とか「フォーマッタ」と呼ばれる
ぶっちゃけ何度もimportしても構わないからimportは必ずプログラムの頭に書かなくてもいいとか知らなかったことを認めるのが癪で
引っ込みがつかなくなってるのではないかな?
超初心者用のスレなんで、知識が怪しいんじゃないか、というところにツッコミを入れるのもアレだけど、パーサの誤用とか含めて
プライドが高い割には知識が怪しいように思っちゃうなぁ。
>>492 投げた質問が返ってくるまでその質問タスクしか処理できないなんてありませんよ・・
あなたはそうなのかもしれませんけど
>>493 その程度の読解力やレッテル貼りするような人格だと苦労しそう
お察しします
>>481 個人のポリシーでしかないから押し付けるつもりはないが
内包表記も関数型言語からの取入れであり可読性の悪いコードになる
何せコードを右から読まなくてはいけないからね
よって自分は先のmapとこの内包表記は極力使わないようにしてる
forとifとappendでリストにまとめるスタイルが一番しっくりくる
>>474 gitの話が簡単でない用途の例ってますます分からん
"gitで管理するレベルのモジュール"??
管理しないモジュールがあるの?
ファイル1個追加するだけっしょ?
>>494 >importは必ずプログラムの頭に書かなくてもいい
importの場所は主題ではないですよ
そのobjはどこでどうやって成型した・するのでしょうか
>信頼できるのか
繰り返しになりますけど、ただのJSON文字列同等の用途で使っている
という理解だからです
繰り返しになりますが、そうではない、と思うなら普通にjsonモジュールを使っています
個人的には上みたいなJSONとして解釈できるただの文字出力用途で
開発途中に100倍余計に時間がかかってしまうようなことはないと思います
>>496 どこまで複雑な内包表記を認めるかというのは、仰るとおりポリシー次第なところはあるね。
3重内包表記ぐらいまでは書くことあるけど、書くときはノリノリで書いてシンプルに纏まったぜ、やった、って思っても、
後で2重目のループの処理を修正したいときに地獄を見ることがあったりするのは事実。
内包表記はその存在自体がややこしいので一切認めません、というのもポリシーとしては普通にありだと思う。
関数型言語からの取り入れという事実を後押しする形になるのだが、
数式を読み慣れてると、内包表記やmapは数式に近い形なので、逆に可読性は悪くない、と思うケースも多いのだよなぁ
リストの中身を2乗して全部足すみたいな場合とかね。forループで手続き的にやる方が見通しが悪くなると個人的に思う。
>>498 status = 200
error = None
とかいう値が入ってるとして
__import__('json').dumps({'status': status, 'error': error})
で終わりなんだけどな
result_obj = {'status': status, 'error': error}
__import__('json').dumps(result_obj)でもいいし
もちろん
__import__('json').dumps({'status': 200, 'error': None})
でもいい
JSONを書き出すのに、「文字列」なんて概念を持ち出す必要がないのよ
dictがそのままjsonモジュールで妥当なJSONになって各言語のパーサーでそのまま解釈できると考えておしまい
だから、いちいち妥当でない可能性のある「文字列」の状態を考えたくない
>>475 某言語では
s split("S") map(size) max println
>>500 いやだから(一つとして)その
>とかいう値が入ってるとして
の行数の話をしているだけですよ
statusが500のとき、errorに何かしら入れるとき
どうしますか?っていうだけの話
>>503 え、マジでわからんの?
statusが500だったりerrorになんか入っているときも書き方同じじゃん?
じゃあさ、formatを使う場合と__import__('json').dumpsを使う場合でコードを並べて、
formatの方がここが優れていると教えてくれよ。
逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、formatだと余計なエスケープ処理が入ると思うけどなぁ。
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル | Udemy
https://www.udemy.com/course/python-beginner/ >>481 ナゼこう左から右へと流れるように書けないのかと悩むこと小一時間、
s.split(’S’).map(len).max()
>>478 ,496 に賛同するに至る
>>478 > プログラマたるもの、難解な1行より明快な5行を書くことを心掛けなくてはならない
>>496 > forとifとappendでリストにまとめるスタイルが一番しっくりくる
これぞPythonスタイルなり
>>495 > その程度の読解力やレッテル貼りするような人格だと苦労しそう
レッテル貼り?
質問の内容から判断してるんだけど?
読解力とか意味わからんしw
> お察しします
人の事を心配するレベルじゃないことを自覚したほうがいいと思うぞ…
>>506 C#のLINQみたいにmapとかmaxとかをリストやジェネレータのメソッドとして追加できたらその書き方も出来るのだろうね。
実際、pandasやnumpyでは当該ライブラリで用意しているクラスではそのような書き方ができるような配列ライクなクラスを用意している。
Python言語が生まれた時期が微妙に古いというのが不自然な文法に影響しているかもね。
習いたての頃は、なんでarr.len()じゃなくてlen(arr)なんだ、って思ったもの。
>>504 もう上の方で書いてます
res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
result_obj = {'status': 200, 'error': None}
__import__('json').dumps(result_obj)
__import__('json').dumps({'status': 200, 'error': None})
>逆にerrorに二重引用符とか入ってたり、改行とかの特殊文字が入っているときに、
入らない用途なので自分の環境下では問題ありません
>>509 res = '{{"status":{},"{}":"{}"}}'
res.format(200,"error","null")
と
__import__('json').dumps({'status': 200, 'error': None})
を比較して、前者のほうがスマートだと感じるなら、
他の人にも散々指摘されてるが、あなたはおそらく殆どの人が同意できない感覚の持ち主だろう
ゴーイングマイウェイで頑張ってくれ、ぶっちゃけ一緒に仕事はしたくないが
会社の経理のおばちゃんが、計算ミスばっかりするからどうしてかと思ったら、なんと算盤使って紙に向かって計算してて、
「頼むからExcel覚えてExcelでやってくれ」ってお願いしてるんだけど、「私は算盤が得意だからいいの!」って言われてる感じ
>>511 例えばstatusコードを複数吐くとき
どうなりますか
res = '{{"status":{},"error":"{}"}}'
res.format(201,"null")
res.format(202,"null")
res.format(203,"null")
res.format(204,"null")
res.format(205,"null")
__import__('json').dumps({'status': 201, 'error': None})
__import__('json').dumps({'status': 202, 'error': None})
__import__('json').dumps({'status': 203, 'error': None})
__import__('json').dumps({'status': 204, 'error': None})
__import__('json').dumps({'status': 205, 'error': None})
>>512 複数回出すなら、
import json
json.dumps({'status': 201, 'error': None})
json.dumps({'status': 202, 'error': None})
とするだろうけど
本当に多いなら
res = lambda s, e: json.dumps({'status': s, 'error': e})
res(201, None)
res(202, None)
短く書くというのが目標ならlambdaでもまだ意図は明確だしformatより短いよ。
>>513 '{{"status":{},"{}":"{}"}}'
を書いてみてください
>>514 ここまで示されててわからんの?煽るだけじゃなくて勉強しようよ。
res = lambda s, k, v: json.dumps({'status': s, k: v})
res(500, 'error', 'hoge')
>>515 ありがとうございます
キー名はそのまま代入できたのですね!
自分が書いたjson.dumpsを使った方ではlambda式では長くなってしまい
結局formatでいいか、みたいな経緯がありました
あとは辞書の結合やショートカット機能使えない環境化をでも使ってみたいのでそのあたりを工夫してみようと思います!
えぇぇ、 いやまぁ納得してもらえたならいいけど、、、 良かったね
そうか lispのコードをさんざん見てきた私は 内包表記もmapも普通なんだけどな 分かりにくい人がいるというのを認識した
普通にhttpレスポンスを生成する関数の中でモデルをjson化してれば json.dumpsのところだけをlambdaにしたいなんてことにはならないと思うんだけどなぁ
>>501 はlispなん?
すげーな
原始的な言語だと聞いていたけど、splitもmapもあるじゃん
こんにちは。 pandasのdataframeのデータから、別途用意されたカラム名リストの カラムだけ取り出す方法をご教授願います。 例: df はa~zの列がある。 list = ('d', 'g', 'h') にあるカラム名の列だけ取り出したい。 (listの中身はその都度変わって数も多い。) よろしくお願いします。
>>520 lispのmapとsplitが便利だから
それ以後の言語には持ち込まれたわけで
自己解決しました。 data = df[df.columns.intersection(list)]
>>524 細かいことだが、
listという名前は上書きしないほうが良い(list関数が使えなくなる)
のと、
listの要素がcolumnsに必ず含まれているのが保証されるなら、
data = df[list]だけでいけるよ
VSCode で、Microsoft の拡張機能を入れてない香具師とか、 git のプルリクを知らない香具師とか、 JSON ではなく文字列を結合する香具師とか、問題外 文字列の結合を認めたら、SQL・HTML タグを文字列で書いたりして、SQL インジェクションされる 新技術を学べない、老害に多い 日本人は植物油を多く使うから、脳にアミロイドが貯まって、新しく記憶できない。 全員が痴呆症w 動物油なら、こういう事はない プルリクもKENTA が言ってるから、マコなりの学校にも、グループ学習がある。 グループ学習やっていない香具師は、採用されませんって。 でも、高い授業料を払って、グループ学習する意味はないと反論する人もいる Ruby on Rails なんて、Rails Way・レールに乗る。 我流・レールに乗っていない方法は、すべて却下される YouTube で有名なRubyist、伊藤淳一の動画でも、コードレビューしてる
少し上の過去レスを追うこともできない古い人間 >439
macOS での python の質問もここで良いのですか?それとも他に板やスレがありますか?
>>532 その様な名前の板は今はないようです。
色々と探しましたが、他に適当な場所がなさそうなのでここで質問させてもらいます。
http://codepad.org/4R0nolza の python コードが linux や FreeBSD では正常に動くのですが、macOS では動きません。
問題なく起動してウインドウは表示されるのですが、"Run" ボタンを押すと、
----------------------------------------------------------------
gi.repository.GLib.Error: g-io-error-quark: 子プロセス“/bin/ls”の起動に失敗しました: Failed to fdwalk: Too many open files in system (0)
----------------------------------------------------------------
となり機能しません。
理由や解決方法が分かる方がいましたら、よろしくお願いします。
pygobject3 と gtk+3 は brew install してあります。
maxfiles は 256 から 500000 に増やしても変わらないので関係ない様に思います。
macOS を持ってる方が居ましたら、同じ様に動かないか、試して貰えると助かります。危険なコードではないです。
>>534 情報どうもです。なるほど、バグでしたか。では、待てば治りますかね。
そうとは知らず、だいぶ時間を費やしてしまった。。。
>>129 MACの一部のプログラムはpythonで動いてて、それが昔から変わってないからなはず
だからアンインスコするとOSが正常動作しなくなる場合があるので注意
Common Lispのloopマクロのことかな 多重ループの動作とか違うけど
javascriptとpython行ったり来たりすると変数宣言つけ忘れるのいらっとする
俺もjavascriptというかGASと行き来してるんだがセミコロンの有無とかごちゃごちゃになる
質問です 古いバージョンのPython(3.6など)と新しいバージョンのそれ(3.9など)が 同じパソコンにインストールされている時に、 バージョンを指定してコマンドプロンプトで起動するには どうすればよいでしょうか?
>>543 起動したいバージョンの方が先にくるように環境変数を書き換える
>>544 >>545 分かりました
ありがとうございました
py launcherにチェック入れてインストールしてあるなら py -3.6 ~ py -3.9 ~ のようにバージョン番号指定で起動できる
>>543 Windowsならpy -3.6 もしくはpy -3.9で起動できる
仮想環境もpy -3.9 -m venv envでつくれる
やってみたら出来ました 答えてくれた方、ありがとうございました
同じ階層なら何も引っかからずにすんなり通るのに(´・ω・`)
カタカナの伸ばし棒がすべて半角ハイフン-になっているとして ・コ-ヒ- → コーヒー ・コ-ヒ--砂糖入り- → コーヒー-砂糖入り- ・カフェオレ-ミルク- → カフェオレ-ミルク- こういうのってPythonで可能?規則性がない場合出現しうるあらゆる単語を手動で対策しないと無理かな -の前がカタカナなら伸ばし棒に変換ってので単語としては成立するけどカフェオレーミルクーはお手上げ
規則性ないから辞書がないと無理でしょ カフェオレーミルクーというメニューがないと知らないといけないから
>>554 >カフェオレ-ミルク-
これはどういうこと?カフェオレにさらにミルクが入ってるの?
それとも、カフェオレとはコーヒーにミルクが入ったものですよっていうこと?
その辺が曖昧だよね
主題副題分割なら、まずは全部の箇所で分割して、 コ -ヒ- これはハイフンを閉じ括弧の亜種として対になってるから第一次判定に合格、 そしてコが主題でヒが副題、 しかし文字数判定であり得ない(主題副題共に1文字)から、主題でなければ副題でも無い、とすりゃいい *** 1 コ -ヒ--砂糖入り- 2 コ-ヒ --砂糖入り- 3 コ-ヒ- -砂糖入り- 4 コ-ヒ-- 砂糖入り- 1番はそれっぽいが「ハイフンは二つ重ならない」というルールで却下 2番も「副題主題はハイフンからは始まらない」として却下 4番は問題外 残るは3番は副題のハイフンが括弧対を形成しているので合格
丁度いいのがあった
フル-ル・ド・ラパンのハ-ブティ--ローズヒップ-
後ろの-砂糖~-とかのパターンは限られてそうだから、 こんな感じでだいたいはできないかな? (?<!-)-(?!($|[ミ砂]))
11/20
Python の無料動画の神、キノコードの37分の新動画が出てる。
たぶん、以前の各動画をまとめたものだと思う
【徹底解説】Windowsでの環境構築|Pythonでプログラミングをはじめる準備をしよう!
VIDEO >>559 炭酸コ-ヒ--クリ-ム-
はどうするよ
どうにかするルールを考えればいいじゃん でも今回は、 炭酸コ-ヒ--クリ-ム- は「ハイフンは二つ重ならない」のルールで何とかする C-1000タケダ-ミルク- は「主題副題が短すぎる」のルールで何とかする
主題副題分割なんだから、多分こういうのも念頭にあるんじゃないのか ギャラクシ-エンジェル-激レアフォ-チュンクッキ-- 本当のところの用途は知らんけど
本当の用途は歌手名/曲名なんじゃないか あと炭酸コーヒーは美味しくないから法で規制した方がいい
プリティ-プロジェクトの孤高のビュ-ティ-プリンセス、るかにゃんこと姫乃川琉歌のクリスマスライブ衣装-にゃっぱれ恋泥棒バ-ジョン- ちょっと規則性見いだせなかったわ
「装-」の「(漢字)ー」のパターンは無いとしていい 漢字の後に長音が続くパターンだ すると、それはハイフンでなければならない さらに、それが末尾でないなら、対括弧の開始ハイフンになる
1、主題副題の文字数が短すぎる 2、副題の後に文字があるパタンは実は副題ではなく、全文は分割できない つまり、閉じ括弧相当のハイフンの後に文字は来ない、故に分割してはならない
ゴ-ヤ-チャンプル- ゴ-ヤ-マ-ボ- ゴ-ヤ-マヨバタ- ゴーヤ-チャンプル-、ゴーヤ-マーボ-、ゴーヤ-マヨバタ-なのか ゴーヤーチャンプルー、ゴーヤーマーボー、ゴーヤーマヨバターなのか どちらとも取れる単語がある限りは辞書使っても100%は無理なので おおよそいけそうなルールを自分で決めてあとは諦める
コーヒーくらいジャンルが限定されてれば末尾がーのものも限られるだろうからコーヒーとか特定ワードで引っ掛ければと思うがノンジャンルなら厳しいかもね
いろいろレスサンクス
やはり当初の作戦通りン以外のひらがな、カタカナの後は伸ばし棒で基本処理するよ。
クリ-ム、ミルク、ローズヒップの後は-にすると、手前に来る単語で徐々に狭めていく。ジャンルが近い頻出単語はこれで潰せる
>>572 こういうのがほんとに厄介、どちらの可能性もある単語。もう入力した本人に聞くしかないレベルのものとかもある
人間が判断するようなことをPythonにやらせるのはやはり難しいか
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! 強姦と窃盗するために生きてるゴミw クソチョンw
>>574 人間だって前提知識(単語力)がないと困るところだろJK
全部googleに投げて「もしかして」を拾えばいいのでは
ぼく「google死ね」 google「もしかして:お前が死ね」
Pythonこそこういうの得意なんじゃないの 機械学習的なやつで
本件のように、一件の間違いも許されないデータ処理に機械学習は適さないと思う
>>579 自分も機械学習ってそういうもんなのかと思ってた
いまだに機械学習がなんなのかもわからんし使ったこともない
>>580 そもそも人間でも正答率100%じゃないこの手の問題は機械学習向けでしょ
ゴーヤーチャンプルーは沖縄料理だから日本人大体知ってるけど、人によるし、
マリ-ゴールド-コ-ヒ-とかだと、
マリ・ゴールド・コーヒーという名前のものがあるのかないのかで全然答え変わってくるし、
判定者(判定システム)がそういう名前のものがあるかないのかは知りようがないのでは?
まあ、どうしてもルールベースもやってくれ、と言われたなら仕方ないからルールは考えるけど、
辞書や機械学習なしにやるのは筋悪案件なのには変わりない。
答え(勝ち負けとか正解不正解)が分からなければ機械学習出来ない 何か機械学習を勘違いしてない? 何千何万何百万と間違って最適化していくのが機械学習 正解不正解の判定が出来なければ学習不可能 答えが分かるならこの問題は解決する 学習型spamフィルタみたいに人が教え込んで辞書なりフィルタ定義を構築していくのは機械学習とは違うぞ
機械学習でやってみたら少し面白そうなテーマではある '-'が'-'なのか'ー'なのかを間にある文字同士の結びつきで当てる分類タスクになるのかな
>>580 >>572 みたいな表記揺れがあったらどうしようも無いだろ
正解すらあるかないかわからんのに間違いが許されないって言われても困るw
raiseした直下ってreturnとかbreakとか必要?
本について質問です 友人にPythonスタートブックを勧められたのですが、 他にも良い入門書ってありますか?
>>588 おすすめの本じゃないが
自分は市の図書館で入門書を5冊くらい借りて覚えた
個々人で合う合わないあると思うが数でカバーできる
買おうと思ってる本も図書館にあるなら借りてみるといい
図書館使う人とかあまり好きになれない。身銭使って学べない奴は薄っぺらいんだよなあ。
>>589 pythonは人気がありすぎて、図書館で借りようにも、なかなか読めないよw
まぁ、多言語経験者なら公式ドキュメントを読んだほうがよほどためになるとおもうし、
わざわざ自腹きって本を買って読まなきゃならないものでもないな。
立ち読み程度で十分。
>>584 スパムメールのベイジアン学習も機械学習の一つの手法だと思うが
違うとしたら境目はなに?
大体、「答えが分からなければ機械学習できない」と、「人が教え込んでいくのは機械学習じゃない」は矛盾してない?
>>592 自分の住んでるところでも貸し出し中は多かったよ
貸し出し中でも貸し出し予約出来るが
貸し出し中じゃないものから選んで借りた
ネット経由で最寄りの図書館受け取りだし気軽に借りれる
最近は逆引き系の書籍を借りてみたがそこそこ使えそうなの購入検討中
>>590 別に金をけちるためと言ってるわけでもなく、図書館の正当な活用方法が何で気に入らないのか分からないが、お前のその決めつけも薄っぺらいものだと思うぞw
pythonの入門書とか時間と金の無駄 無駄なものにお金をケチって有意義なものにお金を使うのは賢い選択
そりゃPythonで食っていくぞーって人なら本買えよって思うけど、このスレはそんな人ばかりじゃないから
学び方は人それぞれ 本をじっくり読み込むスタイルが合う人もいれば、 キーボードを叩きながらPC画面で学べるオンライン学習サイトが合う人もいる 大切なことは毎日続けること 人は三日プログラミングから離れると、自分の書いたコードすら読めなくなる
オンラインにも情報転がってるし金を出す意味はない 時間は惜しみなく出せ
愚者はそうやって時間を捨て老いていく。 賢者は金を払い、効率よく順序よく学びスキルを身につける。
本読む価値があるのって設計とかCSの本とかじゃないの 言語単体なら本買うより公式リファレンス見た方がマシ
自称賢者はカネさえ払えば効率が良いと考えているようだな 取捨選択すらできないで効率もへったくれもないと思うんだが
>>604 それだとEffective Pythonが読めないぞ
書き込みとかしたいのでやはり買うことにしました 図書館を勧めてくれた方ごめんなさい SBクリエイティブの「Python超入門」にしました
>>605 初心の話をしてるだよ、右も左もわからない状態で取捨選択できるような人間少ないだろう。
多少過激な物言いをすると直ぐに時系列を理解しないこーゆう愚者が現れ恥を晒す。
Pythonの入門書を選ぶのは結構難しいよな とある事情で他人に勧める参考書を探しているのだけれども、 基本を押さえていて、リファレンス的になりすぎず、かといって変に応用だけやるみたいにもなっておらず、間違いがない本を探すのはかなり難しかった。 他言語の経験がある人なら公式チュートリアル読めで終わりなんだけどね
図書館にPythonの本は何冊かあるんだけど普通に10年前くらいのあるなぁ… 2015年出版とかの本は使えるのだろうか?
>>611 だから図書館で複数纏めて借りたんだけどね
筆者毎に薦める開発環境も入り方も全く違うから
自分に合うのが1冊あれば他は返却するつもりだったし
合うのが無くてもそれぞれ読み合わせるつもりだった
>>610 めちゃくちゃ叩かれそうだけど書く
paizaとqiitaを往復するのがいいと思う
paizaのスキルチェック受けながらわからないところを調べていく
pythonでなにか作りたいとかなければこれがベストなんじゃないかな
課題を与えてもうのはとても良いことだと個人的には思う
>>611 なにを勉強するにも入門書ってあうあわない+良し悪しがあってむつかしいねぇ
>>613 複数まとめて借りたってちゃんと最初からかいてたっけっか?
>>613 は
>>589 だったのか!!!
なんか勘違いしてたわごめん
ねるぽ
>>609 だから自分で調べるなりここで聞けばいいだけだろ?
金出して教えを請うたりしたところで、大した違いはない
各種選択肢の中から結局自分で解決方法を選ぶことになるんだから
金出せば簡単にすむと思ってる輩には難しいのかもしれないけど、
自分でやろうとする気のないのは何やってもだめなんだよ
>>618 論点がズレてるから絡まなくてよい。
読書はよい、このように思考がバグってる奴の相手をしなくてすむからな。洗練された筆者と時空を超えて対話するツールである。
自身がバグっていないと証明することは不完全性定理により不可能なんだっけ 賢い俺らは自身と外界の両方から情報を得てアップデートしていこうな!
>>619 高校生が背伸びして難しいことを言ってみたという感じかな?
>>614 paizaってスキルチェックなんかもあったんだ…知らなかったなぁ…ありがとナス!
>>619 > 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
> 洗練された筆者と時空を超えて対話するツールである。
( ( ( ( ( (゚∀゚) ) ) ) ) )ユンユンユーン
この本コメントの書き方が載ってない… 信じられない… まあ#で書くって知ってはいるけど
>>611 他の言語に比べると入門書の質が悪すぎると思う
>>627 わかる
質の低い入門書が量産されるのは
公式ドキュメントの質が低いから
マジか…Pythonは初心者にも分かりやすいって聞いて始めたんだけど…
純粋の母数の問題じゃねえか? スタージョンの法則で90%はゴミ、 ただし業界のピラミッドがでかけりゃデカいほどクズ本は巷に溢れる Haskell本の少なさを見てみろ ネコも杓子もpython入門書を書いてる、 圧倒的なまでに量産されてる、 それが原因だ
プログラミング自体の初心者が多いので、 畢竟、入門書もプログラミング自体の基礎から始める必要があるんじゃないかねぇ
>>629 わかりやすいぞ
これほどわかりやすい言語は他にない
C・Java・JavaScript・Ruby・Go…これらの言語に挫折してきた俺がPythonだけは覚えられたからな
「みんなのPython」など、多くの本の質が低下した なぜ、文法が減ったかと言うと、 Jupyter Notebook, Pandas など、ライブラリの説明が増えたから 一方、Ruby では「たのしいRuby」1冊で、十分に文法が説明されている
YouTube で有名な雑食系エンジニア・KENTA は、 初心者が進む道を、サーバー側言語のRuby → Go を王道としてる この2つ以外は、出てこない 最初に、Python, PHP を学べとは、絶対に言わない。 将来的に、Pythonをやりたいからと言って、Pythonから始めてはいけないって言ってる つまり小学生が将来、大学へ行きたいからと言って、 いきなり大学の試験勉強から始めてはいけない 小学生は、小学生の勉強から始めなければならない。 次に中学生になれば、中学生の勉強をする。 そして高校生の勉強をする つまり、勉強の順番が大切
>>630 母数警察です👮🚓
母数は分母のことではありません
統計用語としてのparametersの訳です
詳しくはwikipediaなどを引いてみてください
Python で デスクトップアプリwwww とか言われてるの見て、違うんかなと思ってたけど、最近OKINI の MyPaint ってソフトのGITHUB みたらほぼ Python で書かれてたわ ちゃんと快適に動作するんやね PyQt とか、PyGTK とか、 Native Library をゴリゴリによんでるっぽいが、それが楽なのは良いよね
>>623 paizaスキルチェックは答えを公開してはいけない規約のせいで良いコードが見れない。
paizaスキルチェックはスキルを伸ばし終えた人が就職のためにやるものだと思う。
スキルを伸ばしたいならCheckiOで冒険するのがベストだゾ
https://checkio.org/ checkioでは問題を解いた後、Best Solutionsで他の人が書いたコードで高評価が多かったものが見れる。
そういうのを読んでいけばスキルが向上していくと思うわ。
じゃあ最初からいいモノだけを見せて純粋培養すればもっと効率よくなるじゃん 自分で解くだけ時間の無駄じゃん
>>610 <5分で始めるクリップボードにコピーしたテキストを検索>
退屈なことはPythonにやらせよう編
#! python
import webbrowser, sys, pyperclip
if len(sys.argv) > 1:
# この下の1行は半角スペース4個分あけてから書く(半角スペースを開けなかった時のエラーメッセージは"IndentationError: expected an indented block")
keyword = ' '.join(sys.argv[1:])
else:
# この下の1行は半角スペース4個分あけてから書く
keyword = pyperclip.paste()
# ttpsをhttpsに変更して使ってね
webbrowser.open("
https://www.deepl.com/translator#xx/ja/" + keyword)
webbrowser.open("
https://stackoverflow.com/search?q=" + keyword)
webbrowser.open("
https://qiita.com/search?q=" + keyword + "&sort=like")
webbrowser.open("
https://teratail.com/search?q=" + keyword)
webbrowser.open("
https://www.google.com/search?q=" + keyword)
#
https://duckduckgo.com/bang_lite.html # Automate the Boring Stuff with Python > Chapter 11 – Web Scraping > Step 3: Handle the Clipboard Content and Launch the Browser
#
https://automatetheboringstuff.com/chapter11/ # RUNNING PROGRAMS
#
https://automatetheboringstuff.com/2e/appendixb/ # 翻訳版:退屈なことはPythonにやらせよう ――ノンプログラマーにもできる自動化処理プログラミング Al Sweigart 著、相川 愛三 訳
Tweepyで3-leggedOAuth認証とAccessToken,AccessTokenSecretの取得方法教えて
押忍
iniファイルの読み出しに付いて教えてほしいです
URLをブラウザからコピーするとURLエンコードされた状態でコピーされます
これをそのままiniファイルに貼り付けると、configparserで読み出すときにエラーになってしまいます
[example]
url =
https://example.com/%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/ Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
ini['example']['url']
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 1255, in __getitem__
return self._parser.get(self._name, key)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 799, in get
return self._interpolation.before_get(self, section, option, value,
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 395, in before_get
self._interpolate_some(parser, option, L, value, section, defaults, 1)
File "C:\Users\Mercury\AppData\Local\Programs\Python\Python38\lib\configparser.py", line 442, in _interpolate_some
raise InterpolationSyntaxError(
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A/abcdefg/'
今は仕方なく適当なサイトでURLデコードして貼り付けてますが、結構な手間です
手間かけずに巧くやる方法はないでしょうか
ちなみにデコードすると以下になります
https://example.com/ あいうえお/abcdefg/
>>645 つurllib.parse.unquote()
>>647 うぉぉぉ出来たぁぁぁぁ
こんどケツ貸すヨ
とあるサイトでrequests.postでうまく投稿ができない ポストすると 投稿成功のときは”投稿に成功しました” 投稿内容が不正だったときは”投稿内容を確認してください” というhtmlが返ってくる pythonのrequestsから投稿するとこの”投稿内容を確認してください”が返ってくる ブラウザ側でも試したところクッキーを消したときにだけ同じ投稿ミスになることは確定だが ”投稿に失敗しました”ではなく”投稿内容を確認してください”というエラー表示に糸口がありそうな気がする s = requests.Session()でs.post()とやってみたけどやはりポスト内容が反映されていない headersつけたりもしたけど同じ ブラウザからajaxでの投稿には成功 パラメータを.encode("utf-8")したり dataにjson.dumpsでやってもだめだった 他のサイトでは大抵sessionの問題だけで普通にrequests.postでできるけど そのサイトではなぜか上で書いたようにいろいろやってもことごとく投稿ミスする 曖昧な情報しかだせないけど、他に考えられる要因があれば教えてください どうせcookie周りの問題だと思うけどsession.cookiesで確認した内容と ブラウザで確認したcookieにそう変わり無かったしお手上げ状態
>>649 1. Chrome -> デベロッパーツール -> ネットワークタブを開いて成功するリクエストを投げる
2. ネットワークタブから該当のPOSTリクエストをCopy as cURLでコピる
3. ターミナルにペーストしてcURL使ってPOSTリクエストを投げる
(5chみたいに重複ではじかれる仕組みがあるならリクエスト内容を変えること)
まずはこれで切り分け
cURLでもリクエストが成功するなら
その内容を徐々に削っていけば最小限必要なものが何か分かる
でそれをpythonに実装する
>>650-651 パラメータは成功したものをそのコンソールでコピペしてるからタイプミスはないとして
そのパラメータも簡単で、idとnameとcommentとnonce(3文字の数字)だけだった
(リダイレクトもないタイプだったのでpreserve logする必要もなかった)
そのnonceに対応する値もパラメータには無かった
簡略して書くと文字通りこんな感じのパラメータをポストしてるだけだった
prm = {"id":"id","name":"name","comment":"comment","nonce":"123"}
(もちろん重複エラーを出されないようにポストするときにはポスト内容を変えて何回もテストしてる)
数字認証にもタイムアウトがあると思って、ブラウザでサイト開いて数字をメモしてpython側で投稿テストした
書いてて思ったけど、もしかするとその数字認証の数字発行のタイミングとセッションに関係性があるのかもしれない
(発行された数値から作られたcookieを使う必要?)ので
それで試してみる㌧
>>652 Copy as cURLでCookie含むヘッダーも全部コピってくれる
パラメータだけじゃなく一連のHTTPのリクエスト/レスポンスを見るようにしないと原因わからないよ
>>653 すまn書き忘れたがそれでコピーしたヘッダーとかポストパラメータを整えて
まずajaxで投稿成功したものを、pythonにて(header設定の有無など)投稿テストしてる
とりあえず解決した
(python側のセッションと依存関係のない)ブラウザで開いた問題のサイトを開いて得た認証数字とcookieを使って
python側のrequestsでそのcookieを設定しつつその認証数字をpostしたところ
投稿に成功した
どうやらcookieと数字認証を紐づけしてセッションとして扱うという
そのサイトの仕様だったっぽい
ありやした
opencvのセットアップ本当にめんどくさくてワロタwww 散々漁った挙げ句ビルドツール揃えてgtkフラグ立てて自分でビルドしろとかなんじゃそりゃwwww
>>655 pip install opencv-python
でできない?
cmakeとかlibなんちゃらみたいなのが入ってないとpipで入らない
3.5サポート終了か 3.6終了されるとヤバいんだよなあ 深層学習の色んなモジュールで安定してるのが全部ダメになる
Pythonは3.3のyield fromで完成した それ以降はどうでもいい機能追加ばかりで言語の簡潔さが損なわれる一方だ
趣味レベルでしかプログラミングしないから遅延評価?とかジェネレーター?って使ったことないわ 使いみちがイマイチ思い浮かばないんだけど何に使ってんの?
>>663 ジェネレーターはメモリ節約以外で使わんなぁ
遅延評価って、lazy getter みたいなのかと思ったら、yield のことか
ジェネレータは動作テストなんかで簡易的なステップ実行をさせる時に便利 コマンドラインでnext()を打つたびに一個ずつデータが返ってくるから
デバッガでステップ実行中すればいいだろ わざわざコード書くのかw
ブログ書いてたら彼女と無料で海外留学という名のデートに行けた話【影響力やばい】
VIDEO 若いうちから人を雇ったり、任せるクセをつけるべき理由とは?
VIDEO 【対談】インフルエンサーマーケティングに300万円突っ込んでみた結果...
VIDEO 収入を上げたければ、自分の影分身を作るべし
VIDEO 勉強のために10日間で21個のアプリを作った話【初心者時のプログラミング学習】
VIDEO 学校では教えてくれないことの中にはお宝が眠っている
VIDEO ブロガーからステップアップしていくために必要なスキル
VIDEO 今オブジェクト指向勉強してるんですが 同一クラスの中で関数の継承って出来ないんですか? 抽象化した関数を1つ定義してそこから継承して微妙に役割の違う関数をいくつか生やしたいんですが class Hoge(): def abstract(): def concrete1(abstract): def concrete2(abstract):
なるほど それでは大本の処理は同じで細部だけが異なる関数を定義したい場合ってどう書けば良いんですか? 関数ごとに抽象クラス継承した新しいクラス定義するしか無いんですかね?
>>669 そういう時は関数を受け取る関数を1つ定義して
微妙に違う部分を引数として渡すことが多い
Ruby では、lazy を付ければ無限配列も扱える 最初に、無限配列を実体化しない。 必要な所までしか演算しない p ( 1..Float::INFINITY ).lazy.select{ |n| n.even? }.first( 3 ) 出力 [2, 4, 6]
結局実装はイテレーター使うようなもんだろ。。そんなクソ機能どうでもええわ
>>672 横レスだが
簡潔にして要点をおさえてるすばらしいレスage
>>674 そんなどうでもいいクソ機能はPythonにもあるんですけど・・・
>>674 横レスだが
簡潔にして要点をおさえてるすばらしいレスage
関数を受け取ってちょっと処理をつけ足したり変更したりした 新しい関数を返すのって、それデコレータって機能の出番じゃないかな 勉強始めたけどちょっと難しくて一時挫折中の機能だわ
>>678 デコレータは既存の関数を包む形で別の機能を追加するものなので意図がちょっと違う
メソッド横断的に共通して利用する機能を実装するときに使うのが一般的
@log(level=ERROR)
def foobar():
>>672 はデザインパターンで言うテンプレートメソッドを高階関数で実装するやり方
筋がいいか分からんがメソッド名で引数調整するとか? def func_core(self,format) # 処理 def func_csv(self,*args,**kwargs) kwargs['format']='csv' self.func_core(*args,**kwargs)
# get image pixel count using opencv imgCV = cv2.imread(file_name) height, width, channel = imgCV.shape height, width, channel = imgCV.shape AttributeError: 'NoneType' object has no attribute 'shape' となるんですが、なんでだろう? 前はこのコードで動いていたように思うのですが・・・
画像読み込みに失敗してる たから、imgCVにNoneが入っている
python 3.7.9 win10 bs4 requests データ収集中に発生した問題につきお答えいただければ幸いです <span class =“calcHEADas1”>40</span> 上のようなspanという要素に囲まれた40というテキストがあります。そして下に書かれたものを実行すると空文字が返ってきてしまいました。確かに40というテキストはあるのになぜ空文字が返ってくるのでしょうか。同じ境遇の方いらっしゃいましたら是非知恵を貸していただきたいです。 s = soup.select_one('span[class="calcHEADas1"]') print(span.text)
>>684 よくみてみそ
「"」と「“」と「”」は違う
>>684 spanの後ろにスペース入れて[class=…]としてるから
spanより下位の要素でクラス名が’calcHEADas1’のものを探しにいってる
span要素のクラス名ならスペースを入れちゃだめ
CSSのルール
>>685 >>686 お二人方のご指摘通りでした。
恥ずかしい限りです…! 3年くらい勉強してまいります!!
勇気が出ました
全角文字が混じっているだろ。 半角英数字以外はダメ! Ruby では、 require 'nokogiri' doc = Nokogiri::HTML(<<EOT) <span>xyz</span> <span class="abc">あいう</span> EOT elements = doc.css( 'span[class="abc"]' ) puts elements.first.content #=> あいう
今loggingとtqdmで表示がぐちゃぐちゃになるから困ってて
調べたらカスタムハンドラー使えって出てきたんだけど
logging.confでcustom handlerを実装する方法ってあるのかな?
https://stackoverflow.com/questions/5346661/ ファイルパスのデータ列のデリミタは何が適切ですか? カンマはファイル名に入力出来るからダメだし コロンはドライブ名称にくっついてるからダメだし ひとまず半角アスタリスクとかクエスチョンマークで妥協してますけどこれでいいんですかね? パス1*パス2*...*パスn のような感じです今
unix系ではほんとの文字がファイル名に使えてしまうし プラットフォーム依存したくないのなら何らかのエスケープした上で適当なデリミタ使えばいいんじゃね?
>>693 JSONやCSVなど適当なシリアライズフォーマットを選んで配列をシリアライズしましょう
単純な用途にオレオレフォーマットを再発明しても誰も得しないよ
普通に、CSV で、カンマ区切りで良い 要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(")があれば、 クォート文字で囲まれるだけ あ,"a,b" いう, xy ファイルに、: ; * などを使うと、バグる。 ハイフン・アンダーバーだけにしておくべき
タブ区切りのTSVでいいんじゃないか そもそも一行に繋げて書く意味あるのか そしてここは5chなんで正式なデリミタは<>だ
>>693 普通にCSVでカンマかTSV(タブ区切り)でええやろ
別にファイル名にカンマが混じっててもエスケープするなり
むしろアスタリスクとか変なもん混ぜると後でくそっそ面倒だぞ
(アスタリスクなんて正規表現のワイルドカードと被るから、絶対に揉める)
質問です 統合開発環境を使うのと、 テキストエディタ+コマンドプロンプトで作業するのとでは どちらが良いでしょうか?
>>700 目的、好み、能力などでどちらがよいかは人それぞれ
ただコマンドプロンプトという書き方をしてるところを見ると
IDEを使ったほうがよさそうに思える
Python入門者ってわけじゃないならPyCharmが開発しやすい とりあえずやってみたいって感じならAnacondaでJypyterNotebook VSCodeでやりたいならVSCode
プログラミング完全初心者で、初めて学ぶ言語がpythonです。pycharmを使って勉強しています。 指定された任意の時間で動作するプログラム(アラームのようなもの)を作っており、自分のPCでは期待通り動く状態まで持っていくことが出来ました。 これをネット上で公開して不特定多数の人に使ってみてもらいたいと思うのですが、ここから先何を勉強・用意すれば良いのかアドバイス頂けると幸いです。 今一番わからないのは「pythonで書いたプログラムをどうやってweb上で動かすのか」という点です。 その他のポイントとしては ・プロのエンジニアを目指しているわけではないが、ニッチな需要に応える簡素なサービスを作ってみたい ・xserverを使ってwordpressでブログを公開しているが、同じサーバーにこのプログラムを置けるのか? ・FlaskとかDjangoを使うべきなのか 以上、よろしくおねがいします。
693 皆さんありがとう そっかタブとかもあるのかあ・・
>>704 ウェブサーバの知識が必要かな
王道なのはapacheかnginxだけど、pythonだけなら
python -m http.server
でウェブサーバになるから、そこに肉付けしていけばいい
>>704 鯖マシンにPythonをインスコするor最初からPython動くよっていってるレンタル鯖をかりる
やればぁー
置ける 704の設定次第
使えばぁー
ベンチャーでは、AWS, Ruby on Rails が多い AWS Lambda, Batch などのサーバーレスとか
>>706-709 返答ありがとうございます。お教えいただいた点について勉強してみます。
>>700 です
返信が遅くなってすいません
レスくれた方、参考になりました
ありがとうございました
Visual Studio CodeとAnacondaをインストールしようと思います
Pythonで競馬予想ソフト作りたいんですがどう勉強していけばいいですかね? C言語は趣味程度に書いてたのでPythonの基礎的なところはすぐにモノになりそうなんですが
>>712 言語そのものの習得より競馬予想アルゴリズムの研究にはるかに時間がかかると思うけど、
そこは置いとくとしたら、公式サイトのPythonチュートリアルをやれば十分。
>>713 ありがとうございます。
ちなみに公式サイトのPythonアルゴリズムってのはググれば出てきますか?
チュートリアルとアルゴリズムの違いがわからないってどういうことだ Cとやらもハローワールドうごきません(^O^) ってかんじなのか
最近はなんでも機械学習だよ 過去3年分くらいのデータ集めて学習させるだけで的中率9割くらいなら軽く出るよ
716が図星すぎてヌカみそがうけつけないんですねわかります
>>718 まじでそれ
前処理できる人材足りないらしいしpython独学学生のワイは少し希望を見出している
#
>>643 のShell Script版
#!/bin/bash
CLIPB=$(exec xclip -o -selection clipboard)
CHON=''\'''
[ "$#" -ge 1 ] && ERROR="$CHON""$@""$CHON"
[ "$#" -eq 0 ] && ERROR="$CHON""$CLIPB""$CHON"
GOOGLE=$(rev <<< '=q?hcraes/moc.elgoog.www//:sptth')"$ERROR"
QIITA=$(rev <<< '=q?hcraes/moc.atiiq//:sptth')"$ERROR""&sort=like"
TERATAIL=$(rev <<< '=q?hcraes/moc.liataret//:sptth')"$ERROR"
echo 'DuckDuckGo !Bang一覧:'$(rev <<< 'lmth.etil_gnab/moc.ogkcudkcud//:sptth')
SHUFFLE_BANGS=$(shuf -e '!yjr' '!hashtag' '!gnuk' '!yt' '!so' '!ig' '!bili' '!r' '!qiita' -n 1)
SHUFFLE_KEYWORDS="$CHON"$(shuf -e 'python' 'shell script' '日本人' '料理' 'つまった' -n 1)"$CHON"
DUCKDUCKGO_BANG=$(rev <<< '=q?/moc.ogkcudkcud//:sptth')"$SHUFFLE_BANGS"' '"$SHUFFLE_KEYWORDS"
STUDY_KEYWORDS="$CHON"$(shuf -e '# Bash' '# grep' '# shuf' '# ヒアドキュメント' -n 1)"$CHON"
grep -B 2 -A 3 -n "$STUDY_KEYWORDS" "$HOME/Documents/studyRecord.md"
sleep $(shuf -i 5-7 -n 1)'s'
google-chrome "$GOOGLE" "$QIITA" "$TERATAIL" "$DUCKDUCKGO_BANG"
693だけどタブはダメやった。 c:\tempみたいなパスが入ってた時にデリミタ扱いされた・・ *と?はワイルドカードで揉めるみたいだから 半角の<か>で区切ってみる。これならどうだぁ
>>724 アドバイスを全無視ww
タブがダメなんじゃなく君がダメなだけ
ファイルパスのリストをわざわざ連結したい理由が思いつかない
てかPythonで使うだけならpickleで十分だろ csvに書き出すなら改行するのが一番楽だろうに
ファイルパスの\ を、/ に変換すれば? Windows でも、/ が使えるでしょ?
>>724 どうしてもCSV使いたくないなら、せめて先人の知恵に倣えよ。
SQLiteの分離レベルってどういうときに使うの。。 入門サイト見てみたけどほとんどどこも使ってないんだけど
質問です
下のコードの9行目は、なぜコメントのような結果(num_list1と同じ内容)
にならないのでしょうか?
https://paiza.io/projects/Qpy8sFx-h5avv5Gl83RZoQ どなたかよろしくお願いします
>>735 num_list1 を表示したいの?
そしたら9行目の print() の中には num_list1 を入れないとダメじゃない?
>>735 ゴメン再代入されないのはなぜって質問なのか
上から順番に実行されていくから、num_list1を変更してもnum_list2は変更されないからだよ
プルダウンメニューを自動選択→カートに入れるという自動購入の動作をさせたいのですが、セレクトボックスのidがあらかじめわからない場合はこの動作をさせる事は不可能ですか? 販売時間にならないと、購入ページが前もってわからないタイプのものです
>>735 変数に新しい参照を代入しているのかそれとも参照先の値を変更しているのかの違い
num_list1 = [1, 2, 3]
num_list2 = num_list1
num_list1 = [4, 5, 6]
↑新しい参照を代入している(俗に言う参照の値渡し)
num_list1[0] = 10
↑num_list1が参照している先の値を変更している
>>740 id 以外でも、CSS セレクターや、2番目などの順番でも指定できるけど、
ページ構成の変化には対応するのが難しい
その点、idなら1つに決まるから、プログラミングしやすい
cssセレクタでselectを指定すれば要素特定出来るだろ。どうせセレクトボックスなんてページにそれ一つしかないんだろ。
>>737 >>741 ありがとうございました
分かりました
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw
numpyでnumpy.ndarray.appendしても、ビューが生成されるだけです。 元のndarrayに追加するような方法はありますか?
>>742 >>743 ありがとうございます
cssセレクタで出来ました
以下のコードで
https://pypi.org/project/python-osc/ 以下のような箇所がありますが、これはどのような処理ですか?
{0}の部分に、args[0]の値を埋め込んでprintするような処理に見えますが~{1}の部分は何のために書かれているのかよく分かりません。
特に意味はないんでしょうか?
def print_volume_handler(unused_addr, args, volume):
print("[{0}] ~ {1}".format(args[0], volume))
f文字使うと古いPythonで動かないコードを世に放つことになるからなあ 少なくとも3系のPythonで動くように書かないと世のためにならない
俺が総理大臣に就任した暁には、全てのpythonライブラリにはtype hintの使用を義務づける そして引数のファイルパスの型にstrしか受け付けないライブラリには罰則を与える
型ヒントはさらにまずいね f文字はなんならformat版に機械的に変換できそうだけど 型ヒントの付いてるコードからヒントを取り除くのは骨が折れそうだ
最近はどんどん古いバージョン切って捨てるのがトレンドやろ 誰がこんな世の中にしたんやろなあ 大迷惑
新しいほうがいいじゃん? どうせPythonなんて作っては捨て、 作っては捨ての繰り返しだから。 その場でちょっとしたもの 作るときに使う言語だから。 Pythonなんてバカでもチョンでも 使えんだからさ
正直保守が必要な物をPythonで開発するのは馬鹿だろ
>>759 枯れていて商用に耐えうるメジャーな現役言語ってCかCOBOLしかなくて
しかもこれらの言語はひどく生産性が悪いというソフトウェア界の闇
Pythonはこの辺で仕様凍結宣言をして、COBOLの代替を目指すべき時期に来ている
fはintでもそのまま放り込んでエラー出ないから楽
>>765 むしろどうしてむりだとおもったんでちゅっかー
Web 系でごにょごにょするなら TypeScript おすすめしましゅ!
済まないがブロックにカッコを使う言語はノーサンキュー
a.jp/1.jpgからa.jp/500.jpgまでの画像をダウンロードするにはどんなふうに書けばいいの
for i in range(1, 501): s = "a.jp/" + i + ".jpg" ...
>>771 こう?
import requests
for i in range(1, 501):
url = ""
https://cz-cdn.shoeisha.jp/static/actibook/9784798155302/books/images/2/" ; + i + ".jpg""
file_name = " i + ".jpg""
response = requests.get(url)
image = response.content
with open(file_name, "wb") as aaa:
aaa.write(image)
これ、ちょっと間違えると攻撃に間違われるから気を付けてね
>>773 見直してもわからないので教えてください
python 複数画像ダウンロード とかでググってたわ thx
世の中みんなhomebrew使ってパッケージ管理してるみたいですが、pip3だけでなんとかなりますかね 当方homebrewがインストールできない環境です。
>>771 TypeError: can only concatenate str (not "int") to str
このぐらいは実行しなくてもTypeErrorになるのがわかんなきゃ初心者から脱却できてないぞ
>>770 単に連番の画像ダウンロードするだけならcURL使うといいぞ
$ curl -O
https://cz-cdn.shoeisha.jp/static/actibook/9784798155302/books/images/2/ [1-500].jpg
リトライも帯域制御も並列化も簡単にできる
後処理でpython使いたいとしてもたいていのユースケースはファイル連携で十分
>>781 たまに見かける
images/[1-10]/1.jpg
みたいなパターンだと -O/--remote-name オプションでは大変なことになるけどね
>>782 そういう場合は-oで指定すればいいんだぞ
images/[1-10]/{1}.jpg -o “#1_#2.jpg”とかね
#
>>643 のpyperclipを使って
# Python Documetationで学んだことをメモ用ファイルにコピペ
import pyperclip
clipb = pyperclip.paste() + '\n' # クリップボードの中身を取得
print('コレをコピペ -> ' + clipb)
open('memo_pythonDoc.txt','a').write(clipb) # 追記モード('a')でopenして変数clipbの中身をwrite
>>772 うちも最初の頃は+でつないでたけど、こういうミスがあるからf文字使うようになった
いちいち型を考える必要ない
やっぱf文字は強制にした方が新規には分かりやすそう Python3.10からはデフォルトにしよう それかPython4
PEP582採用して仮想環境を抹殺 型ヒント強制 fstring強制 頼んだぞ、Python Foundation
>>787 その前にf-stringをf文字列と訳すよう矯正する必要ありそう
fを付けない通教の文字列を標準でf-stringにする向きもあるらしいな
コンパイル可能にする動きはないの? 配布が面倒すぎて困る
exeで配布しようとするからでしょ パッケージ配布なら何も面倒なことはない
shift-jisのサイトのソースコードを取得し文字コードをutf8に変換する方法を教えてください
import nkf
import requests
url = "
https://kakaku.com" ;
body = requests.get(url).text.encode('UTF-8')
body = nkf.nkf("-w", body)
print(body)
こんな感じでやったのですが文字化けしてしまいます
BeautifulSoupは使えません
response = requests.get(url) response.encoding = response.apparent_encoding body = response.text
Pythonで〇〇できますかって質問ここでしていいですか?
>>796 いいんでないの
まぁpythonでできないことは本質的に機械じゃできないことだったりするけども
他の言語ちょっとやったことあるってレベルならどの参考書買えばいいんだろうか。チュートリアルはちょっと読みにくい
プロ向きなら、パーフェクトシリーズだけど、 猿向きなら、スッキリシリーズかな? パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020/6 改訂2版 パーフェクトRuby、Rubyサポーターズ、2017 パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7
>>799 玉石混合の入門書の中で、自分が勉強しようと思っていろいろ比較してみた所、
ソーテック社の「詳細 Python3 入門ノート」って本が良い感じでした
SBクリエイティブのpython超入門しか買ってないけど理解できた
>>804 あの本は一見良さそうだけど地雷
コメントの記述方法が載ってないとかあり得ない
pyautoguiで特定アプリ内の画像認識をしようとしているのですが、 ウィンドウの指定をして、 そのウィンドウが見えていない、バックグラウンドでも認識させる方法はありますでしょうか RPAを作ってみたのですが、そのRPAを動かしている間、パソコンに触れなくなるため バックグラウンドでの動作にしたいです。 pyautogui.locateOnScreen →アクティブウィンドウしかだめ
複数のデスクトップを変える、仮想デスクトップでも、ダメなのか?
給与計算のチェックとかpythonでできますか? エクセルvbaより楽にできますか!?
>>808 できるよ
openpyxlでcsvに変えてからpandasで処理するのが一番いい
エクセルvbaのように書式を保って処理できないんですね! 残念です!
できるよ。わざわざpandas使うのは809の趣味
言ってもない処理を809がわざわざ書いたから それしかできないのはしょうがないんだろうと思ったんどろう
給与計算で書式を保ちたいと要求していないし「一番いい」と言ってることから他にやり方があることが示されているし809のやり方が特別悪いとも思わんな
そんなにムキにならなくてもw 何でもかんでもpythonでやれば楽になるわけじゃないんだから
Excelに限らずGUI周りの処理はPython避けたほうが賢明
808です。 手当の変更のインプットやアップロードはがんばっていれて チェックは一瞬で楽にできればと思いました。パイソン勉強いたします。 パソコン教室にいきます。 ちなみに810はほかの人です。
excel操作とGUIは関係なくないか? ファイル名指定してCUIでいじるんだし。
python 3.7.9でimport win32com.clientを使おうとしとるんやが importエラーで先に進めない pip install pywin32 :インストールできたがimportエラー githubからexe落としてきてインストール :やっぱり動かない importで詰まったの初めてなんだが win32comどうやったら使えるん
これからpython始めたいのですがOSはmacの方が良いんでしょうか windowsしか使った事が無いけどググると環境構築や情報量はmacが優位との事で迷ってます 目的としてはexcelメールの自動化やwebスクレイピングを業務の中で出来るようになればと考えており、結局windowsで動かす事になりそうなのですがmac↔�windowsで環境を跨ぐと支障は出るものでしょうか
>>823 AnacondaかWSLでPython使えば大丈夫だと思う
>>823 windowsでもインストーラー落として実行するだけ
普段使いしてるWindowsに入れればいいよ セットアップの項目でpythonを環境変数に追加すれば使いやすさは変わらん
WindowsとMacではターミナルの使いやすさが違う Windows Terminalでかなり改善されてるけどね
WinならNative Pythonにpipenv入れるのが一番良くないか? Anacondaは個人のライブラリとか入れていくと環境グチャグチャになるから面倒くさいわ
>>832 anacondaにpipenvみたいな機能あるけど使ってないの?
anacondaのがバグったとき捨てて一から作り直ししやすいってのはある。
自分の書いたプログラムを周りの人間と共有する必要があって その周りの大半がanaconda使ってる状況以外でconda系から始めるのはやめとけ anacondaとtkinterは初心者をつまづかせる2大無用の長物 最初は直接python入れときゃいい
今更、anaconda勧めてくるのは無視していいと思う
>>835 まあそうかも。
ある程度他のビルドが通りやすい他のOSでPython使ってからだと、 Pure Pythonじゃない部分も面倒見てくれるAnacondaはいいんだけど、
ほんとの初心者でpipで入らないモジュールに困るまではいらないかもね。
Anacondaの癖なのかそうでないか見定められるまではAnaconda使わない方がいいかもね。
科学計算、データサイエンスの環境を手っ取り早く作りたいというわけでなければ、anacondaはすすめないかな。
ここ一年ぐらいに出版された入門書って環境構築どう解説してるんだろう
>>833 conda cloudにないけどpypiにだけはあるみたいなライブラリをpip経由で入れると依存関係壊れるのが嫌
逆は基本ないからpip使うのが結局総合的には楽でいいと思う
あとOpenCVみたいなのは自分でビルドしちゃうのが使えない機能があったりしなくて楽
>>839 WSLにDocker 、構築済みコンテナマウント、ローカルにVC-CODE、
Windows 10 Home 版に、WSL2, Docker を入れた OS の連続アップデートに、3時間掛かった。 CPU-i3, 8GB メモリを、CPU・電力エコモードで使っているから、コンパイルが遅いのかも その後、WSL1 から、WSL2への変更。 Dockerのインストール自体は簡単だった これで、Windows10 プロ版じゃなくても、Dockerを使える。 Kubernetes も入っていた 君らには、CPU-i7, 16GBメモリ、SSD-256GB以上を勧める 念のために、Windows 10 プロ版もプリインストールしておけ。 プリインストールなら、5千円と安いから 16GBメモリあれば、WSL2の互換性が悪い場合に、 Virtual Box で直接、Linuxも使える
>>832 おそらくその目的ならanacondaでも全く問題ない
>>835 ,836
たまにはanacondaを触ってみるといいよ
昔の問題だらけの時代とは全然違うから
今はpyenv+pipenvを教えるよりもminicondaだな
tkinterだけは特定のmacOSでトラブルになるから公式のがいいかな
PythonでもSmoozみたいなアプリ作れますか?閲覧してる情報まるごとぶっこ抜くってなかなかにシビれます。
>>845 kivyを使えば作れないことはないがネイティブアプリ開発にpythonを使うのは大変だと思う
numpyやscikit-learnなんかはanacondaがデフォルトでintel-mkl使うバージョンが入ってて速いそうだが それらを使うならanacondaの方がいいかもな Vanillaでmkl使う方をインストール出来るならそれでいいんだろうけど
弘法筆を選ばず 弘法環境を選ばず 厨房環境を論ずるのみ
WSL, virtualbox, 直python勧めるくらいなら明らかにanacondaのがマシだわ。 こいつら勧めるとかまともにプログラムやってないとしか思えんわ。
>>848 書家(とりあえず二人にききました)に言わせると
うまいひとほど筆も紙も選びますw
だぞ
>>850 上手くない人があーでもないこーでもない言ってる
かつて「プログラムは環境で決まる」という宣伝があったそうな 「決まる」というのは、最後の詰めのことを言っているのだろう 良い環境を使うか駄目な環境を使うかによって90点のプログラムになるか、95点のプログラムになるかは重大であろうから 環境を選ばなくてはいけないのだろう しかし50点のプログラムを書いてる者が環境で5点プラスして何になるのだね anacondaよりpipenvの方が環境が良いとしても その環境の差が重要になるほどのプログラムを書いているのかね? 環境、構築、と主張するのはその環境構築が必要になるほどのプログラムを書いている者だけでいい
釣り、ゴルフ、ゲーム、書道、絵画、カメラ、ドライビング、SEX
要約:俺は苦労して覚えた。おまえらも苦労しろ そう言ってるようにしか聞こえない
>>853 その理屈だと
50点+5点の方が
90点+5点より環境による変化大きいじゃん
算数出来る?
環境周りは基本的なことが理解できてからでいいんだって このスレでもanacondaでつまづいてるやつ腐るほど見てきただろ? プロジェクト単位の依存性管理や Pythonのバージョン管理をどうするのがいいの? って段階になってから考えればいいよ これからpython始めたいんですがってやつに即anaconda入れろはホント頭おかしいよ 余計なレイヤーを学ぶ必要がない方法があるならそれに越したこと無い
>>860 anaconda入れてPATH通せってのがそこまで深刻な複雑さを生むとは思わんがな。
python直に使ってて依存問題起きたらそれこそ初心者じゃテンパって終わるぞ。
>>850 そりゃプロなら選んで当然だけどさ
思い通りの紙と筆(環境)が揃わなくたって突然下手くそになったりしないでしょう?
そう言う事だよw
>>861 大概Python始めたいんですけどどうしたらいいですか?なんて聞く奴はPATH?何それ??状態だから
>>863 そのレベルだとpipenvも全く同じでは?
かつて環境アセスメントという 地球環境から職場環境までいっしょくたに扱うわけのわからん国の通知があって なんじゃこりゃっておもった 環境って開発環境のことか?
これでいいだろ
【徹底解説】Windowsでの環境構築|Pythonでプログラミングをはじめる準備をしよう! - YouTube
VIDEO MACでコードを書いて、WINDOWSでそれを使うってことできるのでしょうか?
プログラマーとして自分は無理だと判断すりゃ次の人生を考え少しでも若いうちに早めに転職した方が良い 老婆心ながら忠告しておく
>>843 Anacondaってpipとconda混ぜて使っても依存関係解決してくれるようになったの?
>>871 pipを使う場合は、環境構築だけconda createで作成して、あとは全部pipでインストール
condaで後からインストールしても良いけど、依存関係を解消しようとした頑張った挙句、どうしても解決できないものはコンフリクトして失敗する
すまん、パッケージマネージャはもうpoetryの一強だから
質問です listの要素をごっそり型変換するにはmap関数を使えばいいとあったのですが、 map関数の戻り値がイテレータであるとはどういうことでしょうか?
>>876 イテレータはlistと同様にfor分等で一つずつ取り出せるけど、実際の中身は取り出すまでメモリ確保しない
listに1億個の要素があったとするとlistならメモリを沢山必要とするけど、イテレータなら問題ない
使い方はほとんど同じだけどprint()で見ると違いが分かる
>>877 何となく分かりました。
ありがとうございます。
list()関数と併用したいと思います。
pythonをソースインストールしてんだけど ./configureの--without-PACKAGEのPACKAGE一覧ってどっかにないかな? --with-PACKAGE=noでも良いんだけど このオプションがマトモに機能してる気がしない 要らないパッケージ省いたスリムなpython作りたいんだけど ソースのREADMEもgithubの記事もどこにも書いてないんよね
>>879 pythonに適した使い方じゃないだろそれ。
そのPACKAGE一覧が./configure --helpでその下にずらっとでてくるやつでしょ ただ、それで、そのスリムなPythonが作れるわけじゃないけど
変数の宣言位置について質問です
下記のようなコードでは、if文が始まる前に
変数new_nameを宣言しておいた方がいいでしょうか?
https://paiza.io/projects/SG9gLGhkhsAzxAZ4UKz4mQ >>883 >>884 分かりました
ありがとうございます
ただ、
>>882 は例があまり良くないのですが、
要は分岐のブロック内で新たに変数が出てくる際に、Javaなどでは
String newName;
等と宣言しておくことが出来るのですが、
Pythonでは変数のメモリ確保?だけやるというのは出来なそうなので、
どうするのが望ましいのかなと疑問に思ったのです
この点に関してもどなたか助言をいただけると助かりますので
よろしくお願いします
>>885 宣言したいだけなら
new_name =None
な書き方で良い
すみません、ここを見てPythonをインストールしたのですが、
エディタというのはどこにインストールされているのでしょうか
MACに標準にあるテキストエディットをつかっても、pyという拡張子は作れませんでした
>エディタで先程作成したフォルダ「python_lesson」を開き、その中に「script.py」ファイルを作成してください。
https://prog-8.com/docs/python-env >>887 標準のテキストエディタでも別に行けるぞ
多分、拡張子の表示辺りが無くて分かりづらいと思うが
script.py.txtみたいな状態になってるはず
ちなみに、そこのチュートリアルで出てくるエディタはVSCodeで
別ページにインストール手順が書いてある
(そのページの一番上に
・テキストエディタ
HTML & CSS の開発環境を用意しよう! を参考にしてください。って書いてある)
VSCodeのような支援ツールは使わない方がいい 一文字ずつ自分の指でタイプして書き上げたコードこそが自分の財産になる
そもそもプログラミング使ってる時点で甘えてんだよ 全部紙に書いてそれをファイリングしてデータ管理すべきだわ ハンコ・紙の申請書・手書き・対面受け渡し この4つを徹底した業務を10年以上やってから初めてプログラミングをやるべき ちゃんと自分の財産が形成されてるからコード一行一行から良い風味が出てくる
>>885 pythonにブロックスコープは無いんだ…
だからJavaみたいにブロック内部で別の変数を定義することはできないよ
他のスクリプト言語もだいたいそうだから悲観しなくていいよ
>>891 楽してキーボードカタカタしただけのプログラムは”心”が籠ってなくて冷たい印象を受けるからな
使い手を想いながら心を込めて千枚通しでパンチカードに一つ一つ穴を開けるべき
パンチカード使うとか甘えてんのかよ 男なら黙ってプラグボードに決まってるだろ
フォンノイマン型コンピュータを使うことが甘え TTLロジックで論理をハードコードすべき
>>880 ,881
とりあえずmicropythonをビルドして使う事にした
公式配布されてるembeddable pythonのlinux版を作りたかったのよ
>>887 macならFinder設定の拡張子表示をするようにしとくといいよ
パンチカードとまでは言わないけどターミナルでviって打つと
一応標準でエディタは入ってる
質問の文章的にかなり初心者っぽいけどがんばって
Ruby にはブロックスコープがあるから、プログラミングしやすい MicroPython か Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25 この本を読んだ印象では、 宇宙開発などの組み込み用、Lua, Squirrel の代替になる Apache などのミドルウェアに組み込んで、拡張機能を作る。 ロジック・文字列処理は、C よりも、GC のあるmrubyでやった方が、安全性が高い
>>888 昔、方眼紙にチャート手書きしてたっけな。
BASIC,COBOL,Pythonと学んできた身からすると ブロックスコープって何それ状態なのだが つまりPythonの関数スコープがifやforにもあるってこと? 頭おかしくなりそう
>>903 withの挙動知るともっとおかしくなるぞ
インデント下げてる箇所で変数定義しても、withの外で使える
>>899 そんなに楽な言語じゃ気持ちがこもらないダルルォ?
>>904 どういうことなの…
できればサンプルコードを頼みたい
バグの元だろ
ブロックスコープが無いのはスクリプト言語でもPHPとPythonくらい バグの温床になりやすい
>>906 with open(‘test.txt’, ‘w’) as f:
____print(f)
print(f)
withはスコープ外れたらファイル閉じるから無理なんじゃないの? if文ならそうだけど
勿論 closeされるがファイルオブジェクトは残る
インデント下げてる場所 だったらこんなんじゃあないの with open(‘test.txt’, ‘w’) as f: ____count = 1 ____print(f) printf(count)
まずそもそもスコープを生成しないし、宣言キーワード無いからねぇ 某言語のブロックにしてもその実はクロージャというか別物だし… 仕様自体よりも思い込み・勘違い・混同の方が問題であろうかなと
>>913 嘘ついちゃダメ
nonlocalやglobalは宣言キーワード
スコープ周りが貧弱なので使いにくいハックが必要になってる
javascriptもブロックスコープがない時代はそんなのいらないと強弁してる人が沢山いたんだよねー
>>904 よく考えたらおかしくはないな
Pythonでスコープが作られるのは関数とクラスのみだから
withの中が外と同じレベルなのは当然ではなかろうか
>>914 代入文が暗黙的なローカル宣言でも、そもそも既出のブロックではスコープを作らないって話から
そこだけ切り取って嘘と言われましても…。明らかにlet相当も無いよねって文脈ですし
そうなっているので参照できるよって事で、要る要らないの話でもないですしね…
>>915 初めてpython触るヤツには違和感しかないぞ
Pythonからプログラミングはじめた人は 変数のスコープという概念自体を理解してないことが大多数なので 違和感なくてもバグを作るだけ
もう雑談になってるから続けたいならせめて質問にしてくれ
>>912 動きはするだろうが、なんでwriteでファイル開いてそのポインタをプリントしてるのか意味不明。
ブロックスコープは欲しい。 多分どうしようも無いGILをのぞいて、 Pythonの最もおおきな欠点だと思う。 まあ関数内defをして直後にその関数呼べばいいのかもしれんけど。
Pythonの本を選ぶときにスコープについて解説してある箇所を見れば本の良し悪しが分かる 初心者がプログラミングの学習を始めて遅くても3日目には習う基本事項にもかかわらず スコープについて整理してわかりやすく解説してるPython本は驚くほど少ない
JavaScript(JS), Python の関数はクロージャだから、関数外の変数を取り込んでしまう。 ただし、新しいJSには、ブロックスコープも出来たかも? 一方、Ruby の関数はクロージャじゃないから、関数外の変数を取り込まない 関数外の範囲は大きすぎるので、 取り込むとバグが多くなって、開発が難しくなるから、 透過しない厳格な関数スコープにした その代わり、関数内にはブロックスコープを作る。 これはクロージャだから、ブロック外の変数を取り込む 関数内は20行程度だから、範囲が小さいので、透過しても大丈夫
withは名前から受ける印象で直感に反してるけどルールとしては一貫してる 内包表記で代入式を使うと変数が外に漏れるのはルールにも反してて意味が分からない
まあそもそもリスト内包で副作用があるような処理書く奴はどうかしてるけどな。 そういう場合はアホみたいな書き方しないでfor使えや。
>>926 また嘘つきさん乙
副作用の有無なんて関係ないぞ
pythonてエクストリーム擁護するやつほど無知だよな
代入が副作用ないと思ってんだな。。そりゃ話にならん。
さすがにそれは・・・ Cの主作用/副作用の定義だと代入も副作用があるとみなすけど その定義だと内包表記はイテレータを使うからすべて副作用があることになる ローカル変数に値を代入する関数を副作用のある関数と呼んだところでPythonにおいては何の意味もないよ
スコープ抜けたら消えてるやつは副作用じゃないです。
代入式は代入だから副作用w 副作用だからfor文使えww エクストリームすぎるやろ
Tesseract以外のOCRライブラリで使えるの有りますか? 英語だけで十分なんですが
アイアン!まーいく!パイソン! なーんつっちゃって
文字列囲むときって 'てす'と"てす" どっちがいいの?
どっちでもいいが、英語配列のキーボードでは'の方がタイプしやすいため'の方が多用されていることが多い
どっちでもいい プログラミング配信とか見てるとわかるけど、日本人以外でもダブル(")使ってる人も少なくない 自分の中で統一できていればいい 使いにくい方をあえて使おうとしてまで使うメリットも理由もない 例えば、辞書のキーに文字列使う場合はシングル使って、メッセージの様な文にはダブル使うみたいな人もいる
引用する文字列にダブルクォートが含まれることが多いので、 Pythonでの文字列のくくりには意識してシングルを使ってる shellみたいに、展開の有無の違いはあったっけ?
blackのフォーマットのデフォルトがダブルなんだからダブル使え
質問です ちょっとマニアックなんですが… アンパック代入により_(アンダースコア)を使って値を捨てた後、 _の値を消去しておいた方がいいでしょうか? data = [1, 2, 3] a, _, b = data # del _
>>940 _にぶっこんだブツがでかい(重い)なら、念のためけせばー
940の内容では、イラネではー
>>938 rubyはそうだけどpythonにその違いはない
代わりに変数展開したければf-stringにする必要あり
>>940 どうせスコープ抜けたら解放される。気にしなくて良し
適切なコーディングが出来ていてクソデカ関数を書いたりしていなければ、だが
>>941 >>943 分かりました
あまり気にしないようにします
ありがとうございました
そもそもdel直後や関数抜けた直後に削除される保証なんてないのでは?
ImageGrab.grabでゲーム画面のスクリーンショットを撮ろうとしてもwindowsの壁紙しか映りません。ゲームのメニュー画面は撮れるのですが、対戦画面に切り替わると撮れなくなります。
input()関数での入力受付をマウスのクリックで代わりにできたりしませんか? 例えば、input()では"y"の入力でTrue、"n"の入力でFalseとして処理を分岐させている場合、 マウスを使うイメージでは、左クリック(あるいはyesボタンようなもの)が押されたときにTrue、反対に右クリック(あるいはnoボタンのようなもの)が押されたときにはFalseとなるようにして処理を分岐できるようにしたいです キーボードでの入力→エンターの手間が地味に面倒で(押し間違いも出てくる)クリック一発で済ませられるようになれば・・・と考えてのことなのですが、簡単な実装の仕方はありますでしょうか?
誰かiPhone用の爆サイリーダー作ってください。
>>947 AutoHotKeyとかBetterTouchToolとか使ってマクロを実行しろ
原理的にコンソールアプリで制御する範疇ではないし、すべきではない
>>947 やるべきかどうかは別にしてpynput使えばできるよ
https://pynput.readthedocs.io/en/latest/mouse.html#monitoring-the-mouse エンターが手間ならエンター無しのキーボード入力だけで
処理が進むように作ったほうが間違いがなくていい気がする
python getchでググるとよろし
(pynputでもできるしcursesのようなTUIでも可)
強制的な名前付き引数と可変長辞書引数って同居できなかったっけ?? def hoge(a,**d): これだとhoge(a=1)でもhoge(1)でも通っちゃうんだが
C++からPythonへ画像を送りたい または C++からPythonを呼び出したい(opencvの画像を添えて) 何か楽な方法ありますか? ちなみに動作環境はUbuntuです
楽な方法ならsystem()に一票 bindして呼び出せるけどトラブった時の対処はスキルがメチャクチャいる
python2で書かれたprint文をpython3に合わせて全てprint( )に直したいのですが、どのような正規表現を使えば良いでしょうか。全て print '~~~' の形式で書かれています。
>>959 むしろ「正規表現使わない置換」したほうがいいんじゃないかな かな
>>960 他にどのようなよい方法があるのでしょうか
複文がないなら s/\bprint\b(.*)$/print(\1)/ でいいんじゃないかなあ
エディタ使って一つ一つ確認しつつ置換した方がいいと思うがな。 10000行程度なら俺ならそうする
2to3使って元のファイルと差分を確認 が一番楽だと思う そもそもPython2からPython3だとprint以外にも変更が必要だし
>>963 とりあえずprint()だけ変換しておけば、
from __future__ import print_function でPython2.7でも使えるから
段階を踏むという意味ではいいんじゃない?
>>959 は変更点がprintだけだと思ってるような気がする
format() やfストリングで、例えば普段は小数点以下第2位までの数値表示で、整数部桁が大きくなる場合は小数点以下は第1位にしたりして、数値全体の最大桁数は固定にすることってできますか?
>>970 ありがとうございます。
すみません、説明不足でした。
例えばですが以下のように、原則は小数点以下は4桁として、整数部が4桁を超える場合にのみ、小数点以下の桁数を切り詰めて欲しいのです。
(整数部が大きくなるケースを例外扱いのようにし、小数点以下は4桁以上増やさない)
{:8.4f}
__0.1234
_12.3456
123.4567
1234.567
12345.67
フォーマット文字列生成してから、[0:8]で先頭8桁を切り出すしかないですか?
>>971 foo = [0.123456, 12.34567, 123.45678, 1234.56789, 12345.67890, 12345678.90]
[f"{round(x, 4):.7g}" for x in foo]
#=> [‘0.1235', '12.3457', '123.4568', '1234.568', '12345.68', '1.234568e+07']
anacondaって有償になったって聞いたんだけど、今まで使ってたやつってどうなるの? ずっと普通に使えていたから気付かなかった 講習で使ってるだけならセーフか? つか、そんな事一度も教えてもらわなかったぞ
>>973 anaconda 有償
でググればいいのに
去年の頭くらいの話だろうに何で今更聞いてんだ 該当してたらもう遅いだろw
>>974 ググってもよくわからんから来たんだよ
つか、落としたの1年前でサイトなんて見てないんだから知らないよ...
>>976 シンプルな回答
気にするな
正確な回答
人員200人以上の組織で使ってるならコマーシャルライセンス版を買いリポジトリの使用料を払えという話だ
お前の頭ごときでそんな組織に勤めてAnacondaを使ってるわけがないだろ?
だから気にするな
こういうスレは必ず「情弱乙www」とか言うやつが現れるよね。そして何も教えないまま暴言だけを残して去っていく
つぎすれあげ
くだすれPython(超初心者用) その52【まず1嫁】
http://2chb.net/r/tech/1610137345/ バイナリデータをいじくるのに手間がかかってしょうがない やはりテキストデータ専用言語だなPythonは バイナリデータ操作に長けた言語を紹介してくれないか 業務で必要なんだ
>>986 Cに挫折してPythonに来たのでそれはちょっと勘弁
ううむ世の中思い通りいかんものだのう
スクリプト言語でバイナリ操作というとperlでpack/unpack、pythonでstructモジュールあたりじゃないか? それも手間だというなら他の言語でも似たようなもんじゃないかと思うが。
扱うデータがリトルエンディアンならCは楽だけど、そうでないならCでも同じくらいの相応の手間はかかる
>>988 ポインタがわからんのよ
あれさえなきゃCはシンプルで良い言語なんだが
バイナリ操作つってもいろいろあるから何やろうとしてて手間を感じるポイントを書かないと何とも言えんよ エラーメッセージすら書かずに「エラーになるんですけど、どうすればいいんでしょう?」と同じレベル
ポインタがわからないのにバイナリ操作したいってのは一体どういう了見だ
分かるまでやれ 下手な説明だけ読んで理解しようとするから分からないままで進まないんだ 疑問に思ったら逐一書いて試せ
安全にバイナリを操作しようとしたら色々きをつけなきゃいけないけど、適当に実験するだけだったらCが一番楽だと思うけどなあ。 ポインタを気軽に操作できるからこその楽さだよね もちろんpackとかunpackとか使ったら同じだけど、一手間ある感じ。
>>990 Cならエンディアンの変換なんて楽勝だろ
htons htonl ntohs ntohlとかのライブラリもあるし
2/4/8バイトをひっくり返すだけの関数ならべつにCじゃなくても楽勝だろうし Cでも結局64bit版は自作しなきゃならんしで大して違いはないと思うが。
このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 84日 18時間 52分 37秒
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
read.cgi ver 07.7.23 2024/12/25 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250323210207caこのスレへの固定リンク: http://5chb.net/r/tech/1602896738/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「くだすれPython(超初心者用) その51【まず1嫁】 YouTube動画>8本 ->画像>5枚 」 を見た人も見ています:・くだすれPython(超初心者用) その32 ・【まず1嫁】くだすれPython(超初心者用) その53 ・【まず1嫁】くだすれPython(超初心者用) その59 ・【まず1嫁】くだすれPython(超初心者用) その60 ・くだすれPython(超初心者用) その42【Ruby禁止】 ・くだすれjavascript(超初心者用) その1 ・くだすれDelphi(超初心者用)その60【Embarcadero】 ・くだすれDelphi(超初心者用)その16 ・くだすれC++Builder(超初心者用)その5 ・家族でスキー場に来ていた43歳がスノボで初心者用コースで木にぶつかり死亡 ヘルメット未着用・みやぎ蔵王白石スキー場 ・【初心者用】マイニング情報交換スレ21 ・【初心者用】マイニング情報交換スレ40 ・【初心者用】マイニング情報交換スレ44 ・【初心者用】マイニング情報交換スレ49 ・【初心者用】マイニング情報交換スレ11 ・Webサイト制作初心者用質問スレ part241 ・スピーカー自作などの初心者用 質問スレッド 01 ・【初心者用】パズル&ドラゴンズ【パズドラ】★125 ・Elona初心者質問スレッド その119 ・初心者です、今どんな練習をすればよいか教えてください ・初心者質問スレ その123 ・冬山初心者スレ その37 ・初心者もOK FreeBSD質問スレッドその32 ・beatmaniaIIDX【DP】初心者スレ その31 ・人間関係の相談させてください(5ch初心者失礼) ・【LoV】LORD of VERMILION 3 初心者スレ51 ・【MTGA】Magic The Gathering Arena 初心者スレ73 ・【MTGA】Magic The Gathering Arena 初心者スレ 203 ・【Switch】Splatoon3/スプラトゥーン3 サーモンラン 初心者スレ wave3 ・【Switch】Splatoon3/スプラトゥーン3 初心者スレ ランク12【質問/雑談】 ・初心者質問スレ その121 ・冬山初心者スレ その74 ・冬山初心者スレ その74 ・初心者質問スレ その117 ・初心者格安双眼鏡日記その1 ・マンデン占星術63(研究者用) ・BMS 初心者質問スレ 14th style ・初心者のための優しい質問スレ その9 ・初心者のための優しい質問スレ その2 ・初心者のための優しい質問スレ その21 ・【初心者】5km20分を目指すスレ その2 ・初心者もOK! FreeBSD質問スレッド その121 ・beatmaniaIIDX【DP】初心者スレ その29 ・Wonderland Wars 入門者・初心者スレ Part9 ・Blender 初心者質問スレッド Part33(ワッチョイ有) ・ランス01 光をもとめて THE ANIMATION その2 ©bbspink.com ・【PoE】 Path of Exile 初心者・質問スレ part58 ・【プロセカ】無課金 初心者 その他誰でも歓迎スレ 1曲目 ・初心者なんですが、オススメのレンズ教えてください ・【PoE】 Path of Exile 初心者・質問スレ part52 ・【 総合 】仏教質問スレ☆彡その7【 初心者歓迎 】 ・amazonアソシエイト初心者スレ46冊目【5000円未満】 ・【MTGA】Magic The Gathering Arena 初心者スレ 9 ・【MTGA】Magic The Gathering Arena 初心者スレ65 ・【MTGA】Magic The Gathering Arena 初心者スレ 17 ・【MTGA】Magic The Gathering Arena 初心者スレ 218 ・【MTGA】Magic The Gathering Arena 初心者スレ 142 ・【MTGA】Magic The Gathering Arena 初心者スレ 206 ・【MTGA】Magic The Gathering Arena 初心者スレ 165 ・【MTGA】Magic The Gathering Arena 初心者スレ 80 ・【MTGA】Magic The Gathering Arena 初心者スレ 174 ・【MTGA】Magic The Gathering Arena 初心者スレ 108 ・/ ´,_ゝ`\初心者のための富士山登山入門134m (ワッチョイ無) ・競馬初心者の美少女なんだけどおすすめのお馬さん教えてください!! ・【Switch】Splatoon2初心者スレ11【スプラトゥーン2質問/雑談】 ・【Switch】Splatoon2/スプラトゥーン2 初心者スレ84【質問/雑談】
17:03:03 up 65 days, 18:01, 0 users, load average: 11.01, 10.45, 10.21
in 2.1122589111328 sec
@2.1122589111328@0b7 on 062206