Вопрос Программисты Python, помогите мне.

Регистрация
19 Июн 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
учусь языку python, передомной стало задание сделать обычное сложение чисел, я знаю что можно сделать легче чем я, но я решил сделать всё это через функцию def, но я не могу понять что не так, выскакивает ошибка NameError: name 'x' is not defined

a=input("Первое число:")
b=input("Второе число:")
c=input("Третье число:")
def start(a,b,c):
x=a+b+c
return x
print(start(a,b,c))
print("ваше число:" +x)
 
a=input("Первое число:")
print a
b=input("Второе число:")
print b
c=input("Третье число:")
print c
print "Ответ {}".format(sum([a,b,c]))
 
Первые 3 строки предполагают ввод текстов, а не чисел. Тексты тоже можно складывать, но не в арифметическом смысле. Можно примерно так: a=int(input("Первое число:")) b=int(input("Второе число:")) c=int(input("Третье число:")) def start(a,b,c):return a+b+c print("ваше число:", start(a,b,c))
 
У вас не получается достать X потому, что эта переменная была создана и поэтому доступна только в функции start(). Чтобы получить к ней доступ просто надо сделать ее глобальной при помощи оператора global и должно получиться вот так: a = int(input("Первое число:")) # Здесь на ввод программа получает string а для сложение ее надо перевести в integer b = int(input("Второе число:")) c = int(input("Третье число:")) def start(a,b,c): global x #Тут x = a + b + c return x print(start(a, b, c)) print("ваше число: " + str(x)) # Ну и тут вы хотите сложить объект типа string с объектом типа integer. Такой код приведет к ошибке, поэтому X нужно сделать стройкой
 
Второй print лишний и в нем пропущена запятая. Должно быть print("ваше число:", +x) Ну а лучше всего конечно была бы конструкция типа print("ваше число:", start(a,b,c))
 
Назад
Сверху