带逗号和勾股符的python

2024-09-27 23:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

def FuncE():
    for x in range(1,11):
        print str(2*x-1) + ",",


def FuncF():
    n = 7
    c = "1"
    for x in range(0, 9-1):
        print str(x*c) + ', ',


def FuncG():
    for a in range(1,51):
       for b in range(a + 1,51):
           for c in range(b + 1,51):
               if (a*a + b*b == c*c):
                       print  "\t\t\t",a,b,c

im使用idle(pythongui),然后在python中工作(命令行)

对于FuncE 需要打印1,3,5,7,9,11,13,15,17,19,但是当我尝试它时,它会像1,3,5,7,9,11,13,15,17,19,加上一个额外的逗号

我需要FuncF打印出1,11,111,1111,11111,11111,11111,但问题是它出现了,1,11,111,1111,11111,11111,1111111,我不想要逗号开头或结尾。我要把它们脱下来。在

那么对于函数 我试图通过使用毕达哥拉斯数字,但只使用了一个“if”命令 也不想让相同的数字出现在列中两次 当我尝试的时候:

三四五

4 3 5个

5 12 13日

6 8 10个

71317年

8 6 10个

。在

。在

等等


Tags: inforifdefrange数字print逗号
2条回答
def odd_numbers(n):
    return ','.join([str(2*i-1) for i in range(1,n)])


def groups_of_ones(n):
    return ','.join([str("1"*i) for i in range(1,n)])


def pythagorean_numbers(n):
    import itertools
    all_groups = set([])
    for a, b, c in itertools.combinations(range(1,b)):
        group = tuple(sorted([a,b,c]))
        if a*a + b*b == c*c and group not in all_groups:
            all_groups.add(group)
    return all_groups

print odd_numbers(11) # prints 1,3,5,7,9,11,13,15,17,19
print groups_of_ones(8) # prints 1,11,111,1111,11111,111111,1111111
for a,b,c in pythagorean_numbers(51):
    print "\t\t\t", a, b, c

在这个答案中,我向您展示了python字符串的join方法(在google上查找“pythonstringjoin”以获得更多帮助)。这就是你在FuncE和FuncF中所要做的。在

我还将函数重命名为描述函数的名称(称为self documentation)。在

我还在pythagorean函数中添加了一个集合来存储之前看到的一组数字。我还向您展示了itertools.combinations函数,这是一种更简单的方法来完成您所做的三重循环。使用这种方法,您可能不需要我添加的and group not in all_groups,但我这样做是为了向您展示如何确保您还没有看到这组数字。在

最后,我没有在函数内打印,而是返回了函数创建的值。在

你能在完成后把它打印出来吗?在

my_string = ""
   for x in range(0, 9-1):
      my_string += str(x)
      if x != 7:
         my_string += ", "
print my_string

print对象后使用逗号字符打印内容时,python会自动插入一个空格。如果你想绕过这个问题,你需要一次打印一个字符串,使用字符串插值或类似的方法。在

你需要对问题的FuncG部分再清楚一点,我不理解你的问题。在

相关问题 更多 >

    热门问题