一、进制
现代的计算机和依赖计算机的设备?都?到?进制(即0和1)来保存和表示数据,?个?进制表示?个?特(Bit); Python语??持?进制、?进制、?六进制以及?进制的数字表示;
a = 12
print ( a + 1 )
b = 0b11101
print ( b + 1 )
c = 0o12
print ( c + 1 )
d = 0x1A
print ( d + 1 )
二、类型
函数 说明 int(x) 将x转换为一个整数 float(x) 将x转换为一个浮点数 str(x) 将x转换为字符串 bool(x) 将x转换为布尔值
print ( int ( "123" ) )
print ( int ( 123.78 ) )
print ( int ( True ) )
print ( int ( False ) )
print ( int ( "21" , 8 ) )
print ( int ( "F0" , 16 ) )
f1 = float ( "12.34" )
print ( f1)
print ( type ( f1) )
f2 = float ( 23 )
print ( f2)
print ( type ( f2) )
str1 = str ( 45 )
print ( str1)
str2 = str ( 34.56 )
print ( str2)
str3 = str ( True )
print ( str3)
print ( type ( str1) , type ( str2) , type ( str3) )
转换成为布尔值 在python中,只有空字符串 ’ '," " ,数字0,空字典{},空列表[],空元组(),和空数据None会被转换成为False,其他的都会被转换成为True
print ( bool ( '' ) )
print ( bool ( "" ) )
print ( bool ( 0 ) )
print ( bool ( { } ) )
print ( bool ( [ ] ) )
print ( bool ( ( ) ) )
print ( bool ( None ) )
三、算数运算符
运算符 描述 + 加 - 减 * 乘 / 除 // 取整除 % 取余 ** 指数 () 小括号
混合运算时,优先级顺序为: ** ?于 * / % // ?于 + - ,为了避免歧义,建议使?() 来处理运算符优先级; 不同类型的数字在进?混合运算时,整数将会转换成浮点数进?运算; 如果是两个字符串做加法运算,会直接把这两个字符串拼接成?个字符串;
str1 = 'hello'
str2 = 'world'
print ( str1+ str2)
如果是数字和字符串做加法运算,会直接报错; 如果是数字和字符串做乘法运算,会将这个字符串重复多次;
str1 = 'hello'
print ( 3 * str1)
四、赋值运算符
num = 10
print ( num)
a = b = 4
print ( a, b)
num1, f1, str1 = 100 , 3.14 , "hello"
print ( num1, f1, str1)
复合赋值运算符 赋值运算符是从右往左运算,将等号右边的值赋值给等号左边,所以,等号的左边?定不能是常量或者表达式。
运算符 描述 实例 += 加法赋值运算符 c += a 等价于 c = c + a -= 减法赋值运算符 c -= a 等价于 c = c - a *= 乘法赋值运算符 c *= a 等价于 c = c * a /= 乘法赋值运算符 c /= a 等价于 c = c / a //= 乘法赋值运算符 c //= a 等价于 c = c // a %= 取模赋值运算符 c %= a 等价于 c = c % a **= 幂赋值运算符 c **= a 等价于 c = c ** a
a = 100
a += 1
print ( a)
a = 100
a *= 2
print ( a)
a = 100
a *= 1 + 2
print ( a)
五、比较运算符
运算符 描述 == 等于 != 不等于 <> 不等于 > ?于 < ?于 >= ?于等于 <= ?于等于
数字和字符串不能做比较运算符; 如果是两个字符串进??较,会将每个字符都转换成对应的编码,然后逐?进?对?;
str1= 'a'
str2= 'ABC'
print ( str1> str2)
六、逻辑运算符
运算符 描述 and 只要有一个运算数是False,结果就是False;只有所有的运算数都为True时,结果才是True ;做取值运算时,取第?个为False的值,如果所有的值都为True,取最后?个值。 or 只要有?个运算数是True,结果就是True;只有所有的运算数都为False时,结果才是False;做取值运算时,取第?个为True的值,如果所有的值都为False,取最后?个值。 not ?" - 如果为 True,返回 False ;如果为 False,它返回 True
a = 34
b = 12
print ( ( a > b) and ( b > 10 ) and ( a > 30 ) and ( a > 50 ) )
print ( ( a > b) and ( b > 10 ) and ( a > 30 ) and ( a < 50 ) )
print ( a and b and 'hello' and 0 and 123 )
print ( a and b and 'hello' and 123 and 'hi' )
七、位运算符
运算符 描述 & 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | 按位或运算符:只要对应的?个?进位有?个为1时,结果位就为1 ^ 按位异或运算符:当两对应的?进位相异时,结果为1 ~ 按位取反运算符:对数据的每个?进制位取反,即把1变为0,把0变为1 << 左移动运算符:运算数的各?进位全部左移若?位,由 << 右边的数字指定了移动的位数,?位丢弃,低位补0。 >> 右移动运算符:把">>"左边的运算数的各?进位全部右移若?位,>> 右边的数字指定了移动的位数
a = 0b00111100
b = 0b00001101
print ( a& b)
print ( a| b)
print ( a^ b)
八、运算符优先级
当多种运算符做混合运算时,就会涉及到先运算哪个,后运算哪个问题。以下表格列出了从最?到最低优先级的所有运算符:
运算符 描述 ** 指数(最高优先级) ~+
?
-
? 按位翻转, ?元加号和减号 +
?
-
? 乘,除,取模和取整除 ~+
?
-
? 加法减法 >> << 右移,左移运算符 & 位 ‘AND’ ^ | 位运算符 <= < > >= ?较运算符 <> == != 等于运算符 = %= /= //= -= += *= **= 赋值运算符 is is not 身份运算符’ in not in 成员运算符 not>and>or 逻辑运算符
【注意】如果有多种运算符进?混合运算时,强烈建议使??括号来?动的控制运算符的优先级!