python-3.x 函数未返回具有唯一字符的字符串

5n0oy7gb  于 2023-03-09  发布在  Python
关注(0)|答案(3)|浏览(133)
def dup(str):
  str1=""
  for ch in str:
    if ch not in str1:
        print(ch)
        str1 = str1+ch
    return(str1)

为什么我没有得到重复的空闲字符串,我得到的是原始字符串
我尝试返回具有唯一字符的字符串,但得到的是原始字符串

b5buobof

b5buobof1#

我认为这是一个缩进问题。您的return语句被缩进,以便它位于for循环中。该函数将只返回第一个字符,因为在将第一个字符添加到str1后立即遇到返回。将它向后缩进一级,它应该可以正常工作。
注意:str也是Python字符串对象类型的名称。为了避免混淆,您可能需要选择另一个变量名,例如:

def dup(st):
  st1=""
  for ch in st:
    if ch not in st1:
        print(ch)
        st1 = st1 + ch
  return st1
ulmd4ohb

ulmd4ohb2#

Python中的Tabbing-Syntax有问题,你把你的return(str1)放到了for循环中,这个循环返回了字符串的一个字符ch,因为你想返回整个字符串,所以你需要把return语句放到循环之外。

def dup(str):
    str1 = ""
    for ch in str:
        if ch not in str1:
            print(ch)
            str1 = str1 + ch
    return (str1)

循环只运行一次,然后立即返回字符串,这将导致函数退出,因为你已经返回了一些东西。我上面提供的代码应该工作。

qvtsj1bj

qvtsj1bj3#

它可以很好地与下面的代码一起工作。

def dup(str): 
    str1="" 
    for ch in str: 
        if ch not in str1: 
            print(ch) 
            str1 = str1+ch 
    return(str1)

请给予我一个样本输入字符串和输出你在你的系统。

相关问题