这是本人在学习中的一些记录,只是针对自己的情况做记录,起到回顾,提醒的作用,所以这个对某些内容不是全面的。
1.运算符
1.1 整除,幂
整除
print (8//3) #结果为2
幂
print(3**4)#3的4次幂 结果为81
1.2 三元运算符
A=5
B=8
BIGGER = A if A > B else B
这就是三元运算符,对它的理解便是如果A>B,便取A的值,否则便取B的值。
A if A > B else B
1.3 is(is not) 和 ==(!=)的区别
a = "is"
b = "is"
print(a is b) #True
print(a == b) #True
表面上两种运算符号是对内容是否一致的判断,其实is和is not 是对内容地址是否一致的判断,而 == 和 ! =是内容本身的判断。
当对比的变量是地址不可变的类型(如 str)时,结果是相同的。如下:
a = "is"
b = "is"
print(a is b, a == b) #True True
当对比的变量是地址可变的类型(如 list,dict)时,结果则是不相同的。如下:
a = [1235]
b = [1235]
print(a is b, a == b) #False True
1.4 类型转换和类型判断
类型的转换:待转换的类型(变量),如int(5.2),str(10)。
print(int(5.2),str(10)) # 5 '10'
类型的判断,需要使用函数isinstance(object, classinfo) 判断一个对象是否是一个已知的类型。
isinstance(10,int) #判断10是否是整型变量
1.5 print() 函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str()方式进行转换为字符串输出;
- 关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
- 关键字参数end是输出结束时的字符,默认是换行符\n;
- 关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件;
- 关键字参数flush是立即把内容输出到流文件,不作缓存。
2.位运算——异或运算——^
异或运算的性质:
A ^ B ^ A =A ^ A ^ B = B ^ A ^ A = B
A ^ B ^ A =A ^ ( B ^ A ) = B
因为自身与自身异或运算得到0,而某值与0异或运算不改变它的值,所以最终得到B的值。
利用这个性质,可以完成这样的一个练习——给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
import numpy as np
a= np.array([2,1,2,5,5,7,7,13,13])
b=0
for i in range(len(a)):
b ^= a[i]
print(b)