python 基础:语句,表达式,if分支与循环语句

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_27295149/article/details/102644143

语句

赋值语句

# 单一变量赋值
x = 5
# 多个变量赋值
(x, y) = (5,10)
x, y = 5, 10
x, y = [5, 10] # 其余可迭代类型类似
# 一次将单个值赋给多个变量
# 变量被赋值的内容是引用, 其中某个变量改变其他变量也会改变
a = b = c = ['u', 'k', 'e'] 
# a: ['u','k','e','d'] 
# b: ['u','k','e','d'] 
# c: ['u','k','e','d']
a = b = c = set(['u', 'k', 'e']) # 同上
# 变量被直接赋值
a = b = c = 'uke'
a += 'd' 
# a: uked 
# b:uke 
# c:uke
# 交换变量值
x,y=y,x


表达式

表达式由值、变量和运算符组成。

常用表达式

a = 10, b = 20
# 加减乘除 + - * / 
a + b # 30 
# // 是整除 向下取整
# 阶乘(次方) **
a**2 # 100
# 取余 %
a % 3 # 1

# 比较运算符
# == 相等
# 比较容易理解,常用的有:
# !+ <> > < >= <=

# 逻辑运算符
# and (x and y) 只有全部为True 时返回True
# or (x or y) 有一个为True 时返回True
# not (not x) Ture 变False

位运算符

位运算符 :python3 中操作对象为int,若结果为float向下取整

  • & -按位与 如果两个相应位都为1,则该位的结果为1,否则为0
  • | 按位或 只要对应的二个二进位有一个为1时,结果位就为1。
  • ^ :按位异或 当两对应的二进位相异时,结果为1
  • .~ :按位取反 对数据的每个二进制位取反,即把1变为0,把0变为
  • << :左移 左移若干位,高位丢弃,低位补0。P.S 左移1位 与 *2 操作等价
  • .>> :右移 左移若干位,高位丢弃,低位补0。P.S 右移1位 与 /2 操作等价
位运算的实例:计算数字转为2进制时1的个数 (原码)

补充知识:低位存于低索引下。python中整型结构中的数组,每个元素最大存储 16 位的二进制数(不同位数操作系统有差异32位系统存16位,64位系统是32位),有符号位。

# 程序大致逻辑,每次剔除最后一位1,直至没有1
def count1Bit(num):
	c = 0
	if num < 0:
		# 0xffffffff  32个1
		num = num & 0xffffffff 
	while num:
		# 8: 1000 7: 0111
		# 1000 & 0111 = 0000
		c += 1
		n = (n-1)&n
	return c

# 负数解释
count1Bit(8) # 1 8: 28个0+1+000
count1Bit(-8) # 29 -8: 29个1+000

# 正数流程
count1Bit(39)
# 过程
39 100111
38 100110
36 100100
32 100000

运算符优先级

高优先级由高到低

  1. **
  2. ~
    • / % //
  3. 左移 << 右移 >>
  4. &
  5. ^ |
  6. <= < > >=
  7. <> == !=
  8. = %= /= //= -= += *= **=
  9. is ,is not
  10. in ,not in
  11. not ,and ,or

流程控制

主要时常用的 while, if, for in,进入流程。
控制流程, continue 结束当前循环, break 跳出当前循环。

while True:
	break

flag = 'a'
if flag == 'a':
	print('a')
elif flag == 'b':
	print('b')
else:
	print('c')

for i in range(100):
	print(i) # 0 到 99

猜你喜欢

转载自blog.csdn.net/qq_27295149/article/details/102644143