当迷茫的时候,我开始写小结。

>>> def f(x):

x = x + 1

print ('in f(x): x = ', x)

return x

>>> x = 5

>>> z = f(x)

in f(x): x = 6

>>> z

6

>>> f(5)

in f(x): x = 6

6

这个代码展示了function call和返回值的区别。特别是输入z=f(x)(此时x=5)后,此时调用函数f(x),并执行函数里面的print命令。但是这里并没有显示返回值。因为return只是将结果从local scope返回到global scope中,在这里,返回值绑定在了z上面,如下:

>>> z + 1

7

这里又涉及到python中等号的含义,等号是绑定,赋值的意思。这里在调用f(x)后,返回数值6,那么这个6就被绑定在了z上面。z是一个变量名,而f(x)是一个调用函数的命令,两者并非等同的意思。鸡猪同笼暴力算法:

def solve(numLegs, numHeads): #核心部件

for numChicks in range (0, numHeads + 1):

numPigs = numHeads - numChicks

totLegs = 4*numPigs + 2*numChicks

if totLegs == numLegs:

return (numPigs, numChicks)

return (None, None)

def barnYard(): #外包装

heads = int(input("Enter number of heads: "))

legs = int(input("Enter number of legs: "))

pigs, chickens = solve (legs, heads)

if pigs == None:

print ("There is no solution")

else:

print ("Number of pigs: ", pigs)

print ("Number of chickens: ", chickens)

笔记1中的这个问题也有趣:

>>> def g(y):

print (x)

print (x+1)

>>> x=5

>>> g(x)

5

6

>>> g(3)

5

6

出现这个结果的原因是,在函数g(y)中,我没有定义x,因此,x就需要在global中寻找。而在global scope中x=5,因此无论在g(y)中输入任何数值,x都取决于global scope中的x,而和函数g(y)的参数无关。

因此,正常来说,函数内的变量名是需要先定义的,否则就需要调用global scope中的定义。但是以下这个定义依然是错误的:

>>> def h(y):

x += 1

>>> x = 5

>>> h(x)

UnboundLocalError: local variable 'x' referenced before assignment

正确的方法是:

def h(y):

x = 1

x += 1

和这个问题相关的是,有的时候在调用函数时出现错误提示:Global name undefined。一般来说可能就是变量名打错了。因为之前定义了函数内的变量名,而你之后因为打错了变量名,导致这个名字在函数中没有定义,而程序又无法在global scope中找到,因此提示这个错误。Tuple

>>> def get_data(aTuple):

nums = ()

words = ()

for t in aTuple:

nums = nums + (t[1],)

return nums

>>> test = ((1,'a'),(1,'b'),(1,'a'))

>>> get_data(test)

('a', 'b', 'a')

另外:

>>> test[1]

(1, 'b')

>>> t = test[1]

>>> t[1]

'b'List

list的特点是可修改:

>>> warm = ['red', 'yellow', 'orange']

>>> hot = warm

>>> hot.append('pink')

>>> print (hot)

['red', 'yellow', 'orange', 'pink']

>>> print (warm)

['red', 'yellow', 'orange', 'pink']

要注意区分的是:

>>> a = ['a', 12]

>>> b = a

>>> a = []

>>> b

['a', 12]

>>> a

[]

a = [] 是重新定义了a,并没有修改列表。

list的克隆不受可修改的影响:

>>> cool = ['blue', 'green', 'grey']

>>> chill = cool[:]

>>> cool.append('black')

>>> chill

['blue', 'green', 'grey']

>>> cool

['blue', 'green', 'grey', 'black']

可修改性存在的一个问题:

>>> def remove_dups(L1, L2):

for e in L1:

if e in L2:

L1.remove(e)

>>> L1 = [1,2,3,4]

>>> L2 = [1,2,5,6]

>>> remove_dups(L1, L2)

>>> L1

[2, 3, 4]

>>> L2

[1, 2, 5, 6]

这个函数本来打算将两个列表中共同的元素从L1中删除,结果应该是[3,4]。但是实际结果却是[2,3,4]。原因是,在进行for-loop中,指针首先指向L1中的第0个元素,之后执行删除命令。由于列表的可修改性,L1此时更改为[2,3,4],在第二次循环中,指针指向第1个元素,即元素3,元素2由于列表的可修改性而跳过了。因此,正确的方法是用克隆:

def remove_dups(L1, L2):

