# def test(x) :  #形参:不占内存空间,调用函数时传入值,程序完成形参释放内存
# # 注释内容
# # 代码内容
# y = x*2
# print(y)
# # return
# # test(2)
# 4 PS:位置参数必须在定义函数左边,必须一一对应
# 默认参数在定义的时候直接调用函数设置的时候的默认值,而不设置函数的值
# test(x,*args,**kwargs)*args **kwargs可以接收多个参数,*args接收列表,表示为元祖 **kwargs接收字典
# 可以减少重复代码;保持一致性,易维护;可扩展性
###############################################上节课复习#########################################################
########################################局部变量与全局变量#########################################################
# 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
# 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
# 当全局变量与局部变量同名时:
# 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
# name = 'lhf'#没有任何缩进的就是全局变量,任何情况下都可以调用
# def change_name():
# print('change_name')
# change_name()在子函数过程中定义的变量成为局部变量
# 变量私有化的只能是函数
# global 如果函数的内部无global关键字,优先读取局部变量,读取全局变量,无法重新赋值
# 如果函数中有global关键字,变量本质就是全局的变量,可以读取可以重新赋值
#对于可变对象,可以对内部的全局变量进行元素操作进行任何的内部方法
###########全局变量全部大写###############
###########局部变量全部小写###############
# NAME = '海风'----1
# def huangwei():----3
# name = "黄伟"
# print(name)----4
# def liuyang():----6
# name = "刘洋"
# print(name)----7
# def nulige():----10
# name = '沪指花'
# print(name)---11
# print(name)----8
# nulige()----9
# liuyang()-----5
# print(name)----12
# huangwei()----2
# 黄伟
# 刘洋
# 刘洋
# 沪指花
# 黄伟
#################################################################################################################
##################################前向引用#######################################################################
# def foo():
# print('from foo')
# bar()#未定义该函数,所以运行时报错
# foo()
# def bar():
# print('from bar')
# def foo():
# print('from foo')
# bar()
# #未定义该函数,所以运行时报错
# foo()
#风湿理论:函数即变量
###############################################递归############################################################
# import time
# def calc(n):
# print(n)
# time.sleep(1)
# calc(n)
# calc(10)
# 用栈的方式去保存,递归占用内存导致最终报错
#递归特性:
# 1.需要明确的结束条件(可以设置条件判断return)
# 2.每次进入更深一层时,问题规模相比上次递归应有所减少
# 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,
# 每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,
# 所以,递归调用的次数过多,会导致栈溢出)
# import time
# person_list = ['alex','wupeiqi','yuanhao','lihaifeng']
# def ask_way(person_list):
# if len(person_list) == 0:
# return '根本没人知道'
# person = person_list.pop(0) # 依次弹出列表中的元素
# if person == 'lihaifeng':
# return '%s说:我认识路'%person
# print('问[%s]' %person)
# print('%s说:帮你问问%s'%(person,person_list))
# time.sleep(1)
# res = ask_way(person_list)
# return res
# res = ask_way(person_list)
# print(res)
##########################################################################################################

Pyhton学习——Day6的更多相关文章

  1. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  2. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  3. python 学习day6(面向对象)

    博客部分内容转自:http://www.cnblogs.com/wupeiqi/p/4493506.html 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法 ...

  4. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  5. android开发学习——day6

    关于UI的几个插件学习 button和textview,以及点击button利用Toast提醒,editText private EditText editText; @Override protec ...

  6. Python学习-day6 面向对象概念

    开始学习面向对象,可以说之前的学习和编程思路都是面向过程的,从上到下,一步一步走完. 如果说一个简单的需求,用面向过程实现起来相对容易,但是如果在日常生产,面向对象就可以发挥出他的优势了. 程序的可扩 ...

  7. Pyhton学习——Day2

    Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...

  8. Pyhton学习——Day28

    #上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...

  9. Pyhton学习——Day27

    # hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...

随机推荐

  1. python的包装和授权

    包装:python为大家提供了标准数据类型,以及丰富的内置方法,其实在很多场景下我们都需要基于标准数据类型来定制我们自己的数据类型,新增/改写方法,这就用到了我们刚学的继承/派生知识(其他的标准类型均 ...

  2. P1111 修复公路 (prim)

    题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...

  3. CentOS 笔记(三) 目录结构

    理解CentOS 目录结构 首次登录进入,应该是进入了,run文件夹 通过  cd  ../ 进入了,最根节点 通过 ls  显示全部文件夹 通过 pwd 查看当前目录 参考: https://www ...

  4. javaSE常用的英语单词

    1.continut 使......继续 2.break 打破 3.switch 开关:转换:鞭子 4.case 实例:情况:箱 5.Object 目标:物体 6.Class 阶级:班级:种类 7.p ...

  5. Problem 2

    Problem 2 # Problem_2.py """ Each new term in the Fibonacci sequence is generated by ...

  6. redis 零散知识

    1.单线程 2.默认 16 个库.0~15 3.select :切换数据库 4.DBsize :查看当前数据库的数量 5.keys * :查看当前库的所有 key 6.keys k? :问号是占位符 ...

  7. nodejs-基础大杂烩(待整理)

    优点:安装简易,能自动配置环境变量 缺点:更新和更换版本需重新安装(这个可以用包管理器解决,不是问题) 高手推荐使用开源的NVM包管理器来更新和安装node,可能这个包在linux平台上比较好用吧 g ...

  8. Oracle-定时任务

    PLSQL->新建->命令行窗口 --存储过程 create or replace procedure prd_remove_error_data AS BEGIN UPDATE rpt_ ...

  9. leetCode 66.Plus One (+1问题) 解题思路和方法

    Plus One Given a non-negative number represented as an array of digits, plus one to the number. The ...

  10. 软件測试、ios中的測试概念以及步骤

    软件測试: 软件測试的目标是应该服务于软件项目的目标,能够通过建议反馈使用更加高效的方法和工具,提升软件开发效率以及软件开发质量.同一时候还能够通过过一些手段,更早.更快.很多其它地发现缺陷.从容减少 ...