一、None

数据类型Nonetype的唯一值None

 

二、调用栈

没看懂

 

三、全局变量和局部变量

1.局部变量不能在全局域内使用

2.局部作用域不能使用其他局部作用域内的局部变量

3.全局变量可以在局部作用域中读取

4.名称相同的局部变量和全局变量

def spam():
    global eggs
    eggs = 'spam' # this is the global

def bacon():
    eggs = 'bacon' # this is a local

def ham():
    print(eggs) # this is the global

eggs = 42 # this is the global
spam()
print(eggs)    #spam

5.区分全局变量与局部变量:

如果变量在全局域中使用,他就是全局变量

如果在一个函数中,有针对变量的global语句,他就是全局变量

如果改变量用于函数的复制语句,他是局部变量

如果该变量没有用在赋值语句中,他是局部变量

6.如果想在一个函数中修改全局变量的值,就必须对该变量使用global

 

四、异常处理

 

五、练习

1.collatz序列

def collatz(number):             #定义函数
    if number % 2 == 0:          #判断奇偶
        print(number//2)
        number = number//2
        # return number
    else:
        print(3 * number + 1)
        number = 3 * number + 1
        # return number
    return number                 #函数返回值
try:
    number = input("请输入整数:")   #获取输入值,str
    number = int(number)           #转为整型
    num = collatz(number)          #调用函数
    while num != 1:                #循环条件
        num = collatz(num)
except ValueError:                 #如果输入非整数
    print("您输入的不是一个整数")

 

2.打印菱形:

'''打印菱形'''
num_b = 5   #定义表示空格数量变量
num_x = 1   #定义表示*数量变量
bre = True  #控制打印上三角还是下三角的标志位
while True:  #无限循环
    print(' '*num_b + '*'*num_x)  #打印
    if bre:                 #打印正三角
        num_b -= 1
        num_x += 2
        if num_b == 0:
            bre = False
    else:                    #打印倒三角
        num_b += 1
        num_x -= 2
        if num_b == 6:
            break