主要内容
1.随机数
2.比较运算符
3.赋值运算符
4.逻辑运算符
5.位运算符
6.成员运算符
7.身份运算符
一、随机数
注:iter:可迭代对象,即列表、元组、range()、str、dict(返回的是值,而不是键)
1.random.choice(iter):从可迭代对象中挑选一个元素
2.random.randrange(start,end,step):
star:从start开始,若start不写,默认从0开始
end:到end结束,end必须给
step:步长,隔多少取一次,默认为1
说明:start跟step可以省略,但end不能省略,end必须写。
注意:要写步长的话,必须写start,否则会报错
取值范围:[start,end)
3.random.random():产生一个从[0,1)的浮点数
4random.shuffle(list1):对序列进行随机排序
注意:该方法并没有生成新的序列,只是在原序列上进行操作,即把原序列打乱而已
5.random.uniform(m, n):产生一个[m,n]的随机浮点数
6.random.randint(m, n):产生一个[m,n]的随机整数
print(random.choice([1, 2, 3, 4, 5])) # 从1-5中随机选出一个元素
print(random.choice(range(5))) # 从0-4中随机选出一个(整数)元素
# 从-10~9中随机选出一个整数
print("random.randrange()", random.randrange(-10, 10))
print("random.random()", random.random()) # 生成[0,1)的随机浮点数
l1 = [1, 2, 3, 4, 5]
l2 = l1
print(id(l1), id(l2))
l3 = random.shuffle(l1)
print("random.shuffle()", l1, l2, l3) # l1跟l2一样,l3为None
print(id(l1), id(l2)) # l1跟l2的地址一样
print("random.uniform()", random.uniform(0, 100)) # 产生一个[0,100]的随机浮点数
print("random.randint()", random.randint(0, 100)) # 产生一个[m,n]的随机整数
二、运算符
假设变量 a = 10, b = 20
(一)、算术运算符
算术运算符符 | 功能 |
---|---|
+ | 加 两个对象相加 例如 a + b = 30 |
- | 减 标识负数/一个数减去另一个数 a - b = -10 |
* | 乘 两个数相乘/返回一个被重复若干次的字符串 a*b=200 |
/ | 除 b除以a b/a = 2 |
% | 取模 返回除法的余数 b%a = 0 |
// | 取整除返回商的整数部分 9//2=4, 9.0//2.0=4.0 |
** | 幂,返回x的y次幂 a**b=10^20 |
(二)、比较运算符
比较运算符 | 功能 |
---|---|
== | 等于,比较对象是否相等,返回布尔类型的值 print(a == b) # False |
!= | 不等于,比较对象是否不相等 print(a != b) # True |
> | 大于,a > b,返回a是否大于b print(a > b) #False |
< | 小于,a < b,返回a是否小于b print(a < b) #True |
>= | 大于等于,a >= b,返回a是否大于等于b print(a >= b) #False |
<= | 小于等于,a <= b,返回a是否小于等于b print(a <= b) #True |
(三)、赋值运算符
复合运算符 | 功能 |
---|---|
+= | 加法赋值运算符 a += b a = a + b |
-= | 减法赋值运算符 a -= b a = a - b |
*= | 乘法赋值运算符 a *= b a = a * b |
/= | 除法赋值运算符 a /= b a = a / b |
%= | 取模赋值运算符 a %= b a = a % b |
**= | 幂赋值运算符 a **= b a = a ** b |
//= | 取整除赋值运算符 a //= b a = a // b |
(四)、逻辑运算符
逻辑运算符 | 功能 |
---|---|
and | 运算是与运算,只有所有都为True,and运算的结果才是True |
or | 运算是或运算,只要其中一个为True,or运算结果就是True |
not | 运算是非运算,它是一个单目运算符,把True变成False,False变成True |
短路原则
表达式1 and 表达式2 and 表达式3 … 如果表达式1为假,则整个表达式的值为假,后面的表达式则没有计算的必要
表达式1 or 表达式2 or 表达式3 … 如果表达式1为真,则整个表达式的值为真,后面的表达式的值就没有计算的必要
(五)、位运算符
说明:进行位运算的时候,需要把数字转换为二进制数来进行计算
位运算符 | 功能 |
---|---|
& | 按位与,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或,只要对应的两个二进位有一个为1时,结果位就为1 |
^ | 按位异或,当两对应的二进位相异时,结果为1 |
~ | 按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1 |
<< | 左移,运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,低位补0 x<<y —> x*2y |
>> | 右移,把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 x>>y —> x//(2y) |
(六)、成员运算符
成员运算符 | 功能 |
---|---|
in | 如果在指定的序列中找到返回值True,否则返回False |
not in | 如果在指定的序列中没有找到值返回True,否则返回False |
(七)、身份运算符
身份运算符 | 功能 |
---|---|
is | is判断两个标识符是不是引用自一个对象 |
is not | 判断两个标识符是不是引用自不同的对象 |
注意:在[-5, 257)的整数取值范围内,python的内部具有缓存机制,因此在比较这个数值以内的数据可能就会有些问题。