找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2159|回复: 4

[求助] 请大佬请教!

回帖奖励 8 点威望 回复本帖可获得 2 点威望奖励! 每人限 2 次(中奖概率 70%)

15

主题

31

帖子

31

积分

贫民

积分
31
benson 发表于 2020-10-12 21:57:59 | 显示全部楼层 |阅读模式
源代码:
a=[]
print("输入五个名字(按下回车键后再输入下一个名字):")
for i in range(5):
    n=input()
    a.append(n)
print(a)
r=int(input("输入你要删掉哪一个名字(要删第几个,就把输入的数加一):"))
f=input("输入新名字:")
a=a[r-1]
print(a)

输入:输入五个名字(按下回车键后再输入下一个名字):
1
2
3
4
5
['1', '2', '3', '4', '5']
输入你要删掉哪一个名字(要删第几个,就把输入的数加一):2
输入新名字:3
正确输出:['3','2','3','4','5']
实际输出:2

回复

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
白嫖小废物 发表于 2020-10-16 21:21:01 | 显示全部楼层

回帖奖励 +2 点威望

要删第几个,就把输入的数加一  ?是因为可迭代对象都是从0开始计算的.第一个位索引是0

a=[]
print("输入五个名字(按下回车键后再输入下一个名字):")
for i in range(5):
    n=input()
    a.append(n)
print(a)
r=int(input("输入你要删掉哪一个名字(要删第几个,就把输入的数加一):"))
print(a)
a[r-2]=input("输入新名字:")#r-1符合操作,不是很懂你为什么输入2,输入错了改 为r-1,题是这样 这个就行
print(a)
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
白嫖小废物 发表于 2020-10-16 21:25:08 | 显示全部楼层
你的源码没有对删除与添加进行操作,并且最后的a=a[r-1]    是将a[a-1]的值从新赋了a新值
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
白嫖小废物 发表于 2020-10-16 21:28:50 | 显示全部楼层
源码后面没有添加与删除操作,最后a=a[r-1]的操作,
是将a[r-1]的值赋予a,
从新定义了a的值.
所以输出有问题
回复 支持 反对

使用道具 举报

15

主题

31

帖子

31

积分

贫民

积分
31
benson  楼主| 发表于 2020-10-18 11:52:27 | 显示全部楼层
问题已解决,谢谢指教!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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