Python 你能在if语句中定义一个变量吗?

Python 你能在if语句中定义一个变量吗?,python,Python,我试图在if语句中创建一个变量,但它不允许这样做。有没有其他方法来做我正在尝试的事情 print ('Type numbers 1 or 2') c = int(input()) if c == 1: answer = (90) #so the variable "answer" will be set to '90' if the user types "1" if c == 2: answer = (50) print (answer) 如果输入1或2,则代码将以预期

我试图在if语句中创建一个变量,但它不允许这样做。有没有其他方法来做我正在尝试的事情

print ('Type numbers 1 or 2')
c = int(input())

if c == 1:
    answer = (90) #so the variable "answer" will be set to '90' if the user types "1"

if c == 2:
    answer = (50)

print (answer)

如果输入
1
2
,则代码将以预期方式运行。但如果用户输入另一个数字,您将得到一个
异常

NameError: name 'answer' is not defined
为了避免这种情况,您可以在
if
语句之前声明变量
answer

answer = 0    # or a reasonable number

if c == 1:
    answer = 90
# ...

注意:答案=(90)中的
()
是不必要的,因为它是一个单一的数字。

您需要允许您的
输入()
可能超出您的预想选项:

c = int(input("Type no. 1 or 2: "))

if c==1: 
    answer=90
    print(answer)
elif c==2: 
    answer =50
    print(answer)
else:
    print("you input neither 1 nor 2")
下面是一个使用
assert
的更简洁的解决方案:

c = int(input("Type no. 1 or 2: "))
assert c in [1,2], "You input neither 1 nor 2."
answer = 90 if c == 1 else 50
print(answer)

请解释你所说的“它不允许这样做”是什么意思。如果您收到错误消息,请在问题中包含完整的错误消息。您的代码按原样工作。我将如何进行回答=(+)或细分?如果已经定义了
answer
,您可以执行
answer=answer+something
或简单地执行
answer+=something