我必须编写一个应用程序,例如教师,可以用来检查学生的阅读年龄。有一部分它要求用户输入他们想要的关键字数量,这是我目前所困惑/坚持的。
我的代码:
counter = 0
amount_keywords = []
input_keywords = int(input("Enter Number Of Keywords:"))
while(counter != input_keywords):
input_keywords = str(input("Enter Keyword:"))
amount_keywords.append(input_keywords)
counter = counter + 1
发生的事情是如果我把0放到整数“输入关键字数量:”它工作正常并通过下一部分要求将关键字放入,这是完美和正常的。但是,如果我举三个例子,它应该输出三次字符串“Enter Keyword:”,因为这是我放入整数但是继续进行。有任何解决这个问题的方法吗?
答案 0 :(得分:2)
您已使用变量input_keywords来保存要输入的关键字数量,然后在while循环内重新定义它以保存每个关键字。因此,如果您在循环之前输入3,则键入关键字' a'在循环中,现在input_keywords =' a'因此,当while循环将其与计数器进行比较时,它们将永远不会相等,因此它会继续运行。尝试更清楚地命名事物,不要为了不同的目的重用变量。例如:
counter = 0
amount_keywords = []
n_keywords = int(input("Enter Number Of Keywords:"))
while(counter != n_keywords):
keyword = str(input("Enter Keyword:"))
amount_keywords.append(keyword)
counter = counter + 1
要自己调试这样的事情,在while循环中添加一个print语句,以查看counter和input_keywords的值,看看为什么没有满足循环结束条件。或者使用调试器,让您单步执行代码并查看变量值。