我编写了一个工作游戏,它为用户提供一个由7个字母组成的随机字符串,用户必须只使用这些字母来组合单词和非单词,每个字母只使用一次。这已经接近完善,偶尔会出现错误。
我的主要问题是,在尝试确定字符串的点值时,我会考虑三个因素:长度、每个字母的值(基于 Scrabble 值)以及它是否是真实的单词。我下载了在这里找到的字典。这个文件在我的 Ubuntu 计算机上保存为.txt
文件,我使用了几种不同的方法来搜索文件中的输入(因为该文件的所有单词都是大写字母,所以我将变量"capital"设置为input.upper().
点数通过取(length+lettervalues) * realword
相加。如果realword == 2
,则分数加倍
dictionary = open('wordlist.txt', 'r')
for line in dictionary:
if capitals in line:
realword = 2
else:
realword = 1
dictionary.close()
我也尝试了堆栈溢出的解决方案。这也没有给我任何可行的解决方案。每次尝试时,它都不会崩溃有任何错误 - 它每次都只是转到 else 语句。如果这个问题得到解决,我将不胜感激。我已经把头撞在键盘上两天了。
提前致谢
你不需要 else 语句。将实词初始化为 1,只有在字典中找到实词时才更改为 2 并中断。此外,大多数词典在同一行上都有单词和含义,因此请尝试将其拆分,即选择空格键之前的第一个单词。
capitals= input('enter word').upper()
realword = 1
dictionary = open('wordlist.txt', 'r')
for line in dictionary:
if capitals == line.split()[0]:
realword = 2
break
print (realword)
dictionary.close()