[英]Solving this kata from codewars ,any tips/fixing ? (new to python)
[英]Codewars: Solving Kata - Highest and Lowest
这应该可行,但在运行测试用例时出现错误。 出于某种原因,第四个失败了。 numbers[0] 打印出“-1”,但在分配给highest_number 或lowest_number 后,只打印出“-”。 是什么赋予了?
代码:
def high_and_low(numbers):
if numbers:
highest_number = numbers[0]
lowest_number = numbers[0]
numbers = numbers.split(" ")
print(highest_number)
print(lowest_number)
print(numbers[0])
for num in numbers:
if int(num) > int(highest_number):
highest_number = num
if int(num) < int(lowest_number):
lowest_number = num
return highest_number + " " + lowest_number
测试用例:
Test.assert_equals(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"), "542 -214");
Test.assert_equals(high_and_low("1 -1"), "1 -1");
Test.assert_equals(high_and_low("1 1"), "1 1");
Test.assert_equals(high_and_low("-1 -1"), "-1 -1");
Test.assert_equals(high_and_low("1 -1 0"), "1 -1");
Test.assert_equals(high_and_low("1 1 0"), "1 0");
Test.assert_equals(high_and_low("-1 -1 0"), "0 -1");
Test.assert_equals(high_and_low("42"), "42 42");
错误:
ValueError: invalid literal for int() with base 10: '-'
首先拆分您的数字,否则您只是将numbers
的第一个字符分配给您的变量:
numbers = numbers.split(" ")
highest_number = numbers[0]
lowest_number = numbers[0]
在这里试试这个! 刚拿到,感觉好傻,可以加+
号的字符串!
答案是:
def high_and_low(numbers):
# must split the numbers, convert them to integers and print the max and min of list
numbers = numbers.split()
numbers = [int(i) for i in numbers]
return str(max(numbers))+" "+str(min(numbers))
您可以使用此代码:
def high_and_low(numbers):
nn = [int(s) for s in numbers.split(" ")]
return "%i %i" % (max(nn),min(nn))
并做了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.