已有397人关注
如何判断变量类型和做到正确类型注解?
发表在Python答疑区 2021-01-30
是否精华
版块置顶:

最近在学Python, 使用PyCharmCE, 为了入门有个好的习惯养成, 我参照了PyCharm的提示, 对于变量类型增加类型注解, 如'num: int = 10'; 但是前期知识不足, 会存在误判的情况; 比如以下代码

python: int = 95
english: int = 92
clang: int = 89
sub: int = python - clang # 计算Python课程与C语言的分差
avg: int = (python + english + clang) / 3 # 计算平均分
print('Python课程与C语言分差为:', sub,'分')
print('3门课程的平均分:', avg, '分')
print('sub变量类型为:', type(sub))
print('avg变量类型为:', type(avg))

# 输出
Python课程与C语言分差为: 6 分
3门课程的平均分: 92.0 分
sub变量类型为: <class 'int'>
avg变量类型为: <class 'float'>

avg成了浮点型, 那前面定义的int就是误判;

问题:

  1. 这类问题该如何规避?

  2. 或者对于以后来说有没有必要使用这个类型注解?

  3. 变量我定义了int,那么后面float怎么来的?


分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2021-02-04
沙发

由于Python在定义变量时不需要指定数据类型,也就是说一个变量的类型会根据它的值随时改变。如果您要想预判正确,那就得提前把可能出现改变的情况想到。

对于这个类型注解是在Python3.6开始提出来,但不是强制要求的。至少到目前的最新版本3.9都没有强制要求。

第3个问题,因为进行了除法运算,所以就变成了float。


首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照