くだすれPython(超初心者用) その44【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/07/24(水) 21:02:48.30ID:d1IM+Tl+
当スレに★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/
2019/08/15(木) 21:55:55.01ID:1uawWTDf
>>170
おまいイイ!!(・∀・)ヤシ

>>171
IDコロコロ変わる環境のやつは
自分が何番の質問書いたやつなのか名乗らないと誰かわからないぞ
(今回はわかるが)
次から書けよ
2019/08/17(土) 13:26:05.20ID:aGGHXtlm
pylintの対処法
まず行が長いと怒られて、
行長減らすために処理を別行の変数に分割した、
そしたら変数が多いと怒られて、
変数減らすために場合分けで変数を使い分けるようにした、
そしたら文と枝分かれが多いと怒られた。
詰んだ。

無視するのは簡単だけどこの人に怒られないコードを書くにはどうすればいいのか。
2019/08/17(土) 13:28:58.21ID:aGGHXtlm
本当にむかつく。
変数名簡略化せず何の変数かすぐ分かる命名をとか言っといて、
長い変数名で行が長くなったらこの仕打ち、
許せない
175デフォルトの名無しさん
垢版 |
2019/08/17(土) 13:34:48.61ID:Ei4AHYpx
標準ライブラリでいいから人が書いたコード読んでみたら
それか、ここで晒してもいいんじゃない
2019/08/17(土) 14:24:56.99ID:zoXV1BIi
標準ライブラリも怒られるものばかりだけどね
177デフォルトの名無しさん
垢版 |
2019/08/17(土) 14:36:58.79ID:Ei4AHYpx
>>173見る限りそんなレベルじゃないでしょ
行の分割も知らないんだし
無駄に深いネストとか関数として書き出した方がいい部分とかもありそうだし

書き方知らずに規約に従おうとしてもストレス貯まるだけだと思う
2019/08/17(土) 15:14:36.17ID:zoXV1BIi
とりあえず、autopep8 を実行してみるのもいいかも
勝手に修正するのは自分の好みではないけど

pylintではなく、flake8を使ってる
この程度の指摘で十分だと思う
2019/08/17(土) 18:19:12.97ID:zUPT7dbd
頼まれてもいない(と思われる)linterを導入して怒られて腹立てるって何もメリットないなw
2019/08/18(日) 00:38:11.48ID:Jxhn0zz/
ipythonで以下のように入力するとき簡単に打つ方法はありますか?



('jack')

毎回括弧閉じや「''」を都度打っていますか?
2019/08/18(日) 00:46:13.16ID:mfXYjyR8
エディタによるだろ
2019/08/18(日) 00:55:24.73ID:Jxhn0zz/
>>180
エディタはAnaconda promptになります。
2019/08/18(日) 02:44:04.60ID:Onid3Fuw
ひょっとしてほしいものは snippet
2019/08/18(日) 02:57:22.58ID:FysLR+u/
#!/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
2019/08/18(日) 04:14:40.62ID:FysLR+u/
>>184
自己解決しました
多分forループで回してその中でifで探して見つかったらbreakかな?
186デフォルトの名無しさん
垢版 |
2019/08/18(日) 04:59:14.97ID:tpkGnUoc
Python初心者です。
proxy.txtにプロキシリスト(形式は0.0.0.0:000のようになっています)があり、そのファイルからreadlinesで読み込ませて串を噛ませながらスクレイピングするコードを書いています。
readlinesで1行づつリストに格納しているのでproxy.txtを作成する時には\nを入れて串ごとに改行するようにしていました。
しかし、実際にやってみるとi="0.0.0.0:000\n"のようになっておりパースエラーと表示されます。
皆さんは串のファイルを作るときはどのような形式にしていますか?

