def dup(str): str1="" for ch in str: if ch not in str1: print(ch) str1 = str1+ch return(str1)
为什么我没有得到重复的空闲字符串,我得到的是原始字符串我尝试返回具有唯一字符的字符串,但得到的是原始字符串
b5buobof1#
我认为这是一个缩进问题。您的return语句被缩进,以便它位于for循环中。该函数将只返回第一个字符,因为在将第一个字符添加到str1后立即遇到返回。将它向后缩进一级,它应该可以正常工作。注意:str也是Python字符串对象类型的名称。为了避免混淆,您可能需要选择另一个变量名,例如:
return
for
str1
str
def dup(st): st1="" for ch in st: if ch not in st1: print(ch) st1 = st1 + ch return st1
ulmd4ohb2#
Python中的Tabbing-Syntax有问题,你把你的return(str1)放到了for循环中,这个循环返回了字符串的一个字符ch,因为你想返回整个字符串,所以你需要把return语句放到循环之外。
return(str1)
ch
def dup(str): str1 = "" for ch in str: if ch not in str1: print(ch) str1 = str1 + ch return (str1)
循环只运行一次,然后立即返回字符串,这将导致函数退出,因为你已经返回了一些东西。我上面提供的代码应该工作。
qvtsj1bj3#
它可以很好地与下面的代码一起工作。
请给予我一个样本输入字符串和输出你在你的系统。
3条答案
按热度按时间b5buobof1#
我认为这是一个缩进问题。您的
return
语句被缩进,以便它位于for
循环中。该函数将只返回第一个字符,因为在将第一个字符添加到str1
后立即遇到返回。将它向后缩进一级,它应该可以正常工作。注意:
str
也是Python字符串对象类型的名称。为了避免混淆,您可能需要选择另一个变量名,例如:ulmd4ohb2#
Python中的Tabbing-Syntax有问题,你把你的
return(str1)
放到了for
循环中,这个循环返回了字符串的一个字符ch
,因为你想返回整个字符串,所以你需要把return语句放到循环之外。循环只运行一次,然后立即返回字符串,这将导致函数退出,因为你已经返回了一些东西。我上面提供的代码应该工作。
qvtsj1bj3#
它可以很好地与下面的代码一起工作。
请给予我一个样本输入字符串和输出你在你的系统。