Я пишу эту программу, которая должна конвертировать двоичный код в шестнадцатеричный. Я должен использовать цикл for. Мне нужна часть, как мне получить программу для получения целого числа и его номера индекса.
мой код до сих пор
q = raw_input('asdf ')
p = list(q)
t = [int(x) for x in p]
for i in t:
if i == 1:
w=i*(2**(3-t[x]))
print w
часть t [x] должна быть номером индекса. Итак, что происходит, если он один, то он будет умножаться на 2 ^ 3- (его индексный номер)
Как я могу обратиться к номеру индекса?
И как мне заставить его суммировать все значения, которые он получает
Попробуй это:
for ind in range(len(t)):
i = t[ind]
...
Тогда я - это переменная, которую вы имели раньше, а ind - номер цикла.
Для суммы выполните:
result = 0
перед циклом и
result += w
внутри цикла.
Вы можете использовать функцию enumerate
.
for rank, item in enumerate(my_list):
# here you have the index of the item (rank)
# and the item ( the same as my_list[rank] )
для вашего примера вы можете сделать что-то вроде этого:
inital_binary = raw_input("polop")
for rank, letter in enumerate(inital_binary):
print int(letter) * 2**(len(inital_binary) - (rank+1))
что даст для ввода 1100
:
8
4
0
0