问题1:编写一个名为'Marquee'的函数,它接受一个字符串,并将每个单词的第一个字母大写。
问题2:编写一个在问题2中完成相同操作的类。
我是新来的。如果有人能指导我完成这件事,我们将不胜感激。
这是我到目前为止
def Marquee (str.capitalize())
str="this is string example!"
print str.capitalize()
答案 0 :(得分:2)
好的,这是一个开始。 。
例如,如果我们使用一个单词,比如说。 。 。
word1 = "this"
所以你知道调用word1.capitalize(),你得到。 。
This
这就是你如何为一个单词做的,现在你必须将它应用于一个句子。这样做的方法是你必须使用基于空格的分割函数来分解句子,如
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 然后使用函数的 name 来声明一个,然后使用参数: def name (paramters)即可。如果我们没有参数,我们将其留空,并带有paranthese 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
你可以弄清楚剩下的吗?
答案 1 :(得分: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())
答案 2 :(得分: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中完成相同操作的课程。
这是一个循环定义,或者可能是一个没有基本情况的递归定义。解释这一点的一种方法是任何是允许的。但我认为更严格的解释是,任何尝试甚至实例化该类都会导致无限递归:
class MarqueeClass(object):
def __init__(self):
self.__init__()
另一方面,“问题2”也可能是完成操作的上下文。虽然这不是有效的标识符名称,但您仍可以间接查找。例如:
context = globals()['Question 2']
with context:
Marquee = str.title
我还会添加一个提示,告诉老师Marquee
根据PEP 8不是一个好的功能名称,以确保老师知道你是个聪明人,而且他是个笨蛋。 :)