Итак, я работаю над фрагментом кода, который мне дали в качестве задания. У меня проблемы со второй частью кода. Если ввод нечетный, он переходит к этой части кода и не прерывается при перезапуске цикла. Я знаю, что в этой части есть недостаток, и мне было интересно, может ли кто-нибудь помочь мне увидеть это. (Извините, если этот код кажется очень любительским, я учусь.
Я пытался изменить местоположение для ввода, но безрезультатно.
def part1c ():
def get_int(prompt):
while True:
try:
return int(butt(prompt))
except ValueError:
pass
def get_ch(prompt):
while True:
res = butt(prompt).strip()
if res:
return res[:1]
def make_row(w , edge, center):
return edge*(w>0) + center*(w-2) + edge*(w>1)
import time
def print_rectangle(h, w, c):
top_row = make_row(w, c, c)
mid_row = make_row(w, c, ' ')
rows = [top_row]*(h>0) + [mid_row]*(h-2) + [top_row]*(h>1)
print('\n'.join(rows))
while True:
print_rectangle(h, w, c)
time.sleep(2)
def main():
h = get_int('Size of box in rows? ')
w = get_int('Size of box in columns? ')
c = get_ch('Character to use: ')
print_rectangle(h, w, c)
while True:
print('Draw boxes:(Enter 0 to stop)')
butt=int(input('If box has an odd number(s), type it.' +
' If not, type the even number(s):') )
if butt == 0:
print('Thank you, next')
break
else:
if butt % 2== 0:
pass
rows=int(input('Size of box in rows? '))
cols= int(input('Size of box in columns? '))
for r in range(rows):
for c in range(cols):
print('*', end='')
print()
else:
butt_is_zero = True
while butt_is_zero:
import sys
# Python 2/3 compatibility shims
if sys.hexversion >= 0x3000000:
butt = input
rng = range
else:
butt = raw_input
rng = xrange
if __name__=="__main__":
main()
if butt==1:
butt_is_zero = False
get_int()
get_ch()
make_row()
print_rectangle()
part1c()
part1c ()