第一种情况:忘记在if,for,def,elif,else,class等声明末尾加“:”
第二种情况:使用 = 而不是 ==
开头添加 # encoding:utf-8
or
在字符串首尾忘记加引号
异常代码:
print(I have a lot of money')
num_money = '10000'
print('I have ' + num_money + yuan')
正确代码:
print('I have a lot of money')
num_money = '10000'
print('I have ' + num_money + ' yuan')
尝试使用Python关键字def作为变量名
可用以下代码获取关键字
import keyword
print(keyword.kwlist) # 获取保留字
异常代码:
def = 'yun'
正确代码:
def1 = 'yun'
不存在 ++ 或者 – 自增自减操作符
异常代码:
money = 1
money++
正确代码:
money = 1
money += 1
直接在文件头处加 # encoding:utf-8 就行了,python3.8特色
在 for 循环语句中忘记调用 len()
通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表
异常代码:
money = ['10', '20', '50']
for i in range(money):
print(money[i])
正确代码:
money = ['10', '20', '50']
for i in range(len(money)):
print(money[i])
尝试修改string的值,string是一种不可变的数据类型
异常代码:
money = 'I have a lot of money'
money[1] = 'not'
print(money)
正确代码:
money = 'I have a lot of money'
money = money[:0] + 'I not ' + money[1:]
print(money)
or
尝试连接非字符串值与字符串
异常代码:
num_money = 10
print('I have ' + num_money + ' yuan')
正确代码:
num_money = 10
print('I have ' + str(num_money) + ' yuan')
num_money = 10
print('I have %s yuan' % (num_money))
尝试使用 range()创建整数列表
有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值
异常代码:
money = range(10)
money[4] = -1
print(money)
正确代码:
money = list(range(10))
money[4] = -1
print(money)
忘记为方法的第一个参数添加self参数
异常代码:
class money():
def num_money():
print('I have a lot of money')
me = money()
me.num_money()
正确代码:
class money():
def num_money(self):
print('I have a lot of money')
me = money()
me.num_money()
引用超过list最大索引
异常代码:
money = ['10', '20', '50']
print(money[6])
正确代码:
money = ['10', '20', '50']
print(money[2])
使用不存在的字典键值
异常代码:
money = {'10': '一张', '20': '两张', '50': '三张'}
print('I have ' + money['100'] + ' qian')
正确代码:
money = {'10': '一张', '20': '两张', '50': '三张'}
print('I have ' + money['10'] + ' qian')
在一个定义新变量中使用增值操作符
异常代码:
num_money1 = 10
num_money += 20
num_money2 += 20
正确代码:
num_money1 = 10
num_money1 += 10
num_money2 = 20
num_money2 += 20
变量或者函数名拼写错误
异常代码:
money = 'qian'
print('I have a lot of ' + mone)
num_money = rangee(10)
正确代码:
money = 'qian'
print('I have a lot of ' + money)
num_money = range(10)
在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在),如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量
异常代码:
num_money = 10000
def money():
print(num_money)
num_money = 100
money()
正确代码:
num_money = 10000
def money():
print(num_money)
money()
or
or
错误的使用缩进量导致,记住缩进增加只用在已结束的语句之后,而之后必须恢复到之前的缩进格式
异常代码:
print('I have a lot of money')
print('I have a lot of money')
正确代码:
print('I have a lot of money')
print('I have a lot of money')
第一步:NoneType之所以出现是因为定义了一个变量或函数,却没有值或者返回值,因此会默认值为None
第二步:我查到使用的函数设置为没有返回值,然后赋值一个默认值none,导致下一个引用报错
方法名拼写错误
异常代码:
money = 'I have a lot of money'
money = money.lowerr()
正确代码:
money = 'I have a lot of money'
money = money.lower() # lower错误
有可能缺失vocab.txt,或者vocab.txt数据缺失,因为tokenizer的加载是需要vocab.txt的,可以将原始下载的预训练模型目录中的vocab.txt copy一份或者网上下载一份即可
仔细反省,是label,不是lable。出错就是写错了,没有其他的错误的可能,又是粗心的后果
plt.axvline(minposs, linestyle='--', color = 'r', label='Early Stopping Checkpoint')
plt.xlabel('epochs')
模块不存在,或者模块名拼写错误
异常代码:
import calc
需要卸载docx模块
pip uninstall docx
重新安装python-docx模块即可解决问题
pip install python-docx
pip install opencv-python # 如果只用主模块,使用这个命令安装
pip install opencv-contrib-python # 如果需要用主模块和contrib模块,使用这个命令安装
需要卸载pptx模块
pip uninstall pptx
重新安装python-pptx模块即可解决问题
pip install python-pptx
进入pycharm的终端,激活环境
conda activate python
pycharm终端安装pytorch_pretrained_bert
pip install pytorch_pretrained_bert==0.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
f = open('1.txt', 'r', encoding='utf-8')
方法1、将 encoding=’utf-8’ 中‘utf-8‘改为GB2312、gbk、ISO-8859-1
方法2、f = open(‘1.txt’,encoding=‘gbk’)
有可能文件路径只有bert_config.json文件没有config.json文件,那么要么更改from_pretrained方法的源代码,要么更改文件名称。建议更改文件名称尝试一下
解决办法:
点击标注的停用断点,有时候需要放大才能找到
点击之后,重新调试,问题解决
UserWarning: This overload of add_ is deprecated: add_(Number alpha, Tensor other) Consider using one of the following signatures instead: add_(Tensor other, *, Number alpha)
UserWarning: This overload of addcmul_ is deprecated: addcmul_(Number value, Tensor tensor1, Tensor tensor2) Consider using one of the following signatures instead:addcmul_(Tensor tensor1, Tensor tensor2, *, Number value)
两个警告,不影响代码运行 PyTorch版本问题
解决方法
# 改之前
next_m.mul_(beta1).add_(1 - beta1, grad)
next_v.mul_(beta2).addcmul_(1 - beta2, grad, grad)
# 改之后
next_m.mul_(beta1).add_(grad, alpha=1 - beta1)
next_v.mul_(beta2).addcmul_(grad, grad, value=1 - beta2)
后面如果出现
改之后 第一行后面为alpha 第二行为value
不然会报错
# 改之后
next_m.mul_(beta1).add_(grad, alpha=1 - beta1)
next_v.mul_(beta2).addcmul_(grad, grad, value=1 - beta2)
缺少配置参数
Pycharm的编辑设置,加上–model–model=****
我需要运行的模型为bert,因此为l–model=bert,添加之后确定即可
因为Selenium4.x的版本,已经弃用了find_element_by_xpath这样的写法,就会报错
解决方法:
find_element_by_id(‘路径’)
find_element_by_xpath(‘路径’)
find_elements_by_class_name(‘路径’)
# 把结尾的元素改写成下面的格式
find_element(By.ID, ‘路径’)
find_element(By.XPATH, ‘路径’)
find_element(By.CLASS_NAME, ‘路径’)
字面意思,没有找到django这个数据库
解决方法:mysql中新建一个django数据库
之后运行 python manage.py migrate
根据提示信息判断是说mysql server 无法识别 localhost
打开 setting.py 文件,修改 DATABASES 中的HOST的值为数据库的ip地址即可
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost' , # 把localhost 改为 127.0.0.1
'PORT': '3306',
}
}
一部分参考自:https://blog.csdn.net/libaiup/article/details/122664530?spm=1001.2014.3001.5501