2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

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

Pythonのお勉強 Part22

1 :デフォルトの名無しさん:2007/11/30(金) 21:49:38
Python オフィシャルサイト
http://www.python.org/
日本Pythonユーザ会
http://www.python.jp/Zope/
FrontPage - Pythonのお勉強
http://python.rdy.jp/
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1192884897/

◆関連スレッド

Microsoft IronPython 1.0
http://pc11.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
http://pc11.2ch.net/test/read.cgi/tech/1153585095/
2ch検索: [python]
http://find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python

◆関連サイト

Python ドキュメント
http://www.python.jp/doc/release/
Index of Python Enhancement Proposals (PEPs)
http://www.python.org/dev/peps/
参考サイト - Pythonのお勉強
http://python.rdy.jp/wiki.cgi?page=%BB%B2%B9%CD%A5%B5%A5%A4%A5%C8
.

846 :デフォルトの名無しさん:2008/01/13(日) 18:29:17
pythonで入力フォームを作っているのですが、
入力値のチェックで全角のみ許可する場合は
どのようにすればいいのでしょうか?

正規表現でどのように書けばいいのでしょう?
お願いします

847 :デフォルトの名無しさん:2008/01/13(日) 18:37:26
文字コード総合スレ part3
ttp://pc11.2ch.net/test/read.cgi/tech/1180250376/


848 :デフォルトの名無しさん:2008/01/13(日) 19:09:38
>>846
正規表現ライブラリの動作をかんがえると
簡潔にできないなら別に正規表現にする必要はないかと。
Unicodeに統一させるのは前提として
文字単位で確認するようなコードをこさえればいいと思う。
速度求めるようなもんでもなさそうだし。

849 :デフォルトの名無しさん:2008/01/13(日) 21:27:29

$KCODE = 'SJIS'
dat = ['Alpha', 'ひらがな', '漢字', 'カタカナ', '0123', 'ねこ大好き']

dat.each{ |str|
p str
case str
when /^[A-z]+$/s
p 'アルファベットのみ'
when /^[0-9]+$/s
p '数字のみ'
when /^[あ-ん]+$/s
p 'ひらがなのみ'
when /^[ア-ン]+$/s
p 'カタカナのみ'
when /^[亜-煕]+$/s
p '漢字のみ'
else
p '混合か全角英数字か記号'
end
}

850 :デフォルトの名無しさん:2008/01/13(日) 21:33:46
先生、ここはPythonスレです・・・

851 :デフォルトの名無しさん:2008/01/13(日) 21:41:43
UNICODEにしたときも
^[亜-煕]+$
って保証されるんかいな?

852 :デフォルトの名無しさん:2008/01/13(日) 22:22:29
「半角のみ」禁止なら割と簡単だけど・・・

853 :デフォルトの名無しさん:2008/01/13(日) 22:23:01
unicodedataつかいなよ

854 :デフォルトの名無しさん:2008/01/13(日) 22:50:41
>>851
UNICODEなら、漢字全部って意味でそれ書いちゃ間違い

855 :デフォルトの名無しさん:2008/01/13(日) 22:56:46
UNICODE(UCS-2)の文字コード順で書かないとな

漢字(統合漢字とExt.Aだけ)はこうか
r'^[\u4E00-\u9FBB\u3400-\u4DB5]+$'

856 :デフォルトの名無しさん:2008/01/13(日) 23:32:08
>>> unicodedata.east_asian_width(u'A') # 全角のA
'F'
>>> unicodedata.east_asian_width(u'ア') # 半角のア
'H'
>>> unicodedata.east_asian_width(u'あ')
'W'
>>> unicodedata.east_asian_width(u'A') # ASCII のA
'Na'
>>> unicodedata.east_asian_width(u'W')
'A'
>>> unicodedata.east_asian_width(u'\u0E20') # タイ語の文字
'N'
ttp://0xcc.net/blog/archives/000191.html


857 :デフォルトの名無しさん:2008/01/13(日) 23:48:22
……「半角が混じってたらNG」
というロジックにしちゃえというのは禁句だろうか

858 :デフォルトの名無しさん:2008/01/14(月) 00:03:10
2バイト半角もあるからな

859 :デフォルトの名無しさん:2008/01/14(月) 04:39:57
もう全部UTF-32でいいよもう

860 :デフォルトの名無しさん:2008/01/14(月) 09:28:22
禁止にするとかじゃなくて
内部でお好みの全角のみか何かに正規化するのが定石じゃん?

全角のみでおねがいします、の入力フォームを見るたびに
殴りたくなるぜ

