我是Python新手,我只是在练习。我写了一些基本代码,要求用户输入数字9次,然后根据>输出True或False; 100或者< 100.
此代码可以正常工作:
list_1 = []
count = 0
while count < 10:
text = int(input('list a number:'))
if text < 100:
list_1.append(True)
else:
list_1.append(False)
count = count + 1
print(list_1)
现在我想将其转换为函数(使用For循环代替不同的东西)。我尝试了几个版本并且无法获得它,当我运行它时没有任何反应:
def foo():
list_1 = []
text = int(input('list a number:'))
for x in range(10):
if text > 100:
list_1.append(True)
else:
list_1.append(False)
return()
2个问题:
如何编写该函数以使其实际有用并返回True或False?
有人能告诉我一个基本的例子,说明在这个例子中使用函数是否值得?我怎么能将它与第一段代码分开,以便它以不同的方式实际有用呢?
我想从编写代码片段开始,以更有效的方式组织代码
由于
答案 0 :(得分:1)
您可以使用几乎无限的方式来使用功能。您决定的主要驱动因素是您是否可以重用功能或是否简化了代码。所以从本质上讲,我可以将它构建成一个构建块是你应该问自己的问题。
因此,在您的示例中,假设您必须在几种不同的场景中进行输入,或者您必须评估多个列表并提供打印输出。
您可以根据以下内容分开:
def take_input(list):
count = 0
while count < 5:
inputlist.append(int(input('list a number:')))
count += 1
def print_output(list):
outputlist = []
for input in list:
if input < 100:
outputlist.append(True)
else:
outputlist.append(False)
print(outputlist)
inputlist = []
take_input(inputlist)
print_output(inputlist)
答案 1 :(得分:1)
您的foo()
返回值似乎有误。
确保从功能中返回列表。例如:
def foo():
list_1 = []
for x in range(10):
text = int(input('list a number:'))#this should be inside the loop
if text > 100:
list_1.append(True)
else:
list_1.append(False)
return(list_1) #you are passing list_1 after your for loop
bool_list = foo() #will pass return value in function
#print(list_1) this will throw an error!
print(bool_list) #bool_list was list_1 in foo()
阅读命名空间,这对理解功能至关重要。当你启动foo()
时,它会运行自己的代码,但是如果你没有传递带有返回值的对象,你就不能在其他地方使用它。
对于维护良好的代码,函数是绝对必要的。无论何时重复执行操作,功能都会减少不必要的代码行。当相同的操作需要多次运行但方式略有不同时,它们还提供多功能性。例如,您可以通过foo()指定要通过for循环运行的次数来传递参数。