2011-01-23 4 views
0

Я необычайно новичок в программировании, поэтому он много ретранслирует. мой мозг думать как программист.Нужна помощь с While Loop

Мне нужно создать скрипт в Python, используя время цикла, который делает это:

 
zebra arbez 
ebraz zarbe 
braze ezarb 
razeb bezar 
azebr rbeza 

Имейте в виду, что сценарий должен быть в состоянии сделать это с любым словом. Например, прямо сейчас a = 'zebra'. Если a = 'cat' скрипт должен выглядеть следующим образом:

 
cat tac 
atc cta 
tca cat 

Я понял, как это сделать с for цикла ... просто не могу понять, как именно реализовать его с while цикла.

Мой for цикл:

a = 'zebra' 
for i in range(len(a)): 
    print a[i:] + a[:i], (a[i:] + a[:i])[::-1] 

Если кто-то может мне помочь, или дать мне намеки ... Я действительно ценю это! спасибо!

+0

Вы знаете, как это сделать с помощью цикла for, но не можете понять, как это сделать с циклом while? Это кажется странным для меня, поскольку для циклов и в то время как петли обычно учат одновременно. У вас просто проблемы с синтаксисом? Если это так, ответ будет зависеть от языка. К сожалению, вы забыли указать в своем вопросе, какой язык вы используете. –

+1

Добавьте код для вашего лучшего снимка, и вы, скорее всего, получите помощь. – Apalala

+1

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

ответ

0

Вот код, который будет работать для любого размера слова, используя цикл While:

word = "alpha" 
index = 0 

while (index < len(word)): 
    print word + " " + word[::-1] 
    word = word[1:] + word[0] 
    index += 1 
+0

слово [1:] + слово [0] работает для строк (строковый индекс создает строку), но не будет вообще list-index чаще всего не является списком), слово [1:] + слово [: 1] более правильное. –

7
for (initialization_expression;loop_condition;increment_expression){ 
    // statements 
} 

в основном только хороший способ написания

initialize_expression; 
while(loop_condition){ 
    // statements 
    increment_expression 
} 

деконструкции ваше для петель в этот формат, и вы должны иметь свое решение.

+0

О, мне очень жаль. Я использую Python. :(My for loop выглядит следующим образом: a = 'zebra' для i в диапазоне (len (a)): \t напечатать a [i:] + a [: i], (a [i:] + a [: i]) [:: - 1] Я не знаю, почему у меня проблемы с преобразованием его в цикл while! Я пробовал так много разных вариаций, но каждый раз, когда я запускаю его, ничего не происходит! :( – SexyLlama

+0

Ah ok. Рассмотрим, что для i в диапазоне (len (a)) дает вам: первый раз он дает вам 0, второй, 1 и т. Д., Пока он не даст вам len (a) -1. Можете ли вы переписать цикл с тем, чтобы ваш i начинался с нуля и затем увеличивался до тех пор, пока len (a) -1? – dabhaid

0

Следующий код, кажется, работает, как хорошо, но я не уверен, если это то, что ваш учитель хочет

a = 'zebra' 
b='' 
while a: 
    print a+b, (a+b)[::-1] 
    b+=a[0] 
    a=a[1:] 
Смежные вопросы