また、今回のような状況でどのようにすれば改善されるのでしょうか。
2019/08/18(日) 05:06:13.27ID:r43EL8Fq
read().split("\n")
2019/08/18(日) 05:16:25.95ID:26pp6bRY
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"]
189デフォルトの名無しさん
垢版 |
2019/08/18(日) 05:33:45.37ID:tpkGnUoc
>>187
ありがとう出来た
2019/08/18(日) 10:06:44.50ID:2AjfnEOA
>>173
lintを10割受けてたらバカになるから6割程度で受けるが吉
191デフォルトの名無しさん
垢版 |
2019/08/18(日) 10:30:57.31ID:j410954h
うbyのchompって強烈な糞バグあるで
2019/08/18(日) 12:22:49.37ID:oSoDzxI+
gitのhookでlintでエラーがあったらコミットせないみたいな事をやってる所は少数派なのか
2019/08/18(日) 13:10:43.50ID:FysLR+u/
>>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行目からのようにしてみたけどやっぱり落ちちゃいました
落ちないようにする方法はありますか?
2019/08/18(日) 13:17:49.17ID:FysLR+u/
>>193
自己解決しました
37行目でintに返還してたのをやめて、ifの中の39行目を追加したらうまくいきました
https://i.imgur.com/h7qOORo.jpg
2019/08/18(日) 16:53:18.61ID:0nN/LwEb
>>192
少数派っつーかごく一部の意識高い奴しかやってねえよ
Reactのリポジトリすらやってない
196デフォルトの名無しさん
垢版 |
2019/08/18(日) 21:10:52.92ID:1iNtwV7Z
>>186
rstripってのもあるよ
2019/08/20(火) 20:00:14.61ID:Gkd3xMH4
>>195
その「意識高い」ってのは
マジで意識が高いのかそれとも「意識高い系」なのか……。
2019/08/20(火) 21:17:30.05ID:AoZjSCV7
一文字足すだけであら不思議!
199デフォルトの名無しさん
垢版 |
2019/08/21(水) 00:44:14.26ID:jDiMObB6
文と文系は対して変わらん
200デフォルトの名無しさん
垢版 |
2019/08/21(水) 07:08:42.46ID:plKhWM8d
python3でマルチスレッド処理をしたいです
def a(b):で作成した関数aをwhile無限ループ内で何度も繰り返したいです。
しかし、TypeError: a takes 1 positional argument but 18 were given(18のとこは15-20くらいで色々ある)
となってしまいます。

何がおかしいんでしょうか?
どうやったら治るか教えてください
2019/08/21(水) 07:31:33.39ID:G2PqedMK
>>200
その間違っているコードを示さないことには何が間違いか指摘しようがないぞ
202デフォルトの名無しさん
垢版 |
2019/08/21(水) 07:33:57.94ID:plKhWM8d
>>201
threading.Thread(target=a,args=(b)).start()
2019/08/21(水) 09:35:34.95ID:INPmh9wc
argsにタプルを指定した気になってるようだけどタプルじゃないって奴だな
204デフォルトの名無しさん
垢版 |
2019/08/21(水) 12:47:13.20ID:plKhWM8d
>>203
つまりどう直したらいいんでしょうか・・・
すみません
2019/08/21(水) 13:24:35.84ID:rtQcncog
https://docs.python.org/ja/3/tutorial/datastructures.html#tuples-and-sequences
> 問題は 0 個または 1 個の項目からなるタプルの構築です。(中略) 一つの要素を持つタプルは、値の後ろにコンマを続ける (単一の値を丸括弧で囲むだけでは不十分です) ことで構築できます
2019/08/21(水) 13:24:46.58ID:2OErRBE5
>>204
  >>202
