目前还不知道下面的代码错在什么地方,请指教。
Topic source报错说的是,你在用字符串类型和int类型比较,是错误的。
用 if int(age)>=18 就可以了。
至于动态类型的变量在这里不会自动转换的问题,我猜原理可能是这样的:
a = 123
这里会首先在内存中创建一个 123 的数值,接着创建变量 a 去指向 123。
a = 'abc'
这里会创建一个 '123' 的字符串,再用 a 去指向它。
因为变量和数据分开了,所以可以修改变量的类型。
动态类型说的是变量的类型可以修改,但是尽管如此,变量在同一个时刻下,只会有一个类型,而不是既可以为数字,也可以为字符串。
而这里,输入数据之后,可能就是在内存中创建一个字符串类型,然后用 age 变量去指向它,而不是指向一个数字。
所以这里的比较会出错。
我也是根据教程里的内容猜的,如果有不对的地方请您指教。
- 1
danceaha
age=input(‘age=’) if age>=18: print('adult') else: print('teenager')