1. 程式人生 > >python核心程式設計第六章練習題答案 (2,3,5,6,7,8,12,13,14,16)

python核心程式設計第六章練習題答案 (2,3,5,6,7,8,12,13,14,16)

#6-2

import random
lists=[]
for i in range(0,random.randrange(0,101)):
	n = random.randrange(0,2**31)
	lists.append(n) 
while True:
	try:
		newlist =[]
		for i in range(0,random.randrange(0,101)):
			newlist.append(lists[i])
		print newlist
		break
	except IndexError , e:
		print 'Error occurs:',e

#6-3
inplist = raw_input('enter a list of nums:\n').strip().split(',')
inplist.sort(lambda x,y:cmp(x.lower(),y.lower()),reverse = True)
print inplist


#6-5

# exercise b in 6-5

#-*- coding:UTF-8 -*-
import string
def issame(str1=None,str2=None):
	'''Judge the given strings same or different'''
	# str1,str2 = raw_input('Enter two strings to judge: ').strip().split(',')
	strs = string.printable
	maxlen = max(len(str1),len(str2))
	strdict = {}
	for x in xrange(0,100):
		strdict[strs[x]] = x
	try:
		for x in range(0,maxlen):
			if strdict[str1[x]] ^ strdict[str2[x]]:
				# print 'different strings'
				return 0
				break
		else:
			# print 'same strings'
			return 1
	except IndexError:
		# print 'different string' 
		return 0

#exercise c in 6-5
def isrepeat(substr=None,orgstr=None):
	while True:
		orgstr = raw_input('Enter the orignal string : ')
		substr = raw_input('Enter the string to find it if repeat in the orignal string: ')
		if substr not in orgstr:
			print '%s not in %s' % (substr,orgstr)
		else:
			sublen   = len(substr)
			subindex = orgstr.find(substr)
			try:
				while True:
					afterstr = orgstr[subindex+sublen:subindex+sublen*2]
					if issame(substr,afterstr):
						print '%s repeats in %s'%(substr,orgstr)
						return 1
						break
					else:
						subindex = orgstr.index(substr,subindex+1,len(orgstr))
			except (IndexError,ValueError),e:
				print '%s does not repeat in %s'%(substr,orgstr)
				return 0

#exercise d in 6-5
def addreverse(mstr=None):
	mlen = len(mstr)
	for item in [mstr[-1-i] for i in range(0,mlen)]:
		mstr+=item
	print mstr

if __name__ == '__main__':
	isrepeat()
	addreverse('WARMACHINEROCKS')

#6-6
def stripspaces(strs=None):
	while True:
		if strs[0] == ' ':
			strs = strs[1:]
		elif strs[-1] == ' ':
			strs = strs[:-1]
		else:
			return strs
			break
if __name__ == '__main__':
	strs = raw_input("Enter a string :")
	print stripspaces(strs)

#6-7
# -*-coding:utf-8 -*-
#功能:刪除表中能被輸入的數整除的元素
num_str = raw_input('Enter a number: ')
num_num = int(num_str)
fac_list = range(1,num_num+1)
print "Befor: ", fac_list
i=0
while i<len(fac_list):
	if num_num%fac_list[i]==0:
		del fac_list[i]
	else:
		i+=1
print "After: ",fac_list

#6-8

tylist = ['','','twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']
thlist = ['ten','eleven','twelve','thirteen','forteen','fifteen','sixteen','seventeen','eighteen','nineteen']
nums   = ['','one','two','three','four','five','six','seven','eight','nine']
hund = '-hundred '
while True:
	inputstr = raw_input('Enter a number: ').strip()
	inlen = len(inputstr)
	inputs = int(inputstr)
	if inputs in range(0,1000):
		if inlen == 1:
			print nums[inputs]
		elif inlen ==2:
			if inputstr[0] == '1':
				print thlist[int(inputstr[1])]
			else:
				print tylist[int(inputstr[0])]+'-'+nums[int(inputstr[1])]
		elif inlen == 3:
			if inputstr[1] == '1':
				tail = thlist[int(inputstr[2])]
			else:
				tail = tylist[int(inputstr[1])]+'-'+nums[int(inputstr[2])]
			print nums[int(inputstr[0])]+hund+tail
	else:
		print 'over range,try again'

#6-12

def findchr(strs,chrs):
	lenth = len(strs)
	if chrs in strs:
		for i in range(0,lenth):
			if strs[i]==chrs:
				print i,
	else:
		print '%s not in %s'%(chrs,strs)
		return -1

def rfindchr(strs,chrs):
	lenth = len(strs)
	if chrs in strs:
		for i in range(0,lenth):
			if strs[-1-i]==chrs:
				print -1-i+lenth,
	else:
		print '%s not in %s'%(chrs,strs)
		return -1
