我是Python的初学者,我编写了这个简单的代码,但有一些我无法解决的错误:(
有人可以帮助我吗?
//initialization
str = None
var = None
def setvar(val):
""" Sets the global variable "var" to the value in 'val' """
if val:
print "setting variable 'var' to '$val'" // we want to print the value of 'val'
else:
print "un-setting variable 'var'"
var = val
return
if __name__ == 'main':
try:
setvar(" hello world! ") // use this function to set the 'var' variable
var.strip() // we want the leading and trailing spaces removed
print str(var)
except:
print "something went wrong"
答案 0 :(得分:4)
您的代码示例存在一些问题。
首先,假设您在提出问题时忠实地保留了缩进,那就错了。 setvar
的正文应该从def
缩进。请确保遵循PEP指南,并为每个缩进级别使用四个空格。
其次,Python中的注释标记为#
而不是//
。
接下来,如果要影响函数中的全局变量,则需要将其标记为。
第四,var.strip()
返回新值,它不会就地运行。
此外,在您运行此脚本的情况下,__name__
的值将为__main__
而不是main
。
最后,您已将str
设为空变量,因此您无法像函数一样调用它。
以下工作正常:
# initialization
var = None
def setvar(val):
""" Sets the global variable "var" to the value in 'val' """
global var
if val:
print "setting 'var' to '$val'" # we want to print the value of 'val'
else:
print "un-setting 'var'"
var = val
return
if __name__ == '__main__':
try:
setvar(" hello world! ") # use this function to set the 'var' variable
var = var.strip() # we want the leading and trailing spaces removed
print str(var)
except:
print "something went wrong"
另一件可能是也可能不是问题的事情。如果要在第一个val
语句中打印print
的值,则不要使用$val
。相反,你可以有类似的东西:
print "setting variable 'var' to '%s'"%(val)
而且,是的,我知道你不需要需要围绕一个值的括号,这只是我的编码风格,而且我必须记住一件事: - )
答案 1 :(得分:1)
例如,你不能像在Perl或PHP中那样在Python中的字符串中使用变量名。你喜欢这样:
print ("setting variable 'var' to '%s'" % val) # we want to print the value of 'val'
评论以'#'开头。