我正在为Uni编写一个程序来找到所有的回文素数,我已经写出了程序但是当我运行它时,我的第一个输入在尝试为变量赋值时会出错。
请有人告诉我为什么会这样!
start =input("Enter the start point N:")
starteval= eval(start)
endval = eval(input("Enter the end point M:"))
reverse=""
x=starteval+1
while x<endval:
reverse+=start[::-1]
evalreverse=eval(reverse)
if evalreverse==starteval:
if starteval==2 or starteval==3:
print(starteval)
elif starteval%2==0 or starteval%3==0:
pass
i=5
w=2
a=0
while i<=starteval:
if starteval%i==0:
break
else:
a=True
i+=2
if a==True:
print (starteval)
else:
pass
x+=x+1
我收到的输出是
"Enter the start point N:200
Enter the end point M:800
Traceback (most recent call last):
File "", line 1, in <module>
start =input("Enter the start point N:")
Syntax Error: 002: <string>, line 1, pos 3"
拜托,谢谢!
答案 0 :(得分:0)
尝试使用前三行代替:
starteval = int(raw_input("Enter the start point N:"))
endval = int(raw_input("Enter the end point M:"))
答案 1 :(得分:0)
在Python 3中,整数文字不能以零开头:
>>> i = 002
File "<stdin>", line 1
i = 002
^
SyntaxError: invalid token
因为您正在将eval
函数应用于字符串输入,所以Python会尝试将您的输入解析为有效的Python表达式,这就是您看到错误的原因。
使用int(input(...))
获取整数更有意义(尽管在用户在代码中键入非整数时仍然需要处理引发的任何异常)。这样做的好处是将接受导致您在eval
中出现问题的输入。
答案 2 :(得分:0)
您可以编写一个小的 intParsing函数,为您处理简单的输入解析,然后基本上用intParsing()替换代码的每个“eval()”函数。
以下是您编辑的代码:
var size_i_want = "11";
function fRun()
{enter code here
// Select size option.
var sizesList=document.getElementsByName("skuAndSize")[0];
for(var i=0; i<sizesList.length; i++)
{
if(sizesList.options[i].text.trim() == size_i_want)
{
sizesList.selectedIndex = i;
}
}
var aButtons = document.getElementsByTagName("button");
for(var i = 0; i < aButtons.length; ++i)
{
if(aButtons[i].className.indexOf("add-to-cart") > -1)
{
aButtons[i].click();
}
}
}
function fTick()
{
if(document.getElementsByName("skuAndSize")[0] != undefined)
{
setTimeout("fRun()", 600);
//fRun();
}else{
setTimeout("fTick()", 300);
}
}
setTimeout("fTick()", 300);