2013-11-08 3 views
0

Я пытаюсь добавить инструкции if/else в набор кода, который выводит форму, когда пользователь указывает форму с входной строкой и имеет трудности. Как бы добавить простой оператор If/else в код моей формы, чтобы он выводил только форму с правильной входной строкой и при использовании неправильной строки ввода выводил сообщение об ошибке «Форма не определена».Добавление if/else для определения алгоритма для beginner

Один из моих кодов формы простой квадратный алгоритм:

def square(size, chr): 
    row = 1 
    while row <= size: 
     col = 1 
     while col <= size: 
      print chr, 
      col = col + 1 
     print '' 
     row = row + 1 
    print '' 

Обновленный код:

print('Please specify a shape to draw. Type S for square, T for triangle, R for reverse triangle, D for diagonal, and A for angle') 
shape = raw_input('Please specify a shape to draw:') 
size = input('Please enter a size:') 
chr = raw_input('Please enter a drawing character:') 
print'' 

valid_shape_codes =('"S":square, "T":triangle, "R":reversetriangle, "D":diagonal, "A":angle') 
if shape in valid_shape_codes: 
    valid_shape_codes[shape](size, chr) 
else: 
    print 'Shape is not defined' 
+1

У вас есть список допустимых входов для пользователя к типу? Если это так, вы можете создать условный блок, начинающийся с 'if shape в valid_shape_codes:', нормально работать в основной ветке, а 'print 'Shape не определен« 'в ветке' else: '. –

+0

Да, у меня есть разные формы. Я добавил следующий код, но он выводит все фигуры, пока это один из входов. Как я могу изменить его, чтобы отображалась только одна фигура на правильный вход? valid_shape_codes = ('S', T, R, D, А') , если форма в valid_shape_codes: квадрат (размер, CHR) треугольник (размер, CHR) диагонали (размер, CHR) reversetriangle (размер, CHR) angle (size, chr) else: print 'Shape is not defined' – user2955471

+1

Вы должны создать связь между каждым кодом формы и функцией. Один из способов сделать это - создать словарь, который отображает коды фигур в функции: 'valid_shape_codes = {" S ": квадрат," T ": треугольник," R ": reverseetriangle ...}', а затем использовать 'if shape in valid_shape_codes: valid_shape_codes [shape] (size, chr) ' –

ответ

1
print('Please specify a shape to draw. Type S for square') 
shape = raw_input('Please specify a shape to draw:') 
size = input('Please enter a size:') 
chr = raw_input('Please enter a drawing character:') 
valid_shape_codes ={"S":square, "T":triangle, "R":reversetriangle, "D":diagonal, "A":angle} 

if shape in valid_shape_codes: 
    valid_shape_codes[shape](size, chr) 
else: 
    print "Shape is not defined" 
print'' 
+0

", когда используется некорректная строка ввода, выводится сообщение об ошибке с сообщением' Shape is not defined' ". –

+0

Спасибо! Он работает отлично. Вы знаете, как добавить цикл в этот код, чтобы он продолжал просить ввода? Я пытаюсь добавить цикл «While true:». – user2955471

Смежные вопросы