小白犯的Python错误[1]

Update:C程序已经更正。(啥?第一句就错了?打脸)

 

到今天也差不多当了1个半月的码农了,作为菜鸟,自然错误是犯了很多的啦。多亏老板和负责服务端的Z帮忙,我才能把这些错误都给解决掉。下面自爆一下Python菜鸟的初级错误两则:

0与None:

0 != None,要充分认识到这点。否则就会犯下面的错误:

1
2
3
4
5
6
7
8
9
10
11
def checkItHasValue(a):
    #check whether a has a value or not.
    #If a has a value, print 'yes'.
    #Else, print 'no'
    if a:
        print "yes"
    else:
        print "no"
 
b = 0
test(b)

变量b有一个值,为0。函数checkItHasValue检查形参b是否有一个数值,显然b是有的,但if a这样的判断语句导致了错误结果的产生。所以如果是检查变量是否为None,则应该使用判断语句if a == None来检查。记住:0 != None

1 and 0 or 1:

这是一个三目运算符,但不是bool? True : False这种C语言中的运算符。(之前我一直当作bool? True : False来用。太小白了。书没看好!话说那本啥书我还没看完。打脸。)1 and 0 or 1是一个与或运算符。首先计算前面的1 and 0部分,然后用得出的结果再计算后面的x or 1部分。在C中试试这个:

1
2
3
4
5
6
7
8
#include "stdio.h"
 
main():
{
    int a = 1?0:1;
    printf("%d",a);
    return 0;
}

(在写上面一段C代码的时候我差点笑了。因为我以为写好了,然后再看了一眼,妈呀,include都没,{}都没,C那么就没碰了,果然是忘光了。另外,这段代码是否正确我也不知道,那个Visio Studio早被我卸载了,它太占地方了。看来以后还是要安装一个minGW或者Cygwin备用啊)

验证结果:

在Python中试试这个:

1 and 0 or 1

结果不同吧(Python的部分大家自己去试试啦。只要打开解析器然后打一行就出现结果了。不像C还要编译,总觉得好麻烦哦)。(C的我没验证。。。打脸)

 

Python菜鸟在这一个半月中犯的其他错误嘛,无非就是打错变量名或者漏了XXX之类的,小白啊小白。多看书才是王道!!!(我懒,就没认真看过。打脸!)