def prime(x):
if (x == 0 or x % 2 == 0):
return 0
elif (x == 1):
return 1
else:
for y in range(x-1,0,-1):
if (x % y == 0):
return 0
else:
pass
if (y == 1):
return 1
for x in range(1,20):
if (prime(x)):
print ("x:%d, prime YES") % (x)
else:
print ("x:%d, prime NO") % (x)
Run Code Online (Sandbox Code Playgroud)
我正在开始尝试Python,我无法理解我的代码有什么问题......我得到了:
... print("x:%d,prime YES")%(x)
TypeError:%支持的操作数类型:'NoneType'和'int'
Rem*_*ich 12
等等 - 我找到了.您正在使用Python 3!其中print是一个功能.因此,
print ("x:%d, prime YES") % (x)
Run Code Online (Sandbox Code Playgroud)
实际意味着
(print ("x:%d, prime YES")) % (x)
Run Code Online (Sandbox Code Playgroud)
而且,自从print返回以来None,您就会得到错误.
另外,要注意 - (x)不是包含1个元素的元组,它只是值x.使用(x,)的元组.
所以只需移动parens并添加一个逗号:
print("x:%d, prime YES" % (x,))
Run Code Online (Sandbox Code Playgroud)