您的位置:首页 > 编程语言 > Python开发

Python 编程基础 学习笔记

2017-05-11 10:34 453 查看
1/2

1//2

1.0/2.0

0.75%0.5

2**3

10000000000000000000000000L

0xAF

010

x=3

print 3*2

x=input("The meaning of life:")

x=5;y=6

pow(2,3)

round(1.0/2.0)

import math

math.floor(32.9)

int(math.floor(32.9))

from math import sqrt

sqrt(9)

foo=math.floor

foo(32.9)

32.0

import cmath

cmath.sqrt(-1)

print "Let's go"

print '"hello, world!" she said'

print 'Let\'s go!'

print "hello" "world"

x="Hello"

y="wold"

x+y

epr("Hello,world!")

repr(1000L)

print repr("Hello,world!")

print repr(1000L)

str("hello world")

print  str("hello world")

str(1000L)

print str(1000L)

print `10000L`

temp=42

print "the temperature is "+`temp`

name=input("What is your names?")

name=raw_input("What is your names?")

print "Hello .\

world!"

print """ My name

is your

names"""

print 'c:\\nwhere'

print r'c:\nwhere'

print r'c:\program files\foo\bar' '\\'

r'hello,world'

u'hello,world'

print u'hello,world'

edward=['Edward',42]

john=['John Smith',50]

database=[edward,john]

database[0]

database[-1]

'Hello'[1]

fourth=raw_input('year:')[3]

months=[

    'January',

    'February',

    'March',

    'April',

    'May',

    'June',

    'July',

    'August',

    'September',

    'October',

    'November',

    'December']

endings=['st','nd','rd']+17*['th']\

         +['st','nd','rd']+7*['th']\

         +['st']

year=raw_input('year:')

month=raw_input('Month (1-12')

day=raw_input('Day(1-31):')

month_number=int(month)

day_number=int(day)

month_name=months[month_number-1]

ordinal=day+endings[day_number-1]

print month_name+''+ordinal+'.'+year

tag='<a href="http://www.python.org">Python web site</a>'

tag[9:30]

tag[32:-4]

number=[1,2,3,4,5,6,7,8,9,10]

number[3:6]

number[-3:]

number[:3]

number[:]

number[0:10:1]

number[::2]

number[10:0:-2]

number[5::-2]

[1,2,3]+[4,5,6,7]

'python'*5

sequence=[None]*10

sentenct=raw_input("Sentence:")

screen_width=80

text_width=80

box_width=text_width+6

left_margin=(screen_width-box_width)//2

print ' '*left_magrin+'+'+'-'*(box_width-2)+'+'

permissions='rw'

'w' in permissions

database=[

    ['albert','1234'],

    ['dilbert','4242']

    ]

username=raw_input('User name')

pin=raw_input('PIN code:')

if [username,pin] in database: print 'Access granted'

numbers=[10,34,678]

len(numbers)

 max(numbers)

 f=list('Hello')

 ''.join(f)

x=[1,1,1]

x[1]=2

names=['Alice','Beth','Cecil']

del names[2]

name=list('Perl')

name[1:]=list('ython')

 name[1:4]=[]

 lst.append(4)

 ['to','be','or','not','to','be'].count('to')

 a=[1,2,3]

 b=[4,5,6]

 a.extend(b)

 a+b

 a[len(a):]=b

 kninghts=["we","are","the"]

 kninghts.index("are")

 number=[1,2,3,4,5]

 number.insert(3,'four')

 number.pop()

number.append(number.pop())

number.remove('four')

number.reverse()

list(reversed(number))

number.sort()

y=number[:]

y.sort()

y=sorted(number)

sorted('Python')

number.sort(cmp)

x=['aardvark','abalone','acme']

x.sort(key=len)

 1,2,3

 (1,2,3)

 ()

 42,

 (42,)

 3*(42+2)

3*(42+2,)

tuple([1,2,3])

tuple('abc')

tuple((1,2,3))

format="Hello,%s.%s enough for ya?"

values=('world','Hot')

print format % values

format="Pi with three decimals:%.3f"

from math import pi

print format % pi

'%s plus %s equals %s' % (1,1,2)

'Price of eggs:$%d' %42

'Using str:%s' % 42L

'Hexadecimal price of eggs:%x' % 42

'%10.2f' % pi

 '%.2f' % pi

 '%.10s' % 'Guido van Rossum'

 '%.*s' % (10,'Guido van Rossum')

 '%010.2f' % pi

 '%-10.2f' % pi

 print ('% 5d' % 10) + '\n' +('% 5d' % -10)

 print ('%+5d' % 10) + '\n' +('%+5d' % -10)

 title="Monty Python's Flying Circus"

 title.find('Monty')

 seq=['1','2','3','4','5']

 sep='+'

 sep.join(seq)

dis='','usr','bin','env'

print 'C'+'\\'.join(dis)

'This is a test'.replace('is','eez')

string.capwords("that's all, folks")

'1+2+3+4+5'.split('+')

'     internal whitespace is kept    '.strip()

'***SPAM*for*everyone!!!***'.strip('*!')

 from string import maketrans

table=maketrans('cs','kz')

'this is an incredible test'.translate(table)

'this is an incredible test'.translate(table,' ')

phonebook={'Alice':'2341','Beth':'9120'}

items=[('name','Gumby'),('age','42')]

d=dict(items)

d=dict(name='Gumby',age=42)

 d['age']

"Cecil's phone number is %(age)s." % d

d.clear()

x={'username':'admin','machines':['foo','bar','baz']}

y['machines'].remove('bar')

from copy import deepcopy

 d={}

 d['names']=['Alfred','Bertrand']

 c=d.copy()

 dc=deepcopy(d)

 d['names'].append('Clive')

  {}.fromkeys(['name','age'])

  dict.fromkeys(['name','age'],'(unknown)')

  print d.get('name')

  d.has_key('name')

  d.items()

  d.iteritems()

  d.pop('x')

  d.popitem()

  d.setdefalut('name','N/A')

  d.update(x)

  d.values()

  print 'Age:',42

  name='Gumby'

  salutation='Mr.'

  greeting='Hello.'

  print greeting+' ',salutation,name

   from string import *

   import string

   import math as foobar

   from math import sqrt as sqrt1

   from cmath import sqrt as sqrt2

   x,y,z =1,2,3

   x,y=y,x

   values=1,2,3

   x,y,z=values

   scoundrel={'name':'Robin','girlfriend':'Marion'}

   key,value=scoundrel.popitem()

   x=y=values

   x+=1

   x*=1

   fnord='foo'

 fnord+='bar'

 fnord*=2

False+True+43

bool('I think, therefore I am')

num=input('enter a number:')

if num>0:

    print 'the number is positive'

elif num<0:

    print 'the number is negative'

else:

    print 'the number is zero'

name=raw_input('Whtat is your name?')

if name.endswith('Gumby'):

    if name.startswith('Mr.'):

        print 'Hello,Mr.Gumby'

    elif name.startswith('Mrs.'):

        print 'Hello,Mrs.Gumby'

    else:

        print 'Hello, Gumby'

else:

    print 'Hello, stranger'

    

x=y=[1,2,3]

z=[1,2,3]

z==x

z is x

x is not z

name=raw_input('Whtat is your name?')

if 's' in name:

    print 'your name contains the letter s'

else:

    print 'your name doesno\'t contain the letter s'

[1,2]<[2,1]

 chr(97)

 ord('a')

 [2,[1,4]]<[2,[1,5]]

 

 number=input('Enter a number between 1 and 10')

if 1<number<10:

    print 'Great'

else:

    print 'Wrong'

    

name=raw_input('please enter your name:') or ('unknown')

age=10

assert 0<age<5, 'The age must be real'

name=''

while not name:

    name=raw_input('Please enter your name:')

    print 'Hello,%s!' % name

words=['this','is','an','ex','parrot']

for word in words:

    print word
for i in range(1,10):

    print i

d={'x':1,'y':2,'z':3}

for key in d:

    print key, 'correspinds to',d[key]

    

names=['anne','beth','george','damon']

age=[12,45,32,102]

for i in range(len(names)):

    print names[i],'is',age[i],'year old'

for name,age in zip(names,ages):

    print name,'is',age,'year old'

for string in strings:

    if 'xxx'in string:

        index=strings.index(string)

        strings[index]='[censored]'

index=0

for string in strings:

    if 'xxx'in string:

        strings[index]='[censored]'

    index+=1

for index.string in enumerate(strings)
if 'xxx' in string
strings[index]='[censored]'

