python与财务工作总结_Python小结1
当迷茫的时候,我开始写小结。
>>> 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相关推荐
- python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)
通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...
- python 拆分excel工作表_Python几行代码轻松拆分表格
Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...
- python 会计 培养目标,Python用于财务工作培训
都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python 我喜欢练习和学习Python的角落和缝隙 Connor Brierley-Green 课程: ...
- python解释器的工作原理_python解释器详解
Python是一门编程语言,但是从目前的实现来讲,Python也是一个名为解释器的软件包,解释器是一种让其他程序运行起来的程序,当你编写了一段Python程序,Python解释器将读取程序,并且按照其 ...
- python爬虫工程师工作指标_python爬虫工程师(20-40万)
python爬虫工程师 薪资范围:20.0 ~ 40.0 万 岗位描述 - 负责指定的网站进行页面抓取.数据清理提取: - 参与已有爬虫系统中作业的检验,设计和优化爬虫策略,充分利用已有服务器和宽 ...
- python在财务上的应用-Python用于财务工作培训
都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python Good interaction with audience, a lot of quest ...
- python 拆分excel工作表_Python将一个Excel拆分为多个Excel
本文实例为大家分享了Python将一个Excel拆分为多个Excel的具体代码,供大家参考,具体内容如下 原始文档如下图所示 将销售部门一.二.三科分别存为三个Excel 代码如下 # -*- cod ...
- python在财务中的应用-Python用于财务工作培训
都很喜欢 蒙 李 课程:Machine Learning Fundamentals with Python The content. HSBC Service Delivery (Polska) Sp ...
- python 拆分excel工作表_Python合并拆分excel
Python 实现合并 defmerge_excel(dir):print('--- 执行合并 ---') filename_excel= [] #存表名 frames = [] #存表内容 d = ...
最新文章
- 面试官:你说你熟悉jvm?那你讲一下并发的可达性分析
- Python知识点5——字典
- 某计算机型号,某计算机的型号为486/33,其中33的含义是?
- tf.variable_scope和tf.name_scope的用法
- Petapoco使用SQLite的异常问题
- Oracle字符拆分函数,Oracle拆分字符串函数有哪些呢?
- 诸葛io的技术架构图_阿里P8总结三面四轮技术面试:Tomcat+Redis+线程池锁+悲观锁+NIO...
- python threading之条件变量同步(condition)
- JavaWeb程序的目录结构(2)
- 电商自营藏猫腻 苏宁国美京东的套路谁最深?
- Android 真实简历
- bzoj1597 土地购买
- TIA博途中通过PN耦合器实现不同网段的PLC进行PROFINET通信的具体方法
- 徕卡 sl android app,相机入魔 徕卡SL DPReview测评结论
- python中三元运算符_Python中三元表达式的几种写法介绍
- 快速复制软件哪个好用安全?支持一键复制粘贴的工具
- 思科警告:旗下某些产品可能存在无法修补的WannaCrypt漏洞
- Android开发技术框架和编码规范
- 用于单眼3D物体检测的可学习深度引导卷积
- ViewPager嵌套ViewPager后子ViewPager滑动不正常问题
热门文章
- HTTP 请求消息头部实例:
- mysql end case连接_MySql 中 case when then else end 的用法
- 随想录(上位机客户端的编写)
- 随想录(开源代码的学习方法)
- c语言基础编程题讲解,C语言入门例题讲解
- arcgisengine计算线要素总长度_掌握K线并不难!新手请牢记K线四要素:开盘价、收盘价、最低价、最高价,看不懂别炒股...
- mysql update emp set_Mysql数据库性能优化一
- 计算机技术在酒店管理专业的应用与探索,计算机信息化在高职酒店管理专业教学中的应用.doc...
- php探针存在xss漏洞
- SQLi LABS Less-39