[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 01/05 16:44 / Filesize : 201 KB / Number-of Response : 720
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 15:22:07.02 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その11
hibari.2ch.net/test/read.cgi/tech/1301383226/
関連スレ
Pythonのお勉強 Part45
hibari.2ch.net/test/read.cgi/tech/1321189773/
◆関連リンク
Python の Home Page
ttp://www.python.org/

   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

643 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 18:46:27.49 ]
なくなるなら宝石が先

644 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 19:03:06.98 ]
>>643
いや
641は632に対してね

645 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 22:15:44.71 ]
いろいろ考えたけど
内包表記やラムダなどを駆使して関数的に美しく書くなんてのは
Python では目指さない方が良さそうだというところに落ち着いた
やって出来ない事はないけど、やっぱり関数型言語ではないので
関数的なスタイルで読みやすいコードを書くのは難しい。

凝ったことはせずに
素直に手続き的に書いて関数も一つ一つ def する
というのが Python のコツっぽいかな?

646 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 22:39:15.16 ]
>>626
リンクのdive into python3はまとまっていてわかりやすそうかと思いました
python3を対象としていますが、今からpython勉強する場合は3がいいでしょうか?
なんか、ネット徘徊していると、2を勉強すべしとの意見も多いので困っています
よろしくお願いいたします



647 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 22:57:21.03 ]
どっちかで迷うくらいなら、3系がいいと思うよ。
私は3系のみ勉強している。
2系を折角勉強したのに、3系では邪魔知識になるとか嫌でしょ。
既存のPythonの資産を使いたいとかなら、
2系の勉強も考えた方がいいかも知れないけど、
そうじゃないなら3系からの勉強でいいと思う。

>>646が、Pythonをなぜ使いたいのかが一番大きい。

648 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 06:28:08.91 ]
Python3の現時点のデメリットは対応ライブラリが少ないくらいで至急何か作る必要がなければ困らないと思うよ
Python2は文字コードべったりなんでunicodeの暗黙の変換とかかなり分かりにくい

649 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 08:06:32.98 ]
勉強するだけなら Python 3 でも構わないかもね。
現実に使うのは厳しいが。


650 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 08:12:40.46 ]
どうしても、本人がどうしたいかになるんだよね。

651 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 11:53:03.88 ]
u"3だと日本語書くためにいちいちuつけなくていいから楽"




652 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 12:08:34.16 ]
全角だし

653 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 19:57:44.25 ]
つ[from __future__ import unicode_literals]

654 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 22:12:03.40 ]
>>649
目的が勉強だけって…
それはプログラミングやる意味ないんじゃ…

655 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:00:49.73 ]
勉強の意味が
数学や英語の学業としての勉強じゃなくて、
学んでいるという意味の勉強じゃないのかな?

656 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:04:47.16 ]
プログラム言語なんてその言語特有のお約束を覚えればいいだけじゃん
制御構文や変数はどの言語だって共通してるし

つまり

657 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:06:42.91 ]
>>647
単純に、Linuxのソフトウェア調べる仕事していて、pythonのコードに出くわすことが多かったからです
今現在のLinuxで動いているpythonとすると2系が多いですかね
個人的には3が勉強したいですけど


658 名前:デフォルトの名無しさん [2012/02/27(月) 23:24:21.45 ]
Python製のフレームワークって今何がHOTなの?

659 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:28:07.90 ]
>>657
両方勉強するのはだめなの?

660 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:41:16.90 ]
ライブラリの多さがpythonの利点なんだし
Python3なんて選択肢に入らない

661 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 23:47:18.01 ]
最初はどっちかに絞った方がいいと思ます。
二兎追うものは一兎も得ず
っていうじゃないですか。
どちらも理解できれば一番いいけど、そう上手くいくかな?

> Linuxのソフトウェア調べる仕事していて、pythonのコードに出くわすことが多かったからです

今度は、どんな目的で調べているかによる。なんつって。
範囲が広いんだよねー。

中身を読んでるってことですよね。
ふむ。
改良や開発目的で調べてるの?
そのソフトウェアの開発者達が、
後継の開発を2で行うって言ってるんなら、2の勉強だろうし、
3で行うってのが多勢なら3だろうし。



