Python学习过程中那些很重要有容易忽略的细节
# 本文我将持续更新和补充,可以收藏。
# 主要记录:开发过程中程序不报错但是逻辑存在问题的;逻辑会报错但是(太简单)不太会去优先测试的;及其他各种……
# 当下比较粗糙,以后积累到一定数量,希望能做成一个手册。
1.中英文标点符号错误,尤其引号,逗号,冒号是否落下,是否错误。 尤其在input函数、正则表达式中等。(这个排第一,不接受反驳,2333)
2.多分支(if...elif...elif...else...)结构中,各分支条件之间的覆盖关系,变量取值之间的覆盖关系。程序可运行但是不正确。
3. 这种小题目,有时候突然就有新思路。之前一直笨笨的去找,比如求 百位数,我会写成: b = (num % 10000)%1000 //100 ... 差点被绕进去了。
# 5、通过键盘输入一个5位数,判断它是不是回文数。提示:12321是回文数,个位与万位相同,十位 # 与千位相同。 num = int(input("输入五位数:")) w = num // 10000 q = (num % 10000) // 1000 b = (num % 1000) // 100 s = (num % 100) // 10 g = num % 10 if w == g and q == s: print("回文数") else: print("不是回文数")
4.while循环语句,容易漏掉条件初始化(i=0),或者最后条件计数器忘记写,造成死循环。在循环嵌套和循环分支嵌套等较为复杂语句的时候,还要注意 多条件计时器的位置,起始值,包含关系。尤其,再加入 break、continue等关键字后,更要注意。
5.关系运算符中间是不能有空格的额,比如“<=”,尤其在习惯PEP8的格式但是又不是很准确的时候 ,容易习惯性的在“+” 等后面加一个空格,写成“+ =”,造成语法错误。
6./除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数: 9/3 = 3.0 地板除,两个整数的除法仍然是整数 10//3 = 3
7.题目:使用while循环输出如下图形:(必须使用双重while循环实现)
*
* *
* * *
* * * *
* * * * *
对于强迫来说,一家人必须要整整齐齐,哈哈没配图尴尬了。
i = j = 1 while i <= 5: while j <= i: print(" " * (5-i), end="") print("* " * i, end="") print(" " * (5-i), end="") j += 1 print() i += 1
其实重点是要强调的一种思维是:
#1 4个空格 + 1个“* + 空格” + 4个空格
#2 3个空格 + 2个“* + 空格” + 3个空格
#3 2个空格 + 3个“* + 空格” + 2个空格
#4 1个空格 + 4个“* + 空格” + 1个空格
#5 0个空格 + 5个“* + 空格” + 0个空格
以上是循环的思路,而且为了对齐把“*”和一个空格,当作一个整体来看待;当然,还是那句话,这道题肯定有更简单的方法。
(待续)......