python01
笔记:
pip管理包
这张图里列出了常用的pip指令(我居然全部都用过),稍微解释一下[==version]是什么意思,首先[]里的东西可加可不加,加了的话可以在原本的基础上做些限制或是操作什么的,比如加了==1.2.0就会指定1.2.0版本的包,> a.txt是把原本输出到控制台的东西输出到a.txt中(就是保存在里面)
python类型概述
上图给出了python的类型,这里简单提一下,具体的后面会有,要注意的两点是:
- python没有double
- 字节串具体见字符串与字节串区别这篇文章
运算符:
常见
//
整除(地板除)3 // 4
**
幂2 ** 3
二进制与其他进制:
a = 16
print(oct(a)) # 测试进制转化
print(bin(a))
print(hex(a))
print(format(a, '2'))
print(format(a, '16')) # format第二个参数是凑位数的,额
结果:
0o20
0b10000
0x10
16
16
a='16'
b=int(a, 13) # 验证int函数只能用于字符串转化为int,16是13进制下的16,打印b时是10进制的
c=int(a)
print(b)
print(c)
a=0x10#验证16进制的写法
print(a)
print(bool(a))#验证非空,非零的东西转到bool都是true
结果:
19
16
16
True
三目:
x, y = 4, 5
small = x if x < y else y
print(small) # 4
python有这种奇怪的风格:就是把结果写在前面,就像下面这个列表推导式,保存了0-10的偶数的平方
a=[i*i for i in range(0,11) if i%2==0]
其他运算符:
is
``is not`
a = "hello"
b = "hello"
print(a is b, a == b) # True True
print(a is not b, a != b) # False False
a = ["hello"]
b = ["hello"]
print(a is b, a == b) # False True
print(a is not b, a != b) # True False
- is, is not 对比的是两个变量的内存地址
==
,!=
对比的是两个变量的值- 比较的两个变量,指向的都是地址不可变的类型(str,元组,数字),那么is,is not 和
==
,!=
是完全等价的。 - 对比的两个变量,指向的是地址可变的类型(list,dict,集合),则两者是有区别的。
也就是说==
!=
比的是内容而不是地址,与C++不一样
补充:
- 利用dir看类的函数
b = dir(int)
print(b) - 保留特定小数位:
import decimal
from decimal import Decimal
decimal.getcontext().prec = 4
print(Decimal(1.000121200)/Decimal(1))
print(Decimal(1.000121200))
c = Decimal(2) / Decimal(3)
print(c)
1.0000
1.0001211999999999324728605643031187355518341064453125
0.3333
isinstance(object, classinfo)
判断一个对象是否是一个已知的类型。
【例子】
print(isinstance(1, int)) # True
print(isinstance(5.2, float)) # True
print(isinstance(True, bool)) # True
print(isinstance('5.2', str)) # True
注:
type()
不会认为子类是一种父类类型,不考虑继承关系。isinstance()
会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()
。
类型转换
- 转换为整型
int(x, base=10)
- 转换为字符串
str(object='')
- 转换为浮点型
float(x)
【例子】
print(int('520')) # 520
print(int(520.52)) # 520
print(float('520.52')) # 520.52
print(float(520)) # 520.0
print(str(10 + 10)) # 20
print(str(10.1 + 5.2)) # 15.3
print 函数:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按
str()
方式进行转换为字符串输出; - 关键字参数
sep
是实现分隔符,比如多个参数输出时想要输出中间的分隔字符; - 关键字参数
end
是输出结束时的字符,默认是换行符\n
; - 关键字参数
file
是定义流输出的文件,可以是标准的系统输出sys.stdout
,也可以重定义为别的文件; - 关键字参数
flush
是立即把内容输出到流文件,不作缓存。
思考题:
- Python是怎么诞生的?Python之父是谁?好像是某个大佬玩出来的,Guido van Rossum
- Python和C++(或者C)的区别在哪?即为什么要学习Python,C++不香吗?python语法简单。因为东西多,开发快,但是速度太慢
- 相较于Python2,Python3做了哪些大的改进?
刚学,不太了解
https://blog.csdn.net/pangzhaowen/article/details/80650478?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161138955216780274169124%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161138955216780274169124&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-80650478.pc_search_result_no_baidu_js&utm_term=python3%E4%B8%8Epython2%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187
这个讲的很详细
练习题
- 怎样对python中的代码进行注释?#行,’’’ ‘’’ 块注释
- python有哪些运算符,这些运算符的优先级是怎样的?这不好讲吧,学C++时也都是靠感觉,不确定就加括号
- python 中
is
,is not
与==
,!=
的区别是什么?
is那对比的是地址,而==
比的是内容(这与C++不一样,C++中==
比的是地址) - python 中包含哪些数据类型?这些数据类型之间如何转换?
就写一下学C++时没遇到的,集合,字典,列表,元组,没有指针,没有数组