python: function
'''
drawrect.py file
editor: geovindu, Geovin Du
date: 2023-06-11
'''
import turtle as t
def drawonerect(x,y,side):
"""
画正方形
:param x: x轴
:param y: Y轴
:param side: 高
:return:none
"""
t.penup()
t.goto(x,y)
t.pendown()
for _ in range(4):
t.fd(side)
t.right(90)
def drawfourrect(x,y,side):
"""
画四个正方形
:param x:x轴
:param y:Y轴
:param side:高
:return:none
"""
side /=2
plist=[(x,y),(x+side,y),(x,y-side),(x+side,y-side)] #元祖拆包
for a in plist:
drawonerect(*a,side)
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]}') # 格式化输出
# 按住ctr+鼠标左路键,可以查看当前光标的系统函数
# 匿名函数 没有函数名, lambda 参数:表达式,结果就是返回值
du1=lambda a,b:a+b
print(du1(10,20)) #匿名函数用法
du2=lambda a,b:a if a>b else b
print(du2(10,20),du2(50,80))
# 字符串长度查找 用匿名函数
strlist=["kjfkd",'a','dd']
print("最长字符串:",max(strlist,key=lambda a:len(a)))
strlist1=[
{'name':"zhejiang",'score':99,'age':10},
{'name':"helan",'score':42,'age':12},
{'name':"baihe",'score':80,'age':15},
{'name':"jiangxing",'score':82,'age':13}
]
print("成绩最高分数是同学是:",max(strlist1,key=lambda a:a["score"]))
#排序
strlist1.sort(key=lambda a:a['score'])
for a in strlist1:
print(a)
#函数作为参数
def functionparam(a):
a()
geovin=CitykwParamArray;
geovin()
print(CitykwParamArray,type(CitykwParamArray)) #打印内存地址
#函数作为参数
functionparam(CitykwParamArray)
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]}') # 格式化输出
#函数作为参数
def functionparam(a):
a()
geovin=CitykwParamArray;
geovin()
print(CitykwParamArray,type(CitykwParamArray)) #打印内存地址
#函数作为参数
functionparam(CitykwParamArray)
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]}') # 格式化输出
geovin=CitykwParamArray;
geovin()
print(CitykwParamArray,type(CitykwParamArray)) #打印内存地址
import turtle as t
def drawonerect(x,y,side):
"""
画正方形
:param x:
:param y:
:param side:
:return:
"""
t.penup()
t.goto(x,y)
t.pendown()
for _ in range(4):
t.fd(side)
t.right(90)
def drawfourrect(x,y,side):
"""
:param x:
:param y:
:param side:
:return:
"""
side /=2
plist=[(x,y),(x+side,y),(x,y-side),(x+side,y-side)] #元祖拆包
for a in plist:
drawonerect(*a,side)
def display(*args):
print(args,type(args))
a=(10,20,30,40)
a1,a2,a3,a4=a #元祖拆包
display(a1,a2,a3,a4) #传参拆包
display(*a) #传参拆包
def keyfunctiontype(a:int,b:int)->int: #None 返回值为int 类型
"""
指定数据类型
:param a:
:param b:
:return:
"""
print("a=",a,"b=",b)
print(CitykwParamArray.__doc__) #打印函数说明 help(CitykwParamArray) #打印函数说明
k = [0,0.5]
for i in k:
for j in k:
print(j,i)
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
k = [0, 0.5]
for i in k:
for j in k:
drawRect(x+j*side,y-i*side)
drawReccFact(x + j * side, y - i * side)
''' ok
#第一个
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)
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

哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
浙公网安备 33010602011771号