くだすれPython(超初心者用) その44【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ http://www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その43【Ruby禁止】 http://mevius.5ch.net/test/read.cgi/tech/1555397061/ >>165-166 >>168 文字コードの宣言がないとブラウザが正しく日本語文字(2バイト文字)解釈できないんだろう Python3系ならデフォルトはUTF-8なので ブラウザに文字列を出したいのであれば 表示したい文字列より前、先頭に htmlの文字コード宣言(UTF-8)を行う必要があると思われ 「html 文字コード UTF-8 宣言」あたりのキーワードでググれ >>169 そういうこったな。 Python には無関係。 <meta http-equiv="content-type" charset="utf-8"> >>170 おまいイイ!!(・∀・)ヤシ >>171 IDコロコロ変わる環境のやつは 自分が何番の質問書いたやつなのか名乗らないと誰かわからないぞ (今回はわかるが) 次から書けよ pylintの対処法 まず行が長いと怒られて、 行長減らすために処理を別行の変数に分割した、 そしたら変数が多いと怒られて、 変数減らすために場合分けで変数を使い分けるようにした、 そしたら文と枝分かれが多いと怒られた。 詰んだ。 無視するのは簡単だけどこの人に怒られないコードを書くにはどうすればいいのか。 本当にむかつく。 変数名簡略化せず何の変数かすぐ分かる命名をとか言っといて、 長い変数名で行が長くなったらこの仕打ち、 許せない 標準ライブラリでいいから人が書いたコード読んでみたら それか、ここで晒してもいいんじゃない >>173 見る限りそんなレベルじゃないでしょ 行の分割も知らないんだし 無駄に深いネストとか関数として書き出した方がいい部分とかもありそうだし 書き方知らずに規約に従おうとしてもストレス貯まるだけだと思う とりあえず、autopep8 を実行してみるのもいいかも 勝手に修正するのは自分の好みではないけど pylintではなく、flake8を使ってる この程度の指摘で十分だと思う 頼まれてもいない(と思われる)linterを導入して怒られて腹立てるって何もメリットないなw ipythonで以下のように入力するとき簡単に打つ方法はありますか? 例 ('jack') 毎回括弧閉じや「''」を都度打っていますか? >>180 エディタはAnaconda promptになります。 #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json hensu = 'Living' api = "http://localhost:3001/roonAPI/listZones" ; r = requests.get(api) data = json.loads(r.text) print(data) こんな感じのJSONからdisplay_nameが変数のhensuに該当するzonesの一塊のみ取得する方法教えて欲しいです http://ideone.com/dINVkm >>184 自己解決しました 多分forループで回してその中でifで探して見つかったらbreakかな? Python初心者です。 proxy.txtにプロキシリスト(形式は0.0.0.0:000のようになっています)があり、そのファイルからreadlinesで読み込ませて串を噛ませながらスクレイピングするコードを書いています。 readlinesで1行づつリストに格納しているのでproxy.txtを作成する時には\nを入れて串ごとに改行するようにしていました。 しかし、実際にやってみるとi="0.0.0.0:000\n"のようになっておりパースエラーと表示されます。 皆さんは串のファイルを作るときはどのような形式にしていますか? また、今回のような状況でどのようにすれば改善されるのでしょうか。 Ruby なら、chomp で改行を削除できる p text = <<"EOT" #=> "1\n2\n" 1 2 EOT p ary = text.lines #=> ["1\n", "2\n"] p ary_2 = text.lines( chomp: true ) #=> ["1", "2"] >>173 lintを10割受けてたらバカになるから6割程度で受けるが吉 gitのhookでlintでエラーがあったらコミットせないみたいな事をやってる所は少数派なのか >>185 この続きです スクリプトを動かすとネットワークプレーヤーで再生中の曲情報をターミナルに表示します https://i.imgur.com/NTfm72c.jpg https://i.imgur.com/dF7P85L.jpg https://i.imgur.com/v1VriQF.jpg まれに曲を変えるタイミングでスクリプトが落ちてしまいます https://i.imgur.com/nkloyjo.jpg 37行目で落ちるので、38行目からのようにしてみたけどやっぱり落ちちゃいました 落ちないようにする方法はありますか? >>193 自己解決しました 37行目でintに返還してたのをやめて、ifの中の39行目を追加したらうまくいきました https://i.imgur.com/h7qOORo.jpg >>192 少数派っつーかごく一部の意識高い奴しかやってねえよ Reactのリポジトリすらやってない >>195 その「意識高い」ってのは マジで意識が高いのかそれとも「意識高い系」なのか……。 python3でマルチスレッド処理をしたいです def a(b):で作成した関数aをwhile無限ループ内で何度も繰り返したいです。 しかし、TypeError: a takes 1 positional argument but 18 were given(18のとこは15-20くらいで色々ある) となってしまいます。 何がおかしいんでしょうか? どうやったら治るか教えてください >>200 その間違っているコードを示さないことには何が間違いか指摘しようがないぞ >>201 threading.Thread(target=a,args=(b)).start() argsにタプルを指定した気になってるようだけどタプルじゃないって奴だな >>203 つまりどう直したらいいんでしょうか・・・ すみません https://docs.python.org/ja/3/tutorial/datastructures.html#tuples-and-sequences > 問題は 0 個または 1 個の項目からなるタプルの構築です。(中略) 一つの要素を持つタプルは、値の後ろにコンマを続ける (単一の値を丸括弧で囲むだけでは不十分です) ことで構築できます threading.Thread(target=a,args=(b,)).start() threading.Thread(target=a,args=((b,))).start() 横レスだけどなるほどなっとくした >>207 & >>205 一要素のタプルとかいう意味不明な物を許してるからこういう問題が存在するんじゃないの thread使ってるけど気にしたことないなぁって確認したらargs使ってなかったわ 引き渡すの全部Globalに入れちゃってるや a=10 b=a/2 print(b) ってしたら、5.0ってなるねん 5ってしたいねん どうやったらいいん? >>212 print(b) この部分を、 print(int(b)) とかじゃ整数にできんかね? >>214 じゃあ a=int(10) で最初に指定してあげるとかなら? >>217 いいよ うんちぶりぶり!! プログラミングなんてトライアンドエラー繰り返しだと思うしガンガレ >>221 友達おらへんやろ? なったろか? さみしないか? b=a//2 または print(f'{b:.0f}') >>222 トライは動詞、エラーは名詞だから トライアンドエラーは間違い 精進しろよ?w >>212 python3からは勝手にfloatに変換されるので、intで閉じさせるならa//2とする カタカナで書いてる時点で和製英語にきまってるだろ 英語の文法とか何の関係もねーよ スマイル・シンデレラは間違い スマイリング・シンデレラと呼ばなければならない で、だからなに? って話だなw >>229 それ りんごは英語でアップル くらいの知能レベルの文 例えば「エンバグ」は和製英語だが(その証拠に英英辞典には載っていない) プログラマで使ったことないやつなんか10%もいないだろ VSCodeのPythonの型推論がクソ進化してる もう型アノテーションいらないんじゃないかこれ https://www.p2pquake.net/dev/json-api/ JSONっぽいけど、始まりが[で終わりが]になってる reqests.getで取得したとして この中のearthquakeの中のhypocenterの中のnameを取り出すにはどう書いたらいいですか? こないだテレビ見てたらカーボーイハットの男が叫んでた。 >>233 自分の常識が世間一般の常識と思い込むのイクナイ >>233 それ業界英語だからや 普通に英単語でもあるぞ enbug >>235 アクセス過多で業務妨害罪でタイーホ! URLてきに、apiでとれるようになってるんだろうから そこ用のapiの勉強しんしゃー ていうか英語の接頭辞のニュアンスくらいマなら知っとるやろ >>240 CollinsにもWebsterにもMacMillanにもODEにも載ってないのに「英単語」と言い張るのは無理がある もちろんこれらの辞書はすべてdebugはコンピューター業界での用法も当然に収録している これでも不満ならありとあらゆる英単語を載せているOEDを引けば答えがわかる ちなみにenbug.orgにも「日本語由来」と(英語で)書いてある 正確には「日本語圏でしか使われていない単語」か 要するに和製英語を一部の人間が英語に持ち込んでるだけで英単語ではない >>235 r = requtsts.get(url) d = r.text d = json.loads(d) これで最新の10件が取れますが[]で括られてます リストってことになってしまうから例えば d = d[0] とやれば1件目が取れます 10件欲しいならforループ使えばいいのは分かるんですが、例えばissueの中のtypeを取り出したい時 for dd in d: sType = dd['issue']['type'] print(sType) これだと KeyError: 'issue' とエラーが出るのはなぜですか? コードガールこれくしょんの問題8-4をやっているんですが、以下の回答のどこがダメなのか分からず先に進めません…; かなり初歩的な質問で申し訳ないのですがどなたか教えていただけると助かります。 from random import randint #1から10のランダムな整数を出力して下さい。 a=randint(1,10) print(a) print(randint(1,10)) これをループして >>251 randrange使うんじゃないの?知らんけどw 揚げ足とるとそれだとランダムな整数が代入された変数を出力してるもんなぁ糞だけど >>250 issueが無いデータがあるからでしょ if 'issue' in dd: とかでキーが存在するか確認しろ >>251 ちょっとやってみたけど 『文字列「"sky"」を出力してください』で print("sky")で蹴られるとか明らかになにかおかしいだろこれ 251です。他のステージもプレイしてみましたが、以前は正解になった回答↓でも不正解になったので公式側に不具合が起きているのかもしれません; 時間を置いて再度試してみます。コメントありがとうございました。 #文字列「egg」を出力してください。 print("egg") #10から2を引き算して出力してください。 print(10-2) >>255 どうもありがとうございます 存在していないkeyでした http://ideone.com/0ErCLL これを実行すると 村上市 (2) 関川村 (1) 鶴岡市 (1) な感じでプリントされますが、 村上市 (2), 関川村 (1), 鶴岡市 (1) といったように、一行でプリントするにはどんな方法がありますか? >>258 更新されているようです Rubyでのサンプルページも作られていました https://github.com/p2pquake/epsp-utils/tree/master/json_api_reader >>259 for p in points: # print(p) # sys.exit() s = p['scale'] s = str(s) s = scaleDic[s] a = p['addr'] print(a, end=" ") こうやるとaのvalueが横一列で表示されたので、試しに print(a, end=" ", s end=" ") こうやってみたらエラーでダメでした >>261 どうもありがとうございます formatの使い方ですが、 print('{1} {0}'.format(points[0]['scale'], points[0]['addr'])) print(f'{points[0]["addr"]} {points[0]["scale"]}') pointsの0番目を指定しているのでどちらも同じく 村上市 20 と表示されます pointsの中にはいくつか入っているので0番目だけじゃなく全て表示したいのでforループを使いました だけれどそれだと縦にプリントされてしまいます .formatの指定の仕方で横にプリントが出来るということですか? l = ['{}({})'.format(p['addr'], scaleDic[str(p['scale'])]) for p in points] print(', '.join(l)) print(a+"("+s+")", end=",")じゃだめなんか知らんけど 改行無しを多くつかうなら def princ(x):print(x,end="") で、end=""を少なくすると良いかも これでお願いします http://ideone.com/GEHy2w template = '{0} ({1})' for p in points: p['scale'] = scaleDic[str(p['scale'])] output = [template.format(p['addr'], p['scale']) for p in points] print(*output, sep=', ') 君のは無駄すぎる print(', '.join(f"{p['addr']} ({scaleDic[p['scale']]})" for p in dd.get('points', []))) ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる