如何在 python 中正确初始化变量
How to properly initialize a variable in python
我试着搜索一下,然后在这里问它,但从我搜索的内容来看,似乎并没有以我想的形式被问到。
举个简单的例子,假设我有一个整数列表 [1, 2, 3, 4, 5],我想遍历该列表并保存可被 2 整除的最大数字。 (是的,如果列表未排序,此代码将不起作用,但为了示例,假设所有列表均按编号顺序排列)
nums = [1, 2, 3, 4, 5]
for number in nums:
if number % 2 == 0:
max_num = number
print(str(max_num))
在这个例子中,我可以毫无问题地打印 max_num。但是,如果列表 nums 是 [1, 3, 5],例如,max_num 将永远不会被设置,我将引用一个我从未实例化的变量。
我的问题是如何在循环之前正确设置变量?换句话说,您是否需要在设置变量之前描述变量的数据类型,类似于 Java 和 C++?有必要吗?
我最近在做的事情是这样的:
nums = [1, 2, 3, 4, 5]
max_num = None # <- added this
for number in nums:
if number % 2 == 0:
max_num = number
if max_num is not None: # <- added if statement
print(str(max_num))
但我觉得会有更好的方法。我也有尝试这个的想法:
nums = [1, 2, 3, 4, 5]
max_num = int # <- this was changed
for number in nums:
if number % 2 == 0:
max_num = number
print(str(max_num))
这种方式的问题是 max_num type(int),我认为这也不正确。
如有任何反馈,我们将不胜感激。
编辑:我并不是专门为我的示例寻找解决方案,而是寻找一种设置变量的 pythonic 方式。
您的第一个示例完全符合您的需要。它确实将默认值 None
分配给 max_num
.
您不需要专门检查 max_num
是否不是 None
。如果列表中包含任何可被 2 整除的值,它将被分配给 max_num
。如果不是,max_num
将是 None
(默认值),这意味着 - 列表中不存在可被 2 整除的数字。
nums = [1, 3, 5]
max_num = None # <- added this
for number in nums:
if number % 2 == 0:
max_num = number
print(max_num)
以上代码,如果
nums = [1, 3, 4, 5] - Returns 4 -> Max. number divisible by 2 exists
nums = [1,3,5] - Returns None -> No number divisible by 2 exists.
我试着搜索一下,然后在这里问它,但从我搜索的内容来看,似乎并没有以我想的形式被问到。
举个简单的例子,假设我有一个整数列表 [1, 2, 3, 4, 5],我想遍历该列表并保存可被 2 整除的最大数字。 (是的,如果列表未排序,此代码将不起作用,但为了示例,假设所有列表均按编号顺序排列)
nums = [1, 2, 3, 4, 5]
for number in nums:
if number % 2 == 0:
max_num = number
print(str(max_num))
在这个例子中,我可以毫无问题地打印 max_num。但是,如果列表 nums 是 [1, 3, 5],例如,max_num 将永远不会被设置,我将引用一个我从未实例化的变量。
我的问题是如何在循环之前正确设置变量?换句话说,您是否需要在设置变量之前描述变量的数据类型,类似于 Java 和 C++?有必要吗?
我最近在做的事情是这样的:
nums = [1, 2, 3, 4, 5]
max_num = None # <- added this
for number in nums:
if number % 2 == 0:
max_num = number
if max_num is not None: # <- added if statement
print(str(max_num))
但我觉得会有更好的方法。我也有尝试这个的想法:
nums = [1, 2, 3, 4, 5]
max_num = int # <- this was changed
for number in nums:
if number % 2 == 0:
max_num = number
print(str(max_num))
这种方式的问题是 max_num type(int),我认为这也不正确。
如有任何反馈,我们将不胜感激。
编辑:我并不是专门为我的示例寻找解决方案,而是寻找一种设置变量的 pythonic 方式。
您的第一个示例完全符合您的需要。它确实将默认值 None
分配给 max_num
.
您不需要专门检查 max_num
是否不是 None
。如果列表中包含任何可被 2 整除的值,它将被分配给 max_num
。如果不是,max_num
将是 None
(默认值),这意味着 - 列表中不存在可被 2 整除的数字。
nums = [1, 3, 5]
max_num = None # <- added this
for number in nums:
if number % 2 == 0:
max_num = number
print(max_num)
以上代码,如果
nums = [1, 3, 4, 5] - Returns 4 -> Max. number divisible by 2 exists
nums = [1,3,5] - Returns None -> No number divisible by 2 exists.