X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/05/17(木) 11:09:14.54ID:WeqM6vIc
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/
0646デフォルトの名無しさん
垢版 |
2018/07/22(日) 11:46:53.35ID:+9+Rtykr
ごめん
くだスレだと思わずに書き込んでた
忘れてくれ
ただ良書なのは確かなのでそのうち読んだ方がいいかも

入門書やったんなら公式のライブラリにじっくり目を通して
何ができるのかを把握してから
思いつくものを手当たり次第に実装してみると良いかも
Pythonは本読むより実際に書いて慣れた方が良い
0647デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:10:01.96ID:NHUbC5Q3
Effective Python、パーフェクトPython とかじゃないの?

Ruby の順番では、
たのしいRuby、Effective Ruby、パーフェクトRuby、メタプログラミング Ruby とか

Ruby/Python, Java/C# は双子だから、同時に勉強もできる。
Haxe では、Java/C# は同じ開発者がやってる
0648デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:12:01.83ID:LiIRy0eu
>>642
みんなでpython

>>645
ほんそれ
0649デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:25:27.24ID:owu96mLj
>>642
独学プログラマーを読みましょう。
0650遊園地
垢版 |
2018/07/22(日) 14:35:12.66ID:ygJ4tLZv
はじめから公式ドキュメント読んどけよな!
0654デフォルトの名無しさん
垢版 |
2018/07/23(月) 06:32:05.12ID:F2Uj8hhN
質問です。
Windows10でAnaconda3.6をインストールし、Jupyter notebookで以下のように入力すると、

>import matplotlib.pyplot as plt

このようなエラーが出ます。

https://i.imgur.com/kcsUVSO.jpg

いくつかググってAnaconda Promptにて以下のように入力してみたのですが解決しません。

>pip install numpy
>pip install matplotlib

ものすごい初歩的な問題で申し訳ないのですが、ご教示いただければ幸いです。
どうぞよろしくお願いいたします。
0656デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:10:55.23ID:eU1p7hr8
>>654
jupyter経由せずにpythonプロンプトでも同じ結果?
0657デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:30:34.75ID:F2Uj8hhN
>>656
回答ありがとうございます。
指示していただいたのはこういうこと↓でよろしかったでしょうか。
https://i.imgur.com/aur7BAM.jpg
0658デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:39:25.78ID:FWe0l3/Q
ひろみ
コマンドプロントを変えて打ってみ?
0659デフォルトの名無しさん
垢版 |
2018/07/23(月) 11:46:13.67ID:F2Uj8hhN
>>658
「コマンドプロントを変えて」というのはこういうこと↓でよろしかったでしょうか。
https://i.imgur.com/7JIkFvi.jpg

全然関係ないことやってたらすいません。
0660デフォルトの名無しさん
垢版 |
2018/07/23(月) 13:20:37.63ID:+AdhLLBA
pip install じゃなくて
conda install だろ
0662デフォルトの名無しさん
垢版 |
2018/07/23(月) 14:02:34.03ID:eU1p7hr8
jupyterの方で
import sys
sys.path
出してみて
0664デフォルトの名無しさん
垢版 |
2018/07/23(月) 14:08:06.67ID:F2Uj8hhN
>>662
ありがとうございます。
やってみました。どうでしょうか。

https://i.imgur.com/n7H5up5.jpg
0665遊園地
垢版 |
2018/07/23(月) 16:56:26.27ID:FWe0l3/Q
sudo 系の管理者権限与えたら?
0666デフォルトの名無しさん
垢版 |
2018/07/23(月) 17:31:21.60ID:F2Uj8hhN
>>665
ありがとうございます。
すいません。UNIXのことは全然わからなくてWindows10において「sudo 系の管理者権限与え」る方法が分かりません。
せっかく回答していただいたのに申し訳ないです。
0667デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:31:36.11ID:/85lFAZQ
Windows10 の、旗のスタートボタンを右クリックすれば、
PowerShell・PowerShell(管理者用)がある

