我该怎么做来修复我的代码?

时间:2015-04-10 17:28:41

标签: python python-3.x

这是我的代码

def print_chars(num,char):
    print(char*num)
    return

def sum_arithmetic_seq(num):
    total= num
    for i in range(1,num):
        total += i

    return total



def factorial(num):
    total= num
    for i in range(1,num):
        total *= i

    return total


#final
for num in range(1,7):
    print(num)
    print('sum :',print_chars(sum_arithmetic_seq(num), '*'))
    print('factorial:',end = ' ')
    print_chars(factorial(num),'#')

这是我的输出

1
*
sum : None
factorial: #
2
***
sum : None
factorial: ##
3
******
sum : None
factorial: ######
4
**********
sum : None
factorial: ########################
5
***************
sum : None
factorial: ########################################################################################################################
6

*********************
sum : None
factorial: ################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

我需要得到总和的星星:我该怎么办?

1 个答案:

答案 0 :(得分:1)

重写print_chars,使其返回值而不是打印它。

def print_chars(num,char): 
    return char*num

现在print('sum :',print_chars(sum_arithmetic_seq(num), '*'))将按预期工作。虽然您必须将最后一行从print_chars(factorial(num),'#')更改为print print_chars(factorial(num),'#')

(对于其他样式点,请将其从print_chars重命名为其他内容,因为它不再打印字符。repeated_chars?这取决于您。)< / p>