我刚开始使用Python(以及一般的动态类型语言)而且我在运行时错误地输入了我的变量。我编写的程序接受6个变量(都应该是整数)并使用它们执行一系列计算。但是,解释器拒绝执行第一次乘法,因为它认为变量是'str'类型。即使我为所有值输入整数,它也会在运行时断开,并声称我输入了字符串。难道Python不应该像int一样对待那些行走和嘎嘎叫的东西吗?
提前致谢。
PS:我正在运行Python 3.4.0,如果有帮助的话。
答案 0 :(得分:5)
input()
总是返回一个字符串。如果您想要一个整数,转换您的输入。
variable = int(variable)
Python没有强制,你需要明确转换。动态类型并不意味着Python会读懂你的想法。 : - )
答案 1 :(得分:1)
你可以这样想:“Duck Typing”适用于变量的类型,而不是变量的内容。字符串变量可以例如使用[]
建立索引,或者添加到+
的其他字符串,甚至可以使用* {some integer}
重复多次,但不能将字符串添加到整数,即使字符串碰巧是数字。
字符串的数字与类型无关。