进入专升本后的第一个学年,课业并不轻松,眨眼马上又要就业了。为了能轻松拿下蓝桥杯,我选择了有些基础的 Python,主打一个性价比,不再想花大量时间去折腾 C++ 的环境配置和复杂语法。
我的整体备考路线很明确:先把洛谷题单的 1-6(顺序、分支、循环、数组、字符串、函数)刷完打好底子,再去刷蓝桥云课里的 500 道真题冲刺。
今天花了 3 个小时,顺利通关了洛谷的【入门 1:顺序结构】。题目虽然基础,但真动手敲起来,还是遇到了不少 Python 独有的“坑”和数据处理细节。为了方便日后复习,特将今天的踩坑实录和总结出的语法模板整理成这篇笔记。
在解 P5708 【三角形面积】时,题目给的海伦公式是 √[p(p-a)(p-b)(p-c)]。我按数学直觉,随手就写成了
"p(p - a)"。
结果 Python 直接报错:
"TypeError: 'float' object is not callable"。
原来,Python 不认识代数里省略的乘号,它会以为
"p" 是一个函数并试图调用它。必须老老实实加上乘号,写成
"p * (p - a)"。
做 P1425 【小鱼游泳时间】时,计算时间差。我心想,把小时乘以 60 不就成分钟了?于是写了
"a, b, c, d = input().split()",然后直接用
"c * 60" 参与计算。
终端瞬间输出一堆乱码:
"1919191919..."
这才想起来,
"split()" 切出来的默认全是字符串!在 Python 里,字符串乘以数字等于重复 N 遍。做计算前,必须先用
"map(int, ...)" 转成整数。
做 B2029 【大象喝水】时卡壳了。
第一,愣是没想起圆柱体积公式是 πr²h。
第二,题目说大象喝 20 升水,但水桶尺寸单位是厘米。我完全忘了 1 升 = 1000 立方厘米 这个换算关系,还在那儿想半天。
遇到一道题让我输出大写字母。我第一反应竟然是去查 ASCII 码,想用 print(chr(ord(input())+32)) 这种绕弯子的方法。
其实,Python 中没有单独的 char 类型,所有单个字符都是长度为1的字符串。所以转换大小写,直接用字符串的 .upper() 或 .lower() 方法才是正解,比如 input().strip().upper() ,简洁又直接。以后这类题就别老想着去换算 Unicode 了。
针对这次刷题,我重新梳理了以下核心语法点,堪称“速查字典”。
今天算是为备考开了个好头,虽然只是顺序结构,但巩固基础、熟悉 Python“脾气”的过程必不可少。接下来就要挑战“分支结构”了,继续加油。