這個問題在這里已經有了答案: python 列印陳述句中的意外沒有 1 個回答 15 小時前關閉。
所以我制作了這個代碼并且它很棒,但問題是我的輸出下面有一個“none”。我該如何改變它。順便說一句,我的代碼是這樣的..
def up_and_down(k):
return (*range(1, k), *range(k, 0, -1))
def diamond(k):
pad = '#'
fill = '*'
w = (2 * k) - 1
for i in up_and_down(k):
print(f'{fill * len(up_and_down(i)):{pad}^{w}}')
print(diamond(k))
def triangle(k):
w = (2 * k) - 1
pad = '#'
fill = '*'
for i in range(1, k 1):
print(f'{fill * len(up_and_down(i)):{pad}^{w}}')
print(triangle(k))
我的輸出列印出來......
######*######
#####***#####
####*****####
###*******###
##*********##
#***********#
*************
#***********#
##*********##
###*******###
####*****####
#####***#####
######*######
None
######*######
#####***#####
####*****####
###*******###
##*********##
#***********#
*************
None
當我使用 PRINT 陳述句時,如何確保影像已回傳并且“無”也不會出現在下方?順便說一句,我需要使用列印,因為這是我的教授提出的要求。
uj5u.com熱心網友回復:
根據您所描述的(即需要使用print),您需要回傳一個字串,然后在函式外列印該字串。
def up_and_down(k):
return (*range(1, k), *range(k, 0, -1))
def diamond(k):
pad = '#'
fill = '*'
w = (2 * k) - 1
return '\n'.join(f'{fill * len(up_and_down(i)):{pad}^{w}}' for i in up_and_down(k))
def triangle(k):
w = (2 * k) - 1
pad = '#'
fill = '*'
return '\n'.join(f'{fill * len(up_and_down(i)):{pad}^{w}}' for i in range(1, k 1))
k = 10
print(diamond(k))
print(triangle(k))
如果沒有顯式return,函式將回傳None。所以在你的原始代碼中,print(diamond(k))就像print(None),這就是你看到None.
如果\n由于我無法理解的原因而無法使用(但顯然是由于您的講師的偏好),請改用以下returns(回傳行生成器,而不是單個多行字串):
return (f'{fill * len(up_and_down(i)):{pad}^{w}}' for i in up_and_down(k))
return (f'{fill * len(up_and_down(i)):{pad}^{w}}' for i in range(1, k 1))
分別,然后使用列印輸出
for line in diamond(k):
print(line)
for line in triangle(k):
print(line)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314368.html
下一篇:根據規則對字串串列求和