861 :デフォルトの名無しさん:2008/01/14(月) 10:53:30
俺も正規化すればいいと思う。

862 :デフォルトの名無しさん:2008/01/14(月) 12:55:16
>>846
一旦EUC-JPかShift_JISにしてASCIIの範囲の文字とそれ以外に分ければいいと思う。

863 :862:2008/01/14(月) 13:42:18
# -*- coding: utf-8 -*-

def is_zenkaku(s):
    assert isinstance(s, unicode)
    try:
        s = s.encode("euc-jp")
    except UnicodeError:
        return False
    i = 0
    while i < len(s):
        if s[i] < '\x80': # ASCII
            return False
        elif s[i] == '\x8e': # JIS X 0201 Katakana
            return False
        elif s[i] == '\x8f': # JIS X 0212 Supplementary Kanji
            i = i + 3
        else: # JIS X 0208
            i = i + 2
    return True

864 :863の続き:2008/01/14(月) 13:43:21
if __name__ == "__main__":
    assert is_zenkaku(u"日本語") == True
    assert is_zenkaku(u"Kanji") == False
    assert is_zenkaku(u"Kanji") == True
    assert is_zenkaku(u"12345") == False
    assert is_zenkaku(u"12345") == True
    assert is_zenkaku(u"パイソン") == False
    assert is_zenkaku(u"パイソン") == True
    assert is_zenkaku(u"森\u9dd7外") == True
    assert is_zenkaku(u"Espa\u00f1ol") == False
    assert is_zenkaku(u"Россия") == True
    assert is_zenkaku(u"Αθηνα") == True
    assert is_zenkaku(u"(・∀・)イイ!") == True
    assert is_zenkaku(u"(・A・)イクナイ!") == False

865 :デフォルトの名無しさん:2008/01/14(月) 18:26:52
>>849
rubyってそんな面倒なことしないと分けれないのかよwww

>>863
そんな面倒なことせずに
east_asian_width使えばいいだろ

866 :デフォルトの名無しさん:2008/01/14(月) 19:08:51
>>865
ソースに問題点あるみたいなのでそっちの方が面倒そう<east_asian_width
http://d.hatena.ne.jp/methane/20070109/1168316594

867 :methane:2008/01/14(月) 19:27:05
>>866
それはdocutilsの中でeast_asian_width()の結果をどう扱ってるかって話。
日本限定で使う分にはこんな感じで良いと思う。
def char_width(s):
  if type(s) == 'str': s = unicode(s)
  return 2 if east_asian_width(s) in 'WFA' else 1

868 :デフォルトの名無しさん:2008/01/14(月) 19:41:43
なるほど・・

869 :デフォルトの名無しさん:2008/01/14(月) 19:51:10
>>866
それは、現在の実装がblogの人の想定と違ってるってだけでそ。
そこにある修正したら、\u00A1(INVERTED EXCLAMATION MARK)とかもWide&Full-widthと同じ扱いされてまうやん。


870 :methane:2008/01/14(月) 20:53:09
スマン、east_asian_width() == 'A' の文字ってCJK圏では全部Wide文字扱いかと思ってた。
>>867 のも、'A'を入れるか入れないかは微妙なんだな。

871 :デフォルトの名無しさん:2008/01/14(月) 21:12:40
A - East Asian Ambiguous
Ambiguous : あいまい(な)
なわけで。
ttp://www.unicode.org/reports/tr11/tr11.h1.gif


872 :methane:2008/01/14(月) 21:18:31
いや、A=Ambigious=「あいまい」は知ってたけど、
CJK圏ではWide、それ以外ではNarrow、という意味で「あいまい」だと思ってた。
Unicodeメンドイな。

873 :862:2008/01/14(月) 21:21:25
>>865
へー、unicodedata.east_asian_width() なんてあるんだ。知らんかった。Thanx

874 :デフォルトの名無しさん:2008/01/14(月) 22:03:15
Rubyのgets.to_iにあたる、数値入力を取得する命令ってどう書いたらいいんでしょうか?

875 :デフォルトの名無しさん:2008/01/14(月) 22:37:06
数値計算libでnumarray numpyとか似たようなのが複数あるけど
どれが一番いいの?


876 :デフォルトの名無しさん:2008/01/15(火) 00:02:47
>>874
try:
  a = input()
except NameError:
  a = 0

877 :デフォルトの名無しさん:2008/01/15(火) 00:09:30
>>876
その発想は無かった。

878 :デフォルトの名無しさん:2008/01/15(火) 00:16:05
>>874
import sys
x = int(sys.stdin.readline())

