多个变量不会打印到一行

时间:2017-06-13 15:00:05

标签: python function printing

我已经搜索了大量的stackoverflow和其他帮助网站以获得答案,但是没有一个解决方案似乎有效。

我是Python的新手,所以这可能是一个非常简单的修复,我只是无法使用全局x,非本地x,print(x,end ='')或我找到的其他建议。

如果在数据集中满足某些条件,我已尝试将变量分配给(即a ='Message')。我想在函数末尾打印这些变量。我可以在每个语句后使用print函数在多行上进行打印,但我希望所有字符串都打印到一行。

我的代码:

column = [int(v) for v in entries[3:]]
def function():
    if column[0] == 100:
        print('Message')
        if column[1] >= 200 and column[2] == 300:
            if len(column) >= 9:
                digit = [chr(x) for x in column[4:9]]
                for l in range(0, 5):
                    print('Message Update: ' + digit[l])
            if len(column) >= 13:
                optional_digit = [chr(d) for d in column[9:13]]
                for m in range(0, 4):
                    print('Optional Field: ' + optional_digit[m])
            else:
                print('No Optional Field')
        else:
            print('Not a Message Update)
    else:
        print('Not a Message')
    print('')
function()

在一个完美的世界中,假设数据集符合我的条件,我希望在一行上执行函数后,为一个数据集看到类似“消息消息更新542”的内容。

请帮忙! :)

4 个答案:

答案 0 :(得分:1)

您可以构建一个字符串,其中包含您的打印语句,然后在结束时打印所有内容,而不是像您一样。

column = [int(v) for v in entries[3:]]
def function():
    if column[0] == 100:
        msg = 'Message'
        if column[1] >= 200 and column[2] == 300:
            if len(column) >= 9:
                digit = [chr(x) for x in column[4:9]]
                for l in range(0, 5):
                    msg = '%s Message Update: %d' %(msg, digit[l])
            if len(column) >= 13:
                optional_digit = [chr(d) for d in column[9:13]]
                for m in range(0, 4):
                    msg = '%s\n\tOptional Field: %d' %(msg, optional_digit[m])
            else:
                msg = '%s\n\tNo Optional Field' %msg
        else:
            msg = '%s Not a Message Update' %msg
    else:
        msg = '%s Not a Message' %msg
    print(msg)
function()

我不确定你是否想要同一行中的可选字段 - 我实际上将它删除到一个新行并标记了一次,但如果你想要它们在同一行上,你可以轻松删除它。

答案 1 :(得分:0)

要删除python(python3)末尾的换行符,请按以下方式调用:

print(your_string, end="")

答案 2 :(得分:0)

column = [int(v) for v in entries[3:]]

def function():
    print_string = ''
    if column[0] == 100:
        print_string += 'Message '
        if column[1] >= 200 and column[2] == 300:
            if len(column) >= 9:
                digit = [chr(x) for x in column[4:9]]
                for l in range(0, 5):
                    if 'Message Update: ' in print_string:
                        print_string += digit[l]
                    else:
                        print_string += f'Message Update: {digit[l]}'
            if len(column) >= 13:
                optional_digit = [chr(d) for d in column[9:13]]
                for m in range(0, 4):
                    if 'Optional Field: ' in print_string:
                        print_string += optional_digit[m]
                    else:
                        print_string += f'Optional Field: {optional_digit[m]}'
            else:
                print_string += 'No Optional Field '
        else:
            print_string += 'Not a Message Update '
    else:
        print_string += 'Not a Message '
    print(print_string) 

function()

答案 3 :(得分:0)

尝试将消息的所有部分附加到一个数组,然后打印它们

column = [int(v) for v in entries[3:]]
def function():
    message = []
    if column[0] == 100:
        message.append('Message')
        if column[1] >= 200 and column[2] == 300:
            if len(column) >= 9:
                digit = [chr(x) for x in column[4:9]]
                message.append('Message Update:')
                message.append(''.join(str(digit[l]) for l in range(5)))
            if len(column) >= 13:
                optional_digit = [chr(d) for d in column[9:13]]
                for m in range(0, 4):
                    message.append('Optional Field: ' + optional_digit[m])
            else:
                message.append('No Optional Field')
        else:
            message.append('Not a Message Update)
    else:
        message.append('Not a Message')
    print(*message, end='')
function()

修改

您似乎希望得到类似于'消息消息更新123'的字符串,因此您应该只创建这些数字的序列并在

后追加/连接它们