我试图遍历字符串并返回已在函数中声明的字符串长度。
它将接收两个参数,x和chars。该函数将返回一个字符串,该字符串由从索引0到索引x-1的字符值组成。
我想收到的回报是
print rangeLoopStringParam1("bobsyouruncle", 5)
# -> "bobsy"
print rangeLoopStringParam1("supercalifragilisticexpialidoshus", 8)
# -> "supercal"
这是我到目前为止的代码,但我觉得我没有走得太远。任何人都可以指导我解决这个问题吗?
def rangeLoopStringParam1(chars, x):
for i in range(0, x, len(chars)):
chars += chars
return chars
答案 0 :(得分:3)
list slicing怎么了?
def stringRange(chars, x):
return chars[:x]
这里发生的事情是我们将字符串视为字符列表,我们告诉python给出列表中的第一个x
元素(字符串的第一个x
个字符)。请记住,列表切片遵循语法list[start:end]
(在我们的示例中,start
隐含为0)。这意味着,由于列表从0开始,列表切片确实返回索引从0(包括)到x
(非包含)的所有元素的列表。
有关更详细的说明,请参阅this关于列表切片如何工作的Greg Hewgill的精彩答案。
答案 1 :(得分:2)
另外请注意,你可以做lambda函数。
yourFunction = lambda string, num: string[:num]
print(yourFunction("bobsyouruncle", 5))
返回
bobsy
供参考:
答案 2 :(得分:1)
Python具有一些非常强大的内置功能。其中一个(切片)完全符合您的要求。
def rangeLoopStringParam1(chars, x):
return chars[:x]
答案 3 :(得分:0)
您可以使用以下方法直接拆分字符串:
new_string = string [:n],其中n是你想要的长度。