如何在字符串结尾为“ing”时添加“ly”?
这是我第一次尝试解决这个练习。我得说,我有点喜欢Python。:D
# D. verbing
# Given a string, if its length is at least 3,
# add 'ing' to its end.
# Unless it already ends in 'ing', in which case
# add 'ly' instead.
# If the string length is less than 3, leave it unchanged.
# Return the resulting string.
def verbing(s):
if len(s) >= 3:
if s[-3:] == "ing":
s += "ly"
else:
s += "ing"
return s
else:
return s
# +++your code here+++
return
你觉得我在这里可以改进什么呢?
5 个回答
我会在 if
语句中使用 s.endswith("ing")
,这样做会更快一些,因为它不会为比较创建一个新的字符串。
其次,我建议使用文档字符串来做注释。这样,当你使用 help(yourmodule)
或者用一些自动文档工具,比如 Sphinx 来创建描述你API的手册时,你可以看到你的描述。举个例子:
def verbings(s):
"""Given a string, if its length is at least 3, add 'ing' to its end.
Unless it already ends in 'ing', in which case add 'ly' instead.
If the string length is less than 3, leave it unchanged."""
# rest of the function
第三,通常认为改变输入参数是一种不好的做法。对于字典或列表参数,你可以这样做,因为它们也可以作为输出参数。但字符串只是输入参数(这就是为什么你需要返回值)。你写的代码当然是有效的,但常常会让人感到困惑。其他语言通常有 final
或 const
这样的关键字来避免这种混淆,但Python没有。所以,我建议你使用一个第二个变量 result = s + "ing"
,然后再 return result
,或者直接写 return s + "ing"
。
其他部分都很好。当然,Python中有一些写法更简洁(你会随着时间的推移学到这些),但它们往往不太容易阅读。因此,我建议你继续使用你现在的写法。
这个小改写怎么样:
def verbing(s):
if len(s) < 3:
return s
elif s.endswith('ing'):
return s + 'ly'
else:
return s + 'ing'
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序做一些事情,比如处理数据或者与用户互动。为了实现这些功能,我们会用到一些特定的代码和命令。
比如说,当你想让程序在屏幕上显示一条消息时,你可能会用到一个叫“打印”的命令。这个命令就像是在告诉程序:“嘿,快把这句话显示出来!”
另外,程序也可以根据不同的条件来做不同的事情。比如,如果用户输入的数字是正数,程序就可以显示“这是一个正数”;如果是负数,就显示“这是一个负数”。这就需要用到“条件判断”的概念。
总之,编程就像是在给计算机下指令,让它按照我们的想法去做事情。通过学习不同的代码和命令,我们可以让程序变得更加智能和灵活。
希望这些解释能帮助你更好地理解编程的基本概念!
def verbing(s):
if len(s) >= 3:
if s.endswith("ing"):
s += "ly"
else:
s += "ing"
return s