2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

くだすれPython(超初心者用) その37

1 :デフォルトの名無しさん:2018/03/17(土) 16:32:25.91 ID:S1lkLDnv.net
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/

138 :デフォルトの名無しさん:2018/03/28(水) 07:55:50.50 ID:WKkXmrtt.net
>>137
いいですね、気持ちのいい緊縛

139 :デフォルトの名無しさん:2018/03/28(水) 14:46:32.18 ID:TfqKuNVG.net
最近出たオライリーのHead First Python
第2版は買いですか?

140 :デフォルトの名無しさん:2018/03/28(水) 15:32:48.18 ID:wWS6mS4+.net
Foot Last Pythonが出るまで待ちです。

141 :デフォルトの名無しさん:2018/03/28(水) 18:44:07.37 ID:c16Hwi83.net
Head Firstは人を選ぶから自分で判断しなさい
俺はデザインパターンのを買ったが5ページで挫折した
あのノリにはついていけん

142 :デフォルトの名無しさん:2018/03/28(水) 20:36:48.44 ID:m/YBLUNl.net
Hip Middle Python
は、いつ出ますか?
尻好きの私は待ち遠しくてたまりません。

143 :デフォルトの名無しさん:2018/03/28(水) 21:07:18.06 ID:zdJ231FE.net
Head Firstは意識高い系な雰囲気が嫌い
Java系ばっかだと思ってたがPythonも出てんのね

144 :デフォルトの名無しさん:2018/03/30(金) 15:05:36.16 ID:jcL5BjSg.net
python2.xと3.xを同居させられないの。
#ifdef(PYTHON3)
print('world')
#else
print 'world'
#endif とか。

145 :デフォルトの名無しさん:2018/03/30(金) 15:29:09.19 ID:pqp5DZ1s.net
>>144
__future__ で両対応せよ

146 :デフォルトの名無しさん:2018/03/30(金) 15:41:59.16 ID:LJCUuJpX.net
>>144
sixていうライブラリが便利

147 :デフォルトの名無しさん:2018/03/30(金) 15:49:21.37 ID:Ll1emnsv.net
threading.Threadのrunにwin32com入れるにはpythoncom.CoInitialize()が必要というのは調べてわかったのですが、なぜこれが必要なのかわかりません
どなたかお教えいただければ幸いです

148 :デフォルトの名無しさん:2018/03/30(金) 17:43:53.70 ID:FxYI+k+J.net
>>147
Win32 というか COM 自体がスレッド毎に CoInitialize が必要だから

149 :デフォルトの名無しさん:2018/03/30(金) 22:49:49.98 ID:HIF6e78a.net
>>148
なるほどありがとうございます

150 :デフォルトの名無しさん:2018/03/31(土) 01:31:01.40 ID:HKQg3i4s.net
windows10
python 3.6.4です
multiprocessingについて教えていただけないでしょうか?
ttps://docs.python.jp/3/library/multiprocessing.html
↑を見て例題にある

from multiprocessing import Process

def f(name):
print('hello', name)

if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
をやってみましたが
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\nanasi\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 105, in spawn_main
exitcode = _main(fd)
File "C:\Users\nanasi\AppData\Local\Programs\Python\Python36\lib\multiprocessing\spawn.py", line 115, in _main
self = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'f' on <module '__main__' (built-in)>
というエラーがでて動きません。
いくつか他のもマルチプルプロセッシングがあるものをコピペしたりしてみたのですが
だいたいp.startのあたりでエラー出ます。
windowsではサポートしてない所があって動かないんでしょうか?
どうしたらwindowsで動くようになりますか?

151 :デフォルトの名無しさん:2018/03/31(土) 01:59:18.72 ID:uh3Jaudz.net
>>150
普通に*.pyファイルに保存して、VisualStudioデバッガやPowerShellから動かせたけど・・・
対話モードだとダメっぽいね

152 :デフォルトの名無しさん:2018/03/31(土) 04:31:36.97 ID:2Z4gCLvW.net
__main__じゃないからな

