def drawRectFour(x,y,side=100): """ 設計一個函數(x,y,side),繪製四個邊長 side/2 的四邊形,形成一個大的四邊形 :param x: X軸 :param y: Y軸 :param side:高 :return: none """ t.speed(1) z=side/2 #第一個 t.penup() t.goto(x, y) t.pendown() drawRect(x, y, side) #2 t.penup() t.goto(x, y-z) t.pendown() drawRect(x, y, side) #3 t.penup() t.goto(x+z, y) t.pendown() drawRect(x, y, side) #4 t.penup() t.goto(x+z, y-z) t.pendown() drawRect(x,y,side) def drawRect(x,y,side=100): """ 畫四邊形的動作 :param x:X軸 :param y:Y軸 :param side:高 :return:none """ for _ in range(4): t.fd(side/2) t.right(90)
def drawRect(x, y, side=100): """ 畫正方形 頭部動作 :param x: X座標值 :param y: Y座標值 :param side: 少輸入這個參數值時,用默認參數 :return: """ t.penup() t.goto(x, y) t.pensize(1) #畫線的寬度 t.bgcolor("white") #背景色 t.pencolor("red") #畫筆的顏色,也是線條的顏色 t.pendown() def drawRectFour(x,y,side=100): """ 設計一個函數(x,y,side),繪製四個邊長 side/2 的四邊形,形成一個大的四邊形 :param x: X軸 :param y: Y軸 :param side:高 :return: none """ t.speed(1) z=side/2 #第一個 drawRect(x,y,side) drawReccFact(x,y,side) #2 drawRect(x,y-z) drawReccFact(x, y, side) #3 drawRect(x+z, y) drawReccFact(x, y, side) #4 drawRect(x+z, y - z) drawReccFact(x, y, side) def drawReccFact(x,y,side=100): """ 畫四邊形的動作 :param x:X軸 :param y:Y軸 :param side:高 :return:none """ for _ in range(4): t.fd(side/2) t.right(90)
#調用 drawRectFour(-200,200,150)
# 設計一個函數(x,y,side),繪製四個邊長 side/2 的四邊形,形成一個大的四邊形 DrawSquare.py import turtle as t def originalShape(x,y,side=100): """ 畫正方形 頭部動作 :param x: X座標值 :param y: Y座標值 :param side: 少輸入這個參數值時,用默認參數 :return:none """ t.penup() t.goto(x, y) t.pensize(1) #畫線的寬度 t.bgcolor("white") #背景色 t.pencolor("blue") #畫筆的顏色,也是線條的顏色 t.pendown() for _ in range(4): t.fd(side) t.right(90) def draw_Square(x,y,side=100): """ 設計一個函數(x,y,side),繪製四個邊長 side/2 的四邊形,形成一個大的四邊形 同學的 :param x:X座標值 :param y:Y座標值 :param side:少輸入這個參數值時,用默認參數 :return:none """ kx = [0, 0.5] ky = [0, -0.5] for i in ky: for j in kx: t.penup() t.pencolor("green") t.goto(x + j*side, y + i*side) t.pendown() for _ in range(4): t.fd(side / 2) t.right(90) ''' ok k = [0,0.5] for i in k: for j in k: t.penup() t.goto(x+j*side, y-i*side) t .pendown () for _ in range(4): t.fd(side/2) t.right(90) ''' def drawRect(x, y, side=100): """ 畫正方形 頭部動作 :param x: X座標值 :param y: Y座標值 :param side: 少輸入這個參數值時,用默認參數 :return:none """ t.penup() t.goto(x, y) t.pensize(1) #畫線的寬度 t.bgcolor("white") #背景色 t.pencolor("red") #畫筆的顏色,也是線條的顏色 t.pendown() def drawRectFour(x,y,side=100): """ 設計一個函數(x,y,side),繪製四個邊長 side/2 的四邊形,形成一個大的四邊形 :param x: X軸 :param y: Y軸 :param side:高 :return: none """ t.speed(1) z=side/2 #第一個 drawRect(x,y,side) drawReccFact(x,y,side) #2 drawRect(x,y-z) drawReccFact(x, y, side) #3 drawRect(x+z, y) drawReccFact(x, y, side) #4 drawRect(x+z,y-z) drawReccFact(x, y, side) def drawReccFact(x,y,side=100): """ 畫四邊形的動作 :param x:X軸 :param y:Y軸 :param side:高 :return:none """ for _ in range(4): t.fd(side/2) t.right(90)
調用:
#調用 DrawSquare.py 文件寫的相函數代碼 DrawSquare.drawRectFour(200,200,100)#畫的值好像有點不對,OK吧 DrawSquare.originalShape(200, 200, 100) DrawSquare.draw_Square(200,200,100)
""" """ #這是一個示例 Python 腳本。 # 按 Shift+F10 執行或將其替換爲您的代碼。 # 按 雙擊 Shift 在所有地方搜索類、文件、工具窗口、操作和設置。 畫正方形 import turtle as t ''' t.speed(10) t.ht() t.pu() t.goto(-100,100) t.pendown() for _ in range(4): t.fd(100) t.right(90) t.mainloop() ''' def drawRect(x,y,side=50): """ 畫正方形 :param x: X座標值 :param y: Y座標值 :param side: 少輸入這個參數值時,用默認參數 :return: """ t.penup() t.goto(x, y) t.pendown() for _ in range(4): t.fd(side) t.right(90) #有默認參數,可以不用傳遞 drawRect(10,50) drawRect(10,50,80) # 函數無參數 def printdem(): """ :return: none 返回無值 """ for i in range(1, 11): print(i, end=' ') print() # 有參數函數 def printdemEndInt(n): """ :param n: :return: none 返回無值 """ for i in range(1, n+1): print(i, end=' ') print() #printdem() #printdemEndInt(20) # 被3整除的數 def findthree(number): """ 被3整除的數 (連敲三個雙引號,現現六個,從三個中間敲回畫,自動生成注擇格式,再添加自定義註釋,這樣會自動提示註釋 PyCharm 2023.1.2 geovindu, Geovin Du 塗聚文 :param number: 需要整除的整數的輸入參數 :return: 返回個數 """ num = 0 for i in range(1, number+1): if(i%3==0): num = num + 1 print("被3整除的數:",str(i)) #print() return num def numberoperater(n,m): """ 兩個數的加減乘除 :param n: 第一個數 :param m: 第二個數 :return: 返回值 """ sum=0 sum=m+n print("和:",sum) print("減:",n-m) print("除:",n/m) print("乘:",n*m) return m+n,n-m,n/m,n*m def unevenNumber(n,m): """ 計算從1到某個數以內的奇數的和並返回 :param n: 起始的數1 :param m: 最大的數 :return: 返回奇的和 """ sum=0 #for n in range(1,m+1,2) for i in range(n, m + 1): if (i % 2 != 0): sum+=i#sum=sum+i print(i) return sum def evenNumber(nmuber): """ 判斷某個數是否偶數 :param nmuber: 輸入整數 :return: 返回結果爲邏輯值 """ if(nmuber%2==0): return True else: return False def ComparingNumbers(n,m): """ 比較兩個數的大小,返回較大的一個 :param n: 第一個數 :param m: 第二個數 :return: 返回最大的數 """ # return a if a>b else b # 如三目運算 if(n>m): print("第一個數大",n) return n elif(m>n): print("第二個數大",m) return m elif(m==n): print("一樣大") return 0 def NumberEvenSum(n): """ 返回1至N的所有偶數的和,奇數的和 :param n: 整數參數 :return: 返回偶數的和,奇數的和 """ evensum=0 #偶數的和 unevensum=0 #奇數的和 for i in range(1, n + 1): if (i % 2 != 0): unevensum=unevensum+i if (i % 2 == 0): evensum = evensum + i return evensum,unevensum def NumberEvenSum2(n): """ 返回1至N的所有偶數的和,奇數的和 :param n: 整數參數 :return: 返回偶數的和,奇數的和 """ evensum=0 #偶數的和 unevensum=0 #奇數的和 for i in range(1, n + 1, 2): unevensum += i for i in range(2, n + 1, 2): evensum += i return evensum,unevensum def du(a): """ 如果函數沒有返回值爲none :param a: :return: """ a=[1,2,3] a.append(40) return a def duParameterPassing(a): """ 如果函數,這會傳遞參數 傳遞實參 :param a: :return: """ a.append(40) def editDic(n): """ 修改年齡 傳遞形參 :param a: 字典 :return: none """ oldage=a['age'] #oldage=30 n['age'] += 1 print("old age",oldage,"new age:",a['age']) a={'name':'張三','age':30} editDic(a) # 傳遞實參, 也傳遞形參 還有位置參數,默認參數,關鍵字參數,不定參數 print(a) def defaultfunction(a,b=100): """ :param a: :param b: :return: """ return a+b def keyfunction(a,b): """ :param a: :param b: :return: """ print("a=",a,"b=",b) def ParamArray(*args): """ 接受不定長的位置參數 :param args: :return: """ print(args,type(args)) #args 是元祖,把所有參數都放在args元祖裏 for i in args: print(i, end=' ') def kwParamArray(**kwargs): """ **kwargs 接受的是不定長的關鍵字參數 字典 :param kwargs: :return: """ print(kwargs) def avgeParamArray(*args): """ 求不定長度的參數的整數的平均值 :param args: 不定長的參數 :return: 返回平均值 """ pass sum=0 #和 n=len(args) #個數 avg=0 for i in args: sum += i avg = sum/n return avg def avgeParamArray2(*args): """ 求不定長度的參數的整數的平均值 :param args: 不定長的參數 :return: 返回平均值 """ print(sum(args)/len(args)) def CitykwParamArray(**kwargs): """ **kwargs 接受的是不定長的關鍵字參數 字典 :param kwargs: :return: """ for key in kwargs.keys(): #print(kwargs.keys(),kwargs.values()) print(key,kwargs[key]) for key in kwargs: print(f'{key}={kwargs[key]}') # 格式化輸出 # 個人信息打印 CitykwParamArray(name="劉傑",age=20,city="深圳市") avg=avgeParamArray(10,15,20) print("平均數:",avg) #默認參數,可以不傳遞,如是兩個參數,一個參數是默認的可以不傳 print(defaultfunction(300)) #關鍵字參數 keyfunction(b=200,a=400) #不定長參數 ParamArray(20,30,40,50) #不定長字典參數 kwParamArray(a=10,b=30,c=50) l1=[10,20,30] s=du(l1) print(l1) print(s) duParameterPassing(l1) print(l1) du=findthree(20) print("被3整除的數的個數:",str(du)) result=numberoperater(8,10) print("結果:",result) print(result[1],result[2]) du2=unevenNumber(1,16) print("奇數的和:",du2) du3=evenNumber(14) print("14是否爲偶數:",du3) du4=ComparingNumbers(5,8) print("最的數是:",du4) result2=NumberEvenSum(18) print("偶數的和是:",result2[0]) print("奇數的和是:",result2[1]) # 元祖拆包 變量1,變量1=(數據1,數據2) a,b=NumberEvenSum(18) print("偶數的和是:",a,"奇數的和是:",b)
輸出:
被3整除的數: 3 被3整除的數: 6 被3整除的數: 9 被3整除的數: 12 被3整除的數: 15 被3整除的數: 18 被3整除的數的個數: 6 和: 18 減: -2 除: 0.8 乘: 80 結果: (18, -2, 0.8, 80) -2 0.8 1 3 5 7 9 11 13 15 奇數的和: 64 14是否爲偶數: True 第二個數大 8 最的數是: 8 偶數的和是: 90 奇數的和是: 81 偶數的和是: 90 奇數的和是: 81 進程已結束,退出代碼0