python - Python 脚本:字符 1 等于字符 n
问题描述
我是 python 新手,需要一些帮助。我应该编写一个脚本,从键盘读取单词,直到输入单词 999。对于除 999 之外的每个单词,报告该单词是有效还是无效。如果单词的第一个字符等于其最后一个字符,则该单词是有效的。我无法弄清楚我做错了什么。有人可以帮忙吗?
谢谢
enter code here
def main():
newChance = True
while newChance == True:
try:
Code = raw_input("Enter a word.")
except ValueError:
print("You need to use letters only!")
try:
startOver = int(input("To start over, enter 0. To exit enter 999."))
except:
print("Goodbye...")
newChance = False
else:
if startOVer == 0:
newChance = True
else:
print("Goodbye...")
newChance = False
str1 = Code
if str1.startswith('"') and str1.endswith('"'):
print ("Your word is valid.")
else:
print ("Your word is invalid.")
解决方案
关于您的代码有几点需要评论。首先是您对 TRY/EXCEPT 块的使用。
这些用于错误处理。您已正确使用的:
try:
Code = raw_input("Enter a word.")
except ValueError:
这里的问题是您将主要逻辑定位在错误处理中。这意味着如果用户最初正确输入了一个数字,它永远不会真正达到您的逻辑。
话虽如此,错误捕获在我的系统上不起作用。您可能希望将其作为 IF/ELSE 来处理,并使用Code.isdigit()
;检查它是否是数字。
在退出逻辑上添加验证也是明智之举。
最后,它应该看起来像这样:
newChance = True
while newChance == True:
Code = raw_input("Enter a number.")
if Code.isdigit():
if Code[0] == Code[-1]:
print ("Your word is valid.")
else:
print ("Your word is invalid.")
startOverValid = False
while not(startOverValid):
startOver = int(input("To start over, enter 0. To exit enter 999."))
if startOver == 999:
print("Goodbye...")
newChance = False
startOverValid = True
if startOver == 0:
startOverValid = True
else:
print("You need to use letters only!")
需要注意的关键点是使用if Code[0] == Code[-1]:
. 由于我们的 raw_input 是一个字符串,我们可以检查第一个和最后一个字符的索引并确保它们匹配。
我们继续处理重启或退出。由于我们已将自己置于循环中,因此我们只需要测试 2 个有效的循环中断条件。
推荐阅读
- ibm-watson - 错误:AssistantV1.BaseService.initCredentials 的构造函数参数中提供的凭据不足
- neo4j - Neo4j Neo.ClientError.Statement.TypeError:类型不匹配:预期地图但为 String("false")
- typescript - rxjs 地图输出不正确的输入
- django - Django:具有自动创建功能的 UUID 上的 OneToOneField 关系
- deep-learning - DeepSORT 对象跟踪框架中的对象检测器是否运行在视频的每一帧上?
- node.js - 服务和控制器中的 NestJS GET 函数返回 404 错误
- feed - nuget restore 无法通过上游解析来自 Azure DevOps 源的包
- c# - How do I remove the parent node without removing its child nodes as well?
- function - 如何编写 k 最近邻算法以在 python 中执行回归任务?
- git - 用于 github 更改版本控制文件的自动合并脚本