结果为什么是gfedcba

s=input("输入一串字符:")
str=""
for c in s:
str=c+str
print(str)
如果输入的字符串s=“abcdefg”,问:
此时,输出是什么?

麻烦采纳一下,谢谢!
第一次遍历
str=a
下一次遍历
str=b+a=ba
最后输出就是 gfedcba

注意看str =c + str这句
一开始str为空,c依次等于a b c d e f g
但是在c+str这句就定了str的顺序
比如说
c =a,str = a + ""=a
c =b,str=b + a = ba
以此类推

望采纳!谢谢不懂的话可以继续问我

因为你输入的是str=c+str,它是把c增加到str的最前面,应该改成str=str+c或者str+=c。

你的程序步骤是这样的;
1.'a'+''='a'
2.'b'+'a'='ba'
......
以此类推,所以你的答案是gfedcba。


string = "gfedcba"
new_string = ""
for i in string:
    print(f"new_string = {i} + {new_string}")
    new_string = i + new_string

img


先执行右边的语句然后再赋值给左边,右边是从左到右依次执行,你可以打印过程看一看


s=input("输入一串字符:")
str=""
for c in s:
    str= c + str
print(str)

'''
s = abcde
进入for循环后:
第一次,c = 'a', str = 'a' + '' 为 'a'
第二次,c = 'b', str = 'b' + 'a''ba'
第三次,c = 'c', str = 'c' + 'ba' 为 'cba'
第四次,c = 'd', str = 'd' + 'cba' 为 'dcba'
。。。。。。
以此类推

'''
感谢采纳

倒着输出

看代码找规律
str=a
str=b+a=ba
。。。。。。
最后输出就是 gfedcba