662 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 00:07:28.87 ]
smtplibについて質問させてください。

会社のメールサーバーに対して

> telnet XXX.XXX.XXX.XXX 25
を実行するとうまくつながるのですが、

以下のように実行するとエラーが発生します。
原因が何かヒントをいただけないでしょうか。
import smtplib
s = smtplib.SMTP('XXX.XXX.XXX.XXX', 25)


c:\test\python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> s = smtplib.SMTP('XXX.XXX.XXX.XXX', 25)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python27\lib\smtplib.py", line 242, in __init__
(code, msg) = self.connect(host, port)
File "c:\python27\lib\smtplib.py", line 302, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "c:\python27\lib\smtplib.py", line 277, in _get_socket
return socket.create_connection((port, host), timeout)
File "c:\python27\lib\socket.py", line 571, in create_connection
raise err
socket.error: [Errno 10061] 対象のコンピュータによって拒否されたため、接続できま
せんでした。
>>>

663 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 00:09:29.04 ]
>>661
中身は読んでいますけど、ほとんど趣味ですね
会社から要求されているのは単純な使い方と性能のみ
でも、個人的に興味持って色々と調べています

ま、趣味なんで、3勉強してみます


664 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 00:28:07.37 ]
こちらからもちょっと質問させて下さい。

> telnet
>>> import smtplib

って同一PCかつ同一OSでの実行結果?
それぞれの環境でpingがとおることは確認済?

まあ、これが答えのような気もするけど。
socket.error: [Errno 10061] 対象のコンピュータによって拒
否されたため、接続できませんでした。

665 名前:デフォルトの名無しさん [2012/02/28(火) 01:20:53.58 ]
scipyとmatplotlibが移植されたんで、自分的には3でも結構逝ける。

666 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 01:46:09.75 ]
俺はいつも逝ってる
むしろ吊ってるし詰んでる

667 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 05:58:14.65 ]
>605
>今までJava、C#しか経験していないため、変数に型が無い言語でどのようにすべきなのか良くわかりません。

>608
>いまいち、変数に型がないことによるメリットがわかりませんでした。

型はある
型宣言が無いだけ

668 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 06:05:53.88 ]
>632
for x in filter(a_condition, a_list):
 do_something(x)

669 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 06:14:14.91 ]
ワッフル ワッフル

670 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 06:31:08.22 ]
>>662
telnetでサーバからのリプライは確認した?
220 <ホスト名> ESMTP Sendmail ... とか返ってくるはずだけど

671 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 06:43:35.75 ]
>>670
はい、返ってきました。
これがうまくいっているので、どうしてエラーが起こるのかわからないんです…



672 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 07:13:17.56 ]
>>671
となるとちょっとわからない。ごめん
wiresharkでも使ってtelnetとsmtplibの通信内容を比べてみては

673 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 07:17:43.69 ]
wiresharkじゃなくてdebug設定では

674 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 07:30:31.34 ]
-v
-vvv

675 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 07:37:01.98 ]
>>667
メリット教えてやれよ


676 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 09:38:41.68 ]
>>675
ダックタイピングができる

677 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 16:14:31.80 ]
>>667
値に型があるんであって、変数に型はないでしょ

678 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 16:31:13.65 ]
変数はオブジェクト型またはプリミティブ型もしくはNoneです

679 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 17:53:02.28 ]
Pythonにはプリミティブ型なんて無い。
Noneもただのオブジェクト。

680 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 18:15:00.11 ]
pythonにはオブジェクトしかない

お前もオブジェクトにしてやろうか

681 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 21:05:46.33 ]
ひぃいぃ



682 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 21:27:45.80 ]
ジェクジェクにしてやろう

683 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 21:29:29.76 ]
壊れてすっかり職場のオブジェ

684 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 23:04:10.42 ]
>>671
[Errno 10061] は、WSAECONNREFUSED のことだろうから、
接続先のサーバーで smtp サーバーが動作していない (正確には、
該当のポートをリッスンしている奴がいない) ことを示している。

本当に、telnet と同じサーバーに繋ぎにいこうとしてる?

