Ex62:
#!/usr/bin/env python import string,keyword alphas=string.letters+'_' nums=string.digits myinput=raw_input('Identifier to test? ') if keyword.iskeyword(myinput): print 'ok as a keyword' elif myinput[0] not in alphas: print 'invalid input:first symbol must be alphabetic' else: for char in myinput[1:]: if char not in alphas+nums: print "symbols error" break else: print "ok"
Ex63
#!/usr/bin/env python def insert_sort(num_list): for i in range(1,len(num_list)): key,j=num_list[i],i-1 if key<num_list[i-1]: continue while j>=0 and key>num_list[j]: j-=1 num_list.remove(key) num_list.insert(j+1,key) return num_list def dict_sort(num_list): num_list= [str(x) for x in num_list] return insert_sort(num_list) print insert_sort([1,2,7,4,5]) print dict_sort([11,2,7,4,5])
Ex66:
#!/usr/bin/env python def strip(word): if word[0]!=' ' and word[-1]!=' ': return word if word[0]==' ': word=word[1:] if word[-1]==' ': word=word[:-1] return strip(word) print strip(" abc ")
Ex67:
#!/usr/bin/env python num_str=raw_input("Enter a number:") num_num=int(num_str) fac_list=range(1,num_num+1) new_list=[] print 'BEFORE:',fac_list for num in fac_list: if num_num%num!=0: new_list.append(num) print 'AFTER:',new_list
Ex68:
#!/usr/bin/env python def change_to_eng(num): u1={'0':'', '1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six', '7':'seven', '8':'eight', '9':'nine' } u2={'10':'ten', '11':'eleven', '12':'twelve', '13':'thirteen', '14':'fourteen', '15':'fifteen', '16':'sixteen', '17':'seventeen', '18':'eighteen', '19':'nineteen'} u3={'2':'twenty', '3':'thirty', '4':'forty', '5':'fifty', '6':'sixty', '7':'seventy', '8':'eighty', '9':'ninety'} if num[0]=='0': return change_to_eng(num[1:]) if 4<=len(num)<=6: return change_to_eng(num[:-3])+' thousand '+change_to_eng(num[-3:]) elif len(num)==3: return change_to_eng(num[0])+' handred '+change_to_eng(num[1:]) elif len(num)==2: if 10<=int(num)<=19: return u2[num] else: return u3[num[0]]+' '+u1[num[1]] #return num elif len(num)==1: return u1[num] else: return 'wrong number' print change_to_eng('12341')
Ex69:
#!/usr/bin/env python def change_to_hour(minute): t=divmod(minute,60) print 'hour: ',t[0] print 'minute: ',t[1] change_to_hour(1000)
Ex611:
#!/usr/bin/env python def int_to_ip(num_int): t=[] for i in range(4): num_int,v=divmod(num_int,256) t.insert(i,v) return str(t[3])+'.'+str(t[2])+'.'+str(t[1])+'.'+str(t[0]) def ip_to_int(ip): num=0 t=ip.split('.') t.reverse() for i,n in enumerate(t): num+= pow(256,i)*int(n) return num x=ip_to_int('8.8.8.8') print int_to_ip(x)
Ex612:
#!/usr/bin/env python def findstr(string,char): for i,c in enumerate(string): if c==char: return i return -1 def rfindstr(string,char): m=len(string) for i in range(1,m+1): if string[-i]==char: return m-i+1 return -1 def substr(string,origchar,newchar): i=findstr(string,origchar) if i==-1: return -1 elif i==len(string)-1: return string[:-1]+newchar else: return string[:i]+newchar+string[i+1:] print substr('abadef','f','h')
Ex614:
#!/usr/bin/env python from random import choice class Rochambeau(object): def __init__(self,ch=choice(['stone','scissor','cloth'])): if ch not in ('stone','scissor','cloth'): raise TypeError,'you must choose stone,scissor or cloth' self.ch=ch def __gt__(self,other): if (self.ch=='stone' and other.ch=='scissor')\ or (self.ch=='scissor' and other.ch=='cloth')\ or (self.ch=='cloth' and other.ch=='stone'): return True else: return False def __lt__(self,other): if (self.ch=='scissor' and other.ch=='stone')\ or (self.ch=='cloth' and other.ch=='scissor')\ or (self.ch=='stone' and other.ch=='cloth'): return True else: return False def __eq__(self,other): if self.ch==other.ch: return True else: return False def main(): user_input=raw_input('chose stone,scissor or cloth: ') com=Rochambeau() user=Rochambeau(user_input) if com>user: print 'you lose' elif com==user: print 'draw' elif com<user: print 'you win' if __name__=='__main__': main()
Ex615:
#!/usr/bin/env python from datetime import date def date_reg(string): year,mon,day=string.split('/') return date(int(year),int(mon),int(day)) delta1=date_reg('2013/6/16')-date_reg('1983/07/05') print delta1.days delta2=date.today()-date_reg('1983/07/05') print delta2.days next_birthday=date_reg('1983/07/05').replace(year=date.today().timetuple()[0]) if next_birthday<date.today(): next_birthday=next_birthday.replace(year=next_birthday.timetuple()[0]+1) delta3=next_birthday-date.today() print delta3.days
Ex617:
#!/usr/bin/env python import copy def myPop(ls): ls.pop() return ls l=[1,2,3,4,5] t=copy.deepcopy(l) print myPop(t) print l
Ex619:
#!/usr/bin/env python def output(mlist,col,v=False): row=(len(mlist)+col-1)/col R=[[0 for x in range(col)] for y in range(row)] i=0 if not v: for x in range(row): for y in range(col): if i>=len(mlist): R[x].remove(0) continue R[x][y]=mlist[i] i+=1 elif v: flag=0 last_row_c=len(mlist)%col for y in range(col): if y>last_row_c-1 and last_row_c!=0 and flag==0: R[row-1].remove(0) row-=1 flag=1 for x in range(row): R[x][y]=mlist[i] i+=1 for i,x in enumerate(R): for j,y in enumerate(R[i]): if j<len(x)-1: print str(y)+' ', else: print str(y)+'\n', output([1,2,3,4,5,6,7,8,9],2,True)