-6

問題 1:文字列を受け取り、すべての単語の最初の文字を大文字にする 'Marquee' という関数を作成します。
質問 2: 質問 2と同じアクションを実行するクラスを作成します。これは初めてです。誰かが私を案内してくれれば幸いです。

これは私がこれまでのところ

def Marquee (str.capitalize())
    str="this is string example!"
print str.capitalize()
4

3 に答える 3

2

では、始めましょう。. .

たとえば、1 つの単語を使用する場合は、. . .

word1 = "this"

word1.capitalize() を呼び出すと、 が得られることがわかります。. .

This

これが 1 つの単語に対して行う方法ですが、今度はそれを文に適用する必要があります。その方法は、おそらく次のようなスペースに基づく分割関数を使用して、文を分割する必要があることです

str.split(" ")

単語のリストを返します。リストをループして新しい文字列を作成し、単語を連結して新しい文を作成します。たとえば、このコードの出力を予測できますか?

word1 = "this"
word2 = "is"
word3 = "string"
sentence = (word1.capitalize()+ " " + word2.capitalize() + " " + word3.capitalize())
print sentence

私はPythonを知りませんが、このように見えるかもしれないと推測しています。. .

newSentence = ""
for word in str.split(" ")
    newSentence += (word.capitalized() + " ")
print newSentence

これを関数内に配置して、任意の文を入力して大文字バージョンを取得できるようにする必要があります。そのため、関数の定義方法を知る必要があります。. . 基本的な考え方は次のとおりです。最初にdefを使用して関数を宣言し、その後に関数の名前とパラメータを続けます: def name (paramters )。パラメータがない場合は、括弧def name ()を付けて空白のままにします。return と言って関数定義を終了します。このようになります。. .

def Marquee(str):
. . . .
Insert python code to capitalize beginning of every word.
. . . .
return

str は、ユーザーが呼び出す入力です。

aSentence = "this is string example"
print Marquee(aSentence) 

私は得ることになっている

This Is String Example

あなたは残りを理解できますか?

于 2012-12-18T00:42:50.323 に答える
1
Marquee = str.title

または、古いバージョンの Python との後方互換性のために:

import string
Marquee = string.capwords

同じことを行うクラスの場合:

class Mar:
    quee = str.title
Marquee = Mar.quee

または、少し真剣に:

class MarqueeClass(object):
    def __call__(self, s):
        return s.title()
Marquee = MarqueeClass()

実際、質問2は実際には次のとおりです。

問題 2: 問題 2 と同じアクションを実行するクラスを作成します。

これは循環定義であるか、基本ケースのない再帰定義である可能性があります。これを解釈する 1 つの方法は、何でも許されるということです。しかし、より厳密に解釈すると、クラスをインスタンス化しようとすると、無限の再帰が発生するということになると思います。

class MarqueeClass(object):
    def __init__(self):
        self.__init__()

一方で、「質問 2」がアクションを実行するための何らかのコンテキストである可能性もあります。これは有効な識別子名ではありませんが、間接的に検索することはできます。例えば:

context = globals()['Question 2']
with context:
    Marquee = str.title

また、PEP 8 によると、適切な関数名ではないことを教師に思い出させるメモを追加してMarquee、教師があなたが賢い人であり、彼が愚か者であることを確実に理解できるようにします。:)

于 2012-12-18T01:44:07.353 に答える
1
def Marquee (the_string):
    return the_string.title()

このように関数を呼び出します

>>> Marquee("this is string example!")
'This Is String Example!'

質問 2 で何を尋ねられているのかわかりません。おそらく、str をサブクラス化してほしいと考えています。

class Question2(str):
    marquee = str.title

print(Question2("this is string example!").marquee())
于 2012-12-18T01:42:29.713 に答える