impoすらメンドいならint(raw_input())

879 :デフォルトの名無しさん:2008/01/15(火) 00:26:31
>>876
>>878
ありがとうございました。

880 :デフォルトの名無しさん:2008/01/15(火) 13:37:12
自鯖でpythonを動かし、rssなんかを取得したいのですが、
cgiからurllibでgetするとソケットエラーになります。
pythonを起動してやれば、普通に取得できます。
分かる方いたらお願いします。

OS : CentOS release 5 (Final)
Server : Apache/2.2.3
python : 2.4.3

881 :デフォルトの名無しさん:2008/01/15(火) 15:26:14
>>880
> urllibでgetするとソケットエラーになります。
「ソケットエラー」なんてエラー出力にはならないと思うし
勝手な省略したらわかるものもわからなくなるよ?

その環境にはないけどオチとしてはSELinuxが働いている、かな。

882 :デフォルトの名無しさん:2008/01/15(火) 16:11:03
>>881
動きました。ありがとうございます。
エラー文見て、適当に略してしまいました、すいません。
IOError: [Errno socket error] (-3, 'Temporary failure in name resolution')

883 :デフォルトの名無しさん:2008/01/15(火) 16:34:40
frobnicate - Google 検索
http://www.google.co.jp/search?q=frobnicate&hl=ja&lr=lang_ja&start=20&sa=N

質問
frobnicateってどういう意味ですか?

884 :デフォルトの名無しさん:2008/01/15(火) 16:50:24
>>883
その検索結果のROT13の頁を見よ

885 :デフォルトの名無しさん:2008/01/15(火) 19:01:23
>>884
ROT13 - Wikipedia
http://ja.wikipedia.org/wiki/ROT13
>このルーチンはROT13と同じ目的で用いられるが、任意の二進データに利用可能である
>(ユーモアをこめて、「意味不明化」(en:frobnicate)関数と呼ばれる)。このルーチンではデータの
>各8-bitバイトをとり、二進数の00101010(十進表記では42。人生、宇宙、すべての答え参照)と
>の間のビット毎の排他的論理和 (XOR) を計算する

ですね

Re: [Python-Dev] Replacement for print in Python 3.0 :: ASPN Mail Archive :: python-dev
http://aspn.activestate.com/ASPN/Mail/Message/python-dev/2808632
>printf('$1 forgot to frobnicate the $2!\n', username, file.name,
>    to=sys.stderr)

>While that's a little less self-descriptive for a translator to deal
>with (who would only see the string, not the call site), it certainly
>looks nicer for a non-i18n application, and could certainly work for an
>i18n app too. It's a neat idea worth exploring.

意味不明化する、いう使い方をするみたいですね
dくす

886 :デフォルトの名無しさん:2008/01/15(火) 19:39:21
>> I request the addition of prod():
>>  
>> def prod(seq):
>>      s = 1
>>      for x in seq:
>>          s *= x
>>  
>> prod is always as useful as sum()

>It would have to be called product(), and I believe it has been proposed
>multiple times and been rejected under the "not every 3-line function
>has to be builtin" rule.

そんなルール在ったんだw

887 :デフォルトの名無しさん:2008/01/16(水) 00:46:04
set に含まれる要素うち、2つを取り出して比較ってのを全組み合わせについて
やりたいんだけど、効率よく処理するにはどうすればいいだろう。
最初に思いたのは s = set([.........]) として
seq = tuple(s)
for i in range(len(seq)-1):
 for j in range(1, len(seq)):
  my_cmp(seq[i], seq[j])
なんだけど、すごい遠回りして処理してる気がする。
意外とベタに
[my_cmp(i, j) for i in seq: for j in seq]
ってインラインぽくやった方が早いのかな。ちなみに
my_cmp での比較順番は関係なし。(交換法則が成り立つ)

これを C で実装できればなおいいんだけど
C-APIには集合オブジェクトの処理がないんだよね。。。


888 :デフォルトの名無しさん:2008/01/16(水) 01:08:04
for x in list(s):
    s.remove(x)
    for y in s:
        my_cmp(x, y)

889 :デフォルトの名無しさん:2008/01/16(水) 12:27:57
効率よく、という趣旨からは外れるかもしれないけど、
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/474124
の下の方のやつを使えば、

for p in comb(list(s), 2):
 my_cmp(*p)
とすっきり書ける。

890 :デフォルトの名無しさん:2008/01/16(水) 23:41:58
ls = list(s)
for i in ls[:-2]:
 for j in ls[1:]:
  my_cmp(i, j)