コマンドプロンプトも、一般ユーザー用・管理者用がある。
起動時に指定できるだろ
0669デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:40:31.46ID:/85lFAZQ
正確なエラーメッセージで、検索するのが基本!
これで、ほとんどのエラーは解決する

画像を貼っても、俺らは文字列をコピーできないし、
スレに、入力した文字列と、正確なエラーメッセージを書くべき
0670デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:53:50.70ID:Uxcb8xo1
質問です。
Atomを使用してPythonで画像を表示させるだけのコードを書いているのですが、Pathに日本語が含まれているため、Atom-runnerがPathを認識してくれません。なにかアドバイス、解決策等ご教授いただけないでしょうか?
0672遊園地
垢版 |
2018/07/23(月) 21:16:59.13ID:FWe0l3/Q
機械学習と言う明度つきの酔拳衰弱に飽きた

 グレースケール以外で頼む
0673デフォルトの名無しさん
垢版 |
2018/07/23(月) 21:58:12.52ID:/85lFAZQ
>>670
ファイルパス・PC のユーザー名など、システム要件には、半角英数字以外は使えない。
半角空白も使ってはいけない

バグるから
0674デフォルトの名無しさん
垢版 |
2018/07/23(月) 22:04:48.82ID:lTphgcp9
問題は・・・







ひろみが男か女かってことだな
どっちにも取れるから悩ましい・・・
0676デフォルトの名無しさん
垢版 |
2018/07/24(火) 02:12:30.41ID:cgzpOT+U
dir = {
"a": "A",
"b": [1,2.3,4]
}

上の辞書の簡単なアンパックのやり方ないでしょうか?
0677デフォルトの名無しさん
垢版 |
2018/07/24(火) 06:53:42.50ID:H4IhZHSB
a, b, c = dir["b"]
print(a,b,c)
0678デフォルトの名無しさん
垢版 |
2018/07/24(火) 06:56:12.76ID:LnNQf8jU
>>671
ありがとうございました!!

>>673
日本語のWindows10使っているのでどうしてもデフォで「画像」とか日本語名が入ってしまうものがあって……
上の方の綺麗なヒント…というか答えで解決できました。
0679遊園地
垢版 |
2018/07/24(火) 10:14:04.97ID:H4IhZHSB
Anaconda3.6を入れた次点でnpもmppも入ってる。と思うが、
install時にパス通して無かったりするの?
0680デフォルトの名無しさん
垢版 |
2018/07/24(火) 15:56:14.95ID:WBO96fmU
日頃の行いかな
0682デフォルトの名無しさん
垢版 |
2018/07/24(火) 22:05:40.95ID:I37o/KFK
みんなのPythonを読んでいるとインタラクティブシェルを使っているのでずっとインタラクティブシェルを使っていたのですが、
IDLEというのを開いてみるとインタラクティブシェルととても良く似ています。
インタラクティブシェルとIDLEは何が違うのでしょうか?検索してもよく解りません……
0683デフォルトの名無しさん
垢版 |
2018/07/24(火) 22:51:37.27ID:jFaMrYyE
インタラクティブシェルはインタラクティブで、
IDLEはみんなの人気者です。
0685デフォルトの名無しさん
垢版 |
2018/07/25(水) 01:20:27.34ID:yrex6tuN
>>682
解らないということは、その知識は今の自分に必要ないと脳が感じて
理解を拒否しているんだよ
だからIDLEは今の君に必要ない。気にせず飛ばして進みなさい
解らないことを片っ端から解き明かしてゆくには人生は短すぎる
0686デフォルトの名無しさん
垢版 |
2018/07/25(水) 08:13:09.36ID:tSePLrEF
理解できないのは、単に能力が足らないだけじゃん。
理屈をこねくり回して噓ばっか言ってんな。
0687デフォルトの名無しさん
垢版 |
2018/07/25(水) 08:19:01.53ID:TPQazvuH
IDLEは中でインタラクティブシェルを動かしてるだけだろ
IDLEを好む人がいるのはWinでコマンドプロンプトが使いづらいからだと思う
0688デフォルトの名無しさん
垢版 |
2018/07/25(水) 09:27:11.17ID:yQLodg/p
>>682
あっしも初心者なので正しいか自信がないけど、どっちでも好きな方を使えば良いんじゃないかな?
自分はLinuxだけど、
インタラクティブな使用→ターミナルから $ python3でターミナル上で起動
ファイルから起動   →好きなエディタで編集・保存 & ターミナルから $ python3 hoge.py
アプリ的に使用    →デスクトップエントリ作ってメニューから呼び出し

