我最近开始学习PYTHON,但我遇到了一些困难。
我正在尝试使用和不使用def语句从excel表中提取数据。因此,如果没有def,我将获得有效的输出,但是当我使用def语句提取数据时,我得到了#34; NONE"作为输出。请帮我解决这个问题。
book=xlrd.open_workbook("E:\\Email.xlsx")
print(book.nsheets)
SheetName =book.sheet_by_name("gmail")
rows=SheetName.nrows
cols=SheetName.ncols
print(rows)
print(cols)
#####没有定义任何功能####
table=list()
record=list()
for x in range(rows):
for y in range(cols):
record.append(SheetName.cell(x,y).value)
table.append(record)
record=[]
rows=rows+1
print(table)
O / P:[['电子邮件ID:'],[' AVVC.com'],['密码'],[' ; ABCDEFG']]WITH DEF
def getcell(rows,cols):
table=list()
record=list()
for x in range(rows):
for y in range(cols):
record.append(SheetName.cell(x,y).value)
table.append(record)
record=[]
rows=rows+1
return;
v= getcell(0,1)
print(v)
O / P:NONE
答案 0 :(得分:0)
当你在return
中呼叫function
时,它会停止执行并将其后的任何内容传回。
当你的return
之后没有任何内容时,它正在返回None
(没有)。您要做的是返回table
list
,使其工作方式与function
时的工作方式相同。此外,当return
停止执行时,它需要位于function
的最后 - for-loops
之后才能完成。
制作function
:
def getcell(rows,cols):
table=list()
record=list()
for x in range(rows):
for y in range(cols):
record.append(SheetName.cell(x,y).value)
table.append(record)
record=[]
rows=rows+1
return table