【发布时间】:2019-02-20 05:39:00
【问题描述】:
我正在努力改掉过于频繁地使用 if/else 的坏习惯。我对函数的工作方式和调用它们的正确方法不熟悉,但我一直在研究用我的代码实现它们的正确方法。我正在制作的代码是假设检查 3 个不同的单词,如果该单词不在输入中,那么用户将收到一条语句,上面写着“拒绝”,如果这个词是正确的,它会说“接受”。我面临的问题是让我的程序正常工作。到目前为止,我已经设置了我的程序来检查单词的每个索引,如果它与完整的单词匹配,它将被标记为已接受。我试图找出添加拒绝标志的正确方法,并避免在运行该程序后收到错误。
def checker():
q0 = input("enter word:")
if (q0[0]) +(q0[1]) == "if":
print ("accepted")
if (q0[0]) + (q0[1]) + (q0[2]) + q0[3] == "else":
print("accepted")
if(q0[0]) + (q0[1]) == "do":
print("accepted")
else:
print("rejected")
checker()
对于这个程序,我不会使用字典,因此我可以正确地挑战自己并以自动机方式实现它。如何在不出现字符串索引超出范围错误的情况下实现此代码。我试图在我的 print 语句之后加上 break,但它不起作用。
提前感谢大家。这是我的第一篇文章,所以如果我在我的帖子中犯了任何错误,请告诉我!
【问题讨论】:
-
if q0 == 'if':有什么问题 -
@AkshayNevrekar 它可以工作,但似乎其他 if 语句冲突它说已接受,但在它说字符串索引超出范围之后。
标签: python python-3.x automata