Python 如何在用户提供的输入中交换2位数字?

Python 如何在用户提供的输入中交换2位数字?,python,Python,正如你所看到的,我正试图改变这个值,并试图交换它 # Read an integer: a = input() #Now swap it... a[0] = a[1] a[1] = a[0] …然后我把它打印出来。但我得到一个错误如下: print(a) 回溯(最近一次呼叫最后一次): 文件“python”,第4行,在 TypeError:“str”对象不支持项分配 例如,如果我的输入是79,我希望结果是97。你能告诉我我的错误在哪里吗?试试这个: Traceback (most rece

正如你所看到的,我正试图改变这个值,并试图交换它

# Read an integer:
a = input()
#Now swap it...
a[0] = a[1]
a[1] = a[0]
…然后我把它打印出来。但我得到一个错误如下:

print(a)
回溯(最近一次呼叫最后一次):
文件“python”,第4行,在
TypeError:“str”对象不支持项分配
例如,如果我的输入是
79
,我希望结果是
97
。你能告诉我我的错误在哪里吗?

试试这个:

Traceback (most recent call last):
  File "python", line 4, in <module>
TypeError: 'str' object does not support item assignment
产出:(a=34)


根据你的问题,你可以做一些简单的事情。如上所述,当您作为输入时,注释字符串不可编辑。您需要转换到
列表
才能按索引访问。对于交换,您需要使用临时变量,所以我使用
temp
作为交换变量

43

字符串是不可变的,不能按索引分配给字符。搜索你的错误消息,有很多点击可以帮助你。你希望输入是两位数吗?如果可以是两个以上的数字,您希望交换哪些数字?如果代码有效,它仍然会被破坏:您正在丢失
a[0]
。您需要引入一个新变量,您可以为其分配如下内容:
s2=str(int(s))[::-1]
。强制转换以确保输入为整数(尽管它不能确保所有内容,例如,它只有两个数字),您可以使用
a=a[1]+a[0]
注意,不需要指定起始索引<代码>[::-1]就足够了。实际上我现在不知道什么是temp…(我只是一个初学者)对于swap,你需要使用临时变量,所以我使用temp作为变量来交换。好吧,temp的意思是临时的。。。。。非常感谢。
43
a = list(input())
#Now swap it...

print(a)
temp = a[0]
a[0] = a[1]

a[1] = temp

print(a)
print("".join(a))