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()