って感じでやってます。ちなみにエディタはVS Code使ってます。
WinだとターミナルよりIDLEの方が使いやすいですか?           
0689デフォルトの名無しさん
垢版 |
2018/07/25(水) 09:57:45.54ID:SfO6vmHU
>>687
windows上ならBlenderのpythonのIDEもおすすめ
0690デフォルトの名無しさん
垢版 |
2018/07/25(水) 12:03:55.39ID:5hWwzbLP
エディタ上でターミナル動かせばいいじゃん
0691デフォルトの名無しさん
垢版 |
2018/07/25(水) 15:06:52.90ID:dOAdQyxd
>>1に"へび使いが優しくコメントを返します"ってあるけど全然優しくないコメントばっかだよね
0692デフォルトの名無しさん
垢版 |
2018/07/25(水) 15:23:45.12ID:VJ+BFjNO
プログラミングやってる奴なんて、根暗の性格曲がった奴しかいなから仕方ない
0694 ◆QZaw55cn4c
垢版 |
2018/07/25(水) 19:05:38.75ID:2d5RfbzO
>>692
どういう点に「根性の曲がった奴」という特徴を感じたのですか?
0695デフォルトの名無しさん
垢版 |
2018/07/25(水) 22:20:19.82ID:N3LhXYqU
IDLEはpythonの「とりあえず必要なものは最初からそろえておく」という哲学(電池同封)で
とりあえず使える簡易的なコードエディターと、そこそこ便利な対話的実行環境がついてるソフト

インタラクティブシェルはpythonの普通の起動方法
コードを書くときキーワードが色分けされたりしないし
複数行コピペとかもやりにくいからちょっと不便


基礎を学ぶ分にはIDLEのほうが便利だけど
他のプログラムとの連携とか
ファイル操作関連を学ぶときはインタラクティブシェルのほうが便利だと思う
0698デフォルトの名無しさん
垢版 |
2018/07/26(木) 07:58:21.53ID:gMflhY8A
ウェブ上にあるダウンロード可能なファイルが更新されたかどうかを判定したいんですがどういう方法が考えられますかね?
2,3時間で更新 中身はjsonのデータで今は1時間おきにdl,解凍後jsonの最終更新日キーの値が完全一致かで判定してますが凄く冗長で別の手段が無いかと思い質問しました。
0700デフォルトの名無しさん
垢版 |
2018/07/26(木) 10:58:57.69ID:iQaqqG1D
>>698
import requests
url = "https://httpbin.org";
head = requests.head(url).headers
print(head)

ほとんどのファイルはDataに更新日時が設定されてるはずだから
これが更新されたらファイルも更新されたとみなせばOK
0701デフォルトの名無しさん
垢版 |
2018/07/26(木) 11:02:43.66ID:iQaqqG1D
ちょい訂正
DataじゃなくてDateね

もしDateに変化がなくてもContent-Lengthとかが変わるはずだから
とにかくヘッダ情報の何かが変わったら更新されたと思っておけばいいだろう
0702デフォルトの名無しさん
垢版 |
2018/07/26(木) 11:27:39.17ID:1kwnF2yr
>Content-Lengthとかが変わるはず

わろす
0704デフォルトの名無しさん
垢版 |
2018/07/26(木) 16:15:22.05ID:IOMPt0BM
ttp://diveintopython3-ja.rdy.jp/iterators.html
ttp://diveintopython3-ja.rdy.jp/examples/plural6.py

