2017-02-24 61 views
-1

在Python中,我將如何去處理用戶輸入的整數以及整數中每個數字的兩倍還是三倍?如何將用戶輸入整數中的每個數字加倍和加倍?

例如:

123 - > 112233 或 123 - > 111222333

+1

導致如果你有這種自行解決,會在哪裏開始呢? – Chris

+2

這個邏輯應該很簡單,對吧?爲什麼不先給它一個機會,當你陷入困境時回來 – WillardSolutions

+0

這個問題並不像降低成本那麼糟糕。你想結果轉換回整數或離開字符串? –

回答

1

一個字符串和一個整數會產生串N次之間的操作者*。所以,你可以打破你輸入的字符,每一個相乘,並重新加入他們的行列:

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

除了@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()