变量未定义错误,if语句不执行

时间:2017-07-09 18:36:11

标签: python python-3.x

我正在尝试编写用户输入出生月份和日期之后的星座图。

print("To figure out your horoscope, enter the following questions")
month = int(input("what month were you born(january,december,august: "))
days = int(input("what day were you born(2,4,12: "))
if month == 'december':

    astro_sign = 'Sagittarius are nice people' if (day < 22) else 'Capricon are adventurous'
print(astro_sign)

但是,每次执行代码时,都会给出错误:

print(astro_sign)
NameError: name 'astro_sign' is not defined

目前,我只放了一个月12,白天低于22,后来当这段代码的一部分工作时,我将增加更多月份。谁能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

这是因为您在条件astro_sign中引入/创建了if month == '12':变量。因此,每次您输入的内容实际上都不是&#39; 12&#39;时,您最终会收到此错误。

只需在有条件之前创建astro_sign,因此,如果您输入条件,则至少可以使用astro_sign = '' if month == '12': # rest of code here

month = int(input("month: "))

此外,您永远不会使用当前代码实际输入该条件,因为您在这里将输入作为int输入:

'12'

但是,您的条件是明确检查每个单引号的字符串:if month == '12':

所以,而不是:

if month == 12:

你其实应该这样做:

range(1,i+1)

删除单引号,因此您将int与int进行比较。

答案 1 :(得分:-1)

print("Please enter your birthday")

month = int(input("month: "))

day = int(input("day: "))

if month == '12':

      print('Sagittarius are nice people')

if day < 22:

      print('Capricon are adventurous')

看看这是否真的适合你(请告诉我,如果我把它弄错了)