python中需要生成一列数组,每一行按照0.5递增,代码报错invalid character in identifier,请问如何解决
原始代码
def time(n):
num = 0
time=0
while num <=n:
time(n)=num
num += 0.5
print(time(53023))
在修改代码之前,需要注意到该代码存在语法错误。
修正后的代码如下:
def time(n):
num = 0
time_lst = []
while num <= n:
time_lst.append(num)
num += 0.5
return time_lst
print(time(53.023))
运行结果为:
```
[0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 10.5, 11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0, 16.5, 17.0, 17.5, 18.0, 18.5, 19.0, 19.5, 20.0, 20.5, 21.0, 21.5, 22.0, 22.5, 23.0, 23.5, 24.0, 24.5, 25.0, 25.5, 26.0, 26.5, 27.0, 27.5, 28.0, 28.5, 29.0, 29.5, 30.0, 30.5, 31.0, 31.5, 32.0, 32.5, 33.0, 33.5, 34.0, 34.5, 35.0, 35.5, 36.0, 36.5, 37.0, 37.5, 38.0, 38.5, 39.0, 39.5, 40.0, 40.5, 41.0, 41.5, 42.0, 42.5, 43.0, 43.5, 44.0, 44.5, 45.0, 45.5, 46.0, 46.5, 47.
顾名思义:标识符中的无效字符。原因有以下几个:
1.代码中有中文字符,包括标点符号。
由于现在大部分集成开发环境都支持中文,因此很容易输入中文的标点符号,而编译器/解释器不能识别,因此就会报错,这也是大部分报这个错误的原因。解决方法就是把中文的字符换成英文的,请确保代码行内没有夹杂中文的空格,tab等,非文字字符
2.不可见字符搞的鬼。
造成这种报错是因为编码格式的不同。有时候为了方便会去网上copy一些代码下来直接使用,然后你会发现格式,缩进什么的都没问题还是报错,这是因为在utf-8编码下和在ASCII编码下的空格有点不一样。
具体操作是:把问题代码复制粘贴到Notepad++
下用ASCII编码问题就会出来了,删除显现出来的乱码删除就可以了。下面是效果对比图。
原图(utf-8)
转换后(ANSCII编码)
看红色框框里面,在utf-8里面是没有东西的,在ASCII里面就显示出来了,把显示出来的东西删除,然后在用utf-8编码,问题就解决了。