一、对象的布尔值

Python一切皆对象,所有对象都有一个布尔值,通过bool()获取。

常见为布尔值False的对象有:False,数值0,空字符串,空列表,空集合,空字典,空元组,None。

任何值都可用作布尔值,因此不需要显式地进行转换(Python会自动转换)。

二、分支结构

Python中使用缩进来标识代码块。

1、单分支结构

if 条件表达式:
  执行体
  
a = 1
if a == 1:
 print('success')
输出:
success

2、双分支结构

if 条件表达式:
  执行体
else:
  执行体
  
a = 2
if a == 1:
 print('success')
else:
 print('failed')
输出:
failed

简写方式

b if 条件表达式 else a
条件表达式为True 返回b,否则返回a
c = 'success' if a == 1 else 'failed'
print(c)
输出:
failed

3、多分支结构

if 条件表达式1:
  执行体1
elif 条件表达式2:
  执行体2
elif 条件表达式N:
  执行体N
[else:]
  执行体M
  
a = 2
if a == 1:
    print('success')
elif a == 2:
    print('other')
else:
    print('failed')
输出:
other

4、嵌套分支

if 条件表达式1:
  if 条件表达式2:
    执行体1
  else:
    执行体2
else:
  执行体3
  
a = 2
if a > 1:
    if a == 2:
        print('success')
    else:
        print('other')
else:
    print('failed')
输出:
success

三、循环结构

1、while循环

while 条件表达式
  循环的执行体
  
a = 3
while a > 0:
 print('大于0')
 a -= 1
输出:
大于0
大于0
大于0

2、for in 循环,从序列中依次取值,及遍历。for in 遍历的对象必须是可迭代对象。如果自定义变量不需要的话,可以用下划线代替。

for 自定义变量 in 可迭代对象:
  循环体
  
for i in range(3):
 print(i)
 输出:
 0
 1
 2

3、break语句,用于结束循环,通常与if一起使用

for 自定义变量 in 可迭代对象:
  循环体
  if 条件:
     执行内容
     break
     
 for i in range(3):
 if i > 1:
  break
 print(i)
 输出:
 0
 1

4、continue语句,用于结束当前循环,进入下一次循环,通常与if一起使用。

for 自定义变量 in 可迭代对象:
  循环体
  if 条件:
     执行内容
     continue
     
 for i in range(3):
 if i < 1:
  continue
 print(i)
 输出:
 1
 2

四、else语句

1、if else 的使用,见上面if的使用方式。

2、while else的使用,当while里面没有遇到break的时候执行else,即while正常执行完。

while 条件表达式
  循环的执行体
else
  print('end')

3、for else的使用,当for 里面没有遇到break的时候执行else,即for 正常执行完。

for  条件表达式
  循环的执行体
else
  print('end')
  
for i in range(3):
 print(i)
else:
 print('else 输出了')
 输出:
 0
 1
 2
 else 输出了
 
 for i in range(3):
 if i > 1:
  break
 print(i)
else:
 print('else 输出了')
 输出:
 0
 1

4、只要能够使用for循环,就不要使用while循环。

五、变量赋值扩展使用

1、序列解包,将序列赋值给多个变量的形式

a,b,c = 1,2,3
print(a,b,c) #1 2 3

还可以交换变量

a,b = 1,2
print(a,b) #1 2
a,b = b,a 
print(a,b) #2 1

序列解包对于函数返回元组(或其他序列或可迭代对象)可以赋值到对应的变量

d = {12:'数字键', 'zifu':'字符键', 'tr':'tt的值'}
k,v = d.popitem()
print(k, v)  #tr tt的值

可以使用 * 号来获取多余的值,保存在一个列表里面

a,b,*c = [1,2,3,4,5]
print(a,b,c) #1 2 [3, 4, 5]
a,*b,c = [1,2,3,4,5]
print(a,b,c) #1 [2, 3, 4] 5

2、增强赋值,适用于所有的运算符

a= 0
a = a + 1
a += 1  #增强赋值

六、print扩展使用

print可用于打印一个表达式,但实际上,可同时打印多个表达式,条件是用逗号分隔它们,并且还可以自定义分隔符及结束字符串。

print("I", "want", "to", "go", "home", sep="_")
输出:
I_want_to_go_home
print("I", "want", "to", "go", "home")
输出:
I want to go home
print("I", "want", "to", "go", "home",end="...")
输出:
I want to go home...

七、range()函数

用于生成一个序列,有三种创建方式

1、range(stop) #创建一个[0,stop)步长为1的序列
2、range(start,stop) #创建一个[start,stop)步长为1的序列
3、range(start,stop,step) #创建一个[start,stop)步长为step的序列

range不管序列多长,所有range对象占用的内存空间是相同的,只有用到的时候才会去计算序列中相关的元素。可以使用list()查看该对象的内容。

不要将is用于数和字符串等不可变的基本值。鉴于Python在内部处理这些对象的方式, 这样做的结果是不可预测的。

八、pass语句使用

pass语句什么都不做,但适合用作占位符。

if a > 10:
 pass
else:
 print('小于10')