来自 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 的拼字游戏挑战...获取机架的问题的主要内容,如果未能解决你的问题,请参考以下文章