python给空列表赋值_python – 赋值前引用的局部变量’list’

您的代码有几个问题,所有问题都可以通过更多的知识来解决.

>不要将名称列表用于您自己的变量或函数.它是内置Python函数的名称,如果您将该名称用于自己的函数,则无法调用内置函数. (至少,不是没有采用你不应该学习的高级技巧.)

>你也在为两个不同的东西,一个变量和一个函数重复使用相同的名称(列表).不要那样做;给他们不同的,有意义的名字,反映他们是什么.例如,包含单词列表的变量的wordlist,以及函数的get_words().

>不是使用名为list的变量来累积一组字符串,而是实际上不是Python列表,为什么不使用真正的Python列表呢?它们的设计完全符合您的要求.

你使用这样的Python列表:

wordlist = []

# To add words at the end of the list:

wordlist.append("hello")

# To print the list in format ["word", "word 2", "word 3"]:

print wordlist

# To put a single space between each item of the list, then print it:

print " ".join(wordlist)

# To put a comma-and-space between each item of the list, then print it:

print ", ".join(wordlist)

不要过分担心join()函数,以及为什么分隔符(列表项之间的字符串)出现在join()之前.这将进入类,实例和方法,您将在稍后学习.现在,请专注于正确使用列表.

此外,如果您正确使用列表,如果list ==“none”检查您正在执行此操作,则无需执行此操作,因为您可以将()附加到空列表以及包含内容的列表中.所以你的代码将成为:

例A

wordlist = []

def translate_this(word):

# Define this however you like

return word

def get_words():

word = raw_input("")

translated_word = translate_this(word)

wordlist.append(translated_word)

print " ".join(wordlist)

# Or: print ", ".join(wordlist)

get_words()

get_words()

现在还有一个我建议做的改变.不要每次都在最后调用你的函数,而是使用while循环. while循环的条件可以是你喜欢的任何东西;特别是,如果你使条件成为Python值True,那么循环将永远不会退出并永远循环,如下所示:

例B

wordlist = []

def translate_this(word):

# Define this however you like

return word

def get_words():

while True:

word = raw_input("")

translated_word = translate_this(word)

wordlist.append(translated_word)

print " ".join(wordlist)

# Or: print ", ".join(wordlist)

get_words()

最后,如果你想提前退出循环(任何循环,而不仅仅是无限循环),你可以使用break语句:

例C

wordlist = []

def translate_this(word):

# Define this however you like

return word

def get_words():

while True:

word = raw_input("")

if word == "quit":

break

translated_word = translate_this(word)

wordlist.append(translated_word)

print " ".join(wordlist)

# Or: print ", ".join(wordlist)

get_words()

到目前为止,这应该解决你的大部分问题.如果您对此代码的工作方式有任何疑问,请与我们联系.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值