Dive into Python3日本語版で質問があります。
このplural6.pyなんですが、
if len(self.cache) >= self.cache_index:
とありますが、
複数形にする規則は4つしかなく、マッチする場合はlen(self.cache) == self.cache_index
の場合しかないと思うのですが、なぜ>がつくのでしょうか?あと、

self.cacheは、それぞれの規則に基づいてマッチと処理を行うために必要な関数のリストになるものだ
(少なくともこれには聞き覚えがあるはずだよ!)。self.cache_indexは、キャッシュされた要素のうち、
次にどれを返さなければならないかを記録している。キャッシュがまだ残っている場合には
(つまりself.cacheの長さがself.cache_indexよりも大きい場合は)キャッシュがヒットする! やった!
マッチと処理を行う関数を初めから作るかわりに、値をキャッシュから取り出して返すことができるのだ。

というところもよくわかりません。コンソール(linuxです)からpython3 plural6.py wordと呼び出すごとに新しいインスタンスが作られて過去のキャッシュは破棄されると思うのですが。
0705デフォルトの名無しさん
垢版 |
2018/07/26(木) 16:26:30.55ID:g6Dcar1V
==で済むところを>=にしたり=<にしたりするのは予防効果を狙う意図もある
0706704
垢版 |
2018/07/26(木) 16:59:26.55ID:IOMPt0BM
>>705
ちょっと間違えてました。通常の4パターンにマッチする場合、len(self.cache) < self.cache_index
になる場合しかないようです。
if len(self.cache) >= self.cache_index:
になる場合がわからないのですが、詳しい方ご解説をお願いできませんか?
>>705
例外の場合ですか?
0707デフォルトの名無しさん
垢版 |
2018/07/26(木) 17:13:06.91ID:g6Dcar1V
ドモルガンの法則
0708704
垢版 |
2018/07/26(木) 17:17:26.98ID:IOMPt0BM
>>707
レスありがとうございます。高校時代の数学を思い出しました。
ただこのプログラム(plural6.py)の
該当箇所
if len(self.cache) >= self.cache_index:
return self.cache[self.cache_index - 1]


を削除してもプログラムは正常に機能したのですが、このコードには何の意味があるのでしょうか?
0709デフォルトの名無しさん
垢版 |
2018/07/26(木) 18:33:25.45ID:Onc9BOo2
654です。結局古いPC引っ張り出してAnacondaをインストールしてみたら無事グラフを出すことができました
回答いただけた方は本当にどうもありがとうございました
0711デフォルトの名無しさん
垢版 |
2018/07/26(木) 20:05:28.38ID:+zykdZnW
1. 仕様書 → プログラム
2. プログラム → 仕様書

1.は簡単だけど、2.は難しいから、2.をしない方が良い。
暗号化は簡単だけど、解読が難しいのと同じ。
逆方向が極めて、難しい

特に他人のプログラムでは、
プログラミングした人だけが仕様書の内容を知っているのに対して、
解読する側は、隠された情報を解かないといけないので、桁違いに難しい

まず、仕様書を見ること。
仕様書が無ければ、あきらめた方が良い

所詮、他人のプログラムを分析しても、時間が掛かるだけで得られるものはない。
他人の仕様書を、推測するだけだから

自分で仕様書を作って、それに則ってプログラミングする方が、短時間で能力向上できる!
0712デフォルトの名無しさん
垢版 |
2018/07/26(木) 20:07:52.93ID:SOSVow/d
1のほうが難しいな
演算式を文系が理解できる言語に置き換えろとか拷問にしかすぎんよ
0713デフォルトの名無しさん
垢版 |
2018/07/26(木) 21:35:25.40ID:+zykdZnW
if len(a) >= x:
return a[x - 1]

a が、リンゴかミカンなのか、わからない。
x が、価格か数量か、わからない

こういう推測は、プログラミングじゃない。
仕様を推測しているだけ

