Найти - Пользователи
Полная версия: Эволюция чайника))
Начало » Флейм » Эволюция чайника))
1 2 3 4
ogorelcev
Приветствую, господа, товарищи и, уверен, будущие коллеги!

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

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

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

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

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

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

Что-то подобное, можешь замутить в разделе “флейм”.
ruskiy1
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))

запиливай еще таких задач)
ZerG
сгенерировать список из 20 елементов при помощи оператора random
каждый член должен быть целым числом в пределах от 1 до 50
после чего посчитать и вывести:
1. Список
2. количество четных членов
3. количество нечетных членов
4. Сумму первых и вторых
ruskiy1
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)))
py.user.next
ruskiy1
за краткость не ручаюсь, но вроде бы отрабатывает правильно.
Не, она даже не может его сообщение принять, прочитай условие.

ruskiy1
запиливай еще таких задач)
Она должна правильно транслировать любые тексты с любыми буквами. В этом и заключается программирование. Полурешения и недорешения не принимаются.
old_monty
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))
py.user.next
old_monty
работает вроде правильно
Та же самая ошибка, что и у ruskiy1. У вас у обоих принимается только первая строка, тогда как обработать надо всё сообщение ТСа. В условии же написано.

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

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

То есть там не должны ни переводы строк в пробелы превращаться, ни группы пробелов сокращаться до одного. Программирование - это не учебные задачки, это реальные тексты.
old_monty
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 заданным текстом про ёжика и яблоко этот код у меня справился успешно. Но конечно этот код еще надо доработать. Группы пробелов он не сохраняет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB