2013-04-30 68 views
0

这是最容易的问题。我是编程界的新手,可以使用一些帮助。我试图将以下文本打印到用户指定的名称列表中。我得到的错误:从列表中打印

TypeError: GoodDaySir() takes 0 positional arguments but 1 was given 

蟒蛇3.3

mylist=input('Who is visiting today?') 
def GoodDaySir(): 
    for i in range(len(mylist)): 
     print('Hello to you.') 
     print('Have a good day, ', mylist) 
+1

这是你的实际缩进?如果没有,您是否可以修改您的帖子以反映您的实际缩进? – BlackVegetable 2013-04-30 18:45:45

+1

修复缩进后,请告诉我们你是怎么称呼'GoodDaySir'的。 – kojiro 2013-04-30 18:51:21

回答

1

你忘deffor后缩进的行:

mylist=input('Who is visiting today?') 
def GoodDaySir(): 
    for i in range(len(mylist)): 
     print('Hello to you.') 
     print('Have a good day, ', mylist) 

虽然我不知道你在做什么试图完成这段代码;-)

你可能wa nt这样的事情:

def GoodDaySir(visitors): 
    """ This function takes a list() of visitors and prints out a greeting 
     for each person. 
    """ 
    for person in visitors : 
     print('Hello to you.') 
     print('Have a good day, ', person) 

# Get a list of names separated by "," 
visitors = raw_input('Who is visiting today?') 

# Convert the string to an actual list() 
visitorsList = [x.strip() for x in visitors.split(',')] 

# Call our function with the list as parameter and greet the visitors 
GoodDaySir(visitorsList) 
+0

这可能是更好的评论。 – squiguy 2013-04-30 18:47:33

+1

他的问题可能不是缩进,或者他会得到一个不同的错误。他的问题很可能是他的定义中没有包含参数变量,但在调用它时提供了一个参数。 – BlackVegetable 2013-04-30 18:54:25

+0

是的,明白了......我只是添加了一个示例实现。 – tamasgal 2013-04-30 18:56:47

-1

主要问题是你根本没有使用缩进,但它不会工作。

的解决方案的示例可以是:

def GoodDaySir(): 
    names = raw_input('Who is visiting today?') #this returns a string of names 
    namesList = names.split(',') #let's suppose that those names are separated by commas 

    for name in namesList: 
     print('Hello to you.') 
     print('Have a good day, ', name)` 
0
TypeError: GoodDaySir() takes 0 positional arguments but 1 was given 

此错误意味着要传递的参数为不采取一个的功能。您已经定义了

def GoodDaySir(): 

没有参数。当你通过mylistGoodDaySir它不知道如何处理它。也许改变你的功能

def good_day_sir(people): 
    for person in people: 
     print('Hello to you.') 
     print('Have a good day, ', person)