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