文件名与要引用的包名同名

比如你要引用requests,但是自己给自己的文件起名也叫requests.py,这样执行下面代码

import requests
requests.get('http://www.baidu.com')

就会报如下错误

AttributeError: module 'requests' has no attribute 'get'

解决方法是给你的python文件名换个名字,只要不和包名相同就行,如果实在不想改文件名,可以用下面的办法

import sys
_cpath_ = sys.path[0]
print(sys.path)
print(_cpath_)
sys.path.remove(_cpath_)
import requests
sys.path.insert(0, _cpath_)

requests.get('http://www.baidu.com')

主要原理是将当前目录排除在python运行是的查找目录,这种处理后在命令行执行python requests.py是可以正常运行的,但是在pycharm里调试和运行通不过。

格式不对齐的问题

下面是一段正常代码

def fun():
    a=1
    b=2
    if a>b:
        print("a")  
    else:
        print("b")

fun()

1.如果else不对齐

def fun():
    a=1
    b=2
    if a>b:
        print("a")  
     else:
        print("b")

fun()

就会报

IndentationError: unindent does not match any outer indentation level

2.如果else和if没有成对出现,比如直接写一个else或者多写了一个else,或者if和else后面的冒号漏写

def fun():
    a=1
    b=2
    else:
        print("b")

fun()

def fun():
    a=1
    b=2
    if a>b:
        print("a")
    else:
        print("b")
    else:
        print("b")

fun()

def fun():
    a=1
    b=2
    if a>b:
        print("a")
    else
        print("b")

fun()

都会报

SyntaxError: invalid syntax

3.如果if和else下面的语句没有缩进

def fun():
    a=1
    b=2
    if a>b:
    print("a")
    else:
    print("b")

fun()

就会报

IndentationError: expected an indented block

字符串使用中文的引号

比如下面用中文引号

print(“a”)

就会报

SyntaxError: invalid character in identifier

正确的方式是使用英文的单引号或者双引号

print('b')
print("b")