sorted('Hello,world')   

''.join(reversed('Hello,world'))

list(reversed('Hello, world'))

from math import sqrt

for n in range(99,0,-1):

    root=sqrt(n)

    if root==int(root):

        print n

        break

range(0,10,2)

continue

from math import sqrt

for n in range(99,81,-1):

    root=sqrt(n)

    if root==int(root):

        print n

        break

else:

    print "Didn't find it"

while True:

    word=raw_input('Please enter a world:')

    if not word: break

[x*x for x in range(10)]

 [(x,y) for x in range(3) for y in range(3)]

 [x*x for x in range(10) if x%3==0]

 result=[]

for x in range(3):

    for y in range(3):

        result.append((x,y))

print result

girls=['alice','bernice','clarice']

boys=['chris','arnold','bob']

h=[b+'+'+g for b in boys for g in girls if b[0]==g[0]]

print h

name='Job'

if name=='James':

    print 'Welcome'

elif name=='William':

    pass

elif name=='Bill Gates':

    print 'Access Denced'

 x=["Hello","World"]

  y=x

  del x

  exec "print 'Hello,world'"

  exec 'print "Hello,world"'

  

   from math import sqrt

  scope={}

  exec 'sqrt=1'in scope

 sqrt(4)

scope['sqrt']

len(scope)

scope.keys()

eval(raw_input("enter an arithmetic:"))

scope={}

scope['x']=2

scope['y']=3

eval('x*y',scope)

scope={}

exec 'x=2' in scope

eval('x*x',scope)

 print 'Hello world'; print 'Hello'

 

 

 fibs=[0,1]

num=input('how many number do you want:')

for i in range(num-2):

    fibs.append(fibs[-2]+fibs[-1])

    print fibs

    import math

x=1

y=math.sqrt

callable(x)

callable(y)

def hello(name):
return 'Hello'+name

def fibs(num):
result=[0,1]
for i in range(num-2):
result.append(result[-2]+result[-1])
return result

def square(x):
'Calculate the square of the number x'
return x*x

 help(square)

 square.__doc__

 

 def test():
print 'This is printed'
return

        print 'This is not'

x=test()

def try_to_change(n):
n='Mr.Gumby'

  name='Mrs.Entity'

  try_to_change(name)

  

def change(n):
n[0]='Mr,Gumby'

n=names[:]
 

 n is names

 

  n==names

  

n[0]='Mr.Gumby'

storage={}

storage['First']={}

storage['Middle']={}

storage['Last']={}

def init(data):

    data['First']={}

    data['Middle']={}

    data['Last']={}

storage={}

def hello4(name,greeting='Hello',punctuation='!'):

    'print wellcome to wellcommer'

    print'%s,%s%s' % (greeting,name,punctuation)

 

 

 init(storage)

 

 def lookup(data,label,name):

    return data[label].get(name)

def store(data,full_name):

    names=full_name.split()

    if len(names)==2:names.insert(1,'')

    labels='first','middle','last'

    for label,name in zip(labels,names):

        people=lookup(data,label,names)

        if people:

            people.append(full_name)

        else:

            data[label][name]=[full_name]

 MyNames={}

 init(MyNames)

store(MyNames,'Magnus Lie Hetland')

lookup(MyNames,'Middle','Lie')

def inc(x):x[0]=x[0]+1

def hello1(greeting,name):

    print '%s,%s' % (greeting,name)

    

def hello3(greeting='Hello',name='world'):

    print '%s,%s' % (greeting,name)

hello3('OK','China')

hello4('James')

 hello4('James','OK')

 hello4('James','OK','...')

 hello4('James',greeting='Top scientices')

def print_param(*params):

    print params

print_param(1,2,3)

def print_param(title,*params):

    print title

    print params

print_param('Params:',1,2,3,4,)

def print_params4(x,y,z=3,*pospar,**keypar):

    print x,y,z

    print pospar

    print keypar

    

 print_params4(1,2,4,5,6,7,foo=1,bar=2)

 

def store(data,*full_names):

    for full_name in full_names:

        names=full_name.split()

        if len(names)==2: names.insert(1,'')

        labels='first','middle','last'

        for label,name in zip(labels,names):

            people=lookup(data,label,name)

            if people:

                people.append(full_name)

            else:

                data[label][name]=[full_name]

                

def add(x,y): return x+y            

params=(2,3)

add(*params)

def with_star(**kwds):

    print kwds['name'],'is',kwds['age'],'year old'

def without_star(kwds):

    print kwds['name'],'is',kwds['age'],'year old'

with_star(**args)

without_star(args)

def story(**kwds):

    return 'Once upon a time,there was a '\

           '%(job)s called %(name)s.' % kwds

def power(x,y,*other):

    if other:

        print 'Received redundant parameters:', other

    return power(x,y)

def interval(start,stop=None,step=1):

    'Imitates range() for step>0'

    if stop is None:

        start,stop=0,start

    result=[]

    i=start

    while i<stop:

        result.append(i)

        i+=step

    return result

print story(job='King',name='Gumby')

 param={'job':'language','name':'Python'}

 print story(**param)

  del param['job']

  print story(job='stroke of genius',**param) 

 x=1

 scope=vars()

 scope['x']

 def combine(parameter):print parameter +external

 external='berry'

 combine('Shrub')

 

 def combine(parameter):print parameter +globals()['external']

 

 x=1

def chang_global():
global x
x=x+1

def multiplier(factor):

    def multiplyByFactory(number):

        return number*factor

    return multiplyByFactory

double=multiplier(2)

double(5)

multiplier(5)(4)

def factorial(n):

    result=n

    for i in range(1,n):

        result*=i

    return result

def factorial(n):

    if n==1:

        return 1

    else:

        return n*factorial(n)

def power(x,n):

    if n==0:

        retun 1

    else:

        return x*power(x,n-1)

    

  

  

def search(sequence, number,lower=0,upper=None):

    if upper is None:upper=len(sequence)-1

    if lower==upper:

        assert number==sequence[upper]

        return upper

    else:

        middle=(lower+upper)//2

        if number>sequence[middle]:

            return search(sequence,number,middle+1,upper)

        else:

            return search(sequence,number,lower,middle)

        

seq=[12,23,34,51]

 search(seq,34)

 

 map(str,range(10))

 [str(i) for i in range(10)]

 

  def fun(x):
return x.isalnum()

 filter(fun,seq)

filter(lambda x:x.isalnum(),seq)

number=[72,101,108,111]

 reduce(lambda x,y:x+y, number)

 

 from random import choice

 x=choice(['Hello,World',[1,3,'e','e',2]])

 x.count("e")

 def add(x,y)
return x+y

def length_message(x):

    print "the length of",repr(x),"is",len(x)

length_message('Fnord')

length_message([1,2,3])

o=OpenObject()

o.setName('Sir Lancelot')

o.getName()

__metaclass__=type

class Person:

    def setName(self,name):

        self.name=name

    def getName(self):

        return self.name

    def greet(self):

        print "Hello,World! I'm %s" % self.name

        

foo=Person()

bar=Person()

foo.setName('Luke Skywalker')

bar.setName('Anakin Skywalker')

foo.greet()

bar.greet()

foo.name

 

foo.name='Yoda'

foo.greet()

Person.greet(foo)

class Class:

    def method(self):

        print 'I hva a self!'

def function():

    print "I don't..."

        

instance.method=function

instance.method()

class Bird:

    song='Squaawk'

    def sing(self):

        print self.song

birdsong=bird.sing

birdsong()

class Secretive:

    def __inaccessible(self):

        print "Bet you can't see me..."

    def accessible(self):

        print "The secret message is:"

        self.__inaccessible()

s.__inaccessible()

s.accessible()

Secretive._Secretive__inaccessible

s._Secretive__inaccessible()

def foo(x):return x*x

foo=lambda x:x*x

class C:
print 'Class C being defined...'

class MemberCounter:

    members=0

    def init(self):

        MemberCounter.members+=1

m1=MemberCounter()

m1.init()

 m2=MemberCounter()

 m2.init()

 MemberCounter.members

 class Filter:

    def init(self):

        self.blocked=[]

    def filter(self,sequence):

        return [x for x in sequence if x not in self.blocked]

class SPAMFilter(Filter):

    def init(self):

        self.blocked=['SPAM']

f=Filter()

f.init()

f.filter([1,2,3])

s=SPAMFilter()

s.init()

s.filter(['SPAM','bacon'])

issubclass(SPAMFilter,Filter)