207デフォルトの名無しさん
垢版 |
2019/08/21(水) 15:35:14.41ID:ur92HW83
threading.Thread(target=a,args=(b,)).start()
threading.Thread(target=a,args=((b,))).start()
2019/08/21(水) 15:37:24.39ID:2OErRBE5
横レスだけどなるほどなっとくした >>207 & >>205
2019/08/21(水) 19:53:15.36ID:vrRBM7oH
pythonも奥が深いな
2019/08/22(木) 12:09:15.94ID:5n19vLwe
一要素のタプルとかいう意味不明な物を許してるからこういう問題が存在するんじゃないの
2019/08/22(木) 12:38:18.50ID:+WLUVT0B
thread使ってるけど気にしたことないなぁって確認したらargs使ってなかったわ
引き渡すの全部Globalに入れちゃってるや
2019/08/22(木) 14:32:52.32ID:qSCycJ6B
a=10
b=a/2
print(b)
ってしたら、5.0ってなるねん
5ってしたいねん
どうやったらいいん?
2019/08/22(木) 14:35:51.73ID:OjO/vENV
>>212
print(b)

この部分を、

print(int(b))
とかじゃ整数にできんかね?
2019/08/22(木) 14:37:09.83ID:qSCycJ6B
>>213
できひんねん
2019/08/22(木) 14:38:20.20ID:OjO/vENV
>>214
じゃあ
a=int(10)
で最初に指定してあげるとかなら?
2019/08/22(木) 14:38:43.03ID:TnC8Wcje
5.0でええやんか
2019/08/22(木) 14:39:29.05ID:qSCycJ6B
>>213
あ、ごめん
出来たわ
2019/08/22(木) 14:39:59.01ID:qSCycJ6B
>>216
競プロでは不正解になるねん
2019/08/22(木) 14:40:36.08ID:OjO/vENV
>>217
いいよ
うんちぶりぶり!!
プログラミングなんてトライアンドエラー繰り返しだと思うしガンガレ
2019/08/22(木) 14:41:47.36ID:qSCycJ6B
>>219
おうよ!
221デフォルトの名無しさん
垢版 |
2019/08/22(木) 14:42:42.91ID:vsttXPXA
ほんとはトライアルアンドエラーやぞ
2019/08/22(木) 14:50:01.50ID:qSCycJ6B
>>221
友達おらへんやろ?
なったろか?
さみしないか?
223デフォルトの名無しさん
垢版 |
2019/08/22(木) 14:51:17.49ID:xQsiKIbM
b=a//2
または
print(f'{b:.0f}')
2019/08/22(木) 14:57:28.14ID:YHG3Udjg
教科書読んでドリル
225デフォルトの名無しさん
垢版 |
2019/08/22(木) 15:09:06.86ID:vsttXPXA
>>222
トライは動詞、エラーは名詞だから
トライアンドエラーは間違い
精進しろよ?w
226デフォルトの名無しさん
垢版 |
2019/08/22(木) 16:38:42.98ID:+sQNWHqe
>>212
python3からは勝手にfloatに変換されるので、intで閉じさせるならa//2とする
227デフォルトの名無しさん
垢版 |
2019/08/22(木) 16:40:18.63ID:+sQNWHqe
tryは名詞の意味もあるぞ
辞書引け
228デフォルトの名無しさん
垢版 |
2019/08/22(木) 17:11:06.84ID:vsttXPXA
>>227
これでいいかい?w
https://ejje.weblio.jp/content/trial+and+error

ついで。
「トライ・アンド・エラー」は間違い! 会議で使ってはいけない和製ビジネス英語
https://www.quicktranslate.com/blog/2017/09/%E3%80%8C%E3%83%88%E3%83%A9%E3%82%A4%E3%83%BB%E3%82%A2%E3%83%B3%E3%83%89%E3%83%BB%E3%82%A8%E3%83%A9%E3%83%BC%E3%80%8D%E3%81%AF%E9%96%93%E9%81%95%E3%81%84%EF%BC%81-%E4%BC%9A%E8%AD%B0%E3%81%A7%E4%BD%BF/
「トライ・アンド・エラー(試行錯誤)」は和製英語で、英語ネイティブは使わないのです。英語では、正しくは 「 trial and error (トライアル・アンド・エラー)」になります。
2019/08/22(木) 17:57:15.28ID:ewSTQs5i
カタカナで書いてる時点で和製英語にきまってるだろ
英語の文法とか何の関係もねーよ
2019/08/22(木) 18:01:49.82ID:bvtbd5/q
スマイル・シンデレラは間違い
スマイリング・シンデレラと呼ばなければならない

