¼Ò½º
def mesg():
a = 1
return a
print mesg()
|
°á°ú
1
|
¼Ò½º
a = 10
b = 10
def mesg(a, b):
c = a + b
return c
print mesg(a, b)
|
°á°ú
20
|
¼Ò½º
a = 10
b = 10
def mesg(a, b):
c = a + b
return c
if __name__ == '__main__':
print mesg(a, b)
|
°á°ú
20
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
# FirstClass ¶ó´Â °´Ã¼¸¦ ¸¸µì´Ï´Ù.
class FirstClass:
def setdata(self, value): # ¾î¶² °ªÀ» ¹Þ´Â setdata ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.
self.data = value
def display(self): # setdata ¿¡¼ ¹ÞÀº °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.
print self.data
x = FirstClass()
y = FirstClass()
x.setdata("Kim Yong-Il")
x.display()
y.setdata("3.14159")
y.display()
print "¿À°Ô ¹Ù¸®"
|
°á°ú
python hello1.py
Kim Yong-Il
3.14159
¿À°Ô ¹Ù¸®
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
# FirstClass ¶ó´Â °´Ã¼¸¦ ¸¸µì´Ï´Ù.
class FirstClass:
def setdata(self, value): # ¾î¶² °ªÀ» ¹Þ´Â setdata ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.
self.data = value
def display(self): # setdata ¿¡¼ ¹ÞÀº °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.
print self.data
# SecondClass ¶ó´Â °´Ã¼¸¦ ¸¸µì´Ï´Ù.
# SecondClass ¶ó´Â °´Ã¼´Â FirstClass °´Ã¼¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
class SecondClass(FirstClass):
def display(self): # ȸé Ãâ·Â ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.
print 'Current value = "%s"' % self.data
z = SecondClass()
z.setdata(42)
z.display()
print "¿À°Ô ¹Ù¸®"
|
°á°ú
python hello2.py
Current value = "42"
¿À°Ô ¹Ù¸®
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
# FirstClass ¶ó´Â °´Ã¼¸¦ ¸¸µì´Ï´Ù.
class FirstClass:
def setdata(self, value): # ¾î¶² °ªÀ» ¹Þ´Â setdata ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.
self.data = value
def display(self): # setdata ¿¡¼ ¹ÞÀº °ªÀ» Ãâ·ÂÇÕ´Ï´Ù.
print self.data
# SecondClass ¶ó´Â °´Ã¼¸¦ ¸¸µì´Ï´Ù.
# SecondClass ¶ó´Â °´Ã¼´Â FirstClass °´Ã¼¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
class SecondClass(FirstClass):
def display(self): # ȸé Ãâ·Â ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù.
print 'Current value = "%s"' % self.data
# ThirdClass(SecondClass):
# Third ¶ó´Â °´Ã¼´Â Second °´Ã¼¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
class ThirdClass(SecondClass):
def __init__(self, value):
self.data = value
def __add__(self, other):
return ThirdClass(self.data + other)
a = ThirdClass("abc")
a.display()
b = a + 'xyz'
b.display()
print "¿À°Ô ¹Ù¸®"
|
°á°ú
python hello3.py
Current value = "abc"
Current value = "abcxyz"
¿À°Ô ¹Ù¸®
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
class Subclass:
data = 'spam'
def __init__(self, value):
self.data = value
def display(self):
print self.data, Subclass.data
x = Subclass(1)
y = Subclass(2)
x.display()
y.display()
print "¿À°Ô ¹Ù¸®"
|
°á°ú
python hello4.py
1 spam
2 spam
¿À°Ô ¹Ù¸®
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
class Super:
def method(self):
print 'in Super.method'
class Sub(Super):
def method(self):
print 'starting Sub.method'
Super.method(self)
print 'ending Sub.method'
x = Super()
x.method()
print "------------------>"
x = Sub()
x.method()
|
°á°ú
python hello5.py
in Super.method
------------------>
starting Sub.method
in Super.method
ending Sub.method
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
class Super:
def method(self):
print 'in Super.method'
def delegate(self):
self.action()
class Inheritor(Super):
pass
class Replacer(Super):
def method(self):
print 'in Replacer.method'
class Extender(Super):
def method(self):
print 'starting Extender.method'
Super.method(self)
print 'ending Extender.method'
class Provider(Super):
def action(self):
print 'in Provider.action'
if __name__ == '__main__':
for klass in (Inheritor, Replacer, Extender):
print '
' + klass.__name__ + '...'
klass().method()
print '
Provider...'
Provider().delegate()
|
°á°ú
python hello6.py
ending Extender.method
Inheritor...
in Super.method
Replacer...
in Replacer.method
Extender...
starting Extender.method
in Super.method
Provider...
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
class Number:
def __init__(self, start):
self.data = start
def __sub__(self, other):
return Number(self.data - other)
x = Number(5)
y = x -2
y.data
print y.data
|
°á°ú
python hello7.py
3
|
¼Ò½º
#!/usr/bin/env python
from gtk import *
class indexer:
def __getitem__(self, index):
return index ** 2
x = indexer()
for i in range(5):
print x[i],
|
°á°ú
python hello8.py
0 1 4 9 16
|
ÃÖÈñö ¼Ò½º, ironyjk (at) kldp.org
/var/mail ¿¡ ÀÖ´Â ¸ÞÀÏÀ» ¿øÇÏ´Â ¸ÞÀÏ ÁÖ¼Ò·Î º¸³½´Ù.
½ÇÇà : cd /var/mail
python stmp.py ID ¸áÁÖ¼Ò
smtp.py
import smtplib , sys , string
def sendmail ( ff , to , text ) :
if string.find ( ff , "@" ) == -1 :
print "%s Break" % ff
return
# print " toaddr = %s" % ff
# print " text == %s" % text
server = smtplib.SMTP('localhost')
server.sendmail(ff , to , text)
server.quit()
fromaddr = "root@localhost"
toaddr = sys.argv[2]
f = open ( sys.argv[1] )
line = f.readline()
text = ""
while line :
if len ( string.split ( line ) ) > 2 and string.split ( line )[0] == "From" :
sendmail ( fromaddr , toaddr , text )
fromaddr = string.split ( line )[1]
text = ""
text = text + line
line = f.readline()
if ( text != "" ) :
sendmail ( fromaddr , toaddr , text )
|
ÃÖÈñö¾¾ ¼Ò½º , ironyjk (at) kldp.org
Á¡½É¶§ ¹«¾ùÀ» ¸ÔÀ»±î °í¹ÎÇÒ¶§ Çѹø ½ÇÇàÇØÁÖ¸é µË´Ï´Ù.
bab.py
import random,smtplib,sys
list = ['Çѱ¹È¸°ü:ÇØ¹°µÈÀå','Çѱ¹È¸°ü:°¥ºñÅÁ', 'Çѱ¹È¸°ü:°¥ºñÅÁ', 'Çѱ¹È¸°ü:ºñºö¹ä','Çѱ¹È¸°ü:¼³··ÅÁ' ,'Çѱ¹È¸°ü:À°°èÀå' ,'»ïÀͽĴç:>¸¸µÎ±¹','»ïÀͽĴç:¹é¹Ý' ,'»ïÀͽĴç:Á¦À°ººÀ½' , '»ïÀͽĴç:±èÄ¡Âî°Ô' , '»ïÀͽĴç:±èÄ¡Âî°Ô' , 'Áß±¹Áý:º¹À½¹ä' , 'Áß±¹Áý:«»Í', 'Áß±¹Áý:>Â¥Àå¸é' , '»ïÀͽĴç:¾ß人À½¹ä' ,'ºÐ½ÄÁý:±èÄ¡º¹À½¹ä','ºÐ½ÄÁý:ºÎ´ëÂî°³']
menu = list [ int ( (random.random () * 100 ) % len (list) ) ]
fromaddr = "ID@address.org"
toaddr = "ID@address.org"
msg = "To: %s Subject:¿À´ÃÀÇ ¸Þ´º! ¿À´ÃÀÇ ¸Þ´º´Â %s ÀÔ´Ï´Ù." % ( toaddr , menu )
if len ( sys.argv ) > 1 :
msg = msg + "Áñ°Å¿î Àú³á½Ä»çÀÔ´Ï´Ù. Àú³á½Ä»ç ¾ÈÇÏ½Ç ºÐÀº °ü¸®ÀÚ¿¡°Ô ½Å°í ¹Ù¶ø´Ï´Ù. "
lastmenu = ""
msg = msg + " -- ÇöÀç ¸Þ´º ÇöȲ -- "
for i in list :
if lastmenu != i :
msg = msg + " - %s " % i
lastmenu = i
msg = msg + " »õ·Î¿î ¸Þ´ºÀÇ Ãß°¡´Â ¾ðÁ¦³ª ȯ¿µÇÕ´Ï´Ù. »õ·Î¿î ¸Þ´º´Â ID@address.org ¸ÞÀÏ º¸³»Áֽñ⠹ٶø´Ï´Ù."
server = smtplib.SMTP('address.org')
server.sendmail(fromaddr, toaddr, msg)
server.quit()
|
mysql µ¥ÀÌŸ¸¦ °¡Á® ¿É´Ï´Ù.
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost", db="test", user="root" , passwd="")
hash = db.cursor()
hash.execute("select * from test")
result = hash.fetchall()
for i in result:
print result[0]
db.close()
|
¼Ò½º
#!/usr/bin/python
import curses
import time
stdscr=curses.initscr()
curses.start_color()
curses.init_pair(1,curses.COLOR_CYAN, curses.COLOR_BLACK)
stdscr.addstr(10,10,"test", curses.color_pair(1))
stdscr.addstr(12,10,"aaaaaaaa", curses.A_REVERSE)
stdscr.refresh()
time.sleep(5)
curses.endwin()
|
¼¹ö ½ÇÇàÇϱâ
/usr/lib/python1.5$ python CGIHTTPServer.py
Serving HTTP on port 8000 ...
|
·çÆ®±ÇÇÑ »ç¿ëÇϱâ
vi CGIHTTPServer.py
nobody = nobody_uid()
# ¿©±â¼ ½Ã½ºÅÛÀÇ nobody °èÁ¤ UID¸¦ °¡Á® ¿É´Ï´Ù.
self.wfile.flush() # Always flush before forking
pid = os.fork()
if pid != 0:
# Parent
pid, sts = os.waitpid(pid, 0)
if sts:
self.log_error("CGI script exit status %#x", sts)
return
# Child
try:
try:
# À̺κÐÀ» nobody·Î »ç¿ëÇÒ °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ Çϰí, ·çÆ®¸¦ »ç¿ëÇÒ°æ¿ì´Â ÁÖ¼®Ã³¸®ÇÕ´Ï´Ù.
os.setuid(nobody)
except os.error:
pass
os.dup2(self.rfile.fileno(), 0)
os.dup2(self.wfile.fileno(), 1)
os.execve(scriptfile, args, env)
except:
self.server.handle_error(self.request, self.client_address)
|
CGIHTTPServer ¸ðµâ¿¡¼ CGI ½ÇÇàÇϱâ
¸ðµâÀ» ÀÌ¿ëÇØ¼ ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ¼¹ö ÇÁ·Î±×·¥À» ÇÒ¼ö ÀÖ½À´Ï´Ù.
#!/usr/bin/env python
import CGIHTTPServer
import BaseHTTPServer
Handler = CGIHTTPServer.CGIHTTPRequestHandler
PORT = 8080
httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler)
print "Serving at port ", PORT
httpd.serve_forever()
|
GIHTTPServer.py ¿¡ ¼Ò½º¿¡ º¸¸é cgi µð·ºÅ丮°¡ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÀÌ µÇ¾î ÀÖ½À´Ï´Ù.
ÇÊ¿ä½Ã º¯°æÀ» ÇÒ¼ö ÀÖ½À´Ï´Ù.
cgi_directories = ['/cgi-bin', '/htbin']
cgi ÇÁ·Î±×·¥ (test.py)
#!/usr/bin/env python
print """Content-type: text/html
¼º°ø Çß½À´Ï´Ù.
"""
|
À§¿Í °°Àº ¿¹Á¦¸¦ ÀÌ¿ëÇØ¼ cgi-bin ¹Ø¿¡ ³Ö¾î¼ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÀ» ÇÏ¸é µË´Ï´Ù.
http://localhost:8080/cgi-bin/test.py
¼Ò½º
import MySQLdb
connection = MySQLdb.connect(user='root', passwd='', db='nalabi')
cursor = connection.cursor() # Ä¿¼ °´Ã¼¸¦ ¾ò¾î¿Â´Ù.
cursor.execute('select * from test')
res = cursor.description
for record in res:
print "%-10s %-10s %-10s %-10s %-10s %-10s %-10s" % record
cursor.close()
|
°á°ú
no 3 2 6 6 0 0
num 3 2 6 6 0 0
idx 3 2 6 6 0 0
date 3 9 11 11 0 0
host 252 13 255 255 0 1
name 252 6 255 255 0 1
passwd 253 13 13 13 0 1
email 252 18 255 255 0 1
url 252 19 255 255 0 1
title 252 20 255 255 0 1
text 252 3243 16777215 16777215 0 1
refer 3 1 6 6 0 0
reyn 3 1 1 1 0 0
reno 3 1 6 6 0 0
rede 3 1 6 6 0 0
reto 3 1 6 6 0 0
html 3 1 1 1 0 0
moder 3 1 1 1 0 0
bofile 253 18 100 100 0 1
bcfile 253 14 100 100 0 1
bfsize 3 5 4 4 0 1
|
¼Ò½º
import commands, string, os
import os
out=commands.getoutput("ls -l")
a = string.split ( out , '\n' )
for i in range(len(a)):
b = string.split ( a[i])
if (b[0] != "\307\325\260\350") :
print b[8]
cc = "chown %s:%s %s" % (b[8], b[8], b[8])
commands.getoutput(cc)
|