153 :150:2018/03/31(土) 22:04:28.61 ID:HKQg3i4s.net
>>152
import しない限り__name__の中身って__main__になるんじゃなかったですっけ???

154 :デフォルトの名無しさん:2018/03/31(土) 22:25:31.18 ID:RRMYNfyR.net
気にしたこと無いけど取り敢えずプリントしてみなよ

155 :150:2018/03/31(土) 22:52:00.57 ID:HKQg3i4s.net
>>154
メインでますね。
>>> print(__name__)
__main__

156 :デフォルトの名無しさん:2018/03/31(土) 23:02:30.33 ID:RRMYNfyR.net
へぇ〜

157 :デフォルトの名無しさん:2018/04/01(日) 03:19:09.43 ID:MskEivG4.net
自分のいる場所が __main__ でも
def f() で f が作られる場所の問題じゃね
global f
してみ

158 :150:2018/04/01(日) 14:36:00.98 ID:PqizwVxV.net
>>157
いたるところにglobal f 入れてみましたがpythonコマンドにコピペすると
動かないですね

def fのところの___name__調べてみましたが
あるところだけ__main__になってないですね・・・

sub=__main__ #ほかのdefをifの中で名前()で呼び出した場合
hello bob
mp=__mp_main__ #def fの中
mein=__main__  #ifの中

かといってif無しでやっても
おんなじエラー出ます。
とりあえず、.py保存してから実行なら動くから実際問題はないのかな?

159 :デフォルトの名無しさん:2018/04/01(日) 19:37:25.39 ID:i3M0z6WT.net
ubuntuにanacondaをインストールしたのですけど、
pythonでは起動できなくて、python3で起動するように
なってしまいました。
インストールをどこか間違ったのでしょうか?

160 :デフォルトの名無しさん:2018/04/01(日) 20:31:59.52 ID:d99K3tnG.net
echo $PATH
which python3
ってやってみろ
どうせパス通ってないだけ

161 :デフォルトの名無しさん:2018/04/01(日) 21:27:08.68 ID:8+KQdOcW.net
>>159
python3に慣れておいた方がいい

162 :デフォルトの名無しさん:2018/04/01(日) 23:02:55.06 ID:ECJY99tL.net
漏れのWindows10・Ubuntu・WSL では、
which python3 (3.5)で、/usr/bin/python3 (3.5)

which python としても、そういうコマンドは無い。
そもそも、python2 か3か、あいまいだし

Windowsでは、元からpythonが入っていないから、
Anaconda をインストールするだけで良いけど、

Ubuntuだと、システムで使っているpythonが、元から入っているから、
もし、Anacondaのpythonのバージョンと異なると誤動作する

システムの方の/usr/bin/python3 を何かのアプリで使っている可能性があるから、
こちらは、うかつにバージョンアップできない

だから、Anacondaだけを仮想環境に閉じ込めて使えば、
自由にpythonのバージョンを変えても、システムに影響ない

Ruby on Rails を使うときの、rbenv みたいなもの。
Anacondaを、virtualenv(venv)で使えば?

163 :デフォルトの名無しさん:2018/04/01(日) 23:17:11.91 ID:Wu6copxJ.net
pyenvだろ

164 :デフォルトの名無しさん:2018/04/01(日) 23:22:48.01 ID:c8SUuMzE.net
conda createからのactivateするんじゃないの?

165 :デフォルトの名無しさん:2018/04/02(月) 04:35:50.85 ID:3ewhMOuh.net
先にやらんと手遅れになる

166 :デフォルトの名無しさん:2018/04/02(月) 09:28:50.22 ID:s7mweyB2.net
>>162
仮想環境はインストールした後の話だろ。
Anacondaをインストールするだけならシステムには影響ない。
それとも、その「仮想環境」ってのはDockerとかVMのことを言っているのか?

167 :デフォルトの名無しさん:2018/04/02(月) 09:31:53.60 ID:YeEQ96Xi.net
そいつに触るな

