【发布时间】:2020-12-04 05:37:23
【问题描述】:
我尝试在 python 中使用模式打印字母“A”
def printA(length,height,symbol):
a = [[" " for i in range(length)] for i in range(height)]
for i in range(height):
for j in range(length):
if j == 0 or i == 0 or i == height // 2 or j == length - 1:a[i][j] = symbol
return a
它适用于像*,/+,-,#,$,% .. etc.,这样的普通字符
输出: 普通字符
#######
# #
# #
#######
# #
# #
# #
表情符号
????????????????????????????
???? ????
???? ????
????????????????????????????
???? ????
???? ????
???? ????
如果我能找到表情符号的长度,那么我将能够将空格更改为表情符号的长度,这样就不会出现这个问题,有什么办法可以做到这一点
注意:以上代码仅适用于字符,不适用于字符串
编辑:
截至snakecharmerb's 回答它仅适用于打印字符A 但是当我尝试打印A 的序列时,即不止一次它只是放错了表情符号
示例:我尝试打印AAAAA
输出:
根据上面的输出,当我们增加字母的位置时,它会自行重新定位,有什么办法可以防止这种情况发生
我像这样打印了AAAAA
a = printA(7,7,"????")
for i in a:
for k in range(5):print(*(i),end=" ")
print()
【问题讨论】:
-
看看这两个响应是否给了你想要的。 stackoverflow.com/questions/43146528/…。 stackoverflow.com/questions/36216665/…。您应该能够使用 len("????".encode("utf-8")) 来检查长度
-
我不认为你的代码只有表情符号有问题。尝试使用
printA(5,6,"##")运行代码,您会发现它的打印效果与表情符号相似。您需要以不同的方式修复代码。 -
@JoeFerndz 我提到了字符而不是字符串符号必须是字符而不是字符组合
标签: python python-3.x unicode emoji