鱼C论坛

 找回密码
 立即注册
查看: 3012|回复: 13

[已解决]遇到了报错,求解答

[复制链接]
发表于 2016-11-2 10:12:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
  2. x=int(input("write a number:\n"))
  3. s=str(x)
  4. y=len(s)
  5. if(x>0)and(0<y<=5):
  6.     for i in range(0,y):
  7.         s[y-i]=s[i]
  8.     x=int(s)   
  9.     print("%d,%d"%(y,x))
复制代码



显示错误 ZS8BF]430QBK8TQ3(MWP0JQ.png
最佳答案
2016-11-2 10:18:39
字符串是不可变变量,不能直接修改其中某个字符。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-2 10:18:39 | 显示全部楼层    本楼为最佳答案   
字符串是不可变变量,不能直接修改其中某个字符。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-2 11:55:15 | 显示全部楼层
冬雪雪冬 发表于 2016-11-2 10:18
字符串是不可变变量,不能直接修改其中某个字符。

没有修改啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-2 12:23:06 | 显示全部楼层

这就是要修改
  1. >>> s = 'abcd'
  2. >>> s[0] ='e'
  3. Traceback (most recent call last):
  4.   File "<pyshell#104>", line 1, in <module>
  5.     s[0] ='e'
  6. TypeError: 'str' object does not support item assignment
复制代码

你看看错误信息跟你的是一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-2 13:31:32 | 显示全部楼层
冬雪雪冬 发表于 2016-11-2 12:23
这就是要修改

你看看错误信息跟你的是一样的

你这个我看不懂,交流一下啊q2550865073
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-2 14:25:45 | 显示全部楼层
郭大大 发表于 2016-11-2 13:31
你这个我看不懂,交流一下啊q2550865073

列表等是可变变量,可以局部修改,如:
  1. >>> a = [1,2,5,3]
  2. >>> a.sort()
  3. >>> a
  4. [1, 2, 3, 5]
  5. >>> a[1] = -12
  6. >>> a
  7. [1, -12, 3, 5]
  8. >>>
复制代码

而字符串就不能这样操作。
加qq群 528770819 交流。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-2 16:22:10 | 显示全部楼层
你直接修改了字符串内的字符,s已经定义为字符串了
第七行:s[y-i]=s[i]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-2 20:22:13 | 显示全部楼层
建议把输入的数字转变成列表再使用reverse()函数,逆序输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-3 13:57:07 | 显示全部楼层
weiyang__ 发表于 2016-11-2 20:22
建议把输入的数字转变成列表再使用reverse()函数,逆序输出

可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-3 14:23:41 | 显示全部楼层
程序也可以这样写:
  1. #给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
  2. x=input("write a number:\n")
  3. if x.isdigit() and len(x)<=5:
  4.     print('%s是%d位数,逆序打印为%s'%(x, len(x), x[::-1]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-3 16:14:44 | 显示全部楼层
学习了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-4 10:07:57 | 显示全部楼层
可以直接使用列表啊,直接倒序,都不用你一个一个拿出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-5 16:38:18 | 显示全部楼层
蛋炒饭妖妖 发表于 2016-11-4 10:07
可以直接使用列表啊,直接倒序,都不用你一个一个拿出来

想知道哪出错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-7 09:42:53 | 显示全部楼层

错误的原因是字符串是不可更改类型。所以你试图一个一个字符修改的时候,就会报错~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-23 16:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表