168 :デフォルトの名無しさん:2018/04/02(月) 09:43:17.23 ID:YeEQ96Xi.net
時期柄もあるだろうから書いておく

>>162はRubyスレを含む多数のスレで適当なことを書いて煙たがられているユーザーだ
触らないように

レス番号以外の固定ハンドルをつけている奴にも触らないように
それらは基本的に自意識過剰か承認欲求で頭がおかしくなっている

169 :デフォルトの名無しさん:2018/04/02(月) 18:13:02.77 ID:eTpURbiZ.net
tupleをlistに変換したいのですが、ぐぐって見つけたコードを真似て入力してもTypeErrorになります。
t = ('one', 'two', 'three')
l = list(t)

なんか間違ってる?

170 :デフォルトの名無しさん:2018/04/02(月) 18:35:49.91 ID:DE0uBPvp.net
>>169
間違ってない
うちのPython3.6.4のコマンドウインドウにコピペして実行した結果は以下のとおり

>>> t = ('one', 'two', 'three')
>>> l = list(t)
>>> l
['one', 'two', 'three']

171 :デフォルトの名無しさん:2018/04/02(月) 18:55:55.33 ID:eTpURbiZ.net
本当だ、コマンドウィンドウだと問題ないな・・・

172 :デフォルトの名無しさん:2018/04/02(月) 19:47:24.41 ID:sa9ZyrCn.net
>>171
ファイル作ってもいけた

k = ('one', 'two', 'three')
l = list(k)
print(l)

173 :デフォルトの名無しさん:2018/04/02(月) 22:26:30.77 ID:wIbB0b4n.net
こういうのはゲームだと思ってやらなきゃ…
仕事と思っちゃダメだ…楽しまないと覚えられん…
…何から手をつけて良いか分からん泣

174 :デフォルトの名無しさん:2018/04/02(月) 22:33:00.67 ID:gbB6Aon1.net
仕事なら目標が明確だから何から手を付けていいかわからんてことはないだろう

175 :遊園地:2018/04/02(月) 23:48:30.12 ID:LJEqcqCm.net
色々教えてくれた。スレ内の知り合いが、一年近く来ない。
今頃、どうしてるんだろう。

176 :デフォルトの名無しさん:2018/04/03(火) 00:56:56.37 ID:cU9BUIMs.net
秋田

177 :162:2018/04/03(火) 02:02:15.57 ID:hZewAlsv.net
漏れは、10言語ぐらい知ってるけど「みんなのPython」にも書いてある

Anaconda は、元からPython が入っていない、Windows を対象にしている。
元からPythonが入っていないから、
Pythonを入れても、バッティングしないから大丈夫

元からPythonが入っている環境では、
専門家じゃないと環境構築できないから、説明しないって書いてある

これは、Pythonを入れるとバッティングするから、
素人では環境構築できないっていう事

仮想OS とか、virtualenv(venv) とか、何らかの仮想環境を使わないと無理

漏れのWindows10・Ubuntu・WSL では、
which python3 (3.5)で、/usr/bin/python3 (3.5)

これを例えば、python3 を、3.5 とは異なるバージョンと結び付けたいのなら、
/usr/bin/python3 (3.5)よりも前方に、探索パスを追加しないといけない。
コマンドの実行ファイルは、探索パスの前方からの順に探されるから

だから、rbenv, virtualenv などで、activate すると、
$PATH の一番最初に、自分が使いたいバージョンのパスが追加される

PATH="$VIRTUAL_ENV/bin:$PATH"
まあ「python virtualenv 仕組み」で検索して

こういう仕組みを、初心者に説明するのが無理だから、
「みんなのPython」では説明していない

Linux の環境構築なんて、素人じゃ無理。
LPIC などの、Linux資格を持っていないと無理

178 :デフォルトの名無しさん:2018/04/03(火) 04:44:48.90 ID:QsfDg0d7.net
数だけ追うとこうなるという悪い見本

179 :デフォルトの名無しさん:2018/04/03(火) 08:24:49.81 ID:G1GaWyXd.net
ダメだこりゃ。

