亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓一個大字符串(又名 str 圖片)一個接一個打印?

如何讓一個大字符串(又名 str 圖片)一個接一個打???

aluckdog 2022-06-14 16:13:55
+___ +___ +___ |1 / |2 / |3 / |__\ |__\ |__\ |    |    | 我試圖讓標志一個接一個地出現,我能想到的唯一方法是將圖片的每一部分分配給各種變量(這意味著添加top = '+___'等等)。但是如果它確實適用于較小的圖片,應該我用更大的?創建一個數組并遍歷它在時間和內存計劃中也不是一個好的解決方案。我試圖將所有內容附加在一個字符串中,但使用end=''它并不能按照我需要的方式塑造形式(僅從新行開始)。我會很感激你的建議,在此先感謝。n = int(input())flag = """+___  |  /  |__\  |   """for i in range(1, n + 1):    print(flag[:9] + str(i) + flag[10:])PS-這是我找到的一個練習,但不知道如何有效地解決。
查看完整描述

2 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

我不明白為什么迭代實際上會成為問題,除非您打印數百萬個標志。我認為這將是最快的。無論如何,優化總是你最不想做的事情,你首先需要一個有效的算法。


我不會真正解決這個練習,而是一些事情。您可以先一行一行地使用強大的星號運算符:


print("ORA  " * n)

print("MUDA " * n)

由于所有字符的間距相同,您可以看到它打印得很好。重要的是要檢查所有行是否具有相同數量的字符,或者對其進行填充(例如,在行尾插入空格)。


現在,關于更改字母,您需要更改一些算法:


print("ORA   " * n)

for i in range(n):

    print("HELLO ".replace('E', i))

print(i)

print("MUDA  " * n)

如果你擔心你的老師會不喜歡這種編碼風格,首先,這對你很好,然后你確實可以使用數組,有點像這樣:


# Notice that all my line have the same length

flag = """

ORA  

MUDA 

"""


f_lines = flag.split("\n")

for l in f_lines:

    print(l * n)

考慮到這一點,我認為您擁有解決鍛煉所需的所有關鍵。


查看完整回答
反對 回復 2022-06-14
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

您不能并排打印 - 您的光標移動到下一行,每次打印都會


頂部 = '+___'


您可以將圖片拆分為單獨的行。它創建了一個可以迭代的列表。


然后你可以使用簡單的乘法打印一些字符串的倍數*:


n = int(input())

flag = """

+___  

|  /  

|__\  

|     

"""

for line in flag.split("\n"):

    print(line * n)

結果:


+___  +___  +___  +___  +___  

|  /  |  /  |  /  |  /  |  /  

|__\  |__\  |__\  |__\  |__\  

|     |     |     |     |     

但這僅在您的原始標志的所有行長度相等時才有效。如果您不想確保其中有空格,您可以稍后添加填充。使用字符串格式或一些巧妙的技巧。


至于數字,字符串格式是你的朋友!


flag = """

+___  

|{} /  

|__\  

|     

"""

請注意這里的標志是如何被破壞的 -{}是兩個字符,但我們將只使用一個數字來代替它!


然后我們需要一個內部循環,因為每個標志需要一個不同的數字。


for line in flag.split("\n"):

    for i in range(1, n+1):

        print(line.format(i), end="") #by default each print is one line, we want to stay in the same line!

    print() #print the new line only after n * part of the flag is printed

結果:


+___  +___  +___  +___  +___  

|1 /  |2 /  |3 /  |4 /  |5 /  

|__\  |__\  |__\  |__\  |__\  

|     |     |     |     |     


查看完整回答
反對 回復 2022-06-14
  • 2 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號