当我运行该函数时,我不明白传递的变量是如何变化的。这些值最初设置为None,因为我希望一旦我运行该函数它们就会改变,但没有任何反应。所以我显然做错了什么。我对Python很新,并且会喜欢一些帮助。
def askUser(number_STRING, digits, array_NUM, chars):
print ("NOTE: Program can only convert mm, cm, m, and km")
number_STRING = raw_input("Type the number (9KM, 30M exactly like
that) you would like to convert to centimeters.")
digits = int(filter(str.isdigit, number_STRING))
array_NUM = len([c for c in number_STRING if c.isdigit()])
chars = str(number_STRING[array_NUM:])
def main():
number_STRING = None
digits = None
array_NUM = None
chars = None
askUser(number_STRING, digits, array_NUM, chars)
print chars
print array_NUM
print digits
main()
答案 0 :(得分:0)
在函数中,变量是作为局部变量的treatet。声明全局变量使用global
语法
e.g。
def a(b):
global c
c = c + b
答案 1 :(得分:0)
How do I pass a variable by reference?
我强烈建议您阅读this article about python "names" vs other languages' variables。它应该可以帮助您避免将来出现类似的问题。