180 :デフォルトの名無しさん:2018/04/03(火) 09:32:07.49 ID:u1C9H1Ty.net
きっとrubyが欠陥言語だからユーザーがこんなんなんでしょうな

181 :デフォルトの名無しさん:2018/04/03(火) 09:49:39.77 ID:7FhHUoJB.net
>>173
とりあえず覚えたいじゃなくて、仕事なら最初からやること決まってるじゃん?

自分は明確な目的がないから、思い付いたものはとりあえずpython で出来るかどうか試す、なんて無駄なことやってるぞ
この道に嵌まりたかったら、それで良いけど

182 :デフォルトの名無しさん:2018/04/03(火) 11:35:27.28 ID:R6gDm2yr.net
実際やろうと思えば出来てしまう

183 :遊園地:2018/04/03(火) 15:14:47.21 ID:oFzsxu0w.net
テキスト内のキーワード指定して、集計データ返してくれるなら、
スクリプトじゃなくて良い。ただ、なでしこ言語は挫折した。

184 :デフォルトの名無しさん:2018/04/04(水) 01:30:08.57 ID:eXsheJZd.net
>>182
神降臨

185 :デフォルトの名無しさん:2018/04/05(木) 01:01:12.89 ID:Qe5jM9cj.net
画像のような仕組みは何と言えば良いのですか?

取得したデータをPythonで画像のように出力したいので、やり方か仕組みを調べようとしたのですが、何と検索して良いのか分かりません

https://i.imgur.com/4fXnUAH.jpg

186 :デフォルトの名無しさん:2018/04/05(木) 02:04:09.01 ID:COvjSQ0t.net
>>185
Windows なら python windows gui
Linux なら python linux gui
とかで検査

187 :デフォルトの名無しさん:2018/04/05(木) 02:12:11.97 ID:G4evJUNh.net
>>185
PythonならWebアプリにしてHTMLで出力したほうがいいよ
ネイティブGUIをPythonで作ろうと思うと、極めてマイナーなフレームワークにどっぷり浸かることになる
極めても全く価値のないスキルであり、時間の無駄だ

188 :デフォルトの名無しさん:2018/04/05(木) 04:28:32.13 ID:mpYxecTp.net
本についてなんですが、ソーテック社の「いちばんやさしいPython入門教室」って
本は良いですか?

189 :デフォルトの名無しさん:2018/04/05(木) 07:39:52.11 ID:fmq90VfQ.net
>>185
パワポ出力じゃあかんのか?

190 :デフォルトの名無しさん:2018/04/05(木) 09:53:13.44 ID:Qe5jM9cj.net
返答ありがとうございます

>>186
これがGUIというんですね…
よく耳にするTkinter がいいのかな?こちらも調べてみます

>>187
なるほどhtmlですか
こちらでも良さそう… 調べたら分かりやすかったので、こちらからやってみます スマホアプリにも出来そうですし
Python ってGUIを作るのが大変なんですね

>>189
その場でパッとデータを確認できたらいいことと、更新したら即データが反映されるようになってほしいので…
でも、パワポ出力は他で使えそうなのでまた調べてみます

191 :遊園地:2018/04/05(木) 10:47:59.49 ID:yVXnCZRq.net
いつも、お世話に成ってますw

トランプからカードを引いて、マークつけを行いたいです。
関数Sample2の結果を返すにはどうすれば良いでしょうか?
教えて下さい。


https://ideone.com/085uNT

192 :デフォルトの名無しさん:2018/04/05(木) 15:22:14.86 ID:pkmC89pn.net
sudo update-alternatives --config python

193 :デフォルトの名無しさん:2018/04/05(木) 18:37:25.68 ID:166ySDeQ.net
>>186
怪しいので、身体を検査させてもらいます。

194 :デフォルトの名無しさん:2018/04/05(木) 23:52:36.33 ID:A+SSmePb.net
>>189
出力だけで入力イラネであればパワポやpdf出力の方がファイルセーブもできて良いよな。

