1. 程式人生 > 其它 >程式設計(Python)實驗八 函式

程式設計(Python)實驗八 函式

技術標籤:Python程式設計實驗(SWUST)python

實驗目的

  1. 掌握函式的定義與呼叫過程
  2. 掌握引數的傳遞方式和傳遞過程
  3. 理解和使用匿名函式
  4. 理解遞迴呼叫的思想和方法
  5. 掌握變數的作用域

實驗內容

練習一

題目

定義求 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()