python 100day notes (1)
2024-10-07 16:27:12
x1 + x2 +x3 + x4 = 8 多少正整数解
上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案
即用三个隔板插7个空位。
答案C(7,3)
=35__name__是Python中一个隐含的变量它代表了模块的名字
只有被Python解释器直接执行的模块的名字才是__main__
最大公约数乘以最小公倍数就是这两个数的乘积
假设两个数分别为A、B(均不为0)
它们的最大公因数为a,最小公倍数为b
c为A/a
d为B/a
则AB=acad
AB/a=acad/a=acd
因为acad(即AB)为AB的公倍数
所以acd为AB的最小公倍数(有一个a重复了)
即acd=b
所以AB/a=b
即AB=ab
所以两个不为0的数的乘积等于这两个数的最小公倍数乘以最大公因数```
def lcm(x, y):
return x * y // gcd(x, y)
```
作用域 main里a是全局变量
def foo():
b = 'hello' def bar(): # Python中可以在函数内部再定义函数
c = True
print(a)
print(b)
print(c) bar()
# print(c) # NameError: name 'c' is not defined if __name__ == '__main__':
a = 100
# print(b) # NameError: name 'b' is not defined
foo()
def foo():
a = 200
print(a) # 200 if __name__ == '__main__':
a = 100
foo()
print(a) # 100
在调用foo函数后,我们发现a的值仍然是100,这是因为当我们在函数foo中写a = 200的时候,是重新定义了一个名字为a的局部变量,它跟全局作用域的a并不是同一个变量,因为局部作用域#中有了自己的变量a,因此foo函数不再搜索全局作用域中的a。如果我们希望在foo函数中修改全局作用域中的a,代码如下所示。
def foo():
global a
a = 200
print(a) # 200 if __name__ == '__main__':
a = 100
foo()
print(a) # 200
减少全局变量
在实际开发中,我们应该尽量减少对全局变量的使用,因为全局变量的作用域和影响过于广泛,可能会发生意料之外的修改和使用,除此之外全局变量比局部变量拥有更长的生命周期,可能导致对象占用的内存长时间无法被垃圾回收。事实上,减少对全局变量的使用,也是降低代码之间耦合度的一个重要举措,同时也是对迪米特法则的践行。减少全局变量的使用就意味着我们应该尽量让变量的作用域在函数的内部,但是如果我们希望将一个局部变量的生命周期延长,使其在函数调用结束后依然可以访问,这时候就需要使用闭包,这个我们在后续的内容中进行讲解。
这一点点的改进其实就是在我们理解了函数和作用域的基础上跨出的巨大的一步。
def main():
# Todo: Add your code here
pass if __name__ == '__main__':
main()
最新文章
- CFD冲蚀模拟的一些理论
- Webform 文件上传、 C#加图片水印 、 图片验证码
- 【XLL API 函数】xlGetName
- Sample Join Analysis
- 入手Intel 750
- js将long日期格式转换为标准日期格式
- leetcode 112
- 安装RubyMine
- Dubbo远程调用服务框架原理与示例
- Java编程陷阱-类成员初始化
- xshell使用命令总结
- 蓝桥网试题 java 基础练习 数列特征
- OSS web直传 ajax方式 上传图片、文件
- Excel 若某列包含某个字符则特定列显示特定字符
- Linux中python3,django,redis以及mariab的安装
- Win10 开始运行不保存历史记录原因和解决方法
- 根据学习廖雪峰老师的git教程做的笔记
- linux mv命令详解
- jquery选择器筛选器
- Django的AutoField字段