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
这里运用了函数来改写过代码
1643

被折叠的 条评论
为什么被折叠?



