新手求助
def change(a,b):i = 0
for i in b:
i = i + b
a = a - i
return a
x = 100
price =
print(change(x,price))
为什么执行这段代码后报错了? def change(a,b):
i = 0
for j in b:
i = i + j
a = a - i
return a
x = 100
price =
print(change(x,price))
i = i + b
你一个整型和一个相加不了,可以和列表里的元素相加 大马强 发表于 2021-8-5 21:25
你一个整型和一个相加不了,可以和列表里的元素相加
我的意思是想让i分别跟列表中的每个数相加 为啥变成整型跟列表相加了 逃兵 发表于 2021-8-5 21:24
我感觉我的代码跟你的也一样 为啥我的就不行呢 于熙顿 发表于 2021-8-5 21:28
我感觉我的代码跟你的也一样 为啥我的就不行呢
滥用变量i了
加的话不能加b
我把你的i变成了j,就不一样了 不一样呀,j是列表里的元素,你直接加上一个列表,那当然不行 逃兵 发表于 2021-8-5 21:29
滥用变量i了
加的话不能加b
我把你的i变成了j,就不一样了
i和j不都是变量么既然变量i用了有问题那为啥j也作为一个变量就没问题 于熙顿 发表于 2021-8-5 21:35
i和j不都是变量么既然变量i用了有问题那为啥j也作为一个变量就没问题
i = 0
for i in b:
i = i + b
上面i = 0下面for i in b会覆盖掉上面的i = 0
i = i +b ,i是数字,b是列表 逃兵 发表于 2021-8-5 21:38
上面i = 0下面for i in b会覆盖掉上面的i = 0
i = i +b ,i是数字,b是列表
是不是因为变量j事先没被赋值所以可以用变量j与列表b相加 于熙顿 发表于 2021-8-5 21:41
是不是因为变量j事先没被赋值所以可以用变量j与列表b相加
我并没有拿j跟b相加
i= 0 #赋值i
for j in b: #从b中取j
i = i + j #i+j,没有出现j+b l =
for i in l:
print("我是元素",i)
print("我是列表",l)
你执行这个段代码,你就知道,i和l的区别 py的变量是不用提前声明
i = 1
print("我类型现在是", type(i))
i = 'abc'
print("我类型现在是", type(i))
而且你赋不同类型值也会相改变 逃兵 发表于 2021-8-5 21:38
上面i = 0下面for i in b会覆盖掉上面的i = 0
i = i +b ,i是数字,b是列表
为啥for语句会把i=0覆盖
不是按顺序执行的吗 大马强 发表于 2021-8-5 21:48
py的变量是不用提前声明
而且你赋不同类型值也会相改变
区别明白了 但是我的问题还没明白{:10_266:} 于熙顿 发表于 2021-8-5 22:02
为啥for语句会把i=0覆盖
不是按顺序执行的吗
for循环相当于给i重新赋值,每一次都重置掉了 于熙顿 发表于 2021-8-5 22:02
为啥for语句会把i=0覆盖
不是按顺序执行的吗
是呀,但是后来者为王呀,后面的一定会将前面的值覆盖掉 于熙顿 发表于 2021-8-5 22:03
区别明白了 但是我的问题还没明白
你的问题不是为啥会报错吗
你的本意是用i加上列表的每一个值
但你是写成i加上列表,就好像你要娶个妹子,你不会去娶她老妈吧{:10_277:}
for j in b:
i + = j# j是b的元素
逃兵 发表于 2021-8-5 21:43
我并没有拿j跟b相加
我终于想明白了 谢谢 大马强 发表于 2021-8-5 22:07
你的问题不是为啥会报错吗
你的本意是用i加上列表的每一个值
但你是写成i加上列表,就好像你要娶个妹 ...
抱歉我才看到看明白了谢谢只可惜最佳答案不能设置多个楼层{:10_243:}
页:
[1]
2