891 :デフォルトの名無しさん:2008/01/17(木) 17:57:12
総当たりになってないw

892 :デフォルトの名無しさん:2008/01/18(金) 03:10:51
http://www.python.org/dev/peps/pep-0370/
面倒臭そうだ

893 :デフォルトの名無しさん:2008/01/18(金) 12:05:26
${HOME}/bin
${HOME}/lib/python2.5
${HOME}/share
俺は↑みたいにやってパスを通している。
/usr/local = ${HOME} の位置づけ

${HOME}/.local/lib/python2.6
わざわざ隠さなくてもいいよ。
存在を忘れそうだ。
タイプも面倒くさいし。

894 :デフォルトの名無しさん:2008/01/18(金) 21:21:23
半角と全角が混じった文字列を途中から改行するには
どうすればいいですか?

895 :デフォルトの名無しさん:2008/01/18(金) 22:45:40
unicode に変換したら

896 :デフォルトの名無しさん:2008/01/18(金) 23:15:20
禁則処理のことを云って居るのか?

897 :デフォルトの名無しさん:2008/01/18(金) 23:34:09
この質問にちゃんと答えられたら
その人はPGじゃなくてエスパーだろ。

898 :デフォルトの名無しさん:2008/01/18(金) 23:57:27
マルチバイト文字が入ってる文字列に改行を挿入したら泣き別れが
起きてしまうんですがどうしたらいいですか、なのかなぁ

899 :デフォルトの名無しさん:2008/01/19(土) 01:38:32
半角と全角とか言ってるからそこらへんかも

つ Unicode 文字列

900 :デフォルトの名無しさん:2008/01/19(土) 06:26:07
lxmlの最新バージョンのwindows用インストーラーがないんだけど

901 :デフォルトの名無しさん:2008/01/19(土) 11:00:18
あんたRubyにいいたいことがあるんじゃないんですか? とくにPythonと比べてみて。
ttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Bruce+Eckel%A4%CE%A1%D6Ruby%A4%CB%A5%A4%A5%A4%A5%BF%A5%A4%A5%B3%A5%C8%A1%D7%A5%B3%A1%BC%A5%CA%A1%BC



902 :デフォルトの名無しさん:2008/01/19(土) 13:40:00
他の言語なんて放っておけ

903 :デフォルトの名無しさん:2008/01/19(土) 16:00:57
Pythonの勉強をしにきました!

904 :デフォルトの名無しさん:2008/01/19(土) 16:02:35
やっぱやめた!

905 :デフォルトの名無しさん:2008/01/19(土) 16:17:47
>903
あきらめ早すぎ。

906 :デフォルトの名無しさん:2008/01/19(土) 19:30:12
Pythonチュートリアル重要だねえ

print時の文字フォーマットは辞書を使って
>>>fuga = {'hoge':'doutei'}
>>>print("%(hoge)s" % fuga)
>>>doutei
ができることを知ったよ。恥ずかしいのですべて読み切る。

907 :デフォルトの名無しさん:2008/01/19(土) 19:31:03
なんでprintに()つけるん?

908 :デフォルトの名無しさん:2008/01/19(土) 19:31:51
>>907
Python3000から付けるようになるとのことで、
今のうちから括弧付ける癖付けてる

909 :デフォルトの名無しさん:2008/01/19(土) 19:40:02
print("%(hoge)s" % (fuga,))
が正しい

910 :デフォルトの名無しさん:2008/01/19(土) 19:55:33
>>907
かっこつかないだろ



後悔はしていない

911 :デフォルトの名無しさん:2008/01/19(土) 19:56:37
>>909
Traceback (most recent call last):
File "<pyshell#909>", line 1, in <module>
print("%(hoge)s" % (fuga,))
TypeError: format requires a mapping

適当なことを言うのはやめるんだ

912 :デフォルトの名無しさん:2008/01/19(土) 20:20:07
( "ヮ")

913 :デフォルトの名無しさん:2008/01/19(土) 20:37:41
import string
print string.Template('$hoge').substitute(fuga)

というのも一応ある

914 :デフォルトの名無しさん:2008/01/19(土) 22:57:31
http://slashdot.jp/articles/08/01/18/070215.shtml

915 :デフォルトの名無しさん:2008/01/20(日) 02:24:27
ただいまメンテナンス中です

Slashdot Japan は現在メンテナンスを行っております。
ご迷惑をおかけして、誠に申し訳ございません。
しばらく後にもう一度アクセス頂けますよう、お願い申し上げます。


