1.什么是局部变量?
#1. 局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
2.什么是全局变量?
#2. 如果一个变量,既能在一个函数中使用,也能在其他的函数中使用 这样的变量就是全局变量 即定义在全局空间的变量
3.局部变量和全局变量有什么区别?(提示:两者的定义、引用、修改)
#3. 定义: 全局变量定义在全局空间,函数外部 局部变量定义在函数内部 引用: 全局变量可以被所有的函数使用 局部变量只能在该函数内使用,其它函数不能访问 修改: 局部变量在函数内部修改不受限制 全局变量在函数内部修改受限制
4.如果全局变量和局部变量同名会发生什么效果?
#4. 那么该函数内部,使用的将是局部变量的值 在函数外部,或其他函数内部,使用的全局变量的值
5.Python中可变类型数据有哪些?不可变类型数据有哪些?
#5. 可变类型: 字典、列表、集合 不可变类型: 数字、字符串、元组
6.什么是函数的嵌套,写一个简单的函数嵌套:调用fun1,在fun1调用fun2,所有函数的开始和结束位置都打印一行文本,验证调用执行顺序
#6. def fun2(): print('begin fun2') print('end fun2') def fun1() print('begin fun1') fun2() print('end fun1') fun1()
7.分别定义一个字符串类型的全局变量、列表类型的全局变量。定义函数fun1,在函数中分别使用,总结有什么区别?
#7. a = "hello python" b = [1,2,3,4,5] def fun2(): # 使用全局变量 print(a) global a a = "hello world" # 如果这么使用global后,意即: # 管我什么类型,既然你(函数内的a)都用了global大法,那么我(外部的a)就跟定你了 # 你(函数内的a)变什么样,我(外部的a)也要变成什么样 print(b) global b b = [6,7,8,9,10] # 与a同理 # 但是,但是,但是: # 因为b是可变类型,如果不加global的话,使用如b.append方法等去修改 # 也会影响到全局变量里的b的值
8.使用函数完成用户登录验证的程序,(用户名和密码传入到函数中进行校验)
用户名和密码从键盘输入
i. 默认的用户名是python,密码为123456
ii. 校验成功打印欢迎您:python
iii. 校验失败打印用户名或密码错误
def login(uname, pwd): if uname == "python" and pwd == 123456: print("欢迎您%s" % uname) else: print("用户名或密码错误") uname = input("请输入用户名:") pwd = int(input("请输入密码:")) login(uname, pwd)
9.编写一个函数,通过键盘循环获取5个学生的信息,将学生信息组成字典保存到列表中,最终将学生的信息的列表打印出来(学生信息包含name、age、id)
def getinfo(): info_list = [] for i in range(0,5): info = {} info["name"] = input("请输入name:") info["age"] = input("请输入age:") info["id"] = input("请输入id:") info_list.append(info) print(info_list) getinfo()
10.定义一个函数,要求输入大于0的数字整数N,判断传入数字的奇偶性,如果是奇数返回"N是奇数",否则返回"N是偶数",否则返回"请输入大于0的整数"
def panduan(N): if N > 0: if N % 2 == 0: return "%d是偶数" % N else: return "%d是奇数" % N else: return "请输入大于0的整数" N = int(input("请输入数字:")) res = panduan(N) print(res)
11.定义一个递归函数,做一个1-100之间地偶数和?
#11 def ou_shu(start): if start > 2: start = start + ou_shu(start-2) else: start = 2 return start print(ou_shu(100))
12.定义一个匿名函数,产生1-100偶数和?
#12 # a为匿名函数的引用,x+a(x-2)中的a(x-2)即为匿名函数自身,传入参数为x-2,匿名函数调用自己:递归 a = lambda x: x+a(x-2) if x> 2 else 2 print(a(100))
13.使用列表推导式,产生一个1- 100 包含1- 100 之间的偶数列表?
#13 a = [i for i in range(0, 100, 2)] print(a)
例子:
#简答题: #1. 什么是局部变量?什么是全局变量?各自的作用是什么?局部变量修改全局变量使用的关键字是? #全局变量--是在整个py文件中声明,全局范围内都可以访问 #局部变量--是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序会报错 # global关键字 #2. 函数如何返回多个返回值,如何使用? # return 值1,值2,值3, # 返回后是打包好的数据,我们要进行拆包 如: def a(): return 1,2,3 a,b,c=a() print(a) print(b) print(c) #3. return的作用? # 1. 返回函数运行的结果给调用者 # 2. 结束程序 #4. 什么是缺省参数?什么是不定长参数? # 缺省参数是函数的预设值,在不传入该参数的情况下,使用自己的值,如果用户有指定,就不会用自己的预设值。 # 不定长参数:函数参数个数不能确定的参数,不能确定,我们就是说他为不定长参数 #5. 什么是拆包? # 将打包的数据从包里拿出来,相当于遍历元组取出每一个元素给前面的变量赋值 #6. 谈谈引用是什么(谈谈你对引用的理解)? # 引用机制就是对的内存有效的管理,不让数据重复出现在内存中。减少内存空间的无效使用。 # #7. 什么是可变类型?什么是不可变类型?分别有哪些数据类型? # 可变类型: 内存地址不变的情况下,该地址中的数据可以改变 --列表、字典、集合 # 不可变类型: 内存地址不变的情况下,改地址中的数据不可以改变 --数字、字符串、元组