Как бы я получить прямо противоположную цифру для номеров 0-9 - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь заставить мою программу вернуть противоположную цифру целого числа от 0 до 9.

Например:

0 1 2 3 4 5 6 7 8 9

9 8 7 6 5 4 3 2 1 0

Таким образом, когда пользователь вводит трехзначное число, например 245 , он должен возвращать 754

Я написал что-то подобное, но оно работает только с 1-значным числом!

number = input (" Enter the number! ")

if number == 0:
    number = 9

elif number == 1:
    number = 8

elif number == 2:
    number = 7

elif number == 3:
    number = 6

elif number == 4:
    number = 5

elif number == 5:
    number = 4

elif number == 6:
    number = 3

elif number == 7:
    number = 2

elif number == 8:
    number = 1

elif number == 9:
    number = 0  

else:
    print "You didn't enter a number"          

print number

Также это было не так динамично! Любая помощь приветствуется! Спасибо

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Просто вычтите ввод из максимально возможного числа, и вы получите поведение «переворачивания»:

value = input('Enter number: ')
result = 9 - int(value)

# If the input is 3, the output would be 6, as 9 - 3 = 6

Для больших цифр вы можете сделать то же самое, но перебирать каждую цифру:

result = ''.join([(9 - int(x)) for x in value])

В качестве чисто математического решения вы можете использовать длину ввода и автоматически генерировать максимальное число (благодарность RafazZ в комментариях):

result = (10**len(value)-1) - int(value)

# If the input is 251, the output would be 748, as:
#     len('251') = 3
#     10**3 - 1 = 999
#     999 - 251 = 748
0 голосов
/ 13 ноября 2018

Используйте индекс в первой строке для поиска в следующей строке:

s = '0123456789'
t = '9876543210'

num = input('Enter number: ')
result = ''.join([t[s.index(x)] for x in num])

Пример выполнения :

Enter number: 245
754

Или вы можете просто обойтись без использованияs и поиск:

result = ''.join([t[int(x)] for x in num])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...