如何将用户输入整数中的每个数字加倍和加倍?

问题描述:

在Python中,我将如何去处理用户输入的整数以及整数中每个数字的两倍还是三倍?如何将用户输入整数中的每个数字加倍和加倍?

例如:

123 - > 112233 或 123 - > 111222333

+1

导致如果你有这种自行解决,会在哪里开始呢? – Chris

+2

这个逻辑应该很简单,对吧?为什么不先给它一个机会,当你陷入困境时回来 – WillardSolutions

+0

这个问题并不像降低成本那么糟糕。你想结果转换回整数或离开字符串? –

一个字符串和一个整数会产生串N次之间的操作者*。所以,你可以打破你输入的字符,每一个相乘,并重新加入他们的行列:

result = "".join([x * 2 for x in str(user_inp)]) 

除了@Mureinik解决方案,您可以使用map

def multiply(number, times): 
     return ''.join(map(lambda x : x*times, str(number))) 

或取决于当你需要决定如何繁殖你可能最终有以下功能:

def digitMultiplierFor(number): 
     def inner(times): 
      return ''.join(map(lambda x : x*times, str(number))) 
     return inner 

用法:

multiplier = digitMultiplierFor(123) 
    print multiplier(2) # output 112233 
    print multiplier(3) # output 111222333 

或者

def digitMultiplierBy(times): 
     def inner(number): 
      return ''.join(map(lambda x : x*times, str(number))) 
     return inner 

用法:

multiplier = digitMultiplierBy(3) 
    print multiplier(123) # output 111222333 
    print multiplier(234) # output 222333444 

如果您需要整数结果只是包装串int()