19 Обход всех цифр числа с помощью while Python

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ •

  • @egoroffchannel
    @egoroffchannel  6 місяців тому +2

    🫵 Теория без практики - ничто, поэтому 👇
    🐍 stepik.org/course/63085/promo
    👉 специально для тебя создал бесплатный топовый курс по Python
    👉 В нем тебя ждет:
    📗 более 400 практических заданий на программирование
    📗 более 250 тестовых заданий на проверку материала
    📗 десятки часов видеоматерилов по теории
    📗 видеоразборы решения заданий
    📗 текстовые материалы по урокам, примеры кода
    📗 доступ к закрытому чату с дружественной обстановкой
    📗 сертификат в случае успешного прохождения курса

  • @vlasovviktor2937
    @vlasovviktor2937 5 років тому +18

    Огромное спасибо за ваши видео, объясняете очень понятно и доходчиво.

  • @ne_psixyu
    @ne_psixyu 2 роки тому +7

    Умение Артёма объяснять, как всегда, на топовом уровне! Есть один момент в условии произведения цифр числа. Если в числе, которое введет пользователь, будет хотя бы один 0, то произведение цифр будет также равно 0.

    • @romanvishnyakov6835
      @romanvishnyakov6835 Рік тому

      Даже не подумал) 👍👍 В таком случае,
      if last > 1:
      pr = pr x last

  • @dimitrilarios2667
    @dimitrilarios2667 4 роки тому +3

    Перевод числа в двоичную систему счисления
    x = int(input( 'Введите число для перевода в двоичную систему: '))
    y = 0 # после наполнения выведет число в двоичной системе
    i = 1 # вспомогательный множитель
    while x > 0:
    last = x % 2
    y = y + last * i
    i *= 10
    x = x // 2
    print ( y )

  • @BelochkaStrelochka
    @BelochkaStrelochka 5 років тому +4

    Все супер объяснил!

  • @trimo1120
    @trimo1120 Рік тому

    0:40 сразу же понял, что будет браться последняя цифра и удаляться, это всё благодаря твоим видеоуроком!

  • @vitaldzero
    @vitaldzero 5 років тому +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)

  • @vladmedvedev6273
    @vladmedvedev6273 5 років тому +2

    Решил задачу "Жизнь без нулей" с циклом 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')

  • @kreved52
    @kreved52 5 років тому +2

    привет решил задачку вот так, но думаю длинновато получилось
    # 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")

  • @serhiilykhodid8911
    @serhiilykhodid8911 5 років тому +2

    Спасибо! Все доходчиво объяснено.

  • @Rim3347
    @Rim3347 5 років тому

    Жизнь без нулей получилась мудреной)) но вроде работает
    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')

  • @knowledgesponge8111
    @knowledgesponge8111 4 роки тому +7

    Всё очень хорошо объясняет(просто в тетрадке нужно всё расписывать и досконально разбирать)У меня вопрос (время 3:29) kol = kol + 1(можно ли так записывать : kol +=1) это одно и тоже определение? А то я путаюсь с этим определением. Спасибо за ответы в комментах:)

    • @ДмитрийПавлов-ы9в
      @ДмитрийПавлов-ы9в 4 роки тому +1

      Тоже стал записывать в тетрадь))

    • @dregster564
      @dregster564 2 роки тому +3

      Привет, друг, как успехи после 2х лет?

    • @knowledgesponge8111
      @knowledgesponge8111 2 роки тому +2

      @@dregster564 Привет, если честно , то я забил на пайтон. Из за непонимания что и для чего нужно делать.

    • @user-zs5jo9kd5l
      @user-zs5jo9kd5l 2 роки тому

      @@knowledgesponge8111 а в програмирование остался? Или вообще ушел из стязи?

    • @knowledgesponge8111
      @knowledgesponge8111 2 роки тому +3

      Сверстал пару простых сайта, Изучаю JavaScript всё с трудом даётся, всё сам без чьей либо помощи не зная английского языка, всё это сложно, уверенность хрен знает когда в этом направлении придёт.

  • @codezonev
    @codezonev 2 роки тому

    Добрый день, спасибо за уроки, но по названию сразу хочется написать следующий код:
    text = 'He11o'
    i = 0
    while i != len(text):
    if text[i].isalpha():
    # Действие
    print(text[i])
    i = i + 1

  • @СергейКалинин-г7ц
    @СергейКалинин-г7ц 4 роки тому

    Жизнь без нулей:
    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')

  • @КристинаБородина-н8я

    weight = int(input("Укажите ваш вес: "))
    if weight>=56:
    print("Ого! А ляхи трутся?")
    ask = int(input("Yes = 1, No = 0 "))
    if ask==1:
    print("Жируха")
    else:
    print("Все равно жируха")

  • @innapuzanska9857
    @innapuzanska9857 5 років тому +1

    Спасибо 😉

  • @valkiolla5940
    @valkiolla5940 4 роки тому

    print('''Числа выписываются снизу вверх
    например:
    0
    3
    6
    мы выписываем как 630.
    ''')
    x = int(input('Введите число в 10 системе: '))
    y = int(input("Введите систему счисления в которую хотите перевести число: "))
    while (x > 0):
    last = (x % y) #Находим число по заданной системе счисления
    print(last)
    x = (x//y) #удаляем последнюю цифру

  • @marksoboruns6716
    @marksoboruns6716 11 місяців тому

    Отличное объяснение! Есть вопрос: подсчет цифр в числе. Если вводимое заканчивается на 0 - то все ясно , как быть если вводимое число начинается с нуля?

  • @ananasanimator6049
    @ananasanimator6049 2 роки тому

    Выращиваем бактерии:
    x=int(input('Нужно бактерий:'))
    allbacteries = 1
    need = 1
    while allbacteries != x:
    if allbacteries * 2

  • @zaurd351
    @zaurd351 5 років тому +1

    Задача "жизнь без нулей" через обход всех цифр у меня была достаточно объемной: вывести все цифры числа А!=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
      @HmaPaYT 5 років тому

      Про выращивание бактерий у вас неправильно. У меня, конечно, вообще идей нет, но ваш вариант не работает, так как чтобы добиться 10 бактерий нужно положить 1 бактерию, а когда будет 4 положить еще 1, а у вас пишет, что нужно 3

    • @HmaPaYT
      @HmaPaYT 5 років тому +1

      x=int(input('Вводите число, пожалуйста: '))
      suma=0
      while x>0:
      last=x%2
      suma=suma+last
      x=x//2
      print(suma)

    • @zaurd351
      @zaurd351 5 років тому

      ​@@HmaPaYT спасибо за инфу, я откорректировал решение, но Ваш вариант получился интереснее. Я его сразу не заметил и до такого решения не допер)

    • @bobbybob628
      @bobbybob628 5 років тому

      не совсем понял твой код, можешь объяснить?

    • @zaurd351
      @zaurd351 5 років тому

      @@bobbybob628 который именно?

  • @solusrex3868
    @solusrex3868 4 роки тому

    В последнем примере возможно будет удобнее обозначить основание системы счисления,например,за base перед началом цикла и в зависимости от нужной системы счисления получать результат.

  • @alex_pure
    @alex_pure 2 роки тому

    Жизнь без нулей:
    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
      @alex_pure 2 роки тому

      Выращиваем бактерии:
      x = int(input())
      count = 1
      while x != 1:
      if x%2 == 0:
      x //= 2
      else:
      x -= 1
      count += 1
      print(count)

  • @Serhii_Tereshchuk
    @Serhii_Tereshchuk 5 років тому +1

    Долго думал над задачей про бактерии. Разложил варианты до 15-ти и заметил, что результат - это сумма единиц при переводе заданого числа в двоичную систему (именно поэтому, я так понял, в видео сделан на этом акцент). Тогда, соответственно, решил ....Но все равно не понимаю, почему так, почему тут нужно было использовать метод с двоичной системой, при чем он правильный и рабочий.

  • @hobby5062
    @hobby5062 Рік тому

    Здравствуйте на счислении 2,почему 8,4,2 .

  • @ВладимирВладимир-о1т
    @ВладимирВладимир-о1т 5 років тому +8

    как по мне проще число преобразовать в строку, делать срезы, и выводить их как число

  • @Astana2024Astana
    @Astana2024Astana Рік тому

    крутые урок

  • @crazzytime2628
    @crazzytime2628 4 роки тому +1

    Я не понял, как переводится число в двоичную систему...?

  • @Darie138
    @Darie138 Рік тому

    подскажите, пожалуйста, при работе программистом нужно будет пользоваться всеми этими степенями? или это только для егэ ?

    • @freyzikker
      @freyzikker Рік тому

      для программиста нужно всё

  • @balamski7954
    @balamski7954 5 років тому

    Жизнь без нулей (не знаю, как бы я ещё использовал 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')

  • @jamjam3337
    @jamjam3337 Рік тому

    👏

  • @valley527
    @valley527 5 років тому +29

    без обид, но урок очень запутанный получился, все вперемешку, до этого все было понятно, но спасибо

    • @upsilon8672
      @upsilon8672 4 роки тому +1

      со второго просмотра все становится понятно

  • @alexey6754
    @alexey6754 5 років тому

    Жизнь без нулей, сделал через цикл, но такое ощущение что сильно усложнил, можно было проще сделать:
    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
      @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')

  • @yuriybridch7508
    @yuriybridch7508 5 років тому

    А что если в числе ноль есть? Есть модуль в пайтоне, который сам считает?

  • @30014ks
    @30014ks 7 місяців тому

    Если в числе присутствует ноль на выходе произведение всегда будет ноль. т.к. все перемноженное умножается на ноль , и после нуля все умножается на ноль. Исправляется легко . Но будет ли такое произведение верным ? И тогда вычисление произведения нужно ставить после вычисления минимума , а то исправление плохо работает .

    • @Putu_pererenan
      @Putu_pererenan 5 місяців тому

      Зачем, это уже не произведение ВСЕХ чисел будет

  • @quentindrenton
    @quentindrenton Рік тому

    Я буду тут каждый день. День 9.4

  • @КрымскийШтирлиц

    Объясните,пожалуйста, как это вообще работает?1:45 я просто не понял..

  • @freshmeatUA
    @freshmeatUA 5 років тому

    Добрый день. А можете оставлять ссылки на задачи в комментариях под видео на youtube, а то на сайте "практика" не грузится?

    • @egoroffchannel
      @egoroffchannel  5 років тому

      добрый день. Странно, что не грузится((
      я постараюсь в ближайшее время добавить в описание под видео новые задачи

    • @helenadoyle8766
      @helenadoyle8766 5 років тому

      @@egoroffchannel у меня та же самая проблема была, на сайте раздел "практика" не грузится в гугл хром. потом попробовала через другой браузер mozilla firefox - загрузилось.

  • @Anton16180
    @Anton16180 Рік тому

    Я так понимаю, у Егора весь литкод решен на 100% :)

  • @serhiilykhodid8911
    @serhiilykhodid8911 5 років тому

    Не работает ссылка на практические задания - можете помочь?

  • @АндрейНазаренко-м4у

    А посчитать отрицательные подскажите как?

  • @nikitiki524
    @nikitiki524 3 роки тому

    Если я правильно понимаю, данный код не будет работать если в числе есть 0? Если это так, то зачем давать код который работает только для чисел без нулей?

    • @ArtyomRolei
      @ArtyomRolei 3 роки тому

      Будет работать. Например, есть число 108. 8 отсекаем после первой итерации обхода , остаётся 10. Проверяем 10 больше нуля? Да. Проходим дальше. (вторым в данном случае уберется 0 , останется 1).

  • @Neiron666
    @Neiron666 4 роки тому

    Можно было немного объяснить про системы исчисления (двоичные и т.д), с ходу ничего не понятно.

  • @aser4219
    @aser4219 Рік тому +2

    Кто со степика?+

  • @IseeKherson
    @IseeKherson 5 років тому

    Не могу понять как last=x%10 в числе, к пример 456 last=4 при s=0 и выходит s=s+last выдает сумму

    • @egoroffchannel
      @egoroffchannel  5 років тому

      а видео про деление нацело и остаток от деления смотрел?

    • @Koshsky-f7y
      @Koshsky-f7y 5 років тому

      @@egoroffchannel а как число перевести в 16ричную???
      там же еще буквы...

  • @As-hv9fj
    @As-hv9fj 4 роки тому

    14%2=0 1. 1 1, как вышло???

  • @dukemontana4680
    @dukemontana4680 5 місяців тому

    LUST

  • @bobby_ridge
    @bobby_ridge Рік тому

    На каком именно экзамене? ЕГЭ или ОГЭ?

    • @greatsergius13
      @greatsergius13 Рік тому

      Экзамен от Артёма на платформе "Stepik" по бесплатному курсу: Инди-курс программирования на Python.

  • @annatsoy263
    @annatsoy263 Рік тому

    С первого урока и до этого урока все шло как по маслу, я все понимала, но вот в конце этого урока про "двоичные/пятеричные" системы я поплыла... Как-то внезапно и непонятно откуда и зачем тут эта тема.

  • @winer1498
    @winer1498 5 років тому

    начиная с 8-ой минуты я понял , что ничего не понял.Объясните кто-нибудь пожалуйста чайнику ua-cam.com/video/wZMhYfwpel0/v-deo.html . Как автор перевёл число 14 в двоечную запись и откуда он брал степени двойки 8, 4, 2, 1 ?

    • @abu_umm_culsum
      @abu_umm_culsum 5 років тому

      ua-cam.com/video/tHsOmVRjVE4/v-deo.html

  • @egoroffchannel
    @egoroffchannel  4 роки тому

    Разбор задач
    Жизнь без нулей ua-cam.com/video/ODk-pRJnQ4U/v-deo.html
    Стать спонсором
    ua-cam.com/channels/McC_43zGHttf9bY-xJOTwA.htmljoin
    Стать патроном
    www.patreon.com/artem_egorov

  • @LOGOSTT
    @LOGOSTT 2 роки тому +2

    4:51 _"на 1 умножаешь и число не меняется"_
    Вы не учли момент, когда в числе есть цифра 0 (ноль), то результат перемножения обнулится, - чего мы хотели избежать ;-))

  • @okmouk4042
    @okmouk4042 5 років тому

    Решил задачу "Жизнь без нулей", но без применения цикла 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
      @egoroffchannel  5 років тому

      в видео рассказывается как при помощи while можно обойти все цифры числа. Этот алгоритм нужно немного переделать так, чтобы он при обходе числа убирал из него нули.

    • @БогданПаршинцев
      @БогданПаршинцев 5 років тому

      Я тут немного опробовал функции еще. Но если не обращать на них внимание, то всё, что написано после 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')

  • @АндрейДанилов-ю5э
    @АндрейДанилов-ю5э 4 роки тому

    egoroffartem.pythonanywhere.com/course/python/19 поправьте ссылку на урок в описании!

  • @Igorr911
    @Igorr911 4 роки тому +3

    Капец! Вообще перестал понимать!(((

    • @workstation8533
      @workstation8533 3 роки тому

      Значит плохо материал проходил.

  • @___selfh905
    @___selfh905 Рік тому +1

    индусы

  • @likeater4202
    @likeater4202 4 роки тому

    задания бы

    • @egoroffchannel
      @egoroffchannel  4 роки тому

      egoroffartem.pythonanywhere.com/course/python/obkhod-vsekh-tsifr-chisla-s-pomoshchyu-while
      тут есть немного

  • @Mr_Boriss
    @Mr_Boriss 4 роки тому +2

    в этот раз нифига не понятно

  • @antegros
    @antegros 8 днів тому

    Боль смотреть на это, представляя низкую производительность такого кода, после того как выучил Си

  • @PAIN153
    @PAIN153 4 роки тому

    помогите решить задачу жизнь без нулей! пожалуйста!

    • @PAIN153
      @PAIN153 4 роки тому

      именно без while!

    • @PAIN153
      @PAIN153 4 роки тому

      с краев еще получается убрать 0 но вот что делать с нулем по середине! как вернуть потом все число без нуля теперь уже! когда его нашли

  • @Glavny_po_vsemu
    @Glavny_po_vsemu 4 роки тому +1

    Нихрена не понял. Особенно последнее ...

  • @КристинаБородина-н8я

    Чему я научилась аахахах

  • @brianbrown650
    @brianbrown650 5 років тому

    С жизнью без нулей через while тяжко, не до конца понятно.

    • @egoroffchannel
      @egoroffchannel  5 років тому

      надо в каждом числе и в сумме этих чисел убрать нолики и потом сделать одну проверку

    • @brianbrown650
      @brianbrown650 5 років тому

      @@egoroffchannel суть в делении по остатку и в провке?

    • @egoroffchannel
      @egoroffchannel  5 років тому

      @@brianbrown650 суть в алгоритме, который в видео. Его надо изменить так,чтобы мы после обхода избавились от всех нулей в числе

    • @brianbrown650
      @brianbrown650 5 років тому

      @@egoroffchannel Я пересмотрел ролик 5 раз, пробовал много раз, но я не понимаю как убрать нули.

    • @Helen-vh8up
      @Helen-vh8up 5 років тому

      @@egoroffchannel чёт заклинило, никак не соображу как нули поубирать.....

  • @АленаДмуховская-я5л

    ужастное задание про бактерии, условие задачи составлено не корректно, как по мне