Python基础100题打卡Day7

本文通过两个Python编程实例介绍了生成器的使用和机器人的平面移动轨迹计算。第一个例子展示了如何创建一个生成器类,用于迭代0到n之间能被7整除的数字。第二个例子中,机器人根据输入的移动指令在坐标平面上移动,计算并返回其与起点的距离。文章强调了类的方法定义、return与yield的区别,并提供了完整的代码实现。
摘要由CSDN通过智能技术生成

题目二十

定义一个具有生成器的类,它可以在给定的范围0和n之间迭代可被7整除的数字。

代码实现

class devide_7():
    def devides(self,n):
        for i in range(1,n+1):
            if i % 7 == 0:
                yield i


devide = devide_7()
for i in devide.devides(int(input("请输入数字:"))):
    print(i)

运行结果

请输入数字:20
7
14

题目二十一

机器人从原始点(0,0)开始在平面上移动。机器人可以用给定的步骤向上、下、左、右移动。
方向后面的数字是步骤。请编写一个程序来计算从当前位置到移动序列和原始点的距离。如果距离是浮点数,那么只需打印最近的整数。
示例:如果给出以下元组作为程序的输入:
UP 5
DOWN 3
LEFT 3
RIGHT 2
结果输出为:
2

代码实现

import math
position = [0,0]
def distance(position):
    dis = round(math.sqrt(position[0]**2+position[1]**2))
    return dis
while True:
    s = input("请输入机器人移动的方向和步数,以空格相隔:").split()
    if not s:
        break
    if s[0] == 'UP':
        position[1] += int(s[1])
    if s[0] == 'DOWN':
        position[1] -= int(s[1])
    if s[0] == 'RIGHT':
        position[0] += int(s[1])
    if s[0] == 'LEFT':
        position[0] -= int(s[1])

dist = distance(position)
print(dist)

运行结果

请输入机器人移动的方向和步数,以空格相隔:UP 5
请输入机器人移动的方向和步数,以空格相隔:DOWN 3
请输入机器人移动的方向和步数,以空格相隔:LEFT 3
请输入机器人移动的方向和步数,以空格相隔:RIGHT 2
请输入机器人移动的方向和步数,以空格相隔:
2

总结

1.类的运算中,对于行为的定义就像是对整个代码中的函数的定义,需要自己的参数和运行结果,除了继承自身的参数,还可以重新定义(就像代码中函数的参数定义)。

2.另外一个return和yeild的区别和联系。两者均可以实现对数值的返回,但是yeild更像是返回和继续的结合,可以告诉程序,在返回值之后,在yeild标记的地方继续进行运算。而return则是返回之后,就中断程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值