我想定义一个函数,它接受用户的输入,返回输入字符串的长度并将其打印出来。
我有以下代码:
def str_length(my_string):
my_string = input("give me a string: ")
return len(my_string)
print(str_length(my_string))
此代码不起作用。当我将最后一行中的参数交换为“hello”时,代码有效。
def str_length(my_string):
my_string = input("give me a string: ")
return len(my_string)
print(str_length("hello"))
谁能向我解释为什么第一个代码不起作用而第二个代码起作用?我完全糊涂了:-(
你应该这样定义它:
def str_length():
my_string = input("give me a string: ")
return len(my_string)
print(str_length())
当您使用my_string
get调用该函数时,NameError
因为还没有my_string
定义。你在函数内部定义它。(在你调用它之后)。这就是原因。
感谢@prashantrana,您还可以像这样定义您的函数:
def str_length(my_string):
return len(my_string)
my_string = input("give me a string: ")
print(str_length(my_string))
这里的区别在于我们从函数范围之外获取用户的输入,并将其传递给函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句