我想做这个练习:
编写一个python程序,从用户那里获取一个字符串,将其反转然后打印出来。
我尝试了一些代码,但它不起作用:
a = str(input("your str :"))
x = []
for i in a :
x.append(i)
x = x.reverse()
b = " ".join(x)
print(b)
代码为b = " ".join(x)
的人:是从列表更改为str。
看看我在IDLE中使用它
>>> a = ["khalid" ,"safi", "is", "programer"]
>>> b = " ".join(a)
>>> b
'khalid safi is programer'
>>> print(b)
khalid safi is programer
答案 0 :(得分:2)
您无需转换为列表。只需使用string[::-1]
或者,如果您只想反转这些词,请执行以下操作:
a = str(input("your str :"))
x=a.split()[::-1]
print(" ".join(x))
答案 1 :(得分:1)
reverse()在原地工作,这意味着你不需要 x = x.reverse()
这将有效:
a = str(input("your str :"))
x=[]
for i in a:
x.append(i)
x.reverse()
b = " ".join(x)
print(b)
但它仍然不是反转字符串的好方法
答案 2 :(得分:0)
你可以做到
a[::-1]
反转字符串
您的方法因此而失败
x = x.reverse()
list.reverse()作用于列表并更改您不需要将其分配给另一个列表的列表
由于您为其指定了 x ,因此反向返回的值为None,因为它不提供任何返回值,因此无保存在x中。
您申请了"".join(x) on a None object
因此导致错误
答案 3 :(得分:0)
尝试
x = str(input("your str :")).split()
x = x.reverse()
b = " ".join(x)
print(b)
答案 4 :(得分:0)
最好使用切片来反转单词列表..
如果您是python2。*用户请使用:
print " ".join(raw_input("plz enter str : ").split(" ")[::-1])
如果你是python3用户,请使用:
print(str.join(" ", input("plz enter str : ").split(" ")[::-1]))