2016-02-01 4 views
-1

Итак, я делаю код, который принимает число с 8 или 7 цифрами, а затем, если пользователь вводит 8-значный номер, он должен добавить все 8 цифр вместе, а затем разделить на 10 и распечатать ответ. Я пытаюсь изменить ввод пользователя в список, но он не работает.
Мой текущий код (не работает):Почему этот код не работает? (Python)

NumGiven='' 
while not NumGiven.isnumeric(): 
    NumGiven=(input('Please enter a 7 or 8 digit number:')) 
while len(NumGiven)<7 or len(NumGiven)>8: 
    NumGiven=(input('Please enter a 7 or 8 digit number:')) 
if len(NumGiven)==8: 
    list=[int(i) for i in NumGiven.split()] 

Я думаю, что есть что-то не так с последней строки, я посмотрел на многие другие темы, но они никогда не казалось работать. Может кто-нибудь помочь мне настроить этот код.

+4

Вы должны объединить петли –

+0

голосования возобновить. Предполагаемый дублированный вопрос - чтение целых чисел, но это касается разделения строк. – recursive

+0

Какое поведение вы наблюдаете, что заставляет вас поверить, что он не работает? – pat

ответ

2

NumGiven.split() распадается на пробелы, но, вероятно, нет. Поскольку вы хотите перебирать символы, вы можете просто исключить .split().

list=[int(i) for i in NumGiven] 
+1

Кроме того, обычно рекомендуется избегать использования идентификаторов, таких как 'list', поскольку это встроенный python. Используйте 'the_list' или' _list' или 'digitits'. –

+0

спасибо за ваш ответ, поэтому, если я использую строку, которую вы мне дали, превратит мою строку в список, что означает, что я могу добавить 8 цифр вместе? – wdwdwdw

+0

@ HåkenLid за предложение – wdwdwdw

0

OP попросил сумму - она ​​должна быть:

print(sum([int(i) for i in NumGiven])/10.0) 
+0

вы забыли разделить на 10. –

+0

@domo Спасибо, я знаю, как это сделать, это просто превратило строку в список, но спасибо. – wdwdwdw

+0

Большое спасибо, ребята xD – wdwdwdw

Смежные вопросы