每日总结2023/4/6(python实现分型图形设计)

import random
import turtle
turtle.speed(100)
def ke_line(line_, n):
    if n == 0:
        turtle.fd(line_)
    else:
        line_len = line_ // 3
        for i in [0, 60, -120, 60]:
            turtle.left(i)
            ke_line(line_len, n - 1)
# 原始线长度
line = 300
# 移动小海龟画布左下角
turtle.penup()
turtle.goto(-150, -150)
turtle.pendown()
# 几阶科赫雪花
di_gui_deep = int(input("请输入科赫雪花的阶数:"))
while True:
    # 当多少科赫雪花围绕成一个圆周时,就构成一个完整的雪花造型
    count = int(input("需要几个科赫雪花:"))
    if 360 % count != 0:
        print("请输入 360 的倍数")
    else:
        break
for i in range(count):
    ke_line(line, di_gui_deep)
    turtle.left(360 // count)
turtle.done()

 Python 分形算法__代码里开出来的艺术之花 - 知乎 (zhihu.com)

python语言中,没有内置switch函数,如果用if-else语句的话,当分支数量很大时,会显得很臃肿,下面是使用python中的字典,实现switch语句功能的方法。

# 设置flag的值,用于选择执行哪个函数
flag = 0
# 设置自定义函数
def get_function_1():
    # 函数功能
    return 'Function_1'

def get_function_2():
    # 函数功能
    return 'Function_2'

def get_function_3():
    # 函数功能
    return 'Function_3'

def get_default():
    # 函数功能
    return 'Others'

# 字典中不同的值对应不同的自定义函数
switcher = {
    0: get_function_1,
    1: get_function_2,
    2: get_function_3
}
# 根据flag的值决定执行哪一个函数,如果输入的值在字典中没有,则执行get_default函数
output = switcher.get(flag, get_default)()
print("The output of switcher is: ", output)

如果语句不复杂,也可以使用lambda表达式,可以使代码更简洁,lambda表达式介绍见

下面是利用了字典和lambda表达式,实现switch语句功能

flag = 0
# 如果字典中没有flag的值,则执行get_default函数
def get_default(x):
    # 函数功能
    return 'None'

switcher = {
    0: lambda x:x+1,
    1: lambda x:x**2,
    2: lambda x:abs(x)
}

output = switcher.get(flag, get_default)(5)
print("The output of switcher is: ", output)

 

posted @ 2023-04-06 21:58  橘子味芬达水  阅读(59)  评论(0编辑  收藏  举报