issubclass(Filter,SPAMFilter)

SPAMFilter.__bases__

s=SPAMFilter()

isinstance(s,SPAMFilter)

isinstance(s,Filter)

 s.__class__

 type(s)

 

 class Calculator:

    def calculate(self,expression):

        self.value=eval(expression)

class Talker:

    def talk(self):

        print 'Hi, my value is',self.value

class TalkingCalculator(Calculator,Talker):

    pass

tc=TalkingCalculator()

tc.calculate('1+2*3')

tc.talk()

hasattr(tc,'talk')

callable(getattr(tc,'talk',None))

setattr(tc,'name','Mr.Gumby')

tc.name

tc.__dict__

raise Exception

raise Exception('hyperdrive orverload')

import exceptions

dir(exceptions)

raise ArithmeticError

class SomeCustomException(Exception):pass

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except ZeroDivisionError:

    print " the second number can't be zero!"

class MuffledCalculator:

    muffled=False

    def calc(self,expr):

        try:

            return eval(expr)

        except ZeroDivisionError:

            if self.muffled:

                print 'Divison by zero is illegal'

            else:

                raise

            

    

calculator=MuffledCalculator()

calculator.calc('10/2')

calculator.calc('10/0')

calculator.muffled=True

calculator.calc('10/0')

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except ZeroDivisionError:

    print " the second number can't be zero!"

except TypeError:

    print "That wasn't a number,was it?"

    

Enter the first number:12

Enter the second number:'Hello world'

That wasn't a number,was it?

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except ZeroDivisionError:

    print " the second number can't be zero!"

except TypeError:

    print "That wasn't a number,was it?"

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except (ZeroDivisionError,TypeError,NameError):

    print 'Your number were bogus...'

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except (ZeroDivisionError,TypeError,NameError),e:

    print 'Your number were bogus...'

    print e

    

try:

    x=input('Enter the first number:')

    y=input('Enter the second number:')

    print x/y

except :

    print 'Something happend'

while True:

    try:

        x=input('Enter the first number:')

        y=input('Enter the second number:')

        value=x/y

        print 'x/y is',value

    except:

        print 'Invalid input,Please try again.'

    else:

        break 

while True:

    try:

        x=input('Enter the first number:')

        y=input('Enter the second number:')

        value=x/y

        print 'x/y is',value

    except Exception,e:

        print 'Invalid input,Please try again.',e

    else:

        break 

try:

    1/0

except NameError:

    print "Unknown variable"

else:

    print "that went well"

finally:

    print "Cleaning up"

    

def faulty():

    raise Exception ('Something is wrong')

def ignore_exception():

    faulty()

def handle_exception():

    try:

        faulty()

    except:

        print "Exception handled"

ignore_exception()

handle_exception()

def describePerson(person):

    print 'Description of', person['name']

    print 'Age:', person['age']

    if 'occupation' in person:

        print 'Occupation:',person['occupation']

def describePersion(person):

    print 'Description of', person['name']

    print 'Age:', person['age']

    try:

        print 'Occupation:'+person['occupation']

    except KeyError: pass

try:

    obj.write

except AttibuteError:

    print 'The object is not writeable'

else:

    print 'The ojbect is writeable'

class FooBar:

    def __init__(self):

        self.somevar=42

f=FooBar()

f.somevar

class FooBar:

    def __init__(self,value=42):

        self.somevar=value

        

class A:

    def hello(self):

        print "Hello,I'm A"

class B(A):

    pass

class A:

    def hello(self):

        print "Hello,I'm A"

class B(A):

    def hello(self):

        print "Hello,I'm B"

b=B()

b.hello()

class Bird:

    def __init__(self):

        self.hungry=True

    def eat(self):

        if self.hungry:

            print 'Aaaah...'

            self.hungry=False

        else:

            print 'No,thinks!'

            

        

b=Bird()

b.eat()

b.eat()

__metaclass__=type

class Bird:

    def __init__(self):

        self.hungry=True

    def eat(self):

        if self.hungry:

            print 'Aaaah...'

            self.hungry=False

        else:

            print 'No,thinks!'

class SongBird(Bird):

    def __init__(self):

        super(SongBird,self).__init__()

        self.sound='Squawk'

    def sing(self):

        print self.sound

sb=SongBird()

sb.sing()

sb.eat()

def checkIndex(key):

    if not isinstance(key,(int,long)):raise TypeError

    if key<0:raise IndexError

class ArithmeticSequence:

    def __init__(self,start=0,step=1):

        self.start=start

        self.step=step

        self.changed={}

    def __getitem__(self,key):

        checkIndex(key)

        try: return self.changed[key]

        except KeyError:

            return self.start+key*self.step

    def __setitem__(self,key,value):

        checkIndex(key)

        self.changed[key]=value

class CounterList(list):

    def __init__(self,*args):

        super(CounterList,self).__init__(*args)

        self.counter=0

    def __getitem__(self,index):

        self.counter+=1

        return super(CounterList,self).__getitem__(index)

class CounterList(list):

    def __init__(self,*args):

        super(CounterList,self).__init__(*args)

        self.counter=0

    def __getitem__(self,index):

        self.counter+=1

        return super(CounterList,self).__getitem__(index)

 cl=CounterList(range(10))

 cl.reverse()

 del cl[3:6]

 

 __metaclass__=type

class Rectangle:

    def __init__(self):

        self.width=0

        self.height=0

    def setSize(self,size):

        self.width,self.height=size

    def getSize(self):

        return self.width,self.height

    size=property(getSize,setSize)

__metaclass__=type

class Myclass:

    def smeth():

        print 'This is a static method'

    smeth=staticmethod(smeth)

    def cmeth(cls):

        print 'This is a class method of',cls

    cmeth=classmethod(cmeth)

    

class Rectangle:

    def __init__(self):

        self.width=0

        self.height=0

    def __setattr__(self,name,value):

        if name=='size':

            self.width,self.height=value

        else:

            self.__dict__[name]=value

    def __getattr__(self,name):

        if name=='size':

            return self.width,self.height

        else:

            raise AttributeError

        

class Fibs:

    def __init__(self):

        self.a=0

        self.b=1

    def next(self):

        self.a,self.b=self.b,self.a+self.b

        return self.a

    def __iter__(self):

        return self

 fibs=Fibs()

for f in fibs:
if f>1000:
print f
break

it=iter([1,2,3])

it.next()

class TestIterator:

    value=0

    def next(self):

        self.value+=1

        if self.value>10: raise StopIteration

        return self.value

    def __iter__(self):

        return self

ti=TestIterator()

list(ti)

def flatten(nested):

    for sublist in nested:

        for element in sublist:

            yield element

nested=[[1,2],[3,4],[5]]

f= flatten(nested)

for num in flatten(nested):
print num

def flatten(nested):

    try:

        for sublist in nested:

            for element in flatten(sublist):

                yield element

    except TypeError:

        yield nested

        

list(flatten([[[1],2],3,4,[5,[6,7]],8]))

def flatten(nested):

    try:

        try: nested + ''

        except TypeError:pass

        else:raise TypeError

        for sublist in nested:

            for element in flatten(sublist):

                yield element

    except TypeError:

        yield nested

def repeater(value):

    while True:

        new=(yield value)

        if new is not None:value=new

 N = (i**2 for i in range(1,11))

 for i in N:
print i

def conflict(state,nextX):

    nextY=len(state)

    for i in range(nextY):

        if abs(state[i]-nextX) in (0,nextY-i):

            return True

    return False

def queens(num=8,state=()):

    for pos in range(num):

        if not conflict(state,pos):

            if len(state)==num-1:

                yield(pos,)

            else:

                for result in queens(num,state+(pos,)):

                    yield (pos,)+result

                    

list(queens(4))

def list_or_tuple(x):  # test#

    print 'type check'

    return isinstance(x, (list, tuple))  

def flatten(sequence, to_expand=list_or_tuple):

    print 'into first'

    for item in sequence:

        print 'into second'

        if to_expand(item):

            print 'into three'

            for subitem in flatten(item, to_expand):

                print 'into nest funciont',item

                print 'into nest paramer',to_expand

                print subitem

                yield subitem,'return'

        else:

            print 'into last'

            yield  'new',item 

  

  def prettyprint(solution):
def line(pos,length=len(solution)):
    return '.'*(pos)+'X'+'.'*(length-pos-1)
