• Python新手最容易犯的十大错误


    1. 忘记写冒号
    在 ifelifelseforwhileclassdef 语句后面忘记添加“:”
    
    if spam == 42
        print('Hello!')
    2. 误用 “=” 做等值比较
    
    “=”是给变量赋值,“==”才是判断两个值是否相等:
    
    score = 60
    if score = 60:
        print ('passed')
    改正:
    
    score = 60
    if score == 60:
        print ('passed')
    3. 变量没有定义:
    
    if age >= 18:
        print ('adult')
    print ('END')
    会导致:NameError: name ‘age’ is not defined.
    
    改正:
    
    age = 20
    if age >= 18:
        print ('adult')
    print ('END')
    4. 字符串与非字符串连接
    
    错误:
    
    num = 12
    print('I have ' + num+ ' apples.')
    非字符串和字符串连接的时候,要将非字符串转换为字符串类型之后才能连接,改正:
    
    num = 12
    print('I have ' + str(num)+ ' apples.')
    5. 列表的索引位置
    
    习惯性地认为列表元素的位置是从1开始的:
    
    spam = ['cat', 'dog', 'mouse']
    print(spam[3])
    列表元素的位置是从0开始的,所以第3个元素“mouse”的索引位置是2,改正:
    
    spam = ['cat', 'dog', 'mouse']
    print(spam[2])
    6. 使用自增 “++” 自减 “—”
    
    学过c语言或者Java的人会很习惯使用i++或者i—,但在Python中是没有自增自减操作符的:
    
    spam = 0
    spam++
    这时可以使用 “+=” 来代替 “++”,改正:
    
    spam = 0
    spam += 1
    7. 使用关键字命名变量
    
    Python 3中一共33个关键字:
    
    False,None,True,and,as,assertbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambda,nonlocal,notorpassraisereturntrywhile,with,yield
    
    自定义变量时,变量名不能和这些关键字重复。
    
    8. 索引元素位置时忘记调用 len 方法
    
    通过索引位置来获取列表元素时,忘记要先使用 len 函数来获取列表的长度:
    
    fam = ['dad', 'mom', 'son']
    
    for i in range(fam):
    
    print(fam[i])
    改正:
    
    fam = ['dad', 'mom', 'son']
    
    for i in range(len(fam)):
    
    print(fam[i])
    9. 函数中的局部变量赋值前被使用
    
    num = 42
    
    def myFunction():
        print(num)
        num = 100
    
    myFunction()
    第一行定义了一个全局变量num,同时函数myFunction( )也定义了一个同名的局部变量,但程序执行时是先查找局部变量的,所以在函数中找到num之后就不到外部查找了,此时就会出现print的时候变量num还没赋值的错误。
    
    10. 缩进问题
    
    和其他语言的语法最大的不同就是,Python不能用括号来表示语句块,也不能用开始或结束标志符来表示,而是靠缩进来区分代码块的。
    
    常见的错误用法:
    
    (1print('Hello')
        print('World!')
    错误是第二行的缩进会导致两个print语句是包含和被包含的关系,但他们两者是属于同一个代码块的,所以应该写成;
    
    print('Hello')
    print('World!')
    (2if spam == 42:
        print('Hello')
      print('World!')
    错误是第三行的缩进,改正的方法有两种,一是如果两个print语句是属于同一代码块的,应该改正为
    
    if spam == 42:
        print('Hello')
        print('World!')
    二是如果第三行的print语句是和if语句是同一级的,则改正为
    
    if spam == 42:
        print('Hello')
    
    print('World!')
    (3)在Python 3中,缩进的时候,不能Tab和空格混用,每个缩进层次应该选择只使用Tab或者只使用空格。
    优秀的人都那么努力,你有什么理由不拼命努力!
  • 相关阅读:
    问题001:Java软件,属于系统软件还是应用软件呢?
    Apache.Tomcat 调用Servlet原理之Class类的反射机制,用orc类解释
    CharSquence 接口的作用,多态以增强String
    eclipse环境Dynamic web module version 3.1版本的进步,简化Dynamic web object 中Servlet类的配置,不用web.xml配置<Servlet>
    tomcat.apache startup.bat闪退两种解决方法
    c++谭浩强教材教学练习例题1.2 求两数之和 为什么sum=a+b;sum的值为65538
    JSON格式自动解析遇到的调用方法问题.fromJson() ..readValue()
    shell command to replace UltraEdit
    根据内容最后一位进行排序
    利用left join 筛选B表中不包含A表记录
  • 原文地址:https://www.cnblogs.com/hellohorld/p/9709011.html
Copyright © 2020-2023  润新知