一、實驗目的和要求
1.掌握函數聲明、定義及調用的方法。
2.掌握函數實際參數與形式參數的對應關係以及數據的“值傳遞”方式。
3.掌握遞歸的思想和遞歸調用的一般方法。
二、 實驗數據記錄、處理及結果分析
1、寫出下列程序的運行結果。
def foo(num):
for j in range(2,num//2+1):
if num%j==0:
return False
else:
return True
def main():
n,c=8,0
for i in range(2,n+1):
if foo(i):
c+=i
print(c)
if __name__=='__main__':
main()
2、下列程序的作用是求兩個正整數m,n的最大公約數,請補充程序。
def gcd(m,n):
if m<n:
m,n=n,m
if m%n==0:
①
else:
return ②
ans=gcd(84,342)
print(ans)
補充程序爲:
①return n,②gcd(n,m%n)
3、定義一個Circle類,根據圓的半徑求周長和麪積。再由Circle類創建兩個圓對象,其半徑分別爲5和10,要求輸出各自的周長和麪積。
import math
class Circle:
def __init__(self,radius=5):
self.radius=radius
def getPerimeter(self): #返回圓的周長
return 2*math.pi*self.radius
def getArea(self): #返回圓的面積
return math.pi*self.radius*self.radius
c1=Circle() #創建兩個圓對象
c2=Circle(10)
print(c1.radius,c1.getPerimeter(),c1.getArea())
print(c2.radius,c2.getPerimeter(),c2.getArea())
4、有一個文本文件sample.txt,其內容包含小寫字母和大寫字母。請將該文件複製到另一文件sample_copy.txt,並將原文件中的小寫字母全部轉換爲大寫字母,其餘格式均不變。
f=open("sample.txt")
L1=f.readlines()
f2=open("sample_copy.txt",'w')
for line in L1:
f2.write(line.upper())
f.close()
f2.close()
5、繪製一個矩形,並在其中畫寬度爲15像素的均勻紅色彩條
import tkinter
import math
w=Tk()
c=Canvas(w,bg='white')
c.pack()
c.create_rectangle(30,30,325,230,width=5)
x0=35
for i in range(10)
c.(x0,35,x0+15,255,fill='red',outline='red')
x0+=30
5、選擇相應單選按鈕時,將窗口背景設置成相應顏色。
def callb():
w.config(bg=tf[int(v.get())])
from tkinter import *
w=Tk()
w.title("改變窗口背景顏色")
w.geometry("250x100")
v=StringVar()
v.set(2)#將第三個單選按鈕設爲默認按鈕
f=Frame(w,bd=4,relief=GROOVE) #建立框架
f.pack()
tf=['red','blue','yellow']
for n in range(len(tf)):
r=Radiobutton(f,variable=v,text=tf[n],value=n,command=callb)
r.grid(row=n,column=1,sticky=W) #靠左放
w.mainloop()
6、設置按鈕ok點擊之後爲hello world
from tkinter import *
from tkinter.messagebox import *
def button_click():
showinfo(title='message box',message='Hello,world!')
w=Tk()
b=Button(w,text='OK',command=button_click)
b.pack(side=TOP)
w.mainloop()
三、討論、心得
11題報錯:
源碼爲:
源碼爲:
from tkinter import *
from math import *
w=Tk()
c=Canvas(w,bg='white')
c.pack()
c.create_rectangle(30,30,325,230,width=5)
x0=35
for i in range(10):
c.create_rectangle(x0,35,x0+15,225,fill='red',outline='red')
x0+=30