Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,“if statement”中设置的变量不能在其外部打印_Python_If Statement - Fatal编程技术网

在Python中,“if statement”中设置的变量不能在其外部打印

在Python中,“if statement”中设置的变量不能在其外部打印,python,if-statement,Python,If Statement,当我在if语句中分配变量时,它不会在底部打印出来: #!/usr/bin/env python import datetime date = datetime.datetime.today().weekday() #0 monday, 1 tuesday, 2 wednesday, 3 thursday, 4 friday, 5 saturday, 6 su$ if (date == 1 or date == 2): #tuesday wednesday location

当我在if语句中分配变量时,它不会在底部打印出来:

#!/usr/bin/env python

import datetime
date = datetime.datetime.today().weekday()

#0 monday, 1 tuesday, 2 wednesday, 3 thursday, 4 friday, 5 saturday, 6 su$

if (date == 1 or date == 2): #tuesday wednesday
        location = 'Baltimore'
if (date == 3): #thursday
        location = 'DC'
if (date == 4):
        location = 'Johns Hopkins Cath/Baltimore'
我得到的错误是:

Traceback (most recent call last):
  File "./ifwhile.py", line 13, in <module>
    print location
NameError: name 'location' is not defined
需要考虑的事项:

#!/usr/bin/env python

import datetime
date = datetime.datetime.today().weekday()

#0 monday, 1 tuesday, 2 wednesday, 3 thursday, 4 friday, 5 saturday, 6 su$
whereToGo = {
    0: None
    1: 'Baltimore',
    2: 'Baltimore',
    3: 'DC',
    4: 'Johns Hopkins Cath/Balitmore',
    5: None,
    6: None
}

location = whereToGo[date]
希望这能有所帮助。

如果条件为真,则所有条件都不成立,因此位置值未初始化。因为今天是2016年11月7日星期一,它将日期的值设置为0。在代码中,您没有0的条件

您的代码应该如下所示:

if (date == 1 or date == 2): #tuesday wednesday
        location = 'Baltimore'
elif (date == 3): #thursday
# ^ I am using elif, because there will only one condition which will be
# True at a time, no need of separate if blocks
        location = 'DC'
elif (date == 4):
        location = 'Johns Hopkins Cath/Baltimore'
else:  # For rest of the weekdays
        location = 'New location'

没有一个if条件是真的,因此位置确实从未定义过。您需要在检查之前定义一个默认值,例如location=None您需要在if之外定义位置基本上如果日期是周末(即5或6天)或周一会发生什么情况,今天是哪个。您甚至可以使用location=whereToGo.getdate-since-datetime.datetime.today.weekday来缩短它,因为它不太可能给出一个您尚未分配到某个位置或未分配到任何位置的数字。此代码的定义是什么?我知道这不是一个程序。还是真的?从技术上讲,这只是一个片段。您可以按原样使用它,也可以将其包装在函数中:can't that got ough。我现在要一直用这个方法。