2015-05-28 3 views
0

Могу ли я первым сказать, что я новичок в этом весь Python и кодирования вещи, так или иначеКак получить Python отработать область окружности заданного радиуса пользователем

Это мой код:

pi = 3.14159265 

choice = input ("Enter a number between 1-5:") 
choice = int (choice) 

if choice == 1: 
    radius = (input ("Enter x:") 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " =area) 

if choice == 2: 
    radius = (input ("Enter x:") 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " =area) 

if choice == 3: 
    radius = (input ("Enter x:") 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " =area) 

Я получаю ошибку синтаксиса в каждом из area = (radius **2) * pi мне было интересно, почему это держит происходит и что такое решение было бы, чтобы исправить это, видя, что я новичок в этом, его, вероятно, быстро и просто, Я просто очень глуп.

Во всяком случае, благодаря

+0

Строки с 'radius = (input (" Enter x: ")' неверны, вы, вероятно, хотите 'radius = float (input (" Enter x: "))'. Oh, а также '= area' Недопустимый. Удалите '='. И почему «1-5», когда вы проверяете только 3 варианта? –

ответ

0

Проблема кода является то, что вы читаете радиус в виде строки, а затем вы пытаетесь сделать математические операции на строку с целым числом.

Как правило, это хорошая идея, когда вы читаете ввод от пользователя, чтобы преобразовать переменную в тип данных, с которым вы хотите работать.

Это позволит устранить проблему:

import math 
pi = math.pi 

choice = input ("Enter a number between 1-5:") 
choice = int (choice) 

if choice == 1: 
    radius = float(input ("Enter x:")) 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " + str(area)) 

if choice == 2: 
    radius = float(input ("Enter x:")) 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " + str(area)) 

if choice == 3: 
    radius = float(input ("Enter x:")) 
    area = (radius ** 2) * pi 
    print ("The Area of the circle is, " + str(area)) 

Как вы можете видеть, что я изменился ваш оператор печати, потому что оператор + следует использовать вместо =, а также вы должны бросить снова числовое значение в строку используя в str()

Я также предлагаю использовать math.pi для вашей постоянной π вместо жесткого кодирования значения π.

Наконец, я не могу понять причину, по которой вы используете 3 случая с точно такими же вычислениями, где у вас может быть тот же результат с 3 строками кода.

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