Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/48: Рейтинг темы: голосов - 48, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101

Определите значение второго по величине элемента последовательности

27.02.2020, 21:46. Показов 12600. Ответов 166
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пытаюсь научиться языку Питон-3, просмотрел некоторые поверхностные курсы по языку, вроде все понятно, но когда к примеру стал проходить курс с заданиями вот здесь https://www.coursera.org/learn... -maksimumu то до цикла While дополз, но когда посыпались задания типа: Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить одно вхождение наибольшего элемента. плюс всякие числа Фабиочи, то я поплыл...
понятно, что код можно загуглить, НО какой толк от такой учебы...?
вот стою перед выбором, бросать все это программирование т.к. моих мозгов и логики мышления не хватает на это или бросать этот курс, что посоветуете?...
для меня это очень важно...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2020, 21:46
Ответы с готовыми решениями:

Определить значение второго по величине элемента в последовательности
Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой...

Определить значение второго по величине элемента в данной последовательности
Задача звучит так: Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по...

Определите значение второго по величине элемента в последовательности
Написать программу на С++, используя циклы for и/или while, можно использовать if. Последовательность состоит из различных натуральных...

166
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
11.04.2020, 11:04
Студворк — интернет-сервис помощи студентам
coa3, Кстати, я указал диапазон именно для современных русских букв, а не для кириллицы в целом, потому что кириллицей являются также и буквы других стран, где есть сходство с русским алфавитом, но многие символы выглядят по другому, а так же кириллицей является старославянская письменность. И все они есть в Юникоде и относятся к диапазону кириллицы.
0
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
11.04.2020, 15:26  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
по поводу второго упражнения, у меня было сомнение, что у Лутца не четко дано понятие, что такое S.
не, все равно у меня не получается решить первую задачу, не сочетается у меня ord() c for... хотя как работает этот цикл понимаю, он полегче чем ненавистный while...
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
11.04.2020, 19:30
coa3, И так возьмем S = 'spam'. нам нужно выяснить (вывести на экран) коды каждого символа из этой строки. Что бы брать по одному символу из строки, используем цикл for. Шапка цикла будет брать по одному элементу (символу) из строки и помещать его в переменную цикла. Здесь удобнее работать с самими символами из строки, а не их смещениями, поэтому использовать range() не нужно. В качестве итерируемого объекта, из которого будут браться элементы по одному, будет сама строка S. В теле цикла разместим то, что мы должны делать с каждым элементом (символом), то есть с помощью функции ord() получаем код символа и выводим на экран с помощью print().
Попробуй написать код по этому алгоритму.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.04.2020, 13:55
coa3, Пока ты изучаешь функции, я освежил в памяти кодировку utf-8, а именно как она выглядит в последовательности байт, состоящих из нулей 0 и единиц 1. Во внешних файлах и в потоках строки могут иметь разную кодировку, но внутри питона они размещаются в оперативной памяти в кодировке utf-8. Для того, что бы посмотреть как выглядит строка в питоне в виде последовательности байтов, я наклепал программку, которая и тебе пригодится, когда ты дойдешь до изучения кодировок. Так что сохрани ее на будущее.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Программа ВЫВОДИТ:
# В первой строчке выводится заданная строка
# Во второй строчке код каждого символа из данной строки 
              # в шестнадцатеричном формате и в двоичном формате.
# В третьей строчке последовательность байт для заданной строки.
 
def bi(ch):               
    print(hex(ord(ch)), end='->')           # шестнадцатеричный код символа
    return bin(ord(ch))                     # двоичный код символа
 
def codU(s):                                # последовательность байт в двоичном коде.
    bU = s.encode('utf8')
    b = bytearray(bU)
    #print('')
    #print('Последовательность байт для строки', s)
    for i in b:
        sb = bin(i)[2:]
        if len(sb) < 8:
            sb = '0'* (8 - len(sb)) + sb
        print(sb, end='|')     # последовательность байт для заданной строки
    print('')
 
 
