不想定义变量?

2024-05-29 02:50:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小问题,变量似乎没有被正确地定义为变量。当我尝试print变量WordLetters的值时,它不会返回任何结果。当我尝试print变量的长度时,它返回0。你知道吗

最初,我在WordLetters变量中有一个NameError,然后在try:函数外定义,现在它不返回值。是不是try:有自己的作用域?如果是这样,我将如何将值附加到WordLetters列表中?你知道吗

RandomWord = random.choice(Words)
try:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4], RandomWord[5], RandomWord[6], RandomWord[7], RandomWord[8], RandomWord[9]]
except(IndexError):
  pass

print("Word: " + "".join(WordLetters))
print("The word is " + str(len(WordLetters)) +  " letters long.")

Tags: 函数列表定义random作用域wordsprinttry
3条回答

怎么样:

aword = 'hello world'
randomWord = []
for i in range(len(aword)):
    randomWord.append(random.choice(aword))

print ''.join(randomWord)
print len(randomWord)

忽略索引器没有帮助。你知道吗

我的解决方案是检查每个单词的长度,如下所示:

if len(RandomWord) == 2:
  WordLetters = [RandomWord[0], RandomWord[1]]
elif len(RandomWord) == 3:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2]]
elif len(RandomWord) == 4:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3]]
elif len(RandomWord) == 5:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4]]
elif len(RandomWord) == 6:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4], RandomWord[5]]
elif len(RandomWord) == 7:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4], RandomWord[5], RandomWord[6]]
else:
  WordLetters = [RandomWord[0], RandomWord[1], RandomWord[2], RandomWord[3], RandomWord[4], RandomWord[5], RandomWord[6], RandomWord[7]]

有点冗长,但它是有效的。你知道吗

您正在使用except IndexError: pass默默地忽略索引错误。如果随机选择的单词少于10个字符,则会出现异常,WordLetters不会被设置。你知道吗

如果出现这种情况,可以设置默认值,也可以避免对单个字符进行索引;您可以使用list()函数创建一个包含单词所有单个字符的列表:

WordLetters = list(RandomWord)

不必预先知道单词中有多少个字符。你知道吗

请注意,除非计划对列表进行变异(更改单个元素或从列表中添加或删除元素),否则不需要将字符串转换为单个字符的列表。你总是可以循环一个单词或者得到它的长度;len(RandomWord)有效,for character in RandomWord: print(character)也有效。你知道吗

相关问题 更多 >

    热门问题