L1_copy = L1[:]

for e in L1_copy:

if e in L2:

L1.remove(e)Dictionary

可以用来统计单词出现的次数:

#统计list中单词出现的频率

def lyrics_to_frequencies(lyrics):

myDict = {}

for word in lyrics:

if word in myDict:

myDict[word] += 1

else:

myDict[word] = 1

return myDict

一个列表,一个字典,一个for-loop,一个if...esle...,就可以做一个统计词频的小程序,看看简单,要新手从头想出来,也不容易。

python与财务工作总结_Python小结1相关推荐

  1. python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

    通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...

  2. python 拆分excel工作表_Python几行代码轻松拆分表格

    Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...

  3. python 会计 培养目标,Python用于财务工作培训

    都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python 我喜欢练习和学习Python的角落和缝隙 Connor Brierley-Green 课程: ...

  4. python解释器的工作原理_python解释器详解

    Python是一门编程语言,但是从目前的实现来讲,Python也是一个名为解释器的软件包,解释器是一种让其他程序运行起来的程序,当你编写了一段Python程序,Python解释器将读取程序,并且按照其 ...

  5. python爬虫工程师工作指标_python爬虫工程师(20-40万)

    python爬虫工程师 薪资范围:20.0 ~ 40.0 万 ​ 岗位描述 - 负责指定的网站进行页面抓取.数据清理提取: - 参与已有爬虫系统中作业的检验,设计和优化爬虫策略,充分利用已有服务器和宽 ...

  6. python在财务上的应用-Python用于财务工作培训

    都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python Good interaction with audience, a lot of quest ...

  7. python 拆分excel工作表_Python将一个Excel拆分为多个Excel

    本文实例为大家分享了Python将一个Excel拆分为多个Excel的具体代码,供大家参考,具体内容如下 原始文档如下图所示 将销售部门一.二.三科分别存为三个Excel 代码如下 # -*- cod ...

  8. python在财务中的应用-Python用于财务工作培训

    都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python The content. HSBC Service Delivery (Polska) Sp ...

  9. python 拆分excel工作表_Python合并拆分excel

    Python 实现合并 defmerge_excel(dir):print('--- 执行合并 ---') filename_excel= [] #存表名 frames = [] #存表内容 d = ...

最新文章

  1. 面试官:你说你熟悉jvm?那你讲一下并发的可达性分析
  2. Python知识点5——字典
  3. 某计算机型号,某计算机的型号为486/33,其中33的含义是?
  4. tf.variable_scope和tf.name_scope的用法
  5. Petapoco使用SQLite的异常问题
  6. Oracle字符拆分函数,Oracle拆分字符串函数有哪些呢?
  7. 诸葛io的技术架构图_阿里P8总结三面四轮技术面试:Tomcat+Redis+线程池锁+悲观锁+NIO...
  8. python threading之条件变量同步(condition)
  9. JavaWeb程序的目录结构(2)
  10. 电商自营藏猫腻 苏宁国美京东的套路谁最深?
  11. Android 真实简历
  12. bzoj1597 土地购买
  13. TIA博途中通过PN耦合器实现不同网段的PLC进行PROFINET通信的具体方法
  14. 徕卡 sl android app,相机入魔 徕卡SL DPReview测评结论
  15. python中三元运算符_Python中三元表达式的几种写法介绍
  16. 快速复制软件哪个好用安全?支持一键复制粘贴的工具
  17. 思科警告:旗下某些产品可能存在无法修补的WannaCrypt漏洞
  18. Android开发技术框架和编码规范
  19. 用于单眼3D物体检测的可学习深度引导卷积
  20. ViewPager嵌套ViewPager后子ViewPager滑动不正常问题

热门文章

  1. HTTP 请求消息头部实例:
  2. mysql end case连接_MySql 中 case when then else end 的用法
  3. 随想录(上位机客户端的编写)
  4. 随想录(开源代码的学习方法)
  5. c语言基础编程题讲解,C语言入门例题讲解
  6. arcgisengine计算线要素总长度_掌握K线并不难!新手请牢记K线四要素:开盘价、收盘价、最低价、最高价,看不懂别炒股...
  7. mysql update emp set_Mysql数据库性能优化一
  8. 计算机技术在酒店管理专业的应用与探索,计算机信息化在高职酒店管理专业教学中的应用.doc...
  9. php探针存在xss漏洞
  10. SQLi LABS Less-39