19 Обход всех цифр числа с помощью while Python
🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/course/63085/promo
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7caBlNDM6
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_egoroff
Стать спонсором канала
/ @egoroffchannel
boosty.to/egoroff_channel
/ artem_egorov
egoroffartem.pythonanywhere.co...
Подробная информация об этом уроке
С помощью цикла while напишем программу, которая находит:
- количество цифр в числе;
- сумму всех цифр в числе;
- произведение всех цифр в числе;
- самую большую цифру в числе;
- самую маленькую цифру в числе.
Также научимся обходить цифры числа в различных системах счисления
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
или в Вк
videos-177962775?secti...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы
Пікірлер: 110
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
Огромное спасибо за ваши видео, объясняете очень понятно и доходчиво.
Умение Артёма объяснять, как всегда, на топовом уровне! Есть один момент в условии произведения цифр числа. Если в числе, которое введет пользователь, будет хотя бы один 0, то произведение цифр будет также равно 0.
@romanvishnyakov6835
Жыл бұрын
Даже не подумал) 👍👍 В таком случае, if last > 1: pr = pr x last
Все супер объяснил!
Разбор задач Жизнь без нулей kzread.info/dash/bejne/gXifj9KLetG3ZLg.html Стать спонсором kzread.info/dron/McC_43zGHttf9bY-xJOTwA.htmljoin Стать патроном www.patreon.com/artem_egorov
Спасибо 😉
0:40 сразу же понял, что будет браться последняя цифра и удаляться, это всё благодаря твоим видеоуроком!
Перевод числа в двоичную систему счисления x = int(input( 'Введите число для перевода в двоичную систему: ')) y = 0 # после наполнения выведет число в двоичной системе i = 1 # вспомогательный множитель while x > 0: last = x % 2 y = y + last * i i *= 10 x = x // 2 print ( y )
В последнем примере возможно будет удобнее обозначить основание системы счисления,например,за base перед началом цикла и в зависимости от нужной системы счисления получать результат.
Спасибо! Все доходчиво объяснено.
крутые урок
привет решил задачку вот так, но думаю длинновато получилось # A. Жизнь без нулей a = int(input()) b = int(input()) c = a + b degree = 0 # степени числа a_no_zero = 0 while a > 0: last = a % 10 if last != 0: last = last * 10**degree a_no_zero = a_no_zero + last degree += 1 a //= 10 degree = 0 b_no_zero = 0 while b > 0: last = b % 10 if last != 0: last = last * 10**degree b_no_zero = b_no_zero + last degree += 1 b //= 10 degree = 0 c_no_zero = 0 while c > 0: last = c % 10 if last != 0: last = last * 10**degree c_no_zero = c_no_zero + last degree += 1 c //= 10 if a_no_zero + b_no_zero == c_no_zero: print("YES") else: print("NO")
Добрый день, спасибо за уроки, но по названию сразу хочется написать следующий код: text = 'He11o' i = 0 while i != len(text): if text[i].isalpha(): # Действие print(text[i]) i = i + 1
Выращиваем бактерии x = 33 a = 0 # adding b = 0 while x/2 >= 1 : x_old = x if x%2 != 0 : # will minus 1 if non-even a = 1 else : a = 0 x = int((x - a) / 2) b += a print(x, "* 2 + ", a, "= ", x_old) b += x # add remainder b = int(b) print("added: ", b)
Долго думал над задачей про бактерии. Разложил варианты до 15-ти и заметил, что результат - это сумма единиц при переводе заданого числа в двоичную систему (именно поэтому, я так понял, в видео сделан на этом акцент). Тогда, соответственно, решил ....Но все равно не понимаю, почему так, почему тут нужно было использовать метод с двоичной системой, при чем он правильный и рабочий.
как по мне проще число преобразовать в строку, делать срезы, и выводить их как число
Всё очень хорошо объясняет(просто в тетрадке нужно всё расписывать и досконально разбирать)У меня вопрос (время 3:29) kol = kol + 1(можно ли так записывать : kol +=1) это одно и тоже определение? А то я путаюсь с этим определением. Спасибо за ответы в комментах:)
@user-vq8fh3yj1w
3 жыл бұрын
Тоже стал записывать в тетрадь))
@dregster564
2 жыл бұрын
Привет, друг, как успехи после 2х лет?
@knowledgesponge8111
2 жыл бұрын
@@dregster564 Привет, если честно , то я забил на пайтон. Из за непонимания что и для чего нужно делать.
@user-zs5jo9kd5l
2 жыл бұрын
@@knowledgesponge8111 а в програмирование остался? Или вообще ушел из стязи?
@knowledgesponge8111
2 жыл бұрын
Сверстал пару простых сайта, Изучаю JavaScript всё с трудом даётся, всё сам без чьей либо помощи не зная английского языка, всё это сложно, уверенность хрен знает когда в этом направлении придёт.
Решил задачу "Жизнь без нулей" с циклом while. x, y = map(int,input().split()) z = x + y i=1 j=1 k=1 newx=0 newy=0 newz=0 while x>0: if (x%10)!=0: newx=newx+(x%10)*i i=i*10 x=x//10 while y>0: if (y%10)!=0: newy=newy+(y%10)*j j=j*10 y=y//10 while z>0: if (z%10)!=0: newz=newz+(z%10)*k k=k*10 z=z//10 if newz == newx+newy: print('yes') else: print('no')
Жизнь без нулей получилась мудреной)) но вроде работает x=int(input()) g=int(input()) n=x+g y=0 c="" v="" b="" while x>0: y=x%10 if y>0: c=str(y)+c x=x//10 while g>0: y=g%10 if y>0: v=str(y)+v g=g//10 while n>0: y=n%10 if y>0: b=str(y)+b n=n//10 if int(c)+int(v)==int(b): print('YES') else: print('NO')
👏
Отличное объяснение! Есть вопрос: подсчет цифр в числе. Если вводимое заканчивается на 0 - то все ясно , как быть если вводимое число начинается с нуля?
А что если в числе ноль есть? Есть модуль в пайтоне, который сам считает?
print('''Числа выписываются снизу вверх например: 0 3 6 мы выписываем как 630. ''') x = int(input('Введите число в 10 системе: ')) y = int(input("Введите систему счисления в которую хотите перевести число: ")) while (x > 0): last = (x % y) #Находим число по заданной системе счисления print(last) x = (x//y) #удаляем последнюю цифру
Жизнь без нулей (не знаю, как бы я ещё использовал while, с числами бы вышло посложнее) a=input() b=input() c=int(a)+int(b) c=str(c) while ('0' in a) or ('0' in b) or ('0' in c): a=a.replace('0','') b=b.replace('0','') c=c.replace('0','') a=int(a) b=int(b) c=int(c) if a+b==c: print('yes') else: print('no')
Задача "жизнь без нулей" через обход всех цифр у меня была достаточно объемной: вывести все цифры числа А!=0, перевести их в str, сложить все в переменную, отзеркалить, перевести обратно в число. Затем для остальных переменных B,C. После чего ставить условия на равенство для решения задачи. Мне было гораздо проще решить без цикла While, для меня это был самый очевидный способ. a=input(); b=input() c=int(a)+int(b) if int(a.replace('0',''))+int(b.replace('0',''))==int(str(c).replace('0','')):print('YES') else:print('NO') Про выращивание бактерий: s=0 x=int(input()) i=1 while x>1: i=1 while 2*i
@HmaPaYT
5 жыл бұрын
Про выращивание бактерий у вас неправильно. У меня, конечно, вообще идей нет, но ваш вариант не работает, так как чтобы добиться 10 бактерий нужно положить 1 бактерию, а когда будет 4 положить еще 1, а у вас пишет, что нужно 3
@HmaPaYT
5 жыл бұрын
x=int(input('Вводите число, пожалуйста: ')) suma=0 while x>0: last=x%2 suma=suma+last x=x//2 print(suma)
@zaurd351
5 жыл бұрын
@@HmaPaYT спасибо за инфу, я откорректировал решение, но Ваш вариант получился интереснее. Я его сразу не заметил и до такого решения не допер)
@bobbybob628
5 жыл бұрын
не совсем понял твой код, можешь объяснить?
@zaurd351
5 жыл бұрын
@@bobbybob628 который именно?
Я так понимаю, у Егора весь литкод решен на 100% :)
Выращиваем бактерии: x=int(input('Нужно бактерий:')) allbacteries = 1 need = 1 while allbacteries != x: if allbacteries * 2
@its_star_life1
Жыл бұрын
Какой результат?
Добрый день. А можете оставлять ссылки на задачи в комментариях под видео на youtube, а то на сайте "практика" не грузится?
@egoroffchannel
5 жыл бұрын
добрый день. Странно, что не грузится(( я постараюсь в ближайшее время добавить в описание под видео новые задачи
@helenadoyle8766
5 жыл бұрын
@@egoroffchannel у меня та же самая проблема была, на сайте раздел "практика" не грузится в гугл хром. потом попробовала через другой браузер mozilla firefox - загрузилось.
weight = int(input("Укажите ваш вес: ")) if weight>=56: print("Ого! А ляхи трутся?") ask = int(input("Yes = 1, No = 0 ")) if ask==1: print("Жируха") else: print("Все равно жируха")
А посчитать отрицательные подскажите как?
Я буду тут каждый день. День 9.4
Я не понял, как переводится число в двоичную систему...?
Не работает ссылка на практические задания - можете помочь?
подскажите, пожалуйста, при работе программистом нужно будет пользоваться всеми этими степенями? или это только для егэ ?
@euphoriaas
Жыл бұрын
для программиста нужно всё
Здравствуйте на счислении 2,почему 8,4,2 .
Жизнь без нулей: a,b=map(int,input().split()) ab=a+b sumab=0 suma=0 sumb=0 while a>0: lasta=a%10 suma=lasta+suma a=a//10 while b>0: lastb=b%10 sumb=lastb+sumb b=b//10 while ab>0: lastab=ab%10 sumab=lastab+sumab ab=ab//10 if suma+sumb==sumab: print('YES') else: print('NO')
Жизнь без нулей, сделал через цикл, но такое ощущение что сильно усложнил, можно было проще сделать: a = int(input()) b = int(input()) a_bez_0 = a b_bez_0 = b s_bez_0 = a + b # summa bez 0 summa = a + b i = -1 i2 = -1 i3 = -1 lastA = 0 lastB = 0 lastS = 0 while a > 0: lastA = a % 10 # posl cifra if lastA == 0: a_bez_0 = int(str(a_bez_0)[:i] + str(a_bez_0)[i + 1:]) # virezaem 0 cherez stroku i = i - 1 a = a // 10 #chislo bez posl cifri while b > 0: lastB = b % 10 if lastB == 0: b_bez_0 = int(str(b_bez_0)[:i2] + str(b_bez_0)[i2 + 1:]) i2 = i2 - 1 b = b // 10 while summa > 0: lastS = summa % 10 if lastS == 0: s_bez_0 = int(str(s_bez_0)[:i3] + str(s_bez_0)[i3 + 1:]) i3 = i3 - 1 summa = summa // 10 if a_bez_0 + b_bez_0 == s_bez_0: print('YES') else: print('NO')
@dimmafer2615
5 жыл бұрын
у меня вроде попроще, но строк не меньше))) a = int(input()) b = int(input()) c = a+b a_last = 0 b_last = 0 c_last = 0 a_bez_0 = "" b_bez_0 = "" c_bez_0 = "" while a>0: if a%10==0: while a%10==0: a = a//10 a_last = a%10 a_bez_0 = str(a_last) + a_bez_0 a = a//10 while b>0: if b%10==0: while b%10==0: b = b//10 b_last = b%10 b_bez_0 = str(b_last) + b_bez_0 b = b//10 while c>0: if c%10==0: while c%10==0: c = c//10 c_last = c%10 c_bez_0 = str(c_last) + c_bez_0 c = c//10 if int(a_bez_0)+int(b_bez_0)==int(c_bez_0): print("YES") else: print('NO')
Если в числе присутствует ноль на выходе произведение всегда будет ноль. т.к. все перемноженное умножается на ноль , и после нуля все умножается на ноль. Исправляется легко . Но будет ли такое произведение верным ? И тогда вычисление произведения нужно ставить после вычисления минимума , а то исправление плохо работает .
@Putu_pererenan
Ай бұрын
Зачем, это уже не произведение ВСЕХ чисел будет
Можно было немного объяснить про системы исчисления (двоичные и т.д), с ходу ничего не понятно.
Если я правильно понимаю, данный код не будет работать если в числе есть 0? Если это так, то зачем давать код который работает только для чисел без нулей?
@ArtyomRolei
2 жыл бұрын
Будет работать. Например, есть число 108. 8 отсекаем после первой итерации обхода , остаётся 10. Проверяем 10 больше нуля? Да. Проходим дальше. (вторым в данном случае уберется 0 , останется 1).
Не могу понять как last=x%10 в числе, к пример 456 last=4 при s=0 и выходит s=s+last выдает сумму
@egoroffchannel
5 жыл бұрын
а видео про деление нацело и остаток от деления смотрел?
@user-iy6vk4pn1j
4 жыл бұрын
@@egoroffchannel а как число перевести в 16ричную??? там же еще буквы...
без обид, но урок очень запутанный получился, все вперемешку, до этого все было понятно, но спасибо
@upsilon8672
4 жыл бұрын
со второго просмотра все становится понятно
egoroffartem.pythonanywhere.com/course/python/19 поправьте ссылку на урок в описании!
@user-ur2eu3dj3z
3 жыл бұрын
Она ведет на урок elif
@egoroffchannel
3 жыл бұрын
хорошо,спасибо
С первого урока и до этого урока все шло как по маслу, я все понимала, но вот в конце этого урока про "двоичные/пятеричные" системы я поплыла... Как-то внезапно и непонятно откуда и зачем тут эта тема.
начиная с 8-ой минуты я понял , что ничего не понял.Объясните кто-нибудь пожалуйста чайнику kzread.info/dash/bejne/qY6Byrufp9PLnJM.html . Как автор перевёл число 14 в двоечную запись и откуда он брал степени двойки 8, 4, 2, 1 ?
@abu_umm_culsum
5 жыл бұрын
kzread.info/dash/bejne/pnynsc-Pgs28dZc.html
LUST
4:51 _"на 1 умножаешь и число не меняется"_ Вы не учли момент, когда в числе есть цифра 0 (ноль), то результат перемножения обнулится, - чего мы хотели избежать ;-))
14%2=0 1. 1 1, как вышло???
Жизнь без нулей: a = int(input()) b = int(input()) c = a + b ra, rb, rc = 0, 0, 0 while a: if a%10 != 0: ra = 10 * ra + a%10 a //= 10 while b: if b%10 != 0: rb = 10 * rb + b%10 b //= 10 while c: if c%10 != 0: rc = 10 * rc + c%10 c //= 10 if int(str(rc)[::-1]) == int(str(ra)[::-1]) + int(str(rb)[::-1]): print('YES') else: print('NO')
@alex_pure
2 жыл бұрын
Выращиваем бактерии: x = int(input()) count = 1 while x != 1: if x%2 == 0: x //= 2 else: x -= 1 count += 1 print(count)
Объясните,пожалуйста, как это вообще работает?1:45 я просто не понял..
задания бы
@egoroffchannel
4 жыл бұрын
egoroffartem.pythonanywhere.com/course/python/obkhod-vsekh-tsifr-chisla-s-pomoshchyu-while тут есть немного
На каком именно экзамене? ЕГЭ или ОГЭ?
@greatsergius13
Жыл бұрын
Экзамен от Артёма на платформе "Stepik" по бесплатному курсу: Инди-курс программирования на Python.
Кто со степика?+
индусы
Чему я научилась аахахах
Решил задачу "Жизнь без нулей", но без применения цикла while! Как его применить? a=str(input()) b=str(input()) c=str(int(a)+int(b)) if int(a.replace('0',''))+int(b.replace('0',''))==int(c.replace('0','')): print('YES') else: print('NO')
@egoroffchannel
5 жыл бұрын
в видео рассказывается как при помощи while можно обойти все цифры числа. Этот алгоритм нужно немного переделать так, чтобы он при обходе числа убирал из него нули.
@user-fr3hy2ls9u
4 жыл бұрын
Я тут немного опробовал функции еще. Но если не обращать на них внимание, то всё, что написано после def del_null(x) и до return temp, занимается тем, что удаляет нули. В x передаются числа, где надо убрать нули a=int(input()) b=int(input()) last=0 def del_null(x): temp=0 i=1 while x>0: last=x%10 if last!=0: temp+=i*last i*=10 x=x//10 return temp if del_null(a+b)==del_null(a)+del_null(b): print('YES') else: print('NO')
помогите решить задачу жизнь без нулей! пожалуйста!
@PAIN153
4 жыл бұрын
именно без while!
@PAIN153
4 жыл бұрын
с краев еще получается убрать 0 но вот что делать с нулем по середине! как вернуть потом все число без нуля теперь уже! когда его нашли
Капец! Вообще перестал понимать!(((
@workstation8533
3 жыл бұрын
Значит плохо материал проходил.
в этот раз нифига не понятно
С жизнью без нулей через while тяжко, не до конца понятно.
@egoroffchannel
5 жыл бұрын
надо в каждом числе и в сумме этих чисел убрать нолики и потом сделать одну проверку
@brianbrown650
5 жыл бұрын
@@egoroffchannel суть в делении по остатку и в провке?
@egoroffchannel
5 жыл бұрын
@@brianbrown650 суть в алгоритме, который в видео. Его надо изменить так,чтобы мы после обхода избавились от всех нулей в числе
@brianbrown650
5 жыл бұрын
@@egoroffchannel Я пересмотрел ролик 5 раз, пробовал много раз, но я не понимаю как убрать нули.
@Helen-vh8up
4 жыл бұрын
@@egoroffchannel чёт заклинило, никак не соображу как нули поубирать.....
Нихрена не понял. Особенно последнее ...
ужастное задание про бактерии, условие задачи составлено не корректно, как по мне