我已经搜索了大量的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”的内容。
请帮忙! :)
答案 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'的字符串,因此您应该只创建这些数字的序列并在
后追加/连接它们