【发布时间】:2021-11-17 14:49:51
【问题描述】:
实现一个名为 add_even_numbers() 的函数。该函数接受一个名为的字符串列表 str_list (type: list) 作为其参数,其中 str_list 中的每个字符串都包含一个正整数序列 用“|”分隔,例如“12|89|34”。该函数应将给定列表中找到的所有偶数相加。 您可以假设 str_list 中的每个字符串始终按上述正确格式化,并且始终包含 至少一个整数。不过,str_list 可能为空。
例如,
- add_even_numbers(['1|2|3', '10|50']) 返回 62(因为 2 + 10 + 50 = 62,而 1 和 3 是 未添加)。
- add_even_numbers(['99|1|27', '11|5']) 返回 0(因为没有偶数)。
- add_even_numbers(['1', '12']) 返回 12。
- add_even_numbers([]) 返回 0。
我的代码是:
def add_even_numbers(str_list):
count=[]
num=""
int_num=0
accepted="02468"
for x in str_list:
num=""
for i in x:
if i!="|":
num=num+i
elif i=="|":
if int(num)%2==0:
int_num+=int(num)
num=""
elif i==x[-1]:
if int(num)%2==0:
int_num+=int(num)
num=""
return int_num
我这样做的方式是尝试将所有字符串之间的所有字符串更改为 int 并总结它们,但我没有得到答案。 请帮我更正此代码,谢谢您提前
这些是测试代码
print()
print('-' * 20)
print()
print("Test Case 1: add_even_numbers(['1|2|3', '10|50']))")
print()
result = add_even_numbers(['1|2|3', '10|50'])
print('Expected: 62')
print('Actual: ' + str(result))
print("Expected type of returned value: <class 'int'>")
print('Actual type of returned value: ' + str(type(result)))
print()
print('-' * 20)
print()
print("Test Case 2: add_even_numbers(['99|1|27', '11|5'])")
print()
result = add_even_numbers(['99|1|27', '11|5'])
print('Expected: 0')
print('Actual: ' + str(result))
print()
print('-' * 20)
print()
print("Test Case 3: add_even_numbers(['1', '12'])")
print()
result = add_even_numbers(['1', '12'])
print('Expected: 12')
print('Actual: ' + str(result))
print()
print('-' * 20)
print()
print("Test Case 4: add_even_numbers([])")
print()
result = add_even_numbers([])
print('Expected: 0')
print('Actual: ' + str(result))
【问题讨论】:
标签: python string for-loop integer