195 :デフォルトの名無しさん:2018/04/06(金) 23:17:04.19 ID:4KCjI5eb.net
>>188
Amazonだと高評価だけどどうだろう
実際に本屋に行って見るのが良いかもね〜
かく言う俺もガチガチの初心者だから本探ししてる

196 :デフォルトの名無しさん:2018/04/06(金) 23:40:31.97 ID:eal1pYjS.net
「みんなのPython 第4版、2017」が定本

そこに、なでしこの作者・クジラ飛行机が参入。
その後、掌田津耶乃・大津真など、多言語の作者も参入

197 :デフォルトの名無しさん:2018/04/07(土) 03:30:14.58 ID:0IMs8tmt.net
1 2 3
4 5 6
7 8 9
の入力があった時に行ごとの計算結果を出したいときってどうしたらいいですか?

198 :デフォルトの名無しさん:2018/04/07(土) 04:03:02.27 ID:ic1KeMb4.net
ちょっと状況分かんないけど
合計ならforで行ごとに
sum([1, 2, 3])
とか

199 :デフォルトの名無しさん:2018/04/07(土) 06:51:19.63 ID:WL4rZ6s4.net
Ruby なら、

text = <<'EOT'
1 2 3
4 5 6
7 8 9
EOT

text.each_line do |line| # 1行ずつ処理する
# 末尾の改行を削除して、空白区切りで、配列に入れる
numbers = line.chomp!.split
# 数値に変換してから、配列内のすべての数字を足す
puts numbers.map(&:to_i).inject(:+)
end

200 :デフォルトの名無しさん:2018/04/07(土) 10:55:48.14 ID:0nAeQwXs.net
酷いなRuby。Perlの悪しき轍を踏んでいるのか。

201 :デフォルトの名無しさん:2018/04/07(土) 12:08:10.14 ID:BRhgC8GS.net
>>197
pandas だと行ごとの map とか reduce とかあるし

202 :デフォルトの名無しさん:2018/04/07(土) 12:49:26.90 ID:vUF6Z2rf.net
Flaskを使ってWebサービスを作ろうと思っています。
その裏ではある処理を行うPythonのプログラムがあって、
その結果をリアルタイムにWebページに反映するという仕組みを作りたいのです。
例えるなら時計のページのようなものです。

このようなものを実現する方法として、どの様にするのが良いでしょうか?
自分なりに考えてみたところでは次のようなやり方で出来るかなと思うのですが
なんだか無駄が多いような気がして、もっとスマートに実現出来るのでは?という気がします。
アドバイスを頂けると嬉しいです、よろしくお願いします。

(1)バックグラウンド処理の部分をthreadingを継承したクラスで作成し
(2)Webサービス本体となるapp.pyで、(1)をインスタンス化して実行
(3)(1)からの処理結果はapp.pyにコールバックで返却
(4)app.pyのコールバック関数はsocketioを使ってWebページに処理結果を送る
(5)websocketを受け取ったWebページは、処理結果をページに反映させる

203 :デフォルトの名無しさん:2018/04/07(土) 13:00:52.26 ID:BRhgC8GS.net
Brython

204 :デフォルトの名無しさん:2018/04/07(土) 14:26:32.33 ID:z2/bO+GF.net
>>188
「めんどうなことはpythonにさせよう」が面白かった。

205 :デフォルトの名無しさん:2018/04/07(土) 14:35:20.07 ID:nRtWZzWw.net
>>202
リアルタイムで更新したいならフロントエンドにreactを使え

206 :遊園地:2018/04/07(土) 15:07:01.03 ID:77S40Xyy.net
>>197

#スペース区切りの数字を受け取り 3回
#l=[list(map(int,input().split())) for _ in range(3)]

#完成するデータ
l=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#横の合計
[print(sum(i)) for i in l]

#改行
print()


#縦の合計
[print(sum(i)) for i in list(zip(*l))]

