我有字符串变量,例如其中两个是空的“”。
这些空字符串应设置为0。
然后,所有字符串变量都应转换为整数,以便能够对其进行一些检查并返回它们。
但是我当前的问题是我的循环没有将空字符串设置为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]
更改列表内索引的值。
我尝试range
在您的for循环中使用,以便将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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句