我有一个小问题,变量似乎没有被正确地定义为变量。当我尝试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.")
怎么样:
忽略索引器没有帮助。你知道吗
我的解决方案是检查每个单词的长度,如下所示:
有点冗长,但它是有效的。你知道吗
您正在使用
except IndexError: pass
默默地忽略索引错误。如果随机选择的单词少于10个字符,则会出现异常,WordLetters
不会被设置。你知道吗如果出现这种情况,可以设置默认值,也可以避免对单个字符进行索引;您可以使用
list()
函数创建一个包含单词所有单个字符的列表:不必预先知道单词中有多少个字符。你知道吗
请注意,除非计划对列表进行变异(更改单个元素或从列表中添加或删除元素),否则不需要将字符串转换为单个字符的列表。你总是可以循环一个单词或者得到它的长度;
len(RandomWord)
有效,for character in RandomWord: print(character)
也有效。你知道吗相关问题 更多 >
编程相关推荐