def find_file(file_table):
with open(file_table, 'r', encoding='utf-8') as read_f:
line_dict = {}
for line in read_f:
line_list = line.strip().split(',')
line_dict['staff_id'] = line_list[0]
line_dict['name'] = line_list[1]
line_dict['age'] = line_list[2]
line_dict['phone'] = line_list[3]
line_dict['dept'] = line_list[4]
line_dict['enroll_date'] = line_list[5]
yield line_dict
def find_file_content(file_table,query_condition,sep=None): #传入 文件名 查询条件 和 条件内容
staff_info_genertor = find_file(file_table) #获取生成器 传过来的是一个字典
condition_query = [] #部门时IT的所有人的信息
while True:
try:
staff_info = next(staff_info_genertor) #接收生成器每次传过来的值
if sep.isalpha(): #如果是字母
if staff_info[query_condition] == sep:
condition_query.append(staff_info) except StopIteration as e:
break
print(condition_query)
运行结果:
[{'staff_id': '10', 'name': 'Mosson', 'age': '18', 'phone': '13188888888', 'dept': 'IT', 'enroll_date': '2018-12-11'},
{'staff_id': '10', 'name': 'Mosson', 'age': '18', 'phone': '13188888888', 'dept': 'IT', 'enroll_date': '2018-12-11'}] 第二个例子
  l = []
  for i in range(1, 10):
      f = lambda x: x * i
      l.append(f)    # 每次都添加一个函数进列表,函数的 i 是一个变量。每次循环变量的值,就会跟着改变。
          # python采用的是引用的机制,这里 虽说每次都添加一个元素到列表里。但是 如果这个元素是个变量的话。每次的引用都会被指向新的位置。
  for f in l:
      print(f(1))
运行结果是:
9
9
9
9
9
9
9
9
9
 
 
第三个例子
i = 0
for i in range(1,10):
print(i)
print(i)
运行结果
1
2
3
4
5
6
7
8
9
9 # i 是一个变量。每次都对他赋值。最后一次是9 所以print的是9
												

关于变量参数的传递,python让人蛋痛的地方的更多相关文章

  1. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  2. python函数中参数的传递

    Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本类型按值传递 ...

  3. 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数

    [问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...

  4. python中定义函数和参数的传递问题

    作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 ...

  5. 【angular】angular如何让传递变量参数+ng-change的使用

    HTML: <div class="form-group"> <label class="col-sm-2 control-label"> ...

  6. python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  7. python 函数参数的传递(参数带星号的说明)

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  8. python函数参数的传递、带星号参数的传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  9. 038-PHP向返回的闭包函数实例中,传递外部变量参数

    <?php # 向返回的闭包函数实例中,传递外部变量参数 # 直接调用将不会输出$txt的内容 function demo(){ $txt = '我爱PHP'; # 1.function()内的 ...

随机推荐

  1. linux 覆盖可执行文件的问题

    测试环境是3.10.0 内核. 有一次操作中,发现cp -f A B执行的时候,行为不一样: 当B没被打开,则正常覆盖B. 当B是被打开,但没有被执行,则能覆盖, 当B被打开,且被执行,则不能直接覆盖 ...

  2. Spring事务管理——回滚(rollback-for)控制

    探讨Spring事务控制中,异常触发事务回滚原理.文章进行了6种情况下的Spring事务是否回滚. 以下代码都是基于Spring与Mybatis整合,使用Spring声明式事务配置事务方法. 1.不捕 ...

  3. fopen的type的值的意思

    ┌──┬────┬───────┬────────┐      │type│读写性  │文本/2进制文件│建新/打开旧文件 │      ├──┼────┼───────┼────────┤      ...

  4. Win2012&Win2008双系统启动菜单设置

    电脑最初安装的是XP,后来想升级操作系统,但XP里又有很多常用软件不想重装,于是装了一个Win2008 R2的双系统,安装好2008R2后,系统自动产生一个2008R2的启动菜单,可以选择进入2008 ...

  5. ubuntu 下 rvm 卸载和重装

    卸载: sudo apt-get --purge remove ruby-rvm sudo rm -rf /usr/share/ruby-rvm /etc/rvmrc /etc/profile.d/r ...

  6. Requests库的文档高级用法

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  7. kali下的miranda工具只适合同一路由下使用

    在终端输入如下命令: miranda -v -i eth0 上面的命令是指定打开网卡eth0,返回结果如下: miranda提示输入开启upnp的主机,现在我们不知道哪台主机开启了upnp,输入命令“ ...

  8. spring ContentNegotiationManagerFactoryBean 内容协商

    一.什么是内容协商 简单点说,就是同一资源,可以有多种表现形式,比如xml.json等,具体使用哪种表现形式,是可以协商的. 这是RESTfull的一个重要特性,Spring Web MVC也支持这个 ...

  9. JDBC的基本概念

    英文名:Java DataBase Connectivity 中文名:数据库连接 作用: java操作数据库 本质上(sun公司的程序员)定义的一套操作关系型数据库的规则也就是接口,各数据库厂商实现接 ...

  10. Python之-------基础数据类型

    数据类型: 计算可以处理各种不同文件,图形,音频,视频,网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型有以下几种: 一:nubmer(数字) 1.1 ...