916 :デフォルトの名無しさん:2008/01/20(日) 03:01:44
メンテ終わったよ

917 :デフォルトの名無しさん:2008/01/20(日) 03:02:55
>>906

>>> hoge = 'doutei'
>>> print '%(hoge)s' % locals()
doutei

こんな技もあるから覚えておくといいよチェリーボーイ

918 :デフォルトの名無しさん:2008/01/20(日) 14:50:00
>>916
39

919 :デフォルトの名無しさん:2008/01/20(日) 16:12:47
もう伸びないってさ

920 :デフォルトの名無しさん:2008/01/20(日) 20:10:47
>>917
どもども

921 :デフォルトの名無しさん:2008/01/20(日) 22:08:28
今日からPython始めようと思うのだけれど
まずはチュートリアルを読めばいいのかな?

922 :デフォルトの名無しさん:2008/01/20(日) 22:25:12
多言語を知っているのなら
でもそんな人はそんな質問しないだろうな

923 :デフォルトの名無しさん:2008/01/21(月) 00:10:31
>>919
そうそう。Pythonはもう伸びない。
だからこんなに便利なプログラミング言語を使わなくていいよ。
今すぐ別の言語に移ってくれていいよ。

924 :デフォルトの名無しさん:2008/01/21(月) 00:14:57
>>923
今の所、今年のキモレスNo1

925 :デフォルトの名無しさん:2008/01/21(月) 00:16:44
>>924
もうPythonから離れていいよ。
100000万キロくらい離れていいよ。
むしろ二度と近寄らなくていいから。

926 :デフォルトの名無しさん:2008/01/21(月) 00:18:29
>>925
子供はプログラミングじゃなくてお勉強してろ

927 :デフォルトの名無しさん:2008/01/21(月) 00:31:54
暗いと不平を言うよりも、すすんであかりをつけましょう

928 :デフォルトの名無しさん:2008/01/21(月) 00:41:06
>>926
日本語も満足にできない低脳はPythonを使わない方がいいよ。

929 :デフォルトの名無しさん:2008/01/21(月) 00:46:07
100000万キロなんて今時小学生でも使わないだろ・・・

930 :デフォルトの名無しさん:2008/01/21(月) 00:55:53
>921
チュートリアルよりお気楽 Python プログラミング入門ってのがいいと思うんだ

931 :デフォルトの名無しさん:2008/01/21(月) 00:57:34
ガリレイの相対性原理も、アインシュタインの相対性理論も
破棄されました。!

21世紀の科学、物理学は支配の法則が支配する!!!!!

http://home9.highway.ne.jp/cym10262/fenomina.html

932 :デフォルトの名無しさん:2008/01/21(月) 04:32:37
初心者講座作れ!

933 :デフォルトの名無しさん:2008/01/21(月) 06:32:20
すいません。質問させてください。
Pythonの拡張とかフレームワークみたいなのを使わないで、
jspやerbみたいにhtmlにコードを埋め込むことはできますか?
テーブル作るときにレコードを一行ずつprintするのが嫌で、
配列をhtmlに渡して、レコードの数だけ埋め込んだコードでループさせたいと考えています。
まだ勉強し始めたばかりで、パイソン流の方法がわからず苦労しています。
よろしくお願いします。

934 :デフォルトの名無しさん:2008/01/21(月) 08:25:44
テンプレート

935 :デフォルトの名無しさん:2008/01/21(月) 09:35:44
>>933
テンプレートエンジンをつかいましょう。
Rubyと違って、PythonにはERBみたいなのは付属しないので、自分でインストールする必要があります。
ERBみたいなのでよければ、MakoやTenjinあたりが高速です。
http://www.kuwata-lab.com/tenjin/
に各種テンプレートエンジンへのリンクとベンチマークがあります。

936 :デフォルトの名無しさん:2008/01/21(月) 20:27:54
>>935
やっぱり何かをインストールしないとできないのですね。
紹介していただいたTenjinを使ってみました。
欲しかった使い勝手は、まさにコレでした。
使うときもtenjin.pyだけあれば管理者でサーバーにインストールする必要もないですし、
Tenjinを使っていこうと思います。
良いアドバイスをいただき、ありがとうございました。

937 :デフォルトの名無しさん:2008/01/22(火) 09:41:41
RSSを解析するのはたくさんあるけど、
逆に、作る方のモジュールって
RSS.py
PyRSS2Gen
を見つけたんだけど、他にないでしょうか?


938 :デフォルトの名無しさん:2008/01/22(火) 09:47:24
>>937
普通にテンプレート使えばいいんじゃね?

