带元组的真正简单函数(python)

时间:2016-10-16 16:24:44

标签: python function tuples

我知道这很容易,但我根本无法理解如何编码。所以我需要创建两个函数(如果你只能帮我一个很好的话):

接收正整数并将其转换为元组的函数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

我还没有学到很多东西,只有函数,循环,元组,提升和实例(对于错误消息?),以及可能还有其他一些东西。我试过寻找答案,但他们都用过我还没学过的东西。

3 个答案:

答案 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并将它们相加。

也不要忘记错误检查代码。