Reversing a string in Python using a loop?
本问题已经有最佳答案,请猛点这里访问。
我陷入了一个只使用循环(for loop还是while?)反转函数中随机字符串的练习中。.
我不能在这里使用
我的代码如下所示:
1 2 3 4 | def reverse(text): while len(text) > 0: print text[(len(text)) - 1], del(text[(len(text)) - 1] |
我用
我在
有什么建议吗?
python字符串是不可变的,因此不能使用
1 2 3 4 5 6 7 8 | def reverse(text): rev_text ="" for char in text: rev_text = char + rev_text return rev_text reverse("hello") # 'olleh' |
问题是不能在python中的字符串上使用
1 2 3 4 5 6 7 | def reverse(text): a ="" for i in range(1, len(text) + 1): a += text[len(text) - i] return a print(reverse("Hello World!")) # prints: !dlroW olleH |
python字符串是不可变的。不能对字符串使用del。
1 2 3 4 5 6 7 8 | text = 'abcde' length = len(text) text_rev ="" while length>0: text_rev += text[length-1] length = length-1 print text_rev |
希望这有帮助。
这里是我使用一个装饰器和一个for循环的尝试。把所有东西放在一个文件里。
实施细节:
1 2 3 4 5 6 7 | def reverse(func): def reverse_engine(items): partial_items = [] for item in items: partial_items = [item] + partial_items return func(partial_items) return reverse_engine |
用途:
例1:
1 2 3 4 5 6 | @reverse def echo_alphabets(word): return ''.join(word) echo_alphabets('hello') # olleh |
例2:
1 2 3 4 5 6 | @reverse def echo_words(words): return words echo_words([':)', '3.6.0', 'Python', 'Hello']) # ['Hello', 'Python', '3.6.0', ':)'] |
例3:
1 2 3 4 5 6 7 8 | @reverse def reverse_and_square(numbers): return list( map(lambda number: number ** 2, numbers) ) reverse_and_square(range(1, 6)) # [25, 16, 9, 4, 1] |