我的Python第二周作业|列表操作+数值计算实战,基础语法全掌握


第二周的Python学习聚焦列表核心操作简单数值计算,从列表的增删改查、切片排序,到公式转化、物理运动计算,把基础语法和实际应用结合了起来。这次作业覆盖了Python列表的高频用法和数值运算的基本思路,踩了几个小语法坑,也理清了基础编程的逻辑,今天把完整作业代码+详细解析整理出来,既是复盘也是分享~

一、列表核心操作篇

这部分作业围绕Python列表的增、删、改、查、排序、嵌套等核心用法展开,是Python基础中最常用的知识点,每道题都是实际编程中会遇到的基础场景,先上完整代码,再做逐题解析。

列表操作完整代码

# 1. 列表取值、增删元素
offer_list=['Allen','Tom']
print(offer_list[0]+", you have passed our interview and will soon become a member of our company.")
print(offer_list[1]+", you have passed our interview and will soon become a member of our company.")
print(offer_list[0]+", welcome to join us!")
offer_list.pop()  # 删除最后一个元素
offer_list.append('Andy')  # 末尾添加元素
print(offer_list[1]+", welcome to join us!")

# 2. 输入内容转为列表(默认字符串类型)
shuju=list(input().split())
print(shuju)

# 3. 输入字符串列表转为整数列表
shuju=list(input().split())
shuju1=[]
for i in shuju:
    shuju1.append(int(i))
print(shuju1)

# 4. 统计输入列表的元素个数
zi=input().split()
print(len(zi))

# 5. 列表末尾追加指定元素
mingdan=input().split()
mingdan.append('Allen')
print(mingdan)

# 6. 列表拼接(指定元素在前,输入元素在后)
mingdan=input().split()
mingda=[]
mingda.append('Allen')
mingda=mingda+mingdan
print(mingda)

# 7. 删除列表第一个元素
ls=input().split()
ls.pop(0)
print(ls)

# 8. 删除列表中指定元素
ls=input().split()
a=input()
ls.remove(a)
print(ls)

# 9. 连续删除列表最后三个元素
ls=input().split()
ls.pop()
ls.pop()
ls.pop()
print(ls)

# 10. 列表排序(sorted函数与sort方法的区别)
my_list=['P','y','t','h','o','n']
ls=[]
ls=sorted(my_list)  # sorted函数:不修改原列表,返回新的排序列表
print(ls)
print(my_list)
my_list.sort(reverse=True)  # sort方法:直接修改原列表,reverse=True表示降序
print(my_list)

# 11. 列表反转
num = [3, 5, 9, 0, 1, 9, 0, 3]
num.reverse()  # 直接反转原列表
print(num)

# 12. 列表嵌套(多维列表)
name=['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']
foods=['pizza', 'fish', 'potato', 'beef']
number=[3, 6, 0, 3]
friends=[]
friends.append(name)
friends.append(foods)
friends.append(number)
print(friends)

# 13. 列表元素数值运算+位置交换
a = input()
b = []
for i in range(len(a)):
    x = (int(a[i])+3)%9
    b.append(x)
b[0], b[2] = b[2], b[0]  # 交换索引0和2的元素
b[1], b[3] = b[3], b[1]  # 交换索引1和3的元素
for i in b:
    print(i, end="")  # 无换行输出

# 14. 栈模拟(列表pop()+append())
stack = [1, 2, 3, 4, 5]
a=int(input())
stack.pop()
print(stack)
stack.pop()
print(stack)
stack.append(a)
print(stack)

# 15. 队列模拟(列表pop(0)+append())
queue = [1, 2, 3, 4, 5]
a=input()
queue.pop(0)
print(queue)
queue.pop(0)
print(queue)
queue.append(int(a))
print(queue)

# 16. 列表切片(左闭右开原则)
group_list=['Tom', 'Allen', 'Jane', 'William', 'Tony' ]
a=[]
a=group_list[0:2]  # 取索引0、1的元素
print(a)
a=group_list[1:4]  # 取索引1、2、3的元素
print(a)
a=group_list[3:]   # 取索引3到末尾的所有元素
print(a)

核心知识点解析

  1. 列表增删append()(末尾追加)、pop()(默认删最后一个,传参删指定索引)、remove()(删指定元素)是三大高频方法,注意remove()只删第一个匹配的元素;
  2. 类型转换input().split()获取的是字符串列表,需通过循环+int()/float()转为数值列表,这是处理输入数值的基础操作;
  3. 排序区别sorted(列表)不修改原列表,返回新列表;列表.sort()直接修改原列表reverse=True可实现降序,日常使用要根据需求选择;
  4. 切片规则:Python列表切片遵循左闭右开[a:b]取索引ab-1的元素,[a:]a到末尾,[:b]取开头到b-1
  5. 模拟栈/队列:栈是「后进先出」,用pop()+append()实现;队列是「先进先出」,用pop(0)+append()实现;
  6. 列表嵌套:将多个列表作为元素加入另一个列表,形成二维/多维列表,是处理结构化数据的基础;
  7. 元素交换:Python支持直接a, b = b, a交换两个变量/列表元素,无需临时变量,简洁高效。