もしくは、s = smtplib.SMTP('XXX.XXX.XXX.XXX', 025) なんてしてないよね?

685 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 23:16:28.49 ]
>>684

> もしくは、s = smtplib.SMTP('XXX.XXX.XXX.XXX', 025) なんてしてないよね?

これはどうしてダメなんですか?
025のゼロがダメなんでしょうか。すいません。

686 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 23:57:53.76 ]
>>685
8進数だから

687 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 00:25:20.84 ]
>>> s = smtplib.SMTP('XXX.XXX.XXX.XXX', 25)
Traceback (most recent call last):
...

から見るにそんなことはしていなそうでしたが。

同一PCかつ同一OSでの実行結果?
それぞれの環境でpingがとおることは確認済?

とりあえず、pingは通りましたが送信できずに困ってますとかって言って欲しい。

688 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 03:55:30.51 ]
良心的に見て
>>> s = smtplib.SMTP('192.168.080.025', 25)
とかがアウトっていう意味か

ping が通ったからと言って telnet (IP) 25 が通る保障はどこにもない

689 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 03:58:36.06 ]
そしてpingが通らなくてもSMTP接続出来ることなんていくらでもある

690 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 05:48:42.36 ]
そして>662を読めといいたい

691 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 07:00:15.35 ]
こういう話だったらいいなあ
ja.wikipedia.org/wiki/Outbound_Port_25_Blocking

以下smtplib.SMTPでもdebuglevelが使えるようなので
今回の件には役に立ちそうにないけど一応

import smtplib
smtplib.SMTP.debuglevel = 1
con = smtplib.SMTP(hostname, 25)
... debug情報がずらずら ...



692 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 14:21:38.30 ]
クライアントの PC は同じ環境からアクセスしてんのかな
あと telnet するときの IP と smtplib.SMTP するときの IP
( XXX.XXX.XXX.XXX の部分 ) は本当に同じなのかな


693 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 22:21:00.17 ]
pythonでインスタンスのアドレスを知る方法ってないんでしょうか?
ずっと勘違いしてて id でアドレス表示してるのかと思ったら
全然そんなことないですよね
id の仕様を見ても「識別子」としか明言してなくてアドレスだとは一言も言ってないし

694 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 22:38:44.02 ]
help(id)

695 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 23:35:05.47 ]
あってるよ

Python/bltinmodule.c [926/2392行][38%]
static PyObject *
builtin_id(PyObject *self, PyObject *v)
{
return PyLong_FromVoidPtr(v);
}

PyDoc_STRVAR(id_doc,
"id(object) -> integer\n\
\n\
Return the identity of an object. This is guaranteed to be unique among\n\
simultaneously existing objects. (Hint: it's the object's memory address.)");

696 名前:デフォルトの名無しさん [2012/03/01(木) 15:22:17.92 ]
あってるね

697 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:48:39.27 ]
(1) (2) (3) を同じPC(Windows XP)で実行しました。
スクリプトからの接続を拒否する仕組みってあるのでしょうか?

-----------------------------------------------
(1) pingを実行した場合、以下のように成功します。

c:\test>ping 100.100.100.100

Pinging 100.100.100.100 with 32 bytes of data:

Reply from 100.100.100.100: bytes=32 time<1ms TTL=63
Reply from 100.100.100.100: bytes=32 time<1ms TTL=63
Reply from 100.100.100.100: bytes=32 time<1ms TTL=63
Reply from 100.100.100.100: bytes=32 time<1ms TTL=63

Ping statistics for 100.100.100.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms











698 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:49:08.93 ]
-----------------------------------------------
(2) telnet を実行した場合、以下のように成功します。

c:\test>telnet 100.100.100.100 25

220 xxx.xxx.co.jp ESMTP Postfix




699 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:50:13.53 ]
-----------------------------------------------
(3) pythonを以下のように実行するとエラーが出ます。

c:\test>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> smtplib.SMTP.debuglevel=1
>>> con = smtplib.SMTP('100.100.100.100', 25)
connect: ('100.100.100.100', 25)
connect: (25, '100.100.100.100')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python27\lib\smtplib.py", line 242, in __init__
(code, msg) = self.connect(host, port)
File "c:\python27\lib\smtplib.py", line 302, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "c:\python27\lib\smtplib.py", line 277, in _get_socket
return socket.create_connection((port, host), timeout)
File "c:\python27\lib\socket.py", line 571, in create_connection
raise err
socket.error: [Errno 10061] 対象のコンピュータによって拒否されたため、接続できま
せんでした。
>>>


