python输入任意数量字符拼接字符串

def get():
    list = []
    x = 1
    while x==1:
        i = str(input())
        list.append(i)
        print("是否还要再输入?否请填0,是请填1")
        x = int(input())
    return list
def concatenate(*args):
    return "",join(args)
m = concatenate(get())
print(m)

为什么这个一直报错呀?说没有Join函数,但是我真的不知道怎么改了,5555


def get():
    list = []
    x = 1
    while x == 1:
        i = str(input())
        list.append(i)
        print("是否还要再输入?否请填0,是请填1")
        x = int(input())
    return list


def concatenate(*args):
    return "".join(args[0])   # 这里不是逗号,而是点号

# get函数返回的是一个列表。concatenate函数把get函数的返回值传入进去后,args的值为([....],)所以我改成了 args[0]
# 也可以改成 def concatenate(args): return return "".join(args)
m = concatenate(get())
print(m)

该回答引用chatgpt:
在 concatenate() 函数中,join() 方法前面应该是一个空字符串 "" 而不是逗号 ,,所以需要修改为 return "".join(args)。
在 get() 函数中,变量名不应该用 Python 中的保留字 list,所以可以修改为 lst 或其他名称。
在 concatenate() 函数调用中,需要给 get() 函数传入参数,否则程序将会在输入时等待无限期,因此可以修改为 m = concatenate(*get())。
修改后的代码如下:

def get():
    lst = []
    x = 1
    while x==1:
        i = str(input())
        lst.append(i)
        print("是否还要再输入?否请填0,是请填1")
        x = int(input())
    return lst

def concatenate(*args):
    return "".join(args)

m = concatenate(*get())
print(m)


img

"",join(args)
改为
"".join(args)
你把点打成逗号了

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/1094906
  • 你也可以参考下这篇文章:Python中连接字符串用join还是+
  • 除此之外, 这篇博客: 8种Python字符串拼接的方法,你知道几种?中的 一、join函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • join 是 python 中字符串自带的一个方法,返回一个字符串。使用语法为:

    sep.join(可迭代对象) --str
    # sep 分隔符 可以为空
    

    将一个包含多个字符串的可迭代对象(字符串、元组、列表),转为用分隔符sep连接的字符串。

    列表

    列表必须为非嵌套列表,列表元素为字符串(str)类型

    list1 = ["123", "456", "789"]
    print(''.join(list1)) # '123456789'
    print('-'.join(list1)) # '123-456-789'
    

    元组

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    tuple1 = ('abc', 'dd', 'ff')
    print(''.join(tuple1)) # 'abcddff'
    print('*'.join(tuple1)) # 'abc*dd*ff'
    

    字符串

    str1 = "hello Hider"
    print(''.join(str1))
    print(':'.join(str1))
    # 'h:e:l:l:o: :H:i:d:e:r'
    

    字典

    默认拼接 key 的列表,取 values 之后拼接值。

    dict1 = {"a":1, "b":2, "c":3}
    print(''.join(dict1)) # 'abc'
    print('*'.join(dict1)) # 'a*b*c'
    # 拼接的是key
    
    # 值也必须是字符才可以拼接
    dict1 = {"a":1, "b":2, "c":3}
    print('*'.join(str(dict1.values())))
    # 'd*i*c*t*_*v*a*l*u*e*s*(*[*1*,* *2*,* *3*]*)' 否则
    
  • 以下回答由chatgpt基于相关博客总结生成:

    代码如下:

    # 定义一个空字符串
    output_string = ""
    
    # 循环读取任意数量的字符
    while True:
        # 读取输入的字符
        char = input("请输入一个字符:")
    
        # 如果字符为空,则结束循环
        if char == "":
            break
    
        # 将读取的字符拼接到output_string中
        output_string += char
    
    # 输出拼接后的字符串
    print("拼接后的字符串为:", output_string)
    

    思路解析:

    1. 定义一个空字符串output_string。

    2. 使用while循环,循环读取任意数量的字符。每读取一个字符,就拼接到output_string字符串的末尾。

    3. 检测读取到的字符是否为空,如果为空,则退出循环。

    4. 输出拼接后的字符串。

    这样就解决了在Python中输入任意数量的字符,并将它们拼接成一个字符串的问题。