二、数值计算篇

这部分作业结合数学公式物理运动模型,考查Python的数值运算、数学库调用、格式化输出,涉及小球抛体运动、温度转换、落体运动等场景,重点掌握公式转代码math库使用格式化打印这三个点。

数值计算完整代码

# 1. 计算小球上抛的高度
v0 = 25     # 小球上抛的初速度
g = 9.8     # 地球重力加速度
t = int(input())
h=25*t-(0.5*g*t*t)
print(h)

# 2. 华氏温度转摄氏温度,格式化输出
F = float(input())    # 华氏温度
c=(F-32)*5/9
print("华氏%.2f度=摄氏%.2f度"%(F,c))

# 3. 小球阻力落体运动:速度+位置计算(调用math库)
import math
g = 9.8   # 单位:米/秒平方,重力加速度
m = 0.25  # 单位:千克
u = 0.5
t = int(input()) # 单位:秒
a=math.sqrt(m*g/u)
b=math.tanh(a*t)
v=a*b
print("当t=%d秒时,速度v=%.2f米/秒"%(t,v))
a=math.sqrt(u*g/m)*t
b=math.cosh(a)
x=m/u*math.log(b)
print("%d秒后,小球位置为向下%.2f米"%(t,x))

# 4. 小球向上斜抛的高度计算
import math
theta = int(input())  # 单位:角度
g=9.8
v0_kmh=25
v = v0_kmh * 1000 / 3600  # 千米/小时转米/秒
theta = math.radians(theta)  # 角度转弧度(math库三角函数需弧度值)
y=1.0
x=0.5
a=(g*x*x)/(2*v*v*math.cos(theta)*math.cos(theta))
y=x*math.tan(theta)-a+y
print("y值计算结果为:%.5f米"%(y))

核心知识点解析

  1. 公式转代码:把数学/物理公式直接转化为Python表达式,注意运算优先级(乘方用**、乘除优先于加减),比如小球上抛高度公式$h=v_0t-\frac{1}{2}gt^2$,直接对应h=25*t-(0.5*g*t*t)
  2. 单位转换:编程中要注意单位统一,比如千米/小时转米/秒:v0_kmh * 1000 / 3600,角度转弧度用math.radians(角度)(math库的三角函数仅支持弧度);
  3. math库使用:Python内置math库提供常用数学函数,如math.sqrt()(开平方)、math.tanh()(双曲正切)、math.cos()(余弦)、math.log()(自然对数),使用前需用import math导入;
  4. 格式化输出
    • %.2f表示保留2位小数,%.5f保留5位小数,%d表示整数;
    • 格式符与变量一一对应,如"华氏%.2f度=摄氏%.2f度"%(F,c),适合固定格式的结果输出;
  5. 输入处理:根据需求用int(input())(整数输入)或float(input())(浮点数输入),避免类型不匹配报错。

三、作业复盘:新手易踩的小坑

  1. 忘记导入库:使用math库函数时,容易漏掉import math,导致运行报错;
  2. 类型不匹配:直接对input().split()的结果做数值运算,忽略其是字符串类型,需先转换;
  3. 切片/索引越界:操作列表时,索引超出列表长度,或切片的起始值大于结束值,导致IndexError
  4. sorted与sort混淆:误以为sorted()会修改原列表,实际它是返回新列表,而sort()无返回值,直接修改原列表;
  5. 角度与弧度混淆:使用math库三角函数时,直接传入角度值,忘记转换为弧度,导致计算结果错误。

四、学习小结

第二周的作业让我彻底掌握了Python列表的基础操作,也理解了「语法为应用服务」的思路——列表的增删改查不只是单纯的语法,更是为了处理实际的输入数据、结构化数据;数值计算也不是简单的套公式,而是要注意单位统一、库的调用、结果的格式化输出。

Python的基础学习重在多敲代码、多踩坑、多复盘,每一个小语法点都可能在实际编程中起到关键作用,接下来会继续巩固基础,向更复杂的编程场景迈进~


C语言实战|电影票房管理系统(完整可运行版)|逐行解析+新手友好

华北电力大学北京校部2025年高校专项计划录取分数统计 | 各省物理类/综合改革分数线汇总

评 论