Python翻转字符串
实在想不起来怎么做,求思路或代码《七律 人民解放军占领南京》,全文如下:
s = "钟山风雨起苍黄,百万雄师过大江。\
虎踞龙盘今胜昔,天翻地覆慨而慷。\
宜将剩勇追穷寇,不可沽名学霸王。\
天若有情天亦老,人间正道是沧桑。"
请输出全文的翻转形式,例如:
人间正道是沧桑,天若有情天亦老。
不可沽名学霸王,宜将剩勇追穷寇。
天翻地覆慨而慷,虎踞龙盘今胜昔。
百万雄师过大江,钟山风雨起苍黄 可以把内容加入列表,利用list.reverse()方法反向列表中的元素即可 直接把內容加入列表,再用reverse()的話會以每個字進行反轉,所以要把每行隔開加入列表,詩句每行有固定字數,用len()計算總字數,之後計算要把詩句分成多少行,用2個FOR循環把整篇詩分段加入列表(第一個循環是總循環次數,第2個循環是計算多少個字組成加入列表),還有用IF把標點換了,之後得出以句組成的列表,最後用reverse()打印出來
可是如果不是格式固定我暫時沒想到方法,剛學PYTHON幾天,看有沒有大佬提供一些思路{:10_266:} x = "钟山风雨起苍黄,百万雄师过大江。\
虎踞龙盘今胜昔,天翻地覆慨而慷。\
宜将剩勇追穷寇,不可沽名学霸王。\
天若有情天亦老,人间正道是沧桑。"
print(x)
row_words = input("每行幾個字?:")
print("現在我們把詩反過來諗~~")
row_words = int(row_words) + 1
time_0 = int(len(x) / row_words)
y = list(x)
new_y = []
nx = ""
for time in range(time_0) :
for row_word in range(row_words) :
word = y.pop(0)
if word == "。" :
word = ","
elif word == "," :
word = "。"
nx += word
new_y.append(nx)
nx = ""
new_y.reverse()
for reverses_word in new_y :
print(reverses_word, end="")
Hu-33-1215 发表于 2020-11-22 23:27
直接把內容加入列表,再用reverse()的話會以每個字進行反轉,所以要把每行隔開加入列表,詩句每行有固定字 ...
我想了想这样行不行?不过不知道为什么分隔后会出现一个空格在列表里,很烦
s="钟山风雨起苍黄,百万雄师过大江。\
虎踞龙盘今胜昔,天翻地覆慨而慷。\
宜将剩勇追穷寇,不可沽名学霸王。\
天若有情天亦老,人间正道是沧桑。"
s = s.replace("。",",")
s_list = s.split(",")
s_list.reverse()
length = len(s_list)
for i in range(1, length, 2):
print(s_list, end = ',')
print(s_list, end = '。')
print() 巴巴鲁 发表于 2020-11-23 07:15
我想了想这样行不行?不过不知道为什么分隔后会出现一个空格在列表里,很烦
D:\wp\wp>py app3.py
人间正道是沧桑,天若有情天亦老。
不可沽名学霸王,宜将剩勇追穷寇。
天翻地覆慨而慷,虎踞龙盘今胜昔。
百万雄师过大江,钟山风雨起苍黄。
效果不是挺好的嘛 有啥问题 本帖最后由 逃兵 于 2020-11-23 09:17 编辑
s = "钟山风雨起苍黄,百万雄师过大江。\
虎踞龙盘今胜昔,天翻地覆慨而慷。\
宜将剩勇追穷寇,不可沽名学霸王。\
天若有情天亦老,人间正道是沧桑。"
s = s.replace("。",",")
s_list = s.split(",")[:-1]
s_list.reverse()
for i in range(len(s_list)):
if i%2:
print(s_list,end='。\n')
else:
print(s_list,end=',')
输出
人间正道是沧桑,天若有情天亦老。
不可沽名学霸王,宜将剩勇追穷寇。
天翻地覆慨而慷,虎踞龙盘今胜昔。
百万雄师过大江,钟山风雨起苍黄。 wp231957 发表于 2020-11-23 09:03
D:\wp\wp>py app3.py
人间正道是沧桑,天若有情天亦老。
不可沽名学霸王,宜将剩勇追穷寇。
列表里会有个空格,反转后在第一个元素里,所以要从第二个元素开始遍历
不知道什么原因 巴巴鲁 发表于 2020-11-23 12:21
列表里会有个空格,反转后在第一个元素里,所以要从第二个元素开始遍历
不知道什么原因
你切割字符串的时候,字符串的最后一个元素是逗号,逗号的右侧又没有值,所以多切出一个空 逃兵 发表于 2020-11-23 14:18
你切割字符串的时候,字符串的最后一个元素是逗号,逗号的右侧又没有值,所以多切出一个空
哦,理解你代码第八行的意思了,强
可以这么消
页:
[1]