程式設計(Python)實驗八 函式
阿新 • • 發佈:2021-02-09
技術標籤:Python程式設計實驗(SWUST)python
實驗目的
- 掌握函式的定義與呼叫過程
- 掌握引數的傳遞方式和傳遞過程
- 理解和使用匿名函式
- 理解遞迴呼叫的思想和方法
- 掌握變數的作用域
實驗內容
練習一
題目
定義求 n!的函式 fact()和求和函式 sum(),在此基礎上程式設計實現 1!+2!+…m!的計算。
程式碼
def fact(num):
result = 1
for i in range(1,num+1):
result *= i
return result
def sum(num):
result = 0
for i in range(1,num+1):
result = result + fact(i)
return result
num=eval(input("請輸入一個數m:"))
print("1!+2!+...+{}!={}".format(num,sum(num)))
練習二
題目
定義匿名函式實現求平方,定義判素數函式 list_prime(),該函式可以實現接受任意個數的判斷,並將所有素數作為返回值。在此基礎上程式設計實現隨機輸入任意個數,從中挑選出所有素數,並計算所有素數平方和。
程式碼
def list_prime(num):
sum = 0
for i in range(1,num):
if (num % i==0):
sum +=1;
if sum>=2:
return 0
else:
return pingfang(num)
def pingfang(num):
return num*num;
str = eval(input("請隨機輸入任意個數(以逗號分割):"))
sum = 0
for i in str:
sum += list_prime(i)
print("你輸入的陣列中所有素數的平方和為:{}" .format(sum))
練習三
題目
分別定義 numlist()和 charlist()函式,numlist()功能是生成由數字 1-26 構成的列表,charlist()功能是生成由字元 A-Z 構成的列表。在此基礎上編寫程式實現
生成一個字典,具體如下:
{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’, 5: ‘e’, 6: ‘f’, 7: ‘g’, 8: ‘h’, 9: ‘i’, 10: ‘j’, 11: ‘k’, 12: ‘l’, 13: ‘m’,14: ‘n’, 15: ‘o’, 16: ‘p’, 17: ‘q’, 18: ‘r’, 19: ‘s’, 20: ‘t’, 21: ‘u’, 22: ‘v’, 23: ‘w’, 24: ‘x’, 25: ‘y’,26: ‘z’}
遍歷字典,輸出所有鍵值為偶數的元素。
程式碼
def numlist():
num= []
for i in range(1,27):
num.append(i)
return num
def charlist():
char = []
for i in range(26):
char.append(chr(ord('A')+i))
return char
dictionary = dict(zip(numlist(),charlist()))
# print(dictionary)
for key in dictionary:
if key%2 ==0:
print(dictionary[key])
練習四
題目
繪製科赫雪花,效果如下:
程式碼
import turtle
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.setup(600,600)
turtle.speed(0)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level = 5
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.exitonclick()
main()