最初から、答えである仕様書を見る方が速い。
なぜなら仕様書は、解読者から見て、隠された情報だから、
どこまで行っても、推測に過ぎない

答えは仕様書にある。
答えがあるものを推測するのは無駄。
プログラミングした奴は答えを知っているけど、自分は知らないから、絶対に勝てない

100年研究しても勝てない。
所詮、答えじゃない。推測に過ぎない
0714デフォルトの名無しさん
垢版 |
2018/07/26(木) 22:04:08.10ID:7pP0Ecr7
どう考えても1のほうが難しい。
2を行うツールはたくさんあるが、1はほとんど無いし、数少ないツールも仕様記述のルールが厳しくコードで書いたほうがマシレベル、ってかコード。
0715デフォルトの名無しさん
垢版 |
2018/07/26(木) 22:54:50.32ID:pl0mdGJ7
日本の場合、仕様書に異常に盛り込みすぎて非現実的なものになっているか逆に適当すぎて仕様書にすらなっていないという状況が多すぎて
仕様書→プログラムという変換がエスパー無しでは不可能なことが多い
逆はまともに動くプログラムが手元にあるわけだから自動でやろうと思えばできる
0716デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:42:22.89ID:+zykdZnW
if len(a) >= x:
return a[x - 1]

a のlen が、x 以上なら、a[x - 1] を返す。
これがプログラムの意味

でも、a, x が何かは、わからない!
これが仕様の意味

外部のプログラマーには、プログラムの意味しか、わからない。
仕様の意味は、仕様書を見た奴にしか、わからない

答えは、仕様書にしか存在しない!
0720デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:53:55.87ID:IphAgnBQ
>>716
お前いつものRuby厨だろ?それRubyistに言ってみ?コミュニティに出入り禁止になるぞ
Rubyでは「コードが仕様」であり、ドキュメントは絶対に書いてはいけない
一方Pythonは「は?いや必要なものは書けよ」の文化だが、お前はこっち来なくていいから今すぐその間違った考えを改めてRuby村に戻って出てくるな
0722デフォルトの名無しさん
垢版 |
2018/07/27(金) 03:45:17.44ID:xspZOSEh
プログラム自体初心者です。
paizaというサイトでコツコツ問題を解いて勉強しているのですが
入門編3の演習2で詰まりました。

今まで動画で習ったことをやっていれば進めたけど
今回ばっかりはどうしても解けない・・・


こういう問題です。

標準入力で2つ(2行)の整数が与えられます。
1つ目の数値から2つ目の数値までを、1ずつ増加させながら、1行ずつ順番に出力するプログラムを作成してください。


わかる方がいたら、解説よろしくおねがいします!
0723デフォルトの名無しさん
垢版 |
2018/07/27(金) 04:02:58.93ID:Pso7UifQ
>>722
まずは自分でどこまでやったか報告
0724デフォルトの名無しさん
垢版 |
2018/07/27(金) 04:21:35.70ID:xspZOSEh
>>723
わからなくて、最終的に書いたのがこれです。

line= int(input())

for i in range(6):

print(line)

line += 1

line = int(input())

print(line)


5と12が入力されます。

5から12まで順番に入力出来たら正解なのですが
そのやり方がわからない。
期待する出力値はあっているのですが、
正しいやり方ではないので間違いになります。
0726遊園地
垢版 |
2018/07/27(金) 07:02:25.60ID:NF8BxSPB
x= int(input())
y= int(input())
for i in range(5,13):print(i)

後は自分で考えて
0727デフォルトの名無しさん
垢版 |
2018/07/27(金) 07:24:27.12ID:ITzTjkE2
>>706
インスタンス変数が書き換えられた時に例外を起こさないようなフローとか?
0728デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:37:47.78ID:PiIiFuVe
質問です
pythonでguiを作りたいのですが、PyQt4やPySideなど選択肢がいくつかあり、
どれを使えばよいのかわかりません。
作りたいguiは、伺かのようなデスクトップアクセサリを想像下さい。
0729デフォルトの名無しさん
垢版 |
2018/07/27(金) 09:51:08.08ID:3PyUer9A
こんにちは。
プログラミングを始めたばかりのものです。
ATOMとCV codeというエディタが良さそうということが分かったのですが、どちらが良いのか判断がつきません。
デザインはATOMの方が好みですが、CV codeの方が軽いみたいです。

