Форум сайта python.su
0
Всем привет, начал изучать питон 2 недели назад, получил задачу от учителя:
Problem 2 (30 % of the assignment grade): Given a string containing only characters ‘a’,'b' or ‘*’ print out all the strings formed from this string by replacing * with either ‘a’ or ‘b’/
For example: input ‘ab*b*’ will print out:
ababa
ababb
abbba
abbbb
Получатся надо звездочки заменить на символы a или b. Прошу помощи или объяснения как решить подобную задачу, не прошу готового задания, научите думать правильно ! Спасибо
Здесь я пытаюсь просто распечатать мой индекс
def star(myString):
myString =
for i in myString:
if(myString == “*”):
print(i)
Отредактировано Dimarik (Ноя. 27, 2019 22:30:33)
Офлайн
0
Чувствую что помощи не дождусь ))
Офлайн
857
DimarikНадо сначала составить алгоритм полностью. И только потом писать код какой-то для этого готового алгоритма.
научите думать правильно
Отредактировано py.user.next (Ноя. 28, 2019 01:07:14)
Офлайн
0
py.user.nextЯ бы заморочился, вот только не знаю с какого конца начать
Отредактировано Dimarik (Ноя. 28, 2019 03:39:09)
Офлайн
0
Подскажите если я на правильном пути
Офлайн
253
DimarikВы на правильном пути. Надо пробовать. Пост составлен грамотно. Есть постановка Изложена суть просьбы и попытки решения.
Подскажите если я на правильном пути
Офлайн
857
DimarikЕщё раз говорю: возьми листок A4 и ручку и реши эту задачу на листке без какого-либо кода. Когда ты поймёшь, какие одни и те же шаги нужно выполнить от и до на разных входных данных, тогда это можно считать рабочим алгоритмом. А когда у тебя будет рабочий алгоритм, тогда можно будет заняться его реализацией на каком-либо языке программирования.
Я бы заморочился, вот только не знаю с какого конца начать
Насколько я понимаю мне нужны три метода:
1. Main method, где будут вызываться 2 другие метода
2. changeStar
3. findStar
Офлайн
0
Done!
def findStar(myList):
for index in range(len(myList)):
if myList == ‘*’:
return index
return -1
def changeStar(myList):
# save myList inside the data to not loose the original data
data = list(myList)
position = findStar(data)
if position < 0:
# convert list to a string
print ''.join(data)
else:
data = ‘a’
changeStar(data)
data = ‘b’
changeStar(data)
myString = ‘ab*b*’
changeStar(myString)
Офлайн
253
Dimarik:) Круто!!
Done!
DimarikОбычно требуется чтобы хотя-бы пример правильный ответ давал.
For example: input ‘ab*b*’ will print out:
ababa
ababb
abbba
abbbb
Офлайн
0
Да, запустил все работает
Прикреплённый файлы:
python.PNG (172,9 KБ)
Офлайн