day07

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. 什么是可变类型?什么是不可变类型?分别有哪些数据类型?
#  可变类型: 内存地址不变的情况下,该地址中的数据可以改变  --列表、字典、集合
# 不可变类型: 内存地址不变的情况下,改地址中的数据不可以改变 --数字、字符串、元组

 

posted @ 2020-05-08 02:10  kelin1  阅读(169)  评论(0编辑  收藏  举报