Sss123057057 发表于 2021-2-4 23:08:12

for

本帖最后由 Sss123057057 于 2021-2-4 23:13 编辑

def func(spam):
    spam[-1] = 'and' + ' ' + spam[-1]


spam = ['apple', 'bananas', 'tofu', 'cats', 'dog']
for i in range(len(spam)):
    print(spam, end=',')

func(spam)

why没有运行,也没有在最后一项前加and,最后一项后还有一个多余的,

Twilight6 发表于 2021-2-4 23:12:27

本帖最后由 Twilight6 于 2021-2-4 23:13 编辑



for 循环放 spam 赋值列表之后才行,参考代码:

def func(spam):
    spam[-1] = 'and' + ' ' + spam[-1]

spam = ['apple', 'bananas', 'tofu', 'cats', 'dog']
func(spam)

for i in range(len(spam)-1):
    print(spam, end=',')
print(spam)

这里还是推荐用 * 解包吧~, *spam 相当于将序列所有元素取出

def func(spam):
    spam[-1] = 'and' + ' ' + spam[-1]

spam = ['apple', 'bananas', 'tofu', 'cats', 'dog']
func(spam)

print(*spam, sep=',')

逃兵 发表于 2021-2-4 23:12:35

python代码从上往下运行的
得先给spam赋值,再操作
改一下顺序就行了
spam = ['apple', 'bananas', 'tofu', 'cats', 'dog']
def func(spam):
    spam[-1] = 'and' + ' ' + spam[-1]
for i in range(len(spam)):
    print(spam, end=',')

func(spam)

Sss123057057 发表于 2021-2-4 23:14:04

逃兵 发表于 2021-2-4 23:12
python代码从上往下运行的
得先给spam赋值,再操作
改一下顺序就行了

我打错了,麻烦再看一下

Sss123057057 发表于 2021-2-4 23:16:43

Twilight6 发表于 2021-2-4 23:12
for 循环放 spam 赋值列表之后才行,参考代码:




谢谢大佬

Twilight6 发表于 2021-2-4 23:18:48

Sss123057057 发表于 2021-2-4 23:16
谢谢大佬



客气了,加油{:5_91:}
页: [1]
查看完整版本: for