本文主要是介绍(Python)python基础(一)之分形树(递归的用法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面:python是高级语言,相对于java,c等语言便捷性和可读性大大提高,笔者从基础开始接触python语法。
题意
- 分形几何的基本思想:
局部是整体成比例缩小后的形态,客观事物具有相似的层次结构,
局部与整体在统计意义上具有相似性。
总而言之,就是将局部放大后的图形与先前图形相似。 - 递归函数的必备因素:
重复单元、停止条件(各函数逐层结束运算,返回计算结果)
补充
turtle库
-
基础操作:
turtle.forward(distance)画笔向前移动distance距离
turtle.backward(distance)画笔向后移动distance距离
turtle.right(degree)画笔向右旋转degree度
turtle.exitonclick()点击关闭图形窗口 -
画笔控制函数补充:
turtle.penup() 抬起画笔,之后移动画笔不绘制形状
turtle.pendown() 落下画笔,之后移动画笔绘制形状
turtle.pensize() 设置画笔宽度
turtle.pencolor() 设置画笔颜色,常用的颜色:
whilte, black, grey, darkgreen, gold, violet, purple -
详细API请参考
python基本语法等
- 注释:
整体注释 Ctrl+/
单行注释:#
多行注释:’’’ ‘’’ - 字符串索引访问:
字符串正向索引:0开始
字符串反向索引:-1开始
区间索引:
[A:B] 从A开始到B,不包含B
前3位:s[:3]
后3位:s[-3:] - 快捷键:
整体缩进:tab + /
缩进回退:tab+shift
(注:python中没有{},缩进很重要!!!) - 其它:
字符串转换为数字:eval()
占位符:pass
幂次方计算:** (例:2**10 为 1024) - 条件语句:
if <条件1>:
<语句1>
elif <条件2>:
<语句2>
…
else:
<语句N>
while (<条件>):
<语句块1>
<语句块2> - 函数定义:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表> - lambda函数:
<函数名> = lambda<参数列表>:<表达式>
(注:用于简单的、能在一行内表示的函数,表达式结果为返回值) - main()函数的调用:
if __name__ == '__main__':main()
分形树的实现
"""作者:crystalcreator功能:利用递归函数绘制分形树(树枝部分为绿色)版本:1.0日期:03/03/2020
"""
import turtledef draw_branch(branch_length):"""绘制分析树"""if branch_length > 5:#绘制右侧树枝#判断画笔颜色if branch_length <30:turtle.color("green")else:turtle.color("brown")turtle.forward(branch_length)turtle.right(20)draw_branch(branch_length - 15)#绘制左侧树枝turtle.left(40)draw_branch(branch_length - 15)#返回之前的树枝#判断画笔颜色if branch_length <30:turtle.color("green")else:turtle.color("brown")turtle.right(20)turtle.backward(branch_length)def main():"""主函数: """turtle.left(90)turtle.penup()turtle.backward(150)turtle.pendown()draw_branch(100)turtle.exitonclick()if __name__ == '__main__':main()
效果如图:
END
这篇关于(Python)python基础(一)之分形树(递归的用法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!