'''函数的工作原理:函数内部的变量都是临时的,
当你的函数返回以后,返回值可以被赋予一个变量。
这里是创建了一个新变量,用来存放函数的返回值。
'''
def secret_formula(started): # started 是函数中的形参
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans,jars,crates
start_point = 10000 # 赋值
''' start_point1是函数中的形参,beans,jars,crates为函数中新的变量,
个人理解:jelly_beans = beans,jars = jars,crates = crates,
start_point1 = 10000中的10000变为实参传入started,即上面def定义的函数中的start就等于10000
return 返回的值也就跟前面提到的jelly_beans = beans,jars = jars,crates = crates 一样了'''
beans,jars,crates = secret_formula(start_point)
print "With a starting point of : %d" % start_point
print "We'd have %d beans, %d jars,and %d crates." % (beans,jars,crates)
'''
为了便于解释与记忆,我将代码做了改变。。。
def secret_formula(10000): # started 是函数中的形参
#jelly_beans = beans,jars = jars_new,crates = crates_new
beans = 10000 * 500
jars_new = beans / 1000
crates_new = jars_new / 100
return beans,jars_new,crates_new
start_point = 10000
beans,jars_new,crates_new = secret_formula(10000) # 函数中的started形参,在此处就等于 started = "start_point = 10000"
print "With a starting point of : %d" % 10000
print "We'd have %d beans, %d jars,and %d crates." % (beans,jars_new,crates_new)
'''
start_point = start_point / 10
print "We can also do that this way:"
print "We'd have %d beans,%d jars,and %d crates." % secret_formula(start_point)
'''
跟上面一样,我也将代码进行改动
没有了上面的 “beans,jars,crates = secret_formula(start_point)”声明,函数又回归到最初的变量赋值状态...
def secret_formula(started): # started 是函数中的形参
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans,jars,crates
start_point = 10000 # 赋值
start_point = start_point / 10 # start_point = 10000 / 10 = 1000
print "We can also do that this way:"
print "We'd have %d beans,%d jars,and %d crates." % secret_formula(start_point) # 函数中的started形参,在此处就等于started = "start_point = start_point / 10"
'''
阅读(2221) | 评论(0) | 转发(0) |