蛇使いの皆さまはどのエディタを使ってらっしゃるのですか?
0730デフォルトの名無しさん
垢版 |
2018/07/27(金) 10:06:17.73ID:ZVlHHhEU
pycharm
0733デフォルトの名無しさん
垢版 |
2018/07/27(金) 11:29:35.87ID:f89eR0Ff
色々エディタ試したけどこれまでmatlabでデータ解析しててそこから移行した身としては結局jupyter notebookをブラウザで使うのが一番快適
pycharmでもほぼ同じ形でjupyter使えるけどvimプラグインがブラウザ版の方がまともに動くからブラウザ1択
0734デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:13:00.47ID:gABmQ8HW
>>722
while文の練習だから
whileからinputA != inputBで抜け出すか条件を満たしたらbreakするようにするんじゃね?
0735デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:17:56.83ID:3PyUer9A
>>732
>拡張機能のcode runne
vs codeでは統合ターミナルからプログラムを実行する機能が最初から付いているみたいですが、これではダメなんでしょうか?
0737デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:56:29.16ID:3PyUer9A
>>736
そうなんですか!それは便利そうですね。
ATOMにもエディタ上でコードを実行する拡張機能はありますが、範囲選択出来るものは無いんでしょうね。
そう考えると、そこはvs codeの強みですね。
0740デフォルトの名無しさん
垢版 |
2018/07/27(金) 18:04:05.01ID:2tx+XqDJ
>>729
メインはjupyter。サクッと可視化や計算するのに向いてる。
ある程度処理が定型化してきたり、複雑な処理が必要なときはspyder使ってる。格納してる変数が見やすい。
0741デフォルトの名無しさん
垢版 |
2018/07/27(金) 19:09:47.23ID:h33KZnwb
>>728
wxPython
0742デフォルトの名無しさん
垢版 |
2018/07/27(金) 20:24:06.17ID:qxJNotC2
>>737
強みもクソもAtomがVSCodeに勝っている点など無い
開発元のGitHubもMSに買収されたから、そのうちアップデートでいつのまにかAtomを使っていたつもりがVSCodeになってるかもね
0743デフォルトの名無しさん
垢版 |
2018/07/27(金) 23:54:43.74ID:2cdor2Ki
>>728
私見だけど御三家はtkinter wxPython PyQtかな。
意外とwysiwygなGUIデザイナが少なくて、私は最終的にPyQtに落ち着きました。

tkinterはウィジェットが野暮ったいとよく言われてますが、なにせ標準ライブラリなので
クロスプラットフォームでやり取りしやすいのがメリットですね。GUIデザイナはPAGEと
SpecTcl のGUIビルダーを使ってました。

PyQtはQtDesignerがスグレモノなのとウィジェットでかっこいいのがあるのがメリット。

wxはネットや本で解説が多いのがメリットでしょうか?GUIデザイナはwxGladeを使ってました。


他にもpyGTKとか pyFLTKがありますが、ややマイナーですね。

とりあえず迷ったらtkinterが無難じゃないでしょうか?
いずれのguiツールキットも多少の文法に差はあれど、ウィジェットの配置、
ウィジェットのイベント発生と処理ルーチンの関連付けなど似通ったところも
多いので、どれから始めても損はないと思います。
0744デフォルトの名無しさん
垢版 |
2018/07/27(金) 23:57:29.47ID:2cdor2Ki
連投ですみません。
PyQtをお考えならPyQt4よりもPyQt5の方が良いと思います。
本家QtがもうQt5に移行してますんで....。Python2ベースでもPyQt5行けたと記憶してます。
■ このスレッドは過去ログ倉庫に格納されています

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