关于变量问题
name=,列表中的F,i,s,h变量没有定义就会报错,为什么for i in range(5)中 i 没有定义变量就不会报错? 在for中每次循环都相对应给i赋值即
i = 0
i = 1
i = 2
i = 3
i = 4 本帖最后由 悠悠2264 于 2020-4-10 23:18 编辑
F,i,s,h都是列表的元素,不是变量。for i in range(5)的i会每次都赋值好 前者,你是要使用该变量,然而没有定义就使用,当然会报错啦
后者,这里就是定义啊,for每次循环分别将0~4赋值给i啊
估计前者你应该是打算写name=['F','i','s','h']这样Fish就是四个字符常量了 编译器会自动检测类型,前提是编译器得知道你的意图,且是唯一的确定的意图,你给的例子中,name如果不初始化,则编译器搞不清你要让name是字符串、数字、列表,后者i编译器能唯一确定它是[0,5)的整数。
补充说明一下,编译器是很智能的,如 for i in range(5),i是整数,如果 for i in name,则i是你定义的列表name中的一个元素。 前者你需要在定义时明确的告诉编辑器你列表里的东西是什么,如果你给的是字符串,需要" "(加双引号),如果是变量,则需要在使用这个变量之前,给这个变量定义,否则编辑器无法识别并将它视为不存在。
后者for i in XXX:这个语法python本身就对他进行了定义, i 是一个变量 你也可以给他改名为其他的,无论是什么名字,编辑器都能识别。 F i s h 都是之前定义好的变量,for i in range(5) 中的 i 是 for 循环赋值的,i 等于 0 ~ 4 中的每一个值
页:
[1]