で、だからなに? って話だなw
2019/08/22(木) 18:31:51.10ID:k0K3XsJW
>>229
それ
りんごは英語でアップル
くらいの知能レベルの文
2019/08/22(木) 21:07:30.73ID:NZc4hO3L
和製英語禁止とか生活大変だろ
2019/08/22(木) 21:47:06.20ID:tsQp+M7t
例えば「エンバグ」は和製英語だが(その証拠に英英辞典には載っていない)
プログラマで使ったことないやつなんか10%もいないだろ
2019/08/22(木) 22:19:28.34ID:NtN1+LDS
VSCodeのPythonの型推論がクソ進化してる
もう型アノテーションいらないんじゃないかこれ
2019/08/23(金) 01:41:15.41ID:HCAwSO4F
https://www.p2pquake.net/dev/json-api/

JSONっぽいけど、始まりが[で終わりが]になってる
reqests.getで取得したとして
この中のearthquakeの中のhypocenterの中のnameを取り出すにはどう書いたらいいですか?
2019/08/23(金) 05:33:37.30ID:s44pimIO
>>233
エンバグってなに?
2019/08/23(金) 06:42:20.26ID:N9EC0fnt
エンバグなんて使ったことない
2019/08/23(金) 06:59:13.46ID:oK3Cn5/Y
こないだテレビ見てたらカーボーイハットの男が叫んでた。
2019/08/23(金) 07:22:07.28ID:eFyFop4/
>>233
自分の常識が世間一般の常識と思い込むのイクナイ
2019/08/23(金) 07:34:27.45ID:W0iLWMiN
>>233
それ業界英語だからや
普通に英単語でもあるぞ enbug
2019/08/23(金) 07:36:51.29ID:W0iLWMiN
>>235
アクセス過多で業務妨害罪でタイーホ!

URLてきに、apiでとれるようになってるんだろうから
そこ用のapiの勉強しんしゃー
2019/08/23(金) 08:16:50.69ID:Mz9ZP4mp
enbug バグを仕込むこと(故意でなくても)
2019/08/23(金) 08:29:31.08ID:1dI4xuIA
>>236
バグを直したら違うところがバグった
2019/08/23(金) 08:32:19.37ID:Mz9ZP4mp
ていうか英語の接頭辞のニュアンスくらいマなら知っとるやろ
2019/08/23(金) 08:57:07.61ID:W0iLWMiN
>>244
おまえの常識
周囲の非常識
2019/08/23(金) 08:58:29.25ID:Mz9ZP4mp
エンクロージャって聞いて分からんマとかおりゅ?
2019/08/23(金) 09:22:50.85ID:5TcsxCJp
>>240
CollinsにもWebsterにもMacMillanにもODEにも載ってないのに「英単語」と言い張るのは無理がある
もちろんこれらの辞書はすべてdebugはコンピューター業界での用法も当然に収録している
これでも不満ならありとあらゆる英単語を載せているOEDを引けば答えがわかる

ちなみにenbug.orgにも「日本語由来」と(英語で)書いてある
2019/08/23(金) 09:24:16.55ID:5TcsxCJp
正確には「日本語圏でしか使われていない単語」か
要するに和製英語を一部の人間が英語に持ち込んでるだけで英単語ではない
2019/08/23(金) 11:28:23.12ID:LjhFqZ/B
英語の大先生は中央線に飛び込んで死んでね
2019/08/23(金) 11:29:14.67ID:HCAwSO4F
>>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'
とエラーが出るのはなぜですか?
2019/08/23(金) 12:24:51.70ID:s+6jWuTi
コードガールこれくしょんの問題8-4をやっているんですが、以下の回答のどこがダメなのか分からず先に進めません…;
かなり初歩的な質問で申し訳ないのですがどなたか教えていただけると助かります。

