このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その32
http://echo.2ch.net/test/read.cgi/tech/1486173667/ >>1
Poohpooh817 ウィキペディア 女性差別 蔑視 レイシスト 殺人 窃盗 放火 強盗 性犯罪 痴漢 ストーカー 露出
Poohpooh817 毒薬 オウム真理教 テロ 業務妨害 毒薬 荒らし jawp
Poohpooh817 陰キャラ ぼっち ヒキニート 自閉症 片親 自殺未遂 リストカット
Poohpooh817 チビ ハゲ ロリコン 9cm 中折れ 暴言
Poohpooh817 偏差値35 退学 ニート 捏造 前科 暴力団 懲役刑 除名
Poohpooh817 知的障害 精神疾患 白痴 無能 脅迫 横領
Poohpooh817 コーラン燃やし 詐欺 Poohpooh817 自閉症飲酒運転 不正受給 ワンクリック詐欺 ぼったくり 高額請求 悪徳商法
Poohpooh817 大麻所持 アルコール中毒 強姦 在日 計画倒産
Poohpooh817 不正複アカウント所持 記事捏造 出典改竄 著作権侵害
https://ja.wikipedia.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85%E2%80%90%E4%BC%9A%E8%A9%B1:Poohpooh817 |....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘
1点質問させて下さい。
rule['freq']には'YEARLY'という文字列が入っています。
一方、定数としてYEARLYには0が定義されています。
通常はrrule(YEARLY)として、実際にはrrule(0)という形で呼ぶことになります。
rrule(rule['freq'])と直接引数に渡したいのですが、この形だと
rrule('YEARLY')のようにYEARLYが文字列として渡されてしまいエラーになります。
文字列'YEARLY'を変数として渡す方法はないでしょうか?
locals()かglobals()を使うとか
locals()[‘YEARLY’]
でもそもそもディクショナリで{“YEARLY”: 0}ってしとけばいいんじゃないの?
>>12
rrule(globals()[rule['freq']])で参照できました。
ありがとうございました。
>>13
辞書には'freq':'YEARLY'で入っていて変えれない状態なんです。 foo = {"YEARLY": 0}
rrule(foo[rule[‘freq’]])
fooに適切な名前をつければglobals()使うよりマシな気がするが
動けばいいと思ってる奴にそんな話を説いても仕方がないから放っておけ
>>15
python-dateutilにあるrrule.pyに定義されているようなので
それを参照できないか見てみます。
>>16
あまりやらない方法なのですね。。上記の方法を検討してみます。 教えて下さい。
r = requests.get('読み込みたいurl')
r.encoding = 'utf-8'
print(r.text)
画面に出る結果をテキストファイルに
保存したいのです。
どの様にすればテキストファイルに出来ますか?
>>18
シェル使うパターンで
python foo.py > output.txt 18です。
open('test.txt', 'a').write(r.text)
これだと、UnicodeEncodeError
open('test.txt', 'a').write(r)
これだと、TypeError になります。
もう少しヒントをお願いします。
UnicodeEncodeErrorでググるかPython2やWindows等のマルチバイトの扱いがクソな環境を窓から投げ捨てるといいと思う
構文ミスならともかくこういうのはエラーが明確に表示されてるからググれば大体は解決する
崇拝されたくてtwitterで布教活動しているバカ共のせいでnoobが増えたな
18です。
text = codecs.open('host.txt', 'a', 'utf-8').write(r.text)
テキストファイルにできました。
ありがとうございました。
csvの操作で困っています。
id 判別
1 a
1
2 b
3 b
4 b
4
4
5
というcsvがあって、
idも判別も重複している場合は削除
idが重複していて、判別が重複していない場合は、判別が空欄の方を削除
というスクリプトを書いています。
import_csv
empty_list_=_[]
def_start():
____f=open("/path/test.csv",_"r")
____data_reader=csv.reader(f)
____header=next(data_reader)
____for_row_in_data_reader:
____________empty_list.append(row)
____del_list(empty_list)
def_del_list(list):
____list2_=_[]
____for_counter,_i_in_enumerate(list):
____________first_num=i[0]
____________first_alfa=i[1]
____________second_num=list[counter_-1][0]
____________second_alfa=list[counter_-1][1]
____________if_first_num==second_num_and_first_alfa==second_alfa:
____________________list.remove(i)
____________elif_first_num==second_num_and_first_alfa=="":
____________________list.remove(i)
____________elif_first_num==second_num_and_second_alfa=="":
____________________print(counter)
____print(list)
start()
printで出力すると、
[['1', 'a'], ['2', 'b'], ['3', 'b'], ['4', 'b'], ['4', ''], ['5', '']]
のようになって、['4','']の要素が入り込んでしまいます。
どうしてでしょうか?
長くなってしまってすいません。
次回からテンプレにある外部サービスにコードを乗っけるようにします。
質問です
スクリプトを書いていて最後のまとめの段階になると
for とif で何重もの入れ子になってしまいがちなんですが
こういうのは気にしなくていいものなのか
なるべく避けた方がいいものなのか
もちろん状況にもよるでしょうけど
アドバイスよろしくお願いします。
>>38
物によってはitertoolsとかで回避できる
避けられるなら避けたほうがいいよ、見た目の問題だけど virtualenvって使ったほうがいいんですか。あまり使っている人を見ないので
ライブラリのバージョンが衝突して困ってるなら使うといいが
そうでないなら使う必要性ないよ
pythonでpubnubから情報を受信したくて、sdkをimportしたのですが、全く使い方がわかりません。
pubnubにお詳しい人で、Tutorialを書いていただける方はいませんか?
pythonのスレッドだとなんかブロックされるから完全に並列実行できないらしいんだけど
どういうこと?
並列でダウンロードしたら速かったよ
>>50
pythonコードはプロセス内で同時に1つずつしか実行されないが
pythonコードから呼び出された処理自体はスレッドとして並列で動いてる
ネットからのデータ受信みたいに関数呼び出しから結果が得られるまで待つ必要のある処理では
待ち時間の間は別スレッドのpythonコードも動けるし、受信処理自体は並列で動いてる みんなの抱えているチンパイ事は
全てパイチンくんが解決してくれるよ
>>50-53
Python, Ruby, JS は、GIL(global-interpreter-lock)で、
プログラム内部ではシングルスレッドで、
プログラムの順序が分かりやすく、プログラミングしやすい
ただし、I/O 処理に入ると、GILを手放し、並列処理する。
そしてI/Oから、プログラム内部に戻ってくると、シングルスレッドになるけど、
I/Oでの並列処理の順序により、順番が変わっていることもある ロジック的な部分がすでにあるとしたら
GUI とウェブアプリならどっちがかんたんに作れますか?
「GUIとWebアプリ」という書き方をするってことは
そのWebアプリはHTTP接続でAPI的に使うものなの?
>>58
書き方が悪かったですか、
ネイティブとウェブって事です GUIを作るには、HTMLとPythonどっちが楽かってこと?
いや両方共pythonで android向けのアプリを作るか ブラウザから使えるwebアプリを作るかならどっちが楽かということです。
>65
は、もっと基本的なところを、焦らずに勉強したほうがいいと思う。
たぶん、そっちの方が結果的に短い期間で自分の作りたいものが、作れるようになると思うよ。
>>67
もっと基本的なこととはどんなことですか? >68
基本情報処理あたり、勉強するといいよ。
スレチになるから、おしまい。
>>65
なぜそれらを比較するのかの情報が全く無いからなんとも言えんが
どんな機能を持ってどんな画面遷移があるのソフトか知らんこと前提で言うと
色んなプラットフォームで色んな形態のソフトを作ってる身からすると
特殊なもの以外はフロントエンドをどっちで作っても製作の手間はそんな変わらん
どうするかはそのソフトを 誰が何時どうやって使い、どうのようにメンテナンスし、誰が作るのか? で判断した方がいい
何が楽かは人や環境によって全く異なります >>69
そうですね
>>70
どっちにしても手間は変わらない、使う人の用途で決めるということですね、ありがとうございます >>69 なんで基本情報のプログラム言語pythonにしない。 >>73
平均ならrubyのほうが上
python使ってて稼いでるやつはシステム開発やプログラミングとは違う分野の人間が多い 翻訳できる人は翻訳しなくても読めるわけで…
趣味で翻訳している人以外は何かしらの形で見返りを狙っている
コンソール
モノポリーでのmapについて
mapを配置のみではキャラクター移動管理配列に成ってしまい
建物の等の情報はどうやって記述するのでしょうか?
それとも、
連想配列を使って、まとめて情報を登録して置いた方が良いのでしょうか?
シェルの変数に格納したCSVを、某サイトを参考にしてjsonにしようとしてみましたがうまくいかないです。
添削をお願いします。
x=$( echo "AAA,BBB,CCC
123,456,789
111,222,333" )
x=$( echo "¥"AAA¥",¥"BBB¥",CCC¥"
¥"123¥",¥"456¥",¥"789¥"
¥"111¥",¥"222¥",¥"333¥"" )
python CSV_to_json.py "$x"
#!/bin/python
# -*- coding: utf-8 -*-
import sys
import csv
import json
result = []
for f in sys.argv[1:]:
for line in csv.DictReader(f):
line_json = json.dumps(line)
result.append(line_json)
print(result)
複数ある連想配列{連番(ディクショナリ)}の最初の項目を一覧表示させる
方法を教えて下さい
aiueo0={'aaa':'aaaa'}
aiueo1={'aaa':'bbbbb'}
aiueo0とaiueo1の(キー)aaaを取り出す 処理です
望む結果は下記です
aaaa
bbbbb
連想配列や集合には基本的に順序はないから最初も最後もないよ
>>86
うまくいかないですじゃなくて
なにがどうなったか書けよ >>86
import io
for s in sys.argv[1:]:
f = io.StringIO(s)
for line in csv.DictReader(f):
〜〜〜 回答どうも です
(情けないですが)ゴリ押しする事にしました
https://ideone.com/P508Th
#map Create
lst=[0]*39
map超過時に最初に戻る処理を考えていますが、
idou=0だと止まってしまいます
どうすれば、超過分を進めるのでしょうか?
移動の値はサイコロなので、上手く行かないです 英数字は
for s in sys.argv[1:]:
f = io.StringIO(s.decode('utf-8'))
for line in csv.DictReader(f):
line_json = json.dumps(line)
result.append(line_json)
print(result)
これでできたのですけど
Traceback (most recent call last):
File "/Users/m/dmm/CSV_to_json.py", line 20, in <module>
for line in csv.DictReader(f):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py", line 108, in next
row = self.reader.next()
UnicodeEncodeError: 'ascii' codec can't encode characters in position 14-26: ordinal not in range(128)
と出てダメでした。
import codecs
sys.stdin = codecs.getreader('utf_8')(sys.stdin)
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
を追加して出てダメでした。
どうすればいいですか?
日本語が入るとダメだったということです。
失礼しました。
Pythonのライブラリが腐ってるからPythonのバージョンを3系統にしてしまうといいと思われ
文字の扱いが2.7よりやさしくなってるpython3を使おう
2.7は一応あと3年の命なので勉強や新しいものを作るのに使うのは避けたほうがよし
>>97
2.7よく分からないけど f = io.StringIO(unicode(s)) かな
jsonでの文字エスケープが嫌なら line_json = json.dumps(line, ensure_ascii=False) Ren'Pyはpygameと組み合わせ可能でしょうか?
Renpyがpegameを内部で使っていたのだが
過去形なのはSDL2に移行したから
ん?
いまのrenpyってちゃんとSDL2に移行したんか?
pygameとともに枯れてゆくだけかと思ってたわ
automate ~ ってのは今度日本語版が出る奴だね
>>104
ありがとうございます
モノポリーが、もぅ少しで完成しそうなのですが、
pygameでウィンドウを2つ作ることは可能でしょうか?
調べた限りでは、見つけられませんでした
理由はmapの縮小版を別ウィンドウで表示させたいからです
下記は無視してください
(コンソールでテストして問題無かったので、後はguiを付けるだけ
なのですが、右側の枠(4人仕様の情報枠)を使ってしまうと、縮小版のmapを
追加する場所がなくなってしまいます)画面切り替えにすると、その間にCPUが勝手に動くので、
どうしても、同時に表示させたいのですが、何とか成りませんかね
http://fast-uploader.com/file/7047004582630/ >>107
情報サンクス ATBS前回買おうか迷っているうちに終わったんだよ。オライリーが日本語版出すから迷ったけど、結局出す出す詐欺だったからな。 非オブジェクト指向だけど、特定の範囲のスコープを持つ引数って作れますか?
def A~Dまでは見えて、それ以降には見えない変数のようなものです
global宣言するしかないですか
>>112
クラス変数を使って静的メソッドの間で共有するやり方が分かりやすいと思う
モジュールを分割してグローバル変数を隔離する方法もある
クロージャやデコレーターを使うやり方も頭をよぎるけどコード芸になる予感がする ファルシのルシがコクーンでパージにしか見えないのでもう少し勉強してこよう
二問ほど質問します
user_list?
?は変数です use_list[i]
などの記述で、全てのuser_listを取得できません
何か良い方法は無いでしょうか?
user_list0=[2500,0]
user_list1=[2500,0]
user_list2=[2500,0]
下記のディクショナリで
aiu0{'Name':50, 'eo':10}
aiu1{'Name':40, 'eo':50}
連番になっているディクショナリのNameだけを取り出す方法を教えて下さい
aiu0['Name']
aiu1['Name']
>>115
execまたはevalでコードを文字列として動的に組み立てるといいと思う >>115
連番の変数名ではなくネストしたリストを利用するのはいかがしょう
user_lists = [[2500, 0], [2500, 0], [2500, 0]]
user_lists[0]
user_lists[1]
user_lists[2]
上記と同じく辞書を並べたリストがあれば内包表記をつかって値を取り出せます
data = [{"Name": 50, "eo": 10}, {"Name": 40, "eo": 50}]
names = [d["Name"] for d in data] # => [50, 40] >>115
数が2,3個なら↓みたいにmap関数使うか、リスト内包表記
map(lambda x: x[0], [user_list0, user_list1, user_list1])
動的に生成するぐらい大量にあるなら設計自体を見直した方がいい >>116
>>117
ありがとうございます
初心者なのですが、設計間違いで
積んだ?
見たいな状態でしたから、助かりました
(どうも、ありがとうございます) >>115
何かモノポリーの人と同じ匂いを感じるんだけど、もしかして本人? いえ、ただ>>116と>>117どっちを採用するのかなと思って
あと、
>設計間違いで積んだ?
こういう気持ち大事にしてください >>116だが直接的な解決法を提示しただけなので設計変えれるなら変えたほうがいいぞ
どうしても使うならevalは速度が遅いということだけ覚えといて はい、解りました
部分的に問題が無かったのですが、いざ、処理をくっつけると
問題が沢山でてきて、対応できない状態になってしまい
今に至ります
皆さん ありがごうございました
関連があるデータなら、配列を使えば、変数名は1つで済む
それで、ary[0], ary[1] とか、インデックスでアクセスすればいい
退屈なことはパイチンくんにやらせればいい
あとはみんなでパイチンくんを楽しもう
pythonのshellに出力で同じラインに書き出したいんですけど、(64%... みたいな表示を同じ行で更新していきたい)
どうすればいいんでしょうか?
>>127
基本はキャリッジリターン(\r)を出力すると行頭に復帰するので
それにシェル制御コードも併用するとかする。
「CUI CLI プログレス」等のワードでサンプルコードを探そう モノポリーについて
1日ほど考えたのですが考えが纏まりませんでしたので
ヘルプださせて貰います
どのように、仕組みを組み立てるべきか
悩んでますが、前へ進めていません
>>130
ですよね……また、失敗したくない
と言う我儘が出てしまいました
申し訳ないです 作ろうとしているものが>>131の力量を超えてないか
コマ移動だけの双六を作って基本的なデータ構造と処理を考えてみたらどう aからzまでのアルファベットを
文字列で簡単に書く方法はありますか? re の[a-z]みたいに
>>135
import string
string.asci_lowercase
ですか、ありがとう どうしよう……
諦めた方が良いのも知れない……
うんこ、漏れそう
諦めた方がいいのか?
桜ねね ちゃんのエロ画像下さい
間違えました
射命丸文ちゃんのエロ画像下さい
linux mint18でpythonを使ってGUIを制御する方法を教えて下さい
ってか、プログラムなんて糞喰らえだ
もぅ一生来ないから、さよなら
学校で習ったのはホークとナイフの使い方だけ!!
ゆり豚に戻ったるわぁ!
あーやぁーやぁーーー
モノポリーにRPGつけてキャラも建物を壊して遊ぶんだよ!
その為にクソコード何回も書けるかよ!
ソートアルゴリズムならいいサイトあったんだが消滅した
>>128
レスどうもです。\rはやってたんですが上手くいかなくて・・・制御コードとやらも必要なんですね。
早速ググって来ます。ありがとうございました。 クロスサイトリクエストフォージェリーとは何ですか?
tensorflowのMNISTのサンプルコードでミニバッチの抽出によく使われる「mnist.train.next_batch()」
がありますが,MNIST以外でミニバッチのデータを抽出する際にこれとほぼ同様な処理をするコードって皆さん何を使われているんでしょうか
ここにtensorflowなんぞ使い倒してる奴はいない
format使わないで%で指定した文字でパディングする方法教えてください
print("%02d", 1)を数値じゃなくて文字バージョンがしりたいです
print("%@2s" % "a")
で@2って表示
print("%@2s" %s "aaa")
でaaaって表示できる書き方教えてください
>>> print("%02d", 1)
%02d 1
?
cのフォーマット書式そのまま継承してくれたらよかったのに
printf形式の文字列書式化
docs.python.jp/3/library/stdtypes.html#printf-style-string-formatting
ネットだけだと常識過ぎて書かれてないかもね。
C入門のページ見るか、Pythonの入門書買えば大抵載ってる。
いやいやいや
>>162のページに書式の一覧とサンプルコードも書いてあるじゃん、、、 def txt(filename):
f = open('filename')
for line in f:
if __name__ == "__main__":
txt('test.txt')
FileNotFoundErrorがでてファイルが開けません。
なぜ、開けないか分かりますか?
よろしくお願いします。
補足:openの所にtest.txtを渡すと開けます。
ソースまんま貼り付けたなら
f = open('filename')
↓
f = open(filename)
Python構文対応してるエディタ使ったら気づくかも
>>168
試してみたら動きました。ありがとうございます。
複数のファイルを処理したかったので、
変数を使ってみたんですが
''で動作に関係するとは、勉強になりました。 ピーターソンのアルゴリズムの実装
どうやったらええんや?
docs.python.jp/3/library/multiprocessing.html#synchronization-primitives
コードを書いた後に風通しのいいところに置いて乾燥させる
__repr__ というメソッドはなんのためにあるの?
~/f/oo.py
~/b/ar.py
~/f/がカレントディレクトリとして
oo.pyから~/b/ar.pyをimportする方法を教えてください
Pythonって本買わなくてもネットのレファレンスだけである程度まで勉強できる?
できるならオススメのwebサイトとか教えてくれ
開発環境の構築を抜きにすれば
何かしらの開発言語でソフトウェア開発を一通りしたことあるなら
公式のドキュメントだけで十分
質問です
Atomを使用しているんですが、日本語が文字化けします
Auto Encordingなどは入れたのですが…どうすれば解消できるでしょうか
eclipseガーpycharmガーvisual studio codeガーatomガー秀丸ガー
ctypesで外部関数ライブラリをしてからどんな関数が使えるのかdirで調べたかったんですけど
pythonからどうにかして調べる方法ってないんですかね?
訂正
ctypesで外部関数ライブラリを読み込んでからどんな関数が使えるのかdirで調べたかったんですけど
pythonからどうにかして調べる方法ってないんですかね?
>>183
form .. import b.ar >>197
>>> import ctypes
>>> curl = ctypes.cdll.LoadLibrary('./libcurl.dll')
>>> dir(curl)
略
>>> curl.__dict__.keys()
略
>>> curl.curl_version()
略 >>198
いくらなんでも構文エラーはあんまりだ
>>183
sys.pathに~/や~/bを追加する(~は要展開)のが手っ取り早いけど
書捨てスクリプトじゃなく他所からimportされるパッケージなら
setup.pyを書いてインストールしたほうが最終的には楽 >>200
sys.libpath.append('..')
form b import ar >>197
ctypesは共有ライブラリに入っているC関数を調べあげる機能を持ってないな >>201
言語間違えてないか?Pythonのsysにlibpathは無いしformはキーワードじゃない macのAutomator でpython3のスクリプトを実行すると
同じスクリプトが動く時と動かない時があるのは何故ですかね?
環境をこう整えると良いよとかあったらよろしくお願いします。
>>205
PATHが通ってないとかそういう理由じゃないの
エラーメッセージとか貼るともっといい答え貰えるんじゃないかな。知らんけど >>207
起動時どっかに環境変数の内容を出力して比較したらたぶんわかる >>207
ありがとうございます
ターミナルからだと問題なく動くんですけど
Automator だとparhが違うとかあるんですかね
ネットで調べてもわかりませんでした。
あとAutomatorだとエラーが表示されないんです。
もう少し悩んでみます。
もし情報があったらよろしくお願いします。 >>188
このやりかたでも全部表示されないですね
表示されるのは先頭が_ではじまるもののみ >>202
ああないんすかヘッダーファイルで確認するしかないですねわかりました python2.7とpython3.5入れてる環境だと
#!/usr/bin/python
.plで保存して2.7形式になる
#!/usr/bin/python3
にしても、2.7になる
どうすれば、3.5で動作するようにできますか?
>>216
pathのあとの方に、3.5を持ってくるのはあかんの? そもそも/usr/bin/python3ってpathは存在してるの?
>>205です
他のアプリからスクリプトを実行してみて
どうやらf.write(str)でファイルに書き出すところで
UnicodeEncodeError: 'ascii' codec can't encode~
が起きているようです。
ターミナルからだと問題ないのにAutomator他だと
エラーになるのは何でだろう? よくわからないです。 >>221
ありがとうございます!
ファイル開く時にutf-8に指定して開くようにしたら
無事動くようになりました。
勉強になりました、感謝です!
あーこれで気持ちよく眠れます! >>220-222
cron あるある
cronの実行時は、一般ユーザーよりも環境変数が少ないから、皆引っかかる。
cronで実行すると、環境変数PATHが無いから、失敗するとか
各言語とは関係ない。
ほとんどのプログラマーは、LinuxなどOSの実行環境を知らないし、構築もできない んなことねーよ
お前の周りの(脳内の)ヘボクラマーだけだよ
それより、実行画面が直ぐに消えます(出ません)
辺りの質問が減った(消えた)と思う
最初に出る質問は此方の方が高いと思ってるのに……
Return がいまいち理解できないんですがどういうイメージですか?
>>232 return true false みたいなやつとかもわからん true 成功
false 失敗
return 返り値
成功 してるなら ?の値を返す
true if return
失敗 してるなら ?の値を返す
false if return
初心者ならtrue or false return 0
は、考えなくても良いと思う
そういう事言い出すと
__init__
self.
を付けたほうが良いとか何とかで平行線
class aiueo:
____def __init__ うんたらかんたら カッコ
self.body うんたらかんたら カッコ
return カッコ カッコ とか
class や def の段階で、面倒だし……
必要なら持ってくる程度
記述に拘るなら、
Azure machine Learnigで大量のオープンソースコード読み込ませて
評価値の高いコード参考にすると良いよ
超初心者です失礼します
参考書パラパラ読んだところで何か作ってみようと持てる知識で書いてみました。
import random
print("じゃんけん")
te = input("手を入力>>[グー:0,チョキ:1,パー:2]")
teban = ["グー", "チョキ", "パー"]
aite = random.randint(0,2)
print("ポン!")
print("あなた:" + teban[int(te)] + " あいて:" + teban[aite] + "\n" )
te = int(te)
if te < aite:
if te * aite == 0:
print("あなたの負け・・・")
else:
print("あなたの勝ち!")
elif te > aite:
if te * aite == 0:
print("あなたの勝ち!")
else:
print("あなたの負け・・・")
else:
print("あーいこー")
=======
isdigitとか色々加えなきゃいけない箇所は多々あると思うんですが
if文のところがセンス無さすぎると痛感してます
こういうセンスってどうすれば磨けるんですかね?
>>236
書いてなくてなんとなくでやってました。これからは書いてみます
ありがとうございます! >>234
間違えてた
オープンソースだけど、、ソースコードを公開している訳では無い
誰でも自由に利用(複製、配布、改良)できる
勘違いしてた なんで引数にselfがいるの?
全部のメソッドに書くんならいらないと思うんだけど
Pythonはクラスメソッドと通常のメソッドを完全に区別してるからね
そりゃできるだろうけど何らかの理由でGuidoがそれをしなかっただけだ
多分可読性だと思う
メソッド呼び出しの構文は一種のシンタックスシュガー
selfの解決には介入可能と示すために明示的な引数にした、みたいな推測をしている
foo.method() # このAクラスのインスタンスのメソッド呼び出しは
A.method(foo) # これと同じ(継承したメソッドを使いたい場面で見かけるイディオム)
引数でインスタンス渡すと実行コンテキスト考えなくて済んで
ふつうの関数実装そのままつかえるからじゃない?
実際の実装はそう単純じゃなくなってるとはおもうけどOO導入時の解決策としてはあり
パソコンにデフォルトで入っている奴は
いつになったら3になるのかな?
デフォで入ってるのなんてなんでもいい
あれは ユーザが使うために入ってるんではなくてシステムが使うために入ってるから 古い2使ってるのもpythonの問題というよりシステムの側が対応してないから2なんだろう
>>250
デフォルトの定義とOS、ディストリビューションによるけど、基本的には2と3が共存できる環境を整えてから、各パッケージが移行していく
Debian系だとデフォルトで2と3好きなほうを選べる
RHEL系でも8からPython3選べるようにすると思う
2を選べなくなる日は何時か、という質問だったら環境に関わらず現時点では2020年 >>254
どうして、そうなった?
2020年の根拠は何処なんだ? >>253
>Debian系だとデフォルトで2と3好きなほうを選べる
嘘をつくな >>256
嘘と思うなら試してみればいいよ
それとも2と3デュアルスタック状態になる移行プロセス理解してないのか >>257
嘘を拡散するな
Debian系って具体的に何のディストリでバージョンいくつかかけよ
DebianはPython2.7に依存してるから好きな方を選べるなどという選択肢はない
Python3がほしいならOSインストール時に選択するかaptで入れる Fedoraだとインストール直後は、python2がなくpython3だけ入った状態になってた
[uhohongu@localhost ~]$ python
bash: python: command not found
https://pastebin.com/fg2Cw5d9
これはあれ?デフォルト?
ていうか、いきなりウェブ管理ツールみたいなの動いててびっくりした ネットからCSVファイルをダウンロードする際に文字コードを指定、または返還してダウンロードする方法ありますか?
pythonでフロントエンドからのフルスタックやりたいっす
>264
どんな問題か知らないので考え方が間違っているかどうかは分からないけれど、、
エラーが出ているのは、標準入力を空のままで実行しているからだよ。
まずは、ideone.com の、enter input (stdin) のテキスト入力エリアに、問題サンプルのデータを入れると良いと思う。
何回も言ってるけど、wget, curl, 圧縮解凍ソフトなど、
すべての個別アプリは、日本語でテストしていない
何回も言ってるけど、信じない人が多い。
ファイル名のようなシステムに、日本語を使うな
英語以外の言語では、誰もテストしていない
>264
問題文読んできた。
貼り付けられたコードではうまく動かないよ。以下の修正が必要。
1) raw_input()で得られるのは文字列。数値として扱いたいなら、int(raw_input())とする。
2) 最初の3個のデータだけでなく、10個のデータを読むことが必要。
3) リストを降順に並び替えしたいなら、lst.sort(reverse=True)
4) print(lst) とすると、リストのデータが、横一列にカッコ内に印刷される。問題では、3行に出力することが求められている。
5) lst[0:2] で得られるのは、リストの最初の2つの要素。lst[2]は得られない。3つ必要ならば lst[0:3]とする。
>>268
ありがとうございました
int型とsortを逆にする所を修正して、正常に実行しました
標準入力ではテストを簡潔にするため3回にしており、出力を2個までと
適当に記載してます(ご指摘ありがとうございます) 大体の人はチンカス臭いけどね
いやむしろチンカスが臭くない人などいないんじゃないかと思うようになってきたよ最近
>>268
raw_input()を使うってことはpython2だと思いますけど
input()を使うほうがいいと思いますがint(raw_input())を使うメリットはなんですか? >>272
メリットじゃなくてデメリットや脆弱性を回避するため
python2のinputは入力を式として評価するので
例えば__import__("os").system("rm -rf /")みたいな入力も受け付ける pythonのシェルってbashみたいに↑押したら履歴の文字出てくるのできない?
ないのでOSの機能を使う、dos窓とかGitHubのシェルとか
ビルド時にreadlineか互換ライブラリにリンクしていないとhistoryは使えない
>>278
osの機能?
ubuntuでもできます? 素人が、は余計だ。
玄人には素人を見下す権利が与えられていると思ってるのか?
bashでreadlineを無効にしてコンパイルする方法を教えてください
configure
make
make install
でできます
初心者から進めないと頭が可笑しくなる病気が有ると思う
むかし、かかってたし……。
bashでreadlineを無効にしている人がデフォールトか
>bashとか関係ないから
>bashとか関係ないから
>bashとか関係ないから
configureのスイッチで有効無効を切り替えている訳ではないので、
無効にするならconfigure~makeだけでは駄目。
readline-devel(環境によってはncurces-develかも)を削除してconfigure~makeすれば無効になる。
configureのオプション(スイッチ)じゃないって言ってるだろ。
人の話は正しく聞けよ。本当に頭おかしいのか。
Pythonスレで延々bashの話してるのは低脳と言わないのか?
>pythonのシェルってbashみたいに↑押したら履歴の文字出てくるのできない?
ヒストリ機能をオフを前提に答える>>279、>>282。
>>素人が嘘教えるな
草 >>297
超初心者スレでそれを越えた話を延々とやってるだろ まったくだ
人間とゴミクズを同列に扱うべきではないな
とりあえずrlwrapかませば?
うごけばラッキーくらいの気持ちで
sqliteを使いたいと思ったのですが
sqlalchemyを使うのが常套手段なのでしょうか?
日本語の解説が少なくて本屋に行ったのですが
sqlalchemyの紹介が1ページあるぐらいでした
皆さんはどうやってsqliteを使っていますか?
>>305
標準ライブラリだけでは不足していると感じる部分がありますか? 日本語の解説が必要ならPythonを選ぶべきではないって
チュートリアルに書いとけよ
プログラマならどんな言語覚えるにせよ、英語読めないと不利。
pythonはwindowsに優しくないわ
有名ライブラリがpure pythonじゃないから詰む
>>311
凝ったことしようとするからだろ
テキストファイルを読んで何かやって書き出すくらいの用途に限定しとけ
その範囲内なら地上最強の言語だ MS謹製言語以外は大抵そうだろ。
大体はC/C++で書かれたライブラリのラッパー。
すでにライブラリあるのに車輪の再発明してどうするよ。
と、同じくWinでHaskellで同じ問題で詰んだおいらが言う。
日本製のRubyでさえ教祖がLinuxなお方だよ。
>>314
そこは既に見ていましたが
リレーションのやり方までは書いてないんですよね
どこもdbの作成の仕方程度しかないので、もっと実践的な解説がほしいんだけど、ここにいる人はdb扱ったことなさそうですね Pythonの、O/R マッパーだろ
「python or mapper」で検索!
SQLAlchemy, Django とか
DB設計は、言語に関係ない
where の条件に、インデックスが付いていなければ、O(n)の線形探索になる。
皆、ミックの本を読んだり、DBの実行計画を見ながら、DB設計している
DB設計やsql文の発行など他言語で習得してます。pythonならどうするのかを知りたいだけです
>>320
分かってないだろ。全然伝わってこない。 >>320
そこまで理解してるというのなら公式のリファレンスで十分だと思うが WEB+DB PRESS には毎号、MySQLとか、NoSQL の記事が載っている
言語など関係ない
>>320
>>317みたいな疑問持つならSQLiteの基本すら理解できてないってことでしょ
Pythonでの扱いは他のスクリプト言語と似たようなもの >>321
なんでそこのリンク貼るのかわかりませんが、そこも既に見たことあります ちょっとカッとなって、教えてもらう立場なのに横柄な態度になったのは謝ります。
語弊があったようなので訂正します。
SQL文でRDBの設計はできる程度です。
pythonならORMやフレームワークなりで手軽にできるのかなと思い質問しました。
調べるとsqlalchemyを使うらしいので
sqlalchemyを使った実践的な解説のあるサイトか書籍があればと思い質問させていただきました。
ここまで丁寧に言わないと伝わらないのは確かにくだらないですね。
日本人は圧倒的に、Rails
クックパッドの規模でも、RubyVMを作った、笹田耕一が入社したように、Railsで困らない。
Railsで困るのは、GitHub ぐらいの規模
だから、Django とかで作っている人が、ほとんどいない
Pythonを使う人は、数値計算・アルゴリズム関係。
Webサービスは、Rails
この煽りのビッグウェーブ逃したら後はないぜ
ぐずぐずしてる暇はない今が最大の煽られ時だ!
ちょっと前まではこんな書き方したらツンデレと言われるのが普通だった気がするが、
今は真面目に注意されるんだ
もう死語なのかな
ネット民にも高齢化の波が来ているからな
年寄りは気が短い
去年もこのスレで同じような事してた人だよ
故意でやってるのか、無自覚の病気なのか、とにかく書き込むごと余計な一言を付けまくる
丁寧な文章でも最後の一文で台無しにする特徴的なスタイル
余りに酷いので実生活まともに送れてるのか逆に心配されてたほど
あんな特徴的な人は中々出会うものじゃないし記憶に残る。同じスレだしきっと同一人物
>>344
まったくそうですね
以前からずっといますが恐らく同一人物でしょう
あなたの見解に同意します
だがそんなことはっきりわからんしお前が病気だろ 最近の若い子はリアルとネットを混同して考える癖があるらしいな
最初からネットがあるのが当たり前の時代を生きてるから
そのうち「ネットでも敬語を使うべきでしょう!」とか言い出すんじゃない?
爺さんは「いいことした」のつもりだろ、余計なことをしてるのに
ハンドルネーム(笑)とか使ってた時代のおっさんの考えだよな
いや、2chなんて今となってはおっさんの巣窟だから別におかしくはないか
おーいおっさん
>>351
おっさんじゃない君は
遠慮しないで本名で書き込んでいいよ ruby書きたくないのでrailsの勉強はしないのでdjangoとかflaskを選びました
pythonでwebサイトを作る場合のホストの立て方が分からないんですが
http://localhost:8081/というホストに複数のプロジェクトを作るにはどうやるのでしょうか?
1プロジェクトごとに1ホスト作っていくのは大変なので・・・ djangoやflask使ってるならuwsgiかgunicornが多いかな
大したことしないなら開発サーバにリバースプロキシでもアリっちゃアリか
>>355
フレームワーク使うなら、普通にrouteでわけるだけじゃだめなの?
それともapacheとかnginxみたいなwebサーバがないと、Webサービス作れないと勘違いしてたりする? flaskの場合hostとportを指定して起動できるので
プロジェクトごとにportを分けてこうするのが思いつきます
python project1.py --host 127.0.0.1 --port 8081
python project2.py --host 127.0.0.1 --port 8082
python project3.py --host 127.0.0.1 --port 8083
常にアクセスできる状態にしたいのですがこうやってサーバを立ち上げてると
プロジェクト数に比例してプロセスが増えていきます
フレームワークのルーターで分ける方法もありますがごちゃごちゃするので
プロジェクト毎にファイルを分けたいのです
別にWebサーバ+wsgiモジュールがよくないと言ってるわけじゃないよ
ちょっとやりたい事が掴めなかったから聞いてみただけ
自分はapacheとmod_wsgi使ってる。
mod_python使えば
使ってる人ほとんど見かけないけど
True or False and False は Trueである
か?
>364
and の方が or より優先される。
* が + より優先されるのと同じ。
なので、
1+0*0=1
と同じように、Trueになる。
>>366
あーなるほどそれでか、ありがとうございます。
なんでandの方が優先される理由とかありますか? pdbシェルでジェネレーターの返す値を見たい時ってどうします?
p next()したら見れるけど一個進んでしまいます
>>367 亀だけど
論理演算の短絡評価によりTrue orの時点で式の評価は終わるのでandの計算は行われない
インデント潰れるけどバイトコードの逆汗貼っとく、3(or)から15(return)にjumpする
>>> import dis
>>> dis.dis(lambda: True or False and False)
1 0 LOAD_CONST 1 (True)
3 JUMP_IF_TRUE_OR_POP 15
6 LOAD_CONST 2 (False)
9 JUMP_IF_FALSE_OR_POP 15
12 LOAD_CONST 2 (False)
>> 15 RETURN_VALUE >>372
それは and の優先順位が or より上という結果であって and の優先順位が上の理由ではない 何でhexは文字列を返すのに'0x1'じゃなくて0x1って表示されるのか教えてください
print(hex(1)) # 0x1
print(type(hex(1))) # <class 'str'>
何でリストで囲むとちゃんと'0x1'って表示されるのか教えてください
print([hex(1)]) # ['0x1']
print([type(hex(1))]) # [<class 'str'>]
プログラミング自体初めてで、Pythonをやろうと思うのですが
一番最初におすすめのサイト教えて欲しいです
or
1 + 0 = 1
and
1 x 1 = 1
だから
>>383
公式のリファレンスが一番参考になる
具体的に何を作りたいの? utf8のファイルをcp932にエンコードして、CSVとして保存しようとするとエラーになることがあります。
変換出来ない文字があるためです。
こういった場合、サクラエディタでの文字コード変換のように、変換出来ない文字を無理矢理変換する方法などないでしょうか?
キーワード引数にerror='ignore'とかだったかな
>>385
まだ何を作りたいとかは具体的に決まってないです(Pythonおすすめされてたので始めた)
単なる願望で言えば、人工知能系?(siriやりんな)を作ってみたいです なるほど。
望みは遠く果てしなく…まあ先は長いが頑張り給へ。
我が輩は半年学んでジャンケンゲームが作れるようになった。
プログラミングやりたいです
でも作りたいものはありません
この時点で向いてないと思う
既存のアプリじゃ物足りない
今までにないようなアイデアがあり実現したい
が、やる動機でしょ
目的なくやっても時間の無駄
教えて下さい。
Ubuntu環境下で
文字列入力をし、入力文字列をコピーバッファに渡して終わる処理を考えています。
Pythonで実装しようと思うとどの辺をimportすると出来ますか?
コピーバッファってなんぞ?
X11のクリップボードのことでいいのか?
text='abcde'
result=re.sub('abc(de)','ABC\1,text)
これはうまくいくんですけど
textを標準出力から受け取ったりすると
\1の所を\\1でエスケープしないと上手くいきませんでした。
エスケープしないといけない場合って
どういった場合になるんですか?
よろしくお願いします。
>>392
プログラミング始めた人は必ずしも具体的に〜〜を作りたい、と目的を持ってやるもんなんですか? siriやりんなのようなものを作りたいんだろ?
やりたいことがないわけじゃないし行ける行ける
>>399
目的があってやったほうが上達は早いだろうな
とりあえず人工知能の作りかたを調べて、わからないことが出てきたら調べればいいんじゃない 目的なんか無くてもなんとなく面白そうで良くない?
いきなり機械学習とかは難しいと思う、あれは線形代数とか数学できないと厳しいでしょう なんか身の回りの自動化とかツールを作るとかスクレイピングとかから始めた方が良さそう
>>399
目的なく、ただ漠然と授業であるからとか、
そういう系の仕事につきたいからという理由のやつはいるけど、
むしろそういうやつのが多いが、
長続きしないし、覚えも悪い。
やりたいことがあるのは才能だと思う。
俺の場合あり過ぎて時間が足りないぐらい。 >>405
> 目的なく、ただ漠然と授業であるからとか、
> そういう系の仕事につきたいからという理由のやつはいるけど、
ここは python スレだぞ... 一日が48時間になあれって柱に書いてる漫画家がいたなあ
48時間になったら増えたぶん遊んでるだろうけど
ちーっすコマンドの実行結果を受け取る方法教えて
bashで
ID=$(basename $1)
ってのをpythonでやりたいんだけどぐぐってもパイプをオープンとかしか出てこない
マジでそんな面倒な方法しかないの?
>>399
そんなこたぁないよ
昔のハッカーは単にコンピュータが好きだからとか頭使うのが好きだからやってただけ
アルゴリズムとかデータ構造学べばいい python書く仕事がしたいんですけど
どうやって求人探したらいいのか教えてください
東京です
>>412
シェルコマンドの実行結果をpythonのプログラムで受け取りたいなら
パイプでつないでsys.stdoutを利用すればいけるんじゃない >>412
あれ? これって「pythonのコマンドの実行結果をbashで受け取りたい」ってことなのか?
もしそうならbashのバッククオート(``)記法を使えばプログラムの出力内容をbashコマンドとして実行できるよ >>417
うちの会社で受託したソフト開発の言語を10年分集計したことがある
adaは1件あったけどpythonは0件 >>417
そういう業界話はプログラマー板でやって欲しいんだけどな
「仕事の愚痴」とか「業界のお話」がプログラム関連の話だと勘違いしている奴が多いから >>417
python限定のプログラマーじゃ職探したいへんだろうなあ。少なくともうちじゃいらんわ AIZU ONLINE JUDGE で
2000: Misterious Gems 以下までなら、
ココに居る人間でも解けるよな?
>>424
n = int(input())
for _ in range(n):
____直角三角形問題を解く関数
という形にすればいい >>425
python3じゃないからinput()じゃなくてraw_input()だったわ
ついでに"4 3 5"みたいな1行の入力は
input().split()で
['4','3','5']というリストに分割できる
ひとつひとつの数字を数値に代えたかったらmap関数を使って
map(int,raw_input().split())にしてもいいし
リスト内包表記で
[int(i) for i in raw_input().split()]でもいい >>425
ありがとうございます
失礼ついでにお聞きしますが、
空白で区切る場合にはmap関数を使用するのでしょうか?
申し訳ないので、返答は任意でお願いします >>427
リストを空白で区切った文字列にするってこと?
それなら文字列メソッドのjoinを使う
' '.join(['4','3','5'])
で"4 3 5"という文字列になる。
空白以外にも区切り文字を自由に選択可能
ただし、joinメソッドを使うには配列の内容も文字烈じゃないとダメなので
[4,3,5]みたいな数値の配列を文字列にしたければ、
これもリスト内包表記かmap関数を使って文字列配列に直さないといけない。 暇だと荒らすよね……荒らしに飽きて問題に取り組んでます
はい……そんな感じです
スレ違い 失礼
>>433
公式ドキュメントの何処を見たら良いのかさえ不明でしたので、
助かります
そろそろ、(僕だけの質問ばかりで)他の方に迷惑なので、この辺で一旦
手仕舞いにして置いた方が無難かと……助言 どうも、ありがとう です >>430
匿名掲示板で「相手がだれか」とか気にするのか? >>417
プログラミング能力あるなら取り敢えず入れるかもだけど、絶対別の言語も使わされるよ。
もと言うか、別言語ばかり。 >>436
ふーん そんなもんなのか
最近の若い子は生まれたときからネットがあるから
ネットにもリアルの人間関係を適用して
「ネットの書き込み」と「書いた人の人格」を切り離せないって
聞いたことあるけど 本当なんだな >>439
つまり、スレの内容にあった投稿ができる荒らしのほうが
自治厨モドキみたいな投稿しかできないお利口さんより
マシってことだな さらに言えば botが一番
botは自分語りも他人語りもしないからな
誰か面白いpythonの質問作れるbot作ってくれ
>>417
ハローワークに行けば?
Rubyの求人は見るけど、Pythonはあまり見ない 書いて良いのか不明
import pandas as pdを使いたい
Traceback (most recent call last):
File "untitled006.py", line 5, in <module>
import pandas as pd
ImportError: No module named pandas
------------------
(program exited with code: 1)
Press return to continue
取り敢えず、ggった通りに実行しました
$ sudo pip install setuptools -U
Installing collected packages: pyparsing, packaging, appdirs, setuptools
Successfully installed appdirs-1.4.3 packaging-16.8 pyparsing-2.2.0 setuptools-35.0.2
パッケージはインストールできたと思いますが、
pandas as pdが同じエラー文で使えません
$ pip install pandas as pd を試しましたが、要件を満たすバージョンが不在
Could not find a version that satisfies the requirement as (from versions: )
No matching distribution found for as
と出ております
$ pip listでリストを取得しましたが、何が有れば良いのかさえ不明です
・何を参考にしたのかはURLで示せ
・pip listでリストを取得しました→そうか。じゃあ貼れよ。判断はこちらでする
>>446
例え、僕が望む答えを知っていても
偉そうな君には教えて貰いたくないです >>438
逆の印象だが
おっさんはリアルと区別できず
ネットでもリアルの感覚で配信する
若いやつは区別して演者と化してる インストールならpip install pandasでいけない?
import pandas as pdはプログラム書くときに使う
ダメっぽいです
略
UPDATING build/lib.linux-i686-2.7/pandas/_version.py
set build/lib.linux-i686-2.7/pandas/_version.py to '0.19.2'
running build_ext
building 'pandas.index' extension
creating build/temp.linux-i686-2.7
creating build/temp.linux-i686-2.7/pandas
creating build/temp.linux-i686-2.7/pandas/src
creating build/temp.linux-i686-2.7/pandas/src/datetime
i686-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g
-fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ipandas/src/klib -Ipandas/src -I/usr/lib/python2.7/
dist-packages/numpy/core/include -I/usr/include/python2.7 -c pandas/index.c -o build/temp.linux-i686-2.7/pandas/index.o -Wno-unused-function
pandas/index.c:4:20: fatal error: Python.h: そのようなファイルやディレクトリはありません
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-Wr93dE/pandas/setup.py';
f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))"
install --record /tmp/pip-jfGDoX-record/install-record.txt --single-version-externally-managed --compile"
failed with error code 1 in /tmp/pip-build-Wr93dE/pandas/
ubuntu等のDebian系ディストリだとaptでdevパッケージが分かれてるから入れてやんないといけないけどそういうのかな
そもそもpythonが入ってないのでは?
ホームページからpython3をインストールするとpipが使えるようになる
ちなみに、おれは独学のなんちゃってだから過信しないでくれ
1〜10まで聞いて申し訳ないのですが
連立方程式
ax+by=c
dx+ey=f
問題自体は簡単なのですが、解き方が複数存在しており
どれを選んだら良いのかが解りません
from sympy import *
をすべきか、など 相談させていただきます
基本的に加減方が好きなので、そちらにしようかと……悩む
>>451
それだと思います
linux mint18使ってるので多分それだと思います
今はさほど、重要では無いので保留中です 2chには、2chのルールがある。
お前は他人に質問するにあたって、ルールを守っていない
この板では、どういうように質問を書くのか、決まっている。
ルールに従わないのなら、消えろ
ここは、お前が考えているほど、他人を馬鹿にしてよい場所じゃない。
皆、真剣に、問題を解決しようとしている場所だ。
遊び気分で、ここに来るな
>>446
は間違った事は言っていない。
相手に口答えする、お前の方が悪い 入力した数値と同じ数値がnじょうの何処にいるか調べたい
※複数の桁が入力されたら分割して、ひと桁ずつ調べる仕様
n=[0,1,2,3,4,5,6,7]
print n
import math #mathの使用
x=int(raw_input())
oop=int(math.log10(x)+1) #桁調べ
print oop#確認
xx=map(int,str(x)) #xを分割
print xx
i=0
while i<oop:
________print n.count(xx[i])
________#print n.index(xx[i])
________i += 1
入力の最初が0だと、行数がカウントされない問題などを
踏まえて教えて下さい
入力が012なら3行と考えたい
しかし、今のコードだと2行と判断する
別の方法とか、おねがいします
>>459
oop =int(math.log10(x)+1) で桁数を調べているみたいだけど
len(str(x))でいいんじゃないの? >>460
数値の最初が0だとstr関数使えないな 忘れて lenだと文字列なので、int型の数値では直接は数えられない感じです
一度、文字列に変換すると可能でした
nの方を辞書型にして、入力値から直接アクセスしようかと思ったのですが
0:0 1:1 2:2 3:3 などに成るなら、配列で扱っても同じかと思ってます
n = [0, 1, 2, 3, 4, 5, 6, 7]
for a in map(int, raw_input()):
print(n.count(a))
数値を入力するとtrueが返って来て1が出力
8個を超えたら0が返る
再確認
n配列の何番目かを調べる
入力
245
出力
356
う〜ん、地道に調べてみます
良いのが見つかったら教えて下さい
なるほど
n=[0,1,2,3,4,5,6,7]が存在しており、
入力値(複数の値)を受け取った時にnのリストに存在しているか調べる
入力形式:12345
出力形式:23456
無いなら、存在してないとメッセージを表示
入力された数値はひとつずつ調べる
入力形式:2215
出力形式:3326
ひとつ目2なら3 ふたつ目2なら3 みっつ目1なら2 よっつ目5なら6
配列が順当なら、入力を分割して+1したら、結果でるなぁ〜とか思いつつ
問題を提出したら、nがランダムに入れ替わる仕様で苦戦してます
仕様
入力される値が不明
nのリスト値が不明
問題点
入力された値の分割方法が不明
ランダム値のnリストの何番目か調べる必要が有る
追記:n=[0,1,2,3,4,5,6,7]は例として、書いてます
バカに教える奴がいるからつけあがる
お前らが優しいのは良く判ってるけど少しは相手見て欲しい
このスレを健全な場所に保つ為にも最低限の礼儀が無い奴はスルーするべき
質問する奴も最低限の礼儀はわきまえろよ
答えてる奴だって貴重な時間割いて考えてるんだ
もうちょっと敬意を払えよ
>>468
>最低限の礼儀
匿名ネット掲示板での最低限の礼儀ってhttp通信規約以外にあるのか? >>466
性能求めなくていいなら
for x in 入力
for y in リスト
if x == y:
見つかった時の処理
break
みたいな感じでいいんじゃね?
見つからなかった時の処理はあえて書いてないから自分で考えてね >>469
まあ礼儀って言うか例えば嵐行為はしないとか程度はわきまえてくれるといいよね 412へのレスがウケるな
パスのbasenameがほしいに決まってる
>>472
荒らしに構う奴も荒らし理論で言ったら必死チェッカー貼って
「お前ら必死チェッカーくらい確認しろーッ!」っていうのも同じくらい荒らしだよ
>>473
プログラミングで忖度とかやめといたほうがいいよ [4, 5, 6, 2, 1, 3]
入力 2
以下、出力
2 4 0 [2]
2 5 1 [2]
2 6 2 [2]
2 2 3 [2]
2 1 4 [2]
2 3 5 [2]
2を入力したら、6を返したい
4を入力したら、1を返したい
オーマイガー
[4, 5, 6, 2, 1, 3][2]->6
[4, 5, 6, 2, 1, 3][4]->1
って意味じゃね
君のツイッターかなにかかに対して
そうですって返したのかと思った
>466
何をしたいのか、よく分からん。
問題文を、そのまま書き写して掲載してほしい。
nの制約についても、情報が不足している。0から9までの整数しかnには入らないのか? 同じ数字は一度しか出てこないのか、など。
> [4, 5, 6, 2, 1, 3][4]->1
これはいいとして
> [4, 5, 6, 2, 1, 3][2]->6
の意味がわからんのは俺だけ?
n=[4, 5, 6, 2, 1, 3]
配列 n の数値は重複なし
入力が何番目か調べる
x=int(raw_input())
n.index(x)
xが複数桁だった場合、分割して調べる←不明
入力:15 出力:41
入力:456 出力:012
入力:2153 出力:3415
サンクス
なるほどわからんw
公式ドキュメントは説明が足らないの多すぎ
>>484
コマンドラインでpythonの仕様を確認したいときとかに使うことあるよ
例えば、pythonでは一度のセッションで作った数値は基本的にずっと同じメモリが確保されるので同じIDだけど
大きな数値になると、メモリの節約のためか、毎回違うメモリを確保するんだなぁ〜とか
>>486
デバッグのためにある場所で生成したオブジェクトが期待する場所にちゃんと渡っているかを確認したりするために使うとか
まあ >>485 の言う通り普通のプログラムでは使わないからそう言う関数があるってことだけを覚えておけばいいと思う クソ見たいなお前らに聞いたのが間違いだった
自分で解いた方が断然速いは……約に立たない道具だな
ここは、日記帳じゃない。
エラーメッセージで検索するとか、勉強してから書き込めよ
ぽっと出の新人のクセに、書き込むのは早い。
半年ほど、ロムってから書き込め
漏れらは何十年も、ここで生活してるんだから、
まず半年ほど掛かって、ここのルールを勉強してから書き込めよ
皆、荒らしに相手するな
ここは、まともな人だけの掲示板
くだすれだから、くだらない質問でもいいんだけど、
そのくだらない質問を考えてもらうんだから、
質問者は最低限の礼節はわきまえるべきだよな。
匿名掲示板だから、他人を馬鹿にしてもよい、って考える方がおかしい
コメントの後ろに、生身の人間が生きている事を、想像できないのだろ。
漏れらは何十年も、ここで生活している
まともで、生身の人間。
OSSにも貢献してる
初心者の問題に中級者が答えると言うのは分からなくもない
10年以上のベテランが、こんなスレに居るとは世も末だな >>488
>>487
そうですか
オブジェクトはそれぞれidを持っていてそれを見る関数かid()ってことですね
imutableとかis演算子とかの意味もこのidで説明できると さすがに糖質の相手するのは無駄だと気づいたか
チェッカー貼られた時点で気づけると尚よかったな
せっかくのGWに嫌な思いせずに済んだろうに
基礎を理解せずいきなり応用問題に挑んでも行き詰ることを学ばせ
頭の中の考えを正確に他人に伝える難しさを学ばせ
最終的に
>>490 > 自分で解いた方が断然速い
を悟らせたおまいらは素晴らしい >>494
その「まともな人」とかいうマヌケな集団から俺は除外しといてね >>503
どうした?pythonと関係ない話で馴れ合いでもしたいのか? >>585
良いこと言った
匿名掲示板でいちいち必死チェッカーなんて見たくないしな
そういうのはtwitterの
「俺の140文字のツイートを理解するには俺が今までに投稿した1万以上のツイートを読んで俺という人間を理解してね」
でお腹いっぱい >>510
気にしないでくれ
どうもpythonのお勉強より「まともな人間」をやっている方が
このスレの趣旨にあっていると勘違いしている奴がいるだけなんだ >>513
いや口で言ってるわけじゃなくてタイピングだけど >>518
最初は分かんなくても>>430で荒らしと指摘されてんだろう。それを分かってもかまっているだろう。 俺も学歴が高卒で、劣等感が強い(まぁ、いいけど……)
ID履歴を見たが、荒らし後に質問して、
そのまま質問しつづけた、と言うだけで、(質問)途中で煽って無いな
最後の捨て台詞は面白かったが、注意してる方が残ってスレを荒らしてる?
想像(イメージ)なんだが?
>>519
荒らしっていうのはスレの機能を停止させている奴のことだ
質問は別に荒らしじゃない
それとも「プログラム板全体倶楽部」にとっての荒らしだって言いたいのかな?
俺は別に入会してないからどうでもいいや perl5見たいに下記を
x=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
ワンライナーで書く方法とかないの
my @aaa=('A'..'Z');
x=raw_input().split()
print x[0],x[1]
入力した、x[0]からx[1]番目を取り出す事ってできませんか?
雪風「○○○きもちぃい!!○○○きもちぃい!!○○○きもちぃイィのぉ〜〜〜」
雪風「マジこの○○○神なの!?!」
「○○○良い、○○○良い、○○○イク、○○○イク」
「○○○ イっちゃうのぉ〜〜〜〜〜」
「○○○は荒らしなのぉ〜〜〜」
>>531
少し疲れてるんじゃないか?
良く休めよ 雪風「あっふぅ〜〜〜〜」
雪風「今日も可愛くハレバレしちゃう」
雪風「○○○きもちぃい!!○○○きもちぃい!!○○○きもちぃイィのぉ〜〜〜」
雪風「マジこの○○○神なの!?!」
「○○○良い、○○○良い、○○○イク、○○○イク」
「○○○ イっちゃうのぉ〜〜〜〜〜」
「○○○は荒らしなのぉ〜〜〜」
雪風「見ちゃらめぇなのぉ〜」
雪風「見て欲しいの欲しいのぉ〜〜〜〜」
雪風「○○○イっちゃう!!、○○○イクiku、」
雪風「○○○最高なのぉ!!! マジ神なのぉ!!!!」
雪風「見てっ!!!」「見ないで!!!」
雪風「だらしない○○○見て!!!!」
雪風「○○○イクノォォォォォ」
雪風「頭の中がイッチャてるのぉ〜〜〜〜きもちぃぃのぉおおおおおおおおおお」
雪風「規制されちゃうのぉ!!」
雪風「○○○規制されちゃぅのぉ!!?」
雪風「こんな、○○○見た事ないのぉ!!!」
雪風「奇声が気持ちぃぃのぉおおおおおおおお!!!!!!???」
>>394>>395>>397
ありがとう、これぞ目的の物です。
入力画面を作ればあとは入力のみ助かりました。
>>396
カットバッファーとかクリップボードとか…
OSによって表現が揺らぐので困ります。 pythonスクリプトをファイルから読み込んで意図した時に実行ってできる?
script_str = 'def abc():¥n¥tfor〜'
exec(script_str)
みたいな感じで。。
途中でimportは有りそうだけど1回目のimport以降スクリプトを途中書き換えして再度importはおかしなことなりそう
個別にpythonファイルをプラグイン的に作れるようにしたい
出来るが
なんか基本が分かってないんじゃない?
難しく考える必要ないよ
どうしてもimportでやりたいのなら「python 再インポート」でググるとよろしい
ファイルをreadしてexecで済むと思うけどな
>>541
コードの再実行ではなくモジュールのリロードならimportlibであれこれやる 雪風「○○○きもちぃい!!○○○きもちぃい!!○○○きもちぃイィのぉ〜〜〜」
雪風「マジこの○○○神なの!?!」
「○○○良い、○○○良い、○○○イク、○○○イク」
「○○○ イっちゃうのぉ〜〜〜〜〜」
雪風「見ちゃらめぇなのぉ〜」
雪風「見て欲しいの欲しいのぉ〜〜〜〜」
雪風「○○○イっちゃう!!、○○○イクiku、」
雪風「○○○最高なのぉ!!! マジ神なのぉ!!!!」
雪風「見てっ!!!」「見ないで!!!」
雪風「だらしない○○○見て!!!!」
雪風「○○○イクノォォォォォ」
雪風「頭の中がイッチャてるのぉ〜〜〜〜きもちぃぃのぉおおおおおおおおおお」
雪風「規制されちゃうのぉ!!」
雪風「○○○規制されちゃぅのぉ!!?」
雪風「こんな、○○○見た事ないのぉ!!!」
雪風「奇声が気持ちぃぃのぉおおおおおおおお!!!!!!???」
returnの中で実行してるからそりゃ実行結果が返るだろ
returnが関数だと、その答えを求めて実行する。
結果、再帰になる。
>>547
return gcd と書けば関数自体が戻ってくるけど
return gcd(b, r) は
x = gcd(b, r)
return x
と同じこと >>547
「関数自身を返す」ときは
return gcd
こう書く
return return gcd(b, r)
みたいに関数名の後ろに()がついているときは
「関数を実行した結果」を返す なるほどそういうことか()があるからなんですね、ありがとうございました
でもreturnで関数が終わらないのなんかモヤっとしますね
Pythonってそうなんだ。。。。
ってか、gcdが組み込みにもあるからそうなんじゃ。。。
普通再帰ってreturnの関数実行したら結果が関数呼び出し待ちだからまた実行。。。って繰り返して基底部まで行き着くはずなんだが。。。
mygdcとか、絶対組み込みではあり得ない関数名じゃないとダメなんじゃないの?
>>554
pythonの関数は第一級オブジェクト、つまり数値や文字列と同じように扱われる
組み込み関数も例外じゃない。例えば組み込みの「print」というのも結局は変数名
printに新しい関数を定義することもできるし print = 1とか数値を代入できる
もちろんこういうことをすると組み込みのprintは使えなくなる 何と。。。
ん?
じゃあHaskellもか?
今度試してみよう。
すみません、pythonの問題集で、
↓こんなコードが用意されていて
import sys
for line in sys.stdin.readlines():
# ここに、文字列を分割して、出力するコードを書く
enemy = line.rstrip()
print(enemy)
入力
スライム,30
モンスター,23
↓
スライムが30匹現れた
モンスターが23匹現れた
とprint表示するようにコードを書き換えるといった具合なのですが、
#行には何を書き込めばいいのでしょうか・・。
カンマを”が”に変換するのかと思うのですが、方法がわからず困ってます
関数名() にすると、関数が実行される。
() は関数呼び出し演算子
Pythonの再帰処理では、末尾再帰の形にすれば、
ループ処理に展開するから、スタックを食いつぶさない
>>560
「python 文字列 分割」で検索!
文字列の分割・結合
split, rsplit, join 再び検索が上手くいかず、お知恵を拝借しに参りました。
今回はフォーカスです。
ウィンドウ名から当該ウィンドウにフォーカスを移す方法がわかる何かをお願いします。
何気にTclっぽい事が出来るのかな?と眺めていましたが結局掴みきれませんでした。
pythonは沢山モジュールがあるけど、いちいちを検索する良い方法が未だつかめず、お知恵をお貸し下さい。
python2.7で実行しています。(いずれ3にしないとなのだろうか…)
OSはUbuntu17.04です。(窓だとwin32guiをimportなどの例示を見ましたが、OSの垣根がある?)
何卒、何卒。
>>561
>Pythonの再帰処理では、末尾再帰の形にすれば、
>ループ処理に展開するから、スタックを食いつぶさない
サンプルコードをおしえてください >>562
ぐぐったのですが、先に答えだけ教えて頂けますか。すみません・・・ >>567
初心者とはいえそんな聞き方で教えてもらえると思うな帰れ >>567
ググるのはオフィシャルサイトの言語仕様やリファレンスみても
思いつかないときにしないと応用力つかないし
ココみたいにうそ書いてるときもあるから >>560
import sys
for line in sys.stdin.readlines():
# ここに、文字列を分割して、出力するコードを書く
line = line.split(",")
line = line[0] + "が" + line[1]
enemy = line.rstrip()
enemy += "匹現れた"
print(enemy) プログラマーってやたらと「鍛えてやろう!」って奴が多いのが不思議
仕事でやってる奴が多いから 後輩を鍛えてるのと同じ感覚なのかな?
>>560
「,」で分割したければline.split(",")だよ 一から十まで教えるとつけ上がるだけだからそれなら調べる方法でも教えたほうがという話
質問の仕方には特に何とも思わないけど、
嘘を教えるのはいただけねーわ。
特にあの、句読点の打ち方が特徴的な彼は、
よく回答しているからこそ回答には慎重にならないといけねえ。
>>578
ideoneで全作業してるとしたら標準入力が与えられてないからだと思われ ideoneではサンプル値を与えています
AIZU提供時にはサンプル値を消去し標準入力を与えています
>>580
ideoneにAOJに提出してるコードそのまま貼って
別にaojの結果ページそのまま貼ってくれてもいいけど ありがとうございました
精度エラーが検出されましたので、再度、考え直して見ます
テメェラのマッマはお前ら見たいなクソ共を産んで、らりってる
親が無能だから、猿みたいにケツ振って、生まれたんだから、お前らはクソだな
>>591
スマホから書き込んでるからね仕方ないね 画面に映るキモい顔が、見えてんぞ!!
こんな時間に家に居て恥ずかし無いのかよ!!
てめぇら、みたいな糞コードしか、書けない奴に
教えてもらう事なんて無いんだうお湯おyフォ@言うあ@おいせうふぉ
そして、俺は恋するユートピア!!!
恋と恋と恋とユーーーートピィア!!!!!
狼男でぎゃお、ぎゃお
って、ユーザー名でてるやん
さっきのは無しでお願いします
フリー素材化に気が付いた途端萎縮する荒らしくんすこ
Python歴1週間くらいです
Spyderを使っているのですが、スペースが全角で入力されているとエラーが出ます。
ぱっと見ではわからないので、区別させる方法がありましたら教えて下さい
何年か前やったとき文字化けしまくって諦めたけど
3の最新入れたら物凄く簡単になってるなあ
・全角スペースが可視化されるフォントを使う(例えばRicty Dininished)
・検索ハイライトを利用する
・エデイタのシンタックスハイライトを利用する
お好きなのをどうぞ
自己解決
xdotool関係を洗い直して見たらpython-libxdoと言うモジュールを見つけました。
これで目的が叶いそうなのでチャレンジしてみます。
ありがとうございました。
606を見つけて思う蛇足的な何か
xdotoolはX系では割とポピュラなコマンドなのだけど、
窓ではウィンドウを調べるとなると直ぐにwin32がしゃしゃり出る。
実際幾らかのpythonでxdotoolっぽい事をするに、ctypesを呼び出していた
昨今窓でもbashが動きlinuxモジュールの取り込みも盛んと聞く。(窓ないから事実はしらんが)
xdotool等も含まれれば、pyからのI/Oが統一出来るかも知れない。
そんな夢をみた。
>>604
文字コード関連が2→3へのアップデートの目玉みたいなところあるからな pytho36でpythonの変数をshファイルに投げて処理させようとしてるのですが、うまくいかないです
どなたか助けてください
#!/bin/python
import subprocess
from subprocess import PIPE
argvs = 'abcz¥nbbbx¥ncccx'
subprocess.run(['test.sh' argvs], shell=True, check=True, universal_newlines=True)
test.shの中身
#!/bin/bash
echo "$@" | sed 's/x/z/g'
['test.sh' argvs]
これは
['test.sh', argvs]
の間違いじゃなくて?
['test.sh', argvs]
の間違いです
すみません
LISP書いてたころによくこんなミスしたなぁ、一々,書くのがだるかった
あっ、もちろん
['test.sh', argvs]でもできないです
['test.sh'] + argvs.split('\n')でいけないかな
>>618
ダメでした
['test.sh',argvs.split('¥n')]も試したらリストはダメと怒られました >>619
['test.sh'] + argvs.split('\n')
と
['test.sh', argvs.split('\n')]
は違うよ call()にコマンドラインそのまま渡すだけだろアホだなお前ら
>>620
ダメでした
36でcallは廃止されていたと思います subprocess.run(["./test.sh", args])
subprocess.run(["bash", "test.sh", args])
これなら3.6で動いたぞ
>>623
> 36でcallは廃止されていたと思います
そこじゃねーよw
いいからコマンドラインで動かしてみろ
だからお前は馬鹿なんだよ こういう感じだろ。
res = subprocess.run(["ls", "-l", "-a"], stdout=subprocess.PIPE)
["ls", "-l", "-a"]
つまり、文字列のリストにすれば?
>['test.sh' argvs]
test.sh ファイルに、実行属性を付けたか?
それに、絶対パスを使うとか、
相対パスなら、./test.sh だろ
パス無しの、ファイル名だけで実行できるか?
高卒なだけある
会話が成立しないのが低学歴の証だよなあ
shlex.splitがクソ便利よ、リファレンスで使われてるだけある
>>624
できたーーー
ありがとうございまます
check=Trueが余計だったようです
全くの盲点でした またミスってしまいました
shell=Trueが余計でした
高裁待ちでやることねーからpythonでもやるわ。
全くプログラミング出来ないんだけど、いい本はある?
取りあえず、図書館で全部借りてくる。
スレ住民の民度が低すぎ
初心者が初心者に偉そうに教えるフリをしてるだけのクソスレ
>>636
オライリーの入門python3とか
オライリー本ならたいていの図書館にはありそうだし(多分) >>637
控訴文提出して、次は高裁で裁判(地裁済)
ま >>639
サンキュー。
が、図書館で見たが(オライリーなかった)どうも俺にはつまらん。
やっぱ、pythonは止めとくは。 辞めとけよ、知能の低いお前らだから、気づかないかも知れないが
自分のクビ締めることになるぞ
>>646
自演野郎 >>647
ワッチョイ有りだと一番困るのお前らだもんな >>650の意訳
「ワイは2ちゃんに精通しとるからのぉwなんぼでも自演出来まんねんwワッチョイなんぼのもんやでwwwどやさ?どやさ?どやさぁ?wwwww」 pythonやってはじめてプログラミングが楽しいと思いました
直観的に書けるのがすごくいい
・コレクション関連の操作が楽でいい
・オブジェクト指向意識せず書くこともできる
・デバッグが速い
参考書みながらまだ基礎の関数のとこまでしかやってないけど
頭にスムーズに入ってくる感じがいい
こいつの悔しさの根源がよくわからんw
馬鹿って色々大変なんだなぁ
python2.7 入力値が文字なら配列A 数字なら配列Bに分ける方法ないですか?
入力形式
AAA 6 80
BBB 33 500
CCC 99
l=[]
上記だと、文字形式として、入れる場合に
list.append(map(int,(raw_input().split())))
を使用しています
配列合計を調べるsumを使用したいので、文字列が邪魔で困ってます
>>659
typeかisinstance関数使えばおk 配列の最初を削除すれば良いのか すいません
ありがとうございました
正規表現は分かり難いから基本的には使わないけど、微妙に参考?にします?……どうも。
すみません
ブラウザ上の操作<ctrl+f>をスクリプトで記述するコマンドを探しております
どなたかご教示くださる方が現れるのを待ってます
さる理由でGUI上のコマンド入力を再現する必要がありますが、
非WindowsなのでUWSCが使えません
自己解決
keybd_eventで何とかなりそうです
非Windows
GUI
ブラウザ
が特定できないと誰もわからんとおもうが
keybd_eventってWindowsじゃないの?
>>666
linux mint cinnamon
firefox
環境は以上です
それと確かにkeybd_eventではありませんね <ctrl+f>を検索UWCXで実現したい?
linux mintでワインを使えばUWCXは使える
linux mint17 or 18 ?
Firefox52 or 53 ? その他?
linux mint 環境で pythonを使いGUI操作?
目的は、Firefoxの操作?
よくは解らないけど、アドオンが有った様な気がする
急バージョンなら、クローム入れてアドオンつけた方が速いかもね
どちらにしろ、窓より厄介だよ
>>669
一応UWCXも候補に入れておきます
Pyuserinputという物があるようなので、これを試してみようかと思います
ご教示ありがとうございました firefoxのコマンドラインオプションでどうにかなるかなと思ったけど
find用のオプションはないっすね
>>674
このケースなら完全一致だし正規表現使わなくてもいけるぞ >>675
本当ですか?! やってみます
ありがとうです >>676
基本的な間違いとして、l[n][n]はl[n][0]。
あと、p=〜とかの処理はマッチしなかった時にエラーになるので駄目。
素直にif re.match(l[n][0],"NBC"):でいい。
forの部分もfor n in l:でおk。ただしココを変える場合はl[n][0]はn[0]に。 見つからなかった場合にエラーが出ているのですが、どうしてでしょうか??
最後にelse文入れてるのでnoが出力されると思ってます
エラー内容
1he
Traceback (most recent call last):
if re.match(l[n][0],"NBC").group():
AttributeError: 'NoneType' object has no attribute 'group'
コード
https://ideone.com/I6LAtA 失礼しました
.group() をのけ忘れてました
失礼します
>>681
zipしてそれぞれの列をソートしてzipし直すでどうでっしょい >>682
>>683
ありがとうございます
インポート関連を2時間ぐらい調べたの嘘みたいです
ありがとうございました >>678-680
何の言語でも、そうだけど、
a().b().c() のように、メソッドチェーンすると、
途中で、nil が返ってくると、次の関数呼び出しが失敗する
a() の返値が、nil なら、nil.b() となり、
nil には、何のメソッドも無いから、呼び出せない 何と不憫な
メソッドが無いなら自己解釈して、形を崩さずに
次に行ってくれれば良いのに……。
次に行っても正しいコードじゃないんだから、正しい結果は得られないぞ。
見つかった場合の処理書いてないんでしょ?
見つからなかったらランタイムにエラー吐かせて終了って意図なら正しいコードで正しい動作。