如果参数是表示有效整数的字符串,如何在 python 中创建 return 语句?
How to make a return statement in python if the argument is a string that represents a valid integer?
如果我写一个主程序来测试它的函数 def as_integer(an_object) 和 def main()
如果参数是表示有效整数的字符串return该整数。否则,return NoneType 对象。
对列表中的每个元素调用as_integer函数:['20', 10, len, True, '-six', '-10', '0'] 并输出结果对象在自己的线上
我应该得到以下输出:
输出:
20
None
None
None
None
-10
0
我开发了以下代码,但仍然出现错误。
我只尝试了代码的第一部分,得到 ['20', 10, len, True, '-10', '0'] 打印为 [20, 10, len, True, -10 , 0] 在不同的行上。但没有引号。会有问题吗?
我不确定是使用 (isinstance) 还是 (isdigit)。我尝试使用 (isdigit) 来检测 an_object 是一个数字还是 (startswith) 一个“-”,但我会得到一个错误。这是我到目前为止所拥有的。另外,感谢您在整个过程中的耐心等待。
def main():
my_list = ['20', 10, len, True, '-10', '0']
for an_object in my_list:
print(as_integer(my_list))
def as_integer(an_object):
if isinstance(an_object, (str, int)):
return int(an_object)
else:
return None
我收到这个错误:
#TEST 1#
main() returned None
inputs:
outputs:
** ERROR ** None
* EXPECTED * 20
None
None
None
None
** ERROR ** None
* EXPECTED * -10
** ERROR ** no line
* EXPECTED * 0
----------
#TEST 2#
** ERROR **as_integer(True) returned 1
* EXPECTED * None
inputs:
outputs:
----------
#TEST 3#
as_integer('43') returned 43
inputs:
outputs:
----------
#TEST 4#
as_integer('-50') returned -50
inputs:
outputs:
----------
#TEST 5#
as_integer(id) returned None
inputs:
outputs:
----------
def as_integer(value):
if isinstance(value, str):
try:
return int(value)
except ValueError:
return None
return None
这将 return None
用于 as_integer(10)
,但也许这是您的用例。您仍然可以使用 isinstance(value, (str, int))
扩展条件,但这将使 True
转换为 1
,这在更多编程语言中是常见的和预期的。为了解决这个极端情况,您可以添加 and value not in (True, False)
如果我写一个主程序来测试它的函数 def as_integer(an_object) 和 def main()
如果参数是表示有效整数的字符串return该整数。否则,return NoneType 对象。
对列表中的每个元素调用as_integer函数:['20', 10, len, True, '-six', '-10', '0'] 并输出结果对象在自己的线上 我应该得到以下输出:
输出:
20
None
None
None
None
-10
0
我开发了以下代码,但仍然出现错误。
我只尝试了代码的第一部分,得到 ['20', 10, len, True, '-10', '0'] 打印为 [20, 10, len, True, -10 , 0] 在不同的行上。但没有引号。会有问题吗?
我不确定是使用 (isinstance) 还是 (isdigit)。我尝试使用 (isdigit) 来检测 an_object 是一个数字还是 (startswith) 一个“-”,但我会得到一个错误。这是我到目前为止所拥有的。另外,感谢您在整个过程中的耐心等待。
def main():
my_list = ['20', 10, len, True, '-10', '0']
for an_object in my_list:
print(as_integer(my_list))
def as_integer(an_object):
if isinstance(an_object, (str, int)):
return int(an_object)
else:
return None
我收到这个错误:
#TEST 1#
main() returned None
inputs:
outputs:
** ERROR ** None
* EXPECTED * 20
None
None
None
None
** ERROR ** None
* EXPECTED * -10
** ERROR ** no line
* EXPECTED * 0
----------
#TEST 2#
** ERROR **as_integer(True) returned 1
* EXPECTED * None
inputs:
outputs:
----------
#TEST 3#
as_integer('43') returned 43
inputs:
outputs:
----------
#TEST 4#
as_integer('-50') returned -50
inputs:
outputs:
----------
#TEST 5#
as_integer(id) returned None
inputs:
outputs:
----------
def as_integer(value):
if isinstance(value, str):
try:
return int(value)
except ValueError:
return None
return None
这将 return None
用于 as_integer(10)
,但也许这是您的用例。您仍然可以使用 isinstance(value, (str, int))
扩展条件,但这将使 True
转换为 1
,这在更多编程语言中是常见的和预期的。为了解决这个极端情况,您可以添加 and value not in (True, False)