我有这个问题,我希望得到你的专家答案,因为我希望在编程方面做得更好。
"""
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
并仍然得到正确的答案,那么是否足够的理由不使用它?
答案 0 :(得分:2)
即使您不打算使用循环索引(例如,当您想要执行n次某个任务时),也存在for循环被证明合理的情况。话虽如此,正如您所示,这个问题可以更优雅的方式解决。
另请注意,您的代码会迭代字符串len(str)
次,除非它在第一次迭代中返回,因此在这种情况下for循环是多余的。
答案 1 :(得分:1)
&#34;那么有足够的理由不使用它吗?&#34;
是。简单比复杂更好。
答案 2 :(得分:1)
你实际上并不需要for循环
if len(a_str) >= n:
return a_str[-n:]
它也更好,更简单。