2015-05-18 2 views
1

Я нахожусь на одном шаге вопроса, на который я не могу ответить. Первая часть:Использование while loop для вывода входного имени назад

full_name = input('Enter your full name ') 

Вторая часть заключается в использовании while цикла, чтобы напечатать имя из назад бы от 'John Finger' к 'regniF nhoJ'.

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

+0

почему он * должны * быть сделано в цикле в то время? – khajvah

+0

Вот что задает вопрос, и я совершенно не согласен с этой частью ... –

+0

@khajvah Это какая-то задача для изучения питона, если бы я угадал – konart

ответ

2
reverse_name ="" 
    i = len(full_name) 
    while i > 0: 
     reverse_name += full_name[i-1] 
     i -=1 
2

Это обычный способ сделать это:

print(full_name[::-1]) 

Но это, вероятно, что имеется в виду:

full_name = input('Enter your full name ') 

pos = len(full_name) - 1 
while pos >= 0: 
    print(full_name[pos], end="") 
    pos -= 1 

print() 

Есть несколько различных способов сделать это, и это стандартное программирование, которое будет работать (в принципе) на многих языках. Это не Pythonic. Проблема в том, что для каждого символа создается новый строковый объект, который неэффективен.

1
import sys 
name = 'John Finger' 

index = len(name) - 1 
while index >= 0: 
    sys.stdout.write(name[index]) 
    index -= 1 
+0

Ваш оператор 'print' указывает на python 2. Поскольку вопрос использует' input() ', а не' raw_input() ', то я думаю, что мы можем предположить python 3. – cdarke

+1

@cdarke Исправлено правильное для 2 и 3. –

1
  1. Длина: Получить длину строки по len функции в сборке.
  2. отсчет декремента от 1, потому что индекс строки начать с 0
  3. Применить while цикл с условием count greater then -1.
  4. Строка Конкатенация: Добавить две строковые переменные.
  5. Распечатать результат.

Demo:

>>> full_name = "John Finger" 
>>> result = "" 
>>> count = len(full_name) 
>>> print "lenght:", count 
lenght: 11 
>>> count -= 1 
>>> while count>-1: 
... result +=full_name[count] 
... count -= 1 
... 
>>> result 
'regniF nhoJ' 
Смежные вопросы