我有这些任务,我相信我在某种程度上做得很好
创建一个函数get_algorithm_result来实现下面的算法
1-获取数字列表L1,L2,L3 .... LN作为参数 2-假设L1是最大的,最大= L1 3-从列表中取下一个号码Li并执行以下操作 4-如果最大值小于Li 5-最大=李 6-如果Li是列表中的最后一个数字 7-返回最大并出来 8-否则从步骤3开始重复相同的过程
创建一个执行以下操作的函数prime_number 将参数作为整数和 如果值为prime或,则返回布尔值true 如果值不是素数,则返回布尔值false
所以我想出了下面的代码
def get_algorithm_result(my_list):
if not any(not type(y) is int for y in my_list):
largest = 0
for item in range(0,len(my_list)):
if largest < my_list[item]:
largest = my_list[item]
return largest
else:
return(my_list[-1])
def prime_number(integer):
if integer%2==0 and 2!=integer:
return False
else:
return True
get_algorithm_result([1, 78, 34, 12, 10, 3])
get_algorithm_result(["apples", "oranges", "mangoes", "banana", "zoo"])
prime_number(1)
prime_number(78)
prime_number(11)
对于上面的问题,有一个单位读取
import unittest
class AlgorithmTestCases(unittest.TestCase):
def test_maximum_number_one(self):
result = get_algorithm_result([1, 78, 34, 12, 10, 3])
self.assertEqual(result, 78, msg="Incorrect number")
def test_maximum_number_two(self):
result = get_algorithm_result(["apples", "oranges", "mangoes", "banana", "zoo"])
self.assertEqual(result, "zoo", msg="Incorrect number")
def test_prime_number_one(self):
result = prime_number(1)
self.assertEqual(result, True, msg="Result is invalid")
def test_prime_number_two(self):
result = prime_number(78)
self.assertEqual(result, False, msg="Result is invalid")
def test_prime_number_three(self):
result = prime_number(11)
self.assertEqual(result, True, msg="Result is invalid")
但是一旦我运行我的代码,就会返回错误说明 测试规格失败
Your solution failed to pass all the tests
我的代码究竟出了什么问题?
答案 0 :(得分:1)
以下是解决方案..
def get_algorithm_result(num_list):
largest =num_list[0]
for item in range(0,len(num_list)):
if largest < num_list[item]:
largest = num_list[item]
return largest
def prime_number(integer):
if integer == 1:
return False
elif integer == 3:
return True
if integer > 3:
for i in range(3, (integer-1)):
if integer % i == 0:
return False
else:
return True
答案 1 :(得分:0)
这应该有助于素数
def prime_number(integer):
if integer == 1: return True
if integer == 2: return True
if integer == 3: return True
if integer % 2 == 0: return False
if integer % 3 == 0: return False
else: return True