Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c36c721

Browse files
committed
new file: primer/10/card.py
new file: primer/10/myexc.py new file: primer/11/Gui.py new file: primer/11/deco.py new file: primer/11/easyMath.py new file: primer/11/grabWeb.py new file: primer/11/numconv.py new file: primer/11/odd.py new file: primer/11/testit.py new file: primer/12/hot.py new file: primer/13/NumStr.py new file: primer/13/Rand.py new file: primer/13/file.py new file: primer/13/meta.py new file: primer/13/roundFloat.py new file: primer/13/time.py new file: primer/13/time60.py new file: primer/16/sockCli.py new file: primer/16/sockServ.py new file: primer/16/tcpclient.py new file: primer/16/tcpserver.py new file: primer/16/udpCli.py new file: primer/16/udpSer.py new file: primer/18/sleep.py new file: primer/18/threading.py new file: primer/19/label.py new file: primer/2/2_10.py new file: primer/2/2_11.py new file: primer/2/2_2.py new file: primer/2/2_7.py new file: primer/2/2_8.py new file: primer/20/Cralwer.py new file: primer/3/makeFile.py new file: primer/3/makeTextFile.py new file: primer/3/readTextFile.py new file: primer/4/display.py new file: primer/6/idcheck.py new file: primer/6/queue.py new file: primer/6/stack.py new file: primer/6/unicode.txt new file: primer/6/unicodeFile.py new file: primer/7/userpw.py new file: primer/9/ospathex.py datastruct/ unp/
0 parents commit c36c721

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1097
-0
lines changed

‎python/primer/10/card.py‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
def safe_float(obj):
2+
try:
3+
retval = float(obj)
4+
except (ValueError,TypeError),diag:
5+
retval = str(diag)
6+
return retval
7+
8+
def main():
9+
log = open("cardlog.txt","w")
10+
try:
11+
ccfile = open("carddata.txt","r")
12+
except IOError,e:
13+
log.write("no txns this \n")
14+
log.close()
15+
return
16+
txns = ccfile.readlines()
17+
ccfile.close()
18+
total = 0.00
19+
log.write("account log:\n")
20+
21+
for eachTxn in txns:
22+
result = safe_float(eachTxn)
23+
if isinstance(result,float):
24+
total += result
25+
log.write("data ....processed\n")
26+
else:
27+
log.write("ignored: %s" % result)
28+
print "$%.2f (new balance)" % (total)
29+
log.close()
30+
31+
if __name__ == '__main__':
32+
print "run"
33+
main()

‎python/primer/10/myexc.py‎

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
2+
import os,socket,errno,types,tempfile
3+
4+
class NetworkError(IOError):
5+
pass
6+
7+
class FileError(IOError):
8+
pass
9+
10+
def updArgs(args,newarg=None):
11+
if isinstance(args,IOError):
12+
myargs =[]
13+
myargs.extend([arg for arg in args])
14+
else:
15+
myargs = list(args)
16+
17+
if newarg:
18+
myargs.append(newarg)
19+
20+
return tuple(myargs)
21+
22+
def fileAargs(file,mode,agrs):
23+
if args[0] == errno.EACCES and \
24+
'access' in dir(os):
25+
perms = ''
26+
perms = {'r':os.R_OK,'w':os.W_OK,'x':os.X_OK}
27+
pkeys = permd.keys()
28+
pkeys.sort()
29+
pkeys.reverse()
30+
31+
for eachPerm in 'rwx':
32+
if os.access(file,permd[eachPerm]):
33+
perms += eachPerm
34+
else:
35+
perms += '-'
36+
37+
if isinstance(args,IOError):
38+
myargs = []
39+
myargs.extend([arg for arg in args])
40+
else:
41+
myargs = list(args)
42+
43+
myargs[1] = "'%s' %s (perms:'%s')" % (mode,myargs[1],perms)
44+
45+
myargs.append(args.filename)
46+
47+
else:
48+
myargs = args
49+
return tuple(myargs)
50+
51+
def myconnnect(sock,host,port):
52+
try:
53+
sock.connect((hosy,port))
54+
except socket.error,args:
55+
myargs = updArgs(args)
56+
if len(myargs) == 1:
57+
myargs = (errno.ENXIO,myargs[0])
58+
59+
raise NetworkError,\
60+
updArgs(myargs,host +":" + str(port))
61+
def myopen(file,mode ="r"):
62+
try:
63+
fo = open(file,mode)
64+
except IOError,args:
65+
raise FileError,fileArgs(file,mode,args)
66+
return fo
67+
68+
def testfile():
69+
file = mkdtemp()
70+
f = open(file,"w")
71+
f.close()
72+
73+
for eachTest in ((0,"r"),(0100,"r"), \
74+
(0400,"w"),(0500,"w")):
75+
try:
76+
os.chmod(file,eachTest[0])
77+
f=myopen(file,eachTest[1])
78+
79+
except FileError,args:
80+
print "%s: %s" % \
81+
(args.__class__.__name__,args)
82+
else:
83+
print file,"open ok..perm ignored"
84+
f.close()
85+
os.chmod(file,0777)
86+
os.unlink(file)
87+
def testnet():
88+
s = socket.socket(socket.AF_INET.socket.SOCK_STREAM)
89+
for eachHost in ("deli","www"):
90+
try:
91+
myconnect(s,"deli",8080)
92+
except NetworkError,args:
93+
print "%s:%s" %\
94+
(args.__class__.__name__,args)
95+
if __name__ == "__main__":
96+
testfile()
97+
testnet()
98+
99+
100+
101+
102+
103+
104+

