Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编写函数,以便在输入时打印delimeter过长?_Python_String_Split_Function - Fatal编程技术网

Python 如何编写函数,以便在输入时打印delimeter过长?

Python 如何编写函数,以便在输入时打印delimeter过长?,python,string,split,function,Python,String,Split,Function,我在写函数时遇到了麻烦,所以当输入多个字符时,它会打印出delimeter太长的语句。返回值none,但我不知道怎么做。对于python来说是个新手,这对了解一些信息会有很大帮助。提前谢谢 这就是我所做的 def my_split(_,_): my_sep = input("seperator: ") my_str = input("sentence: ") def main(): #your main program here print("Enter a

我在写函数时遇到了麻烦,所以当输入多个字符时,它会打印出delimeter太长的语句。返回值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()
def my_split(u,u):
my_sep=输入(“分隔符:”)
my_str=输入(“句子:”)
def main():
#你的主要节目在这里
打印(“输入要拆分的字符串:”)
打印(“输入分隔符:”)
打印(“结果为:”)
关于(我的九月):
如果(我的九月)
但不清楚您希望将其放在代码中的什么位置。您试图从哪个函数返回
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)
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()
填写了
#在此处执行实际的代码拆分
,下面是我运行两次此操作时发生的情况:

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
这里您定义了一个名为“my_split”的函数。您告诉Python“my_split”接受两个参数,但您将这两个参数都命名为“u”(下划线)。这是无效的。由于此函数看起来不需要来自程序的任何输入,而是从用户处获取输入,因此您可以在不使用任何参数的情况下声明此函数:

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.")

您几乎肯定不想从
input
更改为
raw\u input
,因为OP可能在Python 3中工作(给定
print
函数而不是
print
语句)。
for(my_sep):
    if(my_sep <1):
    print(" the delimeter is too long.")
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()