◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Pythonのお勉強 Part74 ->画像>3枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1726881242/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
※前スレ
Pythonのお勉強 Part73
http://2chb.net/r/tech/1717631290/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
https://techiedelight.com/compiler/ Run Code機能あり。
http://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
http://pastebin.com/ まずまずシンプル。
http://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki http://python.rdy.jp/ ●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その60
http://2chb.net/r/tech/1725188284/ 次スレの建立は
>>985が挑戦する。(980通過して24h後も落ちなくなった)
Pythonでデータベース扱うなら、SQLite3が楽そうなんだけど
参考書とか探しても意外とないのね
SQLite学んでも、Pythonからの操作だと色々勝手が違うっぽいし、丁寧に解説してるところないか
>>9 まあSQLを知ってたら、ただ接続するだけだもんな
ジェネレータのsend()ってどういう時に使うんだろう
Pythonの勉強始めたばかりで3.12だとjapaniz_matplotlibが使えないらしいどうするPython2年生使っている俺
>>12 選択肢
1. 3.11へダウングレード
2. pip install setuptools
3. japanize-matplotlibの代わりにmatplotlib_fontjaを使う
いつのまにか更新されなくなっていたのか…
matplotlib_fontjaありがとう
フォントを設定するだけのことでよくわからんライブラリに依存させるのがいいことなのかと思ってしまうな
seleniumでサイト内の文字を検索して、
文字が存在する場合、存在しない場合に分けて動作させようと思っています
サイトに表示される文字列の一部が変化するため、完全一致では判定ができません
◯◯という文字を含む文字列がある場合
ない場合
というコードはどう書けばよいでしょうか?
よく分からないまま以下を書きましたがもちろん検索は失敗しました
try:
driver.find_element(By.XPATH, "//*[text=あいうえお]")
print("ありました")
except:
print("ありませんでした")
text in driver.page_source
>>16 XPathに慣れてるのでなければ初心者はCSS Selector一択
element.textがJavaScriptのinnerText相当
text = driver.find_element(By.CSS_SELECTOR, ‘body’).text
if ◯◯ in text:
print("ありました")
else:
print("ありませんでした)
今さらだが、
for elseってあるんだな…
よく使うの?
結構使う
else: # breakしなかった場合
と毎回コメント付けてるけど
便利なんだけど名前が悪い
elseを使わずに同じことをしようとすると、フラグを追加して、breakする時にフラグをセットすることになる
実際そういうコードもよくある
elseはbreakが複数箇所あった場合の面倒さ、フラグの名前を考える手間を省いてくれる
effective pythonではなんか変な例を持ち出して違う解決方法を示すだけで、
普通にフラグを使うコードもあることを無視している
>>22 for-elseの代わりにフラグ使う必要とかないでしょ
フラグ前提で考える人がfor-elseを使いたがるということなのか
例えばurlのリストに対してアクセスして、条件に合えばクリックして終了
クリックしなかったらメッセージを表示
フラグもelseも使わない実装は?
初心者が今からPythonでデスクトップアプリ作りたい場合、GUIライブラリは何がいい?
with (
open('file1.txt', 'w') as f1,
open('file2.txt', 'w') as f2,
):
print('あああ', file=f1)
print('あああ', file=f2)
こんなことできたんだな
メインの出力とログと2種類要る時とか、仕方ないからネストさせてた
>>21 だよな
PythonでAIを作ったりしたが、for elseなんて見たことないな…
>>26 pysimpleguiが楽に色々作れるかな
商業利用が有料化されてインストールに少し手間がかかるようになったけど、それを許容できるならかなりオススメ
バージョン5以降は年1回無料のライセンスを取得する必要がある
それかライセンス認証が要らない4.70.1を入れる
>>26 標準で使えるtkinterじゃあかんの?
>>26 ファイルD&Dできないのが欠点だけど
fletがなかなかいい
>>29-32 見事に全員違くて草
ぐぐってみた感じでも標準のtkinterか初心者でも使いやすいpysimpleguiがいいっぽいね
この二つで調べながらやってみる!あんがと
なんでもかんでもとりあえずChatGPTに聞いてみるのが一番いいよ。
結局GUIがやりたいならwebアプリが正解
いろんな人がそれぞれにGUI用の部品一式を提供してるけど、
一番馴染みがあるのがブラウザ
頑張ればゲームだって作れる
for else基本使うことないけど、今までに2,3回これでいいかみたいな事があった気がする
具体的にどういうケースだったか忘れた
>>35 WebUIはゴールデンハンマー云々って言ってる人がいた
一理あるって思ってPyside使い始めてるけど、プログラミングやり始めでこれ使えって言われたら挫折してたかもしれない
GUI難しい
>>25 普通にearly returnやyieldするだけ
for-elseは命名の問題以外に
条件に合致する対象を見つけてくるという探索処理と
探索結果に対する処理とが不必要に密結合するという問題がある
これがなければ命名は我慢して使ってもいいと思えなくもない
>>25の例を対象のurlを返すように関数化して処理を分離しようにも、
もうアクセスしちゃってるから続きでクリックするしかないんだよな
early returnが使いたいから、というだけの理由で粒度やスコープを無視して関数化しちゃうのもちょっと
>>39 >もうアクセスしちゃってるから続きでクリックするしかないんだよな
別にそんなことないでしょ
下の各行がそれぞれ別の関数に分かれたところで
同じdriver同じelementに同じ順番でアクセスしてればいいだけ
driver.get(url)
element = driver.find_element(…)
element.click()
逆にそれができないようなら必要な抽象化もできないことになる
例えばログインしちゃってるから続きでクリックするしかないとなったら
login関数という形で抽象化できない
ガチ初心者の俺は
まず最初に何作ったら
勉強になるの?
>>40 見つかった場合はclickすべきelementを返す
みたいな関数になるんだろう
不自然すぎる
やってやれないことはないみたいな強弁としか
大半のケースではfor elseの使い所は無いけど、
たまにばっちりはまるケースがある
頻度は低いので、使う時はコメント必須
>>13 google claboで3が使えないから日本語は無しで進めたw
ありがとう
re.DOTALLはインラインフラグでは(?s)だけど、sは何の略だろう
なるほど
MULTILINEと対応してないな
perlでも/sと/mは結局どっちがどっちだか覚えられなかった
必ず逆になるんだよな
いまさVScodeでPythonを学んでいるんだけど
Pythonにあったテーマカラーで何かオススメない?
いまOne Dark Proっていうテーマにしてるんだけど、文字列はオレンジの方がいいかなって思ってきた
>>48 VSCodeは融通が利かない
それに色分けは自分のためにならない
色情報はコードと何の関係もないので、色分けに慣れていると色分けをしていないコードが読めなくなる
色分けされてないコードを読む
そんな状況ってあるっけ・・?
白黒プリントアウトされてるとか?
あえて色分けなしにする
って訓練にはならないと思うけどね
もし訓練になるって言うなら
(慣れていない)別の色分けコードに遭遇したときに対しても
同じように読めなくならないと説明がつかないけど
そんなことないし
なので色は何でも良いんじゃない
おれは基本デフォ
ネットで調べるときも容赦なくデフォで表示されるし
初学者にとって
プログラミング向きのタイピング速度(コーディング速度)
これが一番重要だと個人的に思う
命名やコーディングにかかるチリツモ時間が
初心者にとっては妨げになるので
予測変換などもガンガン使っていった方がいい
シンタックスハイライトの後は自動インデント、自動補完の話が続くんだろ
chatgptにダーク系のおすすめ聞いてきたから好きなの鰓べ
Dracula, Monokai, Solarized Dark, One Dark Pro, Gruvbox Dark, Nord
>ハイパーモダンPython
ってそんなにすごい知識が身につくの?
>>51 寧ろvscodeは個別に配色の設定することも可能だから融通は利く
>>51 >色情報はコードと何の関係もないので、色分けに慣れていると色分けをしていないコードが読めなくなる
これめっちゃ判る
特に初心者ほどやめた方が良い
色分けされてる方が読みやすい
という単純な事実なのでは
初心者でも慣れてても同じ
道具に頼ると素手でできなくなるからと道具使わない人みたいな感じ
逆に初心者の方が誤りを判別する手助けにもなるので、
色分けされていたほうが便利だと思う
>色分けをしていないコード
ってどういうことなんだろ
わかる言ってるやついるけど
おれは全然わかんないわ笑
色無いなら自分で色分けすればよくね?
色アリ無しどちらではじめようが慣れたら結局
・色分け無しで慣れる→色分けアリでも読める
・色分けアリで慣れる→色分け無しでも読める
なんだから、最初から色分けアリの方が学習コスト低いよな
まぁ(初心者)色分けやめた方がいいって言ってるやつも
色分けした方が読みやすいって言ってんのが答えだわなw
道具に頼って素手よりパフォーマンス上がればそりゃ道具使うわな
土方ですら水平器もインパクトドライバーも使ってるわ
コーディングから実行までちんたらする時間がマジで無駄
スペルミスに勘づくスキルは上昇しづらくなるだろうがエラーメッセージに頼ればいいしエラーメッセージと勝負して先回りする意味はない
まず善い手本参考に自分で書いたコードが成功か失敗か確かめる数こなした方が上達する
言語学習でも同じ
インプットアウトプットの回数多い方が文法も語彙力も上がる
文脈把握できればエラーに気づく能力も上がる
色分け無し縛り云々は逆張り愉快犯以外に利点はない
>>58 この論理ほど馬鹿なものもない
便利機能はどんどん使えばいい
災害を想定して普段から水電気ガスが満足に使えない生活をしているやつは殆どいないだろう
androidアプリ作ろうと思ってkivyで書いて
コンパイルをgoogle colaboratoryでbuildozerでやったら
上手くapk作成できてandroid端末でもインストール動作確認できたけど
コンパイルの時間めっちゃかかったなにこれ…たぶん20分くらい
こういうもんなの
if elif elif else
みたいにインデントを深くせずにtryを書けないかな
色分けに慣れたらコード読めなくなるってマジ?
でもキータとか見ても色分けして表示されてるところが多いしなあ
とりあえずVScodeデフォルトでしばらく使ってみるわ!ありがと
エディタの便利機能使わないならメモ帳でやっとけって話になるわな
evalでできた
for convert in (int, float, complex):
でいい
chromeでseleniumを動かしているのですが、実行した直後にコマンドプロンプトが落ちてしまうので、何のエラーなのかが一切分かりません
どうやったら落ちなくできますか?
>>76 そういうときは出来る限り最小構成
↓で試して落ちるならseleniumのインストール時点で何かしら問題あるかも
import time
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
#chrome_options.add_argument('--no-sandbox')
#chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=chrome_options)
print("driver.get")
driver.get("
https://www.google.co.jp";)
print(driver.title)
time.sleep(1)
driver.quit()
print("正常終了。")
>>76 .pyファイルをダブルクリックするとかしてpy.exe(Python Launcher)経由でプログラムを実行してると推測する
VSCodeとか入れてるならVSCodeからプログラムを実行すれば出力も確認できる
入れてないならプログラムの最後にinput()と書いてプログラム終了前にユーザー入力を待つようにするか.pyファイルをダブルクリックするのではなくコマンドプロンプトを先に開いてそこからpython hello.pyの形でプログラムを実行すれば出力内容を確認できる
>>77 >>78 ありがとうございます!
これまではbatファイルにpyファイルのパスを書いて、batファイルをダブルクリックで実行していましたが、
教えていただいたとおりコマンドプロンプトを開いて手動で打ち込んで実行すれば落ちずエラーを確認できました
質問です。ある書籍で
price = 100
print(price * 1.10)
print(int(price * 1.10))
の結果が
110.00000000000001 ←浮動小数点で表示
110 ←int関数を使って整数で表示
と書いてあるのですが、何故110.00000000000001になるのかが浮動小数点について調べましたが、私の知識では理解出来ません。
どなたか解説をお願いいたします。よろしくお願いします。
浮動小数点と丸めの話は定番の話でググって出てくる説明で分からんかったらここでも多分無理だぞ
print(100 * 1.08 == int(100 * 1.08)) # true
print(100 * 1.1 == int(100 * 1.1)) # false
1.08だったら正確に108.0だったのにな
a = 100*1.08
b = int(a)
print(a is b) # False
print(a == b) # True
print(hash(a) == hash(b)) # True
d = {}
d[a] = 1
print(d[b]) # 1
1.1だとエラー
結局二進数表記で無限桁になる場合は誤差が出るってことにつきる
from fractions import Fraction
rate = Fraction(110, 100)
print(100*rate == int(100*rate)) # True
ハイパーモダンpythonって何だそれ?って立ち読みしたらただのツールチェインの解説だった
原書見るとhypermodern python toolingだった
日本のオライリーは完全に終わった
質問です。こちらの職業は勇者、戦士、空手家
勇者から柔道家までの5人の攻撃回数が異なります。
まず勇者は2回攻撃、戦士は3回攻撃、空手は3回攻撃
(勇者の1回分の攻撃は100~200、20%の確率でクリティカルヒットの攻撃になることがある。
(戦士の攻撃は200~300、20%の確率で攻撃がクリティカルヒット1回になることがある。
(空手家)空手家の攻撃は350~500、ただし20%の確率で攻撃がクリティカルヒットとなるときがある。勇者は5%の確率でロトの剣が手に入る。
クリティカルヒットは攻撃力X2です。さてプログラムをやっていくか。
まずギルガメッシュっていう名前のenemy
ラスボスの名前はenemyとする。ボスのHPは5万。
ボスは基本的に何もしません、できません。これやるとさすがに面倒なのでw
基本的にボスは攻撃しません。(面倒だからw)
一方的になかまあつめてボコすw
さて、次の問題はキャラクターが何人いるか。
イフ文1でまず攻撃は勇者~勇者=yu 戦士=sen 空手家=karate
*ロトの剣で攻撃したら攻撃力が1.5倍あがります。*
**癒しの穂。食べたら防御力と賢さがあがります**
ロトの剣の出現条件は3並びで一つ食べることができます。
例えば111攻撃とか222攻撃とか333攻撃とか~999まで。
次の発言からコードを書いていく。
>>88さん
みんなで考えよう!
print("ゾーマが現れた")
zoma == HP10000
print("勇者が笛を吹いた")#笛を吹くと仲間が一定数増える。
print("笛のおかげで戦士が仲間になった")
print("zomaは何も攻撃してこない)#攻撃したらもっとプログラムの量が増えるから割愛w
yusya kougeki =40
print("40のダメージを与えた")
senshi = 100
if zomaの体力が0になった
print("zomaは死んだ"
elif:
yusya=yusyakougeki
だめだ
あたまがいたくなってきたw
もっとシンプルにいこう!
if文でいいはずw
number = int(input())
print(number)
if number == 10:
print(str(number) + "のダメージは10に等しい")
elif number > 10:
print(str(number) + "のダメージは10より大きい")
else:
print(str(number) + "のダメージは10未満")
ここまでできたw
yousya=you
senshi=sen
karateka=kara
あぶねー初期化忘れてたわw
you,sen,kara=0
これでよしw
次は割合に入るから気合いれなw
number = int(input())
print(number)
#その前にランダム要素を入れるの忘れてたw
import random
random.random()
random.randint(1回攻撃、二回攻撃)
if numberyou == 153:
print(str(number) + "は153に等しい")
elif number > 200:#勇者は二回攻撃なので、153と200の攻撃=攻撃となる。
print(str(number) + "senはyouより大きい")
else:
print(str(number) + "の攻撃力はsenとyou")
まだまだだなーw誰か一緒にとかないかい?w
そっか、フローチャートにしたほうがみやすいかw
'''スタートです。ラスボスは1匹。ゾーマです。ゾーマの攻撃は3回連続です。
こっちのキャラクターは勇者、戦士、魔法使い、僧侶、賢者、遊び人、魔法剣士、武道家の8人
また敵のスピードは8人より遅いのでいつも最後にゾーマのターンになります。
呪文が一切効かない。そのため、勇者、戦士、魔法剣士、武道家の攻撃のみで倒さないといけません。あと変数は勇者はyou、戦士はsen,魔法剣士はmaho ,武道家はbu。僧侶、賢者、遊び人は体力が減ったら回復呪文を唱えます。''
勇者以外全員体力が999です。
勇者は体力が500です。
100 スタート
200 変数を初期化する
ゾーマが生きている場合
you,sen,bu,mahoが攻撃をする
それ以外は体力が減ったら回復につとめる
ゾーマのHPは5万。
youの攻撃は3回連続して足した値
senの攻撃も3回連続
mahoも3回連続
buも3回
設定で自由かできる。
a=ガンガンいこうぜ!
print("ガンガンいこうぜ!)
b=体力回復を最優先にしようぜ!
print("体力の回復を優先しよう!)
c=攻守のバランスがいい
print("攻守のバランスがいい)
続く。。。w
これでいいやw面倒だしw
# RPGの攻撃状況を再現
# モンスターと戦っている。
# 1から10のサイコロをふって、
# 6未満の場合、サイコロの目だけダメージを与えたと表示。
# 6以上の場合、クリティカルヒットとして、100のダメージを与えたと表示。
# 0の場合、防御されたとして、0ダメージを表示。
import random
hit = random.randint(0,10)
if 1 <= hit < 6:
print("スライムに、" + str(hit) + "のダメージを与えた!")
elif hit >= 6:
print("クリティカルヒットダメージ100を与えた")
else:
print("ダメージは、" + str(hit) + "防御された")
html → javascript浅 → php → javascript深 → python
と来てついにc++に手出すことにしたわ
専業でもないしpythonだけで自分のやりたいことほぼなんでもできるし見向きすらしなかった
$ sudo apt install tree build-essential cmake pkg-config
これだけで開発環境整うとは知らなかった
pythonスクリプトと連携して簡単に開発できるか検討中
自分が高速化しなければ
という余地が残ってればいいけど
電子工作とかと同じで、一通りできるようになったけど作るものが何もない状態になる
python+opencvすげえ!
たった10行くらいでwebカメラの動画表示された!ものの1,2分のコーディングじゃん
皆pythonに移行するわけだなこんな便利なライブラリあったら他のやってられねえわ
大事なのは表示されてからだぞ
どういうアプリを提供するのか?
これだけライブラリが進化してるのにそれを使って大したアプリが出てないことを考えると
簡単かどうかは関係がない
PythonはPoC止まり言語というイメージあるよね
「やってみた」ともいう
PythonはPoC止まり言語というイメージあるよね
「やってみた」ともいう
1817を渡すと'00:30:17'に変換してくれる関数ってある?
import datetime
td = datetime.timedelta(seconds=1817)
print(td)
これで '0:30:17' が表示される
ただし、'00:30:17' ではない
print(f'{td:%H:%M:%S}')
みたいなことをしてもエラーになる
妙に融通が利かない
import datetime
dt = datetime.datetime(year=2001, month=1, day=1)
td = datetime.timedelta(seconds=1817)
print(f'{dt+td:%H:%M:%S}')
こうやると'00:30:17' を得ることができる
せめてyearとかが省略可能だったら
pip install モジュール名==
でモジュールのバージョン一覧が出る機能っていつのまにか無くなってんだな
便利だったのになんでだろ
>>104 入り口が広い(初心者向け)っていうのは重要だけど
込み入ったことしようとすると速度とか色々気になって来る
まあ気になったら乗り換えればいいんだけど
>>105 そうほんとそれ
みんなサンプル動かして満足して終わり
>>111 >>> import time
>>> print(time.strftime('%H:%M:%S', time.gmtime(1817)))
00:30:17
print(f'{time.gmtime(1817):%H:%M:%S}')
こうは書けないんだよな
書けても誰も困らないだろうに、もう更新の止まった古いモジュール
>>116 これもだめっぽ?
import time
tt = time.gmtime(1817)
print(f'{tt:%H:%M:%S}')
試したら判るがな
TypeError: unsupported format string passed to time.struct_time.__format__
formatをサポートしていない
サポートしていないものを新たにサポートさせても、既存のコードには何の影響もない
だから、python 3.4で追加しましたとかなってても不思議ではないけど、
もうtimeモジュールは捨てられている
import datetime
class My_timedelta(datetime.timedelta):
def __init__(self, seconds):
self.dt = datetime.datetime(year=2001, month=1, day=1) + datetime.timedelta(seconds=seconds)
def __format__(self, format):
return self.dt.strftime(format)
td = My_timedelta(seconds=1817)
print(f'{td:%H:%M:%S}')
print(f'{datetime.datetime.now()+td:%H:%M:%S}')
これは継承の練習問題でしょう
既存のtimedeltaに__format__を追加する
timedeltaをdatetime用の書式で表現したら
間違いが起こりそうで怖いのは気のせいか
マイナスを渡すと23:29:43とかになる
多分欲しいのは、-00:30:17
>>125 時刻と時間は別物だし、文字列として持っていればいい話。
td = datetime.timedelta(seconds=1809)
print(str(td).zfill(8))
これはだめ?
さすがに小手先すぎる
マイナスにも対応できない
そして秒は小数点以下1桁も表示することという仕様変更により、
3600で割ったりして全部自前で作ることになった
import datetime
s = -1816.123
g = (s>0)-1
td = str(datetime.timedelta(seconds=abs(s))).split(".")
print(f'{str(g)[0]}{td[0].zfill(7-g)}.{td[1][:1]}')#-00:30:16.1
0で折り返すのは、abs()で処理して<0だったら'-'付ける、だろうなあ
流用できる処理が無い
秒数を時分に変えるのは60で割ればいい話だろうにw
>>131 0.123が何を指しているのかわかる方がおかしい
>>133 四則計算と文字列を任意の日時フォーマットにするだけだぜ?
日時データ型をいじるというのはコンピューターが最も苦手な計算。
>日時データ型をいじるというのはコンピューターが最も苦手な計算。
馬鹿なのか
しかもまだ過渡期だから、実際は32ビットで計算している。
2036年問題だってすべてが対策済みというわけでもない。
60で割って1000で割るとか、64ビットだけではできない。
小数の誤差の話をしてる?
日時や時刻を扱う上で問題になるような誤差が出ることはなくない?
どんなに厳しい分野でも必要なのはナノ秒の数値までだろうし
>>141 64ビットCPUは64ビットのレジスタと外部とのやりとりが64ビットだ。
彼は1/1000秒まで正確に求めたいらしいが、2進数は10進数の表現ができない。
例えば10進数の1000は2進数だと1024になってしまう。
コンピューターは10進数の計算が苦手、時分秒なんてコンピューターには概念すらない。
>>141 質問しているやつは秒を分にする方法を知らない。
60で割るということもわからない。
そもそも質問ってなんなの
>>108 からの
>>111、派生で
>>116 後出しで
・マイナス
・小数点以下
にも対応
ようは、ほんとはdatetimeかtimeで
一発で書きたい
もしくは、
出来る限り自作関数など無しで書きたい
だと思うけど
初心者は数値は数値型、文字列は文字列型とか意味もわからずにデータ型を決めたがるよな。
hh:mm:ssは日時型という内部表現と画面に表示されている見た目を混同するあたりも意味がわからない。
>>145 秒数を60で割る、ミリ秒は1000で割るという秒と分の換算がわからないというPython以前の問題児
>>145 一発で書く方法はないので自作関数必須
いずれにしろ入力フォーマット、入力値の範囲、必要精度、出力フォーマットの仕様が必要
この程度は標準で用意しといてくれよという気持ちはよく分かる
>>143 >彼は1/1000秒まで正確に求めたいらしい
どこを見てそんな解釈したんだ?
>>150 131 デフォルトの名無しさん (ワッチョイ eb61-lE/J) sage 2024/10/14(月) 00:55:34.21 ID:hhbIrBZG0
import datetime
s = -1816.123
g = (s>0)-1
td = str(datetime.timedelta(seconds=abs(s))).split(".")
print(f'{str(g)[0]}{td[0].zfill(7-g)}.{td[1][:1]}')#-00:30:16.1
60で割って云々はちょっとズレているというかアスペ感があるのでひとまずその問題は置いといて
ストップウォッチ風な表記をdatetimeかtimeで一発で出せたらいいのに、ってことなら
そもそもストップウォッチって
0’00’’00
だったような
なら0:00:00でよくて
別に2桁縛りの0埋めじゃなくてもよくね
ミリ秒部分は知らないけど
>>153 彼はフォーマットのことも言っているが、1816秒を分に変換する方法がわからない。
1分は60秒だ。1000ミリ秒は1秒。
0:00:00
10:00:00
これが揃ってないのがむずむずする
みたいな問題だとしたら
日付関数というよりprintなど出力フォーマット側の仕様にした方が個人的にはしっくりくる
>>151 -1816.123という秒の単位で期間を表現した数値を
HH:MM:SS.0やHH:MM:SS.000形式の文字列にフォーマットしたいというのと
1/1000秒まで正確に求めたいというのは全然別の話じゃん
しかもそれ本人じゃないだろ
本当に60秒が1分だと知らないのかもしれない。
datetimeライブラリなんか使う必要もない。
>>154 おまえはズレてるのでちょっと会話できないわ すまんね
そもそも
>>131は別人だしお前以外は流れでわかってると思うよ
>>158 本人の書き込み
109 デフォルトの名無しさん (ワッチョイ 4f54-O9y3) sage 2024/10/12(土) 01:09:25.66 ID:3/0Ne1V+0
import datetime
td = datetime.timedelta(seconds=1817)
print(td)
これで '0:30:17' が表示される
ただし、'00:30:17' ではない
print(f'{td:%H:%M:%S}')
みたいなことをしてもエラーになる
妙に融通が利かない
1817秒を30分17秒と単純に割り算をして、文字列をくっつければいい簡単な話だぜ。
54に続いて78が爆誕か
>>143の3行目とかマジでどういう脳ミソしてんだろう
>>155 printによる出力フォーマットは出力する値の型(ここではdatetime型やtimedelta型)に依存してるんだぞ
最初の質問って「ある」「ない」を聞いてるだけじゃね?
無ければ自分で作るかぁ、みたいな
作り方なんて分かってる上での質問でしょ
>>162 その理論だとprintにオプションなくてもいいよね
判ってると思うけど
1000 で割るより 1000000 で割った方が良い
数値
↓
時刻
↓
文字列
という奇妙なデータ型変換
最終的な時刻フォーマットは時、分、秒がわかっていればいいだけなのにな。
1817秒÷60の結果で30分と17秒という分数と秒数が出せる。
def convert_1817(sec):
if sec == 1817:
return '00:30:17'
else:
raise ValueError('sec must be 1817')
print(convert_1817(1817))
20レスもしていて簡単なサンプルコードも書けないという事実
回答としては
質問の要求を満たす何らかの
・関数
・datetimeやtimeなどオプションやメソッド
の掲示、なければ無い
場合によってはノーコードにもならない
ただひとつ確実に言えることは
割る60だの算出方法にひたすら拘っているアスペっぽいやつが的外れだということ
アスペおじさんもだけど君も大概やで
>>131とか
>>164とかギャグじゃなければヤバいぞ
>>170 数字とコロンを連結するというところがなぜかprint関数でやるというヘンテコ話になっているからネタかもしれない。
経験上、文句を言うだけで理由を言語化できない人の方がヤバい人は多いですね
1f78-oCgEだけは段違いで会話が成立しないレベル
レス数から言ってもわざとやっているとは思えない
printさせるのはいかにも入門書という感じだけどさ、データ型の概念もなければ、データ型を変換するキャストも知らない。
ms = 1817
= f'{num:04}'
ji = = f'{num:(ms // 3600)02
fun = ms // 60
byo = ms % 60
() + (1817 / / 60) + ':' + (1817 % 60)
自分はわからないのでお金を出して他人にやってもらうというのが正解だ
段階を踏まずにいきなり最終形にしたがるのも初心者の特徴
関数一つ設計することが出来ないおじさん二人の醜い争い
今からPython始めても食ってけない?
gptのせいでコード自動生成されてしまうから
>>183 その質問もまずはChatGPTに聞くとよい
コードを改良するプログラムを生成するように依頼
そのプログラムで自分自身を改良し続けるようにして実行
プログラマになれないのに諦めない心意気は買うが辛くなるだけだぞ
Python系YouTuberになるための肩書としてプログラマなるならありかも知れん
今からPythonするならAIを設計する側に回るように頑張るのがいい
もしAIがより高性能なAIを設計できるようになったらそもそも社会が別物になるだろうし
matchってswitch?
なんで変な名前なの?
C言語の時点でswitchは特に便利でもなかった
そこだけインデントが変になるし、breakまみれになるし
それでも推奨されたのはコンパイルで高速化できるから
分岐のかたまりではなくテーブルでジャンプするように変換してくれる
だから必然的にpythonにswitchなんか不要
>>191 ↑
高速化は事実だが、
テーブルうんぬんは間違い。
profile指定する以外の方法でseleniumでメルカリにログインする方法が判らん
>>189 別に変じゃないだろ
マッチ(match)させてその結果により分岐(switch)するという二段階の処理
用語として前を取るか後ろを取るかだけの話だ
パターンマッチのmatch
switchにはパターンマッチの機能はない
条件に合うか検査して分岐するんだからswitchだよな
英語のswitchってそんな多数分岐のニュアンスあるか? という疑問もある
AからBへswitchみたいな、2分岐がせいぜいなのでは
>>197 じゃ、て何よ
どっちかなんだからmatchでもいいじゃん
switchと似て非なるもの、という意味でmatchにしたんだろうな
-tchが共通してるのは意図的
switchと同じと思われることを避けるというよりは、
switchとは違うのだよswitchとはという積極的な意思表示
longmanを引くと
1. to change from one thing to another, usually suddenly
2. to secretly remove one object and put another similar object in its place
3. to help someone you work with who needs time away from the job by agreeing to work certain hours for them if they do the same for you
4. to change the way a machine operates by using a switch
1.ある物から別の物へ、通常は突然変えること。
2.ある物をこっそり取り除き、別の似たような物をその場所に置くこと。
3. 一緒に働いている人が仕事から離れる時間を必要としている場合、その人が自分と同じことをしてくれるなら、その人のために一定の時間働くことに同意することによって、その人を助けること。
4. スイッチを使って、機械の作動方法を変えること。
何かからanotherへ切り替えの意味なんだよな
ああ、2分岐でいいんだ
だからcaseなんだ
この場合はこれに切り替え、この場合は、という2分岐がたくさん書いてあるのか
長年の違和感がやっと解決した
with open(file_path, "r") as file:
lines = file.readlines()
これだと普通に動くのですが
with open(file_path, "r" , encoding="utf-8") as file:
lines = file.readlines()
こういう風にopen関数に第3引数を指定すると、実行してもなぜかすぐ終了してしまいます
原因わかる形いませんか?
すみませんencoding="shift-jis"にしたら動きました
質問したらすぐに自己解決する不思議・・・というか何も即終了しなくても
でも
matchって色々機能があるね
使うのめんどくさいな
>>206 うん
if~elifで済ませてきたんだから今更だし
確かPythonには一つのことをするのに複数のやり方があるのはご法度って考えがあったはずだし
開発陣の頭がボケてるとしか思えん
マッチでもスイッチでもいいが、CPU内では比較命令をそのたびにしてプログラムをジャンプすることでロジックをスルーする。
branchかなあ
複数に分岐する意味も最初から持ってる
でもアセンブラ的にはブランチは条件ジャンプと同義、、、
>>206 速度は場合によるようだね
ifのほうが早いケースもある
print(mes, file=(f, sys.stdout))
みたいなことができればいいのに
複数箇所にwrite()するクラスを用意すれば簡単にできるけど
ちゃんとしたアプリケーションならロガーを使うし
簡易的なスクリプトならpythonの出力をteeするので
普通はやらない
ログではないんだよな
結果をファイルに出力しながら、経過の情報を画面に出力する
所要時間はこれだけでした、みたいな両方に出力したい内容は両方に出す
>>216 であれば余計に1つのprintで処理する内容じゃないから
違う形の抽象化を考えたほうがいいよ
どういう形の抽象化がいいかは将来的な変更の可能性や
コンフィグ可能にしておく要素によって変わってくる
いや、同一内容を2箇所に出力できれば片付く問題なんよ
>>216 経過情報や所要時間はこれだけでしたみたいな出力は一般的にはログって言うんだよ
>>219 printで2箇所に出力したいなら
>>215に書いてるように
簡単にできるんだからそうすればいいんじゃない?
いい設計ではないけどね
logは記録に残すもので、画面にだけ表示して消えていいものはlogとは言わない
用語の定義はどうでもいいんだよ
こういう機能があると便利という提案に対して、
それはこの機能でカバーできるから不要であると反論するならば、
全てのケースでカバー可能という悪魔の証明に挑むことになる
代替の方法はあまり良くなくて、提案どおりが最適なんだから、
反論の間違いを認めないと何も進まない
また時刻の頭に0が入っていないとかいう馬鹿と同じ馬鹿か
あるソフトウェア会社にテスターとして入ったが、
メカ音痴、通信音痴の詐欺人材である。
仕事をやったフリをするのが難しいので、
バグを発見した際はすぐに報告せず、
ストックしておいて小出しに報告するやり方でしのいだ。
なにか問題が発生した際は、
知らない、オレじゃない、アイツがやった、もう済んだこと
を貫徹する現場猫を
だれか教えて。
実行環境はJupyterLab Python3.6.3
今までしっかり動いていたが今朝になって急にPyiCloudがエラーを吐くように。
PyiCloudFailedLoginException: ('Invalid email/password combination.', PyiCloudAPIResponseException('Service Temporarily Unavailable (503)'))
ちなみに同じIDとパスでiPhoneやPCのWebからはログインが出来てる。
これうちだけの環境で起きてるだけかな?
>>230 >>230 レスの意味がわからん。
一応、昨日の遅くからようやく開発元が認識をしたらしい。
どうもアップル側のセキュリティの方法が変わったとのこと、しばらく対応まちだな。
>>229 seleniumのwebdriver-managerもそうだけど、こう言う「間を介する」モジュールって片方のアップデート次第で不都合起きるからめんどくさいよね。
windows = gw.getAllTitles() ←windowsはlist型と表示されてる
for window in windows: ←windowsはリスト型なのに、windowがAnyになる
これなんでAnyになるのか原因わかる人いますか?もう全然分からない・・・
ただリストの中をwindowで回したいだけなのに・・・
>>234 何を悩んでるん?
型を気にしなくていいのがPythonを使う最大の強みじゃん
>>234 Listの各要素はなんでも持てる型だからAny
>Any
>制約のない型であることを示す特別な型です
実際にリストに入ってるデータの型名併記
for window in windows:
print(type(window), window)
>>233 どうもサードパーティらiCloudに接続する方法を根本から変えているっぽくて、かなり大幅な改変が必要とのこと。 正規のライブラリを使っていないアプリケーションでは大規模に影響がでているはず。
とはいえ、もうRuby界隈の方は対応終わってるらしく、方法も公開されているから、Pythonの方も数日の辛抱という感じなのでは?と思っている。
Appleが許可してない不正な方法でアクセスしてるんだから何が起きても文句は言えんよね
HTTP 503が返されてるのに'Invalid email/password combination.'扱いにしちゃう雑な作りのほうが気になる
icloudってiPhoneなくてもログインできないと詰むからガバガバなんだよね
今時あんなガバガバそうそうないぞ
pythonで不思議なのがif文
例えばこんな感じ。
name = input()
print("Hello " + name)
if name == "python":
print("Welcome")
else:
print("Goodbye")
このケースは二つだけのケースだが
三つのケースはelse:を追加
これって例えば誕生日きくときに
ifで1月
elifで2-11月
else12月。
これであってる?
なんかかなり面倒だからなんとかしてほしいw
あ、そっか。
まとめればいいだけだわ。
解決しましたw
2-11をまとめるとスッキリするねw
マッチつかおっとw
list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []
for i in list:
match i:
# 2 の倍数を格納
case i % 2 == 0:
list_mult2.append(i)
# 3 の倍数を格納
case i % 3 == 0:
list_mult3.append(i)
# その他
case _:
list_others.append(i)
上記訂正
# 分割する数字
list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []
for i in list:
match i:
case i if i % 2 ==0:
list_mult2.append(i)
case i if i % 3 ==0:
list_mult3.append(i)
case _:
list_others.append(i)
#これでよし!w
switch文かなり便利やな。
match beer_style: # Pilsner, IPA, Hazy IPA and others
case "Pilsner":
result = "First drink"
case "IPA":
result = "I like it"
case "Hazy IPA":
result = "Cloudy and cloudy"
case _: # ワイルドカードパターン
result = "I like most beers"
こんなに簡単にできるんだ。
今までif文がばからしいww
fall-throughしないから6の倍数のやつがダメだろ
if elif elseを置き換えるだけではmatchにする有り難みがない
もっとアクロバットなことができるけど、
そんなことをしたらpythonでなくなる気がする
day = 3
match day:
case 1:
print("今日は月曜日です。")
case 2:
print("今日は火曜日です。")
case 3:
print("今日は水曜日です。")
case 4:
print("今日は木曜日です。")
case 5:
print("今日は金曜日です。")
case 6:
print("今日は土曜日です。")
case 7:
print("今日は日曜日です。")
case _:
print("無効な日です。")
fruit = "apple"
match fruit:
case "apple" | "banana" | "cherry":
print("これは一般的な果物です。")
case "kiwi" | "mango":
print("これはトロピカルフルーツです。")
case _:
print("これは知らない果物です。")
複数のマッチ。
アホだ
他言語ではswitchはバグの元って忌み嫌われてるのに
今になってわざわざ導入したPython陣営の愚かさよ
>>251 match 文はどう?
使い勝手がよいんだがw
>>250 キウイはトロピカルフルーツではないです
バナナはトロピカルフルーツです
>>252 breakを書かないのが気持ち悪い
やはり条件分岐はifに勝るものなし
switchにbreakがあるのが自然な感覚なら、if文もbreak要るやろ
アセンブラと一対一対応なただのジャンプ命令を高級言語にしただけなんだから
>>255 多分に感覚的なものだけどね
ifはelseというキーワードにより分岐から分岐に処理が流れることはないとはっきりわかるからbreakは不要
switchはそれがわからないからbreakがないと気持ち悪い
>>250で言えば、2個めのcaseからはelse caseとする設計なら安心できる
この場合は、と書いてるのに、それ以外の場合に処理が突っ込んでいくのが異常
自然言語として読んでそんな解釈する奴は皆無
C言語のswitchは実質goto文で、忌避すべき悪しき構造
>>257 C、Java、JacaScriptという錚々たるメンバーでbreakが要るんだからしょうがないじゃない
あとChatGPTに聞いてみたら、下記の記述があったけどこんなのが一般的とか言われて俺もまだまだだなと思った
-----
Pythonには switch 文はありませんが、代わりに辞書を使った条件分岐が一般的です。この場合、各条件が明示的に処理されるため、break は不要です。
switch_dict = {
1: lambda: print("処理1"),
2: lambda: print("処理2"),
}
switch_dict.get(value, lambda: print("デフォルト処理"))()
PHPでPYTHONやると語尾が気持ち悪くなるW
だっていつもコロンだか、セミコロンつかうじゃん?phpって
だから最初わしも慣れるのに苦労したW
>>258 アホはこれみてpythonは関数型言語(キリっ)とか言い出しそう
同じ階層のlib.pyにdef func()があって、main.pyから
import lib
だけでfunc()使えなかったっけ
lib.func() なら使えるし、
from lib import func でも使えるけど、
import lib だけでも使えてるケースがあるのに違いが判らん
サンプルを書いてみると使えないんだけど、
実際に動いてるコードでは使えてるとしか思えないんだよな
lib.py の最後に
__builtins__['func'] = func
でいけるかな
lib.py の最後に
__builtins__['func'] = func
でいけるかな
結局、動いてはいなかった
ImportError: cannot import name 'func' from 'lib'
というエラーにはならずに、とりあえず走り始める
で、funcを呼んだタイミングでエラーになるけど、
concurrent.futures.ThreadPoolExecutor.submit の先にあるので、
エラー表示は出ないし処理も止まらないだけだった
何なら、import lib すらなくても同じ動作になる
エラー出ない問題は
future = concurrent.futures.ThreadPoolExecutor.submit(func)
future.result()
こんな風にすると解決する
concurrent.futures.ThreadPoolExecutor.submit(func).result()
でもok
但し、result()を評価すると完了を待つので同期処理になってしまう
多重処理で高速化できないので、デバッグが終わったら外す
>>273 この福祉系キチガイのせいでしょ
>>87 seleniumやりたくてpython始めたけど
エラーばっかしで嫌になってきた
ラジオボタン選択したいだけなのにうまくいかなくて調べてったらこんな事になった
element = driver.find_element(By.ID, "spAccKbn2")
action = webdriver.common.action_chains.ActionChains( driver ) action.move_to_element_with_offset( element , 1 , -1 )
action.click()
action.perform()
過疎るのは別に問題じゃないけど、課題はS/N比だな
何故内容のないことを書き込みたがるのか
福祉施設からきた知的障害者が荒らしてるよな
>>87 pythonってなんで語尾に;がないの?
この語尾が気持ち悪いw
あとif文やelifが:だけ:があるのが慣れないなw
>>285 お前みたいな馬鹿がいるこの世の中が気持ち悪い
お前みたいな馬鹿が生きていられることになれないなw
>>285 改行コードを終わりと見做すプログラミング言語だから
改行に意味があるというよりは、ブロック構造をインデント任せにしてるからだけど
{と}でブロックが明示されてたらエディタの機能でブロックの先頭と末尾を行き来できるけど、
python専用エディタだとそんなことできたりする?
インデント深いと読めなさすぎて、あの手この手で浅くする
>>289 できないと思うけど
そもそもブロック単位の移動という操作が開発で必要とは思えない
>>285 別に付けてもいいぞ
何なら一行に複数の文も書ける
>>292 Pythonの原作者の悪趣味を勧めるなw
>>288 なんかメインフレーム臭さが漂ってんだよなあ
>>289 vimはできるよ
Pythonでパッと見てネスト構造が分からないようなコードは問題がある気がするがブロック単位と移動や編集が便利なのは間違いない
>>295 セミコロンを付けない言語もそれなりにあるし、Pythonだけがそうというわけではない
最近流行りのだとGoもそう
>>289 改行を文デリミタにするのとブロックの表し方は全然関係ないだろ。
シェルスクリプトとか見てみ。
JavaScriptみたいに自明な場合はセミコロンを挿入するって風にすればいいのにな
そうすればワンライナーとの相性もよい
そうするとめちゃくちゃなインデントするやつが絶対でてくるからな
vs codeで書いてるけど
インデントしてんのにインデントおかしいぞ!って怒ってくる
Pythonを使うには
空白文字が判別できるグリフになってるフォントが必要
>>305 お前みたいなのがこのスレを破壊したって
自覚持ってくれ
>>306 お前みたいに嘘を撒き散らす馬鹿がいるからだろ
>>303 タブと半角スペースが混じっているだけじゃないのか?
フォントでなくエディター側でも解決できる
VS Codeだとタブ文字やスペースを見やすくする設定があるはず
全角スペースはフォント側で可視化されてるものを使うと便利
全角スペースをstrip()が削除するんだから、それがスペースだということは知ってるんだよな
なんでインデントに使ったらいけないのか謎
個数で判定するか幅(それも1:2か3:5かそれ以外か)でか、で自転車置き場の屋根より長い議論になることが見えてるから
個数でも幅でもなく、組み合わせ
TABとスペースを混ぜた時と同じ挙動
C言語のブロック記号{}に全角空白もアリにしてと言ってるようなもんだな
日本語の全角空白含めても日本人の一部にしかメリット無いです
インデントはタブのみ許可
タブはインデントのみ許可
みたいにガチガチにしてしまえばいいのに
そこだけは非常に残念
タブの存在しない処理系とかあるんじゃないの
知らんけど
TAB使うなって言うからスペースでインデントしてるけど、
エディタがデデントに対応してなくて無駄に大変
なぜ対応のエディタを使わないのか
VSコードでいいだろ
>>313 スペースのことを「SP」と書いている人を初めて見たわ
Pythonが誕生したころは、まだ1バイト使うか4バイトも使うか記憶装置の容量では悩むレベルだったから、タブを使うか半角スペースを複数個使うかで
日本人の一部にしかメリットなくても、残りの誰にもデメリット無いなら、
それはメリットしか無いのでは
ここで質問しているやつはPythonの資格対策本でも買って勉強しろ
uvはactivate必要なのか
pyenvとpoetryでいいわ
既存のファイルを'w'でopenする時に、他のプロセスがアクセスしているとOSErrorになることがある
ならないこともある
ファイルが大きいとなるっぽい
なんとか強引に開けないものか
width同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
>>330 windowsならWin32 APIでsharing modeを指定
>>331 bin packing problemでググれ
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(30, 'D')))
で
['2024-11-01' '2024-12-01' '2024-12-31' '2025-01-30' '2025-03-01' '2025-03-31' '2025-04-30']
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(31, 'D')))
で
['2024-11-01' '2024-12-02' '2025-01-02' '2025-02-02' '2025-03-05' '2025-04-05']
なんだが
['2024-11' '2024-12' '2025-01' '2025-02' '2025-03' '2025-04']
が欲しい
>>333 月ベースで計算したいのになぜ日ベースで計算しようとするのか
In : np.arange(np.datetime64('2024-11'), np.datetime64('2025-05'))
Out: array(['2024-11', '2024-12', '2025-01', '2025-02', '2025-03', '2025-04'], dtype='datetime64[M]')
関係ないけど、excelで日毎のデータが何年分もあって、
グラフの横軸を年月で表示しようとしても微妙にうまく行かない
>>334 ありがとう
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(1, 'M')))
でエラーだったからどうしたもんかと
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), dtype='datetime64[M]'))
これでもうまくいったわ
>>332 回答ありがたいんだが番号振られてあるから順番に上から下に敷き詰めたいんだが
下記の内容で Microsoft Copilot に聞いてみた で教えてくれる
------
pythonでwidth同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
番号振られてあるから順番に上から下に敷き詰めたいんだが
pdfの高さが決まってて、そこに入るだけ順番に入れてくだけの話?
if トータル高さ > pdfの高さ:
次のページに
というだけのアルゴリズムでいけるのでは
聞いてみた結果
--from PIL import Image
from reportlab.lib.pagesizes import portrait
from reportlab.pdfgen import canvas
import os
# 画像が保存されているディレクトリのパス
image_dir = 'my_folder'
output_pdf = 'output.pdf'
# 画像ファイルのリストを取得し、ファイル名順にソート
image_files = sorted([f for f in os.listdir(image_dir) if f.endswith('.jpg')])
# 画像の幅を取得(すべての画像が同じ幅である前提)
first_image = Image.open(os.path.join(image_dir, image_files[0]))
width, _ = first_image.size
# PDFキャンバスの作成
c = canvas.Canvas(output_pdf)
# 画像をPDFに追加
for image_file in image_files:
image_path = os.path.join(image_dir, image_file)
img = Image.open(image_path)
img_width, img_height = img.size
if img_width != width:
raise ValueError(f"Image {image_file} has a different width: {img_width}")
# ページサイズを画像の縦サイズに設定し、新しいページを追加
c.setPageSize((width, img_height))
c.showPage()
# 画像をPDFに描画
c.drawImage(image_path, 0, 0, width=width, height=img_height)
# PDFの保存
c.save()
--tabがわからん
# 画像をPDFに追加
for image_file in image_files:
image_path = os.path.join(image_dir, image_file)
img = Image.open(image_path)
img_width, img_height = img.size
if img_width != width:
raise ValueError(f"Image {image_file} has a different width: {img_width}")
# ページサイズを画像の縦サイズに設定し、新しいページを追加
c.setPageSize((width, img_height))
c.showPage()
# 画像をPDFに描画
c.drawImage(image_path, 0, 0, width=width, height=img_height)
# PDFの保存
c.save()
datにはインデントのスペースも書かれてるんだけどな
表示のレンダリングで落としちゃうだけなので、
ブラウザに先頭のスペースを無視しないモードがあれば済むのに
【ナゾロジー】サイコパスは「痛みを伴う失敗」から学習できない! [すらいむ★]
http://2chb.net/r/scienceplus/1731838156 某キャリア回線アプリのON、OFFをAPI送信で叩きたいけど
POSTMANでは正常に叩けてアプリに反映されれるけど
python経由だとレスポンスが正常だけどなぜかアプリ側に反映されない。
POSTMANと全く同じヘッダーつけてもダメだった。
わかる方いるかしら?
EchoAPIを使い始めて、このツールのおかげでAPIテストが効率化されし、機能開発にももっと集中できるようになった!
>>346 自己解決 APIが違った。
似たようなAPIがあって確認ミス
ハイパーモダンpython読みにくいなこれ
翻訳は悪いとは思わない
説明対象になる要素が出てくる順とか元の文章の流れが悪すぎる
これか。何か嬉しいことが書いてあるのかな。
cjolowicz.github.io/posts/hypermodern-python-01-setup/
科学 + ンニュース 5ch
保守派もリベラル派も「自分の政治的信念に合致したニュース」を信じやすいという研究結果 [すらいむ★]
http://2chb.net/r/scienceplus/1732447647 コメントも含めて読むと
陰謀論が収まら無い理由が判明する
byteからstrへの変換がdecodeなんだから、
open()のencodingはdecodingが正解なのでは
encodingは変換という意味だから、いいのでは
日常生活においてはいいけど、
Python のドキュメントに当たるときは、あやふやにしていると混乱する。
'r'でも'w'でもencoding=なんだから、そういう意味じゃないのは自明だったな
encoding はファイルのエンコードやデコードに使われる text encoding の名前です
There are a variety of different text serialization codecs, which are collectively referred to as "text encodings".
Streamlitアプリのパッケージ管理するなら、今ならuvがいいですか?
まだpython始めて1年くらいで、メインはNodejsフロントエンドなんですけど、今までconda使ってたんですが、しばらく触ってないとどの環境でどのアプリのどのブランチ触ってたかわかんなくなります、、、
環境の管理はまだ未成熟な気がするし、
何もしなくてもいい気もする
何かしら管理はしないと、
あとで触ったら時にいつのまにか動かなくなってたりしませんか?
uv触ってみました、良いですねこれ
仮想環境アクティブにしなくてもそのままスクリプト実行できますし、lockファイルがクロスプラットフォームなのがいいです
本当にnpmみたいです
AIでpythoのプログラム作成しているんだけど
完成したから、おしゃれなコメントをつけてって入れたら
なんかずっと返ってこない。
すごい、おしゃれなコメントを作っているのかな
おしゃれコメント生成はやめどきが難しい
# 画像やテキストを解析し、結果をお届け # ファイルがドロップされたら画像を読み込む魔法
# ここからがメインの舞台 # 画像を一瞬でBase64に変身させる # 新しい会話をエレガントに開始
driver.find_element(By.XPATH, ***).send_keys("***")
driver.find_element(By.XPATH, ***).send_keys("***")
でフォームに入力し、書き込みボタンを押して投稿するものを書いたのですが、
入力されないしボタンも押されず、固まっていることが頻繁にあります
これを防ぐ方法はありますか?
初心者なのでよく分かっていないですけど、コマンドプロンプトには何も表示されていないです。
書き込みできないまま止まっていて、getで再度サイトにアクセスすると書き込めるようになるときがあります
input()とかbreakpoint()とかで止めながら試す
>>368 ありがとうございます
後ほど試してみます
どうしてもseleniumを使い続けなきゃいけない理由がないならplaywrightとかもう少しモダンなやつ使ったら?
send_keysが思ったように動かないとか手動でwaitいれなきゃいけないとか2020年代にする話じゃない
RPAなんかも、細かく指定する原始的なのと勝手にやってくれる抽象的なのが同居してる
一旦苦労しといて、新しいのは楽だぜいとステップを踏んだ方がきっと楽しい
(1)用語をいちいち意味不明なモンティパイソン用語に置き換えてあるのがうざい。それ以外も趣味悪い置き換えばかり。
(2)参考書でページ跨ぐ時にインデントの位置が読み取りにくい
#普通のクリックが効かない時(紐づいてるスクリプトを実行)
#---------------------------------------------------------------------------
btn=driver.find_element(By.CLASS_NAME,'xxxBtn')
driver.execute_script('arguments[0].click();', btn)
#同じ名前の要素がある場合- 2つ目をクリック
#---------------------------------------------------------------------------
elems=driver.find_elements(By.CLASS_NAME,'xxx_btn')
elems[1].click()
要素が存在していても、フォーカスが違う時はsend_keysなどは動かない
親要素をクリックするとかしてから行う
oya=driver.find_element(By.xx,親要素)
oya.click()
--
フォーカスが別フレームなら戻すとか
is_displayed, driver.switch_to.frame, ActionChains(キー送信等で使う) とかも参照して
(いつもと違うのが(ポップアップみたいのが)、出てくると、あれ動かないみたいになる..はまるのをつぶすのはめんどくさい)
あと、XPathはHTMLの構造に依存するから、表示とかが変わると、同じにはならないから、使わない
>getで再度サイトにアクセスすると書き込めるようになるときがあります
これに当てはまる?
ハイパーモダンpythonは後の章に行くにつれて
話が繋がってくる
最初がきつい
コボル、BASIC から初めて次にC/C++にしたが
考えるとPythonのカッコ使わない記述は古典すぎる
コボル用の原稿用紙みたいなマス目の紙がうってたが
昔風の記法は紙に書くとかエディタにカッコの認識機能がなかったとかで
昔はよかったがいまは逆に不利では
COBOLのインデントはただの見た目。pythonはインデントで認識するから、
見た目は同じでも違う
>>364 人の目にページが表示されるまで細かくソースが変化するサイトがあって期待したエレメントを誤認識してクリック空振りとかあり得る
自分はクリック処理に入る前にページを完全に読み込んだか判断するようにしている
例えば「ここをクリック」のようなページ読み込み完了が確認できるような文字列がソースにあるか条件にし無ければwaitしてループみたいなの(できれば無限ループ避けに回数超えたらエラー終了とかいれて)
>>377 何ゆってんの
カッコが要らないことはプログラミングの革命だよ
カッコをタイプするのに全プログラマが消費している手間と時間が年間どれだけになるか計算しろ
IDE的なものを使ったことがないのかな?
IDEがサポートしてくれない手動アンインデント・手動フォーマットが必要なPythonのほうがタイプ量は多くなるぞ
もともとはカッコがなかったはずだ
アセンブラ FORTRAN Pascalとか
古典的なほど一行一文で必要性がひくい
364ですが皆さんアドバイスありがとうございます!
時間のあるときにいろいろ試したいと思います
>>380 馬鹿過ぎて話しにならない
そんな理屈だとBASICとかが革命ってことになるだろ
>>385 タブや改行と半角スペースを混同して語るのは痛いな
BASICが詰めた見た目にできるのは構文解析が優秀だからだぞ?
アセンブラなんて1行、1命令だから。
>>377 コピペした時のインデントが人間にしかわからんねえしな
欠陥言語だよ
BASICでインデントすると、貴重なメモリがインデント用に減っていく
>>389 ブロックを括弧にしたのは可読性が下がったので何とも言えない
START、ENDはくどいがこれはこれでわかりやすい
>>389 ブロックを括弧にしたのは可読性が下がったので何とも言えない
BEGIN、ENDはくどいがこれはこれでわかりやすい
byteをhex()で変換すると長い文字列になって読みにくいので、
2文字ずつに区切る方法を誰か書いてないかなと検索したら、
AIが横取りして完全解答を示してきた
>>397 括弧は単に慣れているから変に思わないだけ
>>398 言い方を変えると慣れない
つまり使いづらいし分かりにくい
パイチョン嫌い
でも開発環境めっちゃ整備されてるな
perlがここまで来ていたら
perlとは方向性がかなり違うからなあ
短期的にはperlの方が楽だけど、結局長い目で見るとpythonできっちり書いた方が楽
perlは例外的なケースもよしなに吸収しといてくれるけど、
pythonに移植してみると気付いてなかった問題が顕在化したりする
Pythonはwindowsで長いパス(最長はしらんがおそらく3万字とか)に対応してるので
ほぼその目的で利用
C/C++とそれに似てるPHPなどのほうが使いやすいのでこっちで書いてから
AI翻訳+修正すればいいとわかった
NASがext4なので、フルパスで255byteしか使えない
普通にきつい
PHPはCと表面上は似てるけど全然違う詐欺みたいな言語だからな
科学 + 5ch
【AI】AIはわずか2時間の対話で人間の性格をコピーできる [すらいむ★]
http://2chb.net/r/scienceplus/1733576027/ コメントに面白いことが書かれている
最近のプログラミングというのはAIに書かせたコードを切り貼りする作業なわけだが、
その点ではブロックをインデントで表現するスタイルはあまり相性良くないと思うわ
コピペ後に手修正が発生することが多い
もう一息でAIによる提案を反映するところまでAIにお任せで問題なくなるだろうけど、現状ではまだ人手での反映の方が結局早いことが多いんだよな
b = b'\x00'
with open('out.bin', 'wb') as f:
print(b, file=f)
TypeError: a bytes-like object is required, not 'str'
なんで駄目なんだろう
>>410 そりゃあなた、print()は文字を表示する関数ですから
文字に変換できないオブジェクトを渡すとそうなります
普通にf.write(b)じゃダメなの?
"b'\x00'" という文字列に変換してwbする挙動になるのか
textはwrite使わずにprintの方がいろいろ便利だけど、
bytesで便利なことはなさそうだから、普通にwriteだな
AIに聞けば、おしえてくれる。聞くまでもないんだけど
このエラーは、print関数を使ってbytesオブジェクトをファイルに書き込もうとしたために発生しています。
print関数は文字列を出力するために設計されていますが、bytesオブジェクトを扱う場合には文字列ではなくバイト列として処理する必要があります。
ファイルにbytesオブジェクトを直接書き込むためには、
file.write()メソッドを使用する必要があります。
このへんもperl脳なんだよな
openする時にテキストかバイナリか指定して、
出力はなんでもprint
暗黙で変換が入るとかしない
a bytes-like object is required, not 'str'
'str' ではなく、bytes-like オブジェクトが必要
ってエラー文がおかしくないか。
>>412 や AI の説明は
bytes-like オブジェクトではなく、'str' が必要
と読める。
pythonで数式処理システム丸ごとパクリました
rustもいるのでモジュールはこっちでできます
というのはpythonの幸運だったんだろうな
>>417 そうなの? オレは他の訳を思い付かないのだけど、正しくはどう訳されるべきなの?
>>419 スマン。おかしいのは訳でなくて解釈のほう。
>>419 その解釈で合ってる
「バイナリ書き込みモードでopenされたファイルなんだからバイナリデータを寄越せ。printじゃstr型データしか来ねえから却下」とPythonは言いたいのだと思う
>>416 センスの悪いエラーメッセージでも、あとからエラーメッセージを変更すると混乱が生じる。
バイナリーデータをbytes-like objectと呼んだり、テキストデータをstrと呼んだりしているのは、Pythonそのものの言葉のセンスが悪いだけ。
bytes-likeもstrも妥当でしょ
bytes型やbytearray型などバイト列を意味するもの全般を渡すことができるんだし
実際に渡されたもの (str型) については具体的な型名が分かるんだから、これを「テキスト」のような抽象的な表現にする必要もない
それとエラーメッセージについては過去との互換性は重視されない
言語のバージョンアップの際に、より分かりやすいものになるよう変更されることがある
これは他の言語あるいはライブラリでもそうじゃないかと思う
>>416 君はprintの方にしか目が行ってないからそうなる
bytesを要求してるのはfだ
誤ってprintを使っちゃってるからfにstrがわたってる
>>415 の言う暗黙の変換なんてどこにもない
むしろ暗黙の変換が酷いのはperlの方だ
自動変換にするかバイナリ1本化でいいとおもうのだが
実装はしらないが
文字列型といっても中身はバイナリで追加でエンコード型が付与されてるだけだろ
プログラムする側が何コードか把握してるか判別機があればすべてバイナリで問題はない
>>426 暗黙の変換はされてる
print関数のリファレンスに書いてある通り
バイナリモードのファイルオブジェクトはprint関数のfile引数として使えないという制約があるにも関わらずそれをprint関数独自ではチェックせずファイルオブジェクト側でチェックしてるから不親切なエラーメッセージしか出せない
多少改善はされたけどPythonのエラーメッセージの品質は所詮こんなものだからプルリクするのでなければ諦めれ
pythonのこの辺りの処理はゴミ
python2との互換性を壊してまでいたのがこれ?って感じ
大体わかっとけばあとは生成AIに任せておけば楽勝だからお前らみたいに細かい勉強してないわ
むしろこういう細かい部分こそAIが苦手で人間が理解しておくべきこと
プログラミングガチ初心者なんですけどpython勉強するのに良いサイトとかってありますか?
出来れば無料で使える奴が良いです^^;
これバグだろ
いまだ治ってないのか
デストラクタで最後にファイル書き込みしようしたらopenが無いみたいな例外出て
この記事のようにimport atexitでできたが
Python: グローバルスコープにあるオブジェクトの __del__() でインポートしたときの挙動について
グローバルスコープにあるオブジェクトの __del__() で別のモジュールをインポートしてるとき、そのオブジェクトがプロセス終了時に破棄されると場合によっては例外になる。 ただし、これは Python の仕様かというとかなり微妙で CPython の 3.x 系でしか同じ問題は観測できていない。
カオス
>>437 Google Colab とかノートブックとか初っ端から謎ワードの連続で無理...
Colabでなく自分のPCにPythonの実行環境を入れるても良いと思う
公式のWebページから自分のPCに合ったもの (例えばWindowsならWindows用のインストーラー) をダウンロードして実行する
Pythonは実行環境が必要で、例えばPythonのプログラムを書いたとしても、それを読み取って命令を実行するものが無いと何もできない
それが実行環境
例えば「PythonがインストールされているPC」のような言い回しをした場合はこれを指す
Colabはざっくり言えば「Web上でPythonコードを書いて、Web上で結果を確認する」もので、PythonをインストールしてないPCでもPythonを体験できるというもの
ただしGoogleでのアカウント登録などの手間は要る
Colab自体の説明もそのページにあるし、それに従っても良いけど、自分のPCで動かしても良い
自PCで動かす場合は、プログラムを書くための道具 (エディタ) として VS Code をインストールするのをおすすめする
プログラムの書き方とかはColabでも自分のPCで実行するのでも変わらないので、「Colabを使わないとこのガイドは役に立たない」ということはないはず
よく知らん世界で変数に値が代入されてもどうでもいいからな
眼の前の細かい問題が解決されないことには何の役にも立たない
>>442 ところがどっこい
AIの登場で馬鹿でもコードが書ける世の中になりました
むしろITエンジニアは仕様をAIに的確に指示する国語力が問われます
過去に誰かが書いたことのあるコードを真似できるだけなんだけどな
どうせ似たようなことばっかりしてるだけだから、それで足りてしまう訳だけど
Googleの2024年の新規コードの1/4はAIによるもの
これからますます増えるだろうな
>>444 それでいいのよ
俺ら凡人がPythonで書きたいコードなんて、誰かしら先人が既に書いている
それを検索してコピペして手直しする作業をAIがやってくれるんだ
プログラミングは必須の知識だとして小学校で教え始めても、
ソロバンを教えてるのと同じようなことにならないか
でもpython使うなら
新しいアルゴリズムを開発したいところ
俺も量子計算頑張る
>>447 > ソロバンを教えてるの
とは何。寓意が分からない。
>>455 ひとへに風の前の塵に同じ。
ひとへに計算機の前のソロバンに同じ。
ひとへに何の前のプログラミングに同じなの?
算盤がちゃんとできる人は暗算も得意だから無駄ではないだろ
小学生にはプログラミングよりむしろソロバン教えたほうがいいだろうな
>>447 プログラミングは必須の知識だとして小学校で教え始めても、句読点を教えられても打てないお前らと同じようなことになるの?
サイコパスの脳の違いを発見。一般の人に比べ線条体が大きいことが判明
karapaia.com/archives/52313287.html
>>443 馬鹿は何をどうすれば良いかすらわからんから無理
AIに結果だけでなく 云々って やり取りしてたら
それが大事なことですって返されたw
現状は頭の悪い人が使いこなせるものではない
コードを生成する以上は当然何かしらの結果を求めるわけでそれが正しいかどうかはAIにもわからない
その関数が正しく動いても仕様を正しく満たしているとは限らないのだから
>>465 >>463みたいな何が正しいかわからない馬鹿にはありがたがられている
自動翻訳と似たようなもんで
書けないけど読める程度の能力は無いと、合ってるのか全然判らん
コードならテストも一緒に生成させて、保証済みにすることはできるけど、
今度はテストが正しいのかどうかが判らん
自分で書ける人が楽するために使うのが効率いいね
書いてもらったコードに容赦なく突っ込みを入れて謝らせるのが快感
AIは人間と違っていくらダメ出ししてもへこたれたりコンプラ窓口に通報したりしないからな
>>460 日本語には本来句読点は存在しないと教わらなかったのかおまえ
>>469 どこまで進歩を否定できるかね。
・プログラム言語にPythonは存在しなかったと教わったので、アセンブリで記述する。
・ソフトウェアは存在しなかったと教わったので、ハードウェアで実現する。
・火を使わなかったと教わったので、生肉食って凍死する。
CPythonってコードの処理部分にエラーメッセージ個別に直書きしてるよね
えぇんかこんな作りで
ライブラリなんかは大多数がそうやろ
Python以外の言語を含めても
UIのラベルとか、多言語対応が必要とか、そういうものでなければエラーメッセージは直書きでも基本的に問題ない
どこかでメッセージ一覧を定義して、それを各所から参考して……ってコードサイズが不必要に膨らむだけ
条件の直下のメッセージは確認しやすいけど、参照だとその先に飛ばないと内容を確認できないし、エラー理由とメッセージが合ってないなどの問題に気付きにくくなる
同じソースファイルやモジュール内でならダブりを減らすために参照する、ということはあるけどね
その辺はある程度柔軟にして良いと思う
プログラムの理解は必要だけど
生成AI活用したらめちゃくちゃ生産性あがるね
いい時代だ
細かいif文の条件設定とかまだ間違えて出してくるけど大枠の処理の流れとかは俺より速く賢いの出してくる
とりあえず大雑把でも動くものをサッと出してくれるのが本当に助かる
あとはテストしながら煮詰めて行けばいい
自分で一から書くと調べものだけで一日潰したりとかザラだからな
「コードを生成する」レベルだと俺たちの生産性が上がる程度のことなんだよな
もっと大きな視点で生成AIを語らなきゃ
「サービスを作る」
とか
「アプリを作る」
という時点で見ると今の生成AIはまだまだ物足りないね
進化の余地はまだまだある
プログラムとデータベースとサーバーのスキルがあれば
大抵のものは一人で作れるね
これからの時代、発信力とアイデアで勝負ですね
データベースとサーバーに関するものしか作れない
webアプリが作りたいならwebの知識が要るし、
ハード制御したいならハードの知識がいる
よそでやってるサービスを丸ごとパクってくるのがコンサルの仕事だったがこれがなくなったな
新しいものは誰にとっても大変
美術界芸術界デザイナーと同じことやな
パクリが偉そうにして必死で周りから盗んでる
re.searchがコンパイルしても速度でperlに負けるなあ
pypyってずっと「ぴぴー」だと思ってた
ぱいぱいなのね、エロい
そいついつもクソみたいな記事貼るからmynaviでNG登録しとくといいぞ
マイナビ登録してみたけど、いろいろ作りの甘いサイトだな
ログインしないつもりだったのにログインしている
ログアウトが見つからない
サイトから移動しますかの確認がいちいち出る
必要条件が満たされないとボタンが押せない仕組みになっていない
ユーザーのアイコンに1の表示が出っぱなしで何のことか判らない
あまりIT技術に詳しくない人が作ってる
個人情報お漏らししてるし
IT関連の会社ではないだろ
>>489 まるでQiitaやFacebookやXだな
やっとログアウト方法見つけた
再ログインすると、ページが見つかりませんと表示される
会員アイコンをクリックするとマイページの階層に飛ぶのが本来の筈なのに、
その下の登録情報変更に飛んでそこから戻れない
PythonというよりはQtの話かもしれんないけど、PySide6を使ってるのでこちらで質問
ウィンドウ内にあるウィジェットの枠をドラッグで調整したいときの方法が分からないです
↓の動画のような動きをしたい
https://streamable.com/k87ct0 動画はエクスプローラーの例で、左がツリービュー、右がリストビューで、その間をドラッグでサイズ調整したいんです
Windowsアプリではよくあると思うんですが、この機能の名称が分からず検索しても見つけられなかった
参考になるサイトやサンプルがあると助かるのですが、どなたかご存じの人がいたら教えてくださいm(_ _)m
QSplitter を使う
AIに聞くにはこんな感じで
'PySide6 一つのフォームに 2つのwindow領域を作る例 左右の並びで
領域はサイズ調整可能'
>>495 サンクス!
Qt Designerでそれらしいコンテナが見つからず、slideとかで検索してもQSliderとか出てくるし、困ってた
Qt Designerでスプリッターを使うには、ウィジェットを選択して右クリックからなのね
これでGUIアプリの作成にチャレンジできますわ
AIも参考になりました
字幕表示してて、長さが画面幅を超えたら改行したい
プロポーショナルフォントで全角半角入り混じった表示幅なんか、
どうやったら取得できるだろう
True Typeフォントの使う文字の座標系を引っ張りだしてきて
その最小と最大の座標を取得して、フォントサイズのポイント相当のドット幅を計算する
使うすべての文字を1文字ずつ計算
って やればできるが現実的でない...よね
単純に 12ポイントが16x16ドットで計算するとか
>>498 Windowsなら表示される文字列全体の表示幅を還すAPIがあるのでそれを使う
pythonだけで適当にやるなら実際に描画する前に表示されないメモリDCに先に描画して
背景と比較してどこまで描画されたかを調べて表示幅を取得すれば良いんじゃね
角括弧[T]構文とかなんか汚ねえな
ジェネリックだのアノテーション方面から汚れてきてるな
すでにPerlより汚いのでは
前方参照とか__init__()だの
内包表記の書き方は覚えてても、内包表記という名称をいつも忘れる
comprehensionの、もっと良い訳はなかったのか
python初めて触れたけど、インデントが判断、ループブロックの意味を持つってクソすぎだろw
やっぱ、レス見ると同じ様に思ってる奴多いな。
どうしてこうなったw
インデント自体はクソだけど平易に書くように働く点で有能
そういう要素が多い
lambdaもそうでdefで書くようになる
行内ではフリーフォーマットだけど、行頭のインデントだけは厳密
という態度豹変に面食らうんだよな
まあ、インデント間違ってても許される言語の方が実害多い
>>508 > 行内ではフリーフォーマット
がよく分からない。
カラム位置まで指定されている RPGとかを想定しているんじゃね?
しらんけど
Pythonでスクレイピングの質問よろしいでしょうか。
IPローテーションでインスタライブの情報を取得したいと考えています。
かつて、PythonでInstagramの非公開APIに繰り返しアクセスし、インスタライブの配信情報を取得していましたが、IPブロックのせいか前述の方法でアクセスできなくなりました。
bright dataのような有料サービスを利用し、IPローテーションでアクセスを試みたいのですが、Instagram関連のAPIに有効でしょうか。
お試しされた方がいらっしゃたら、コメントいただけると幸いです。
アクセス制限されたなら使うべきじゃないんでは
大陸人の思想だな
別に大陸とか関係なくクズはクズよ
最低賃金の仕事してからそう思うようになったわ
話がそれたけどブロックされてるならただのクラッキングだから辞めとけってのが答え
IPローテーションが有効かどうかはpython関係ないしな
今後はblackみたいな完全に機械的なフォーマットに従って書くようになっていくんだろ
ぱいちょんって
とはいえ皆カスタムするから結局バラバラなフォーマットになる
デフォルトの1行88文字制限とかアホすぎるし
今更だが、本屋のコンピュータ関連書籍のトコ、
Python入門書が狂い咲きだね。
敷居が低くなるのは良い事だけど。
>>519 君も著作したまえ。内容なんてどれもチュートリアル丸写しだ。
リスト内包表記は数学の集合の内包的表記から来ている
内包的表記は外延的表記と対になる概念で、要素を列挙するか、要素の特徴で表すかの違い
内包的表記は定義域と命題関数から構成される
{x∈R | 2x}
こう書くと定義域がRで、命題関数が2x
Rに含まれるxに対して、2xで評価されるもので構成される集合
同じことをリスト内包表記で書くと、
[2*x for x in R]
になる
定義域と命題関数の順序が逆なのは、'for' というキーワードの意味と合わせる為だろう
仮に数学と同じ順序で書くと
[x in R | 2*x]
[x in R such that 2*x]
[x in R s.t. 2*x]
こんな感じになっていただろう
言語仕様として微妙なので却下したけれど、
such that抜きでいきなり命題関数が現れるので、読んでも意味が判らなくなった
2*xといきなり書く時点でxは初登場なので、普通に考えるとNameErrorになる
後で出てくるx in Rのxだよと言われても、そこだけ文法が歪んでいる
for x in R に対して 2*xのリストを作る、という順序で読めた方が明らかに判りやすい
間違い。命題関数ってのは平たく言えば条件のことで、Pythonの内包表記のif節に相当する。
例えば [2*x for x in R if x < 5] は数学の内包表記では {2*x | x ∈ R, x < 5} と表記する。同じだろ?
seleniumはパスワードとかcookieを保存するとかより、
profileそのものを保持した方が無敵だったけど、
何かの拍子にprofile無効になっちゃうな
英文テキストを入力として,ロンゲストマッチ,というか,最長の部分列を探すプログラムを書きたいのだが,CだとPrograming Pearlsのコラム15にあるのでいいのだが,そのままだとpythonに乗らないし,何かいい方法はないかなあ.
いうほどいまさらか?
なんかいい代わりになるものある?
>>527 それそのまんまAIに聞けばいいよ
手元でGemini 2.0 Experimental Advancedに聞いてみたら見事な回答をくれたぞ
lud20250118180617このスレへの固定リンク: http://5chb.net/r/tech/1726881242/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「Pythonのお勉強 Part74 ->画像>3枚 」を見た人も見ています:
・Pythonのお勉強 Part55
・Pythonのお勉強 Part59
・Python勉強しようと思うんだが、実際どうなん?
・暇だからPythonかjavaScript勉強しようと思ってるんだけど…
・【レッツ】マウマウのお勉強日誌(離散編)4【古漢地獄】
・Python2終了のお知らせ
・名取稚菜「11期の牛窪紗良ちゃんが今薬剤師の国家試験のお勉強もしつつ芸能活動も再開して頑張ってるみたいです」
・【小学生】お母さんの為のお勉強講座160726【総合】
・【英作文】マウマウのお勉強日誌(離散編)3【強化月間】
・【離散に最も】マウマウのお勉強日誌2【近いスレ】
・【離散】マウマウのお勉強日誌【リベンジ】
・絵里「お勉強会withソルゲ組」 2
・ますたーのお勉強中の独り言スレ
・ひろゆき、自身を一刀両断した小島剛一氏(在仏53年の言語学者)に反論 「若者言葉を知らない高齢者」「勉強不足」 ★5 [Anonymous★]
・【TAC 2022年合格目標行政書士講座】行政書士試験のお勉強
・Netflix ネットフリックスで見られる洋画・海外ドラマで英語のお勉強
・python始めたいんだが [無断転載禁止]
・暇だからPython始めるよ
・MacにPythonとかいう最高にアフィ臭い組み合わせ
・精神障害でも受験勉強
・【Python】スクリプト バトルロワイヤル48【pl,rb,php,js】
・一人で麻雀何切る勉強
・くだすれPython(超初心者用) その40
・Python上げVBA下げしてる気持ち悪い奴ら
・初めてココ来たけどpython人気なさ過ぎるだろ。
・go言語、python言語自信ニキ来てくれ
・【IT】「Python」はハッカーにも人気--Imperva
・贅猿征伐の勉強
・くだすれPython(超初心者用) その48【まず1嫁】
・MVNE MVNO 勉強
・javaとpythonってどっちが初学に向いてる?
・Python初心者スレ
・pythonばかり触っていたけどc++に触れてあまりの使いにくさに絶望した
・【悲報】AIさん、日本語からPythonやJavaの綺麗なコードを書いてしまう。絵師の次はIT土方失業へ
・【嫌儲プログラミング部】なんでPythonとかJavascriptばっかりこんなに流行ってるの?
・【IT】最も使うプログラミング言語、Python連覇 COBOL急伸 [田杉山脈★]
・【プログラミング】Python信者論破されてしまうwwww【Python】
・AI作りたいけど、CとC++とPythonのどれがいい?
・【プログラミング言語】「JavaとCの長年の覇権は終わった」人気指標でPythonがついに1位に [すらいむ★]
・【IT】習得したい言語で1位のPython、人気沸騰の理由
・iOSでおすすめのPython開発環境アプリくれ
・Python 2.7.18がリリース ~Python 2シリーズの最終版
・C C++ C# Python JavaScript Java VBA その他
・Pythonをマスターすれば復興君みたいなツールを作ることは可能?
・pythonでキーボードのキー押したら処理を始めるってどうしたらいい?
・Python2のスクリプトをPython3用にしなきゃいけないんだけど
・【Python】Webフレームワーク Djangoスレ Part2
・Pythonのお勉強 Part67
・学校サボって勉強
・Pythonの次に身につけておく言語
・Pythonのお勉強 Part62
・ぼく「Python勉強しよ」参考書「a=a+b」 →俺はpythonを諦めた
・AIに沸く中国、学校のプログラミング教育はPythonが中心になり、小学生の頃から勉強させられる。 ※情けないのでジャップの話題は禁止
・洋画・海外ドラマで英語のお勉強 Part14 [無断転載禁止]
・洋画・海外ドラマで英語のお勉強 Part15 [無断転載禁止]
・室田瑞希、漢字検定のお勉強開始のお知らせ「ちょっと漢字ができなすぎてやばめなので 一番簡単なやつから頑張ります!!!」
・絵里「お勉強会withソルゲ組」 2
・くだすれPython(超初心者用) その35
・父から母へのセックスのお誘いが「今日お勉強しような」だった
・ひろゆき、自身を一刀両断した小島剛一氏(在仏53年の言語学者)に反論 「若者言葉を知らない高齢者」「勉強不足」 [Anonymous★]
・【急募】ワオの日課がXでiPhoneが高くなったと嘆く女アカに「勉強してAndroidを使える智能を手に入れる事だな」とリプすることなんやが
・お勉強する
・Python詳しい人きてくれさい
・くだすれPython(超初心者用) その33
・お勉強スレ
11:58:57 up 63 days, 12:57, 0 users, load average: 8.45, 8.42, 8.76
in 0.0079720020294189 sec
@0.0079720020294189@0b7 on 062000
|