from random import randint
#1から10のランダムな整数を出力して下さい。
a=randint(1,10)
print(a)
2019/08/23(金) 12:50:55.60ID:GCcQKmFF
print(randint(1,10))
これをループして
2019/08/23(金) 12:51:13.89ID:MQdWPEng
>>251
randrange使うんじゃないの?知らんけどw
2019/08/23(金) 12:56:09.54ID:MRE+SfwO
揚げ足とるとそれだとランダムな整数が代入された変数を出力してるもんなぁ糞だけど
2019/08/23(金) 13:47:49.94ID:jgkDRT2h
>>250
issueが無いデータがあるからでしょ
if 'issue' in dd:
とかでキーが存在するか確認しろ
2019/08/23(金) 14:16:36.43ID:5TcsxCJp
>>251
ちょっとやってみたけど
『文字列「"sky"」を出力してください』で
print("sky")で蹴られるとか明らかになにかおかしいだろこれ
2019/08/23(金) 15:03:24.96ID:s+6jWuTi
251です。他のステージもプレイしてみましたが、以前は正解になった回答↓でも不正解になったので公式側に不具合が起きているのかもしれません;
時間を置いて再度試してみます。コメントありがとうございました。

#文字列「egg」を出力してください。
print("egg")

#10から2を引き算して出力してください。
print(10-2)
258デフォルトの名無しさん
垢版 |
2019/08/23(金) 17:53:49.62ID:Zx6EO+xk
>>235
ここって今も更新されてるの?
2019/08/23(金) 22:34:52.86ID:bCjBZ45B
>>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
2019/08/23(金) 22:40:04.86ID:bCjBZ45B
>>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=" ")
こうやってみたらエラーでダメでした
2019/08/23(金) 23:03:35.92ID:VukiVfH6
format
2019/08/23(金) 23:57:42.43ID:bCjBZ45B
>>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の指定の仕方で横にプリントが出来るということですか?
2019/08/24(土) 01:12:22.32ID:feuvYzbT
l = ['{}({})'.format(p['addr'], scaleDic[str(p['scale'])]) for p in points]
print(', '.join(l))
2019/08/24(土) 09:12:37.87ID:+nNIwdjo
print(a+"("+s+")", end=",")じゃだめなんか知らんけど
2019/08/24(土) 09:28:04.44ID:fnGH5ITP
改行無しを多くつかうなら
def princ(x):print(x,end="")
で、end=""を少なくすると良いかも
266デフォルトの名無しさん
垢版 |
2019/08/24(土) 09:51:52.05ID:BpytXyBE
これでお願いします
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=', ')
267デフォルトの名無しさん
垢版 |
2019/08/24(土) 10:57:17.18ID:6nD2xE5w
君のは無駄すぎる

print(', '.join(f"{p['addr']} ({scaleDic[p['scale']]})" for p in dd.get('points', [])))
2019/08/24(土) 11:06:04.31ID:xvjQRABf
後から湧いてきてエラそうなのが笑える
269デフォルトの名無しさん
垢版 |
2019/08/24(土) 11:12:04.69ID:6nD2xE5w
あと scale 46 もあるな
270デフォルトの名無しさん
垢版 |
2019/08/24(土) 11:17:47.27ID:6nD2xE5w
>>268
うびぃも後出しじゃんけんでperlをdisってるからな
他人の事は言えんやろ
2019/08/24(土) 11:49:43.27ID:c46ZB698
>>260 print(f'{a}({s})',end=', ')

一番最後にも , がつくのが少しうざいけど。
end= と言うのは print文の最後を改行の代わりに指定文字を出力して終わると言う意味だから、複数指定するのは間違い。
2019/08/24(土) 12:16:48.26ID:c46ZB698
>>259 >>266 scaleDic のキーは、str ではなくて、数字じゃ無いとダメだろ。
これで良い筈。
http://ideone.com/sld6FX
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。