Python反轉字符串的最簡單方法是用切片:
>>> a='123456'
>>> print a[::-1] 654321
切片介紹:切片操作符中的第一個數(冒號之前)表示切片開始的位置,第二個數(冒號之后)表示切片到哪里結束,第三個數(冒號之后)表示切片間隔數。如果不指定第一個數,Python就從序列首開始。如果沒有指定第二個數,則Python會停止在序列尾。注意,返回的序列從開始位置開始 ,剛好在結束位置之前結束。即開始位置是包含在序列切片中的,而結束位置被排斥在切片外。
這樣,a[1:3]返回從位置1開始,包括位置2,但是停止在位置3的一個序列切片,因此返回一個含有兩個項目的切片。類似地,a[:]返回整個序列的拷貝。a[::3]返回位置3,位置6,位置9…的序列切片。
也可以用負數做切片。負數用在從序列尾開始計算的位置。例如,a[:-1]會返回除了最后一個項目外包含所有項目的序列切片,shoplist[::-1]會返回倒序序列切片。
舉一個完整例子,讀入用戶輸入並反轉字符串,並寫入到文件中
#!/usr/bin/python
import sys #打開文件進行寫入
myfile=open('test.txt','w') while 1: print "input your string \n"
#readline會讀入最后的換行符
line=sys.stdin.readline() #判斷輸入是否為空字符串
if line.strip('\n')=='': break
#原輸入字符串合並上反轉的字符串
allmessage=line[:-1]+line.strip('\n')[::-1] print allmessage #輸入及轉換后的字符串寫入到文件中
myfile.write(allmessage+'\n') #記得關閉文件操作流
myfile.close()
用shell bash方法可以如下:
#! /bin/sh
while true
do
echo "Pls enter your string" "\n" read my if [ -z $my ]; then break fi remy=$(echo $my | rev) echo $my$remy echo $my$remy >> test.txt done