Pythonのお勉強 Part58

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/10/25(木) 20:50:10.29ID:NRPlmaaN
★当スレにRubyのコードを書くことを禁ず

Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part57
http://mevius.5ch.net/test/read.cgi/tech/1529888279/

◆関連スレ
くだすれPython(超初心者用) その39
http://mevius.5ch.net/test/read.cgi/tech/1535064635/

◆まとめwiki
ttp://python.rdy.jp/

◆ソースコードをそのまま5ちゃんにコピペするとインデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。このスレ的には消えるまでの日数を長めに指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)


次スレは>>980が挑戦する
340デフォルトの名無しさん
垢版 |
2019/01/16(水) 12:53:28.64ID:PPwa3JuW
なんで突然自意識過剰が出てきたんや?
2019/01/16(水) 12:56:31.30ID:rK8yjKCZ
パパパパイソン
2019/01/16(水) 19:58:20.24ID:+73nfn6R
マウント中毒ははてなでもやってろ
343デフォルトの名無しさん
垢版 |
2019/01/16(水) 21:41:07.70ID:PRhv7s1c
>>339
一番悪いってお前の主観やろ
344デフォルトの名無しさん
垢版 |
2019/01/17(木) 23:07:51.99ID:gunQwDPd
膨大な量のcsvを読み込みたいときに、上から1/3だけ、半分だけの行のデータを読み込みたいときはどうしたらいいでしょうか?
https://qiita.com/motoki1990/items/0274d8bcf1a97fe4a869
例えば、このURLの例だと銘柄が'ユニチャームまでのデータを読み込みたい場合です。
単純に、for分をfor row in f/2:と書くと案の定エラーになってしまいます。
2019/01/17(木) 23:13:07.00ID:sKmei/Rv
相当マージだな
2019/01/18(金) 01:06:25.39ID:zEbaw09P
ストリームないの?
347デフォルトの名無しさん
垢版 |
2019/01/18(金) 04:16:14.77ID:6U5tZjv3
cat test.csv | head -4 | python hoge.py
2019/01/18(金) 05:49:01.69ID:w7+BAjYe
お勉強スレで、まったく学ぶ気なく、やり方だけ尋ねるスタイル
2019/01/18(金) 08:39:55.53ID:xsz3oCXU
お前らは俺に利用されていればいいんだ上等だろ
と仰られています
2019/01/18(金) 08:53:30.51ID:ckLRWwbW
マジマージ
2019/01/18(金) 13:37:06.55ID:gXq62u3A
一回全体読まないと半分がどこか分からない
2019/01/18(金) 13:59:38.64ID:Ievd0esn
まず、wc などで行数を数える

ただ、列中に改行があれば、それも数えられるのかどうか、わからない
353デフォルトの名無しさん
垢版 |
2019/01/18(金) 14:02:25.66ID:tGJC1q7w
>>352
uniq 通して wc してから -1 が標準
2019/01/18(金) 14:14:02.94ID:Kz34MTeG
全部pythonでやりたいって話じゃないの?
Windowsかもしれんし

一旦行数を数えるだけのループを書いて
二回目のループで制御させるしかないね
2019/01/18(金) 15:21:12.56ID:Ievd0esn
Windows10・WSL・Ubuntu には、wc コマンドがある

それで、Ubuntu側から、Windows側にあるファイルの行数を数える
2019/01/18(金) 15:41:14.52ID:y9RIaZrB
ちょっとRubyに乗り換えてくる

サーバサイドプログラミング言語・オブ・ザ・イヤー2018はRuby | マイナビニュース
https://news.mynavi.jp/article/20190108-751236/
2019/01/18(金) 16:10:35.70ID:9cPS2bOG
>>356
皆Rubyブームの時にRuby使ってたから、他の言語は嫌なだけだろ
2019/01/18(金) 16:32:46.52ID:73pNyhSi
PHPはHTML吐くなら簡便だけど…PDOは良いドライバが腐ってるとアレ
Pythonも純粋なオブジェクト指向ではないし、Rubyも文法が雑多すぎ
2019/01/18(金) 16:44:53.55ID:pGuUGBnO
Ruby好きとは仲良くなれない
360デフォルトの名無しさん
垢版 |
2019/01/18(金) 17:13:29.65ID:tGJC1q7w
純粋なオブジェクト指向ωωω

