我是Python新手。我想调用一个函数来检测excel表中的空值并将“Fail”传递给变量stat。
def checkBlank(tb):
book=xlrd.open_workbook(reportFile)
sheet = book.sheet_by_name(tb)
s= "Pass"
for i in range(sheet.nrows):
row = sheet.row_values(i)
for cell in row:
if cell =='':
s="Fail"
return s
print checkBlank('Sheet1')
以上代码将返回“失败” 但是下面的代码将给出:NameError:名称'stat'未定义
def checkBlank(tb,stat):
book=xlrd.open_workbook(reportFile)
sheet = book.sheet_by_name(tb)
s= "Pass"
for i in range(sheet.nrows):
row = sheet.row_values(i)
for cell in row:
if cell =='':
s="Fail"
print checkBlank('Sheet1', stat)
print stat
如果函数找到空单元格,如何为stat分配“Fail”?
答案 0 :(得分:1)
您似乎正在尝试将变量传递给函数以用作返回值。这不是Pythonic,一般不会起作用。相反,你的函数应该返回一个值,你应该将该值赋给一个新的“变量”。
delete
在Python中,你不想尝试编写一个通过引用调用的函数,因为Python中的变量不像它们在C中那样存在。相反,我们拥有的是名称更类似于占位符,可用于检索对象。 This article和许多其他Stack Overflow答案更深入地探讨了这一点。