来自 openhatch wiki 的拼字游戏挑战...获取机架的问题

Posted

技术标签:

【中文标题】来自 openhatch wiki 的拼字游戏挑战...获取机架的问题【英文标题】:scrabble challenge from openhatch wiki...issue getting the rack 【发布时间】:2018-01-27 11:33:57 【问题描述】:

我需要帮助的领域是 第 2 步:从此链接获取项目 http://wiki.openhatch.org/Scrabble_challenge#Step_2:_get_the_rack 到目前为止我的代码是:

import argparse
import sys
file=open('sowpods.txt','r')
scores = "a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
     "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
     "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
     "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
     "x": 8, "z": 10

parser=argparse.ArgumentParser(description='designed to help in scrabble')
#command line interface using argparse module
parser.add_argument("word",help="input your letters")#adds the argument with 
description
args=parser.parse_args()
print(args.word)

如果有人不输入字母,我无法确定要打印错误消息的人,我尝试这样做

if args.word=='':
    print('error need letters')
    sys.exit()

但这不起作用。感谢您的帮助。

【问题讨论】:

如果没有提供足够的参数(如您的情况),argparse 已经抛出错误 是的,但是我想更改错误消息 未来,请显示实际输出与预期输出。它使您的问题更容易回答 抱歉 【参考方案1】:

首先,将答案设为可选以避免 argparse 抛出错误。如果没有传递参数,它将被设置为None(或其他默认值)。

parser=argparse.ArgumentParser(description='designed to help in scrabble')
parser.add_argument("word",help="input your letters", nargs='?')  # nargs
args=parser.parse_args()

if args.word is None: # check equality to None
    print('error need letters')
    sys.exit()

【讨论】:

太棒了!任何解释 nargs 的文档!我使用了一个 if else 参数来解释字母是否预设并以小写形式打印它们,它工作得很好

以上是关于来自 openhatch wiki 的拼字游戏挑战...获取机架的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何优化拼字游戏中的单词排列?

拼字游戏字谜生成器

python 拼字游戏分数

拼字游戏

获取所有子串(拼字游戏)的字谜的所有单词列表的算法?

简化 CLP 难题中的约束