2012-01-03 9 views
0

私はあなたのビデオを見ていて、演習の一部をhttp://code.google.com/edu/languages/google-python-classで始めましたが、string1.pyファイルの以下の問題に困惑しています。 私が理解できないように見えるのは、both_ends(s)の "s"は何ですか? strings1.pyの下部にgoogle pythonエクササイズ

# 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 

いくつかの機能があります。

def main() 

    print 'both_ends' 
    test(both_ends('spring'), 'spng') 

if __name__ == '__main__': 
    main() 

は、どのようにプログラムが(S)のための「春」を代入する知っているか、それはやっていないものをということであるのでしょうか?必要に応じてファイル全体を投稿することができます。それはわずか140行です。

+0

このテスト関数は答えかもしれませんが、それはどういう仕組みか分かりません。#main()でprint()関数を使って出力しました #返すものと返すもの。 DEFテスト(GOT、予想される): ==予想しまった場合: 他の接頭辞= 'OK' : 接頭辞= 'X' 印刷 '%sは得た:%sの期待:%s' は%(接頭辞、のreprを(持っていた)、repr(期待)) ' –

答えて

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. 
0

は、文字列を保持することを前提とする変数です。私たちはパラメータとして'spring'をスルーします。

1

'spring'は、関数both_ends()にパラメータとして渡されるリテラル文字列で、 's'は関数の仮パラメータです。仮パラメータを実際のパラメータに置き換えることは、関数が呼び出されたときに実行されます。 'test()'関数は、関数が期待どおりに動作することを確認するためのものです。

0

はこの関数のパラメータですが、helloまたはworldのような実際の文字列を、文字「s」ではなく関数に挿入します。それは数学関数のように考える:あなたはf(x) = x + 5です。数字を入力すると、2と入力すると、f(2) = 2 + 5となります。これはちょうどboth_ends関数で起こることです。それは単純にするために、ここでいくつかのコードがあります:あなたがここにコード内の関数にプラグイン

def f(x): 
    return x + 5 

f(2) 

方法は、あなたがあなたの元の関数に文字列を差し込むのと同じ方法です。