939 :デフォルトの名無しさん:2008/01/22(火) 09:50:00
インポートについて質問。標準ライブラリにある bz2 モジュールを使おうとしたら

import bz2

でできるけど、ライブラリ中に bz2.py は存在しないよね。
実際に存在するのは encodings/bz2_codec.py だ。
これは encodings/__init__.py でエイリアス名 bz2 が定義されてるからだってのはわかったんだけど、
なぜ

import encodins.bz2 ではなく import bz2 でインポート可能なんだ???

そもそもパッケージ中の __init__.py って、どのタイミングで処理されてるの?
import encodins.ナントカ を実行すると __import__ が自動的に encodins ディレクトリを探して __init__ を見つけ出して実行してる?

940 :デフォルトの名無しさん:2008/01/22(火) 10:27:01
Python 小人さん

でググれカス.

941 :デフォルトの名無しさん:2008/01/22(火) 10:59:02
ttp://python.matrix.jp/tips/import.html


942 :デフォルトの名無しさん:2008/01/22(火) 11:00:21
> なぜ import encodins.bz2 ではなく import bz2 でインポート可能なんだ??? 

同じパッケージ内のモジュールはパッケージ名なしで import できるんだよ。
てきとーに print 文を入れて

foo/
foo/__init__.py
foo/foo.py
foo/bar.py

を作って foo.py から import bar してみるべし。

> import encodins.ナントカ を実行すると __import__ が自動的に encodins ディレクトリを探して
> __init__ を見つけ出して実行してる?

そのとおり。上の例で import foo.foo とか import foo してみるべし。


943 :デフォルトの名無しさん:2008/01/22(火) 12:05:22
http://www2.atpages.jp/mirror/2ch/python/prog/read.php/1151508809/
233 :126:2006/07/11(火) 01:45:53
    今日の発見:
    pythonのdefやimportって、宣言文じゃなくて実行文なんですね。知りませんでした。
    def f1(arg):
     print arg
    というのは、JavaScriptチックに書くと
    f1 = function(arg) {
     print(arg);
    }
    ということなんですね。実行時に関数オブジェクトを作成し、変数に代入してるだけ。
    たしかに、これなら関数を「文がかけるlambda」として使うことに納得がいきました。
    defは宣言文だと思ってたので、lambdaのかわりにdefを使うというのはすごく違和感があったんです。
    ようやくわかったよー。確かにこれならlambdaを無理に拡張する必要ないですね。

    >>170
    >ていうかそもそも「lambdaに文を入れたい」っていう気持ちがあんまりわからないなあ。
    ぜひとも文を入れたい、というわけじゃなくて、単になんで文が指定できないのかなと思ったのがそもそもの発端です。
    でもPython2.4では3項演算子がないので、lambdaにif文を指定したいときはあります。
    「cond and val1 or val2」でもいいんですけど、これは偽となる値をval1に入れられないので。
    (入れるとcondに関わらずいつもval2が返されてしまう。)

944 :デフォルトの名無しさん:2008/01/22(火) 12:21:23
>>943
>lambdaにif文を指定したいときはあります。

そう思ったときが、lambda -> 関数定義への替え時ってことだと思うよ。

945 :デフォルトの名無しさん:2008/01/22(火) 16:54:01
>>941>>942>>939の答えになってない気がする。

http://www.python.org/doc/essays/packages.html

ここに答えがありそうだけど良く分からん・・・

946 :デフォルトの名無しさん:2008/01/22(火) 17:06:25
bz2.py ではなく pyd がインポートされる場合もある
>>> import bz2
>>> bz2.__file__
で確認すると俺の環境(Windows)では Python25/DLLs/bz2.pyd が表示される