for pos in solution:
    print line(pos)

  import random

  prettyprint(random.choice(list(queens(8)))

  

  import sys

 sys.path.append('C:\Users\merit')

 

  Hello=reload(Hello)

  reload(Hello)

  Hello.hello2()

  

 print 'Hello,world'

print "I don't know"

def hello2():

    print 'I will be the great man'

hello2()

print 'Hello,world'

print "I don't know"

def hello2():

import email

 dir(email) 

 f=[n  for n in dir(email)]

 import copy

 copy.__all__

 from copy import *

 

 help(copy.copy)

 copy.__doc__

print copy.copy.__doc__

print copy.__doc__

print range.__doc__

sys.argv

sys.modules

sys.path

sys.platform

sys.stdin

sys.stderr

args=sys.argv[1:]

args.reverse()

print ' '.join(args)

 

    print 'I will be the great man'

def test():

    hello2()

import sys,pprint

pprint.pprint(sys.path)

 

~python/drawing/

~python/drawing/__init__.py

~python/drawing/colors.py

~python/drawing/shapes.py

import drawing

import drawing.colors

from drawing import shapes

 import os

 os.path

 os.environ

 os.system()

 os.popen

 os.sep

 os.system(r'c:\Program Files')

 os.startfile(r'c:\program Files')

 

 import fileinput

 fileinput.input()

 fileinput.filename()

 

 import fileinput

for line in fileinput.input(inplace=True):

    line=line.rstrip()

    num=fileinput.lineno()

    print '%-40s #%2i' % (line,num)

    

set(range(10))

set(['fee','fie','foe'])

a=set([1,2,3])

b=set([2,3,4])

a.union(b)

a|b

c=a&b

c.issubset(a)

c.issubset(b)

c.issuperset(a)

a.issuperset(c)

a.intersection(b)

a>=c

a.difference(b)

b.difference(a)

a-b

a.symmetric_difference(b)

 a^b

set([1, 4])

a.copy()

 a.copy()==a

a.copy() is a

 

  mySets=[]

 for i in range(10):
mySets.append(set(range(i,i+5)))

 reduce(set.union,mySets)

 

  a=set()

 b=set()

 a.add(frozenset(b))

from heapq import *

from random import shuffle

data=range(10)

shuffle(data)

 heap=[]

for n in data:
heappush(heap,n)

  heappush(heap,0.5)

 

 heappop(heap)

heap=[5,8,0,3,6,7,9,1,4,2]

heapify(heap)

heapreplace(heap,0.5)

 

from collections import deque

q=deque(range(5))

q.append(5)

q.appendleft(6)

q.pop()

q.popleft()

q.rotate(2)

q.rotate(-1)

from random import *

from time import *

date1=(2008,1,1,0,0,0,-1,-1,-1)

time1=mktime(date1)

date2=(2009,1,1,0,0,0,-1,-1,-1)

time2=mktime(date2)

 random_time=uniform(time1,time2)

 print asctime(localtime(random_time))

 

 from random import randrange

num=input('How many dice?')

sides=input('How many sides per die?')

sum=0

for i in range(num): sum=randrange(sides)+1

print'the result is.', sum

import fileinput,random

fortunes=list(fileinput.input())

print random.choice(fortunes)

values=range(1,11)+'Jack Queen King'.split()

suits='diamonds clubs hearts spades'.split()

deck=['%s of %s' % (v,s) for v in values for s in suits]

from pprint import pprint

pprint(deck[:12])

 from random import shuffle

 shuffle(deck)

 

 pprint(deck[:12])

 

 import shelve

s=shelve.open('test.dat')

s['x']=['a','b','c']

s['x'].append('d')

s['x']

temp=s['x']

temp.append('d')

s['x']

import sys,shelve

def store_person(db):

    pid=raw_input("Enter unique ID number:")

    person={}

    person['name']=raw_input('Enter name:')

    person['age']=raw_input('Enter age:')

    person['phone']=raw_input('Enter phone number:')

    db[pid]=person

def lookup_person(db):

    pid=raw_input('Enter ID number:')

    field=raw_input('What would you like to know?(name,age,phone)')

    field=field.strip().lower()

    print field.capitalize()+':',\

          db[pid][field]

def print_help():

    print 'The available commands are:'

    print 'store :Store information about a person'

    print 'lookup: Lools up a person from ID number'

    print 'quit:Save changes and exit'

    print '? :Print this message'

def enter_command():

    cmd=raw_input('Enter command(? for help):')

    cmd=cmd.strip().lower()

    return cmd

def main():

    database =shelve.open('test.dat')

    try:

        while True:

            cmd=enter_command()

            if cmd=='store':

                store_person(database)

            elif cmd=='lookup':

                lookup_person(database)

            elif cmd=='?':

                print_help()

            elif cmd=='quit':

                return

    finally:

        database.close()

if __name__=='__main__':main()

    

import re

  ome_text='alpha.beta......gamma delta'

  re.split('[ |.]+',some_text)

  

 re.split('[.]+',some_text,maxsplit=2)

 re.split('[.]+',some_text,maxsplit=1)

 

  pat='[a-zA-Z]+'

 text='"Hm...Err--are you sure?" He said, sounding'

 re.findall(pat,text)

 

 pat=r'[.?\-",]+'

 re.findall(pat,text)

 

 pat='{name}'

 text='Dear {name}...'

 re.sub(pat,'Mr.Gumby',text)

 

 re.escape('www.python.org')

 

 m=re.match(r'www\.(.*)\..{3}','www.python.org')

 m.group(1)

 m.start(1)

 m.end(1)

 m.span(1)

 emphasis+pattern=r'\*([^\*]+)\*'

 re.sub(emphasis_pattern,r'<em>\1</em>','Hello,*world*')

 

 emphasis_pattern=r'\*(.+)\*'

 re.sub(emphasis_pattern,r'<em>\1</em>','*This* is *it*!')

 emphasis_pattern=r'\*(.+?)\*'

 re.sub(emphasis_pattern,r'<em>\1</em>','*This* is *it*!')

import fileinput,re

pat=re.comple('From:(.*)<*?>$')

for line in fileinput.input():

    m=pat.match(line)

    if m:print m.group(1)

    

import fileinput,re

pat=re.compile(r'[a-z\-\.]+@[a-z\-\.]+',re.ignorecase)

addresses=set()

for line in fileinput.input():

    for address in pat.findall(line):

        addresses.add(address)

for address in sorted(addresses):

    print address

if re.search(pat,string):
print 'Found it'

import fileinput,re

field_pat=re.compile(r'\[(.+?)\]')

scope={}

def replacement(match):

    code=match.group(1)

    try:

        return str(eval(code,scope))

    except SyntaxError:

        exec code in scope

        return ''

lines=[]

for line in fileinput.input():

    lines.append(line)

text=''.join(lines)

print field_pat.sub(replacement,text)

text=''

for line in fileinput.input():

    text+=line

    

[x=2]

[y=3]

the sum of [x] and [y] is [x+y]

 '[name="Mr,Gumby"] Hello,[name]'

 

 f=open(r'C:\Users\merit\12.txt','U')

f=open(r'C:\Users\merit\12.txt','a')

 f.write('I don\'t know your mean')

 f.close()

f=open(r'C:\Users\merit\12.txt','r')

 f.read()

 f=open(r'C:\Users\merit\12.txt','r')

f.read(4)

f.read()

import sys

text=sys.stdin.read()

words=text.split()

wordcount=len(words)

print 'Wordcount:',wordcount

 f=open(r'C:\Users\merit\12.txt','w')

 f.write('1234567890123456789')

 f.seek(5)

 f.write('Hello,World')

 f.close()

 f=open(r'C:\Users\merit\12.txt')

 f.read()

 

f=open(r'C:\Users\merit\12.txt')

f.read(3)

f.tell()

f.readlines()

with open("somefile.txt") as somefile:

     do_something(somefile)
 

from __future__ import with_statement

f=open(r'C:\Users\merit\12.txt')

for i in range(3):
print str(i)+':'+f.readline()

import pprint

pprint.pprint(open(r'C:\Users\merit\12.txt').readlines())

 f.write('this\nis no \nhaiku')

 

f= open(r'C:\Users\merit\12.txt')

lines=f.readlines()

lines

f=open(filename)

while Ture:

    char=f.read(1)

    if not char:break

    process(char)

f.close

f=open(filename)

char=f.read(1)

while char:

    process(char)

    char=f.read(1)

f.close()

f=open(filename)

while Ture:

    line=f.readline()

    if not line:break

    process(line)

f.close()

f=open(filename)

for char in f.read():

    process(char)

f.close()

f=open(filename)

for line in f.readlines():

    process(line)

f.close()

import fileinput

for line in fileinput.input(filename):

    process(line)

f=open(filename)

for line in f:

    process(line)

f.close()

for line in open(filename):

    process(line)

    

import sys

for line in sys.stdin:

    process(line)

f=open(r'C:\Users\merit\study.txt','w')

f.write('First line\n')

f.write('Second line\n')

f.write('Thrid line\n')

f.close()

lines=list(open(r'C:\Users\merit\study.txt'))

first,second,third=open(r'C:\Users\merit\study.txt')

 import wx

app=wx.App()

app.MainLoop()

win=wx.Frame(None)

win.Show()

app.MainLoop()

import wx

app=wx.App()

win=wx.Frame(None)

btn=wx.Button(win)

win.Show()

app.MainLoop()

import wx

app=wx.App()

win=wx.Frame(None,title="Simple Editor")

loadButton=wx.Button(win,label='Open')

saveButton=wx.Button(win,label='Save')

win.Show()

app.MainLoop()

import wx

app=wx.App()

win=wx.Frame(None,title="Simple Editor",size=(410,335))

win.Show()

loadButton=wx.Button(win,label='Open',pos=(225,5),size=(80,25))

saveButton=wx.Button(win,label='Save',pos=(315,5),size=(80,25))

filename=wx.TextCtrl(win,pos=(5,5),size=(210,25))

contents=wx.TextCtrl(win,pos=(5,35),size=(390,260),style=wx.TE_MULTILINE|wx.HSCROLL)

app.MainLoop()

import wx

app=wx.App()

win=wx.Frame(None,title="Simple Editor",size=(410,335))

bkg=wx.Panel(win)

loadButton=wx.Button(bkg,label='Open')

saveButton=wx.Button(bkg,label='Save')

filename=wx.TextCtrl(bkg)

contents=wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.HSCROLL)