207 :デフォルトの名無しさん:2018/04/07(土) 15:17:10.46 ID:2Xz4c+5M.net
こんくらいブラウザでやれば?
`
1 2 3
4 5 6
7 8 9
`
.trim().split`\n`
.map(row => row.split` `.map(Number).reduce((a, b) => a + b))
.forEach(rowSum => console.log(rowSum));

208 :デフォルトの名無しさん:2018/04/07(土) 17:08:57.70 ID:p0Pua3Pc.net
javaみたいな気持ち悪さ

209 :デフォルトの名無しさん:2018/04/07(土) 17:27:49.50 ID:7ZRXk+Y5.net
なんで最近のプログラミング界ではforが迫害されてmapやreduceがもてはやされてるの?
初心者には分かりにくいと思うんだが。

210 :デフォルトの名無しさん:2018/04/07(土) 17:49:01.49 ID:4dLkJWTk.net
初心者のことなど知らん

211 :デフォルトの名無しさん:2018/04/07(土) 20:07:36.83 ID:VRHJEDN5.net
s.split(",")
s.replace(",","\t")
",".join(s)
joinだけ何故こんな文法に?

212 :デフォルトの名無しさん:2018/04/07(土) 20:15:43.06 ID:WHguHUHL.net
>>209
基本的には、パフォーマンス上のメリットがあるから。
けれど、PythonやJavaScript(ES6)の場合はジェネレータもあるので、
パフォーマンスを保ちつつ、for文を使ったやさしい書き方もできる。
Javaだと、ガチで>>207の書き方しかできない。

213 :デフォルトの名無しさん:2018/04/07(土) 20:19:53.21 ID:iO/NW/s5.net
>>211
join を文字列のメソッドにしたかったから

214 :デフォルトの名無しさん:2018/04/07(土) 20:26:18.12 ID:Iu5gYSvH.net
Python の join() が文字列型のメソッドである理由
https://www.lifewithpython.com/2017/07/why-python-join-is-string-method.html

215 :デフォルトの名無しさん:2018/04/07(土) 22:15:55.69 ID:u6SiCNsb.net
>>210
仕事でソフト開発している人が、初心者のために分かりやすいコーディングをしているとは思えないよな。

216 :188:2018/04/07(土) 22:55:32.20 ID:UAWtR4Cc.net
>>195
あっ、レス付いてる
ありがとうございます
注文することにしました
読んでみたらレビューしますね

217 :デフォルトの名無しさん:2018/04/08(日) 00:14:01.39 ID:j+FIppRr.net
>>202
このスレのレベルを超えた質問で場違いな感じの質問だな

218 :デフォルトの名無しさん:2018/04/08(日) 01:12:18.12 ID:s6V+xdvY.net
>>215
逆だよ。仕事でソフト開発している人が、難読コードを書いちゃいかんだろ。

219 :デフォルトの名無しさん:2018/04/08(日) 01:18:01.50 ID:kOs0IpX+.net
>>218
例えば、リスト内包表記は慣れたらめちゃくちゃわかりやすいんだけど、初心者には不評
でも慣れてる人にはわかりやすいから内包表記を使いまくるってことだろう

220 :デフォルトの名無しさん:2018/04/08(日) 01:33:34.80 ID:ikNNlzZg.net
>>212
>>207よりこっちのほうが分かりやすいと?そうかなぁ?
昔ながらのfor文に慣れてるからそう思うだけで、初心者に聞いてみたらむしろ逆なんじゃない?知らんけど
何より識別子が増えて名付けが辛い。
const mat = `
1 2 3
4 5 6
7 8 9
`.trim();
for (const row of mat.split`\n`) {
const rowAry = row.split` `;
let rowSum = 0;
for (const cel of rowAry) {
rowSum += Number(cel);
}
console.log(rowSum);
}

221 :デフォルトの名無しさん:2018/04/08(日) 02:22:57.13 ID:jNVGKdq/.net
joinは文字列の連結がウリなのに、引数を一個しか指定できないのが謎過ぎる
",".join("A","B","C")ってやりたい時に、実際はあらかじめ"A","B","C"をリストに入れるか
+で連結しとかんといかんって本末転倒だろ

