Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 21, 2015 22:59:08

ogorelcev
Зарегистрирован: 2015-11-21
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Эволюция чайника))

Приветствую, господа, товарищи и, уверен, будущие коллеги!

Освоение нового и совершенно неизвестного мне занятия под названием “программирование” я решил начать с Python (или Питон, как вам больше нравится))).

В настоящий момент занимаюсь по книге Доусона “Программируем на Python” (“Python programming for absolute beginner”).

Естественно, что по ходу знакомства с языком будут возникать те или иные вопросы, ответы на которые я надеюсь получить у Вас. Для чего и создаю эту тему.

Так что, тем, кто готов поделиться своими знаниями, добро пожаловать!

Как, впрочем, и всем остальным))

Офлайн

#2 Ноя. 22, 2015 00:04:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Эволюция чайника))

ogorelcev
Освоение нового и совершенно неизвестного мне занятия под названием “программирование”
Ну, давай, коль не шутишь.
Возьми этот текст, который ты написал, и сделай с ним следующее: каждую первую букву в каждом слове сдвинь вправо по алфавиту. Регистр сохраняется.
Было:
“Приветствую, господа, товарищи”
Стало:
“Рриветствую, доспода, уоварищи”

На входе - строка с текстом, на выходе - строка с изменённым текстом.



Отредактировано py.user.next (Ноя. 22, 2015 00:05:42)

Офлайн

#3 Ноя. 22, 2015 00:12:55

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Эволюция чайника))

ogorelcev
ответы на которые я надеюсь получить у Вас. Для чего и создаю эту тему.
ogorelcev
Так что, тем, кто готов поделиться своими знаниями, добро пожаловать!
Это не блог. На форуме создают одну тему под один вопрос/проблему.
Не надо писать в одной теме кучу разной и несвязной инфы.

Что-то подобное, можешь замутить в разделе “флейм”.



Офлайн

#4 Ноя. 23, 2015 13:06:19

ruskiy1
Зарегистрирован: 2015-10-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Эволюция чайника))

py.user.next
Ну, давай, коль не шутишь.
Возьми этот текст, который ты написал, и сделай с ним следующее: каждую первую букву в каждом слове сдвинь вправо по алфавиту. Регистр сохраняется.
Было:
“Приветствую, господа, товарищи”
Стало:
“Рриветствую, доспода, уоварищи”

На входе - строка с текстом, на выходе - строка с изменённым текстом.

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

inputstring = input('Введите текст: ')
words = inputstring.split()
s = inputstring
for word in words:
k = ord(word) + 1
if k == 91:
k = 65
elif k == 123:
k = 97
elif k == 1072:
k = 1040
elif k == 1104:
k = 1072
s = s.replace(word,chr(k)+word)
print(“Полученный текст: {}”.format(s))

запиливай еще таких задач)

Отредактировано ruskiy1 (Ноя. 23, 2015 13:52:45)

Офлайн

#5 Ноя. 23, 2015 13:42:44

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2578
Репутация: +  58  -
Профиль   Отправить e-mail  

Эволюция чайника))

сгенерировать список из 20 елементов при помощи оператора random
каждый член должен быть целым числом в пределах от 1 до 50
после чего посчитать и вывести:
1. Список
2. количество четных членов
3. количество нечетных членов
4. Сумму первых и вторых



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#6 Ноя. 23, 2015 14:07:43

ruskiy1
Зарегистрирован: 2015-10-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Эволюция чайника))

ZerG
сгенерировать список из 20 елементов при помощи оператора randomкаждый член должен быть целым числом в пределах от 1 до 50после чего посчитать и вывести:1. Список2. количество четных членов3. количество нечетных членов4. Сумму первых и вторых
не совсем понятно что подразумевается под суммой первых и вторых, если сумма четных и не четных - это просто сумма всех чисел

import random
s = [random.randint(1,50) for i in range(20)]
d = {'even': 0, 'odd': 0}
for x in s:
	if x % 2 == 0:
		d['even'] += 1
	else:
		d['odd'] += 1
print("Список: {}".format(s))
print("Четных числел: {}, Нечетных чисел: {}".format(d['even'],d['odd']))
print("Сумма: {}".format(sum(s)))

Офлайн

#7 Ноя. 23, 2015 14:41:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Эволюция чайника))

ruskiy1
за краткость не ручаюсь, но вроде бы отрабатывает правильно.
Не, она даже не может его сообщение принять, прочитай условие.

ruskiy1
запиливай еще таких задач)
Она должна правильно транслировать любые тексты с любыми буквами. В этом и заключается программирование. Полурешения и недорешения не принимаются.



Офлайн

#8 Ноя. 23, 2015 23:30:12

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Эволюция чайника))

py.user.next
Она должна правильно транслировать любые тексты с любыми буквами. В этом и заключается программирование. Полурешения и недорешения не принимаются.
Не претендую на абсолютную универсальность (китайский, японский, арабский, иврит и др. языки не проверял). Но с английским, русским, украинским и греческим алфавитом работает вроде правильно. Проверял в консоли.
def ch1char(word):
   return chr(ord(word[0]) + 1) + word[1:]
 
words = input("Введите текст: ").split()
outputstring = list(map(ch1char, words))
print(' '.join(outputstring))

Офлайн

#9 Ноя. 24, 2015 03:27:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Эволюция чайника))

old_monty
работает вроде правильно
Та же самая ошибка, что и у ruskiy1. У вас у обоих принимается только первая строка, тогда как обработать надо всё сообщение ТСа. В условии же написано.

Вот тебе ещё текст
ёжик
в 12 часов
несёт
яблоко

Должно получиться
жжик
г 12 шасов
оесёт
аблоко

То есть там не должны ни переводы строк в пробелы превращаться, ни группы пробелов сокращаться до одного. Программирование - это не учебные задачки, это реальные тексты.



Отредактировано py.user.next (Ноя. 24, 2015 03:30:41)

Офлайн

#10 Ноя. 24, 2015 18:49:27

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Эволюция чайника))

py.user.next
Вот тебе ещё текст
ёжик
в 12 часов
несёт
яблоко

Должно получиться
жжик
г 12 шасов
оесёт
аблоко

Тогда так:
import sys
 
def replace1char(word):
    d = {'ё':'ж', 'я':'а', 'Ё':'Ж', 'Я':'А'}
    if word[0] in d:
        return d[word[0]] + word[1:]
    elif word.isnumeric():
        return word
    else:
        return chr(ord(word[0]) + 1) + word[1:]
 
print("Введите текст.\nДля окончания ввода используйте клавиши\nCtrl-D (UNIX) или Ctrl-Z (Windows):")
inplist = []
outlist = []
for line in sys.stdin:
    inplist.append(line)
for phrase in inplist:
    words = phrase.split()
    outlist.append(words)
for elem in outlist:
    for word in elem:
        temp = replace1char(word)
        i = elem.index(word)
        elem.remove(word)
        elem.insert(i, temp)
    print(' '.join(elem))
C заданным текстом про ёжика и яблоко этот код у меня справился успешно. Но конечно этот код еще надо доработать. Группы пробелов он не сохраняет.

Отредактировано old_monty (Ноя. 24, 2015 21:31:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version