def subchr(strs,origchr,newchr):
	if origchr in strs:
		for i in range(0,len(strs)):
			if strs[i]==origchr:
				strs=strs[:i]+newchr+strs[i+1:]
		print strs
	else:
		print '%s not in %s '%(origchr,strs)
		return -1

if __name__ == '__main__':
	subchr('hekkkosd','f','a')	

#6-13

def atoc(strs = None):
	strs = raw_input('Enter a complex number:').strip()
	operators = ['+','-']
	stlen = len(strs)
	for i in xrange(0,stlen):
		op1 = 0
		op2 = strs[:-1] 
		if strs[-1-i] in operators:
			if strs[-2-i] == 'e':
				for x in xrange(0,len(strs[:-2-i])):
					if strs[:-2-i][-1-x] in operators:
						op1 = strs[:-1-i]
						op2 = strs[-1-i:-1]
						break
					else:
						continue
			else:
				op1 = strs[:-1-i]
				op2 = strs[-1-i:-1]
				break
		else:
			continue
	try:
		result = complex(float(op1),float(op2))
		print 'result: ',result,type(result)
	except ValueError:
		print 'Error occurs: ivalid input.\nplease makesure you have input a complex num'
if __name__ == '__main__':
	atoc()

#6-14
# -*- coding:UTF-8 -*-
import random
def game():
	menu = '\
	 選擇以下命令出拳:\n(s)石頭\n(j)剪刀\n(b)布\n'
	cmds = ['石頭','剪刀','布']
	(s,j,b) = cmds
	usrinput = eval(raw_input(menu).strip().lower())
	cptinput = random.choice(cmds)
	if usrinput == cmds[cmds.index(cptinput)-1]:
		print '您贏了~\n\t電腦出的是:',cptinput,'\n\t您出的是:', usrinput
	elif usrinput == cmds[cmds.index(cptinput)-2]:
		print '您輸了~\n\t電腦出的是:',cptinput,'\n\t您出的是:', usrinput
	else:
		print '您和電腦打成平手,出的都是:',cptinput 
if __name__ == "__main__":
	game()

#6-16(有點糙。。。)

M = [[1,1,2],[2,0,1]]
N = [[0,2,3],[1,1,2],[2,1,1]]
res = [[],[]]
result = [[],[]]
print 'The matrix M:',
for x in xrange(0,len(M)):
	print '\n'
	for i in xrange(0,len(M[0])):
		print '\t',M[x][i],
print
print 'The matrix N:',
for x in xrange(0,len(N)):
	print '\n'
	for i in xrange(0,len(N[0])):
		print '\t',N[x][i],
print
print 'M + N:',
for x in xrange(0,len(M)):
	print '\n'
	for i in range(0,len(M[0])):
		res[x].append(M[x][i]+N[x][i])
		print '\t',res[x][i],
print
for x in xrange(0,len(M)):
	for p in xrange(0,len(N[0])):
		sums = 0
		for i in xrange(0,len(N)):
			sums+=M[x][i]*N[i][p]
		result[x].append(sums)
print 
print 'M * N:',
for x in xrange(0,len(result)):
	print '\n'
	for i in xrange(0,len(result[0])):
		print '\t',result[x][i],


相關推薦

python核心程式設計練習題答案 23567812131416

#6-2 import random lists=[] for i in range(0,random.randrange(0,101)): n = random.randrange(0,2**31) lists.append(n) while True: try

python核心程式設計

6-1 字串。string模組中是否有一種字串方法或者函式可以鑑定一個字串是否是另一個大字串的一部分? #in/not in 可以判斷一個字串是否再另一個字串中 'bc' in 'abcd' Out[3

Python 核心程式設計練習題

7–1. 字典方法。哪個字典方法可以用來把兩個字典合併到一起?  update def updateDict(): dict1 = {'name': 'John', 'Age': 20} dict2 = {'address': 'Beijing road'}

Python核心程式設計15正則表示式練習答案

#15-1 識別下列字串:“bat,” “bit,” “but,” “hat,” “hit,” 或 “hut” pattern =  r'[bh][aiu]t,?' #15-2  匹配用一個空格分隔的任意一對單詞,比如,名和姓 pattern = r'\b\w+ \w+\

Python核心程式設計三版練習參考第一:正則表示式

1-1 識別後續的字串:“bat”、“bit”、“but”、“hat”、“hit”或者“hut”。 答:'[bh][aiu]t' 1-2 匹配由單個空格分隔的任意單詞對,也就是姓和名。 答:'\w+\s\w+' 1-3 匹配由單個逗號和單個空白符分隔的任何單詞和單個字