222 :デフォルトの名無しさん:2018/04/08(日) 02:36:06.55 ID:6R1G24Uu.net
>>221
[ ]で囲むだけだろ
Pythonでは可変長引数はあまり好まれない

223 :デフォルトの名無しさん:2018/04/08(日) 06:58:14.21 ID:gxaJAEYd.net
>>210
ここ超初心者のスレ。

224 :デフォルトの名無しさん:2018/04/08(日) 10:08:27.26 ID:kOs0IpX+.net
>>223
いや、>>210>>209への返答よ?

225 :デフォルトの名無しさん:2018/04/08(日) 11:41:56.18 ID:YK+KPtHu.net
>>209
初心者はどっちから教えても一緒だと思う

226 :デフォルトの名無しさん:2018/04/08(日) 11:55:02.04 ID:9/UswNDz.net
>>225
俺も大差ないと思う
forでダラダラ書くより、map,reduce,filterで簡素に書けるなら使ったほうがいいからな

227 :デフォルトの名無しさん:2018/04/08(日) 16:29:56.48 ID:MFf7xIr6.net
こんにちは
タイムカードを処理するアプリを作りたいと思っていて、月の勤務記録を一括で読み込んで実労働時間を出そうと思ってます。
1行毎(1日毎)に実労働時間を出して最後にそれを全て足そうと思っているのですが、行ごとの処理の仕方がわからないんです…
ご回答よろしくお願いします。

228 :デフォルトの名無しさん:2018/04/08(日) 16:43:00.39 ID:GoOLzpCW.net
一行分の入力データと
一行分の入力データから得たい出力データを記載しろ

229 :デフォルトの名無しさん:2018/04/08(日) 16:48:16.19 ID:MFf7xIr6.net
1行分の入力 2017/03/01 12:00-15:00 16:00-24:00

出力 11

こんな感じです
そもそもsys.stdin.readlines()で処理するのが正しいんですかね

230 :デフォルトの名無しさん:2018/04/08(日) 16:59:45.98 ID:nkM5b3tX.net
pandas.read_from_hogehoge

231 :デフォルトの名無しさん:2018/04/08(日) 17:46:41.40 ID:6sp2I/Ld.net
>>> import datetime
>>> import pandas
>>> from io import StringIO
>>> mindif = lambda s: (lambda x: td(x[1])-td(x[0]))(s.split('-'))
>>> td = lambda s: (lambda x: datetime.timedelta(hours=x[0], minutes=x[1]))(list(map(int, s.split(':'))))
>>> f = StringIO('''\
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
''')
>>> a = pandas.read_table(f, header=None, sep=' ')
>>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
>>> a
0 1 2 3 4
0 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
1 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
2 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
3 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00

232 :デフォルトの名無しさん:2018/04/08(日) 17:50:59.38 ID:6sp2I/Ld.net
>>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
この2行は
>>> a[3] = a[1].map(mindif) + a[2].map(mindif)
だけで良かった 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


233 :デフォルトの名無しさん:2018/04/08(日) 18:54:45.02 ID:1mmlbc0v.net
Ruby だと、時刻に、24時は無いけど。
23まで

午前中は、どう表記してる?
03:05, 3:05 のどっち?

234 :遊園地:2018/04/08(日) 20:12:56.50 ID:gmVtfD5c.net
>>229
ごめん。仕様ミスで行数が増えたら対処できない。
そこは改変してくれ。

https://ideone.com/1izELX

235 :遊園地:2018/04/08(日) 20:22:54.67 ID:gmVtfD5c.net
なんか、知らんけど腕が落ちてる。

236 :デフォルトの名無しさん:2018/04/08(日) 20:26:08.17 ID:3hKhfzCU.net
拾っとけ拾っとけ1割もらえるかもよ

237 :遊園地:2018/04/08(日) 20:30:56.58 ID:gmVtfD5c.net
そっちじゃねえよww

総レス数 992
262 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200