def pryklad (b):
a=1
while a < 10:
print a*b
a=a+1
if __name__=="__main__":
pryklad(3)
a=pryklad(3)
value=str(a)
file=open('C:/Python27/file.txt','w+')
file.write(value)
print file
答案 0 :(得分:2)
a = pryklad(3)
会导致a
为None
,因为您的函数中没有return
语句。现在它只是打印一些数字。另外,我不确定你从print file
得到什么。
答案 1 :(得分:2)
你的程序中有很多问题
pryklad()函数未返回任何值。
您没有存储pryklad()函数的第一次调用值。
您不必使用str()将pryklad()返回的值转换为字符串。
最后一行print file
不会打印文件的实际内容。它
将打印有关file
对象的一些信息。
最后,这实际上不是一个错误,但试着遵循一些好处 编码标准,如赋予功能正确的名称(至少我 我无法理解pryklad的意思,也许是其他人 知道它的含义),
给变量赋予专有名称而不是
a
,b
使用height
,weight
之类的变量名称
猜猜但我假设你正试图测量面积
矩形)
尝试这些操作,然后您就可以在file.txt
中查看一些值答案 2 :(得分:1)
如果某个python没有具体return
,它将返回None
。
您的功能,而不是每个循环返回a*b
,打印它。该函数永远不会返回任何内容,因此返回None
。
因此当您执行a = pryklad(3)
,a is None
时。因此,您正在将"None"
写入您的文件。
您可能需要yield
。这将返回值a*b
,但函数不会中断。然后,在if __name__=="__main__":
代码块中,将a=pryklad(3)
更改为a=list(pryklad(3))
。 a
将包含while循环中每个循环的a*b
列表。
然后您可能希望将每个数字添加到文件中。在这里,使用with
语句:
with open('C:/Python27/file.txt','w+') as myfile:
for number in a:
myfile.write(str(number))
如果您想要打印文件的内容,print file
将不会这样做。您必须再次以读取模式打开文件:
with open('C:/Python27/file.txt','w+') as myfile:
print myfile.read()