python not readable_Python 中常见错误总结

IndentationError: unexpected indent

Python 中强制缩进,, IndentationError: unexpected indent 缩进错误

这类错误非常常见,一般都是由于tab在不同的平台上占用长度不同导致,有些事程序员自己直接使用空格或其他来顶替tab。

解决办法非常简单,在所在平台上使用标准的tab进行缩进,就OK了。

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 106: illegal multibyte sequence

编码错误,可以通过指定字符集解决 : encoding = “utf-8”

io.UnsupportedOperation: not readable

文件不可读,可能是文件打开模式不对

UnboundLocalError:localvariable 'a'referenced before assignment

局部作用域引用错误,可能原因是 a变量为局部变量,未定义,不可修改

no module named wx

缺少wx模块,缺啥装啥...

sudo apt-get install python-wxtools

SystemError: cannot compile ‘Python.h’

没法解析Python的头文件,解决方法:

#先更新下源

sudo apt-get update#安装python-dev

sudo apt-get install python-dev

NameError: name ‘xrange’ is not defined

python版本问题,不兼容,python3版本的换成range()函数就行了。

ameError: global name ‘time’ is not defined

解决方法:import time

NameError: global name ‘datetime’ is not defined

解决方法: from datetime import datetime

typeError: not all arguments converted during string formatting

TypeError: load() got an unexpected keyword argument 'delimiter'

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 33: invalid start byte

编码错误,基本是由中文引起的(中文路径、中文编码)

ImportError: cannot import name 'Flask'

原因之一:当前路径名取了一个“ flask ”(当前文件名为flask)

AttributeError: 'dict' object has no attribute 'has_key'

Python3以后删除了has_key()方法!python2中可以。

解决方法:

ifadict.has_key(key1):#改为

if key1 in adict:

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

TypeError: object of type 'map' has no len()

ZeroDivisionError: float division by zero

map函数后 返回

map(function, iterable, ......)

Python 2.x 返回列表。

Python 3.x 返回迭代器。 只用将iterator 转换成 list 即可, 比如  list(map())

TypeError: 'int' object is not iterable

不能直接用int进行迭代

报错代码:

list(map(frozenset, C1)) #对每一个元素 frozenset

问题在于:map这个函数的第二个参数要求可以迭代,C1里面的元素也得可以迭代。C1这个列表的每个元素都是int,不可迭代,应该也是list才行;

解决代码:

C1.append([item]) #注意!!!item一定要加中括号,代表列表; 不然C1的元素是int,int是不可迭代的;执行list(map(frozenset, C1))会报错。

_tkinter.TclError: unknown option "-lable"

一般是参数的名称出现错误

TypeError: select_algorithm() takes 0 positional arguments but 1 was given

错误出现在tkinter,为combobox添加选择事件

解决方法: 为函数添加参数*args

5cfd42939631e8b5a83c1fe4513a5a39f9f.jpg

21f9c79cc27482c8f4817da64544d8dfce3.jpg

def select_algorithm(*args): #为函数添加参数*args

globalalgo_selected

algo_selected=algorithm_combobox.get()print(algo_selected)

View Code

ModuleNotFoundError: No module named 'cPickle'

原因:python2有cPickle,但是在python3下,是没有cPickle的;

解决办法:将cPickle改为pickle即可

TypeError: getOpenFileName(parent: QWidget = None, caption: object = '', directory: object = '', filter: object = '', options: QFileDialog.Options = 0): argument 1 has unexpected type 'str'

#argument 1 是指第一个参数#它的意思是第一个参数不应该是str,所以查一下这个函数的几个参数就好了#其实是因为缺少第一个参数

filename= QFileDialog.getOpenFileName(None, 'Open File','/') #第三个参数是默认打开路径,如果为空则打开当前路径

No module named 'sklearn.lda'

#from sklearn.lda import LDA 这是sklearn0.16的写法,之后的版本没有了lda 可以查一下sklearn各个版本的API#参考链接: https://stackoverflow.com/questions/46775155/no-module-named-sklearn-lda#为了代码的最少更改,可以如下解决:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA

ValueError: too many values to unpack

#参考链接:http://leonzhan.iteye.com/blog/1720315#上述链接中说:这种错误是指一个tuple值赋给一个tuple变量时,变量个数不够造成的。如:#a, b = (1, 2, 3)

#我的错误代码:

X, y =FileOpener.load_file(filename)#这里的问题是: load_file返回了三个值 X, y, dataset, 所以再加一个值来接收,改为如下代码:

X, y,dataset = FileOpener.load_file(filename)

未完待续...................................................................................................................................................................................................................................................................................

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来为您介绍一个简单的 Python Web 框架,它类似于 Django,名字叫做 MiniWeb。 MiniWeb 实现了一个基本的 Web 框架功能,包括 URL 路由、请求处理、模板渲染等。下面是 MiniWeb 的代码示例: ```python # 引入必要的库 import re import os import sys import time import socket import select # 定义 MiniWeb 类 class MiniWeb: # 初始化方法 def __init__(self, host='', port=80): self.host = host self.port = port self.routes = [] # 添加路由方法 def route(self, pattern): def decorator(handler): self.routes.append((re.compile(pattern), handler)) return handler return decorator # 处理请求方法 def handle_request(self, request): # 提取请求方法和路径 method, path, _ = request.split(' ', 2) # 遍历路由规则 for pattern, handler in self.routes: # 如果路径匹配路由规则,则调用对应的处理函数 if pattern.match(path): return handler(request) # 如果没有匹配的路由规则,则返回 404 错误 return 'HTTP/1.1 404 Not Found\r\n\r\n' # 运行框架方法 def run(self): # 创建套接字并绑定地址 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((self.host, self.port)) server_socket.listen(5) # 循环等待客户端连接 while True: # 使用 select 函数监听套接字 readable, _, _ = select.select([server_socket], [], [], 1) if readable: # 接受客户端连接并处理请求 client_socket, client_address = server_socket.accept() request = client_socket.recv(1024).decode() response = self.handle_request(request) client_socket.sendall(response.encode()) client_socket.close() # 定义路由处理函数 web = MiniWeb() @web.route('^/$') def index(request): return 'HTTP/1.1 200 OK\r\n\r\nHello, World!' @web.route('^/hello/(.*)$') def hello(request): name = request.split('/')[2] return f'HTTP/1.1 200 OK\r\n\r\nHello, {name}!' # 运行框架 if __name__ == '__main__': web.run() ``` 以上是 MiniWeb 的代码示例,您可以通过调用 `route` 方法来添加路由规则,然后编写对应的路由处理函数。当客户端发起请求时,MiniWeb 会根据路由规则来调用对应的路由处理函数,并返回处理结果。 当然,MiniWeb 还需要进一步的完善和优化,例如添加静态文件处理、错误处理、间件等功能。但它足以作为一个简单的 Python Web 框架示例,帮助您更好地理解 Web 框架的实现原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值