我正在观看youtube上的教学视频并开始在http://code.google.com/edu/languages/google-python-class进行一些练习但我对string1.py文件中的以下问题感到困惑。 我似乎无法理解的是,两个方面的“s”是什么:做什么?
# B. both_ends
# Given a string s, return a string made of the first 2
# and the last 2 chars of the original string,
# so 'spring' yields 'spng'. However, if the string length
# is less than 2, return instead the empty string.
def both_ends(s):
# +++your code here+++
# LAB(begin solution)
if len(s) < 2:
return ''
first2 = s[0:2]
last2 = s[-2:]
return first2 + last2
在strings1.py的底部有一些功能:
def main()
print 'both_ends'
test(both_ends('spring'), 'spng')
if __name__ == '__main__':
main()
那么程序如何知道用“spring”代替(s)或者不是它正在做什么?如果需要,我可以发布整个文件。它只有140行。
答案 0 :(得分:1)
'spring'是作为参数传递给函数both_ends()的文字字符串,'s'是函数的形式参数。调用函数时,将执行使用实际参数替换形式参数。 'test()'函数用于确认函数的行为与预期一致。
答案 1 :(得分:0)
调用函数时,为函数提供的值将分配给函数头中的相应参数。在代码中:
def my_func(a): #function header; first argument is called a.
#a is not a string, but a variable.
print a #do something with the argument
my_func(20) #calling my_func with a value of 20. 20 is assigned to a in the
#body of the function.
答案 2 :(得分:0)
s
是我们假设持有字符串的变量。我们将'spring'
in through作为参数传递。
答案 3 :(得分:0)
s
中的 def both_ends(s)
是输入字符串的参数。通过调用len(s) < 2
来检查此字符串的长度,并通过s[0:2]
和s[-2:]
答案 4 :(得分:0)
有关具体信息,请参阅http://docs.python.org/tutorial/controlflow.html#defining-functions。另外http://docs.python.org/tutorial/index.html的教程非常好 - 我主要是从中学到的。
答案 5 :(得分:0)
s
是函数的参数,但是您可以将函数hello
或world
插入函数而不只是字母s
。把它想象成数学函数:你有f(x) = x + 5
。当您插入一个数字时,请说2
,即可获得f(2) = 2 + 5
。这正是Both_ends函数所发生的情况。为了简化,这里有一些代码:
def f(x):
return x + 5
f(2)
在此处插入代码中的函数的方式与将字符串插入原始函数的方式相同。