我的代码中有这部分问题:
if(input not in status_list):
print("Invalid Entry, try again.")
break
休息退出整个程序,我只想回到程序的开头(到 while(1):)
我试过传递,继续,返回想不出别的..有谁能帮忙?
谢谢:)
同样它正在读取这个变量收入字符串仍然是..:income = int(input("Enter taxable income: "))
我得到的错误信息是“TypeError:'str'对象不可调用”
import subprocess
status_list = ["s","mj","ms","h"]
while(1):
print ("\nCompute income tax: \n")
print ("Status' are formatted as: ")
print ("s = single \n mj = married and filing jointly \n ms = married and filing seperately \n h = head of household \n q = quit\n")
input = input("Enter status: ")
if(input == 'q'):
print("Quitting program.")
break
if(input not in status_list):
print("Invalid Entry, try again.")
break
income = int(input("Enter taxable income: "))
income.replace("$","")
income.replace(",","")
#passing input to perl files
if(input == 's'):
subprocess.call("single.pl")
elif(input == 'mj'):
subprocess.call("mj.pl", income)
elif(input == 'ms'):
subprocess.call("ms.pl", income)
else:
subprocess.call("head.pl", income)
答案 0 :(得分:2)
input = input("Enter status: ")
您将名称input
从input
函数重新绑定到其结果,这是一个字符串。所以下次你调用它时,continue
完成它的工作后,input
不再命名一个函数,它只是一个字符串,你不能调用一个字符串,因此
TypeError: 'str' object is not callable
使用continue
,并更改变量名称,以免破坏该功能。
答案 1 :(得分:0)
您的问题不会继续,而是您的代码中还有一个未解决的错误。继续正在完成它应该做的事情(即你想在那个条件中continue
。)
您将input
重命名为字符串,因此该名称不再指向代码中的内置input
函数。这就是您不使用保留关键字作为变量名称的原因。将变量称为“输入”之外的其他变量,您的代码应该可以正常工作。
答案 2 :(得分:0)
继续正常运作。您的脚本的问题是您尝试在int:
上调用replace()income = int(input("Enter taxable income: "))
# income is an int, not a string, so the following fails
income.replace("$","")
你可以这样做:
income = int(input("Enter taxable income: ").replace("$", "").replace(",", ""))