Python 结果缺少一些数字
当我将数字从120键入1时。结果缺少一些数字,如:21,27Python 结果缺少一些数字,python,Python,当我将数字从120键入1时。结果缺少一些数字,如:21,27 import math j=[] #list intInputA=int(input("Nhập khoảng bắt đầu: ")) intInputB=int(input("Nhập khoảng dừng: ")) print("The numbers between",intInputA,"and",intInputB,"are:") if(intInputA>intInputB): print("Sai
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = math.sqrt(i)
if(a * a != i):
j.append(str(i))
print(','.join(j))
我不确定为什么您的方法不能按预期工作,但您可以尝试以下方法:
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = math.sqrt(i)
if(math.pow(i,2) != i) and (int(a+0.5) ** 2 != i):
j.append(str(i))
print(','.join(j))
这将打印出:
('The numbers between', 1, 'and', 120, 'are:')
3,6,12,15,18,21,24,27,30,33,39,42,45,48,51,54,57,60,63,66,69,72,75,78,84,87,90,93,96,99,102,105,108,111,114,117,120
注意这里的变化:ifmath.powi,2!=i和inta+0.5**2!=我只是对代码做了一些修改。我将代码从floatforsqrt转换为int,代码就可以了
import math
j=[] #list
intInputA=int(input("Nhập khoảng bắt đầu: "))
intInputB=int(input("Nhập khoảng dừng: "))
print("The numbers between",intInputA,"and",intInputB,"are:")
if(intInputA>intInputB):
print("Sai dữ liệu rồi cậu! ")
else:
for i in range(intInputA, intInputB + 1):
if(i%3==0):
a = int(math.sqrt(i))
if(a * a != i):
j.append(str(i))
print(','.join(j))
你的问题是什么?在这种情况下,j中不应该有数字。因为首先,它将a设置为i的平方根,但如果a!=i.@Hari的平方根,我试图找到被3除的结果,以及平方数。我得到的结果缺少一些数字,比如21,27,30,@Goyo。21不是一个平方数。我想打印的数字是%3==0,不是一个平方数。但我不想打印的数字是平方数,比如:9,25,36,…@cuteShit,我已经编辑了答案。您需要添加另一个检查来识别一个完美的平方数