我正在制作一个小摩尔斯电码转换器,一切正常;但是,输出没有正确显示。
CIPHER = {'E': "⦾", "A": '⦿', 'R': '⦾⦿', 'I': '⦿⦾', 'O': '⦿⦿',
'T': '⦾⦾⦿', 'N': '⦾⦿⦾', 'S': '⦾⦿⦿', 'L': '⦿⦾⦾',
'C': '⦿⦾⦿', 'U': '⦿⦿⦾', 'D': '⦿⦿⦿',
'P': '⦾⦾⦾⦿', 'M': '⦾⦾⦿⦾', 'H': '⦾⦾⦿⦿',
'G': '⦾⦿⦾⦾', 'B': '⦾⦿⦾⦿', 'F': '⦾⦿⦿⦾',
'Y': '⦾⦿⦿⦿', 'W': '⦿⦾⦾⦾', 'K': '⦿⦾⦾⦿',
'V': '⦿⦾⦿⦾', 'X': '⦿⦾⦿⦿', 'Z': '⦿⦿⦾⦾',
'J': '⦿⦿⦾⦿', 'Q': '⦿⦿⦿⦾',
'1': '⦾⦾⦾⦾⦿', '2': '⦾⦾⦾⦿⦿', '3': '⦾⦾⦿⦿⦿',
'4': '⦾⦿⦿⦿⦿', '5': '⦿⦿⦿⦿⦿', '6': '⦿⦾⦾⦾⦾',
'7': '⦿⦿⦾⦾⦾', '8': '⦿⦿⦿⦾⦾', '9': '⦿⦿⦿⦿⦾',
'0': '⦿⦿⦿⦿⦿'
}
def main():
msg = input("Type your message below:\n\n")
for char in msg:
if char == ' ':
print (' '*7,)
elif char not in 'abcdefghijklmnopqrstuvwxyz1234567890':
print ('')
else:
print (CIPHER[char.upper()])
我希望输出" Hello,World!"是这样的:
⦾⦿⦾⦾⦿⦾⦾⦿⦿ ⦿⦿⦾⦿⦿⦾⦾⦿⦿⦿
然而,实际输出看起来更像是这样:
⦾
⦿⦾⦾
⦿⦾⦾
⦿⦿
⦿⦿
⦾⦿
⦿⦾⦾
⦿⦿⦿
我尝试随机删除并放置逗号。然后,我尝试删除' \ n'输入上的语句,但输出没有任何变化。我尝试使用这里显示的.splitlines(For loop outputting one character per line),但它完全停止了打印!然后,我用谷歌搜索它并没有找到任何接近这个问题的东西,所以我开始阅读有关Python字符串的更多资料。我找到了一个网站(https://automatetheboringstuff.com/chapter6/),其中包含大量关于Python字符串的材料,但我找不到任何可以解决我问题的网站。
非常感谢你的帮助!
答案 0 :(得分:0)
您似乎习惯于在print
参数末尾使用逗号的Python2约定,以防止自动添加换行符。这不再适用于Python3。您应该使用关键字参数end=''
,如下所示:print (' '*7, end='')
答案 1 :(得分:0)
使用
print(sth, end='')
打印时没有断线。