所以我應該用一個輸入的int值的二維數組打印一張帶有Ascii txt的笑臉。到目前爲止,我的代碼將int更改爲Ascii,然後打印,但它只打印2行。打印一個微笑的臉:)
我敢肯定,這是對我的代碼的誤解,但我不知道如何解決它。
我的代碼:
def display(x):
for i in x:
for j in i:
j = chr(j)
print (j, end = ' ')
所以我應該用一個輸入的int值的二維數組打印一張帶有Ascii txt的笑臉。到目前爲止,我的代碼將int更改爲Ascii,然後打印,但它只打印2行。打印一個微笑的臉:)
我敢肯定,這是對我的代碼的誤解,但我不知道如何解決它。
我的代碼:
def display(x):
for i in x:
for j in i:
j = chr(j)
print (j, end = ' ')
這個怎麼樣
def display(x):
for i in x:
for j in i:
j = chr(j)
print (j, end = ' ')
print()
如果每個i
代表一條線,你需要添加額外的打印下一行重新開始
這非常有道理。感謝您的幫助! – Andrew
您需使用Python 3.X使用end=''
。在Python 2.x中,您只需用逗號結束行。
print j,
我正在使用python 3.x – Andrew
你也可以在py2中使用它,以及相應的將來導入 – Copperfield
FWIW,打印函數在Python 2.6+中可用,你只需要使用'from __future__ import print_function'其他進口之前的腳本。 –
A「二維數組」大概是一個序列的序列,每個內部序列呈現一條線。因此,您需要在每行之後添加一個換行符。你的代碼沒有發現新行,我懷疑你只能看到2行,因爲你的顯示在某個時候增加了一個軟線斷行。
我想你只需要在最後添加一條print()
行。
...
print (j, end = ' ')
print()
這裏是等效代碼,它可以與一個示例人臉一起工作。
# Create ints for known face
orig = '''\
_____
| O |
| - |
-----
'''
ints = [[ord(c) for c in line] for line in orig.splitlines()]
for line in ints: print(line)
# Reproduce orig
copy = '\n'.join(((''.join(chr(i) for i in line)) for line in ints))
print(copy)
打印
[95, 95, 95, 95, 95]
[124, 32, 79, 32, 124]
[124, 32, 45, 32, 124]
[45, 45, 45, 45, 45]
_____
| O |
| - |
-----
我喜歡你如何使一個宇宙離開一個原子....忘記山和痣山的例子它只是沒有做你的帖子正義。感謝......幫助? – Andrew
對於調試,當你有你的代碼'打印(LEN(I))'和'打印時會發生什麼(LEN(X))'在你內心的每一次迭代和外環? – selbie
請使用您正在使用的特定Python版本的標籤。 – Soviut
當我使用x(len(x))中的任何一個時,它將打印笑臉,但最後是9。 – Andrew