‎python/primer/11/Gui.py‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
from functools import partial
3+
import Tkinter
4+
5+
root=Tkinter.Tk()
6+
MyButton = partial(Tkinter.Button,root,
7+
fg="white",bg="blue")
8+
b1= MyButton(text="button 1")
9+
b2=MyButton(text="button 2")
10+
#qb=MyButton(text="QUIT",bg="red",
11+
# command=root.quit)
12+
13+
b1.pack()
14+
b2.pack()
15+
#qb.pack(file=Tkinter.X,expand= True)
16+
root.title("PFAs!")
17+
root.mainloop()

‎python/primer/11/deco.py‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
from time import ctime,sleep
3+
4+
def tsfunc(func):
5+
def wrappedFunc():
6+
print "[%s] %s() called" % \
7+
(ctime(),func.__name__)
8+
return func()
9+
return wrappendFunc
10+
11+
@tsfunc
12+
def foo():
13+
pass
14+
15+
foo()
16+
sleep(4)
17+
18+
for i in range(2):
19+
sleep(1)
20+
foo()
21+
22+

‎python/primer/11/easyMath.py‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
2+
from operator import add,sub
3+
from random import randint,choice
4+
5+
ops ={"+":add,"-":sub}
6+
MAXTRIES = 2
7+
8+
def doprob():
9+
op = choice('+-')
10+
nums = [randint(1,10) for i in range(2)]
11+
nums.sort(reverse = True)
12+
ans = ops[op](*nums)
13+
pr="%d %s %d =" %(nums[0],op,nums[1])
14+
oops =0
15+
while True:
16+
try:
17+
if int(raw_input(pr)) == ans:
18+
print "corrent"
19+
break
20+
if oops == MAXTRIES:
21+
print "answer \n %s%d" %(pr,ans)
22+
else:
23+
print "incorrent...try again"
24+
oops += 1
25+
except (KeyboardInterrupt, EOFError,ValueError):
26+
print "invalid input ... try again"
27+
28+
def main():
29+
while True:
30+
doprob()
31+
try:
32+
opt= raw_input("Again?[y]".lower())
33+
if opt and opt[0] == "n":
34+
break
35+
except (KeyboardInterrupt,EOFError):
36+
break
37+
if __name__ == "__main__":
38+
main()
39+
40+

‎python/primer/11/grabWeb.py‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
from urllib import urlretrieve
3+
4+
def firstNoBlank(lines):
5+
for eachLine in lines:
6+
if not eachLine.strip():
7+
continue
8+
else:
9+
return eachLine
10+
11+
def firstLast(webpage):
12+
f = open(webpage)
13+
lines= f.readlines()
14+
f.close()
15+
print firstNoBlank(lines),lines.reverse()
16+
print firstNoBlank(lines),
17+
18+
def download(url = "http://www.cqupt.edu.cn",process=firstLast):
19+
try:
20+
retval = urlretrieve(url)[0]
21+
except IOError:
22+
retval = None
23+
if retval:
24+
process(retval)
25+
if __name__ == "__main__":
26+
download()

‎python/primer/11/numconv.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
def convert(func,seq):
3+
return[func (eachNum ) for eachNum in seq]
4+
5+
myseq=(123,45.67,-6.2e8,99999999L)
6+
print convert(int,myseq)
7+
print convert(long,myseq)
8+
print convert(float,myseq)

‎python/primer/11/odd.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
from random import randint
3+
4+
#def odd(n):
5+
# return n%2
6+
7+
allNums =[]
8+
for eachNum in range(9):
9+
allNums.append(randint(1,99))
10+
print[n for n in allNums if n%2]

‎python/primer/11/testit.py‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
def testit(func,*nkwargs,**kwargs):
3+
try:
4+
retval = func(*nkwargs,**kwargs)
5+
result = (True,retval)
6+
except Exception,diag:
7+
result = (False,str(diag))
8+
return result
9+
10+
def test():
11+
funcs =(int,long,float)
12+
vals = (1234,12.34,"1234","12.34")
13+
14+
for eachFunc in funcs:
15+
print "_"*20
16+
for eachVal in vals:
17+
retval = testit(eachFunc,eachVal)
18+
if retval[0]:
19+
print "%s(%s)=" % \
20+
(eachFunc.__name__,"eachVal"),retval[1]
21+
else:
22+
print "%s(%s)=FAILED:" %\
23+
(eachFunc.__name__,"eachVal"),retval[1]
24+
25+
if __name__ == "__main__":
26+
test()

‎python/primer/12/hot.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class HotelRoomCalc(object):
2+
'hotel room rate calculator'
3+
def __init__(self,rt,sales=0.085,rm=0.1):
4+
self.salesTax = sales
5+
self.roomTax = rm
6+
self.roomRate = rt
7+
8+
def calcTotal(self,days = 1):
9+
daily = round((self.roomRate *(1+self.roomTax + self.salesTax)),2)
10+
return float(days)*daily

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /