所以我完成了作业,但是最后一步是印刷品没有说明。这是我的代码
#Copy the definition of function print_chars below
def print_chars(multiples, char):
print_chars= multiples* char
print (print_chars)
#Copy the definition of function sum_arithmetic_seq below
def sum_arithmetic_seq(n):
return n* (n+1)//2
#Copy the definition of function factorial below
import math
def factorial(n):
return math.factorial(n)
#Here's my program
for N in range(1,7,1):
print(N)
print('sum:', print_chars(sum_arithmetic_seq(N) ,'*'))
print('factorial:', print_chars(factorial(N),'#'))
输出会像这样结束(我只是将其中的一部分放在一边,因为它很长。)
1
*
sum: None
#
factorial: None
How it's supposed to be:
1
sum: *
factorial: #
答案 0 :(得分:1)
Print_chars不会返回任何内容。让它返回您正在打印的内容,以便您可以使用它的输出。在您的上一次打印中,它无法使用该值,因为那里没有任何内容。更改打印以返回以修复它。
答案 1 :(得分:0)
工作解决方案:
for N in range(1,7,1):
print(N)
print('sum:', end=" ")
print_chars(sum_arithmetic_seq(N) ,'*'))
print('factorial:', end=" ")
print_chars(factorial(N),'#'))
非预期格式的原因:
问题是,你是print_chars函数已经在函数内部有一个print语句。这意味着什么,
当您拨打电话时,
print('sum:', print_chars(sum_arithmetic_seq(N) ,'*'))
将评估函数print_chars
first
将打印* {n次},然后在函数执行“Sum:”后打印。这就是为什么在“总和”之前打印开始*为了避免这种情况,
1.预先将print语句分为“sum”和“factorial”
2.只需使用print_chars(.....)
没有打印(print_char))然后您要求打印返回值。不归还的
3.或者只是更改函数内的print (print_chars) to a return(print_chars)