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个空格

以上是循环的思路,而且为了对齐把“*”和一个空格,当作一个整体来看待;当然,还是那句话,这道题肯定有更简单的方法。



(待续)......




posted @ 2018-05-27 20:21  defaulttest  阅读(249)  评论(0编辑  收藏  举报