700 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:52:26.58 ]
単にファイアウォールにひっかかってるだけじゃないの?

701 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:54:28.83 ]
>>698
この先に進もうとしようとすると同じように失敗しない?
telnetでどうやってメール送れたの?
受信確認はどうやったの?



702 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:42:02.63 ]
>>700
例えばノートンなんかに
(telnet.exeの通信は止められていないけど)
python.exeの通信が止められてる可能性があるってことか

703 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:22:05.12 ]
ファイアウォールというかセキュリティソフトのチェックかもな
telnet.exe は既に許可ソフトに登録済みなのを自分で忘れてるだけだろ


704 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:39:38.90 ]
かもとだろって、両立するの?

705 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:54:24.88 ]
自然言語では両立するでしょ。

706 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:24:24.48 ]
嘉本さんのこと言うなー

707 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:31:16.20 ]
(馬)鹿本だろう

708 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:36:14.76 ]
ぶるるるぁ

709 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:51:13.63 ]
webページをダウンロードして内容をファイルに書くところで詰まってるんだけど、

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
open('D:\P/output.txt', 'w').write(mainline)
TypeError: expected a character buffer object

と出るんだけどどうしたらいいの書き込もうとする文字列が一定以上の量だとエラー出る感じだけど

710 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 21:21:04.13 ]
type(mainline)
確認してみたら?
文字数が変わると内部でmainlineのtype変えてるんじゃないの?

711 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 21:40:50.14 ]
import StringIO
open('D:\P/output.txt', 'w').write(StringIO.StringIO(mainline).getvalue())



712 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 23:37:00.57 ]
>>699
>connect: ('100.100.100.100', 25)
>connect: (25, '100.100.100.100')

なんで二行でるんだ?

とりあえず、con = smtplib.SMTP('100.100.100.100') で試してみて。

>>700
多分、それはない。
もし、そうなら、10060 (WSAETIMEOUT) になるはず。

713 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:34:59.65 ]
>>701

今日試しました。
telnetでメールが送信できました。
以下のサイトを参考にました。
www.nurs.or.jp/~telnet/smtp.html

受信はメールソフトを使いました。

なんでだめなのか、さっぱりわかりません。

714 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:38:30.40 ]
>>712

何度かためしましたが、確かに二行が表示されます。

> とりあえず、con = smtplib.SMTP('100.100.100.100') で試してみて。

やりましたが、結果は全く同じです。
ひとつわかったことがあります。

IPアドレスを100.100.100.100じゃなくて、でたらめな値に変えても全く同じエラーが発生します。
telnetを使って100.100.100.100 でメール送信できたので、ipアドレスが間違っていることはありません。
smtplib のソースにデバッグコードを埋め込んでどこまでうまく動いているか、切り分けするしかないんでしょうか。



715 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:44:54.17 ]
ファイアウォールというかセキュリティソフトのチェック
telnet.exe は既に許可ソフトに登録済みなのを自分で忘れてるだけ

716 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:54:29.66 ]
多分PCから出れてないわ
みんながいうようにファイア・ウォールが原因だと思うぞなもし
一度ファイア・ウォール、セキュリティ関係諸々を停止させてから試してみなよ
そしたら上手くいくと思う

717 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:57:53.99 ]
localhost, 127.0.0.1だったらうまくいくんだっけか?

718 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:58:29.82 ]
職業別の人気順位
      (an・an調べ)
xbrand.yahoo.co.jp/category/lifestyle/7380/1.html
1位 システムエンジニア
2位 公務員
3位 銀行&商社マン
4位 警察・消防・自衛官
5位 マスコミ・営業マン・広告マン
6位 企業経営者
7位 医師
8位 弁護士、公認会計士

719 名前:デフォルトの名無しさん [2012/03/03(土) 00:59:02.50 ]
馬鹿には無理






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<201KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef