打印给定N行数的以下图案
N=4的模式:
A
BC
CDE
DEFG
我的代码正在打印:
A
BC
CED
DGFE
代码:
n = int(input())
i = 1
start_char = chr(ord('A'))
while i <= n:
j = 1
while j <= i :
charP = chr(ord(start_char) + i - 1)
print(charP, end = '')
start_char = chr(ord('A')+ i - j)
j += 1
print()
i += 1
Tags:
您不应该仅在每行的开头更新内部循环中的
start_char
。如果您只是想用ord()
将其转换回一个数字,那么也不需要将其设置为字符。把号码放在那儿就行了使用基于零的循环意味着不必减去1
实际上,通过将
i
和j
组合到charP
的赋值中,可以完全不使用start_char
没有必要去摆弄
ord()
和chr()
。Python使直接处理字符串变得容易。如果您想从'A'
开始,然后从那里继续,请使用string.ascii_uppercase
获取所需的字母从全套字母A-Z开始。在第一行,打印第一个字符,然后扔掉。在第二行中,打印前两个字符并丢弃1。在第三行中,打印前三个字符并抛出方式2。等等
你的问题陈述没有说明你想在
Z
之后发生什么。所以这只适用于输入值高达13的情况。使用ord
和chr
将在Z
之后提供[ \ ] ^ _ `` a b
,这可能有点出乎意料相关问题 更多 >
编程相关推荐