2

函数和变量的定义:

def secret_formula(started):
    jelly_beans = started * 500
    jars = jelly_beans / 1000
    crates = jars / 100
    return jelly_beans, jars, crates

start_point = 10000 / 10

打印声明:

print """crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % (start_point, (secret_formula(start_point)))

我收到的错误消息是“ %d 格式:需要一个数字,而不是元组。请帮我修复它。我真的是编程新手......或者只是无法打包变量和调用的函数成相同的格式打印?

4

4 回答 4

0

在 python 3 上工作

def secret_formula(started):
    jelly_beans = started * 500
    jars = jelly_beans / 1000
    crates = jars / 100
    return jelly_beans, jars, crates

start_point = 10000 / 10

print ("startpoint : {0} \n \
       beans:\t\t {1}  \n \
       jar :\t\t {2}".format(start_point,*secret_formula(start_point)[:2]))

输出

startpoint : 1000.0 
    beans:       500000.0  
    jar :        500.0
于 2017-07-11T12:05:59.647 回答
0

python 2中的一个变体:

print """crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % ((start_point, ) + secret_formula(start_point))

我通过将元组添加(start_point, )到函数的结果来创建一个新的元组。


在 python 3 中,您可以使用以下命令解压缩元组*

print("""crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % (start_point, *secret_formula(start_point)))
于 2017-07-11T11:56:26.507 回答
0

考虑添加*以解包元组(python 3.x 解决方案):

print ("""crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % (start_point, *(secret_formula(start_point))))

如果你使用 python 2.x 可以输入:

start_point = 10000 / 10
res = secret_formula(start_point)
print """crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % (start_point, res[0], res[1], res[2])
于 2017-07-11T11:56:57.983 回答
0
#According to zen of python Explicit is better than implicit, so

bs, js, cs = secret_formula(start_point)

print """crazy different style:
startpoint: %d\n
beans:\t\t %d\n
jars:\t\t %d\n
crates:\t\t %d\n
""" % (start_point, bs, js, cs)
于 2017-07-11T11:57:05.643 回答