问题:
“三个变量x、y和z应该包含适合转换为整数的数字字符串。编写将它们转换为整数的代码,并打印这三个整数的和。但是,如果任何变量具有无法转换为整数的值,则打印字符串“bad value(s)in:“后跟具有错误值的变量的名称(用空格分隔,按字母升序排列)。
例如,如果x、y和z的值分别为“3”、“9”和“2”,则将打印数字14。另一方面,如果值为“abc”、“15”和“boo”,则输出为:错误值位于:x z”。
**注意:**这个问题来自Turing's Craft CodeLab,它似乎需要一个特定的标准输入才能得到正确的答案。我包含了CodeLab在每次尝试后提供给我的“错误分析”,以给予您了解它正在寻找的格式。
尝试#1:
error_output = "Bad values in:"
numeric_output = 0
inputs = input().strip().split(" ")
try:
x = int(inputs[0])
numeric_output += x
except ValueError:
error_output += " x"
try:
y = int(inputs[1])
numeric_output += y
except ValueError:
error_output += " y"
try:
z = int(inputs[2])
numeric_output += z
except ValueError:
error_output += " z"
if error_output != "Bad values in:":
print(error_output)
else:
print(numeric_output)
虽然这段代码在Idle和Pycharm上运行都没有问题,但在CodeLab上却不是正确的答案...以下是CodeLab对我的第一次尝试所做的“错误分析":
1.在每个测试用例中:a)stdout不正确和B)未向stdout打印任何内容
1.几乎可以肯定,您应该使用:+
1.我还没有看到正确的解决方案使用:”“
1.我还没有看到正确的解决方案使用:”x”
1.我还没有看到正确的解决方案使用:”是”
1.我还没有看到正确的解决方案使用:”z”
1.我们认为您可能需要考虑使用:==
1.我们认为您可能需要考虑使用:合计
1.采用您的方法的解决方案通常不用途:!=
1.采用您的方法的解决方案通常不用途:.(期间)
1.采用您的方法的解决方案通常不用途:一个
1.采用您的方法的解决方案通常不用途:二
1.采用您的方法的解决方案通常不用途:[ ]
1.采用您的方法的解决方案通常不用途:输入
1.采用您的方法的解决方案通常不用途:剥离
1.我们认为您可能需要考虑使用:不是
我的第二次尝试:
try:
print(int(x) + int(y) + int(z))
except ValueError:
print("bad value(s) in:")
if not x.isdigit():
print(' x')
if not y.isdigit():
print(' y')
if not z.isdigit():
print(' z')
- 尝试**#2的“错误分析”:
1.在某些测试案例中:标准输出不正确
1.几乎可以肯定,您应该使用:=
1.我还没有看到正确的解决方案使用:“中的值不正确:“
1.我还没有看到正确的解决方案使用:'x'
1.我还没有看到正确的解决方案使用:“是”
1.我还没有看到正确的解决方案使用:'z'
1.几乎可以肯定,您应该使用:字符串
1.我们认为您可能需要考虑使用:,(逗号)**
1.采用您的方法的解决方案通常不用途:值错误
最后,这是我的第三次尝试(根据CodeLab,这是最接近准确的):
try:
print(int(x) + int(y) + int(z))
except ValueError:
print("bad value(s) in:",end='')
if not x.isdigit():
print('x',end='')
if not y.isdigit():
print('y',end='')
if not z.isdigit():
print('z',end='')
- 尝试**#3的“错误分析”:
1.在某些测试案例中:标准输出不正确
1.我还没有看到正确的解决方案使用:“中的值不正确:“
1.采用您的方法的解决方案通常不用途:''
1.采用您的方法的解决方案通常不用途:值错误
"我错过了什么"
4条答案
按热度按时间8ulbf1ek1#
你为什么不试着在每个变量前加空格呢,我想这会有帮助,我也遇到过类似的问题。
mzillmmw2#
这也应该可行,也许:
tjrkku2a3#
rt4zxlrg4#
谢谢你们的帮助!我发现答案是: