簡體   English   中英

使用def在python中反轉字符串

[英]Reversing string in python using def

誰能幫助我完成任務-我必須使用def來反轉字符串。 我不允許使用[::-1]或.reversed之類的方法...以下函數有效,但可以垂直打印:

def ex1(name):    
    for x in range(len(name)-1,-1,-1):
        print(name[x])

k
r
o
Y

w
e
N

如何將字母重新排列為水平? 任何人? 謝謝!

您可以使用str.join列表 str.join ,如下所示:

>>> def ex1(name):
...     return "".join([name[x] for x in range(len(name)-1,-1,-1)])
...
>>> print(ex1('abcd'))
dcba
>>>

另外,請注意,我使函數返回了字符串而不是打印它。 如果您的老師希望您使用def來完成這項工作,那么他們可能也希望這樣做。 如果沒有,那么您始終可以根據需要用print替換return

您非常接近:

def ex1(name):
    reverseName=""
    for x in range(len(name)-1,-1,-1):
        reverseName+=name[x]
    print reverseName

print語句在每行之后打印換行符(換行符),這就是為什么要垂直放置字符的原因。 解決方案不是在每個循環中打印字符,而是將它們收集在一個字符串中並在最后一次打印最終字符串。

請注意,有更有效的方法可以執行此操作(請參閱其他答案),但這可能是最簡單的方法,也是最接近已完成方法的方法。

這是可以反轉字符串的另一種方法。

def ex1(name):
    length = len(name)
    return "".join([name[length-x-1] for x in range(0, length)])

print ex1("hello world")
name=input("Whats your name ?")

def reversemyname(name):
    x=name[::-1]
    return x
reversedname=reversemyname(name)
print(reversedname)
print(name[x]), # <= add that comma

如果你想這樣的輸出kroy wen再試試這個:

sys.stdout.write(name[x])

記得import sys

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM