python关于对象&&数字和运算
【摘要】 大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN C/C++领域新星创作者https://blog.csdn.net/chuxinchangcun?type=blog掘金LV3用户 https://juejin.cn/us...
大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN C/C++领域新星创作者https://blog.csdn.net/chuxinchangcun?type=blog
- 掘金LV3用户 https://juejin.cn/user/1381426159953960
- 阿里云社区专家博主,星级博主,技术博主 https://developer.aliyun.com/profile/expert/5lkdbuggiiuhc
- 华为云云享专家 https://bbs.huaweicloud.com/community/myhomepage
关于对象的比较
对象:包含 值 身份 类型
对象值的比较
- 所有内建类型对象都可以进行比较操作来进行值比较. (比较的双方必须是相同类型).
- 比较运算的结果是True或者False.
- 比较运算符包括 ==, !=, <, >, <=, >=
对象身份的比较
回忆我们之前讲过的, 变量名只是对象的一个引用. 那么两个变量名是否指向同一个对象呢?
可以使用 id 这个内建函数来比较. 如果id的值相同, 说明是指向同一个对象.
a = 100
b = a
print(id(a) == id(b)) #True
- Python还提供了 is 关键字, 直接进行判定是否指向相同的对象 本质也是比较id
a = 100
b = a
print(a is b) #True
- 还提供了 is not 可以直接判定两个变量名是否指向不同的对象.
a = 100
b = a
print(a is not b) #False
对象类型的比较
定义的时候可以写明类型,但是没用
a :int = 10
a :int = "he" #不报错,因为int不起效果
- 两个对象比较类型是否相同, 可以使用内建函数type
a = 10
print(type(a) == type(100)) #True
- Python还提供了一个内建函数 isinstance
a = 100
print(isinstance(a,type(10))) #True
a = []
print(isinstance(a,list)) #True
类型工厂函数
我们前面介绍了 int() 这个内建函数, 可以将一个字符串转换成一个整数. 其实是调用 int() 之后生成了一个 整数类型的对象. 我们称这种函数为 “工厂函数” , 就像工厂生产货物一样.
类似的工厂函数还有很多:
- int(), float(), complex() str(), unicode() list(), tuple() dict() bool()
python不支持的类型
- char, byte: 可以使用长度为1的字符串, 或者整数代替;
- 指针: Python替你管理内存, 虽然id()返回的值接近于指针的地址, 但是并不能主动去修改;
- int/short/long: 以前版本的Python中也是区分int和long的, 但是后来统一在一起了; 记住Python中的整数表示的范围, 只取决于你机器内存的大小.
- float/double: Python的float其实就是C语言的double. Python设计者认为没必要支持两种浮点数.
数字和运算
整数的位运算
常用内置函数/模块
- abs: 求一个数的绝对值.
a = -10
print(abs(a)) #10
- divmod: 返回一个元组, 同时计算商和余数
a,b = divmod(10,3) #返回的第一个数:10/3 返回的第二个数:10%3
print(a,b) # 3 1
- str: 将数字转换成字符串.
a = 100
print(str(a)) #100
print(type(a)) #并不会实际改变a的类型 <class 'int'>
print(type(str(a))) #<class 'str'>
-
round: 对浮点数进行四舍五入. round有两个参数, 第一个是要进行运算的值, 第二个是保留小数点后多少位.
- 需要导入math模块
import math
for i in range(0,5):
print(round(math.pi,i)) #pi相当于Π 3.1415926
#执行结果
3.0
3.1
3.14
3.142
3.1416
- 整数进制转换: oct(), hex(), 参数是一个整数, 返回值是对应字面值的字符串.
print(oct(10)) #8进制 0o12
print(hex(10)) #16进制 0xa
-
math/cmath模块: 提供一些方便的数学运算的函数. math是常规数学运算; cmath是复数运算;
-
随机数random模块: 使用方法比较简单
- 需要导入random模块
默认返回的是0-1范围的数
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)