Python 结果缺少一些数字

Python 结果缺少一些数字,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

当我将数字从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 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,我已经编辑了答案。您需要添加另一个检查来识别一个完美的平方数