Python 我是否应该在这里使用for语句?

Python 我是否应该在这里使用for语句?,python,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 Exa

我有一个问题,我想得到你们的专家答案,因为我想在编程方面做得更好

"""
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'
"""
“”“
参数s_str是一个字符串。参数n是一个int>0。
函数x()应该返回s_str的最后n个字符,如果
s_str的长度大于等于n,如果s_str的长度小于n,则为空字符串
例子:
x('abcdef',3)='def'
"""
因此,无论是否使用for语句,我都可以构建精确的代码,它会给我(打印)相同的值,但我不知道更常见的方法是什么。如果我想要一个for语句,我会这样做:

for i in s_str:
    if len(s_str) >= n:
        return a_str[-n:]
    elif len(s_str) < n:
        return ''
s_str中的i的
:
如果len(s_str)>=n:
返回一个_str[-n:]
elif len(s_str)
在这种情况下,如果事先知道不打算使用
i
,那么使用for语句的想法是否错误?我可以很容易地删除语句的
,并且仍然得到正确的答案,那么这就足够不使用它的理由了吗?

“那么这就足够不使用它的理由了吗?”


对。简单比复杂好。

实际上不需要for循环

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

它也更好、更简单。

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


另外请注意,您的代码在字符串
len(str)
上迭代了几次,但它在第一次迭代中返回,因此本例中的for循环是多余的。

不,这与while或for无关:不使用它们是一种不好的做法吗?或者只使用if?的错误做法?这里没有理由对
循环使用
<当您想查看
列表中的所有项目时,code>for
循环用于迭代某个项目。编写不起作用的代码是“糟糕的做法”。哦,我没有完全看到代码,甚至不需要在这里循环。谢谢@PatrickHaugh!非常感谢你的帮助。所以,你的意思是我不需要使用它,因为少就是多。因此,只使用if语句,而不使用while或for?正确。您应该积极尝试使您的代码尽可能简单易读。拥有“额外”代码通常是不受欢迎的。谢谢,谢谢!是的,我现在明白了。不要编写您不需要使用的代码,即使在那里有一个if语句似乎“很奇怪”。谢谢,阿维夫。