$とか@とか使いまくるのが純粋ですかね
2019/01/18(金) 17:16:16.91ID:73pNyhSi
>>360
別に他の言語が純粋だとは言っていないし、処理系の話だよ
2019/01/18(金) 19:30:08.01ID:olGVslZv
Python:
def add(a, b):
return a + b

def opTwo(a, b, func):
return func(a, b)

print(opTwo(1, 2, add))
=> 3

Javascript:
let add = (a, b) => a + b
let opTwo = (a, b, func) => func(a, b)
console.log(opTwo(1, 2, add))
=> 3

るびぃ〜)(;笑
def add(a, b)
a + b
end

def opTwo(a, b, func)
func(a, b)
end

p opTwo(1, 2, add)
=> Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
from t.rb:9
プギャーm9(^Д^ )

るぅピぃではdefで定義した関数には第一級関数の資格はありませんwwww
その他に似たような機能を提供するものにはなんと!ブロックとProc.newとprocとlambdaと->からより取りみどりで全部少しずつ用途と挙動が異なりますwwwwwさすが純粋オブジェクト指向言語は違うね!wwww
363デフォルトの名無しさん
垢版 |
2019/01/19(土) 00:48:59.06ID:2Tiw7zAQ
railsなんてrubyでもないしオブジェクト指向でもない俺俺ロカール言語
2019/01/19(土) 18:57:25.68ID:x9mQd35z
>>356
Nginxの記事がついでにあったから見て来た
アパッチ族から脱出する日か
2019/01/20(日) 02:28:30.85ID:62lK6b9v
Q-Successてwww
どこの馬の骨だよwwwww
TIOBEはPython

Pythonが2018年「最優秀プログラミング言語」に--TIOBE指標
https://japan.techrepublic.com/article/35131348.htm
366デフォルトの名無しさん
垢版 |
2019/01/20(日) 02:48:54.24ID:1qyIzvIO
Pythonはすごい→Python使える俺もすごい
2019/01/20(日) 08:09:38.32ID:fZ86qU/7
>>366
それで合っているよ
バハムートを召喚できる召喚士はすごいだろ?
2019/01/20(日) 08:16:56.09ID:mP2Fq7Fg
どっちがすごいかと言えば使えるほうがすごいに決まってるからなw
369デフォルトの名無しさん
垢版 |
2019/01/20(日) 13:50:26.35ID:Q8jHF7yk
pythonからsqlite3を使っているのですが
timeとかdateとかdatetimeとかは
sqlite3の方では何型にするのが一般的ですか?
2019/01/20(日) 14:59:28.05ID:j8ilxHCN
>>369
TEXT型
https://qiita.com/TomK/items/132831ab45e2aba822a8
2019/01/20(日) 15:21:38.73ID:pkTQkmr2
Rails では、date, datetime, time, timestamp の指定で、
datetimeだけは、MySQL のdatetime、PostgreSQL のtimestamp になるけど、
他は同じものになる

開発版では、SQLite3 を使う人もいるけど、
Ruby プログラム内では、上記の4つの型を使うから、

Railsが自動的に、実際の型に置き換えるので、
どの型を使っているのかは、プログラマーにはわからない

実際のDB 構築も、db:migrate というコマンドを実行すると、
Railsが自動的に、DBを構築するから、プログラマーには実際の型はわからない

つまり、どのDBでも同じようにプログラミングできるように、抽象化されている。
プログラム内で扱う型は統一されていて、実際の型は、それとは異なる
2019/01/20(日) 20:14:47.75ID:3coNDWU9
>>369
単体で使うならTEXT型、日付の区切り文字はハイフンを使うと問題が少ない

ちなみにpandasのto_sql()使うとTIMESTAMP型になり、sqlalchemy使うとDate型はDATEに、DateTime型はDATETIMEになる
2019/01/20(日) 20:45:01.94ID:3coNDWU9
言葉足らずだった
TIMESTAMPもDATEもDATETIMEも実態は全部TEXTだから、sqliteモジュールから呼び出しても、pandasから呼び出しても、sqlalchemyから呼び出しても、全部同じ動作する
重要なのはYYYY-mm-dd HH:MM:SSという記法
374デフォルトの名無しさん
垢版 |
2019/01/21(月) 10:56:42.40ID:SiWNl8En
>>366
そのうちPythonは小学生でも使えるようになる。
2019/01/21(月) 11:17:32.97ID:aFccJIUS
そのうちもなにも
今だってプログラミング教室通ってる子とかつかいまくりだろ
376デフォルトの名無しさん
垢版 |
2019/01/21(月) 11:47:00.84ID:SiWNl8En
>>375
微分方程式なんか解けるのかな。
377デフォルトの名無しさん
垢版 |
2019/01/21(月) 11:57:48.87ID:Lc4/G6K4
文法とアルゴリズムは別やろ
2019/01/21(月) 12:26:36.57ID:P0+587lf
日本式学校教育の手にかかればプログラミング教育はコンピュータによる問題解決の手段を教えるのではなく文法を暗記するだけの作業に大変身
2019/01/21(月) 12:46:47.95ID:zB9il169
悲しいねえ
2019/01/21(月) 12:51:55.55ID:qIDmWl+I
pythonは変数名に日本語も使えるから英語できない小学生でも安心
2019/01/21(月) 12:54:39.80ID:zB9il169
あー、ゴミが量産されるだけ
2019/01/21(月) 13:15:44.05ID:T41Di5KC
>>378
多分難しいロジックを解かせる授業もあると思う

でも各種端末、アプリとの入出力について教えない授業になって結局現場で使うのに
一手間掛かるPG量産
383デフォルトの名無しさん
垢版 |
2019/01/21(月) 14:01:15.00ID:q5TMCwho
>>382
皆が皆おまえほど頭が悪いわけやないで
2019/01/21(月) 15:43:45.05ID:zB9il169
義務教育で勉強したぐらいで何か身につくとは思えない
385デフォルトの名無しさん
垢版 |
2019/01/21(月) 16:40:36.63ID:0ANF89NR
そもそもScratchとか使うのではなかったっけ
2019/01/21(月) 16:51:01.54ID:zB9il169
人の使ったキーボードとマウスで嫌々やらされるんだろうな
2019/01/21(月) 17:20:39.09ID:8l9498MK
>>382
それは現場で今日も起きている
2019/01/21(月) 18:00:32.88ID:UOzXXkDM
好きな娘の使うマウスにあらかじめ塗りたくっておく
2019/01/21(月) 19:04:05.51ID:zB9il169
あいつ、マウスにうんち付けた。
→いじめ発生
2019/01/21(月) 21:44:12.54ID:fCheltCa
LAN内のDHCPクライアント(hogehoge.local)に対しHTTPリクエストを投げたいのですが、Python側で
”urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>”
と怒られてしまいます
プログラムを走らせているLinuxPCからは名前解決ができていますが、
Python側から名前解決を行う方法について教えてください
2019/01/22(火) 00:55:27.24ID:cb7U++6D
>>390
1. typoを疑う
2. IP直接を試して問題の切り分け(ネットワークに繋がっているかどうか)

いずれにしてもpythonとは別のところに原因がありそう
2019/01/22(火) 01:16:26.39ID:4TOwjU0o
Proxy関係ないんだっけ?
2019/01/23(水) 09:00:03.84ID:rNlOTgF2
以下のコードが動かないです。助けて下さい
長いので分けて書き込みます

#上ボタンが押された
def click_button_up():
global brave_y
brave_y = brave_y - 1
canvas.coords("brave", brave_x*62+31, brave_y*62+31)
#下ボタンが押された
def click_button_down():
global brave_y
brave_y = brave_y + 1
canvas.coords("brave", brave_x*62+31, brave_y*62+31)
#左ボタンが押された
def click_button_left():
global brave_x
brave_x = brave_x - 1
canvas.coords("brave", brave_x*62+31, brave_y*62+31)
#右ボタンが押された
def click_button_right():
global brave_x
brave_x = brave_x + 1
canvas.coords("brave", brave_x*62+31, brave_y*62+31)
2019/01/23(水) 09:02:51.09ID:rNlOTgF2
#ボタン配置
button_up = tkinter.Button(text="↑")
button_up.place(x=720, y=150)
button_up["command"] = click_button_up
button_down = tkinter.Button(text="↓")
button_down.place(x=720, y=210)
button_down["command"] = click_button_down
button_left = tkinter.Button(text="←")
button_left.place(x=660, y=180)
button_left["command"] = click_button_left
button_right = tkinter.Button(text="→")
button_right.place(x=780, y=180)
button_right["command"] = click_button_right

この二箇所が打ち間違っていなければキャラクターが動くと本には書いてありました
が、何度見ても間違ってる箇所が判りません
ちなみに”12歳から始めるゼロからのPython”という本でChapter6の6−2でRPG風の画面でキャラクターを動かす箇所です
2019/01/23(水) 09:08:52.89ID:uD/CD71q
>>393
どう動かないの?
エラーは出るの?出ないの?
キャラクターが動かないだけ?
情報が足りない
2019/01/23(水) 09:39:12.24ID:rNlOTgF2
エラーは出ません。キャラクターが動かないだけです
それで本にはキャラクターが動かないのはこれらのコードが打ち間違っていると書かれているんですがその間違い箇所が判りません
本当は全文書き込みたいのですが迷惑になるだろうと書き込みませんでしたが書いたほうが良いですか?
2019/01/23(水) 09:40:41.62ID:oEnCgwX8
ボタン押されたらコンソールとかにメッセージ表示するようにして確認してみたら?
2019/01/23(水) 09:44:11.25ID:5rXsM8A5
>>396
貼り付けてあるところに間違いはなさそう。
本は持ってないので、最終コードのchap6.pyから逆算したそこまでに必要なコードを
まとめておきました。これは動くので比較してみましょう。
https://py3.codeskulptor.org/#user303_BLLnF7Sivt_0.py
codeskulptor上ではtkinterは動かないので手元にファイルを作ってください。
12saipython.zipを解凍して、chap6.pyと同じフォルダにファイルを作れば動きます。
2019/01/23(水) 10:24:07.83ID:rNlOTgF2
>>398
頂いたコードをコピペして同じフォルダでやってみましたが動きませんでした
サンプルコードはすでに落としていて今確認しようと、、、
あ、書いていた問題のコードにサンプル上書きして保存してしまいました、、、
もう一度最初からから書き直しです
この本の悪いところは途中のサンプルコードが用意されてないところですね。Chapter6の完成形しかない
結局動かなかった原因は解らなかったです
2019/01/23(水) 10:35:32.00ID:5rXsM8A5
>>399
矢印キーをクリックして動かないなら、最終コードは動くのか?を確認しましょう。
最終コードも動かないなら動作環境の問題。上に書いたコードも動作するコードです。

あとは、キーボードの矢印キーを押して動かないと勘違いしている?可能性くらいかな。
2019/01/23(水) 10:43:09.38ID:rNlOTgF2
>>400
先程頂いたコードをもう一度新しいファイルにコピペして実行してみたら動きました!
なんで動かなかったんですかね? もう先程の頂いてコピペしたファイルも、時間をかけて書いたファイルも消滅したので解らないですが
自分の知能が12歳以下で泣きたくなります
402デフォルトの名無しさん
垢版 |
2019/01/23(水) 15:55:21.86ID:I7vJASel
向いてない
あきらめろ
2019/01/23(水) 16:07:33.30ID:yEQe0Ay6
もしかして:インデント
2019/01/23(水) 16:43:12.46ID:V7BpBoc2
俺もインデントがらみとおもた。
tabとか全角とかの混在とか....でも、それだとエラー吐くか....
2019/01/23(水) 18:47:21.44ID:tAarVqiS
基本的に、何歳以下とか書いてある本は、
子供には絶対に理解できないから、仕組みを説明しない

ソースコードを書き写して、動いたって喜ぶだけ

少しでも、写し間違いをすれば動かないし、
仕組みがわからないので解決できない

学ぶ本ではない!
こう書くと、こう動きますよって言うだけ

何事でも一番難しいのは、何もわからない素人に、仕組みを説明すること!
世の中のほとんどは、これ!

この技術が、最も金になる!
つまり、アホを賢くする技術!
2019/01/23(水) 20:03:12.40ID:A/p7OW20
今はただ真似するだけの打ち込みでも毎日くり返し
続けることで自然と身につくようになるんじゃまいか
2019/01/23(水) 20:28:21.96ID:K1cvxRRn
うん
408デフォルトの名無しさん
垢版 |
2019/01/24(木) 12:19:09.42ID:6DEMoFXg
ならんわw
2019/01/24(木) 20:14:21.01ID:RAcU/li5
progateの動画コース始めた
頑張ろう
2019/01/24(木) 20:15:25.83ID:DDPNep77
なんかタスク解かないと考えないから身につかない
前check.ioをやってたけど、初心者ならプログラミングの練習にいいかも
でもいつも同じアルゴリズムばかり使うことになって飽きる
2019/01/24(木) 23:32:34.89ID:IzYDgq+m
>>406
打ち込みではダメだろ。
何にも考えずに100回ぐらい本内容を紙に手書き写生すれば身につく
2019/01/25(金) 00:32:39.40ID:7NAKvkXa
ペンなんてとんでもないぞ?
筆で丁寧に心を込めて書かなきゃダメだ。
2019/01/25(金) 08:33:56.31ID:Wo/Qon3B
>>401ですが一から書き直したら動きました
はっきりした原因は判りませんでしたが、書き直す時スペースを入れないようにしたのが良かったのかもしれません(本では見やすいようにスペースが入っていた)
2019/01/25(金) 12:08:42.11ID:T3FU5gCm
>>403
415デフォルトの名無しさん
垢版 |
2019/01/25(金) 12:35:20.99ID:EnRgcOgq
>>414
>>404
2019/01/26(土) 15:11:12.92ID:dRF51M1N
>>411 何言ってんだ、そんなこと言う奴はキーボードが体の一部になっていない奴が言うこと。
ましてや初心者にはキーボードの練習のためにも打ち込みが一番。

書くことによる間違いなんかはほとんどないが、キーボード入力ミスは頻繁に発生する。 そこを乗り越えることが一番。
その上で始めてプログラムの練習と言える。
2019/01/26(土) 15:33:00.04ID:15ctW+YG
>>401 昔、自分の子が幼稚園か小学校に上がった時期だったか忘れたが、パソコン(MSX)を与えた。 ようやくその頃PCが子供用の価格になってたから。

カセットテープからソフトをロードすれば動かすことができるが、ゲームソフトは一切与えなかった。
与えたのは、ゲームソフトのコードが書かれてる様な雑誌だけ。
嬉々として毎日打ち込んで動かしてゲームを楽しんでた。
電源切ったらまた入れてたんじゃないかな。

それ以外は何も与えていなかったし全くソフトの話はしていなかったが、いざ大学入試になったら、なんかその年の前位から入試の選択問題としてプログラムを選ぶことができたらしい。
試験がほぼ終わったと思って裏側を見たらプログラムの問題があり超簡単だったから即解いたらしい。 そのお陰で今は医師になってるが。
2019/01/26(土) 16:35:15.33ID:mtWcd/Pw
>>416
ネタにマジレス…
2019/01/26(土) 21:07:25.51ID:vHDu8yVn
>>417
昔はそういった雑誌があったらしいですね。今は無くなってプログラマーを育てる土壌が無いって元プログラマーも言ってました
2019/01/26(土) 21:12:52.16ID:fYchf/tk
ベーマガとかMSXFANとか至高だったわ
コード打ち込めばゲームが出来るって子供には勉強にちょうどいい欲求だよね
2019/01/26(土) 21:35:20.38ID:lXnCadeF
昔、教育テレビでコンピュータ講座とかあってガチなアルゴリズムの解説とかしてた
意外と昔の方が教育環境は良かったかも
http://crimson-systems.com/win/book0.htm
2019/01/26(土) 21:42:12.72ID:jeKFMbIc
今は放送大学でやってる。
2019/01/26(土) 23:03:28.43ID:WUDtBi9k
Oh!MZはドラゴンなのである
2019/01/27(日) 02:21:37.13ID:YDr0KOBE
情報処理試験にPythonが採用されたとか
2019/01/27(日) 02:25:46.28ID:y1KxM+31
このゴミな流れはジイさん達がやってたのか…
426デフォルトの名無しさん
垢版 |
2019/01/27(日) 06:01:59.13ID:HDWoufzo
>>419
日本の未来は暗い
統計庁観たら判る
427デフォルトの名無しさん
垢版 |
2019/01/27(日) 06:03:01.20ID:HDWoufzo
>>422
ガチでおすすめだよね
2019/01/27(日) 06:38:55.52ID:Anj9s1Nu
>>426
日本に統計庁なんて無いけどなw
お里が知れるで
2019/01/27(日) 06:55:48.34ID:z0hosMYm
東京特許許可局も無い。
430デフォルトの名無しさん
垢版 |
2019/01/27(日) 07:00:47.95ID:HDWoufzo
https://tech.nikkeibp.co.jp/it/atcl/watcher/14/334361/022400787/
2019/01/27(日) 08:05:19.67ID:5DHtGtFO
>>429
ドラマであったよ
https://catalina.blog.so-net.ne.jp/2014-04-06-1
432デフォルトの名無しさん
垢版 |
2019/01/27(日) 08:55:18.63ID:c/5YNENH
>>429
無いなら作れよ。
2019/01/27(日) 14:22:33.45ID:a6SxogRW
数学できんやつはいらん
2019/01/27(日) 17:55:13.96ID:dmqtxJI0
python3.6で出来ることなら1ヶ月くらい無限ループさせたいんだが
いつも7時間そこらでエラーが出て止まるんよね
無限ループって現実的には無理なのかね?

やってることはAPI使ってデータを取得するだけ
pcのスペックはi7 2670QMとメモリ12GBだから十分に足りてると思う
2019/01/27(日) 18:47:56.66ID:mJYNBsXk
設計がカスなんだろうね
436デフォルトの名無しさん
垢版 |
2019/01/27(日) 18:48:30.19ID:TzwKn7/x
スケジューラ使ってプロセス監視すれば
2019/01/27(日) 18:51:04.11ID:lhl9BJPj
例えばsupervisordとか、数ヶ月単位で起動しっぱなしにしても落ちたりしない
書いてないからどういうエラーだか知らないけど、OOMなら意図に反して参照がリークしてるやらの要因を疑う
2019/01/27(日) 18:53:15.19ID:Hz0NVfpK
そのAPIが吐いてるのかわからんがエラー原因は調べたのかね
439デフォルトの名無しさん
垢版 |
2019/01/27(日) 21:29:12.09ID:hW0mNDET
質問です。
配列変数をdictで使用する場合、添え字は["添え字"]でしかアクセスできなくて不便なので、ダイレクトに書ける配列を使用したいと思っています。
class定義後のselfでは理想的な書き方が出来るのですが、一層目でしか使えなくて不便です。

arrayHensu = dict(soeji="data")
print(arrayHensu["soeji"])

class SoejiClass:
def __init__(self):
self.soeji = "data"
print(self.soeji)

こう言った配列を自分で定義する場合どのようにしたらいいんでしょうか、言語の理解が浅いので困っています。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況