所以我有一個CS課的作業。這是非?;镜模覍@門課很感興趣,我想我想讓代碼更“花哨”。我一直在谷歌搜索,看看如何使用一些 ASCII 藝術和下面的一些用戶輸入來打印結果。我已經完成了藝術,輸入部分也快準備好了!我希望他們排好隊。我想將用戶輸入的第一個名稱限制為一定數量的字符,然后在特定位置打印第二個字符。我希望我輸入的內容有意義!對于上下文,分配是:給定一個人的名字,他們的年齡,他們的狗的名字和他們的狗的年齡(以人類年為單位),顯示一張類似下圖的圖片,顯示的名字和人和狗的年齡都以“狗年”為單位”印在圖片底部。所以我到目前為止的代碼是這樣的.....:#Assignment #1, I love ascii art so I hope you don't mind that I changed things up a little!InputName = input("Please enter your name: ")InputHumanAge = int(input("Please enter your age: "))DogName = input("What is your dog's name? ")InputDogAge = int(input("How old is your dog in human years? "))HumanYears = InputHumanAge*7DogYears = InputDogAge*7print(' ________ ')print(' / \ ___ ___ ')print(' / \ | \_____/ | ')print(' / / \______\__\ \ / |\/ \/| \ ')print(' | | O O | | \_/ | /\ /\ | \_/ ')print(' / | __ / | |_\/ \/_| ')print(' \ \ _______ / / / \o/ \ ')print(' | __| |__ | \___/O\___/ ')print(' '+ InputName +' '+ DogName +' ')print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')我現在的問題是狗下面的文字沒有按照我想要的方式排列。任何幫助表示贊賞<3謝謝!
2 回答

RISEBY
TA貢獻1856條經驗 獲得超5個贊
如果您使用的是 Python 3.6+,則可以f-strings這樣使用:
print(f' {InputName:<28s}{DogName}')
print(f' {HumanYears:<28d}{DogYears}')
代替:
print(' '+ InputName +' '+ DogName +' ')
print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')
要向左或向右移動狗的屬性,分別減少或28增加f-strings.
這<28s意味著左對齊并用最多 28 個字符寬的空格填充右對齊。同上,<28d但對于整數。

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
使用 .format() 為單詞分配固定數量的空間。Stackoverflow 提供了有關使用 .format() 所需的所有信息,這將確保即使“Inputname”變得更長,單詞之間也有相同數量的空格
試用并使用
print("{0:28} {1:20}".format(InputName, DogName))
代替
print(' '+ InputName +' '+ DogName +' ')
添加回答
舉報
0/150
提交
取消