ValueError:基为10的int()的文本无效:“”python

2024-09-30 20:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

ValueError:基为10的int()的文本无效:“”

为什么在我的cgi()中包含了一个整数,而实际上呢

res12 = form.getvalue('opt_12', '')
res27 = form.getvalue('opt_27', '')
res20 = form.getvalue('opt_20', '')
res16 = form.getvalue('opt_16', '')
res13 = form.getvalue('opt_13', '')
res19 = form.getvalue('opt_19', '')
res25 = form.getvalue('opt_25', '')

actual_ans_dict = {}
count = 0
b = []
for data in prsnobj.result:
    actual_ans_dict[data[0]] = data[1]

#print actual_ans_dict[12], actual_ans_dict[27], actual_ans_dict[20],     actual_ans_dict[16], actual_ans_dict[13], actual_ans_dict[19], actual_ans_dict[25]

if int(res12) == actual_ans_dict[12]:
    count += 1
if int(res27) == actual_ans_dict[27]:
    count += 1
if int(res20) == actual_ans_dict[20]:
    count += 1
if int(res16) == actual_ans_dict[16]:
    count += 1
if int(res13) == actual_ans_dict[13]:
    count += 1
if int(res19) == actual_ans_dict[19]:
    count += 1
if int(res25) == actual_ans_dict[25]:
    count += 1
if count:
    b.append(count)

if len(b)==0:
    print "Fail"

else:
   print "Marks: ", b

Tags: formdataifcountdictintprintopt
1条回答
网友
1楼 · 发布于 2024-09-30 20:33:48

问题是因为int试图将''转换为以10为基数的数字,这是不可能的。这就是它失败的原因。如果值不是这样的话,您将得到默认值''

form.getvalue('opt_12', '')

而不是使用像这样的哨兵值

^{pr2}$

更好的是,你可以把它们转换成数字,当你从这样的表单中得到它们的时候

res12 = int(form.getvalue('opt_12', '0'))
...
...
...

相关问题 更多 >