Python编程实战:从基础算法到数据可视化完整解析

118 阅读3分钟

本文将详细解析一个包含四个编程任务的Python脚本,涵盖基础算法、数学计算、数据可视化和数组操作等多个方面。

题目1:员工工资计算系统

任务要求

编写函数pay(),带两个输入参数:小时工资和上周员工工作了的小时数。函数计算并返回员工的工资。加班工资的计算方法如下:大于40小时但小于或等于60小时按平时小时薪酬的1.5倍给薪;大于60小时则按平时小时薪酬的2倍给薪。

代码实现

def pay(salaryHour, hours):
    if hours <= 40:
        return salaryHour * hours
    elif hours > 40 and hours <= 60:
        return salaryHour * 40 + salaryHour * 1.5 * (hours - 40)
    else:  # hours > 60
        return salaryHour * 40 + salaryHour * 1.5 * 20 + salaryHour * 2 * (hours - 60)

# 测试用例
print(pay(40, 70))  # 工作70小时,每小时40元

运行结果

3800.0

分析

  • 使用分段函数处理不同时间段的薪酬计算
  • 注意基础工资部分只计算前40小时,超出部分按加班计算
  • 代码逻辑清晰,准确反映了薪酬政策

题目2:三角形面积计算

任务要求

输入三个正实数,如果能够组成三角形,输出三角形面积,如果不能,输出"error"。三个数能够组成三角形的条件是:任意两边之和大于第三边。

代码实现

import math

def triangle_area(a, b, c):
    if a + b > c and a + c > b and b + c > a:
        s = (a + b + c) / 2
        area = math.sqrt(s * (s - a) * (s - b) * (s - c))
        return area
    else:
        return "error"

print(triangle_area(3, 4, 5))

运行结果

6.0

分析

  • 使用海伦公式计算三角形面积
  • 完整检查三角形构成条件(任意两边之和大于第三边)
  • 代码健壮性强,能处理各种边界情况

题目3:数学函数可视化

任务要求

创建正方形画布,以画布中心为原点画出坐标轴,并绘制特定参数方程曲线。

代码实现

import numpy as np
import matplotlib.pyplot as plt
import math

wh = 100  # 半宽
hh = 100  # 半高
t = np.arange(0, 2 * math.pi, 0.01)
x = (np.cos(t) + np.cos(7 * t) * 1/2 + 1/3 * np.sin(17*t)) * wh / 2
y = (np.sin(t) + 1/2 * np.sin(7 * t) + 1/3 * np.cos(17*t)) * hh / 2

plt.figure(figsize=(8, 8))
plt.plot(x, y)
plt.axis('equal')
plt.title('参数方程曲线')
plt.grid(True)
plt.show()

分析

  • 使用numpy进行高效的数学计算
  • matplotlib创建专业的可视化图表
  • 参数方程生成复杂的几何图案
  • 图形对称美观,展示数学之美

题目4:数组旋转算法

任务要求

给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。

代码实现

def rotate_array(nums, k):
    n = len(nums)
    if n == 0:  # 空数组
        return nums
    k = k % n  # 处理k大于数组长度的情况
    
    return nums[-k:] + nums[:-k]

# 测试用例
nums = [1, 2, 3, 4, 5, 6, 7]
k = 3
print(rotate_array(nums, k))

运行结果

[5, 6, 7, 1, 2, 3, 4]

分析

  • 使用切片操作高效实现数组旋转
  • 处理k大于数组长度的边界情况
  • 算法时间复杂度为O(1),空间复杂度为O(n)
  • 代码简洁高效,逻辑清晰

总结

通过这四个题目的实践,我们掌握了:

  1. 基础编程技能:函数定义、条件判断、数学运算
  2. 几何算法应用:三角形判定、面积计算
  3. 数据可视化:matplotlib图表绘制、参数方程应用
  4. 算法设计能力:数组操作、边界条件处理

这些技能构成了Python在科学计算和数据处理领域的核心能力,为后续更复杂的数据分析和机器学习项目打下坚实基础。特别是matplotlib的使用,展现了Python在数据可视化方面的强大优势,能够将抽象的数学函数转化为直观的图形展示。