使用循环反转 Python 中的字符串?
Reversing a string in Python using a loop?
我被困在一个练习中,我需要仅使用循环(for 循环或 while?)来反转函数中的随机字符串。
我不能在这里使用 ".join(reversed(string))
或 string[::-1]
方法,所以有点棘手。
我的代码看起来像这样:
def reverse(text):
while len(text) > 0:
print text[(len(text)) - 1],
del(text[(len(text)) - 1]
我使用 ,
在同一行打印出文本中的每个字母!
我在 del(text[(len(text)) - 1]
上得到无效语法
有什么建议吗?
Python 字符串是不可变的,所以你不能使用 del
语句来删除字符。但是,您可以在循环遍历原始字符串的同时构建一个新字符串:
def reverse(text):
rev_text = ""
for char in text:
rev_text = char + rev_text
return rev_text
reverse("hello")
# 'olleh'
问题是您不能在 python 中的字符串上使用 del
。
然而,这段代码在没有 del 的情况下也能工作,并且有望达到目的:
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。
text = 'abcde'
length = len(text)
text_rev = ""
while length>0:
text_rev += text[length-1]
length = length-1
print text_rev
希望对您有所帮助。
这是我使用装饰器和 for 循环的尝试。将所有内容放在一个文件中。
实现细节:
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:
@reverse
def echo_alphabets(word):
return ''.join(word)
echo_alphabets('hello')
# olleh
示例 2:
@reverse
def echo_words(words):
return words
echo_words([':)', '3.6.0', 'Python', 'Hello'])
# ['Hello', 'Python', '3.6.0', ':)']
示例 3:
@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]
我被困在一个练习中,我需要仅使用循环(for 循环或 while?)来反转函数中的随机字符串。
我不能在这里使用 ".join(reversed(string))
或 string[::-1]
方法,所以有点棘手。
我的代码看起来像这样:
def reverse(text):
while len(text) > 0:
print text[(len(text)) - 1],
del(text[(len(text)) - 1]
我使用 ,
在同一行打印出文本中的每个字母!
我在 del(text[(len(text)) - 1]
有什么建议吗?
Python 字符串是不可变的,所以你不能使用 del
语句来删除字符。但是,您可以在循环遍历原始字符串的同时构建一个新字符串:
def reverse(text):
rev_text = ""
for char in text:
rev_text = char + rev_text
return rev_text
reverse("hello")
# 'olleh'
问题是您不能在 python 中的字符串上使用 del
。
然而,这段代码在没有 del 的情况下也能工作,并且有望达到目的:
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。
text = 'abcde'
length = len(text)
text_rev = ""
while length>0:
text_rev += text[length-1]
length = length-1
print text_rev
希望对您有所帮助。
这是我使用装饰器和 for 循环的尝试。将所有内容放在一个文件中。
实现细节:
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:
@reverse
def echo_alphabets(word):
return ''.join(word)
echo_alphabets('hello')
# olleh
示例 2:
@reverse
def echo_words(words):
return words
echo_words([':)', '3.6.0', 'Python', 'Hello'])
# ['Hello', 'Python', '3.6.0', ':)']
示例 3:
@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]