¼Ò½º
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) |