2015-05-18 76 views
1

我正在回答一個我無法回答的問題的步驟。第一部分是:使用while循環向後輸出輸入名稱

full_name = input('Enter your full name ') 

第二部分是使用while循環打印出了名的喜歡倒着從'John Finger''regniF nhoJ'

它必須使用while循環來完成,這對我來說有點奇怪,因爲沒有任何東西可以用while循環展示出來。

+0

爲什麼它*必須*可以在while循環呢? – khajvah

+0

這就是問題所在,而我對這部分完全無能爲力...... –

+0

@khajvah這是研究python的一些任務,如果我猜測 – 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. 打印結果。

演示

>>> 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'