hbox=wx.BoxSizer()

hbox.Add(filename,proportion=1,flag=wx.EXPAND)

hbox.Add(loadButton,proportion=0,flag=wx.LEFT,border=5)

hbox.Add(saveButton,proportion=0,flag=wx.LEFT,border=5)

vbox=wx.BoxSizer(wx.VERTICAL)

vbox.Add(hbox,proportion=0,flag=wx.EXPAND|wx.ALL,border=5)

vbox.Add(contents,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)

bkg.SetSizer(vbox)

win.Show()

app.MainLoop()

loadButton.Bind(wx.EVT_BUTTON,load)

import wx

def load(event):

    file=open(filename.GetValue())

    contents.SetValue(file.read())

    file.close()

def save(event):

    file=open(filename.GetValue(),'w')

    file.write(contents.GetValue())

    file.close()

    

app=wx.App()

win=wx.Frame(None,title="Simple Editor",size=(410,335))

bkg=wx.Panel(win)

loadButton=wx.Button(bkg,label='Open')

loadButton.Bind(wx.EVT_BUTTON,load)

saveButton=wx.Button(bkg,label='Save')

saveButton.Bind(wx.EVT_BUTTON,save)

filename=wx.TextCtrl(bkg)

contents=wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.HSCROLL)

hbox=wx.BoxSizer()

hbox.Add(filename,proportion=1,flag=wx.EXPAND)

hbox.Add(loadButton,proportion=0,flag=wx.LEFT,border=5)

hbox.Add(saveButton,proportion=0,flag=wx.LEFT,border=5)

vbox=wx.BoxSizer(wx.VERTICAL)

vbox.Add(hbox,proportion=0,flag=wx.EXPAND|wx.ALL,border=5)

vbox.Add(contents,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)

bkg.SetSizer(vbox)

win.Show()

app.MainLoop()

import wx

def hello(event):

    print "Hello,world"

app=wx.App()

win=wx.Frame(None,title="Hello,wxPython!",size=(200,100))

button=wx.Button(win,label="Hello")

button.Bind(wx.EVT_BUTTON,hello)

win.Show()

app.MainLoop()

import sqlite3

  conn=sqlite3.connect('somedatabase.db')

  curs=conn.cursor()

  conn.commit()

  conn.close()

 

import sqlite3

def convert(value):

    if value.startswith('~'):

        return value.strip('~')

    if not value:

        value='0'

    return float(value)

conn=sqlite3.connect('food.db')

curs=conn.cursor()

curs.execute( ''' create table food(

    id   text primary key,

    desc text,

    water text,

    kcal float,

    protein float,

    fat float,

    ash float,

    carbs float,

    fiber float,

    sugar float) ''')

query='insert into food values(1,1,1,1,1,1,1,1,1,1)'

for line in open('ABBREV.txt'):

    fields=line.split('^')

    vals=[convert(f) for f in fields[:field_count]]

    curs.execute(query,vals)

conn.commit()

conn.close() 

import sqlite3, sys

conn=sqlite3.connect('food.db')

curs=conn.cursor()

import socket

s=socket.socket()

host=socket.gethostname()

port=1234

s.bind((host,port))

s.listen(5)

while True:

    c.addr=s.accept()

    print 'Got connection from',addr

    c.send('Think you for your connectin')

    c.close()

import socket

s=socket.socket()

host=socket.gethostname()

port=1234

s.connect((host,port))

print s.recv(1024)

from urllib import urlopen

webpage=urlopen('http://www.python.org')

query='select * from food where %s' % sys.argv[1]

print query

curs.execute(query)

names=[f[0] for f in curs.description]

for row in curs.fetchall():

    for pair in zip(names,row):

        print '%s:%s' % pair

    print

import re

  text=webpage.read()

  m=re.search('<a href="([^"]+)".*?>about</a>',text,re.IGNORECASE)

  m.group(1)

  urlretrieve('http://www.python.org','C:\\python_webpage.html')

  urlcleanup()

  

  

  from SocketServer import TCPServer,StreamRequestHandler

class Handler(StreamRequestHandler):

    def handle(self):

        addr=self.request.getpeername()

        print 'Got connnection from',addr

        self.wfile.write('Thank you for connecting')

server=TCPServer(('',1234),Handler)

server.serve_forever()

import SocketServer import TCPSercer,ForkingMixIn,StreamRequestHandler

class Server(ForkingMixIn,TCPServer):pass

class Handler(StreamRequestHandler):

    def handle(self):

        addr=self.request.getpeername()

        print='Got connnection from',addr

        self.wfile.write('Thank you for connecting')

server=Server(('',1234),Handler)

server.serve_forever()

import SocketServer import TCPSercer,ThreadingMixIn,StreamRequestHandler

class Server(ThreadingMixIn,TCPServer):pass

class Handler(StreamRequestHandler):

    def handle(self):

        addr=self.request.getpeername()

        print='Got connnection from',addr

        self.wfile.write('Thank you for connecting')

server=Server(('',1234),Handler)

server.serve_forever()

import socket,select

s=socket.socket()

host=socket.gethostname()

port=1234

s.bind((host,port))

s.listen(5)

inputs=[s]

while True:

    rs,ws,es=select.select(inputs,[],[])

    for r in rs:

        if r is s:

            c.addr=s.accept()

            print 'Got connection from ',addr

            inputs.append(c)

    else:

        try:

            data=r.recv(1024)

            disconnected=not data

        except socket.error:

            disconnected=True

        if disconnected:

            print r.getpeername(),'disconnected'

        else:

            print data

            

import socket,select

s=socket.socket()

host=socket.gethostname()

port=1234

s.bind((host,port))

s.listen(5)

p=select.poll()

p.register(s)

