Python作业

1.python能够做减法、乘法、除法和幂运算的代码

class Calculator:
    def subtract(self, a, b):
        """减法运算"""
        return a - b

    def multiply(self, a, b):
        """乘法运算"""
        return a * b

    def divide(self, a, b):
        """除法运算,需要考虑除数不为零的情况"""
        if b != 0:
            return a / b
        else:
            return "Error: Division by zero!"

    def power(self, a, b):
        """幂运算"""
        return a ** b

# 创建Calculator类的实例
calc = Calculator()

# 测试计算器的功能
print("减法:8 - 4 =", calc.subtract(8, 4))
print("乘法:8 * 4 =", calc.multiply(8, 4))
print("除法:8 / 4 =", calc.divide(8, 4))
print("幂运算:8 ** 4 =", calc.power(8, 4))

运算结果:减法:8 - 4 = 4
乘法:8 * 4 = 32
除法:8 / 4 = 2.0
幂运算:8 ** 4 = 4096

2.

小明在课堂上学习了列表、元组和字典的用法,他对以下场景产生了兴趣,请你帮他编程解决,并把截图进行上传:

隐形坐标距离

  在地图上坐标都是相对固定的,但是如果把坐标里面的某些参数进行了修改,可能原来的位置就找不到了,就变成了一个隐形坐标,但是这个坐标跟原来的相对距离还是可以求出来的,小明在地图上找到坐标如下(0,0),(2,5),(3,6),(4,7),(5,8),他想把所有的坐标变成隐形坐标,然后求出来哪两个坐标之间的距离最大(距离使用欧式距离来计算),你可以帮他编程实现这个过程么?

 

import math
import random

def euclidean_distance(point1, point2):
    """计算两点之间的欧氏距离"""
    return math.sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)

def generate_invisible_coordinates(coordinates, shift_range=10):
    """将给定的坐标转换为隐形坐标,每个坐标点的x和y坐标都会随机偏移"""
    return [(x + random.randint(-shift_range, shift_range), y + random.randint(-shift_range, shift_range)) for x, y in coordinates]

def find_max_distance_pair(coordinates):
    """找出所有坐标中哪两个点之间的距离最大"""
    max_distance = 0
    max_pair = None
    for i in range(len(coordinates)):
        for j in range(i+1, len(coordinates)):
            distance = euclidean_distance(coordinates[i], coordinates[j])
            if distance > max_distance:
                max_distance = distance
                max_pair = (coordinates[i], coordinates[j])
    return max_pair, max_distance

def main():
    # 给定的坐标
    coordinates = [(0,0), (2,5), (3,6), (4,7), (5,8)]

    # 将坐标转换为隐形坐标
    invisible_coordinates = generate_invisible_coordinates(coordinates)

    # 找出隐形坐标中距离最大的两个点
    max_pair, max_distance = find_max_distance_pair(invisible_coordinates)

    # 输出结果
    print("隐形坐标是:", invisible_coordinates)
    print("距离最大的两个隐形坐标是:", max_pair)
    print("它们之间的距离是:", max_distance)

if __name__ == "__main__":
    main()

运行结果:隐形坐标是: [(3, 1), (12, -5), (10, 16), (-3, -1), (10, 2)]
距离最大的两个隐形坐标是: ((10, 16), (-3, -1))
它们之间的距离是: 21.400934559032695

这里运用了函数来改写过代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值