• python3-函数与参数以及空值


    画星星

    程序2-7-7主要使用turtle.forward前进操作和turtle.left左转操作在屏幕上画星星。

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #2-7-8.py
    import turtle
    turtle.color('Green','yellow')
    while True:
        turtle.forward(200)
        turtle.left(150)
        print(turtle.pos())
        if abs(turtle.pos()) < 1:
            break
    print('按回车键退出')
    input()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    程序2-7-7.py运行结果如下:
    在这里插入图片描述

    同时,程序2-7-7.py还输出了如下所示的线转角处(绘制一条直线后转角绘制另一个直线,2条直线的交点)的位置信息:
    (200.00,0.00)
    (26.79,100.00)
    (126.79,-73.21)
    (126.79,126.79)
    (26.79,-46.41)
    (200.00,53.59)
    (0.00,53.59)
    (173.21,-46.41)
    (73.21,126.79)
    (73.21,-73.21)
    (173.21,100.00)
    (0.00,-0.00)
    按回车键退出
    现对程序2-7-7.py分析如下:
    1、该程序使用了以下几个函数:
    (1)forward函数前进200,用于绘制直线。
    (2)left函数左转150度,用于转角,绘制另一条直线。
    (3)turtle.pos()返回当前位置坐标 (x,y) (坐标为 Vec2D 矢量类对象)。
    (4) abs函数返回一个数的绝对值。 参数可以是整数、浮点数或任何实现了 abs() 的对象,当参数是一个复数时,返回它的模。在该程序中, abs的作用如下:
    使用pos返回一个当前坐标后,abs求该Vec2D坐标到原点的距离(从原点出发的向量长度)。矢量空间内的所有矢量赋予非零的正长度或大小,在二维的欧氏几何空间 R中定义欧氏范数,在该矢量空间中,元素被画成一个从原点出发的带有箭头的有向线段,每一个矢量的有向线段(向量)的长度即为该矢量的欧氏范数。
    由于Vec2D是一个二维矢量类,用来作为实现海龟绘图的辅助类,也可以在海龟绘图程序中使用,它派生自元组,因此矢量也属于元组。Vec2D主要提供以下运算 (a, b 为矢量, k 为数值):
    a + b 矢量加法
    a - b 矢量减法
    a * b 内积
    k * a 和 a * k 与标量相乘
    此外,Vec2D类还实现了 abs操作,如下面代码片断所示(摘自Vec2D类源代码)。

    class Vec2D(tuple):
      ...
        def __abs__(self):
            return (self[0]**2 + self[1]**2)**0.5
    
    • 1
    • 2
    • 3
    • 4

    2、程序2-7-7.py的执行过程如下:
    (1)通过turtle.color(‘Green’,‘yellow’)函数设置颜色为绿色画笔、黄色填充。
    (2)创建循环体,循环体内容为:
    首先,将海龟定位于原点。
    然后,turtle.forward(200)前进200步,turtle.left(150)左转150度,print(turtle.pos())打印出当前海龟位置。
    最后,通过abs(turtle.pos())判断当前向量(从原点到当前海龟位置的向量)的长度,如果长度<1,说明当前位置已经回到了起点(原点),就退出循环。如果长度>=1,则继续循环。

    空值None

    Python None 对象,表示缺乏值、空值。
    下面代码定义了x和y共2个变量,其中,x初始化值为0,而y设为了空值,x虽然为0,但仍然属于有值状态,而y属于空值状态。

    >>>x=0
    >>>y=None
    >>>x==None
    False
    >>>y==None
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Unity自定义Timeline总结
    C++之const浅谈(1)
    openGauss学习笔记-239 openGauss性能调优-SQL调优-调优流程
    Tuxera NTFS Mac2022强大的mac读写硬盘/U盘工具
    windows启动项目端口被占用
    【HCIA】数通网络基础
    要精通Java,先研究它的执行原理
    Himall商城- web私有方法
    Unity(第二十四部)UI
    python实现选择排序算法
  • 原文地址:https://blog.csdn.net/AI_LX/article/details/128063324