 |
Вітаю Вас, Гість · RSS |
 |
Розв'язуємо задачі в стилі Python
| |
swetikccc |
Дата: Пн, 04.09.2017, 15:29 | Повідомлення № 1 |
Ветеран спілкування
Повідомлень: 4208
| Задача 1 класична: Поміняти місцями дві змінні без третьої. Прохання викладати тільки розв'язки, бажано з коментарями, а також умови задач які можливо специфічно розв'язати Пітоном.
Відредаговано: swetikccc - Пн, 04.09.2017, 15:36 |
|
| |
volodschool2 |
Дата: Пн, 04.09.2017, 15:35 | Повідомлення № 2 |
Досвідчений учасник
Повідомлень: 1613
| Якщо класика, то так: a = 7 b = 5 a = a + b b = a - b a = a - b
А, якщо чисто по-пітонівськи, то:
a,b = b,a
Та навіть значення трьох можна поміняти 
a,b,c = c,a,b
Відредаговано: volodschool2 - Пн, 04.09.2017, 15:40 |
|
| |
swetikccc |
Дата: Пн, 04.09.2017, 15:46 | Повідомлення № 3 |
Ветеран спілкування
Повідомлень: 4208
| Задача 2: Дізнатися чи належить число заданному проміжку не використовуючи and?
Перша просто чудово, я думаю що змінні тут, це посилання,тому таке можливо,але потрібно перевірити.
|
|
| |
volodschool2 |
Дата: Пн, 04.09.2017, 15:58 | Повідомлення № 4 |
Досвідчений учасник
Повідомлень: 1613
| a=5 b=9 c=8 if a<c<b : print ('Yes') else: print ('No')
|
|
| |
volodschool2 |
Дата: Пн, 04.09.2017, 16:03 | Повідомлення № 5 |
Досвідчений учасник
Повідомлень: 1613
| Помітив, що при вставці коду з IDLE у форум пропуски не пропадають!
|
|
| |
Bandalak |
Дата: Пн, 04.09.2017, 17:31 | Повідомлення № 6 |
Лідер форуму
Повідомлень: 6403
| Цитата volodschool2 (  ) if a<c<b : Колись мої учні (від не знання) пробували таке писати на Паскалі, за що отримували на горіхи! А тут Еврика, спеціально для таких придумали Пітон!
Задача на текстові величини №1. Петрик П'яточкін на уроці літератури отримав домашнє завдання написати твір про проведення літніх канікул, довжиною до 10000 слів. Так, як він хлопчик досить ледаченький, то вирішив знайти готовий твір в Інтернеті. Але от незадача, знайшов твір тільки про Івасика, а потрібно про Петрика. Петрику нав'язався допомогти кращий програміст школи - Вася Пупкін. Він за допомогою мови програмування Пайтон за 10 хвилин написав програму, котра перетворює знайдений в Інтернеті твір на такий, що повністю влаштовує Петрика! А ви можете таке зробити?
|
|
| |
swetikccc |
Дата: Пн, 04.09.2017, 18:20 | Повідомлення № 7 |
Ветеран спілкування
Повідомлень: 4208
| Використати відповідний метод, який замінює всі входження одного рядка на інший my_str = my_str.replace('Івасик', 'Петрик')
|
|
| |
Bandalak |
Дата: Пн, 04.09.2017, 18:57 | Повідомлення № 8 |
Лідер форуму
Повідомлень: 6403
| Як буде виглядати програма повністю з введенням та виведенням даних?
|
|
| |
volodschool2 |
Дата: Пн, 04.09.2017, 22:12 | Повідомлення № 9 |
Досвідчений учасник
Повідомлень: 1613
| f = open('text.txt', 'r') my_string = f.read() f.close() my_string=my_string.replace('Івасик','Петрик') f = open('text.txt', 'w') f.write(my_string) f.close()
Відредаговано: volodschool2 - Пн, 04.09.2017, 22:40 |
|
| |
Bandalak |
Дата: Пн, 04.09.2017, 22:41 | Повідомлення № 10 |
Лідер форуму
Повідомлень: 6403
| О, класно, заодно вивчимо роботу з файлами! На Паскалі без циклу би не обійшлося!
А як буде виглядати така програма без використання файлів?
|
|
| |
volodschool2 |
Дата: Пн, 04.09.2017, 22:49 | Повідомлення № 11 |
Досвідчений учасник
Повідомлень: 1613
| f = input('Введіть текст ') f=f.replace('Івасик','Петрик') print(f)
|
|
| |
Bandalak |
Дата: Пн, 04.09.2017, 23:05 | Повідомлення № 12 |
Лідер форуму
Повідомлень: 6403
| А так буде працювати?
Код f = input('Введіть текст ') print(f.replace('Івасик','Петрик'))
В програмуванні ціную мінімалізм!
|
|
| |
Bandalak |
Дата: Пн, 04.09.2017, 23:24 | Повідомлення № 13 |
Лідер форуму
Повідомлень: 6403
| Задача на текстові величини №2. Петрик П'яточкін, набираючи реферат по українській літературі, замість української розкладки клавіатури випадково включив російську. Відповідно у нього замість "і" вийшло - "ы", замість "ї" - "ъ", замість апострофа - "ё", та й літера "є" була повернута в іншу сторону. Порахувати, скільки помилок у тексті спричинила не правильна розкладка клавіатури? Врахувати великі та малі літери. Вивести текст після виправлення помилок.
Приклад: petro.in Ынформатика - це наука про ынформацыю, ъъ обробку та перетворення. Це правило вивчити на памёять. Воно э у пыдручнику!
petro.out 8 Інформатика - це наука про інформацію, її обробку та перетворення. Це правило вивчити на пам'ять. Воно є у підручнику!
|
|
| |
Пилипчук_О_П |
Дата: Вт, 05.09.2017, 00:08 | Повідомлення № 14 |
Ветеран спілкування
Повідомлень: 4332
| Цитата swetikccc (  ) Перша просто чудово, я думаю що змінні тут, це посилання,тому таке можливо,але потрібно перевірити. Це можливо на яких завгодно змінних, безвідносно до того, як це реалізовано на машинному рівні. Проста математика. Чому має не працювати?
Цитата swetikccc (  ) Задача 2: Дізнатися чи належить число заданному проміжку не використовуючи and?
Цитата volodschool2 (  ) my_string = f.read() Справді, таким способом зчитується весь файл в один рядок.
Цитата volodschool2 (  ) На Паскалі без циклу би не обійшлося!
Якщо говорити про "дорослий" Паскаль, то є й таке:
Код var AStr: AnsiString; FS: TFileStream; begin FS := TFileStream.Create('c:\test.txt', fmOpenRead or fmShareDenyWrite); try if FS.Size > 0 then begin SetLength(AStr, FS.Size); FS.ReadBuffer(Pointer(AStr)^, FS.Size); end; finally FS.Free; end; end;
Тут ще й захист від помилок. Циклів, як бачимо, немає. Детальніше: http://forum.lazarus.freepascal.org/index.php?topic=31387.0
Цитата Bandalak (  ) В програмуванні ціную мінімалізм! Це не завжди добре. Неодноразово чув, що фахівці цінують читабельність коду.
|
|
| |
Пилипчук_О_П |
Дата: Вт, 05.09.2017, 00:37 | Повідомлення № 15 |
Ветеран спілкування
Повідомлень: 4332
| Цитата Bandalak (  ) замість "і" вийшло - "ы", замість "ї" - "ъ", замість апострофа - "ё", та й літера "є" була повернута в іншу сторону. Як на мене, давати дітям на початковому етапі возитися з Юнікодом - це помилка. Хоча, може я й помиляюсь... На Пайтоні вийшло щось таке:
Код s=input() print (s.count('Э')+s.count('э')+s.count('Ы')+s.count('ы')+s.count('Ъ')+s.count('ъ')+s.count('ё')) s=s.replace('Э','Є') s=s.replace('э','є') s=s.replace('Ы','І') s=s.replace('ы','і') s=s.replace('Ъ','Ї') s=s.replace('ъ','ї') s=s.replace('ё',"'") print(s)
|
|
| |
© Форум інформатиків України, 2007-2023.  |