if __name__ == '__main__':
    s = 'biби'
    print(s)                        # выводит заданную строку
    for ch in s:                    # выводит код очередного символа
        print(bi(ch), end='|')      # в шестнадцатеричном и двоичном формате
    print('')
 
    codU(s)                         # выводит последовательность байт для заданной строки.
Выводит:
Python
1
2
3
biби
0x62->0b1100010|0x69->0b1101001|0x431->0b10000110001|0x438->0b10000111000|
01100010|01101001|11010000|10110001|11010000|10111000|
Первые две буквы (латинские) занимают по одному байту,
следующие две буквы (кириллица) занимают каждая по два байта.

Добавлено через 27 минут
Ноль 0 в начале байта говорит о том, что символ занимает один байт и его кодировка в utf-8 соответствует кодировке в ASCII.
Байты начинающиеся с единицы 1 являются первыми байтами для группы байтов соответствующих одному символу. Если в этом первом байте спереди две единицы, то символ занимает два байта, если три единицы, то три байта, четыре единицы то занимает четыре байта. Байты начинающиеся с пары (единица ноль) 10, являются байтами идущими за первым байтом конкретного символа.
В примере выше третий байт последовательности является первым байтом для буквы "б", которая занимает два байта. А четвертый байт последовательности является вторым байтом для буквы "б".
Вместе эти два байта, если убрать из них информационные биты кодировки, соответствуют числу 10000110001, что является кодовым числом для символа "б".
Python
1
2
>>> chr(int('10000110001',2))
'б'
0
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
12.04.2020, 18:53  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
я наклепал программку, которая и тебе пригодится,
офигеть просто...

Добавлено через 35 секунд
Цитата Сообщение от Viktorrus Посмотреть сообщение
И так возьмем S = 'spam'. нам нужно выяснить (вывести на экран)
Python
1
2
3
4
s = 'spam'
for i in s:
    v = ord(i)
print(v)
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
12.04.2020, 19:25
coa3, Итак, какая у тебя ошибка. В упражнении нужно вывести коды всех символов. А у тебя выводит код только последнего символа. Происходит это потому, что print() у тебя находится за пределами цикла (после него). Поэтому печатается только последнее значение переменной v (код последней буквы из строки). Что бы код печатался для каждой буквы из строки нужно , что бы print() располагалось внутри цикла. Тогда при каждом шаге цикла, для каждой текущей буквы из строки, будет печататься ее код.
И еще рекомендация. Что бы каждый новый код печатался не на новой строке, а в одну строчку, нужно указать пробел в качестве аргумента конца строки end = ' ' , так как по умолчанию end равно символу перевода строки end =\n.
Код должен быть таким.
Python
1
2
3
4
s = 'spam'
for i in s:
    v = ord(i)
    print(v, end=' ')
Выводит
Python
1
115 112 97 109
И еще. Ты отладчиком пользуешься? Он сразу покажет все твои ошибки.
Любую свою программу проверяй отладчиком.
1
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
12.04.2020, 23:26  [ТС]
Цитата Сообщение от Viktorrus Посмотреть сообщение
И еще. Ты отладчиком пользуешься? Он сразу покажет все твои ошибки.
да пользуюсь, PyCharm только он не покажет же, если print разместил внутри или снаружи цикла..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2020, 23:26

Определите значение второго по величине элемента в последовательности
Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой...

Определите значение второго по величине элемента в последовательности
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой...

Определите значение второго по величине элемента в этой последовательности
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой...

(использовать рекурсию) Определите значение второго по величине элемента в этой последовательности
3. (использовать рекурсию) Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите значение...

Определите значение второго по величине элемента последовательности рекурсией без циклов
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите значение второго по величине ...


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

Или воспользуйтесь поиском по форуму:
167
Закрытая тема Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru