2024-04-25 12:24:02 发布
网友
def buggy_join(input, sep=","): list=input print list str="".join(str(x) for x in list) print str str=sep.join(str) return str buggy_join(range(6))
这是我的代码,我应该在这里得到结果"0,1,2,3,4,5"。我的代码哪里出错了。请告诉我。你知道吗
"0,1,2,3,4,5"
您使用空字符串分隔符连接列表,然后使用逗号连接结果字符串。你知道吗
只需在列表中以逗号开头:
def working_join(input, sep=","): result = sep.join([str(v) for v in input]) return result
将str.join()与字符串输入一起使用会在所有单个字符之间放置分隔符:
str.join()
>>> ','.join('Hello world!') 'H,e,l,l,o, ,w,o,r,l,d,!'
那是因为字符串也是一个序列。这对于计数到9的范围是很好的,但是对于10及以上的范围,您应该在1和0字符之间加一个逗号。你知道吗
9
10
1
0
尽量不要使用像str和list这样的名称;它们是内置类型,通过在自己的代码中对其他对象使用它们,最终会屏蔽内置类型,并且在需要时无法使用它们。因此,input也是一个内置函数,但是在这个函数中不太可能需要它。你知道吗
str
list
input
因为您尝试使用str作为内置类型(将input中的单个元素转换为字符串)和作为本地名称,所以函数在函数中抛出一个NameError;Python,将str标记为本地,而不是内置对象。这将导致生成器表达式中的str引用函数中的str变量,整个过程将崩溃,因为尚未为该名称分配任何内容。你知道吗
NameError
您使用空字符串分隔符连接列表,然后使用逗号连接结果字符串。你知道吗
只需在列表中以逗号开头:
将
str.join()
与字符串输入一起使用会在所有单个字符之间放置分隔符:那是因为字符串也是一个序列。这对于计数到
9
的范围是很好的,但是对于10
及以上的范围,您应该在1
和0
字符之间加一个逗号。你知道吗尽量不要使用像
str
和list
这样的名称;它们是内置类型,通过在自己的代码中对其他对象使用它们,最终会屏蔽内置类型,并且在需要时无法使用它们。因此,input
也是一个内置函数,但是在这个函数中不太可能需要它。你知道吗因为您尝试使用
str
作为内置类型(将input
中的单个元素转换为字符串)和作为本地名称,所以函数在函数中抛出一个NameError
;Python,将str
标记为本地,而不是内置对象。这将导致生成器表达式中的str
引用函数中的str
变量,整个过程将崩溃,因为尚未为该名称分配任何内容。你知道吗相关问题 更多 >
编程相关推荐