带有for循环的格式化输出

问题描述 投票:0回答:2

我想开始说我是绝对的新手,并且只参加了我计划的两个月。我无法以我需要的方式显示for循环的输出。我已经搜索了我所有的教科书和课堂讲课,但不知道该怎么做。任何帮助,将不胜感激。

我将复制并粘贴函数和输出。请记住,此文件仅用于功能,因此不包含输入,但是我确实有该输入。

这里是我所拥有的,我将在下面列出它需要如何输出。

def perfect_square(num):

    for number in range(1, num, 1):
        square = number ** 2
#             print(square, end='')
    print("the perfect squares from {} are: {}".format(num, square))

以上输出

Enter a positive integer: 10
the perfect squares from 10 are: 81

第二次尝试

def perfect_square(num):
    import math
    for number in range(1, num, 1):
        square = number ** 2
#             print(square, end='')
        print("the perfect squares from {} are: {}".format(num, square))

以上输出

Enter a positive integer: 10
the perfect squares from 10 are: 1
the perfect squares from 10 are: 4
the perfect squares from 10 are: 9
the perfect squares from 10 are: 16
the perfect squares from 10 are: 25
the perfect squares from 10 are: 36
the perfect squares from 10 are: 49
the perfect squares from 10 are: 64
the perfect squares from 10 are: 81
The required output needs to look like this
Enter a positive integer: 10
The perfect squares for the number 10 are: 1, 4, 9

这里是新代码,然后是输出,但是在此之上是我似乎无法弄清楚的必需输出。谢谢大家的帮助。

    import math
    for number in range(1, num):
        if number ** .05 % 1 == 0:
            print("the perfect squares from {} are: {}".format(num, number))

输出

Enter a positive integer: 10
the perfect squares from 10 are: 1
python for-loop printing output formatted
2个回答
0
投票

这里是不使用任何库的解决方案:

def find_squares(x):
    return_value = []
    for i in range(1, x + 1):
        # Note that x**0.5 is the squareroot of x
        if i**0.5 % 1 == 0:
            return_value.append(i)
    return return_value

print(find_squares(int(input('Please enter a number: '))))

0
投票

这是一个非常容易的练习:只需使用for i in range(1, x+1)即可得到小于或等于x的所有均方数。

这是我写的:

import math

def findSquares(x):
    for i in range(1, x+1):
        if math.sqrt(i).is_integer():
            print("one perfect number is: " + str(i))

它只是循环浏览相关数字。

另一个解决方案是:

import math

x = int(input("num?: "))
output = "The perfect squares for the number {} are: ".format(x) 
for i in range(1, x+1):
        if math.sqrt(i).is_integer():
                output += "{}, ".format(i)
print(output)

这将输出为空,并在输出之前不断添加数字。

© www.soinside.com 2019 - 2024. All rights reserved.