0

我在如何写出我的函数时遇到了麻烦,所以当输入多个字符时,它会打印出分隔符太长的语句。并返回值 none。但我不知道该怎么做。python新手,对一些信息有很大帮助。提前感谢我所做的。

def my_split(_,_):
    my_sep = input("seperator: ")
    my_str = input("sentence: ")



def main():
    #your main program here
    print("Enter a string to be split: ")
    print("Enter the delimiter character: ") 
    print("the result is: ")


for(my_sep):
    if(my_sep <1):
    print(" the delimeter is too long.")

return None

print("enter a string to be split: ")
print("enter the delimeter character: ")
print(" the result is: ")



main()
4

2 回答 2

1
if len(my_sep) > 1:
    print(" the delimiter is too long")
    return None

但不清楚你想把它放在你的代码中的什么地方。你想None从什么函数返回?我想你想要这样的东西:

def main():
    #your main program here
    my_str = input("Enter a string to be split: ")
    my_sep = input("Enter the delimiter character: ") 
    if len(my_sep) > 1:
        print(" the delimeter is too long.")
        return None
    result = # do the actual splitting code here
    return result

result = main()
print("the result is:", result)

填写# do the actual splitting code here完后,我运行两次时会发生以下情况:

Enter a string to be split: Hello, World
Enter the delimiter character: ,
 the result is: ['Hello', ' World']

Enter a string to be split: Hello, World
Enter the delimiter character: lo
 the delimiter is too long.
 the result is: None
于 2012-11-01T20:16:55.097 回答
0
def my_split(_,_):
    my_sep = input("seperator: ")
    my_str = input("sentence: ")

在这里,您定义了一个名为“my_split”的函数。你告诉 Python “my_split” 有两个参数,但是你给这两个参数都命名为“_”(下划线)。这是无效的。由于该函数看起来不需要程序的任何输入,而是从用户那里获取输入,因此您可以在不带任何参数的情况下声明该函数:

def my_split():
    my_sep = raw_input("seperator: ")
    my_str = raw_input("sentence: ")
    return my_sep,my_str

请注意,我也从 input() 更改为 raw_input()。input() 是一个执行从终端输入的代码的函数。这不是你想要做的。您还需要返回您收集的值。

def main():
    #your main program here
    print("Enter a string to be split: ")
    print("Enter the delimiter character: ") 
    print("the result is: ")

您的 main() 函数在技术上没有任何问题,但它并没有按照您的意愿去做。它打印这三行并结束。这是一个更完整的 main(),它利用了我们已经编写的 my_split 函数:

def main():
    my_sep,my_str = my_split()
    result = my_str.split(my_sep)
    print "the result is: ", result

请注意,您可以从一个函数返回两个值,并在调用该函数时设置两个值。

for(my_sep):
    if(my_sep <1):
    print(" the delimeter is too long.")

这里的第一行不是有效的python。 for是一个循环结构,旨在循环遍历组中的每个元素。另外,您想知道长度是否太长,但您的条件是“小于一”。第三,您的 print 调用应该缩进以表明它是“if”语句主体的一部分。最后,这都应该在 main() 函数中。因此,最终的程序如下所示:

def my_split():
    my_sep = raw_input("seperator: ")
    my_str = raw_input("sentence: ")
    return my_sep,my_str

def main():
    my_sep,my_str = my_split()
    if len(my_sep) > 1:
        print " the delimeter is too long."
    else:
        result = my_str.split(my_sep)
        print "the result is: ", result


if __name__=='__main__':
    main()
于 2012-11-01T20:32:04.523 回答