我知道这很容易,但我根本无法理解如何编码。所以我需要创建两个函数(如果你只能帮我一个很好的话):
接收正整数并将其转换为元组的函数a,如下所示:
>>>a(34500)
(3, 4, 5, 0, 0)
>>>a(3.5)
ValueError: a: error
接收元组并将其转换为整数的函数b,如下所示:
>>>b((3, 4, 0, 0, 4))
34004
>>>b((2, ’a’, 5))
ValueError: b: error
我还没有学到很多东西,只有函数,循环,元组,提升和实例(对于错误消息?),以及可能还有其他一些东西。我试过寻找答案,但他们都用过我还没学过的东西。
答案 0 :(得分:2)
def to_tuple(input_number):
# check if input number is int or not
if isinstance(input_number,(int)):
# convert number to string
to_string = str(input_number)
# finally convert string to
# list of numbers followed by converting the list to tuple
tuple_output = tuple(map(int,to_string))
return tuple_output
# if not int return empty tuple
# well coz nobody likes useful but ugly python tracebacks
else:
return ()
# lets see example
number = 3450
print to_tuple(number)
(3, 4, 5, 0)
number = 353984
print to_tuple(number)
(3, 5, 3, 9, 8, 4)
number = 2.6
print to_tuple(number)
()
如果您喜欢这个例子,我会发布第二部分的答案
答案 1 :(得分:0)
评论已经说明了你可以做什么: 通过执行将int转换为str(我知道这对于浮点数不起作用,在这里你可以展示一些进一步的努力:))
double data[10]; // needs to be initialized, of course
do_something(std::begin(data), std::end(data));
另一种方式更简单。
for c in str(integerVariable):
print c
答案 2 :(得分:0)
试试这个
def a(n):
result = []
while n > 0:
result.append(n%10)
n=n//10
return tuple(reversed(result))
对于问题2,尝试反向做同样的事情,即将每个数字乘以1,10,100并将它们相加。
也不要忘记错误检查代码。