Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
1

Цикл while

16.01.2019, 12:56. Показов 2800. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте, уважаемые форумчане. Решаю задачи на checkio.
Столкнулся с таким решением. Не могли бы мне объяснить как работает функция.
Если бы точнее не понятна конструкция, которая описана в теле цикла через запятую.



Python
1
2
3
4
5
def checkio(n, t=''):
    for i in range(9, 1, -1):
        while not n%i:
            n, t = n//i, str(i)+t
    return n==1 and int(t)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2019, 12:56
Ответы с готовыми решениями:

Цикл: Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20
Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20. Возведение в степень в...

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

Цикл: Написать программу которая находит минимальное значение в списке через цикл for...
Написать программу которая находит минимальное значение в списке через цикл for, то есть первое...

Почему не работает цикл for in range . То есть он не повторяет вложенный в него цикл while
import random res = 0 ore = 0 for i in range(10): while res != 3 and ore != 3: ...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...

3
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
16.01.2019, 13:05 2
Лучший ответ Сообщение было отмечено DmitryBond как решение

Решение

Python
1
n, t = n//i, str(i)+t
в две строки
Python
1
2
n= n//i   # n //= i
t = str(i)+t
1
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
16.01.2019, 15:17 3
Лучший ответ Сообщение было отмечено DmitryBond как решение

Решение

Цитата Сообщение от DmitryBond Посмотреть сообщение
не понятна конструкция,
Это синтаксис неявного использования кортежа.
Если добавить скобки:
Python
1
n,t =  (name_1,name_2)
- будет обычный литерал кортежа.
Кортеж, как и любой итерируемый объект можно распаковать поэлементно. Для этого нужно в левой части выражения - перед знаком равно - указать требуемое число переменных. Если их будет меньше или больше, чем число элементов кортежа - получим ошибку распаковки ValueError: not enough values to unpack...
Поэтому для распаковки только определенного числа элементов нужно использовать особый синтаксис:
Python
1
x,y,*_ = 1,2,3,4,5
Два первых элемента запишутся в x,y,
Python
1
2
3
4
5
>>> x,y,*_ = 1,2,3,4,5
>>> x
1
>>> y
2
остальное мы пишем в переменную с именем _ в виде списка остальных элементов.
Python
1
2
>>> _
[3, 4, 5]
Имя переменной виде нижнего подчеркивания просто некое соглашение, что это имя нам неважно и мы не будем его использовать. По факту мы, конечно, распаковали все элементы, но иного способа распаковки (как в javascript - без лишней переменной) в Python нет.

P.S. Надеюсь синтаксис целочисленного деления // и приведения числа к строке - str - вам понятен.
1
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
17.01.2019, 08:26  [ТС] 4
Всем спасибо!
0
17.01.2019, 08:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2019, 08:26
Помогаю со студенческими работами здесь

Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1) цикл «ДО» 2) цикл «ПОКА» 3) цикл «ДЛЯ»
Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1. цикл «ДО» 2. цикл «ПОКА»...

Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот цикл в цикл while
Пожалуйста помогите с задачами 1.Написать цикл for, который выводит на экран в столбец числа от...

необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием)
Помогите пожалуйста!!! необходимо на паскале написать три программы ( цикл с параметром, цикл с...

необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием)
Помогите пожалуйста!!! необходимо на паскале написать три программы ( цикл с параметром, цикл с...

Цикл с предусловием, цикл с постусловием и цикл с параметром
Объясните пожалуйста как делать эти циклы. У меня не получается. Можете сделать как на фото, или на...

Цикл: Посчитать среднее арифметическое всех чисел в заданном диапазоне. Цикл while.
Напишите пожалуйста код для данной задачки с помощью цикла while Вывести числа в пользовательском...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru