一、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