为啥 Python 在打印 int then string 后添加空格? [复制]
Posted
技术标签:
【中文标题】为啥 Python 在打印 int then string 后添加空格? [复制]【英文标题】:Why does Python add a whitespace after printing int then string? [duplicate]为什么 Python 在打印 int then string 后添加空格? [复制] 【发布时间】:2021-03-30 07:42:33 【问题描述】:这是我的代码:
num = input('Amount of numbers:')
num = int(num)
for x in range(1, num + 1):
if x == 1:
print('1st')
elif x == 2:
print('2nd')
elif x == 3:
print('3rd')
elif x >= 4:
print(x, 'th')
这是输出(样本):
Amount of numbers:8
1st
2nd
3rd
4 th
5 th
6 th
7 th
8 th
如您所见,4 之后的所有数字在它和“th”之间都有一个空格。我该如何解决这个问题?
【问题讨论】:
将此用于elif部分elif x >= 4: x = str(x)+'th' print(x)
从docs:"print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
打印objects
到文本流file
,以sep
分隔后跟@987654329 @。”
【参考方案1】:
不要使用,
逗号,它会自动给出一个空格。
所以把最后一行改成:
print(x, 'th')
收件人:
print(str(x) +'th')
【讨论】:
【参考方案2】:您可以将数字转换为字符串,然后将其打印为
print(str(x) + 'th')
或者您可以将默认分隔符的值更改为空字符串而不是默认空格:
print(x, 'th', sep='')
【讨论】:
【参考方案3】:你可以optionally give a separator argument 任何你想要的“逗号应该如何表现”(作为其他答案的另一个选项......
print("a","b",sep="+")
a+b
所以你可以使用""
print("a","b",sep="")
ab
如果您确实决定使用单个字符串,因为其他答案建议您真的应该只使用字符串格式而不是 +
连接
print("numth".format(num=x))
【讨论】:
【参考方案4】:打印功能
您可以将数字转换为字符串,然后打印出来。
print(str(x) + 'th')
或者直接使用sep
num = input('Amount of numbers:')
num = int(num)
for x in range(1, num + 1):
if x == 1:
print('1st')
elif x == 2:
print('2nd')
elif x == 3:
print('3rd')
elif x >= 4:
print(x, 'th', sep="")
使用格式字符串
或者你也可以使用这个。
print("numth".format(num=x))
或 f 个字符串
print(f"xth")
【讨论】:
【参考方案5】:使用格式化字符串在字符串中插入变量。
f"xth"
【讨论】:
以上是关于为啥 Python 在打印 int then string 后添加空格? [复制]的主要内容,如果未能解决你的问题,请参考以下文章