Python - 将空字符串设置为 0
Python - Set empty string to 0
我有字符串变量,例如其中两个是空的“”。
那些空字符串应该设置为 0。
然后,所有字符串变量都应转换为整数,以便能够对其进行一些检查并return它们。
但我目前的问题是我的循环没有将空字符串设置为 0。
当我 运行 脚本时,我得到以下输出:
['1000', '', '', '5']
Only Numbers!
你知道我如何在循环后处理变量吗?
不需要列表索引?
def func():
bandwidth = 2000
voice = "1000"
signal = ""
stream = ""
business = "5"
empty_check = [voice, signal, stream, business]
for n in empty_check:
if n == "":
n = 0
print(empty_check) # check if "" was set to 0
try:
for n in empty_check:
n = int(n)
except ValueError:
print("Only Numbers!")
else:
if (empty_check[0] > 2000000) or (empty_check[0] > bandwidth):
print("Error")
elif (empty_check[1] > 1000000):
print("Error")
elif (empty_check[2] + empty_check[3]) > 95:
print("Error")
else:
return bandwidth, empty_check[0], empty_check[1], empty_check[2], empty_check[3]
test = func()
您的 for 循环仅将 0 分配给局部变量 n
,并且没有修改列表。相反,您应该 empty_check[n]
更改列表中索引处的值。
我尝试在您的 for 循环中使用 range
,以便将 n
用作 empty_check 列表中的索引并成功获得输出:
['1000', 0, 0, '5']
https://www.w3schools.com/python/python_for_loops.asp
这是我使用的代码:
for n in range(len(empty_check)):
if empty_check[n] == "":
empty_check[n] = 0
print(empty_check) # check if "" was set to 0
try:
for n in range(len(empty_check)):
empty_check[n] = int(n)
我有字符串变量,例如其中两个是空的“”。
那些空字符串应该设置为 0。
然后,所有字符串变量都应转换为整数,以便能够对其进行一些检查并return它们。
但我目前的问题是我的循环没有将空字符串设置为 0。
当我 运行 脚本时,我得到以下输出:
['1000', '', '', '5']
Only Numbers!
你知道我如何在循环后处理变量吗? 不需要列表索引?
def func():
bandwidth = 2000
voice = "1000"
signal = ""
stream = ""
business = "5"
empty_check = [voice, signal, stream, business]
for n in empty_check:
if n == "":
n = 0
print(empty_check) # check if "" was set to 0
try:
for n in empty_check:
n = int(n)
except ValueError:
print("Only Numbers!")
else:
if (empty_check[0] > 2000000) or (empty_check[0] > bandwidth):
print("Error")
elif (empty_check[1] > 1000000):
print("Error")
elif (empty_check[2] + empty_check[3]) > 95:
print("Error")
else:
return bandwidth, empty_check[0], empty_check[1], empty_check[2], empty_check[3]
test = func()
您的 for 循环仅将 0 分配给局部变量 n
,并且没有修改列表。相反,您应该 empty_check[n]
更改列表中索引处的值。
我尝试在您的 for 循环中使用 range
,以便将 n
用作 empty_check 列表中的索引并成功获得输出:
['1000', 0, 0, '5']
https://www.w3schools.com/python/python_for_loops.asp
这是我使用的代码:
for n in range(len(empty_check)):
if empty_check[n] == "":
empty_check[n] = 0
print(empty_check) # check if "" was set to 0
try:
for n in range(len(empty_check)):
empty_check[n] = int(n)