当前位置:   article > 正文

python3-函数与参数以及空值_python 函数 参数传空

python 函数 参数传空

画星星

程序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

函数与Lambda

一、函数定义

Python定义函数使用关键字 def,后跟函数名与括号内的形参列表。函数语句从下一行开始,并且必须缩进。
程序2-7-10-1.py定义了函数getSum,完成参数求和后返回 。
#!/usr/bin/env python3

# -*- coding: utf-8 -*-
#2-7-10-1.py

def getSum(x1,x2,x3
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/813694
推荐阅读
相关标签
  

闽ICP备14008679号