所以首先这是我应该要做的任务 “第二个编码挑战将是使用while循环来解决这两个条件
给出任何称为极限的数字,我们将找到并打印等于或低于极限的所有平方,因此:
给出30,您的第一个解决方案将打印1,4,9,16,25
第二种解决方案将最多打印多维数据集,因此:
给出30,您的第二个解决方案将打印1,8,2“
reply = True
while reply == True:
limit = input("Choose any number ")
if limit.isnumeric():
limit = float(limit)
reply = False
else:
print("What you have entered is not a number")
reply = True
number = 1
square = list()
cube = list()
while number > 0:
squarenumber = number ** 2
if squarenumber > limit:
break
square.append(squarenumber)
cubenumber = number ** 3
if cubenumber > limit:
break
cube.append(cubenumber)
number = number+1
print("All the squares below or equal to",limit,"are",*square)
print("All the cubes below or equal to", limit,"are",*cube)
这是我编写的代码,当我输入30作为“ limit”的值时,它会显示
All the squares below or equal to 30.0 are 1 4 9 16
All the cubes below or equal to 30.0 are 1 8 27
所以我不确定我做错了什么
答案 0 :(得分:1)
当number
的值变为4时会发生问题。在这种情况下,将计算平方并且条件14 > 30
为假(30为limit
)。但是随后您继续计算多维数据集,在这种情况下,条件64 > 30
为真,因此循环中断。
因此,一种方法是仅当值的平方大于限制时才中断循环。或者,您也可以反转条件(如果小于限制,则仅将正方形和立方体追加到列表中)
reply = True
while reply == True:
limit = input("Choose any number ")
if limit.isnumeric():
limit = float(limit)
reply = False
else:
print("What you have entered is not a number")
reply = True
number = 1
square = list()
cube = list()
while number > 0:
squarenumber = number ** 2
# only append the square if it is less than limit value
if squarenumber < limit:
square.append(squarenumber)
else:
break # if the square value is greater than limit, then stop the loop
cubenumber = number ** 3
# only append the cube if it is less than limit value
if cubenumber < limit:
cube.append(cubenumber)
number = number+1
print("All the squares below or equal to",limit,"are",*square)
print("All the cubes below or equal to", limit,"are",*cube)
答案 1 :(得分:0)
检查squarenumber
和cubenumber
的限制无效,因为立方体的增长速度快于正方形。更好的解决方案是检查下一个正方形并收集多维数据集。
这是一个可能的解决方案
limit = 30
number = 1
square = list()
cube = list()
while number > 0:
squarenumber = number ** 2
square.append(squarenumber)
if (number+1) ** 2 > limit:
break
cubenumber = number ** 3
if cubenumber < limit:
cube.append(cubenumber)
number = number+1
print('square: {}'.format(square)) #square: [1, 4, 9, 16, 25]
print('cube: {}'.format(cube)) #cube: [1, 8, 27]