我应该在这里使用for语句吗?

时间:2017-11-27 17:48:28

标签: python

我有这个问题,我希望得到你的专家答案,因为我希望在编程方面做得更好。

"""
The parameter s_str is a string. The parameter n is an int > 0.
The function x() should return the last n characters of s_str if
s_str has a length >= n, or the empty string if s_str has a length < n

Example:
    x('abcdef', 3)  == 'def'
"""

所以,我可以使用或不使用for语句构建确切的代码,它会给我(打印)相同的值,但我不知道什么是更常见的方法。如果我去寻求陈述,我就这样做:

for i in s_str:
    if len(s_str) >= n:
        return a_str[-n:]
    elif len(s_str) < n:
        return ''

如果您事先知道在这种情况下您不打算使用i,那么使用for语句是否错误?我可以轻松删除for statement并仍然得到正确的答案,那么是否足够的理由不使用它?

3 个答案:

答案 0 :(得分:2)

即使您不打算使用循环索引(例如,当您想要执行n次某个任务时),也存在for循环被证明合理的情况。话虽如此,正如您所示,这个问题可以更优雅的方式解决。

另请注意,您的代码会迭代字符串len(str)次,除非它在第一次迭代中返回,因此在这种情况下for循环是多余的。

答案 1 :(得分:1)

&#34;那么有足够的理由不使用它吗?&#34;

是。简单比复杂更好。

答案 2 :(得分:1)

你实际上并不需要for循环

if len(a_str) >= n:
        return a_str[-n:]

它也更好,更简单。