楼主:
cecilx (@@)
2014-03-11 15:22:48刚开始接触程式设计 现在用bytes of python练习
VarArgs parameters这一章的东西我不太理解怎么运作的
以下是书上的范例
def total(initial=5, *numbers, **keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, vegetables=50, fruits=100))
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
问题一:10, 1, 2, 3是被归类到*numbers吗?
而vegetables=50, fruits=100是被归类到**keywords
问题二:count = initial接下来的计算不是应该会变成5+后面的数值 但打印出来结果
却是166 一开始把initial=5这行的作用是什么呢?
问题三:for number in numbers:
number是否因为加了*号所以被归类到*numberS里面
我后来把def total(initial=5, *numbers, **keywords):
里面的numbers改成number结果也是一样的 那为什么要写成number in numbers
但如果把for number in numbers
count += number
改成 for numbers in numbers
count += numbers
结果也是一样的 那为什么作者会用number做变量名称呢
感觉使用numbers会比较好理解
超新手问题可能问的没有很清楚 整个脑筋很打结啊..
你会有这些问题表示你学习的过程完全忽略定义从问题三看最明显 你完全不知道 for .. in .. 在干嘛意思是numbers迭次赋值给给numbernumbers=[1,2,3] 表示循环会跑三次第一次number=1,第二次number=2,第三次number=3我看你还是别管number还numbers了把number改成a, numbers改成b去想好了不然你大概要为了到底要不要加s又想到脑袋打结