无法弄清楚为什么这段代码在输入 3 时运行完美,但在输入 5 时中断。{作业}
Can't figure out why this code runs perfect for input of 3 and breaks on 5. {homework}
当我在下面的代码中输入 3 时,它会完美地打印出我需要的形状。但是当输入大于 3 时,代码似乎会中断,如下图所示。我想我可能已经盯着这个看太久了,找不到明显的愚蠢错误。我对 python 有点陌生,所以请放轻松。
size = int(input("Size: "))
def middle1():
count_middle1 = 0
size_m1 = (size + 1)
mid_1 = 1
mid_2 = 1
dots_a = 2
bslsh = "\"
fslsh = "/"
while (count_middle1 != size):
print("|"+("."*dots_a)+((fslsh+bslsh)*mid_1)+("."*size_m1)+((fslsh+bslsh)*mid_2)+("."*dots_a)+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
middle1()
如有任何帮助,我们将不胜感激!
如果我没理解错的话,你想要两棵并排的树。
|........./\................../\.........|
|......../\/\................/\/\........|
|......./\/\/\............../\/\/\.......|
|....../\/\/\/\............/\/\/\/\......|
|...../\/\/\/\/\........../\/\/\/\/\.....|
|..../\/\/\/\/\/\......../\/\/\/\/\/\....|
|.../\/\/\/\/\/\/\....../\/\/\/\/\/\/\...|
|../\/\/\/\/\/\/\/\..../\/\/\/\/\/\/\/\..|
|./\/\/\/\/\/\/\/\/\../\/\/\/\/\/\/\/\/\.|
|/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|
有两个问题,我在评论中提到的一个是dots_a
。第二个问题是你的size_m1
。尝试考虑您需要将其更改为什么,以便它适用于任何 size
.
我认为这对你有用。
def middle1(size):
count_middle1 = 0
size_m1 = (size * 2)
mid_1 = 1
mid_2 = 1
dots_a = int(size_m1 / 2)
bslsh = "\"
fslsh = "/"
while (count_middle1 != size):
print("|"+("."*dots_a)+((fslsh+bslsh)*mid_1)+("."*size_m1)+((fslsh+bslsh)*mid_2)+("."*dots_a)+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
print("\n")
这会给你输出
middle1(2)
middle1(3)
middle1(4)
middle1(5)
|../\..../\..|
|./\/\../\/\.|
|.../\....../\...|
|../\/\..../\/\..|
|./\/\/\../\/\/\.|
|..../\......../\....|
|.../\/\....../\/\...|
|../\/\/\..../\/\/\..|
|./\/\/\/\../\/\/\/\.|
|...../\........../\.....|
|..../\/\......../\/\....|
|.../\/\/\....../\/\/\...|
|../\/\/\/\..../\/\/\/\..|
|./\/\/\/\/\../\/\/\/\/\.|
这适用于任何输入
size = int(input("Size: "))
def middle1():
count_middle1 = 0
size_m1 = (size - 1)*2
mid_1 = 2
mid_2 = 2
dots_a = size-1
bslsh = "\"
fslsh = "/"
while (count_middle1 < size):
print("|"+("."*(dots_a))+((fslsh+bslsh)*(mid_1-1))+("."*size_m1)+((fslsh+bslsh)*(mid_2-1))+("."*(dots_a))+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
middle1()
当我在下面的代码中输入 3 时,它会完美地打印出我需要的形状。但是当输入大于 3 时,代码似乎会中断,如下图所示。我想我可能已经盯着这个看太久了,找不到明显的愚蠢错误。我对 python 有点陌生,所以请放轻松。
size = int(input("Size: "))
def middle1():
count_middle1 = 0
size_m1 = (size + 1)
mid_1 = 1
mid_2 = 1
dots_a = 2
bslsh = "\"
fslsh = "/"
while (count_middle1 != size):
print("|"+("."*dots_a)+((fslsh+bslsh)*mid_1)+("."*size_m1)+((fslsh+bslsh)*mid_2)+("."*dots_a)+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
middle1()
如有任何帮助,我们将不胜感激!
如果我没理解错的话,你想要两棵并排的树。
|........./\................../\.........|
|......../\/\................/\/\........|
|......./\/\/\............../\/\/\.......|
|....../\/\/\/\............/\/\/\/\......|
|...../\/\/\/\/\........../\/\/\/\/\.....|
|..../\/\/\/\/\/\......../\/\/\/\/\/\....|
|.../\/\/\/\/\/\/\....../\/\/\/\/\/\/\...|
|../\/\/\/\/\/\/\/\..../\/\/\/\/\/\/\/\..|
|./\/\/\/\/\/\/\/\/\../\/\/\/\/\/\/\/\/\.|
|/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|
有两个问题,我在评论中提到的一个是dots_a
。第二个问题是你的size_m1
。尝试考虑您需要将其更改为什么,以便它适用于任何 size
.
我认为这对你有用。
def middle1(size):
count_middle1 = 0
size_m1 = (size * 2)
mid_1 = 1
mid_2 = 1
dots_a = int(size_m1 / 2)
bslsh = "\"
fslsh = "/"
while (count_middle1 != size):
print("|"+("."*dots_a)+((fslsh+bslsh)*mid_1)+("."*size_m1)+((fslsh+bslsh)*mid_2)+("."*dots_a)+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
print("\n")
这会给你输出
middle1(2)
middle1(3)
middle1(4)
middle1(5)
|../\..../\..|
|./\/\../\/\.|
|.../\....../\...|
|../\/\..../\/\..|
|./\/\/\../\/\/\.|
|..../\......../\....|
|.../\/\....../\/\...|
|../\/\/\..../\/\/\..|
|./\/\/\/\../\/\/\/\.|
|...../\........../\.....|
|..../\/\......../\/\....|
|.../\/\/\....../\/\/\...|
|../\/\/\/\..../\/\/\/\..|
|./\/\/\/\/\../\/\/\/\/\.|
这适用于任何输入
size = int(input("Size: "))
def middle1():
count_middle1 = 0
size_m1 = (size - 1)*2
mid_1 = 2
mid_2 = 2
dots_a = size-1
bslsh = "\"
fslsh = "/"
while (count_middle1 < size):
print("|"+("."*(dots_a))+((fslsh+bslsh)*(mid_1-1))+("."*size_m1)+((fslsh+bslsh)*(mid_2-1))+("."*(dots_a))+"|")
mid_1+=1
mid_2+=1
count_middle1+=1
dots_a-=1
size_m1-=2
middle1()