python: function

 

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

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章