Pythonについて0から教えてください
■ このスレッドは過去ログ倉庫に格納されています
0001fool
2005/09/07(水) 15:19:16について0から教えてください
お願いします
0232デフォルトの名無しさん
2005/11/23(水) 12:44:02>>> print "Hello," i , "!! I love you 4ever!!"
変数 i の後ろにカンマがないぞ。
0233デフォルトの名無しさん
2005/11/23(水) 12:49:14そのへんに気づき始めると理解速度が上がる。
0234デフォルトの名無しさん
2005/11/23(水) 12:54:03いや、iの前にもないだろ。
とりあえず、「,」で区切るのと「+」で連結する
方法を覚えておけばいいんでないの。
printが関数だったらこういう間違いは減りそうなんだが
0235デフォルトの名無しさん
2005/11/23(水) 12:55:340236デフォルトの名無しさん
2005/11/23(水) 13:24:410237デフォルトの名無しさん
2005/11/26(土) 05:59:34import string
char = string.digits + string.ascii_uppercase
pas = ""
for i in xrange(8):
pas += random.choice(char)
print pas
パスワード生成
0238デフォルトの名無しさん
2005/11/26(土) 09:33:45でもやめておこうとおもう。
0239デフォルトの名無しさん
2005/11/26(土) 12:36:23とは思う
0240デフォルトの名無しさん
2005/11/26(土) 17:58:59むしろ遠慮せずに書いてほしい。
0241デフォルトの名無しさん
2005/11/26(土) 19:27:32from random import choice
from string import digits, ascii_uppercase
return "".join((choice(digits + ascii_uppercase) for i in xrange(8)))
if __name__ == "__main__":
print generatePassword()
0242デフォルトの名無しさん
2005/11/26(土) 21:13:11どの問題への解答なの?
0243デフォルトの名無しさん
2005/11/26(土) 22:22:19>>237が発作的にコードをUpして、その他が反応というところだろう。
0244デフォルトの名無しさん
2005/11/27(日) 01:01:12でもやめておこうとおもう。
0245デフォルトの名無しさん
2005/11/27(日) 01:04:45コレってPythonだったら何行くらいで書けるものなの?
やってみたけどコードを短くする以前に問題が解けなかった。
0246デフォルトの名無しさん
2005/11/27(日) 02:56:54pythonでの比較はアレだけど、一応作ってみた。
import sys,re
def check_val(tree,ans,val=0):
if len(tree)!=3:
return False
elif len(tree[1])+len(tree[2])==0:
return ans==val+tree[0]
else:
return check_val(tree[1],ans,val+tree[0]) or check_val(tree[2],ans,val+tree[0])
in_str=sys.stdin.read()
in_val,in_tree=re.search("\s*(\d+)\s+\((.*)\)",in_str.replace("\n","")).groups()
in_tree=eval( in_tree.replace("(",",(") )
print {True:"yes",False:"no"}[check_val(in_tree,int(in_val))]
0247デフォルトの名無しさん
2005/11/27(日) 11:35:46Hello Pythonからで直してきます
0248デフォルトの名無しさん
2005/11/27(日) 15:44:58def Henkan(chr):
for (x, y) in [(" ", ""), ("()()", "-+-"), ("()", ""),(")", "-*-")]:
chr = chr.replace(x,y)
list = chr.split("(")
list1 = []
for i in list:
list1.extend(i.split("-"))
list2 = []
for i in list1:
if i in (""):
pass
elif i in ("*", "+"):
list2.append(i)
else:
list2.append(int(i))
return list2
0249デフォルトの名無しさん
2005/11/27(日) 15:46:12def Hantei(list):
answer = list[0]
list.pop(0)
list1 = []
list2 = []
for i in list:
if type(i) == int:
list1.append(i)
elif i in ("+"):
list2.append(sum(list1))
elif i in ("*"):
list1.pop()
if answer in list2:
return "yes"
else:
return "no"
chr = raw_input()
list = Henkan(chr)
print Hantei(list)
0250デフォルトの名無しさん
2005/11/27(日) 22:15:020251デフォルトの名無しさん
2005/11/28(月) 00:54:25問題: 16進数ダンプを行うコード
回答例: http://tinyurl.com/dyj4w
「ともだちがPython使い」なんていう状況があったら、それは恵まれていると思う。
0252デフォルトの名無しさん
2005/11/28(月) 02:05:03ちと富豪プログラミングっぽいが、こんなのはいかが?
def hexDump(fs, start, count):
fs.seek(start)
offset = 0
data = fs.read(count)
while True:
hex = " ".join(["%02x" % ord(c) for c in data[:16]])
if hex == "":
break
asc = "".join([['.', c][c.isalnum()] for c in data[:16]])
print "%08x : %-23s - %-23s : %s" % (start + offset, hex[:23], hex[24:], asc)
offset += 16
data = data[16:]
def main():
f = open("hexdump.py", "r")
hexDump(f, 0, 100)
if __name__ == "__main__":
main()
0253デフォルトの名無しさん
2005/11/28(月) 12:43:56ss = eval(s.replace("(", ",("))
def sum_generator(node, partial_sum):
for prop in node[1:]:
if len(prop)==0:
yield partial_sum+node[0]
else:
for trace_sum in sum_generator(prop, partial_sum+node[0]):
yield trace_sum
print {True:"YES", False:"NO"}[ss[0] in sum_generator(ss[1], 0)]
0254デフォルトの名無しさん
2005/11/28(月) 12:45:41def hd(f, start, length, n_cols=16):
f.seek(start, 0)
data = f.read(length)
cursor=0
while True:
part = data[cursor:cursor+n_cols]
if len(part)==0: break
posstr = '%08x' %(start+cursor)
hexstr = ''.join("%02x " % ord(c) for c in part).ljust(3*n_cols)
clabel = ''.join((c in asc and c or '.') for c in part).ljust(n_cols)
print ' : '.join((posstr, hexstr, clabel))
cursor+=n_cols
0255デフォルトの名無しさん
2005/11/28(月) 12:49:370256デフォルトの名無しさん
2005/11/28(月) 22:54:56ちょっと違う。子ノードが1本しかないノードも葉として判断してしまってます。
この式でいうと、2番目の4(子ノードは1のみ)がそれに該当。
0257デフォルトの名無しさん
2005/11/28(月) 23:07:550258デフォルトの名無しさん
2005/11/28(月) 23:15:32書籍じゃないと勉強し辛いですかね
webページって少ないですよね
0259デフォルトの名無しさん
2005/11/28(月) 23:56:39いまや日本語でかかれたPython本の方が少ない。
0260デフォルトの名無しさん
2005/11/29(火) 00:05:22「初めてのPython」5000円出すのはちょっと辛いんです
サイトだけで勉強してる人も多い?
0261デフォルトの名無しさん
2005/11/29(火) 00:19:390262デフォルトの名無しさん
2005/11/29(火) 00:19:51お勉強スレへ来たまえ。
[ Pythonのお勉強 Part 8 ]
http://pc8.2ch.net/test/read.cgi/tech/1132805629/20-
0263デフォルトの名無しさん
2005/11/29(火) 00:20:23ttp://www.python.jp/doc/release/tut/
本を読まずにコード書けるようになった奴を見たこと無いです。
0264デフォルトの名無しさん
2005/11/29(火) 00:23:44サイトで様子見して給料入ってから書籍購入検討します
呼ばれたのでお勉強スレにも行ってみます
0265デフォルトの名無しさん
2005/12/01(木) 18:27:11いやなら会社の金で買うとか、図書館にリク出すとか。
0266デフォルトの名無しさん
2005/12/01(木) 19:08:57でもその先の「アルゴリズムとデータ構造」や「プログラミング技術」みたいな
レベルに入ると、本が必要だよね。
0267デフォルトの名無しさん
2005/12/01(木) 19:38:31とりあえず「はじめて」というタイトルで、あの厚さと値段は、
出来れば買わずに済ませたい、むしろPythonを使うのは止めようと
思わせるに十分。
0268デフォルトの名無しさん
2005/12/01(木) 20:27:07釣れますか
もう師走ですね
0269デフォルトの名無しさん
2005/12/01(木) 20:41:11値段が高すぎるってのは同意。
0270デフォルトの名無しさん
2005/12/01(木) 21:06:07スキャナ買って取り込もうかと真剣に検討中。
0271デフォルトの名無しさん
2005/12/01(木) 21:15:26なった今では買う気が余りおきないんだよなー。
0272デフォルトの名無しさん
2005/12/02(金) 00:35:05ここのオープンソースのプログラムをコンパイルしたいだけなんだけど、どーしてもうまくいかない!
sepy ActionScript Editor 1.5.1
http://sourceforge.net/project/showfiles.php?group_id=90749&release_id=192540
ソースをさらっと読みしたり、一日いじくり回してわかったんだけど、
py2exe で使用している以下の二つのパッケージが見あたらなくて、コンパイルは正常終了するんだけど実行できないようなのね。
'win32com.gen_py'
'_xmlplus'
必要と思われるパッケージはインストールしました(下記参照)
誰かわからないかなぁ
・Python 2.4.2
・wxPython 2.6.1 (←2.6.2でコンパイル推奨なのだが見あたらない・・)
・PyRXP 1.07
・py2exe 0.6.3
そもそも、gen_pyってなんのパッケージなのよ?
0273デフォルトの名無しさん
2005/12/02(金) 00:48:08> 'win32com.gen_py'
> ---- snip ----
> そもそも、gen_pyってなんのパッケージなのよ?
win32comが入ってないきがする…
0274デフォルトの名無しさん
2005/12/02(金) 00:54:45あ、ごめんです。抜けてた。
・pyWin32 (win32com ) のビルド205を入れました。
gen_py ってフォルダはできるんだけど、中身は空っぽですた。
0275デフォルトの名無しさん
2005/12/02(金) 01:32:30> gen_py ってフォルダはできるんだけど、中身は空っぽですた。
うちのgen_pyフォルダには __init__.py がありました。こんな風になってた。
# pywin32-204.win32-py2.4.exe でインストールしました。
----↓ win32com\gen_py\__init__.py ----
# Generated file - this directory may be deleted to reset the COM cache...
import win32com
if __path__[:-1] != win32com.__gen_path__: __path__.append(win32com.__gen_path__)
----↑----
COMコンポーネントまわりが関係してるっぽいです。
gen_pyフォルダには、makepy.pyで生成したCOMコンポーネントのキャッシュが置かれる
らしいので、もともと空っぽ(__init__.py だけ)でもかまわないみたい。
ここらへんも参考になるかもしれない。
http://starship.python.net/crew/theller/moin.cgi/IncludingTypelibs
0276デフォルトの名無しさん
2005/12/02(金) 01:56:11> py2exe で使用している以下の二つのパッケージが見あたらなくて、コンパイルは正常終了するんだけど実行できないようなのね。
> 'win32com.gen_py'
> '_xmlplus'
> 必要と思われるパッケージはインストールしました(下記参照)
> 誰かわからないかなぁ
> ・Python 2.4.2
> ・wxPython 2.6.1 (←2.6.2でコンパイル推奨なのだが見あたらない・・)
> ・PyRXP 1.07
> ・py2exe 0.6.3
'_xmlplus' モジュールを使うなら、PyXML が必要なんじゃないの?
PyRXPもXML系のライブラリだけど、今回の目的には合わないと思う。
0277272
2005/12/02(金) 02:19:41setpu.py 内
import py2exe
setup(
〜〜〜
options = {
"py2exe": {
"packages": ['encodings', 'dbhash', 'win32com.gen_py', '_xmlplus'],
"dist_dir": packageroot,
}
},
〜〜〜
ここ、'win32com.gen_py', '_xmlplus'を抜くと正常にコンパイルが走るんで、原因はここで間違いなかったです。
さすが、プロ板。一人で悩んでたんで、多少なりとも光が見えた感じです。
>>275
'win32com.gen_py'
って事は、何かのcomコンポーネントをキャッシュさせるということなのでしょうか?
>>276
なるほど。ネットで情報収集してた際にはpyXMLもでてきていましたが、SEPYのオープンソース上のコメントを信じてpyRxpで粘っていました。試してみます。
ところで、PyRXPのインストールって、pydファイルをインストール先のDllsフォルダに設置するだけでいいんだろうか?それが間違ってる?
0278デフォルトの名無しさん
2005/12/02(金) 04:50:08なんだそりゃ…。
py2exeで固める前に、スクリプトがちゃんと動くかどうか確認した方がいいよ。
# コンパイルコンパイル言ってるから、なんか不安なんだが、ひょっとして
# コンパイラとインタプリタの区別もついてないんじゃなかろーか。
0279272
2005/12/02(金) 23:39:38うまくコンパイルできましたです。
目的だったSEPYエディタのSjisコードの使用も実装できましたです。
'_xmlplus'は PyXML インストールで解決、
'win32com.gen_py' は 'win32com' に書き換えて全部インポートしちゃう事で解決しました。
>>278
ぶっちゃけ、区別ついてないですww
pythonと出会って今日で二日目でした。うは。
pycってコンパイル生成物だとばかり思ってた。。違うのか?
んじゃ、pyファイルってのは全部スクリプトな訳なのね。
0280デフォルトの名無しさん
2005/12/03(土) 01:33:56.pycは.pyを *バイトコンパイル* して生成されるので、半分合ってる。
ただし、C言語などでいうコンパイルと違って、バイトコンパイルされた
Pythonコード自身を(Pythonインタプリタ無しで)実行できるわけではない点を理解して欲しい。
ここらへんとか参照:
http://www.python.jp/doc/nightly/tut/node8.html#SECTION008120000000000000000
0281デフォルトの名無しさん
2005/12/03(土) 01:43:250282デフォルトの名無しさん
2005/12/03(土) 07:44:59Ironpythonみたいな感じになっちゃうんですかね?
0283デフォルトの名無しさん
2005/12/03(土) 10:13:53既に使われています。psycoなんかはかなりポピュラーです。
psyco: JavaとかでいうとJITコンパイラにあたるもの
http://psyco.sourceforge.net/
shedskin: experimental Python-to-C++ compiler
http://sourceforge.net/projects/shedskin/
0284デフォルトの名無しさん
2005/12/04(日) 08:49:09Python おkなところがあるみたいです。
ttp://www.x7net.com/
何がどこまで出来るのかよく分かってないんですが、とりあえず
申し込んでみたので、審査通ったら勉強する予定。
0285デフォルトの名無しさん
2005/12/04(日) 13:23:10これって個人運営だよね。
サーバ1台で稼働してるっぽいけど大丈夫かな。
0286デフォルトの名無しさん
2005/12/04(日) 14:24:35CGIなんか特にそう。
何がInternalErrorなのかさっぱりです。
0287284
2005/12/04(日) 14:59:45広告無しで、どう成り立ってるのかも不思議。
飛んで困るようなモノは置かないようにします。
>>286
ありがとう。
まずは自分の PC でやってみます。
0288デフォルトの名無しさん
2005/12/05(月) 08:19:220289デフォルトの名無しさん
2005/12/05(月) 19:12:47execfile( "Lib\cgi.py" , hoge )
0290デフォルトの名無しさん
2005/12/05(月) 19:13:25cgi = { }
execfile( "Lib\cgi.py" , cgi )
0291デフォルトの名無しさん
2005/12/05(月) 22:29:46http://docs.python.org/ext/ext.html
0292デフォルトの名無しさん
2005/12/05(月) 22:31:15thx
0293デフォルトの名無しさん
2005/12/10(土) 00:37:14某MLに関連して、二次元配列はこんな感じで答えに最短になるのかな。
[[0]*width for i in range(height)]
0294デフォルトの名無しさん
2005/12/10(土) 00:40:470295デフォルトの名無しさん
2005/12/10(土) 22:52:400296デフォルトの名無しさん
2005/12/11(日) 11:05:42http://esoteric.sange.fi/brainfuck/impl/interp/bf.py.txt
0297デフォルトの名無しさん
2006/01/26(木) 01:34:55>>56を読むべし
0298デフォルトの名無しさん
2006/01/27(金) 14:46:10西暦(or元号)を引数にすると干支(十二支十干でも十二支だけでも可)を返す。
0299デフォルトの名無しさん
2006/01/27(金) 18:08:000300デフォルトの名無しさん
2006/01/27(金) 19:30:220301デフォルトの名無しさん
2006/01/28(土) 23:01:280302デフォルトの名無しさん
2006/01/28(土) 23:19:540303デフォルトの名無しさん
2006/01/29(日) 08:05:410304デフォルトの名無しさん
2006/01/29(日) 17:01:09B.C. 12000 (-12000) から A.D. 11999 年まで対応.
print (u"申酉戌亥子丑寅卯辰巳午未"*10000)[1972].encode('euc-jp')
0305301
2006/01/29(日) 19:24:39def eto(year): return u"子丑寅卯辰巳午未申酉戌亥"[(x-4)%12]
これでよかろうという意味ね
0306デフォルトの名無しさん
2006/01/30(月) 03:49:280307デフォルトの名無しさん
2006/01/30(月) 15:52:55文字化け対策としてはどうすればいいでしょうか?
#!/usr/bin/python
# -*- coding: euc-jp -*-
import curses
stdscr = curses.initscr()
stdscr.addstr("AAA")
stdscr.refresh()
curses.napms(2000)
curses.endwin()
0308デフォルトの名無しさん
2006/01/30(月) 16:06:36端末の文字コードが euc-jp に対応してるか確認し、(8bit 文字列通る?)
表示フォントも適切に設定する。
0309デフォルトの名無しさん
2006/01/30(月) 17:23:24環境は Cygwin/ck/screen ですが,
テスト時は screen なしでも確認してます.
euc-jp には対応しており,不思議なことに,
AAAをAAと2文字にすれば化けずに表示されます.
curses を使わず print "AAA" でも大丈夫です.
0310デフォルトの名無しさん
2006/01/30(月) 20:00:040311デフォルトの名無しさん
2006/01/30(月) 21:20:49>>307の原因を探る。
0312デフォルトの名無しさん
2006/01/30(月) 23:16:530313デフォルトの名無しさん
2006/02/07(火) 01:59:00参考書に載っていた約数を返す関数の
def factor (aNumber):
factorList = []
for i in range(2, aNumber/2+1):
if(aNumber % i) == 0:
factorList.append(i)
return (factorList)
4行目の if(aNumber % i)はどういう意味なんでしょうか?
0314デフォルトの名無しさん
2006/02/07(火) 02:56:51if (aNumber % i) だと,aNumber % i が 0 で無いなら〜
という意味
0315デフォルトの名無しさん
2006/02/07(火) 04:00:56早いレスありがとうございます。
理解できました。
0316デフォルトの名無しさん
2006/02/15(水) 22:03:010317デフォルトの名無しさん
2006/02/15(水) 22:03:580318デフォルトの名無しさん
2006/02/15(水) 22:18:480319デフォルトの名無しさん
2006/02/15(水) 22:26:46できないなら出来ないなりに間に合わせるので良いですけど
0320デフォルトの名無しさん
2006/02/15(水) 22:29:14何を目的としているんだ?
0321デフォルトの名無しさん
2006/02/15(水) 22:29:250322デフォルトの名無しさん
2006/02/15(水) 23:52:34単純に
#define AAA 360
というようなマクロ定義に使えればそれでよいです。
複雑な事をしようとしてる訳ではないので。
0323デフォルトの名無しさん
2006/02/16(木) 00:14:210324デフォルトの名無しさん
2006/02/16(木) 00:45:58やはりそうですか
0325デフォルトの名無しさん
2006/02/16(木) 01:10:09よみ辛さだなw
0326デフォルトの名無しさん
2006/02/16(木) 07:46:220327デフォルトの名無しさん
2006/02/16(木) 23:57:19日本語環境用インストーラ(Win32)をダウンロードして、
起動した画面の「プロパティ」の「現在のコードページ」に
「(ANSI/OEM-日本語 Shift-JIS」とありますが、
どうやって日本語を入力できるのかがわかりません。
いろいろキーを押してみたのですが、アルファベットしか
出てこないのです。マニュアルにも
『Pythonで学ぶプログラム作法』にも載っていなさそうです。
本当に「0から」って感じですが、お答えいただけたらうれしいです。
0328デフォルトの名無しさん
2006/02/17(金) 00:28:390329327
2006/02/17(金) 00:30:57そうです。わからないというか、できないというか。
0330デフォルトの名無しさん
2006/02/17(金) 00:34:510331327
2006/02/17(金) 00:55:06出来ました。ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています