Python 入門程式設計題(二)答案
阿新 • • 發佈:2018-12-20
Python 入門程式設計題:11~20(答案)
提示:最好還是先思考,先編寫,再看答案哦 ^_^
11.
X = [[12,7,3], [4,5,6], [7,8,9]] Y = [[5,8,1], [6,7,3], [4,5,9]] result = [[0,0,0], [0,0,0], [0,0,0]] # 迭代輸出行 for i in range(len(X)): # 迭代輸出列 for j in range(len(X[0])): result[i][j] = X[i][j] + Y[i][j] for r in result: print(r)
12.
def inp(numbers): for i in range(9): numbers.append(int(input('input a number:'))) numbers.append(int(input('input a number:'))) p = 0 def max_min(array): max = min = 0 for i in range(1,len(array) - 1): p = i if array[p] > array[max] : max = p elif array[p] < array[min] : min = p k = max l = min array[0],array[l] = array[l],array[0] array[9],array[k] = array[k],array[9] def outp(numbers): for i in range(len(numbers)): print(numbers[i]) if __name__ == '__main__': array = [] inp(array) max_min(array) outp(array)
13.
import random,time time1=time.time() n=50 k=20000000 c=[] #c=[1,2,3,4,5] for i in range(n): c.append(random.randint(1,100)) cs=[1 if i==0 else 0 for i in range(n+1)] ta=[] for j in range(n+1): for i in range(n-j): cs[i+1]+=cs[i] ta.append(cs[-1]) del cs[-1] ta[0]+=ta[-1] del ta[-1] k_n=k//n kn=k%n for i in range(k_n): cc=c.copy() for j in range(n): xx=0 for k in range(n): xx=xx+(cc[k]*ta[k])%100 c[j]=xx%100 cc=cc[1:]+cc[:1] for i in range(kn): c.append(c[0]) for j in range(n): c[j]=(c[j]+c[j+1])%100 del c[-1] print(c,time.time()-time1)
14.
num = int(input('多少人圍成一圈:'))
list1 = list(range(1, num + 1))
n = 2 % len(list1)
while len(list1) > 1:
list1.pop(n)
n = (n + 2) % len(list1)
print('最後留下的是原來第%d號'%list1[0])
15.
def even_sum(n):
s1 = 0
for i in range(2, n+1, 2):
s1 += 1.0 / i
return s1
def odd_sum(n):
s2 = 0
for i in range(1, n+1, 2):
s2 += 1.0 / i
return s2
def my_sum(n):
if n % 2 == 0:
s = even_sum(n)
else :
s = odd_sum(n)
return s
if __name__ == '__main__':
n = int(input('input a number:\n'))
sum = my_sum(n)
print(sum)
16.
monkey=1#要分桃的猴子數
peaches=1#桃的總數
peach=1#每次分桃的總數
while(monkey<=5):
#如果成功分桃子
if peach % 5 ==1 and peach // 5 != 0:
#可分桃的總數為現在的4/5
peach=(peach // 5)*4
# 換下一個猴子
monkey += 1
# 如果失敗,重新分桃這時可分桃數量加1
else:
peaches += 1
peach = peaches
monkey = 1
print("桃的最小總數為:%s" %peaches)
17.
def calc(list1):
min = abs(list1[0] - list1[1])
for i in range(len(list1)):
for j in range(i+1, len(list1)):
if abs(list1[i] - list1[j]) < min:
min = abs(list1[i] - list1[j])
return min
if __name__ == "__main__":
test = [1, 3, 10, 5, 23, 50]
print(calc(test))
18.
import re
list1 = input('請輸入一組數字:')
list1 = re.findall(r'\d', list1)
for i in range(len(list1)):
list1[i] = int(list1[i])
list1.reverse()
for each in list1:
print(each, end = ' ')
19.
import os
while True:
filename=input('請輸入檔名:')
if os.path.exists(filename):
print('此檔案已存在!')
break
else:
all=[]
while True:
content=input('請加入內容:')
if content=='.':
print('退出')
break
else:
all.append(content)
fobj=open(filename,'w')
str_list=[i+'\n'for i in all]
fobj.writelines(str_list)
fobj.close()
break
20.
建立遊戲畫布:
from tkinter import *
import random
import time
tk = Tk()
tk.title("Game")
tk.resizable(0,0)
tk.wm_attributes("-topmost",1)
canvas = Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)
canvas.pack()
tk.update()
建立 ball 類:
class Ball:
def __init__(self,canvas,color):
self.canvas = canvas
self.id = canvas.create_oval(10,10,25,25,fill=color)
self.canvas.move(self.id,245,100)
def draw(self):
pass
建立主迴圈:
while 1:
tk.update_idletasks()
tk.update()
time.sleep(0.01)
建立例項化物件:
ball = Ball(canvas,'red')
(未完待續,持續更新)