在印刷图像下方排列印刷文本?
Line up printed text underneath a printed image?
所以我有一个 CS class 的作业。它非常基础,但我对此 class 很感兴趣,我想我想使代码有点 "fancier"。我一直在谷歌搜索以查看如何使用下面的一些 ASCII 艺术和一些用户输入来打印结果。我已经完成了美术,输入部分也快准备好了!
我希望他们排好队。我想将用户输入的第一个名字限制为一定数量的字符,然后在特定位置打印第二个。我希望我输入的内容有意义!
对于上下文,赋值是:
Given a person's name, their age, the name of their dog and their dog’s age (in human years), display a picture, similar to the following, with the names displayed and the ages of both the person and the dog in “dog years” printed at the bottom of the picture.
所以我目前的代码是这样的......:[=12=]
#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*7
DogYears = InputDogAge*7
print(' ________ ')
print(' / \ ___ ___ ')
print(' / \ | \_____/ | ')
print(' / / \______\__\ \ / |\/ \/| \ ')
print(' | | O O | | \_/ | /\ /\ | \_/ ')
print(' / | __ / | |_\/ \/_| ')
print(' \ \ _______ / / / \o/ \ ')
print(' | __| |__ | \___/O\___/ ')
print(' '+ InputName +' '+ DogName +' ')
print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')
我现在的问题是狗下面的文字没有按照我想要的方式排列。感谢任何帮助 <3 谢谢!
使用 .format() 为单词分配固定数量的 space。
Whosebug 拥有您使用 .format() 所需的所有信息,这将确保即使 'Inputname' 变长
,在单词之间给出相同数量的 space
尝试并使用
print("{0:28} {1:20}".format(InputName, DogName))
而不是
print(' '+ InputName +' '+ DogName +' ')
如果您使用的是 Python 3.6+,您可以这样使用 f-strings
:
print(f' {InputName:<28s}{DogName}')
print(f' {HumanYears:<28d}{DogYears}')
而不是:
print(' '+ InputName +' '+ DogName +' ')
print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')
将狗的属性向左或向右移动,分别减少或增加 f-strings
中的 28
值。
<28s
表示左对齐,右填充最多 28 个字符宽的空格。 <28d
同上,但对于整数。
所以我有一个 CS class 的作业。它非常基础,但我对此 class 很感兴趣,我想我想使代码有点 "fancier"。我一直在谷歌搜索以查看如何使用下面的一些 ASCII 艺术和一些用户输入来打印结果。我已经完成了美术,输入部分也快准备好了!
我希望他们排好队。我想将用户输入的第一个名字限制为一定数量的字符,然后在特定位置打印第二个。我希望我输入的内容有意义!
对于上下文,赋值是:
Given a person's name, their age, the name of their dog and their dog’s age (in human years), display a picture, similar to the following, with the names displayed and the ages of both the person and the dog in “dog years” printed at the bottom of the picture.
所以我目前的代码是这样的......:[=12=]
#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*7
DogYears = InputDogAge*7
print(' ________ ')
print(' / \ ___ ___ ')
print(' / \ | \_____/ | ')
print(' / / \______\__\ \ / |\/ \/| \ ')
print(' | | O O | | \_/ | /\ /\ | \_/ ')
print(' / | __ / | |_\/ \/_| ')
print(' \ \ _______ / / / \o/ \ ')
print(' | __| |__ | \___/O\___/ ')
print(' '+ InputName +' '+ DogName +' ')
print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')
我现在的问题是狗下面的文字没有按照我想要的方式排列。感谢任何帮助 <3 谢谢!
使用 .format() 为单词分配固定数量的 space。 Whosebug 拥有您使用 .format() 所需的所有信息,这将确保即使 'Inputname' 变长
,在单词之间给出相同数量的 space尝试并使用
print("{0:28} {1:20}".format(InputName, DogName))
而不是
print(' '+ InputName +' '+ DogName +' ')
如果您使用的是 Python 3.6+,您可以这样使用 f-strings
:
print(f' {InputName:<28s}{DogName}')
print(f' {HumanYears:<28d}{DogYears}')
而不是:
print(' '+ InputName +' '+ DogName +' ')
print(' '+ str(HumanYears) +' '+ str(DogYears) +' ')
将狗的属性向左或向右移动,分别减少或增加 f-strings
中的 28
值。
<28s
表示左对齐,右填充最多 28 个字符宽的空格。 <28d
同上,但对于整数。