Python核心程式設計(十三)--面向物件程式設計

面向物件程式設計主要是類和類的例項 建立類: class MyNewObjectType(bases): 'define MyNewObjectType class' class_suite 關鍵詞是class,緊接著是一個類名,隨後是定義類的類體程式碼 o

Python核心程式設計 練習

筆者剛剛開始Python的系統學習,所以在程式碼上還無法達到pythonic的水準,很多寫法也都是按照C++的習慣來寫的,希望能有前輩進行交流指導。 歡迎拍磚 9_1 #!/usr/bin/python2 # coding: utf-8 if

Python核心程式設計 練習75

7–5. userpw2.py. 下面的問題和例題7.1 中管理名字-密碼的鍵值對資料的程式有關。 (a)修改那個指令碼,使它能記錄使用者上次的登入日期和時間(用time 模組),並與使用者密碼一起 儲存起來。程式的介面有要求使用者輸入使用者名稱和密碼的提示

概論論與數理統計嚴繼高版習題答案含過程

com 概論 img 9.png ima mage bubuko 技術 image 第八題在下一頁 概論論與數理統計嚴繼高版第六章習題答案(含過程)

C++ Primer 五版習題答案

書籍版本:2019年9月第一版;王剛 楊巨峰譯;電子工業出版社 編譯器 : win10  && VS2015 這一篇從6.3節開始,也就是30題開始 6.30 報的是錯誤#1,沒有正確的返回值 6.31 返回區域性引用時無效,返回區域性定義的常量引

裝置管理2

與裝置無關的I/O軟體 1.裝置獨立性(無關性) 使用者程式設計時所用的裝置名(邏輯上的)與實際物理裝置無關; 好處: ①裝置分配時的靈活性 3個物理裝置(如印表機),程式中申請一臺印表機,執行時不拘泥必須是某臺(如第2個)印表機 ②易於實現I/O重定向 指用於I/O操作的裝置可以更換(

Python核心程式設計三版——第一練習題答案

1.6 練習 正則表示式 1-1    [bh][aiu]t; 1-2    \w+ \w+; 1-3    \w+,\s\w+; 1-4     [A-Za-z_]+[\w_]+ python有效識

Python核心程式設計三版第一答案

包含了本人不斷嘗試更加嚴謹的過程: 1-1 re.match(’[bh][aiu]t’, ‘bat’).group() 1-2 re.match(’[A-Z][a-z]+ [A-Z][a-z]+’, ‘Xhen Fiagu’).group() 1-3 re.ma

python核心程式設計-6課後習題答案

6-2. 字串識別符號.修改例 6-1 的 idcheck.py 指令碼,使之可以檢測長度為一的識別符號,並且可以識別 Python 關鍵字,對後一個要求,你可以使用 keyword 模組(特別是 keyword.kelist)來幫你. #coding=utf-8 im

筆記Python核心程式設計 1 部分 通用應用主題 1 正則表示式

                     Python核心程式設計 第 1 部分 通用應用主

筆記Python核心程式設計 1 部分 通用應用主題 1 正則表示式

                     Python核心程式設計 第 1 部分 通用應用主題 1 章 正則表示式 管道符號(|):表示一個“從多個模式中選擇其 一”的操作。它用於分割不同的正則表示式。就能夠增強正則表示式的靈活性,使得正則表示式能夠匹配多個

習題答案

linux第六章練習題答案?1. 請查資料了解這些術語:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他們之間有什麽區別?/dev/hda, /dev/hdb是ide接口硬盤的塊文件。/dev/hda表示第一塊ide磁盤,/dev/hdb表示第二塊ide磁盤。?/dev/sd

《算法導論》 練習題 Exercise

chan idt 告訴 mage 最大 關鍵字 樹堆 return while 6.1-1   在高度為 h 的堆中,元素最多有 2h+1 - 1 個,最少有 2h 個。註意算法導論裏的高度是指深度,從 0 開始而不是從 1 開始。 6.1-2   這很好

Python基礎教程 學習筆記

作用 actor int bsp python基礎 clas 最好 col 學習 收集函數 把實際參收集到元組和字典當中 1 def print_params(*params): 2 print(params) 3 """ 4 print_parasm

Python核心程式設計(3版) pdf 下載

適讀人群 :本書適合具有一定經驗的Python開發人員閱讀  全面涵蓋當今應用開發中的眾多領域  為中級Python開發人員提供實踐方法  涵蓋大量實用的程式碼案例  每章末尾的習題有助於鞏固所學知識   想進一步提升Python程式設計水平?請深入分析真實應用程式中使用的大量相關主