while True:

    events=p.poll()

    for fd,event in events:

        if fd in fdmap:

            c,addr=s.accept()

            print 'Got connection form' addr

            p.register(c)

            fdmap[c.fileno()'=c

        elif event & select.POLLIN:

            data=fdmap[fd].recv(1024)

            if not data:

                print fdmap[fd].getpeername(),'disconnected'

                p.unregister(fd)

                del fdmap[fd]        

        else:

            print data

            
import socket,select

s=socket.socket()

host=socket.gethostname()

port=1234

s.bind((host,port))

s.listen(5)

p=select.poll()

p.register(s)

while True:

    events=p.poll()

    for fd,event in events:

        if fd in fdmap:

            c,addr=s.accept()

            print 'Got connection form' addr

            p.register(c)

            fdmap[c.fileno()'=c

        elif event & select.POLLIN:

            data=fdmap[fd].recv(1024)

            if not data:

                print fdmap[fd].getpeername(),'disconnected'

                p.unregister(fd)

                del fdmap[fd]        

        else:

            print data

            

from twisted.internet import reactor

from twisted.internet.protocal import Protocal,Factory

class SimpleLogger(Protocal):

    def connectionMade(self):

        print 'Got connection from', self.transport.client

    def connectonLost(self,reason):

        print self.transport.client,'disconnected'

    def dataReceived(self,data):

        print data

    factory=Facotry()

    factory.protocal=SimpleLogger

    reactor.listenTCP(1234,factory)

    reactor.run()

    

from twisted.internet import reactor

from twisted.internet.protocal import Protocal,Factory

from twisted.protocols.basic import LineReceiver

class SimpleLogger(Protocal):

    def connectionMade(self):

        print 'Got connection from', self.transport.client

    def connectonLost(self,reason):

        print self.transport.client,'disconnected'

    def lineReceived(self,line):

        print line

    factory=Facotry()

    factory.protocal=SimpleLogger

    reactor.listenTCP(1234,factory)

    reactor.run()

    

from urllib import urlopen

  import re

p=re.compile('<h3><a.*?><a.*? href="(.*?)">(.*?)</a>')

text=urlopen('http://python.org/community/jobs').read()

 for url,name in p.findall(text):
print '%s (%s)' % (name,url)

from urllib import urlopen

from HTMLParser import HTMLParser

class Scraper(HTMLParser):

    in_h3=False

    in_link=False

    def handle_startag(self,tag,attrs):

        attrs=dict(attrs)

        if tag=='h3':

            self.in_h3=True

        if tag=='a' and 'href' in attrs:

            self.in_link=True

            self.chunks=[]

            self.url=attrs['href']

    def handle_data(self,data):

        if self.in_link:

            self.chunk.append(data)

    def handle_endtag(self,tag):

        if tag=='h3':

            self.in_h3=False

        if tag=='a':

            if self.in_h3 and self.in_link:

                print '%s (%s)' % (''.join(self.chunks),self.url)

                self.in_link=False

text=urlopen('http://python.org/community/jobs').read()

parser=Scraper()

parser.feed(text)

parser.close()

from urllib import urlopen

from BeautifulSoup import BeautifulSoup

text=urlopen('http://python.org/community/jobs').read()

soup=BeautifulSoup(text)

jobs=set()

for header in soup('h3'):

    links=header('a','reference')

    if not links:continue

    link=links[0]

    jobs.add('%s (%s)' % (link.string,link['href']))

print '\n'.join(sorted(jobs,key=lambda s: s.lower()))

#! /usr/bin/env python

print 'Content-type: text/plain'

print 'Hello world'

#!/usr/bin/env python

import cgitb;cgitb.enable()

print 'Content-type:text/html'

print

print 1/0

print 'Hello world'

from =cgi.FieldStorage()

name=form['name'].value

from area import rect_area

height=3

width=4

correct_answer=12

answer=rect_area(height,width)

if answer==correct_answer:

    print'Test passed'

else:

    print 'Test failed'

    

import doctest

def square(x):

    '''

    Squares a number and returns the result.

    >>> square(2)

    4

    >>> square(3)

    9

    '''

    return x*x

if __name__=='__main__':

    import doctest,my_math

    doctest.testmod(my_math)

import unittest,my_math

class ProductTEstCase(unittest.TestCase):

    def testIntegers(self):

        for x in xrange(-10,10):

            for y in xrange(-10,10):

                p=my_math.product(x,y)

            self.failUnless(p==x*y,'Integer multiplication failed')

    def testFloats(self):

        for x in xrange(-10,10):

            for y in xrange(-10,10):

                x=x/10.0

                y=y/10.0

                p=my_math.product(x,y)

            self.failUnless(p==x*y,'Float multiplication failed')

if __name__=='__main__':unittest.main()

import pylint.lint

import unittest,my_math

from subprocess import Popen,PIPE

class ProductTestCase(unittest.TestCase):

    def testWithPyChecker(self):

        cmd='pychecker','-Q',my_math.__file__.rstrip('c')

        pycheck=Popen(cmd,stdout=PIPE,stderr=PIPE)

        self.assertEqual(pychecker.stdout.read(),'')

    def testWithPylint(self):

        cmd='pylint','-rn','my_math'

        pylint=Popen(cmd,stdout=PIPE,stderr=PIPE)

        self.assertEqual(pylint.stdout.read(),'')

if __name__=='__main__':unittest.main()

import profile

from my_math import product

profile.run('product(1,2)')

from distutils.core import setup

setup(name='Hello',

      version='1.0',

      description='A simple example',

      author='Magnus Lie Hetland',

      py_modules=['my_math'])

 

from distutils.core import setup

import py2exe

setup(console=['my_math'])

from ConfigParser import ConfigParser

CONFIGFILE="python.txt"

config=ConfigParser()

config.read(CONFIGFILE)

print config.get('messages','greetging')

# -*- coding: cp936 -*-

log=open('logfile.txt','w')

print>>log,('Downloading file from URL %s' % url)

text=urllib.urlopen(url).read()

print>>log,'FIle successfully downloaded'

import logging

logging.basicConfig(level=logging.INFO,filename='mylog.log')

logging.info('Starting program')

logging.info('Trying to divide 1 by 0')

print 1/0

logging.info('The division successed')

logging.info('Ending program')

def lines(file):

    for line in file:yield line

    yield '\n'

def blocks(file):

    block=[]

    for line in lines(y):

        if line.strip():

            block.append(line)

        elif block:

            yield ''.join(block).strip()

            block=[]

            

import sys,re

from util import *

print '<html><head><title>...</title><body>'

title=True

for block in blocks(sys.stdin):

    block=re.sub(r'\*(.+?)\*',r'<em>\1</em>',block)

    if title:

        print '<h1>'

        print block

        print '</h1>'

        title=False

    else:

        print '<p>'

        print block

        print '</p>'

print'</body></html>'

python simple_markup.py <test_input.txt> test_out.html

class Handler:

    def callback(self,prefix,name,*args):

        method=getattr(self,prefix+name,None)

        if callable(method):return method(*args)

    def start(self,name):

        self.callback('start_',name)

    def end(self,name):

        self.callback('end_',name)

    def sub(self,name):

        def substitution(match):

            result=self.callback('sub_',name,match)

            if result is None:match.group(0)

            return result

        return substitution

    

class HTMLRenderer(Handler):

    def start_paragraph(self):

        print '<p>'

    def end_paragraph(self):

        print '</p>'

    def sub_emphasis(self,match):

        return '<em>%s</em>' % match.group(1)

    def feed(self,data):

        print data

     re.sub(r'\*(.+?)\*',handler.sub('emphasis'),'This *is* a test')
 
class Rule:

    def action(self,block,handler):

        handler.start(self,type)

        handler.feed(block)

        handler.end(self.type)

        return True

class Parser:

    '''

    A parser reads a text file,applying rules and controlling a handler

    '''

    def __init__(self,handler):

        self.handler=handler

        self.rules=[]

        self.filters=[]

    def addRule(self,rule):

        self.rules.append(rule)

    def addFilter(self,pattern,name):

        def filter(block,handler):

            return re.sub(pattern,handler.sub(name),block)

        self.filters.append(filter)

    def parse(self,file):

        self.handler.start('document')

        for block in blocks(file):

            for filter in self.filters:

                for filter in self.filters:

                    block=filter(block,self.handler)

            for rule in self.rules:

                if rule,condition(block):

                    last=rule.action(block,self.handler)

                    if last:break

        self.handler.end('document')

        

class Rule:

    def action(self,block,handler):

        handler.start(self,type)

        handler.feed(block)

        handler.end(self.type)

        return True

import sys,re

from handlers import *

from util import *

from rules import *

class Parser:

    def __init__(self,handler):

        self.handler=handler

        self.rules=[]

        self.filters=[]

    def addRule(self,rule):

        self.rules.append(rule)

    def addFilter(self,pattern,name):

        def filter(block,handler):

            return re.sub(pattern,handler.sub(name),block)

        self.filters.append(filter)

    def parse(self,file):

        self.handler.start('document')

        for block in blocks(file):

            for filter in self.filters:
block=filter(block,self.handler)

            for rule in self.rules:

                if rule.condition(block):

                    last=rule.action(block,self.handler)

                    if last:break

        self.handler.end('document')

class BasicTextParser(Parser):

    def __init__(self,handler):

        Parser.__init__(self,handler)

        self.addRule(ListRule())

        self.addRule(ListItemRule())

        self.addRule(TitleRule())

        self.addRule(HeadingRule())

        self.addRule(ParagraphRule())

        self.addFilter(r'\*(.+?)\*','emphasis')

        self.addFilter(r'(http://[\.a-zA-Z]+)','url')

        self.addFilter(r'([\.a-zA-Z]+@[\.a-zA-Z]+[a-zA-Z]+)','mail')

handler=HTMLRenderer()

parser=BasicTextParser(handler)

parser.parse(sys.stdin)

class Handler:

    def callback(self,prefix,name,*args):

        method=getattr(self,prefix+name,None)

        if callable(method):return method(*args)

    def start(self,name):

        self.callback('start_',name)

    def end(self,name):

        self.callback('end_',name)

    def sub(self,name):

        def substitution(match):

            result=self.callback('sub_',name,match)

            if result is None:match.group(0)

            return result

        return substitution

class HTMLRenderer(Handler):

    def start_document(self):

        print '<html><head><title>...</title></head><body>'

    def end_document(self):

        print '</body><html>'

    def start_paragraph(self):

        print'<p>'

    def end_paragraph(self):

        print '</p>'

    def start_heading(self):

        print '<h2>'

    def end_heading(self):

        print '</h2>'

    def start_list(self):

        print '<url>'

    def end_list(self):

        print '</url>'

    def start_listitem(self):

        print '<li>'

    def end_listitem(self):

        print '</li>'

    def start_title(self):

        print '<h1>'

    def end_title(self):

        print '</h1>'

    def sub_emphasis(self,match):

        return '<em>%s</em>' % match.group(1)

    def sub_url(self,match):

        return '<a href="%s">%s</a>' % (match.group(1),match.group(1))

    def sub_mail(self,match):

        return '<a href="mailto:%s">%s</a>' % (match.group(1),match.group(1))

    def feed(self,data):

        print data

class Rule:

    def action(self,block,handler):

        handler.start(self,type)

        handler.feed(block)

        handler.end(self,type)

        return True

class HeadingRule(Rule):

    type='heading'

    def condition(self,block):

        return not '\n' in block and len(block)<=70 and not block[-1]==':'

class TitleRule(HeadingRule):

    type='title'

    first=True

    def condition(self,block):

        if not self.first:return False

        self.first=False

        return HeadingRule.condition(self,block)

class ListItemRule(Rule):

    type='listitem'

    def condition(self,block):

        return block[0]=='-'

    def action(self,block,handler):

        handler.start(self,type)

        handler.feed(block[1:].strip())

        handler.end(self.type)

        return True

class ListRule(ListItemRule):

    type='list'

    inside=False

    def condition(self,block):

        return True

    def action(self,block,handler):

        if not self.inside and ListItemRule.condition(self,block):

            handler.start(self,type)

            self.inside=True

        elif self.inside and not ListItemRule.condition(self.block):

            handler.end(self,type)

            self.inside=False

        return False

class ParagraphRule(Rule):

    type='paragraph'

    def condition(self,block):

        return True

    

   

 from reportlab.graphics.shapes import Drawing,String

from reportlab.graphics import renderPDF

d=Drawing(100,100)

s=String(50,50,'Hello, world', textAnchor='middle')

d.add(s)

renderPDF.drawToFile(d,'hello.pdf','A simple PDF file')

from reportlab.lib import colors

from reportlab.graphics.shapes import *

from reportlab.graphics import renderPDF

data=[

    (2007,8,113.2,114.2,112.2),

    (2007,9,112.8,115.8,109.8),

    (2007,10,111.0,116.0,106.0)]

drawing=Drawing(200,150)

pred=[row[2]-40 for row in data]

high=[row[3]-40 for row in data]

low=[row[4]-40 for row in data]

times=[200*((row[0]+row[1]/12.0)-2007)-100 for row in data]

drawing.add(PolyLine(zip(times,pred),strokeColor=colors.blue))

drawing.add(PolyLine(zip(times,high),strokeColor=colors.blue))

drawing.add(PolyLine(zip(times,low),strokeColor=colors.blue))

drawing.add(String(65,115,'Sunspots',fontSize=18,fillColor=colors.red))

renderPDF.drawToFile(drawing,'report1.pdf','Sunspots')

data=[]

for line in urlopen(URL).readlines():

    if not line.isspace() and not line[0] in COMMENT_CHARS:

        data.append([float(n) for n in line.split()])

        

from urllib import urlopen

from reportlab.graphics.shapes import *

from reportlab.graphics.charts.lineplots import LinePlot

from reportlab.graphics.charts.textlabels import Label

from reportlab.graphics import renderPDF

URL='http://services.swpc.noaa.gov/text/predicted-sunspot-radio-flux.txt'

COMMENT_CHARS='#:'

drawing=Drawing(400,200)

data=[]

for line in urlopen(URL).readlines():

    if not line.isspace() and not line[0] in COMMENT_CHARS:

        data.append([float(n) for n in line.split()])

pred=[row[2] for row in data]

high=[row[3] for row in data]

low=[row[4] for row in data]

times=[row[0] +row[1]/12.0 for row in data]

lp=LinePlot()

lp.x=50

lp.y=50

lp.height=125

lp.width=300

lp.data=[zip(times,pred),zip(times,high),zip(times,low)]

lp.lines[0].strokeColor=colors.blue

lp.lines[1].strokeColor=colors.red

lp.lines[2].strokeColor=colors.green

drawing.add(lp)

drawing.add(String(250,150,'Sunspots',fontSize=14,fillColor=colors.red))

renderPDF.drawToFile(drawing,'report2.pdf','Sunspots')

from xml.sax.handler import ContentHandler

from xml.sax import parse

import os

class Dispatcher:

    def dispatch(self,prefix,name,attrs=None):

        mname=prefix+name.capitalize()

        dname='default'+prefix.capitalize()

        method=getattr(self,mname,None)

        if callable(method):args=()

        else:

            method=getattr(self,dname,None)

            args=name

        if prefix=='start':args+=attrs

        if callable(method):method(*args)

    def startElement(self,name,attrs):

        self.dispatch('start',name,attrs)

    def endElement(self,name):

        self.dispatch('end',name)

class WebsiteConstructor(Dispatcher,ContentHandler):

    passthrough=False

    def __init__(self,directory):

        self.directory=[directory]

        self.ensureDirectory()

    def ensureDirectory(self):

        path=os.path.join(*self.directory)

        if not os.path.isdir(path):os.makedirs(path)

    def characters(self,chars):

        if self.passthrough:self.out.write(chars)

    def defaultStart(self,name,attrs):

        if self.passthrough:

            self.out.write('<'+name)

            for key,val in attrs.items():

                self.out.write('%s="%s"' % (key,val))

                self.out.write('>')

    def defaultEnd(self,name):

        if self.passthrough:

            self.out.write('</%s>' % name)

    def startDirectory(self,attrs):

        self.directory.append(attrs['name'])

        self.ensureDirectory()

    def endDirectory(self):

        self.directory.pop()

    def startPage(self,attrs):

        filename=os.path.join(*self.directory+[attrs['name']+'html'])

        self.out=open(filename,'w')

        self.writeHeader(attrs['title'])

        self.passthrough=True

    def endPage(self):

        self.passthrough=False

        self.writeFooter()

        self.out.close()

    def wirteHeader(self,title):

        self.out.write('<html>\n<head>\n <title>')

        self.out.write(title)

        self.out.write('</title>\n</head>\n <body>\n')

    def writeFooter(self):

        self.out.write('\n</body>\n</html>\n')

parse('website.xml',WebsiteConstructor('public_html'))

from nntplib import NNTP

from time import strftime,time,localtime

day=24*60*60

yesterday=localtime(time()-day)

date=strftime('%y%m%d',yesterday)

hour=strftime('%H%M%S',yesterday)

servername='news.food.bar'

group='comp.lang.python.announce'

server=NNTP(servername)

ids=server.newnews(group,date,hour)[1]

for id in ids:

    head=server.head(id)[3]

    for line in head:

        if line.lower().startswith('subject'):

            subject=line[9:]

            break

    body=server.body(id)[3]

    print subject

    print '-'*len(subject)

    print '\n'.join(body)

class NewsItem:

    def __init__(self,title,body):

        self.title=title

        self.body=body

class NewsAgent:

    def __init__(self):

        self.sources=[]

        self.destinations=[]

    def addSource(self,source):

        self.sources.append(source)

    def addDestination(self,dest):

        self.destinations.append(dest)

def distribute(self):

    items=[]

    for source in self.sources:

        items.extend(source.getItems())

    for dest in self.destinations:

        dest.receiveItems(items)

class PlainDestination:

    def receiveItem(self,items):

        for item in items:

            print item.title

            print '-'*len(item.title)

            print item.body

             

server.quit()

sys.getdefaultencoding()

from asyncore import dispatcher

from asynchat import async_chat

import socket,asyncore

PORT=5005

class ChatSession(async_chat):

    def __init__(self,server,sock):

        async_chat.__init__(self,sock)

        self.set_terminator("\r\n")

        self.server=server

        self.data=[]

        self.push('Welcome to %s\r\n' % self.server.name)

        

    def collect_incoming_data(self,data):

        self.data.append(data)

    def found_terminator(self):

        line=''.join(self.data)

        self.data=[]

        print line

class ChatServer(dispatcher):

    def __init__(self,port):

        dispatcher.__init__(self)

        self.create_socket(socket.AF_INET,socket.SOCK_STREAM)

        self.set_reuse_addr()

        self.bind(('',PORT))

        self.listen(5)

    

    def handle_accept(self):

        conn.addr=self.accept()

        print 'Connection attempt from', addr[0]

if __name__=='__main__':

    s=ChatServer(PORT)

    try:asyncore.loop()

    except KeyboardInterrupt:pass

from asyncore import dispatcher

from asynchat import async_chat

import socket,asyncore

PORT=5005

class ChatSession(async_chat):

    def __init__(self,server,sock):

        async_chat.__init__(self,sock)

        self.set_terminator("\r\n")

        self.server=server

        self.data=[]

        self.push('Welcome to %s\r\n' % self.server.name)

        

    def collect_incoming_data(self,data):

        self.data.append(data)

    def found_terminator(self):

        line=''.join(self.data)

        self.data=[]

        print line

class ChatServer(dispatcher):

    def __init__(self,port):

        dispatcher.__init__(self)

        self.create_socket(socket.AF_INET,socket.SOCK_STREAM)

        self.set_reuse_addr()

        self.bind(('',PORT))

        self.listen(5)

    

    def handle_accept(self):

        conn.addr=self.accept()

        print 'Connection attempt from', addr[0]

class CommandHandler:

    def unknown(self,session,cmd):

        session.push('Unknown command: %s\r\n' % cmd)

    def handle(self,session,line):

        if not line.strip(): return

        parts=line.split('',1)

        cmd=parts[0]

        try:line=parts[1].strip()

        except IndexError:line=''

        meth=getattr(self,'do_'+cmd,None)

        try:

            meth(session,line)

        except TypeError:

            self.unknown(session,cmd)

            

class EndSession(Exception):pass

class Room(CommandHandler):

    def __init__(self,server):

        self.server=server

        self.sessions=[]

    def add(self,session):

        self.sessions.append(session)

    def remove(self,session):

        self.sessions.remove(session)

    def broadcast(self,line):

        for session in self.sessions:

            session.push(line)

    def do_logout(self,session,line):

        raise EndSession

    

        

if __name__=='__main__':

    s=ChatServer(PORT)

    try:asyncore.loop()

    except KeyboardInterrupt:pass

    

import cgi

form =cgi.FieldStorage()

text=form.getvalue('text',open('simple_edit.dat').read())

f=open('simple_edit.dat','w')

f.write(text)

f.close()

print """ Content-type:text/html

    <html>

    <head>

    <title> A simple Editor</title>

    </head>

    <body>

    <form action ='simple_edit.cgi' method='POST'>

    <textarea rows='10' cols='20' name='text'>%x </textarea><br />

    <input type='submit'/>

    </form>

    <body>

    </html>

    """ % text

from os.path import join ,abspath

import cgi,sha,sys

BASE_DIR=abspath('data')

form=cgi.FieldStorage()

text=form.getvalue('text')

filename=form.getvalue('filename')

password=form.getvalue('password')

if not (filename and text and password):

    print 'Invalid parameters.'

    sys.exit()

if sha.sha(password).hexdigest()!='88888888888888dsfdasdsafasd':

    print 'Invalid password'

f=open(jopin(BASE_DIR.filename),'w')

f.write(text)

f.close()

print 'The file has been saved'

import psycopy

import cgitb;cgitb.enable()

conn=psycopg.connect('user=foo dbname=bar')

curs=conn.cursor()

reply_to=raw_input('Reply to:')

subject=raw_input('Subject:')

sender=raw_input('Sender:')

text=raw_input('TExt:')

if reply_to:

    query="""

    INSERT INTO messages(reply_to, sender, subject,text)

    Values(%s,'%s','%s','%s')""" % (reply_to,sender,subject,text)

else:

    query="""

    INSERT INTO message(sender,subject,text)

    VALUES('%s','%s','%s') """ % (sender,subject,text)

curs.execute(query)

conn.commit()

curs.execute('select * from messages')

rows=curs.dictfetchall()

toplevel=[]

children={}

for row in rows:

    parent_id =row['reply_to']

    if parent_id is None:

        toplevel.append(row)

    else:

        children.setdefault(parent_id,[]).append(row)

        def format(row):

            print row['subject']

            try:kids=children[row['id']]

            except Keyerror:pass

            else:

                print '<blockquote>'

                for kid in kids:

                    format(kid)

                print '</blockquote>'

        print '<p>'

        for row in toplevel:

            format(row)

        print """

            </p>

            </body>

            </html>

            """

from xmlrpclib import ServerProxy

from os.path import join,isfile

from SimpleXMLRPCServer import SimpleXMLRPCServer

from urlparse import urlparse

MAX_HISTORY_LENGTH=6

OK==1

FAIL=2

EMPTY=''

def getPort(url):

    name=urlparse(url)[1]

    parts=name.split(':')

    return int(parts[-1])

class Node:

    def __init__(self,url,dirname,secret):

        self.url=url

        self.dirname=dirname

        self.secret=secret

        self.known=set()

    def query(self,query,history=[]):

        code,data=self._handle(query)

    if code==OK:

        return code,data

    else:

        history=history+[self.url]

        if len(history)>=MAX_HISTORY_LENGTH:

            return FAIL,EMPTY

        return self._broadcast(query,history)

    def hello(self,other):

        self.known.add(other)

        return OK

    def fetch(self,query,secret):

        if secret!=self.secret:return FAIL

        code,data=self.query(query)

        if code==OK:

            f=oipen(join(self.dirname,query),'w')

            f.write(data)

            f.close()

            return OK

        else:

            return FAIL

    def _start(self):

        s=SimpleXMLRPCServer(("",getPort(self.url)),logRequests=false)

        s.register_instance(self)

        s.serve_forever()

    def _handle(self,query):

        dir=self.dirname

        name=join(dir,query)

        if not isfile(name):return FAIL,EMPRY

        return OK, open(name).read()

    def _broadcast(self,query,history):

        for other in self.known.copy():

            if other in histroy:continue

            try:

                s=ServerProxy(other)

                code,data=s.query(query,history)

                if code==OK:

                    return code,data

                except:

                    self.known.remove(other)

                return FAIL,EMPTY

    def main():

        url,directory,secret=sys.argv[1:]

        n=Node(url,directory,secret)

        n._start()

    if __name__=='__main__':main()

    

import sys,pygame

from pygame.locals import *

from random import randrange

class Weight(pygame.sprite.Sprite):

    def __init__(self):

        pygame.sprite.Sprite.__init__(self)

        self.image=weight_image

        self.rect=self.image.get_rect()

        self.reset()

    def reset(self):

        self.rect.top=-self.rect.height

        self.rect.centerx=randrange(screen_size[0])

    def update(self):

        self.rect.top+=1

        if self.rect.top>screen_size[1]:

            self.reset()

pygame.init()

screen_size=800,600

pygame.display.set_mode(screen_size,FULLSCREEN)

pygame.mouse.set_visible(0)

weight_image=pygame.image.load('weight.png')

weight_image=weight_image.covert()

sprites=pygame.sprite.RenderUpdates()

sprites.add(Weight())

screen=pygame.display.get_suface()

bg=(255,255,255)

screen.fill(bg)

pygame.display.filp()

def clear_callback(surf,rect):

    surf.fill(bg,rect)

while True:

    for event in pygame.event.get():

        if event.type==QUIT:

            sys.exit()

        if event.type==KEYDOWN and event.key==K_ESCAPE:

            sys.exit()

sprites.clear(screen,clear_callback)

sprites.update()

updates=sprites.draw(screen)

pygame.display.update(updates)

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: