python常见报错!!!!!看见报错都头大。。。拿个本本记下来(python3.7)

1、报错:

inconsistent use of tabs and spaces in indentation

问题原因:你的代码中有空格和tab混用
解决:自己吧缩进重新整一下
2、语法报错:

invalid syntax

解决办法:查看系统给你标记的地方,我这里是没写冒号。
在这里插入图片描述
3、expected an indented block
错误:缩进错误: 期望一个缩进的块
就是没有遵守人家的缩进规则
比如下面,就是函数写完,冒号回车自动空格,我顶格了。

def hanshu():

temp = input('请输入一句话:')
length = len(temp)
x = length//2
for i in range(i,length):
    
    for j in range(0,i):
        
        if temp[i] == temp[j]:
            print("是回联文")
        else:
            print("bu是回联文")

改成如下就可以了:

def hanshu():

    temp = input('请输入一句话:')
    length = len(temp)
    x = length//2
    for i in range(i,length):
        
        for j in range(0,i):
            
            if temp[i] == temp[j]:
                print("是回联文")
            else:
                print("bu是回联文")

4、变量调用有问题,就是全局变量的毛病

local variable 'var' referenced before assignment

举例:

def outside():
    var = 5
    def inside():
        print(var)
        var = 3
        
    inside()
outside()

改成:

def outside():
    var = 5
    def inside():
        nonlocal var
        print(var)
        var = 3
        
    inside()
outside()

5、print()函数报错:传参问题

File "D:/untitled/36_.py", line 27, in setRect
    print("这个矩阵的长是%c,宽是:%c" % long,wide)
TypeError: not enough arguments for format string

我的出错那块的代码修改为以下就好了,加括号:

print("这个矩阵的长是%c,宽是:%c" % (long,wide))

6、
报错内容:

TypeError: getName() missing 1 required positional argument: 'name'

我的代码:

>>> class Person:
	__name = "xiaojiayu"
	def getName(self):
		return self.__name

	
>>> b.getName()
Traceback (most recent call last):
  File "<pyshell#72>", line 1, in <module>
    b.getName()
TypeError: getName() missing 1 required positional argument: 'name'

我的解决办法:

>>> class Person:
	__name = "xiaojiayu"
	def getName(self):
		return self.__name

	
>>> b = Person() #就是这一行不可以省略,不然它不认识b是谁
>>> b.getName()
'xiaojiayu'

7、当你明明引入了time模块,但是她就是不认识localtime()这个BIF。。。
报错内容:

  File "D:/untitled/44_.py", line 17, in start
    self.begin = t.localtime()
AttributeError: 'Mytimer' object has no attribute 'localtime'

我的代码是这样的:

#计时器
import time as t
class Mytimer:
    def __init__(self):
        self.unit = ['年','月','日','时','分','秒']
        self.prompt = "未开始计时"
        self.begin = 0
        self.end = 0
        self.lasted = []
        
    def __str__(self):
        return self.prompt
    
    def start(self):
        self.begin = t.localtime()
        print("计时开始")
        
    def stop(self):
        self.end = t.localtime()
        
        self.__calc()
        print("计时停止")
    def __calc(self):
        self.lasted = []
        self.prompt = "总共运行了:"
        for index in range(6):
            
            self.lasted.append(self.end[index] - self.begin[index])
            self.prompt += str(self.lasted[index])
            if lasted[index]:
                self.prompt += (str(self.lasted[index]-self.begin[index]))

我觉得没问题啊。。。。。。。对不对,我引入了time模块啊
于是我改成这样就没问题了,就是不要把import time as t改成import time

#计时器
import time 
class Mytimer:
    def __init__(self):
        self.unit = ['年','月','日','时','分','秒']
        self.prompt = "未开始计时"
        self.begin = 0
        self.end = 0
        self.lasted = []
        
    def __str__(self):
        return self.prompt
    
    def start(self):
        self.begin = time.localtime()
        print("计时开始")
        
    def stop(self):
        self.end = time.localtime()
        
        self.__calc()
        print("计时停止")
    def __calc(self):
        self.lasted = []
        self.prompt = "总共运行了:"
        for index in range(6):
            
            self.lasted.append(self.end[index] - self.begin[index])
            self.prompt += str(self.lasted[index])
            if lasted[index]:
                self.prompt += (str(self.lasted[index]-self.begin[index]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值