947 :デフォルトの名無しさん:2008/01/22(火) 17:36:11
>>945
中の人ががんばってんだ、そっとしておいてやれ(ww

948 :デフォルトの名無しさん:2008/01/22(火) 18:32:01
encodings.aliases で定義されているのは
str.encode, deode の encoding オプションで使用可能なもの

>>> "aiueo".encode("bz2")
'BZh91AY&SY\xde\x0cS\xf8\x00\x00\x00\x01\x80" \x82\x00 \x00!\x86\x81\x9a\x03Sqw$
S\x85\t\r\xe0\xc5?\x80'
>>> "aiueo".encode("bz2").decode("bz2")
'aiueo'

949 :デフォルトの名無しさん:2008/01/22(火) 21:29:29
>>939
>ライブラリ中に bz2.py は存在しないよね。
存在してる。

950 :デフォルトの名無しさん:2008/01/22(火) 23:12:45
>>944
Pythonの場合、関数ローカルな関数が作れるのもあって
あんまりlambdaにこだわる必要ないよな。
気軽にdefしちゃえ、って気分。

951 :デフォルトの名無しさん:2008/01/23(水) 00:50:58
>>949
どこに?

952 :デフォルトの名無しさん:2008/01/23(水) 00:58:48
>>951
949の心の中に。

953 :デフォルトの名無しさん:2008/01/23(水) 06:56:50
一連の流れで、
windows上でcryptモジュールがimportできない話を思い出した。

954 :デフォルトの名無しさん:2008/01/23(水) 09:53:51
低レベルで見た時、インポートどういう手順でやっているんだろう?
簡単にするためにここでは対象ファイルは .py のみを考え、インポート機構には
PyImport_ExecCodeModule をつかって __import__ をエミュレートしてみる。

import hoge.piyo
だと、

1. ファイルシステムから hoge または hoge.py を探す
2. hoge.py ファイルが見つかれば hoge.py を PyImport_ExecCodeModule("hoge", ...)して終了 ?
3. hoge ディレクトリだったら hoge/__init__.py を探して PyImport_ExecCodeModule("hoge", ...) する?でも __init__.py を hoge という名前でインポートするのはおかしい気が

4. ファイルシステムから hoge/piyo または hoge/piyo.py を探す
5. hoge/piyo.py ファイルが見つかれば hoge/piyo.py を PyImport_ExecCodeModule("hoge.piyo", ...) して終了 ?
6. hoge/piyo ディレクトリだったら hoge/piyo/__init__.py を探して PyImport_ExecCodeModule("hoge.piyo", ...) して終了

疑問
手順2 または 3 で名前を "hoge" として PyImport_ExecCodeModule してしまうと以下のようなコードが可能になってしまわないか?

import hoge,piyo
print hoge.orz

かといって、PyImport_ExecCodeModule をしないと __init__ の内容が反映されないし、
hoge がファイル名だった場合は、そもそも PyImport_ExecCodeModule しないと話にならない。

955 :デフォルトの名無しさん:2008/01/23(水) 10:06:55
>>948
あぁ、この一覧欲しかったんだ。ありがと。
encodings.aliases.aliases ね。

956 :デフォルトの名無しさん:2008/01/23(水) 10:31:45
>>954
import hoge.piyo ってことだよな

>>> import os.path
>>> os.sep
'\\'

別にいいじゃない

957 :デフォルトの名無しさん:2008/01/23(水) 10:45:20
ええええええええええええ
その書き方って可能だったの????
じゃあ import A.B.C.D ってしたら
A.a
A.B.b
A.B.C.c
全部可能ってこと?

958 :デフォルトの名無しさん:2008/01/23(水) 10:52:20
なんでそうなる

959 :デフォルトの名無しさん:2008/01/23(水) 11:14:05
最近思うんだ、Python使いはレベルが下がった、とね。

960 :デフォルトの名無しさん:2008/01/23(水) 11:22:13
ネットでマイナーなものに飛びつく層は、どういうわけか、利口なフリをするのが好きな層だからね。
その虚飾がなくなっただけだろう。

961 :デフォルトの名無しさん:2008/01/23(水) 11:33:23
ぎくっ

962 :デフォルトの名無しさん:2008/01/23(水) 11:35:18
959 960
もう少し利口そうな文章を書いてくれ

963 :デフォルトの名無しさん:2008/01/23(水) 11:38:28
最近思うんだ、2chのム板にレベル求めちゃ駄目だ、とね。

964 :デフォルトの名無しさん:2008/01/23(水) 11:46:58
ええっと、つまりPythonはマイナーじゃなくなったってことだね

965 :デフォルトの名無しさん:2008/01/23(水) 11:56:43
裾野が広がれば
低レベルが増えるのは仕方ない

966 :デフォルトの名無しさん:2008/01/23(水) 11:58:11
久々に次スレ立ててみるか

967 :デフォルトの名無しさん:2008/01/23(水) 12:03:54
>>962
そういうのは二十歳過ぎくらいの、
何の根拠もなく自分を「わかってる奴」だと思ってる天狗ちゃんに任せる。

968 :デフォルトの名無しさん:2008/01/23(水) 12:18:07
利口じゃない人の文章特徴を一行に七つも組み込んでるんだから
人任せはよくないぞ。


969 :デフォルトの名無しさん:2008/01/23(水) 12:34:25
>>968
>>967からご指名だぞ

970 :デフォルトの名無しさん:2008/01/23(水) 13:32:58
> 利口じゃない人の文章特徴を一行に七つも組み込んでる
こういう独自の設定を説明抜きで使ってくるあたりが青いよね。
こういうのが「いけてる切り返し」だと思う時期は誰にでもあるけど、
アカデミック版と同じで、社会に出ちゃったらNGです。

971 :デフォルトの名無しさん:2008/01/23(水) 13:38:56
お前らが頭悪いのはわかったからpythonの話しようぜ


972 :デフォルトの名無しさん:2008/01/23(水) 14:41:18
>利口じゃない人の文章特徴を一行に七つも組み込んでるんだから

968は10までくらいなら数えることができるんだな。
すごいな。数学者向きだな。

973 :デフォルトの名無しさん:2008/01/23(水) 16:24:00
次スレ

Pythonのお勉強 Part23
http://pc11.2ch.net/test/read.cgi/tech/1201073019/

974 :デフォルトの名無しさん:2008/01/23(水) 16:51:35
ttp://rakunet.org/TSNET/TSpython/34/1028.html

加齢臭がする(なんとなく)。

975 :デフォルトの名無しさん:2008/01/23(水) 17:07:59
>>> import bz2
>>> bz2.__file__
'/usr/local/lib/python2.4/lib-dynload/bz2.so'
>>>

976 :デフォルトの名無しさん:2008/01/23(水) 19:43:50
Python 3000 α2のIDLEで(を入力するとエラーが発生するんだけど

977 :デフォルトの名無しさん:2008/01/23(水) 20:24:50
せめて980までは埋めないと落ちるのに時間がかかる&牡蠣汁おいしい埋め

978 :デフォルトの名無しさん:2008/01/23(水) 22:00:30
これからジムいってくる埋め

979 :デフォルトの名無しさん:2008/01/23(水) 22:05:00
じゃあ俺はボールで逝ってくる

980 :デフォルトの名無しさん:2008/01/23(水) 23:37:53
ちょっとソロモン行って来る

981 :デフォルトの名無しさん:2008/01/23(水) 23:43:57
じゃあちょっとメガ粒子砲ぶっ放してくる


ガンオタきもいわ

982 :デフォルトの名無しさん:2008/01/24(木) 00:23:53
じゃおれは餓島へ...行きたくない

983 :デフォルトの名無しさん:2008/01/24(木) 00:43:16


984 :デフォルトの名無しさん:2008/01/24(木) 06:18:38
仕事行ってくる

985 :デフォルトの名無しさん:2008/01/24(木) 09:15:50
俺はこれから試験、
最悪だ・・・orz

986 :デフォルトの名無しさん:2008/01/24(木) 14:38:05
9時すぎてんぞw 学校からならいーけど

987 :デフォルトの名無しさん:2008/01/24(木) 17:25:13
試験って言っても色々あるから、9時過ぎてても大丈夫じゃね?

988 :デフォルトの名無しさん:2008/01/24(木) 22:30:19
beautifulsoupの配布もとに行ったらサイトが落ちてるみたいなんですが
他にどこかにありませんか?

989 :デフォルトの名無しさん:2008/01/24(木) 23:18:36
じゃあ俺のBeautifulSoupを


というか落ちてないぞ
ttp://www.crummy.com/software/BeautifulSoup/#Download

990 :デフォルトの名無しさん:2008/01/25(金) 02:00:45
>>989
ごめんなさい今見たら復活してました・・・

991 :デフォルトの名無しさん:2008/01/25(金) 02:24:24
>>988
lxmlのほうがお勧め

992 :デフォルトの名無しさん:2008/01/26(土) 02:30:36
2.5.2まだ?

993 :デフォルトの名無しさん:2008/01/26(土) 02:55:17
http://morepypy.blogspot.com/2008/01/rpython-can-be-faster-than-c.html
速いなあー

994 :デフォルトの名無しさん:2008/01/26(土) 12:30:06
うめ

995 :デフォルトの名無しさん:2008/01/26(土) 12:30:30
うめ

996 :デフォルトの名無しさん:2008/01/26(土) 12:30:56
うめ

997 :デフォルトの名無しさん:2008/01/26(土) 12:31:20
うめ

998 :デフォルトの名無しさん:2008/01/26(土) 12:31:48
うめ

999 :デフォルトの名無しさん:2008/01/26(土) 12:38:29
>>993
ttp://www.kmonos.net/wlog/81.html#_1247080126
参考

1000 :デフォルトの名無しさん:2008/01/26(土) 12:54:02
このスレに乙Python

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

231 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)